ROOT logo
AliRoot » STEER » STEER » AliGeomManager

class AliGeomManager: public TObject

Function Members (Methods)

public:
virtual~AliGeomManager()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
static Bool_tApplyAlignObjsFromCDB(const char* AlDetsList)
static Bool_tApplyAlignObjsToGeom(TObjArray& alObjArray, Bool_t ovlpcheck = kFALSE)
static Bool_tApplyAlignObjsToGeom(const char* fileName, const char* clArrayName)
static Bool_tApplyAlignObjsToGeom(const char* detName, Int_t runnum, Int_t version, Int_t sversion)
static Bool_tApplyAlignObjsToGeom(const char* uri, const char* path, Int_t runnum, Int_t version, Int_t sversion)
virtual voidTObject::Browse(TBrowser* b)
static voidCheckOverlapsOverPNs(Double_t threshold)
static Bool_tCheckSymNamesLUT(const char* detsToBeChecked)
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
virtual voidTObject::Delete(Option_t* option = "")MENU
static voidDestroy()
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 AliAlignObj*GetAlignObj(UShort_t voluid)
static AliAlignObj*GetAlignObj(AliGeomManager::ELayerID layerId, Int_t modId)
static Bool_tGetDeltaForBranch(AliAlignObj& aao, TGeoHMatrix& inclusiveD)
static Bool_tGetDeltaForBranch(Int_t index, TGeoHMatrix& inclusiveD)
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
static Bool_tGetFromGeometry(const char* symname, AliAlignObj& alobj)
static TGeoManager*GetGeometry()
virtual const char*TObject::GetIconName() const
static TGeoHMatrix*GetMatrix(Int_t index)
static TGeoHMatrix*GetMatrix(const char* symname)
static Int_tGetNalignable(const char* module)
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 TGeoHMatrix*GetOrigGlobalMatrix(Int_t index)
static Bool_tGetOrigGlobalMatrix(const char* symname, TGeoHMatrix& m)
static Bool_tGetOrigRotation(Int_t index, Double_t* r)
static Bool_tGetOrigTranslation(Int_t index, Double_t* t)
static Bool_tGetRotation(Int_t index, Double_t* r)
virtual const char*TObject::GetTitle() const
static const TGeoHMatrix*GetTracking2LocalMatrix(Int_t index)
static Bool_tGetTrackingMatrix(Int_t index, TGeoHMatrix& m)
static Bool_tGetTranslation(Int_t index, Double_t* t)
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() constMENU
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
static const char*LayerName(Int_t layerId)
static Int_tLayerSize(Int_t layerId)
static UShort_tLayerToVolUID(AliGeomManager::ELayerID layerId, Int_t modId)
static UShort_tLayerToVolUID(Int_t layerId, Int_t modId)
static UShort_tLayerToVolUIDSafe(AliGeomManager::ELayerID layerId, Int_t modId)
static UShort_tLayerToVolUIDSafe(Int_t layerId, Int_t modId)
static Bool_tLoadAlignObjsFromCDBSingleDet(const char* detName, TObjArray& alignObjArray)
static voidLoadGeometry(const char* geomFileName = NULL)
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
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)
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 = "")
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)
static voidSetGeometry(TGeoManager *const geom)
static voidTObject::SetObjectStat(Bool_t stat)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
static const char*SymName(UShort_t voluid)
static const char*SymName(AliGeomManager::ELayerID layerId, Int_t modId)
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()
static AliGeomManager::ELayerIDVolUIDToLayer(UShort_t voluid)
static AliGeomManager::ELayerIDVolUIDToLayer(UShort_t voluid, Int_t& modId)
static AliGeomManager::ELayerIDVolUIDToLayerSafe(UShort_t voluid)
static AliGeomManager::ELayerIDVolUIDToLayerSafe(UShort_t voluid, Int_t& modId)
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()
private:
AliGeomManager()
AliGeomManager(const AliGeomManager&)
static TGeoHMatrix*GetMatrix(TGeoPNEntry *const pne)
static TGeoHMatrix*GetOrigGlobalMatrix(TGeoPNEntry *const pne)
static Bool_tGetOrigGlobalMatrixFromPath(const char* path, TGeoHMatrix& m)
static TGeoPNEntry*GetPNEntry(Int_t index)
static TGeoPNEntry*GetPNEntry(AliGeomManager::ELayerID layerId, Int_t modId)
static voidInitAlignObjFromGeometry()
static voidInitNalignable()
static voidInitPNEntriesLUT()
AliGeomManager&operator=(const AliGeomManager&)
static voidResetPNEntriesLUT()

