ROOT logo
AliRoot » TRD » AliTRDgeometry

class AliTRDgeometry: public AliGeometry


TRD geometry class


Function Members (Methods)

public:
AliTRDgeometry()
virtual~AliTRDgeometry()
voidTObject::AbstractMethod(const char* method) const
static Int_tADCmax()
static Float_tAmThick()
static Float_tAnodePos()
virtual voidTObject::AppendPad(Option_t* option = "")
voidAssembleChamber(Int_t ilayer, Int_t istack)
virtual voidTObject::Browse(TBrowser* b)
static Float_tCamHght()
static Float_tCdrHght()
Bool_tChamberInGeometry(Int_t det)
static Float_tCheight()
static Float_tCheightSV()
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
static Int_tColmax()
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
static Float_tCpadW()
static Float_tCraHght()
static Bool_tCreateClusterMatrixArray()
voidCreateFrame(Int_t* idtmed)
virtual voidCreateGeometry(Int_t* idtmed)
static AliTRDpadPlane*CreatePadPlane(Int_t layer, Int_t stack)
static voidCreatePadPlaneArray()
voidCreateServices(Int_t* idtmed)
static Float_tCroHght()
static Float_tCroWid()
static Float_tCspace()
static Float_tCsvHght()
static Float_tCwidcha()
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
static Float_tDrThick()
static Float_tDrZpos()
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 voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
static Double_tGetAlpha()
static Float_tGetChamberLength(Int_t layer, Int_t stack)
static Float_tGetChamberWidth(Int_t layer)
static TGeoHMatrix*GetClusterMatrix(Int_t det)
static Double_tGetCol0(Int_t layer)
static Int_tGetColMax(Int_t layer)
static Int_tGetDetector(Int_t layer, Int_t stack, Int_t sector)
static Int_tGetDetectorSec(Int_t layer, Int_t stack)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual voidGetGlobal(const AliRecPoint*, TVector3&) const
virtual voidGetGlobal(const AliRecPoint*, TVector3&, TMatrixF&) const
virtual const char*TObject::GetIconName() const
static Int_tGetLayer(Int_t det)
virtual const char*TNamed::GetName() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
static AliTRDpadPlane*GetPadPlane(Int_t det)
static AliTRDpadPlane*GetPadPlane(Int_t layer, Int_t stack)
static Double_tGetRow0(Int_t layer, Int_t stack, Int_t)
static Int_tGetRowMax(Int_t layer, Int_t stack, Int_t)
static Int_tGetSector(Int_t det)
Char_tGetSMstatus(Int_t sm) const
static Int_tGetStack(Int_t det)
Int_tGetStack(Double_t z, Int_t layer)
static Float_tGetTime0(Int_t layer)
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
static Double_tGetXtrdBeg()
static Double_tGetXtrdEnd()
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
virtual Bool_tImpact(const TParticle*) 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() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
virtual Bool_tIsHole(Int_t la, Int_t st, Int_t se) const
virtual Bool_tIsOnBoundary(Int_t det, Float_t y, Float_t z, Float_t eps = 0.5) const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTNamed::IsSortable() const
virtual Int_tIsVersion()
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
static Int_tMCMmax()
static Int_tMCMrow()
static Float_tMyThick()
static Int_tNdet()
static Int_tNlayer()
virtual Bool_tTObject::Notify()
static Int_tNsector()
static Int_tNstack()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
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)
static Int_tPadmax()
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTNamed::Print(Option_t* option = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
static Int_tROBmaxC0()
static Int_tROBmaxC1()
virtual Bool_tRotateBack(Int_t det, const Double_t *const loc, Double_t* glb) const
static Int_tRowmaxC0()
static Int_tRowmaxC1()
static Float_tRpadW()
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
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 = "")MENU
static voidTObject::SetDtorOnly(void* obj)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetSMstatus(Int_t sm, Char_t status)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
static Int_tTBmax()
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
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

