]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PHOS/AliEMCAGeometry.h
Dimitri : bug in PPSD geometry fixed
[u/mrichter/AliRoot.git] / PHOS / AliEMCAGeometry.h
1 #ifndef ALIEMCAGEOMETRY_H
2 #define ALIEMCAGEOMETRY_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */
7
8 //_________________________________________________________________________
9 // Geometry class  for PHOS : EMCA (Electromagnetic Calirometer)
10 //                  
11 //*-- Author:   Yves Schutz (Subatech)
12 //    Modified: Yuri Kharlov (IHEP, Protvino)
13 //    15 September 2000
14
15 // --- ROOT system ---
16
17 #include "TObjArray.h"
18
19 // --- AliRoot header files ---
20
21 class AliEMCAGeometry : public TObject {
22
23 public: 
24
25            AliEMCAGeometry();
26   virtual ~AliEMCAGeometry(void) {}
27
28   Float_t    GetAirFilledBoxSize(Int_t index)     const { 
29     return fAirFilledBoxSize[index] ;}
30   Float_t    GetCrystalHolderThickness(void)      const { 
31     return fCrystalHolderThickness ; } 
32   Float_t    GetCrystalSize(Int_t index)          const { 
33     return fXtlSize[index] ; }
34   Float_t    GetCrystalSupportHeight(void)        const { 
35     return fCrystalSupportHeight ; } 
36   Float_t    GetCrystalWrapThickness(void)        const { 
37     return fCrystalWrapThickness;}
38   Float_t    GetGapBetweenCrystals(void)          const { 
39     return fGapBetweenCrystals ; }
40   Float_t    GetIPtoCrystalSurface(void)          const { 
41     return fIPtoCrystalSurface ; }
42   Float_t    GetIPtoOuterCoverDistance(void)      const { 
43     return fIPtoOuterCoverDistance ; }
44   Float_t    GetLowerThermoPlateThickness(void)   const { 
45     return fLowerThermoPlateThickness ; }
46   Float_t    GetLowerTextolitPlateThickness(void) const { 
47     return fLowerTextolitPlateThickness ; }
48   Float_t    GetModuleBoxThickness(void)          const { 
49     return fModuleBoxThickness ; }
50   Int_t      GetNPhi(void)                        const { 
51     return fNPhi ; }
52   Int_t      GetNZ(void)                          const { 
53     return fNZ ; }
54   Float_t    GetOuterBoxSize(Int_t index)         const { 
55     return fOuterBoxSize[index] ;    }
56   Float_t    GetOuterBoxThickness(Int_t index)    const { 
57     return fOuterBoxThickness[index] ; } 
58   Float_t    GetPinDiodeSize(Int_t index)         const { 
59     return fPinDiodeSize[index] ; }
60   Float_t    GetSecondUpperPlateThickness(void)   const { 
61     return fSecondUpperPlateThickness ; }
62   Float_t    GetSupportPlateThickness(void)       const { 
63     return fSupportPlateThickness ; }    
64   Float_t    GetTextolitBoxSize(Int_t index)      const { 
65     return fTextolitBoxSize[index] ; }
66   Float_t    GetTextolitBoxThickness(Int_t index) const { 
67     return fTextolitBoxThickness[index]; } 
68   Float_t    GetUpperPlateThickness(void)         const { 
69     return fUpperPlateThickness ; }
70   Float_t    GetUpperCoolingPlateThickness(void)  const { 
71     return fUpperCoolingPlateThickness ; }
72  
73 private:
74
75   Float_t fAirFilledBoxSize[3] ;          // Air filled box containing one module
76   Float_t fAirThickness[3] ;              // Space filled with air between the module box and the Textolit box
77   Float_t fCrystalSupportHeight ;         // Height of the support of the crystal    
78   Float_t fCrystalWrapThickness ;         // Thickness of Tyvek wrapping the crystal
79   Float_t fCrystalHolderThickness ;       // Titanium holder of the crystal
80   Float_t fGapBetweenCrystals ;           // Total Gap between two adjacent crystals 
81   Float_t fIPtoOuterCoverDistance ;       // Distances from interaction point to outer cover 
82   Float_t fIPtoCrystalSurface ;           // Distances from interaction point to Xtal surface
83   Float_t fModuleBoxThickness ;           // Thickness of the thermo insulating box containing one crystals module 
84   Float_t fLowerTextolitPlateThickness ;  // Thickness of lower textolit plate
85   Float_t fLowerThermoPlateThickness ;    // Thickness of lower thermo insulating plate
86   Int_t   fNPhi ;                         // Number of crystal units in X (phi) direction
87   Int_t   fNZ ;                           // Number of crystal units in Z direction
88   Float_t fOuterBoxSize[3] ;              // Size of the outer  thermo insulating foam box
89   Float_t fOuterBoxThickness[3] ;         // Thickness of the outer thermo insulating foam box
90   Float_t fPinDiodeSize[3] ;              // Size of the PIN Diode 
91   TObjArray *  fRotMatrixArray ;          // Liste of rotation matrices (one per phos module)
92   Float_t fSecondUpperPlateThickness ;    // Thickness of  upper polystyrene foam plate
93   Float_t fSupportPlateThickness ;        // Thickness of the Aluminium support plate  
94   Float_t fUpperCoolingPlateThickness ;   // Thickness of the upper cooling plate 
95   Float_t fUpperPlateThickness ;          // Thickness of the uper thermo insulating foam plate 
96   Float_t fTextolitBoxSize[3] ;           // Size of the Textolit box inside the insulating foam box
97   Float_t fTextolitBoxThickness[3] ;      // Thicknesses of th Textolit box
98   Float_t fXtlSize[3] ;                   // PWO4 crystal dimensions
99
100   ClassDef(AliEMCAGeometry,1)             // EMCA geometry class 
101
102 } ;
103
104 #endif // AliEMCAGEOMETRY_H