ROOT logo
AliRoot » TOF » AliTOFGeometry

class AliTOFGeometry: public TObject


TOF Geometry class


Function Members (Methods)

public:
AliTOFGeometry()
AliTOFGeometry(const AliTOFGeometry&)
virtual~AliTOFGeometry()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidTObject::Browse(TBrowser* b)
static Float_tBunchCrossingBinWidth()
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 voidTObject::Copy(TObject& object) const
static Float_tDeadTime()
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual voidDetToSectorRF(Int_t* vol, Double_t** coord)
virtual voidDetToStripRF(Int_t nPadX, Int_t nPadZ, Float_t& x, Float_t& z) const
static Float_tDistanceToPadPar(Int_t* det, const Float_t* pos, Float_t* dist3d = 0)
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
static UShort_tGetAliSensVolIndex(Int_t sec, Int_t pla, Int_t str)
static Double_tGetAlpha()
static Float_tGetAngles(Int_t iplate, Int_t istrip)
static voidGetDetID(Float_t* pos, Int_t* det)
static Float_tGetDistances(Int_t iplate, Int_t istrip)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
static Float_tGetHeights(Int_t iplate, Int_t istrip)
static Bool_tGetHoles()
virtual const char*TObject::GetIconName() const
static Int_tGetIndex(const Int_t* detId)
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
static Float_tGetPadDx(const Float_t* pos)
static Float_tGetPadDy(const Float_t* pos)
static Float_tGetPadDz(const Float_t* pos)
static Int_tGetPadX(const Float_t* pos)
static Int_tGetPadZ(const Float_t* pos)
static Int_tGetPlate(const Float_t* pos)
static voidGetPos(Int_t* det, Float_t* pos)
static voidGetPosPar(Int_t* det, Float_t* pos)
static Int_tGetSector(const Float_t* pos)
static Int_tGetStrip(const Float_t* pos)
static voidGetStripAndModule(Int_t iStripPerSM, Int_t& iplate, Int_t& istrip)
static Int_tGetStripNumber(Int_t isector, Int_t iplate, Int_t istrip)
static Int_tGetStripNumberPerSM(Int_t iplate, Int_t istrip)
virtual const char*TObject::GetTitle() const
static Int_tGetTOFsupermodule(Int_t index)
virtual UInt_tTObject::GetUniqueID() const
static voidGetVolumeIndices(Int_t index, Int_t* detId)
static voidGetVolumePath(const Int_t* ind, Char_t* path)
static voidGetVolumePath(Int_t sector, Char_t* path)
static voidGetVolumePath(Int_t sector, Int_t plate, Int_t strip, Char_t* path)
static Float_tGetX(const Int_t* det)
static Float_tGetY(const Int_t* det)
static Float_tGetZ(const Int_t* det)
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
virtual voidImportGeometry()
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
static voidInverseRotation(Float_t* xyz, Double_t* rotationAngles)
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
static Bool_tIsInsideThePad(TGeoHMatrix* mat, const Float_t* pos, Float_t* dist3d = 0)
static Bool_tIsInsideThePadPar(Int_t* det, const Float_t* pos)
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTObject::ls(Option_t* option = "") const
static Float_tMatchingWindow()
static Float_tMaxhZtof()
static Int_tMaxTOFTree()
voidTObject::MayNotUse(const char* method) const
static Int_tNCh()
static Int_tNChain()
static Int_tNDDL()
static Int_tNMaxNstrip()
virtual Bool_tTObject::Notify()
static Int_tNpadX()
static Int_tNPadXSector()
static Int_tNpadXStrip()
static Int_tNPadXTRM()
static Int_tNpadZ()
static Int_tNPlates()
static Int_tNSectors()
static Int_tNStrip(Int_t nPlate)
static Int_tNStripA()
static Int_tNStripB()
static Int_tNStripC()
static Int_tNStripXSector()
static Int_tNTdc()
static Int_tNTRM()
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)
AliTOFGeometry&operator=(const AliTOFGeometry&)
voidPadRF2TrackingRF(Float_t* ctrackPos, Float_t* differenceT)
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)
static Float_tRinTOF()
static Float_tRmax()
static Float_tRmin()
static voidRotation(Float_t* xyz, Double_t* rotationAngles)
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 voidSetHoles(Bool_t holes)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
static Float_tSigmaForTail1()
static Float_tSigmaForTail2()
static Float_tSlewTOTMax()
static Float_tSlewTOTMin()
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
static Float_tStripLength()
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
static Float_tTdcBinWidth()
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
static Float_tToTBinWidth()
static voidTranslation(Float_t* xyz, Float_t* translationVector)
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
static Float_tXPad()
static Float_tZlenA()
static Float_tZlenB()
static Float_tZlenC()
static Float_tZPad()
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