public:
enum { kNlayer
kNstack
kNsector
kNdet
kNdets
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
protected:
TStringTNamed::fNameobject identifier
TStringTNamed::fTitleobject title
static TObjArray*fgClusterMatrixArray! Transformation matrices loc. cluster to tracking cs
static TObjArray*fgPadPlaneArray! Array of pad plane objects
static Char_tfgSMstatus[18]Super module status byte
static const Int_tfgkADCmaxMaximum number of ADC channels per MCM
static const Float_tfgkAmThickThickness of the amplification region
static const Float_tfgkAmZposPosition of the amplification region
static const Float_tfgkAnodePosDistance of anode wire plane relative to alignabl volume
static const Float_tfgkCHTotal height of the chambers (w/o services)
static const Float_tfgkCHsvTotal height of the chambers (with services)
static const Float_tfgkCalHHeight of additional aluminum ledge on lower frame
static const Float_tfgkCalHmodHeight of additional aluminum ledge on lower frame
static const Float_tfgkCalTThickness of the lower aluminum frame
static const Float_tfgkCalWWidth of additional aluminum ledge on lower frame
static const Float_tfgkCalWmodWidth of additional aluminum ledge on lower frame
static const Float_tfgkCalZposPosition of the additional aluminum ledges
static const Float_tfgkCamHHeight of the amplification region of the chambers
static const Float_tfgkCauTThickness of the aluminum frame of the back panel
static const Float_tfgkCclfTThickness of the lower Wacosit frame front
static const Float_tfgkCclsTThickness of the lower Wacosit frame sides
static const Float_tfgkCcuTaThickness of the upper Wacosit frame around amp. region
static const Float_tfgkCcuTbThickness of the upper Wacosit frame around amp. region
static const Float_tfgkCdrHHeight of the drift region of the chambers
static const Float_tfgkCglTThichness of the glue around the radiator
static const Float_tfgkClength[6][5]Outer lengths of the chambers
static const Int_tfgkColmaxMaximum number of pads per padplane row
static const Float_tfgkCpadWDifference of outer chamber width and pad plane width
static const Float_tfgkCraHHeight of the radiator part of the chambers
static const Float_tfgkCroHHeight of the readout of the chambers
static const Float_tfgkCroWAdditional width of the readout chamber frames
static const Float_tfgkCsvHHeight of the services on top of the chambers
static const Float_tfgkCwidth[6]Outer widths of the chambers
static const Float_tfgkCwsHHeight of additional wacosit ledge on lower frame
static const Float_tfgkCwsWWidth of additional wacosit ledge on lower frame
static const Float_tfgkDrThickThickness of the drift region
static const Float_tfgkDrZposPosition of the drift region
static const Float_tfgkFlengthLength of the service space in front of a supermodule
static const Float_tfgkHspaceHorizontal spacing of the chambers
static const Int_tfgkMCMmaxMaximum number of MCMs per ROB
static const Int_tfgkMCMrowMaximum number of MCMs per ROB Row
static const Int_tfgkNdetTotal number of detectors (18 * 6 * 5 = 540)
static const Int_tfgkNlayerNumber of layers of the TRD (6)
static const Int_tfgkNsectorNumber of sectors in the full detector (18)
static const Int_tfgkNstackNumber of stacks in z-direction (5)
static const Float_tfgkPCbThickThickness of the carbon layers
static const Float_tfgkPElThickThickness of all other electronics components (caps, etc.)
static const Float_tfgkPGlThickThickness of the glue layer
static const Float_tfgkPHcThickThickness of the honeycomb support structure
static const Float_tfgkPPcThickThickness of the PCB readout boards
static const Float_tfgkPPdThickThickness of copper of the pad plane
static const Float_tfgkPPpThickThickness of PCB board of the pad plane
static const Float_tfgkPRbThickThickness of the PCB copper layers
static const Int_tfgkPadmaxMaximum number of pads per MCM
static const Float_tfgkRCbThickThickness of the carbon layers in the radiator
static const Float_tfgkRFbThickThickness of the fiber layers in the radiator
static const Float_tfgkRGlThickThickness of the glue layers in the radiator
static const Float_tfgkRMyThickThickness of the mylar layers in the radiator
static const Int_tfgkROBmaxC0Maximum number of ROBs per C0 chamber
static const Int_tfgkROBmaxC1Maximum number of ROBs per C1 chamber
static const Float_tfgkRRhThickThickness of the rohacell layers in the radiator
static const Int_tfgkRowmaxC0Maximum number of Rows per C0 chamber
static const Int_tfgkRowmaxC1Maximum number of Rows per C1 chamber
static const Float_tfgkRpadWDifference of outer chamber width and pad plane width
static const Float_tfgkSMpltTThickness of the super module side plates
static const Float_tfgkSheightHeight of the supermodule
static const Float_tfgkSlengthLength of the supermodule
static const Float_tfgkSwidth1Lower width of the supermodule
static const Float_tfgkSwidth2Upper width of the supermodule
static const Int_tfgkTBmaxMaximum number of Time bins
static const Float_tfgkTime0[6]Time-position of pad 0
static const Double_tfgkTime0BaseBase value for calculation of Time-position of pad 0
static const Float_tfgkTlengthLength of the TRD-volume in spaceframe (BTRD)
static const Float_tfgkVrocsmRadial distance of the first ROC to the outer SM plates
static const Float_tfgkVspaceVertical spacing of the chambers
static const Float_tfgkWrThickThickness of the wire planes
static const Float_tfgkWrZposAPosition of the wire planes
static const Float_tfgkWrZposBPosition of the wire planes
static const Float_tfgkXeThickThickness of the gas volume
static const Double_tfgkXtrdBegX-coordinate in tracking system of begin of TRD mother volume
static const Double_tfgkXtrdEndX-coordinate in tracking system of end of TRD mother volume

Class Charts

Inheritance Chart:
TNamed
AliGeometry
AliTRDgeometry

Function documentation

AliTRDgeometry()
 AliTRDgeometry default constructor

~AliTRDgeometry()
 AliTRDgeometry destructor

void CreatePadPlaneArray()
 Creates the array of AliTRDpadPlane objects

AliTRDpadPlane * CreatePadPlane(Int_t layer, Int_t stack)
 Creates an AliTRDpadPlane object

void CreateGeometry(Int_t* idtmed)
 Create the TRD geometry


