ROOT logo
AliRoot » TRD » AliTRDsimTR

class AliTRDsimTR: public TObject


TRD simulation - multimodule (regular rad.)
after: M. CASTELLANO et al., COMP. PHYS. COMM. 51 (1988) 431
+ COMP. PHYS. COMM. 61 (1990) 395

17.07.1998 - A.Andronic
08.12.1998 - simplified version
11.07.2000 - Adapted code to aliroot environment (C.Blume)
04.06.2004 - Momentum dependent parameters implemented (CBL)


Function Members (Methods)

public:
AliTRDsimTR()
AliTRDsimTR(const AliTRDsimTR& s)
AliTRDsimTR(AliModule* mod, Int_t foil, Int_t gap)
virtual~AliTRDsimTR()
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
virtual voidCopy(TObject& s) const
virtual Int_tCreatePhotons(Int_t pdg, Float_t p, Int_t& nPhoton, Float_t* ePhoton)
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
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()
Float_tGetFoilDens() const
Double_tGetFoilOmega() const
Float_tGetFoilThick() const
Float_tGetGapDens() const
Double_tGetGapOmega() const
Float_tGetGapThick() const
virtual const char*TObject::GetIconName() const
virtual Double_tGetMuAi(Double_t energyMeV)
virtual Double_tGetMuAr(Double_t energyMeV)
virtual Double_tGetMuCO(Double_t energyMeV)
virtual Double_tGetMuHe(Double_t energyMeV)
virtual Double_tGetMuMy(Double_t energyMeV)
virtual Double_tGetMuN2(Double_t energyMeV)
virtual Double_tGetMuO2(Double_t energyMeV)
virtual Double_tGetMuPo(Double_t energyMeV)
virtual Double_tGetMuXe(Double_t energyMeV)
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
TH1D*GetSpectrum() const
Float_tGetTemp() const
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 voidInit()
virtual voidTObject::Inspect() constMENU
virtual Double_tInterpolate(Double_t energyMeV, Double_t* en, const Double_t *const mu, Int_t n)
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
virtual Int_tLocate(Double_t* xv, Int_t n, Double_t xval, Int_t& kl, Double_t& dx)
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
virtual Double_tOmega(Float_t rho, Float_t z, Float_t a)
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)
AliTRDsimTR&operator=(const AliTRDsimTR& s)
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 = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
virtual Int_tSelectNFoils(Float_t p) const
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetFoilA(Float_t a)
voidSetFoilDens(Float_t d)
voidSetFoilThick(Float_t t)
voidSetFoilZ(Float_t z)
voidSetGapA(Float_t a)
voidSetGapDens(Float_t d)
voidSetGapThick(Float_t t)
voidSetGapZ(Float_t z)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetSigma()
voidSetTemp(Float_t t)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual Double_tSigma(Double_t energykeV)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_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 Int_tTrPhotons(Float_t p, Float_t mass, Int_t& nPhoton, Float_t* ePhoton)
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

protected:
Float_tfFoilAA of the foil material
Float_tfFoilDensDensity of the radiator foils (g/cm^3)
Double_tfFoilOmegaPlasma frequency of the radiator foils
Float_tfFoilThickThickness of the foils (cm)
Float_tfFoilZZ of the foil material
Float_tfGapAA of the gas in the gaps
Float_tfGapDensDensity of the gas in the radiator gaps (g/cm^3)
Double_tfGapOmegaPlasma frequency of the gas in the radiator gaps
Float_tfGapThickThickness of the gaps between the foils (cm)
Float_tfGapZZ of the gas in the gaps
Int_t*fNFoils[fNFoilsDim] Number of foils in the radiator stack
Int_tfNFoilsDimDimension of the NFoils array
Double_t*fNFoilsUp[fNFoilsDim] Upper momenta for a given number of foils
Double_t*fSigma[fSpNBins] Array of sigma values
Float_tfSpBinWidthBin width of the TR spectrum
Float_tfSpLowerLower border of the TR spectrum
Int_tfSpNBinsNumber of bins of the TR spectrum
Float_tfSpRangeRange of the TR spectrum
Float_tfSpUpperUpper border of the TR spectrum
TH1D*fSpectrum! TR photon energy spectrum
Float_tfTempTemperature of the radiator gas (Kelvin)

Class Charts

Inheritance Chart:
TObject
AliTRDsimTR

