]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - MUON/AliMUONGeometryTransformer.h
correct mask for V0 charge decoding in STU payload
[u/mrichter/AliRoot.git] / MUON / AliMUONGeometryTransformer.h
index 7274c2dab462d6eed6560259ae3cc8a90531347f..8d85eef0182d84b90f033d8cf00aae1ecfe0fa6c 100644 (file)
@@ -30,6 +30,8 @@ class AliMUONGeometryDetElement;
 
 class TGeoManager;
 class TClonesArray;
+class AliMpExMap;
+class AliMpArea;
 
 class AliMUONGeometryTransformer : public TObject
 {
@@ -40,8 +42,8 @@ class AliMUONGeometryTransformer : public TObject
     
     // methods
     void  AddModuleTransformer(AliMUONGeometryModuleTransformer* transformer);
-    void  AddMisAlignModule(Int_t moduleId, const TGeoHMatrix& matrix);
-    void  AddMisAlignDetElement(Int_t detElemId, const TGeoHMatrix& matrix);
+    void  AddMisAlignModule(Int_t moduleId, const TGeoHMatrix& matrix, Bool_t bGlobal = kTRUE);
+    void  AddMisAlignDetElement(Int_t detElemId, const TGeoHMatrix& matrix, Bool_t bGlobal = kTRUE);
     void  CreateModules();
 
     void  AddAlignableVolumes() const; 
@@ -50,6 +52,7 @@ class AliMUONGeometryTransformer : public TObject
 
     // IO
     //
+    Bool_t  LoadTransformations(); 
     Bool_t  LoadGeometryData(const TString& fileName);
     Bool_t  LoadGeometryData();
 
@@ -92,6 +95,8 @@ class AliMUONGeometryTransformer : public TObject
     
     Bool_t  HasDE(Int_t detElemId) const;
 
+    AliMpArea* GetDEArea(Int_t detElemId) const;
+    
   protected:
     /// Not implemented
     AliMUONGeometryTransformer(const AliMUONGeometryTransformer& right);
@@ -99,7 +104,14 @@ class AliMUONGeometryTransformer : public TObject
     AliMUONGeometryTransformer&  operator = (const AliMUONGeometryTransformer& right);
  
   private:
+    // static methods
+    static const TString&  GetDefaultDetectorName(); 
+
     // methods
+      
+    void CreateDEAreas() const;
+    
+    Bool_t LoadMapping() const;
     AliMUONGeometryModuleTransformer* GetModuleTransformerNonConst(
                                     Int_t index, Bool_t warn = true) const;
 
@@ -120,7 +132,6 @@ class AliMUONGeometryTransformer : public TObject
     TString ReadModuleTransforms(ifstream& in);
     TString ReadDetElemTransforms(ifstream& in);
     Bool_t  ReadTransformations(const TString& fileName);
-    Bool_t  LoadTransformations(); 
 
     void    WriteTransform(ofstream& out, const TGeoMatrix* transform) const;
     void    WriteModuleTransforms(ofstream& out) const;
@@ -128,17 +139,14 @@ class AliMUONGeometryTransformer : public TObject
     
     TString GetModuleSymName(Int_t moduleId) const;
     TString GetDESymName(Int_t detElemId) const;
-    
-    // static data members
-    static const TString  fgkDefaultDetectorName; ///< Default detector name
-    
 
     // data members
     TString        fDetectorName;       ///< Detector name
     TObjArray*     fModuleTransformers; ///< array of module transformers
     TClonesArray*  fMisAlignArray;      ///< array of misalignment data
-
-  ClassDef(AliMUONGeometryTransformer,3)  // Geometry parametrisation
+    mutable AliMpExMap*    fDEAreas; ///< areas of detection elements in global coordinates
+    
+  ClassDef(AliMUONGeometryTransformer,4)  // Geometry parametrisation
 };
 
 // inline methods