#include "CTDR_Interaction.h"

CTDR_Interaction


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

class CTDR_Interaction: public TObject

Inheritance Chart:
TObject
CTDR_Interaction

Function Members (Methods)

Display options:
Show inherited
Show non-public
public:
CTDR_Interaction(const CTDR_Interaction&)
CTDR_Interaction(double x, double y, double z, double energie, double sigma, double t0)
~CTDR_Interaction()
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
virtual Int_tTObject::Compare(const TObject* obj) const
voidComputeRms()
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")
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
CTDR_ElectronGetCharge(int i)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
doubleGetMoyZ()
intGetN()
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
doubleGetQx()
doubleGetQy()
doubleGetRmsX()
doubleGetRmsY()
doubleGetRmsZ()
doubleGett()
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
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
booliteration(double dt, 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_Interaction&operator=(const CTDR_Interaction&)
virtual voidTObject::Paint(Option_t* option = "")
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)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetQx(double Q)
voidSetQy(double Q)
virtual voidTObject::SetUniqueID(UInt_t uid)
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
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
voidWritePositions(basic_ofstream<char,char_traits<char> >& sortie)
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:
doubletTime
CTDR_Electroncharges[5000]A list of charge elements CTDR_Electron
doublermsXRMS radius in X
doublermsYRMS radius in Y
doublermsZRMS radius in Z
doubleMoyZcentroid position in Z
doubleQ0x
doubleQ0yIntegration constant for collected charge integral
intNmaxMaximum number of time steps
intNNumber of charge elements
doubleenergieEnergy of the interaction

Class Description

 Source file : class CTDR_Interaction					//	      
 This class represent a cloud of charge element of a gamma 		
 CTDR_Interaction in CZT.It contains all the function to create 	
 and simulate the behavior of an carrier cloud generated by a 	
 gamma event. The cloud consiste of CTDR_Electron objects,		
 wich all evolves in time from their generation to their collection. 	//		      
 									
 Constant to set in source before compilation				
 "Nelec" represent the number of charge element (class CTDR_Electrons)// 
 used to reproduce the real charge cloud generated by a gamma 	
 CTDR_Interaction. The higher the number, he more accurately the 	
 behavior is simulated. However , higher number of charge element also
 mean longer computation time. CTDR_Fields and weighting potentials 	
 must be extracted from solution files obtained with poisson equation 
 solvers for each charge at each time step.				
 To simulate signals and to focus on one event or one multi-hit, 	
 a high number of charge is reccomended. But for simulation of a large// 
 number of events, for example to obtain scatter plots, a small number// 
 of charge works fine and give much more reasonable. As computer 	
 become faster, these type of simulation will gain much precision as 	
 they require a lot of brutal force.These simulation can be performed 
 on a single-processor , but the time needed to obtain readable data 	
 is quite long,(days or weeks). These simulations can easily be 	
 performed in parallel on many processor.The average parallel		
 computing facility these days could obtain good results quite fast 	
 for simulation with a high number of charge elements. This code 	
 can easily scale to the demand and to the ressource at your 		
 disposition to give  good results in a maximum of situations.	
									
 zmax is the maximum height of the CZT block 				

CTDR_Interaction(double x, double y, double z,double Energie,double sigma,double t0)
Constructor for the CTDR_Interaction , each CTDR_Interaction built represent 
one CTDR_Interaction site with deposited energy "Energie", and the cloud 
begins its simulation with a radius of sigma. It has been found that 
Electron-hole separation process is fast and can be neglected.. , 
bool iteration(double dt,CTDR_Field &A)
This function perform a time step for all the charge element in the cloud 
void ComputeRms()
This function computes the RMS in x,y,z of the charge cloud, the centroid is also calculated
These data are passed at each time step the the charge elements to set-up their random walk 
double GetRmsX()
Acces method to RMS
double GetRmsY()
Acces method to RMS
double GetRmsZ()
Acces method to RMS
double GetMoyZ()
Acces method to centroid position in Z
double GetQx()
Acces method to centroid position in Z
double GetQy()
Acces method to centroid position in Z
void SetQx(double Q)
Modifier function of the initial weight of the charge cloud. Data used in signal computation
void SetQy(double Q)
Modifier function of the initial weight of the charge cloud. Data used in signal computation
int GetN()
 Access method for Nelec
CTDR_Electron GetCharge(int i)
 Access method for Electrons object
double Gett()
 Access method for time
void WritePositions(ofstream &sortie)
 This function write the position of the charge elements to a file
CTDR_Interaction(double x, double y, double z,double energie,double sigma,double t0)

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.