public:
enum { kNStripA
kNStripB
kNStripC
kNpadX
kNpadZ
kNSectors
kNPlates
kMaxTOFTree
kMaxNstrip
kNDDL
kNTRM
kNTdc
kNChain
kNCh
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
private:
static Bool_tfgHoleslogical for geometry version (w/wo holes)
static const Float_tfgkAngles[5][20]Strip Tilt Angles
static const Float_tfgkBunchCrossingBinbunch-crossing bin width [ps]
static const Float_tfgkDeadTimeSingle channel dead time (ps)
static const Float_tfgkDistances[5][20]Strip distances
static const Float_tfgkHeights[5][20]Strip heights
static const Float_tfgkMatchingWindowMatching window (ps)
static const Float_tfgkMaxhZtofMax half z-size of TOF (cm)
static const Float_tfgkPhiSecsector Phi width (deg)
static const Float_tfgkRmaxOuter radius of the TOF (cm)
static const Float_tfgkRminInner radius of the TOF (cm)
static const Float_tfgkSigmaForTail1Sig1 for simulation of TDC tails
static const Float_tfgkSigmaForTail2Sig2 for simulation of TDC tails
static const Float_tfgkSlewTOTMaxmax TOT for slewing correction [ns]
static const Float_tfgkSlewTOTMinmin TOT for slewing correction [ns]
static const Float_tfgkStripLengthStrip Length (rho X phi direction) (cm)
static const Float_tfgkTdcBintime-of-flight bin width [ps]
static const Float_tfgkToTBintime-over-threshold bin width [ps]
static const Float_tfgkXPadPad size in the x direction (cm)
static const Float_tfgkZPadPad size in the z direction (cm)
static const Float_tfgkZlenAlength (cm) of the A module
static const Float_tfgkZlenBlength (cm) of the B module
static const Float_tfgkZlenClength (cm) of the C module
static const Float_tfgkxTOFInner TOF Radius used in Reconstruction (cm)

Class Charts

Inheritance Chart:
TObject
AliTOFGeometry

Function documentation

AliTOFGeometry()
 AliTOFGeometry default constructor

~AliTOFGeometry()
 AliTOFGeometry destructor

void ImportGeometry()
void GetPosPar(Int_t* det, Float_t* pos)
 Returns space point coor (x,y,z) (cm)  for Detector
 Indices  (iSect,iPlate,iStrip,iPadX,iPadZ)

void GetDetID(Float_t* pos, Int_t* det)
 Returns Detector Indices (iSect,iPlate,iStrip,iPadX,iPadZ)
 space point coor (x,y,z) (cm)
void DetToStripRF(Int_t nPadX, Int_t nPadZ, Float_t& x, Float_t& z) const
 Returns the local coordinates (x, z) in strip reference frame
 for the bottom corner of the pad number (nPadX, nPadZ)


  const Float_t xCenterStrip = kNpadX * fgkXPad / 2.;
  const Float_t zCenterStrip = kNpadZ * fgkZPad / 2.;

  const Float_t xCenterPad = nPadX*fgkXPad + fgkXPad / 2.;
  const Float_t zCenterPad = nPadZ*fgkZPad + fgkZPad / 2.;

