X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=STEER%2FAliGeomManager.h;h=63b62078af15a26e71f15bc16f9ae3d7a8711c1c;hb=b7ec049a31d21723761826008c99d33c3f677342;hp=77636821af4370eecd5a81f4ee983845a950a75f;hpb=5d534fe369c074ad35038d190e908ce814cb5ed3;p=u%2Fmrichter%2FAliRoot.git diff --git a/STEER/AliGeomManager.h b/STEER/AliGeomManager.h index 77636821af4..63b62078af1 100644 --- a/STEER/AliGeomManager.h +++ b/STEER/AliGeomManager.h @@ -2,12 +2,16 @@ #define ALI_GEOM_MANAGER_H // -// Class for interfacing to the geometry; it also builds and manages two -// look-up tables for fast access to volumes : -// 1) the look-up table mapping unique volume ids to symbolic volume names -// 2) the look-up table mapping unique volume ids to TGeoPNEntries -// this allows to access directly the functionality of the physical node -// associated to a given alignable volume by means of its index +// Class for interfacing to the geometry; it also builds and manages the +// look-up tables for fast access to geometry and alignment information +// for sensitive alignable volumes: +// 1) the look-up table mapping unique volume ids to TGeoPNEntries +// this allows to access directly by means of the unique index +// the associated symbolic name and original global matrix +// in addition to the functionality of the physical node +// associated to a given alignable volume +// 2) the look-up table of the alignment objects associated to the +// indexed alignable volumes // #include @@ -15,7 +19,6 @@ class TGeoManager; class TGeoPNEntry; class TGeoHMatrix; - class TObjArray; class AliAlignObj; @@ -76,9 +79,10 @@ public: static Bool_t GetTrackingMatrix(Int_t index, TGeoHMatrix &m); static void LoadGeometry(const char *geomFileName = NULL); - static void SetGeometry(TGeoManager *geom); + static void SetGeometry(TGeoManager * const geom); + static void CheckOverlapsOverPNs(Double_t threshold); - static Bool_t ApplyAlignObjsToGeom(TObjArray& alObjArray); + static Bool_t ApplyAlignObjsToGeom(TObjArray& alObjArray, Bool_t ovlpcheck=kFALSE); static Bool_t ApplyAlignObjsToGeom(const char* fileName, const char* clArrayName); @@ -89,9 +93,10 @@ public: Int_t sversion); static Bool_t ApplyAlignObjsToGeom(const char* detName, Int_t runnum, Int_t version, Int_t sversion); - static Bool_t ApplyAlignObjsFromCDB(const char* AlDetsList); static Bool_t LoadAlignObjsFromCDBSingleDet(const char* detName, TObjArray& alignObjArray); + static Bool_t CheckSymNamesLUT(const char* detsToBeChecked); + static Int_t GetNalignable(const char* module); ~AliGeomManager(); @@ -100,28 +105,29 @@ public: AliGeomManager(const AliGeomManager&); AliGeomManager& operator=(const AliGeomManager&); - static TGeoHMatrix* GetMatrix(TGeoPNEntry* pne); - static TGeoHMatrix* GetOrigGlobalMatrix(TGeoPNEntry* pne); + static TGeoHMatrix* GetMatrix(TGeoPNEntry * const pne); + static TGeoHMatrix* GetOrigGlobalMatrix(TGeoPNEntry * const pne); static Bool_t GetOrigGlobalMatrixFromPath(const char *path, TGeoHMatrix &m); static TGeoPNEntry* GetPNEntry(Int_t index); static TGeoPNEntry* GetPNEntry(ELayerID layerId, Int_t modId); + static void ResetPNEntriesLUT(); static void InitAlignObjFromGeometry(); - static void InitSymNamesLUT(); static void InitPNEntriesLUT(); - static void InitOrigMatricesLUT(); + static void InitNalignable(); static TGeoManager* fgGeometry; static Int_t fgLayerSize[kLastLayer - kFirstLayer]; // Size of layers static const char* fgLayerName[kLastLayer - kFirstLayer]; // Name of layers - static TString* fgSymName[kLastLayer - kFirstLayer]; // Symbolic volume names static TGeoPNEntry** fgPNEntry[kLastLayer - kFirstLayer]; // TGeoPNEntries - static TGeoHMatrix** fgOrigMatrix[kLastLayer - kFirstLayer]; // Original matrices before misalignment static AliAlignObj** fgAlignObjs[kLastLayer - kFirstLayer]; // Alignment objects + static const Int_t fgkNDetectors = 15; // number of detectors + static const char * fgkDetectorName[fgkNDetectors] ; // name of detectors + static Int_t fgNalignable[fgkNDetectors]; - ClassDef(AliGeomManager, 0); + ClassDef(AliGeomManager, 0); // Manager of geometry information for alignment }; #endif