#include "CTDR_Electron.h"

CTDR_Electron


class description - header file - source file - inheritance tree (.pdf)

class CTDR_Electron: public TObject

Inheritance Chart:
TObject
CTDR_Electron

Function Members (Methods)

Display options:
Show inherited
Show non-public
public:
CTDR_Electron()
CTDR_Electron(const CTDR_Electron&)
~CTDR_Electron()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
voidCollecte(double z)
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")
voidDepiege()
voidDiffusion_Repulsion(bool diffusion, bool repulsion, double xrms, double yrms, double zrms, int N, double dt)
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() const
virtual TObject*TObject::DrawClone(Option_t* option = "") const
virtual voidTObject::Dump() const
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
E_collecteGetEcollecte()
EtatsGetEtat()
virtual const char*TObject::GetIconName() const
virtual const char*TObject::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
long doubleGetQ()
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
long doubleGetX()
long doubleGetY()
long doubleGetZ()
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() const
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
voidIterateur(double dt, int N, double xrms, double yrms, double zrms, CTDR_Field& A)
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
CTDR_Electron&operator=(const CTDR_Electron&)
virtual voidTObject::Paint(Option_t* option = "")
voidPiege()
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") const
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")
static voidTObject::SetDtorOnly(void* obj)
voidSetEtat(Etats etat_voulu, E_piege etat_piege_voulu)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetPosition(double x, double y, double z)
virtual voidTObject::SetUniqueID(UInt_t uid)
voidSetValeurInitial(double x, double y, double z, double mobilite, double Q)
virtual voidShowMembers(TMemberInspector& insp, char* parent)
virtual voidStreamer(TBuffer& b)
voidStreamerNVirtual(TBuffer& b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
voidTransport(double Ex, double Ey, double Ez, double dt)
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = "0", Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = "0", Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

public:
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
private:
long doublexPosition in X
long doubleyPosition in Y
long doublezPosition in Z
long doubleQCharge
long doublemobiliteMobility
long doubleDDiffusion coefficient
doubleTemps_piegeageTime until next trap
doubleTemps_depiegeageTime before detrapping
EtatsEtattrue=piege, false =libre
E_piegeEtat_prochain_piegetrue = profond , false=normal
E_collecteE_collectionCollection state

Class Description

 CTDR_Electron						        
 This class represent a charge element of a gamma interaction in CZT. //              
 It contains all the function to simulate its behavior 		
 from generation to collection 					

CTDR_Electron()
 The constructor instanciate an electron at an arbitrary position. 
 The state of the new trap met by the charge is computed, with 
 the time left before reaching the trap. 
void SetValeurInitial(double x0,double y0, double z0, double mobilite0,double Q0)
 This function sets the position, the mobility 
 and the charge of an element.
 x0,y0,z0 : position
 mobilite0 : mobility
 Q0 charge (in e units)
void SetPosition(double x0,double y0, double z0)
 This function set the position of a charge element.
 x0,y0,z0 : position 
void SetEtat(Etats etat_voulu,E_piege etat_piege_voulu)
 This function modify the state of the charge element.
 etat_voulu : trapped or free
 etat_piege_voulu : next trap is deep or shallow
void Collecte(double Z)
 This function set this charge element as collected,
 Z : The z position where we want to put the Electron when collect 
E_collecte GetEcollecte()
 This function return the state of the charge, free or collected
long double GetX()
 Access method for position X
long double GetY()
 Access method for position Y
long double GetZ()
 Access method for position Z
long double GetQ()
 Access method for charge
Etats GetEtat()
 Access method for state (free or trapped)
void Piege()
 This method traps the charge and determine the time it will remain trapped
void Depiege()
This method untrap a charge and determine the state of the next trap.
The time left until meeting this trap is also computed 
void Diffusion_Repulsion(bool diffusion,bool repulsion,double xrms, double yrms, double zrms,int N,double dt)
 This method simulate the process of repulsion and diffusion for one charge
 diffusion and repulsion are tokens to determine which process to include 0=off,1=on
 xrms,yrms,zrms are the size in rms of the charge could to which the charge belong
 N is the number of charges to emulate
 dt is the time step. 
 The two process are simulated by a random walk ,using a step distributed normally, 
 with a sigma adjusted according to a modified diffusion coefficient, wich include the
 effect of repulsion , see documentation, for more details on the diffusion-repulsion formula
void Transport(double Ex, double Ey, double Ez,double dt)
 This function transport using Euler integration, for field (Ex,Ey,Ez), 
 considered constant over time dt. The movement equation are those 
 of charges in semi-conductors, sx= mu*E*dt;
void Iterateur(double dt,int N,double xrms,double yrms,double zrms,CTDR_Field &A)
 This method apply one time step to the charge represented by this class.
 Trapping, transport, diffusion repulsion and collection are considered. 
 dt is the time step
 N the number of charges in the cloud
 x,y,zrms are the sizes of the charge cloud to which the charge belongs
 A is a Field object that is used to get the value of the field at the charge's
 position
CTDR_Electron()

Author: Mathieu Benoit 24/11/06
Last update: CTDR/Electron:$Name: $:$Id: CTDR_Electron,cpp,v 2.0 2006/11/24 16:10:45 brun Exp $


ROOT page - Class index - Class Hierarchy - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.