 Names of the TRD volumina (xx = detector number):

   Volume (Air) wrapping the readout chamber components
     UTxx    includes: UAxx, UDxx, UFxx, UUxx

   Lower part of the readout chambers (drift volume + radiator)
     UAxx    Aluminum frames                (Al)

   Upper part of the readout chambers (readout plane + fee)
     UDxx    Wacosit frames of amp. region  (Wacosit)
     UFxx    Aluminum frame of back panel   (Al)

   Services on chambers (cooling, cables, MCMs, DCS boards, ...)
     UUxx    Volume containing the services (Air)

   Material layers inside sensitive area:
     Name    Description                     Mat.      Thick.   Dens.    Radl.    X/X_0

     URMYxx  Mylar layers (x2)               Mylar     0.0015   1.39     28.5464  0.005%
     URCBxx  Carbon layer (x2)               Carbon    0.0055   1.75     24.2824  0.023%
     URGLxx  Glue on the carbon layers (x2)  Araldite  0.0065   1.12     37.0664  0.018%
     URRHxx  Rohacell layer (x2)             Rohacell  0.8      0.075    536.005  0.149%
     URFBxx  Fiber mat layer                 PP        3.186    0.068    649.727  0.490%

     UJxx    Drift region                    Xe/CO2    3.0      0.00495  1792.37  0.167%
     UKxx    Amplification region            Xe/CO2    0.7      0.00495  1792.37  0.039%
     UWxx    Wire planes (x2)                Copper    0.00011  8.96     1.43503  0.008%

     UPPDxx  Copper of pad plane             Copper    0.0025   8.96     1.43503  0.174%
     UPPPxx  PCB of pad plane                G10       0.0356   2.0      14.9013  0.239%
     UPGLxx  Glue on pad planes              Araldite  0.0923   1.12     37.0664  0.249%
             + add. glue (ca. 600g)          Araldite  0.0505   1.12     37.0663  0.107%
     UPCBxx  Carbon fiber mats (x2)          Carbon    0.019    1.75     24.2824  0.078%
     UPHCxx  Honeycomb structure             Aramide   2.0299   0.032    1198.84  0.169%
     UPPCxx  PCB of readout board            G10       0.0486   2.0      14.9013  0.326%
     UPRDxx  Copper of readout board         Copper    0.0057   8.96     1.43503  0.404%
     UPELxx  Electronics + cables            Copper    0.0029   8.96     1.43503  0.202%

void CreateFrame(Int_t* idtmed)
 Create the geometry of the frame of the supermodule

 Names of the TRD services volumina

        USRL    Support rails for the chambers (Al)
        USxx    Support cross bars between the chambers (Al)
        USHx    Horizontal connection between the cross bars (Al)
        USLx    Long corner ledges (Al)

void CreateServices(Int_t* idtmed)
 Create the geometry of the services

 Names of the TRD services volumina

        UTC1    Cooling arterias (Al)
        UTC2    Cooling arterias (Water)
        UUxx    Volumes for the services at the chambers (Air)
        UMCM    Readout MCMs     (G10/Cu/Si)
        UDCS    DCSs boards      (G10/Cu)
        UTP1    Power bars       (Cu)
        UTCP    Cooling pipes    (Fe)
        UTCH    Cooling pipes    (Water)
        UTPL    Power lines      (Cu)
        UTGD    Gas distribution box (V2A)

void AssembleChamber(Int_t ilayer, Int_t istack)
 Group volumes UA, UD, UF, UU into an assembly that defines the
 alignable volume of a single readout chamber

Bool_t RotateBack(Int_t det, const Double_t *const loc, Double_t* glb) const
 Rotates a chambers to transform the corresponding local frame
 coordinates <loc> into the coordinates of the ALICE restframe <glb>.

Int_t GetDetectorSec(Int_t layer, Int_t stack)
 Convert plane / stack into detector number for one single sector

Int_t GetDetector(Int_t layer, Int_t stack, Int_t sector)
 Convert layer / stack / sector into detector number

Int_t GetLayer(Int_t det)
 Reconstruct the layer number from the detector number

Int_t GetStack(Int_t det)
 Reconstruct the stack number from the detector number

Int_t GetStack(Double_t z, Int_t layer)
 Reconstruct the chamber number from the z position and layer number

