]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PHOS/AliPHOSGeoUtils.h
Fixing compilation warnings
[u/mrichter/AliRoot.git] / PHOS / AliPHOSGeoUtils.h
index 17054cedc78df64869cc78a8f589d69377f0912a..7f6e74e01062d236434c67c9989f55cfe6580c56 100644 (file)
@@ -5,8 +5,10 @@
 
 //_________________________________________________________________________
 // class for geometry transformations in PHOS
+// this class contains AiRoot-independent transformations,
+// AliRoot part is in AliPHOSGeometry
 // PHOS consists of the electromagnetic calorimeter (EMCA)
-// and a charged particle veto (CPV)
+// charged particle veto (CPV) and support
 // 
 //*-- Author: Dmitri Peressounko (RRC "KI")
 
 
 // --- AliRoot header files ---
 
+class TGeoHMatrix ;
 class TVector3;
 class TParticle ;
+class AliPHOSEMCAGeometry;
+class AliPHOSCPVGeometry;
+class AliPHOSSupportGeometry;
 
 class AliPHOSGeoUtils : public TNamed {
 
@@ -67,14 +73,24 @@ public:
 
   Bool_t IsInEMC(Int_t id) const { if (id > fNModules *  fNCristalsInModule ) return kFALSE; return kTRUE; } 
 
+  //Method to set shift-rotational matrixes from ESDHeader
+  void SetMisalMatrix(const TGeoHMatrix * m, Int_t mod) ;
 
-private:
-  void Init(void) ;  //Read all sizes etc. for EMC and CPV geometries
+protected:
+  //Returns shift-rotational matrixes for different volumes
+  const TGeoHMatrix * GetMatrixForModule(Int_t mod)const ;
+  const TGeoHMatrix * GetMatrixForStrip(Int_t mod, Int_t strip)const ;
+  const TGeoHMatrix * GetMatrixForCPV(Int_t mod)const ;
+  const TGeoHMatrix * GetMatrixForPHOS(Int_t mod)const ;
+
+protected:
 
-private:
+  AliPHOSEMCAGeometry     *fGeometryEMCA ;   // Geometry object for Electromagnetic calorimeter
+  AliPHOSCPVGeometry      *fGeometryCPV ;    // Geometry object for CPV  (IHEP)
+  AliPHOSSupportGeometry  *fGeometrySUPP ;   // Geometry object for PHOS support
 
-  Int_t fNModules ;          // Maximal designed number of modules in PHOS
+  Int_t fNModules ;          //Maximal designed number of modules in PHOS
   Int_t fNCristalsInModule ; //Number of crystals in one module
   Int_t fNPhi ;              //Number of crystals along Phi direction
   Int_t fNZ ;                //Number of crystals along Z direction
@@ -87,12 +103,20 @@ private:
   Float_t fCrystalShift ;    //Distance between center of module and crystal surface
   Float_t fXtlArrSize[3] ;   //Total size of cristals array
   Float_t fCryCellShift ; 
+  Float_t fCryStripShift ;
   Float_t fCellStep ; 
   Float_t fPadSizePhi ;      //Size of CPV pad in Phi direction
   Float_t fPadSizeZ ;        //Size of CPV pad in Z direction
   Float_t fCPVBoxSizeY ;
 
-  ClassDef(AliPHOSGeoUtils,1)       // PHOS geometry class 
+  TGeoHMatrix* fEMCMatrix[5] ; //Orientations of crystalls array in modules
+  TGeoHMatrix* fStripMatrix[5][224];  //Orientations of strip units
+  TGeoHMatrix* fCPVMatrix[5] ; //Orientations of CPV
+  const TGeoHMatrix* fPHOSMatrix[5] ; //Orientations of PHOS modules
+
+  TClonesArray * fMisalArray ;
+
+  ClassDef(AliPHOSGeoUtils,2)       // PHOS geometry class 
 
 } ;