Data Members

public:
enum ELayerID { kInvalidLayer
kFirstLayer
kSPD1
kSPD2
kSDD1
kSDD2
kSSD1
kSSD2
kTPC1
kTPC2
kTRD1
kTRD2
kTRD3
kTRD4
kTRD5
kTRD6
kTOF
kPHOS1
kPHOS2
kHMPID
kMUON
kEMCAL
kLastLayer
};
enum TObject::EStatusBits { kCanDelete
kMustCleanup
kObjInCanvas
kIsReferenced
kHasUUID
kCannotPick
kNoContextMenu
kInvalidObject
};
enum TObject::[unnamed] { kIsOnHeap
kNotDeleted
kZombie
kBitMask
kSingleKey
kOverwrite
kWriteDelete
};
private:
static AliAlignObj**fgAlignObjs[20]Alignment objects
static TGeoManager*fgGeometry
static const char*fgLayerName[20]Name of layers
static Int_tfgLayerSize[20]Size of layers
static Int_tfgNalignable[18]
static TGeoPNEntry**fgPNEntry[20]TGeoPNEntries
static const char*fgkDetectorName[18]name of detectors
static const Int_tfgkNDetectorsnumber of detectors + AD

Class Charts

Inheritance Chart:
TObject
AliGeomManager

Function documentation

void Destroy()
 destroy the manager as well as gGeoManager (if it was not attached to fgGeometry)
void LoadGeometry(const char* geomFileName = NULL)
 initialization
 Load geometry either from a file
 or from the corresponding CDB entry
void SetGeometry(TGeoManager *const geom)
 Load already active geometry
AliGeomManager()
 default constructor
~AliGeomManager()
 dummy destructor
Int_t LayerSize(Int_t layerId)
 Get the layer size for layer corresponding to layerId.
 Implemented only for ITS,TPC,TRD,TOF and HMPID

const char* LayerName(Int_t layerId)
 Get the layer name corresponding to layerId.
 Implemented only for ITS,TPC,TRD,TOF and HMPID

UShort_t LayerToVolUID(ELayerID layerId, Int_t modId)
 From detector (layer) name and module number (according to detector
 internal numbering) build the unique numerical identity of that volume
 inside ALICE
 fVolUID is 16 bits, first 5 reserved for layerID (32 possible values),
 remaining 11 for module ID inside det (2048 possible values).
 NO check for validity of given modId inside the layer for speed's sake.

UShort_t LayerToVolUID(Int_t layerId, Int_t modId)
 From detector (layer) name and module number (according to detector
 internal numbering) build the unique numerical identity of that volume
 inside ALICE
 fVolUID is 16 bits, first 5 reserved for layerID (32 possible values),
 remaining 11 for module ID inside det (2048 possible values).
 NO check for validity of given modId inside the layer for speed's sake.

UShort_t LayerToVolUIDSafe(ELayerID layerId, Int_t modId)
 From detector (layer) name and module number (according to detector
 internal numbering) build the unique numerical identity of that volume
 inside ALICE
 fVolUID is 16 bits, first 5 reserved for layerID (32 possible values),
 remaining 11 for module ID inside det (2048 possible values).
 Check validity of given modId inside the layer.

UShort_t LayerToVolUIDSafe(Int_t layerId, Int_t modId)
 From detector (layer) name and module number (according to detector
 internal numbering) build the unique numerical identity of that volume
 inside ALICE
 fVolUID is 16 bits, first 5 reserved for layerID (32 possible values),
 remaining 11 for module ID inside det (2048 possible values).
 Check validity of given modId inside the layer.

Bool_t GetFromGeometry(const char* symname, AliAlignObj& alobj)
 Get the alignment object which corresponds to the symbolic volume name
 symname (in case equal to the TGeo volume path)
 The method is extremely slow due to the searching by string,
 therefore it should be used with great care!!
 This method returns FALSE if the symname of the object was not
 valid neither to get a TGeoPEntry nor as a volume path, or if the path
 associated to the TGeoPNEntry was not valid.