 The return function has to be protected for positiveness !!

Int_t GetSector(Int_t det)
 Reconstruct the sector number from the detector number

AliTRDpadPlane * GetPadPlane(Int_t layer, Int_t stack)
 Returns the pad plane for a given plane <pl> and stack <st> number

Int_t GetRowMax(Int_t layer, Int_t stack, Int_t )
 Returns the number of rows on the pad plane

Int_t GetColMax(Int_t layer)
 Returns the number of rows on the pad plane

Double_t GetRow0(Int_t layer, Int_t stack, Int_t )
 Returns the position of the border of the first pad in a row

Double_t GetCol0(Int_t layer)
 Returns the position of the border of the first pad in a column

Bool_t CreateClusterMatrixArray()
 Create the matrices to transform cluster coordinates from the
 local chamber system to the tracking coordinate system

TGeoHMatrix * GetClusterMatrix(Int_t det)
 Returns the cluster transformation matrix for a given detector

Bool_t ChamberInGeometry(Int_t det)
 Checks whether the given detector is part of the current geometry

Bool_t IsHole(Int_t la, Int_t st, Int_t se) const
 Checks for holes in front of PHOS

Bool_t IsOnBoundary(Int_t det, Float_t y, Float_t z, Float_t eps = 0.5) const
 Checks whether position is at the boundary of the sensitive volume

AliTRDgeometry()
Int_t IsVersion()
{ return 1; }
Bool_t Impact(const TParticle* ) const
{ return kTRUE; }
void SetSMstatus(Int_t sm, Char_t status)
{ fgSMstatus[sm] = status; }
AliTRDpadPlane * GetPadPlane(Int_t layer, Int_t stack)
Float_t GetTime0(Int_t layer)
{ return fgkTime0[layer]; }
Double_t GetXtrdBeg()
{ return fgkXtrdBeg; }
Double_t GetXtrdEnd()
{ return fgkXtrdEnd; }
Char_t GetSMstatus(Int_t sm) const
{ return fgSMstatus[sm]; }
Float_t GetChamberWidth(Int_t layer)
{ return fgkCwidth[layer] ; }
Float_t GetChamberLength(Int_t layer, Int_t stack)
{ return fgkClength[layer][stack]; }
void GetGlobal(const AliRecPoint* , TVector3& , TMatrixF& ) const
{ }
void GetGlobal(const AliRecPoint* , TVector3& ) const
{ }
Double_t GetAlpha()
Int_t Nsector()
{ return fgkNsector; }
Int_t Nlayer()
{ return fgkNlayer; }
Int_t Nstack()
{ return fgkNstack; }
Int_t Ndet()
{ return fgkNdet; }
Float_t Cheight()
{ return fgkCH; }
Float_t CheightSV()
{ return fgkCHsv; }
Float_t Cspace()
{ return fgkVspace; }
Float_t CraHght()
{ return fgkCraH; }
Float_t CdrHght()
{ return fgkCdrH; }
Float_t CamHght()
{ return fgkCamH; }
Float_t CroHght()
{ return fgkCroH; }
Float_t CsvHght()
{ return fgkCsvH; }
Float_t CroWid()
{ return fgkCroW; }
Float_t AnodePos()
{ return fgkAnodePos; }
Float_t MyThick()
{ return fgkRMyThick; }
Float_t DrThick()
{ return fgkDrThick; }
Float_t AmThick()
{ return fgkAmThick; }
Float_t DrZpos()
{ return fgkDrZpos; }
Float_t RpadW()
{ return fgkRpadW; }
Float_t CpadW()
{ return fgkCpadW; }
Float_t Cwidcha()
Int_t MCMmax()
{ return fgkMCMmax; }
Int_t MCMrow()
{ return fgkMCMrow; }
Int_t ROBmaxC0()
{ return fgkROBmaxC0; }
Int_t ROBmaxC1()
{ return fgkROBmaxC1; }
Int_t ADCmax()
{ return fgkADCmax; }
Int_t TBmax()
{ return fgkTBmax; }
Int_t Padmax()
{ return fgkPadmax; }
Int_t Colmax()
{ return fgkColmax; }
Int_t RowmaxC0()
{ return fgkRowmaxC0; }
Int_t RowmaxC1()
{ return fgkRowmaxC1; }
AliTRDgeometry & operator=(const AliTRDgeometry& g)