  x = xCenterPad - xCenterStrip;
  z = zCenterPad - zCenterStrip;

Float_t DistanceToPadPar(Int_t* det, const Float_t* pos, Float_t* dist3d = 0)
 Returns distance of  space point with coor pos (x,y,z) (cm) wrt
 pad with Detector Indices idet (iSect,iPlate,iStrip,iPadX,iPadZ)

Bool_t IsInsideThePadPar(Int_t* det, const Float_t* pos)
 Returns true if space point with coor pos (x,y,z) (cm) falls
 inside pad with Detector Indices idet (iSect,iPlate,iStrip,iPadX,iPadZ)

Bool_t IsInsideThePad(TGeoHMatrix* mat, const Float_t* pos, Float_t* dist3d = 0)
 Returns true if space point with coor pos (x,y,z) [cm] falls inside
 pad identified by the matrix mat. In case dist3d!=0, dist3d vector
 has been filled with the 3D distance between the impact point on
 the pad and the pad centre (in the reference frame of the TOF pad
 identified by the matrix mat).

void GetVolumePath(const Int_t* ind, Char_t* path)
 This function returns the colume path of a given pad

void GetVolumePath(Int_t sector, Char_t* path)
 This function returns the colume path of a given sector

void GetVolumePath(Int_t sector, Int_t plate, Int_t strip, Char_t* path)
 This function returns the colume path of a given strip

void GetPos(Int_t* det, Float_t* pos)
 Returns space point coor (x,y,z) (cm)  for Detector
 Indices  (iSect,iPlate,iStrip,iPadX,iPadZ)

Int_t GetPlate(const Float_t* pos)
 Returns the Plate index

Int_t GetSector(const Float_t* pos)
 Returns the Sector index

Int_t GetStrip(const Float_t* pos)
 Returns the Strip index

Int_t GetPadZ(const Float_t* pos)
 Returns the Pad index along Z

const Float_t klsensmx = kNpadX*fgkXPad;  // length of Sensitive Layer
const Float_t khsensmy = 0.05;//0.11;//0.16;// heigth of Sensitive Layer
const Float_t kwsensmz = kNpadZ*fgkZPad;  // width of Sensitive Layer
Int_t GetPadX(const Float_t* pos)
 Returns the Pad index along X

const Float_t klsensmx = kNpadX*fgkXPad;  // length of Sensitive Layer
const Float_t khsensmy = 0.05;//0.11;//0.16;// heigth of Sensitive Layer
const Float_t kwsensmz = kNpadZ*fgkZPad;  // width of Sensitive Layer
Float_t GetX(const Int_t* det)
 Returns X coordinate (cm)

Float_t GetY(const Int_t* det)
 Returns Y coordinate (cm)

Float_t GetZ(const Int_t* det)
 Returns Z coordinate (cm)

void DetToSectorRF(Int_t* vol, Double_t** coord)
 Returns the local coordinates (x, y, z) in sector reference frame
 for the 4 corners of each sector pad (vol[1], vol[2], vol[3], vol[4])

Float_t GetPadDx(const Float_t* pos)
 Returns the x coordinate in the Pad reference frame

Float_t GetPadDy(const Float_t* pos)
 Returns the y coordinate in the Pad reference frame

Float_t GetPadDz(const Float_t* pos)
 Returns the z coordinate in the Pad reference frame

void Translation(Float_t* xyz, Float_t* translationVector)
 Return the vector xyz translated by translationVector vector

void Rotation(Float_t* xyz, Double_t* rotationAngles)
 Return the vector xyz rotated according to the rotationAngles angles

void InverseRotation(Float_t* xyz, Double_t* rotationAngles)
 Rotates the vector xyz acordint to the rotationAngles

Int_t GetIndex(const Int_t* detId)
Retrieve calibration channel index
void GetVolumeIndices(Int_t index, Int_t* detId)
 Retrieve volume indices from the calibration channel index

Int_t NStrip(Int_t nPlate)
 Returns the strips number for the plate number 'nPlate'

UShort_t GetAliSensVolIndex(Int_t sec, Int_t pla, Int_t str)
 Get the index of the TOF alignable volume in the AliGeomManager order.

Int_t GetStripNumber(Int_t isector, Int_t iplate, Int_t istrip)
 Get the serial number of the TOF strip number istrip [0,14/18],
   in the module number iplate [0,4],
   in the TOF SM number isector [0,17].
 This number will range in [0,1637].

void GetStripAndModule(Int_t iStripPerSM, Int_t& iplate, Int_t& istrip)
 Convert the serial number of the TOF strip number iStripPerSM [0,90]
 in module number iplate [0,4] and strip number istrip [0,14/18].

Int_t GetStripNumberPerSM(Int_t iplate, Int_t istrip)
 Get the serial number of the TOF strip number istrip [0,14/18],
   in the module number iplate [0,4].
 This number will range in [0,90].

void PadRF2TrackingRF(Float_t* ctrackPos, Float_t* differenceT)
 To convert the 3D distance ctrackPos, referred to the ALICE RF,
 into the 3D distance differenceT, referred to the tracking RF
 in case ctrakPos belongs to a TOF sensitive volume.

+ XPad()
 pad centre coordinates in the strip tracking frame
Int_t GetTOFsupermodule(Int_t index)
 Return the TOF supermodule where TOF channel index is located
AliTOFGeometry()
Int_t NStripA()
{ return kNStripA;}
Int_t NStripB()
{ return kNStripB;}
Int_t NStripC()
{ return kNStripC;}
Int_t NMaxNstrip()
{ return kMaxNstrip;}
Int_t NpadX()
{ return kNpadX;}
Int_t NpadZ()
{ return kNpadZ;}
Int_t NpadXStrip()
{ return kNpadX*kNpadZ;}
Int_t NSectors()
{ return kNSectors;}
Int_t NPlates()
{ return kNPlates;}
Int_t NStripXSector()
Int_t NPadXSector()
Float_t RinTOF()
{ return fgkxTOF;}
Float_t Rmin()
{ return fgkRmin;}
Float_t Rmax()
{ return fgkRmax;}
Float_t ZPad()
{ return fgkZPad;}
Float_t StripLength()
{ return fgkStripLength;}
Float_t DeadTime()
{ return fgkDeadTime;}
Float_t MatchingWindow()
Int_t MaxTOFTree()
{ return kMaxTOFTree;}
Int_t NDDL()
{ return kNDDL;}
Int_t NTRM()
{ return kNTRM;}
Int_t NTdc()
{ return kNTdc;}
Int_t NChain()
{ return kNChain;}
Int_t NCh()
{ return kNCh;}
Int_t NPadXTRM()
{ return kNCh*kNTdc*kNChain;}
Float_t ZlenA()
{ return fgkZlenA;}
Float_t ZlenB()
{ return fgkZlenB;}
Float_t ZlenC()
{ return fgkZlenC;}
Float_t MaxhZtof()
{ return fgkMaxhZtof;}
Float_t SigmaForTail1()
{ return fgkSigmaForTail1;}
Float_t SigmaForTail2()
{ return fgkSigmaForTail2;}
Double_t GetAlpha()
{ return 2 * 3.14159265358979323846 / kNSectors; }
Float_t TdcBinWidth()
{return fgkTdcBin;}
Float_t ToTBinWidth()
{return fgkToTBin;}
Float_t BunchCrossingBinWidth()
Float_t SlewTOTMin()
{return fgkSlewTOTMin;}
Float_t SlewTOTMax()
{return fgkSlewTOTMax;}
void SetHoles(Bool_t holes)
{fgHoles = holes;}
Bool_t GetHoles()
{return fgHoles;}
Float_t GetAngles(Int_t iplate, Int_t istrip)
{return fgkAngles[iplate][istrip];}
Float_t GetHeights(Int_t iplate, Int_t istrip)
{return fgkHeights[iplate][istrip];}
Float_t GetDistances(Int_t iplate, Int_t istrip)
{return fgkDistances[iplate][istrip];}