void InitAlignObjFromGeometry()
 Loop over all alignable volumes and extract
 the corresponding alignment objects from
 the TGeo geometry

AliAlignObj* GetAlignObj(UShort_t voluid)
 Returns the alignment object for given volume ID

AliAlignObj* GetAlignObj(AliGeomManager::ELayerID layerId, Int_t modId)
 Returns pointer to alignment object given its layer and module ID

const char* SymName(UShort_t voluid)
 Returns the symbolic volume name for given volume ID

const char* SymName(AliGeomManager::ELayerID layerId, Int_t modId)
 Returns the symbolic volume name given for a given layer
 and module ID

Bool_t CheckSymNamesLUT(const char* detsToBeChecked)
 Check the look-up table which associates the unique numerical identity of
 each alignable volume to the corresponding symbolic volume name.
 The LUT is now held inside the geometry and handled by TGeo.
 The method is meant to be launched when loading a geometry to verify that
 no changes in the symbolic names have been introduced, which would prevent
 backward compatibility with alignment objects.
 To accept both complete and partial geometry, this method skips the check
 for TRD and TOF volumes which are missing in the partial geometry.

void InitPNEntriesLUT()
 Initialize the look-up table which associates the unique
 numerical identity of each alignable volume to the
 corresponding TGeoPNEntry.
 The LUTs are static; they are created at the creation of the
 AliGeomManager instance and recreated if the geometry has changed

TGeoHMatrix* GetMatrix(TGeoPNEntry *const pne)
 Get the global transformation matrix for a given PNEntry
 by quering the TGeoManager
TGeoHMatrix* GetMatrix(Int_t index)
 Get the global transformation matrix for a given alignable volume
 identified by its unique ID 'index' by quering the TGeoManager
TGeoHMatrix* GetMatrix(const char* symname)
 Get the global transformation matrix for a given alignable volume
  identified by its symbolic name 'symname' by quering the TGeoManager
Bool_t GetTranslation(Int_t index, Double_t* t)
 Get the translation vector for a given module 'index'
 by quering the TGeoManager
Bool_t GetRotation(Int_t index, Double_t* r)
 Get the rotation matrix for a given module 'index'
 by quering the TGeoManager
Bool_t GetDeltaForBranch(Int_t index, TGeoHMatrix& inclusiveD)
 The method sets the matrix passed as argument as the global delta
 (for the volume referred by the unique index) including the displacements
 of all parent volumes in the branch.

Bool_t GetDeltaForBranch(AliAlignObj& aao, TGeoHMatrix& inclusiveD)
 The method sets the matrix passed as argument as the global delta
 (for the volume referred by the alignment object) including the displacements
 of all parent volumes in the brach.

Bool_t GetOrigGlobalMatrix(const char* symname, TGeoHMatrix& m)
 Get the global transformation matrix (ideal geometry) for a given alignable volume
 The alignable volume is identified by 'symname' which has to be either a valid symbolic
 name, the query being performed after alignment, or a valid volume path if the query is
 performed before alignment.

Bool_t GetOrigGlobalMatrixFromPath(const char* path, TGeoHMatrix& m)
 The method returns the global matrix for the volume identified by
 'path' in the ideal detector geometry.
 The output global matrix is stored in 'm'.
 Returns kFALSE in case TGeo has not been initialized or the volume
 path is not valid.

TGeoHMatrix* GetOrigGlobalMatrix(TGeoPNEntry *const pne)
 The method returns global matrix for the ideal detector geometry
 using the corresponding TGeoPNEntry as an input.
 The returned pointer should be copied by the user, since its content could
 be overwritten by a following call to the method.
 In case of missing TGeoManager the method returns NULL.

TGeoHMatrix* GetOrigGlobalMatrix(Int_t index)
 The method returns global matrix from the ideal detector geometry
 for the volume identified by its index.
 The returned pointer should be copied by the user, since its content could
 be overwritten by a following call to the method.
 In case of missing TGeoManager the method returns NULL.
 If possible, the method uses the LUT of original ideal matrices
 for fast access. The LUT is reset in case a
 new geometry is loaded.