Function documentation

AliTRDsimTR()
 AliTRDsimTR default constructor

AliTRDsimTR(AliModule* mod, Int_t foil, Int_t gap)
 AliTRDsimTR constructor. Takes the material properties of the radiator
 foils and the gas in the gaps from AliModule <mod>.
 The default number of foils is 100 with a thickness of 20 mu. The
 thickness of the gaps is 500 mu.

AliTRDsimTR(const AliTRDsimTR& s)
 AliTRDsimTR copy constructor

~AliTRDsimTR()
 AliTRDsimTR destructor

AliTRDsimTR & operator=(const AliTRDsimTR& s)
 Assignment operator

void Copy(TObject& s) const
 Copy function

void Init()
 Initialization
 The default radiator are prolypropilene foils of 10 mu thickness
 with gaps of 80 mu filled with N2.

Int_t CreatePhotons(Int_t pdg, Float_t p, Int_t& nPhoton, Float_t* ePhoton)
 Create TRD photons for a charged particle of type <pdg> with the total
 momentum <p>.
 Number of produced TR photons:       <nPhoton>
 Energies of the produced TR photons: <ePhoton>

Int_t TrPhotons(Float_t p, Float_t mass, Int_t& nPhoton, Float_t* ePhoton)
 Produces TR photons using a parametric model for regular radiator. Photons
 with energy larger than 15 keV are included in the MC stack and tracked by VMC
 machinary.

 Input parameters:
 p    - parent momentum [GeV/c]
 mass - parent mass

 Output :
 nPhoton - number of photons which have to be processed by custom code
 ePhoton - energy of this photons in keV.

void SetSigma()
 Sets the absorbtion crosssection for the energies of the TR spectrum

Double_t Sigma(Double_t energykeV)
 Calculates the absorbtion crosssection for a one-foil-one-gap-radiator

Double_t GetMuPo(Double_t energyMeV)
 Returns the photon absorbtion cross section for polypropylene

Double_t GetMuCO(Double_t energyMeV)
 Returns the photon absorbtion cross section for CO2

Double_t GetMuXe(Double_t energyMeV)
 Returns the photon absorbtion cross section for xenon

Double_t GetMuAr(Double_t energyMeV)
 Returns the photon absorbtion cross section for argon

Double_t GetMuMy(Double_t energyMeV)
 Returns the photon absorbtion cross section for mylar

Double_t GetMuN2(Double_t energyMeV)
 Returns the photon absorbtion cross section for nitrogen

Double_t GetMuO2(Double_t energyMeV)
 Returns the photon absorbtion cross section for oxygen

Double_t GetMuHe(Double_t energyMeV)
 Returns the photon absorbtion cross section for helium

Double_t GetMuAi(Double_t energyMeV)
 Returns the photon absorbtion cross section for air
 Implemented by Oliver Busch

Double_t Interpolate(Double_t energyMeV, Double_t* en, const Double_t *const mu, Int_t n)
 Interpolates the photon absorbtion cross section
 for a given energy <energyMeV>.

Int_t Locate(Double_t* xv, Int_t n, Double_t xval, Int_t& kl, Double_t& dx)
 Locates a point (xval) in a 1-dim grid (xv(n))

Int_t SelectNFoils(Float_t p) const
 Selects the number of foils corresponding to the momentum

Double_t Omega(Float_t rho, Float_t z, Float_t a)
{ return (28.8 * TMath::Sqrt(rho * z / a)); }
void SetFoilThick(Float_t t)
void SetGapThick(Float_t t)
void SetFoilDens(Float_t d)
void SetFoilZ(Float_t z)
void SetFoilA(Float_t a)
void SetGapDens(Float_t d)
void SetGapZ(Float_t z)
void SetGapA(Float_t a)
void SetTemp(Float_t t)
Float_t GetFoilThick() const
{ return fFoilThick; }
Float_t GetGapThick() const
{ return fGapThick; }
Float_t GetFoilDens() const
{ return fFoilDens; }
Float_t GetGapDens() const
{ return fGapDens; }
Double_t GetFoilOmega() const
{ return fFoilOmega; }
Double_t GetGapOmega() const
{ return fGapOmega; }
Float_t GetTemp() const
{ return fTemp / 273.16; }
TH1D * GetSpectrum() const
{ return fSpectrum; }