Bool_t GetOrigTranslation(Int_t index, Double_t* t)
 Get the original translation vector (ideal geometry)
 for a given module 'index' by quering the TGeoManager
Bool_t GetOrigRotation(Int_t index, Double_t* r)
 Get the original rotation matrix (ideal geometry)
 for a given module 'index' by quering the TGeoManager
const TGeoHMatrix* GetTracking2LocalMatrix(Int_t index)
 Get the matrix which transforms from the tracking to the local RS
 The method queries directly the TGeoPNEntry
Bool_t GetTrackingMatrix(Int_t index, TGeoHMatrix& m)
 Get the matrix which transforms from the tracking r.s. to
 the global one.
 Returns kFALSE in case of error.
TGeoPNEntry* GetPNEntry(Int_t index)
 Returns the TGeoPNEntry for the given global volume ID "voluid"

TGeoPNEntry* GetPNEntry(AliGeomManager::ELayerID layerId, Int_t modId)
 Returns the TGeoPNEntry for a given layer
 and module ID

void CheckOverlapsOverPNs(Double_t threshold)
 Check for overlaps/extrusions on physical nodes only;
 this overlap-checker is meant to be used to check overlaps/extrusions
 originated by the application of alignment objects.

Int_t GetNalignable(const char* module)
 Get number of declared alignable volumes in current geometry
 for the given detector "module" passed as a vaild detector name
 if the detector name is invalid return -1
void InitNalignable()
 Set number of declared alignable volumes for given detector in current geometry
 by looping on the list of PNEntries

Bool_t ApplyAlignObjsFromCDB(const char* AlDetsList)
 Calls AddAlignObjsFromCDBSingleDet for the detectors appearing in
 the list passed as argument (called by AliSimulation and
 AliReconstruction)
 Read the alignment objects from CDB.
 Each detector is supposed to have the
 alignment objects in DET/Align/Data CDB path.
 All the detector objects are then collected,
 sorted by geometry level (starting from ALIC) and
 then applied to the TGeo geometry.
 Finally an overlaps check is performed.

Bool_t LoadAlignObjsFromCDBSingleDet(const char* detName, TObjArray& alignObjArray)
 Adds the alignable objects found in the CDBEntry for the detector
 passed as argument to the array of all alignment objects to be applyed
 to geometry

 Fills array of single detector's alignable objects from CDB
Bool_t ApplyAlignObjsToGeom(TObjArray& alObjArray, Bool_t ovlpcheck = kFALSE)
 Read collection of alignment objects (AliAlignObj derived) saved
 in the TClonesArray alObjArray and apply them to gGeoManager

Bool_t ApplyAlignObjsToGeom(const char* fileName, const char* clArrayName)
 read collection of alignment objects (AliAlignObj derived) saved
 in the TClonesArray ClArrayName in the file fileName and apply
 them to the geometry

Bool_t ApplyAlignObjsToGeom(const char* uri, const char* path, Int_t runnum, Int_t version, Int_t sversion)
 read collection of alignment objects (AliAlignObj derived) saved
 in the TClonesArray ClArrayName in the AliCDBEntry identified by
 param (to get the AliCDBStorage) and Id; apply the alignment objects
 to the geometry

Bool_t ApplyAlignObjsToGeom(const char* detName, Int_t runnum, Int_t version, Int_t sversion)
 read collection of alignment objects (AliAlignObj derived) saved
 in the TClonesArray ClArrayName in the AliCDBEntry identified by
 param (to get the AliCDBStorage) and Id; apply the alignment objects
 to the geometry

void ResetPNEntriesLUT()
 cleans static arrays containing the information on currently loaded geometry

TGeoManager* GetGeometry()
{ return fgGeometry; }
ELayerID VolUIDToLayer(UShort_t voluid, Int_t& modId)
ELayerID VolUIDToLayer(UShort_t voluid)
ELayerID VolUIDToLayerSafe(UShort_t voluid, Int_t& modId)
ELayerID VolUIDToLayerSafe(UShort_t voluid)
AliGeomManager()
AliGeomManager& operator=(const AliGeomManager& )