]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PHOS/AliPHOSEMCAGeometry.h
Protection added in the preprocessor
[u/mrichter/AliRoot.git] / PHOS / AliPHOSEMCAGeometry.h
1 #ifndef ALIPHOSEMCAGEOMETRY_H
2 #define ALIPHOSEMCAGEOMETRY_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 // Its data members provide geometry parametrization of EMCA
11 // which can be changed in the constructor only.
12 // Author:   Yves Schutz (Subatech)
13 // Modified: Yuri Kharlov (IHEP, Protvino)
14 // 15 September 2000
15
16 // --- ROOT system ---
17 #include "TObject.h"
18 class TObjArray ;
19
20 // --- AliRoot header files ---
21
22 class AliPHOSEMCAGeometry : public TObject {
23
24 public: 
25
26   AliPHOSEMCAGeometry();
27   //Compiler-generated copy ctor and copy-assignment operator _ARE_ OK.
28
29   virtual ~AliPHOSEMCAGeometry(void) {}
30
31   const Float_t * GetStripHalfSize()          const {return fStripHalfSize ;         }
32   Float_t   GetStripWallWidthOut()      const {return fStripWallWidthOut ;     }
33   const Float_t * GetAirCellHalfSize()        const {return fAirCellHalfSize ;       }
34   const Float_t * GetWrappedHalfSize()        const {return fWrappedHalfSize ;       }
35   Float_t   GetAirGapLed()              const {return fAirGapLed ;             }
36   const Float_t * GetCrystalHalfSize()        const {return fCrystalHalfSize ;       }
37   const Float_t * GetSupportPlateHalfSize()   const {return fSupportPlateHalfSize ;  }
38   const Float_t * GetSupportPlateInHalfSize() const {return fSupportPlateInHalfSize ;}
39   Float_t   GetSupportPlateThickness()  const { return fSupportPlateThickness ;}    
40
41   const Float_t * GetPreampHalfSize()         const {return fPreampHalfSize ;        }
42   const Float_t * GetAPDHalfSize()            const {return fPinDiodeHalfSize ;      }
43   const Float_t * GetOuterThermoParams()      const {return  fOuterThermoParams ;    }
44   const Float_t * GetCoolerHalfSize()         const {return fCoolerHalfSize ;        }
45   const Float_t * GetAirGapHalfSize()         const {return fAirGapHalfSize;         }
46   const Float_t * GetInnerThermoHalfSize()    const {return  fInnerThermoHalfSize ;  }
47   const Float_t * GetAlCoverParams()          const {return fAlCoverParams ;         }
48   const Float_t * GetFiberGlassHalfSize()     const {return fFiberGlassHalfSize ;    }
49   const Float_t * GetWarmAlCoverHalfSize()    const {return fWarmAlCoverHalfSize ;   }
50   const Float_t * GetWarmThermoHalfSize()     const {return fWarmThermoHalfSize ;    }
51   const Float_t * GetTSupport1HalfSize()      const {return fTSupport1HalfSize ;     }
52   const Float_t * GetTSupport2HalfSize()      const {return fTSupport2HalfSize ;     }
53   const Float_t * GetTCables1HalfSize()       const {return fTCables1HalfSize ;      }
54   const Float_t * GetTCables2HalfSize()       const {return fTCables2HalfSize ;      }
55   Float_t   GetTSupportDist()           const {return fTSupportDist ;          }
56   const Float_t * GetFrameXHalfSize()         const {return fFrameXHalfSize ;        }
57   const Float_t * GetFrameZHalfSize()         const {return fFrameZHalfSize ;        }
58   const Float_t * GetFrameXPosition()         const {return fFrameXPosition ;        }
59   const Float_t * GetFrameZPosition()         const {return fFrameZPosition ;        }
60   const Float_t * GetFGupXHalfSize()          const {return fFGupXHalfSize ;         }
61   const Float_t * GetFGupXPosition()          const {return fFGupXPosition ;         }
62   const Float_t * GetFGupZHalfSize()          const {return fFGupZHalfSize ;         }
63   const Float_t * GetFGupZPosition()          const {return fFGupZPosition ;         }
64   const Float_t * GetFGlowXHalfSize()         const {return fFGlowXHalfSize ;        }
65   const Float_t * GetFGlowXPosition()         const {return fFGlowXPosition ;        }
66   const Float_t * GetFGlowZHalfSize()         const {return fFGlowZHalfSize ;        }
67   const Float_t * GetFGlowZPosition()         const {return fFGlowZPosition ;        }
68   const Float_t * GetFEEAirHalfSize()         const {return fFEEAirHalfSize ;        }
69   const Float_t * GetFEEAirPosition()         const {return fFEEAirPosition ;        }
70   const Float_t * GetEMCParams()              const {return fEMCParams ;             }
71
72   Float_t    GetIPtoCrystalSurface()     const {return fIPtoCrystalSurface ;   }
73   Float_t    GetIPtoOuterCoverDistance() const {return fIPtoOuterCoverDistance;}
74   Float_t    GetCrystalSize(Int_t index) const {return 2.*fCrystalHalfSize[index] ; }
75
76   Int_t     GetNCellsXInStrip() const { return fNCellsXInStrip;}
77   Int_t     GetNCellsZInStrip() const { return fNCellsZInStrip;}
78   Int_t     GetNStripX()        const { return fNStripX ;      }
79   Int_t     GetNStripZ()        const { return fNStripZ ;      }
80   Int_t     GetNTSuppots()      const { return fNTSupports;    }
81   Int_t     GetNPhi()           const { return fNPhi ;         }
82   Int_t     GetNZ()             const { return fNZ ;           }
83  
84 private:
85
86   Float_t fStripHalfSize[3]   ;        // Strip unit size/2
87   Float_t fAirCellHalfSize[3] ;        // geometry parameter
88   Float_t fWrappedHalfSize[3] ;        // geometry parameter
89   Float_t fSupportPlateHalfSize[3] ;   // geometry parameter
90   Float_t fSupportPlateInHalfSize[3] ; // geometry parameter
91   Float_t fCrystalHalfSize[3] ;        // crystal size/2
92   Float_t fAirGapLed ;                 // geometry parameter
93   Float_t fStripWallWidthOut ;         // Side to another strip  
94   Float_t fStripWallWidthIn ;          // geometry parameter
95   Float_t fTyvecThickness ;            // geometry parameter
96   Float_t fTSupport1HalfSize[3] ;      // geometry parameter
97   Float_t fTSupport2HalfSize[3] ;      // geometry parameter
98   Float_t fPreampHalfSize[3] ;         // geometry parameter
99   Float_t fPinDiodeHalfSize[3] ;       // Size of the PIN Diode 
100
101   Float_t fOuterThermoParams[4] ;      // geometry parameter
102   Float_t fCoolerHalfSize[3] ;         // geometry parameter
103   Float_t fAirGapHalfSize[3] ;         // geometry parameter
104   Float_t fInnerThermoHalfSize[3] ;    // geometry parameter
105   Float_t fAlCoverParams[4] ;          // geometry parameter
106   Float_t fFiberGlassHalfSize[3] ;     // geometry parameter
107
108   Float_t fInnerThermoWidthX ;         // geometry parameter
109   Float_t fInnerThermoWidthY ;         // geometry parameter
110   Float_t fInnerThermoWidthZ ;         // geometry parameter
111   Float_t fAirGapWidthX ;              // geometry parameter
112   Float_t fAirGapWidthY ;              // geometry parameter
113   Float_t fAirGapWidthZ ;              // geometry parameter
114   Float_t fCoolerWidthX ;              // geometry parameter
115   Float_t fCoolerWidthY ;              // geometry parameter
116   Float_t fCoolerWidthZ ;              // geometry parameter
117   Float_t fAlCoverThickness ;          // geometry parameter
118   Float_t fOuterThermoWidthXUp ;       // geometry parameter
119   Float_t fOuterThermoWidthXLow;       // geometry parameter
120   Float_t fOuterThermoWidthY ;         // geometry parameter
121   Float_t fOuterThermoWidthZ ;         // geometry parameter
122   Float_t fAlFrontCoverX  ;            // geometry parameter
123   Float_t fAlFrontCoverZ  ;            // geometry parameter
124   Float_t fFiberGlassSup2X ;           // geometry parameter
125   Float_t fFiberGlassSup1X ;           // geometry parameter
126   Float_t fFrameHeight ;               // geometry parameter
127   Float_t fFrameThickness ;            // geometry parameter
128   Float_t fAirSpaceFeeX ;              // geometry parameter
129   Float_t fAirSpaceFeeZ ;              // geometry parameter
130   Float_t fAirSpaceFeeY ;              // geometry parameter
131   Float_t fTCables2HalfSize[3] ;       // geometry parameter
132   Float_t fTCables1HalfSize[3] ;       // geometry parameter
133   Float_t fWarmUpperThickness ;        // geometry parameter
134   Float_t fWarmBottomThickness ;       // geometry parameter
135   Float_t fWarmAlCoverWidthX ;         // geometry parameter
136   Float_t fWarmAlCoverWidthY ;         // geometry parameter
137   Float_t fWarmAlCoverWidthZ ;         // geometry parameter
138   Float_t fWarmAlCoverHalfSize[3] ;    // geometry parameter
139   Float_t fWarmThermoHalfSize[3] ;     // geometry parameter
140   Float_t fFiberGlassSup1Y ;           // geometry parameter
141   Float_t fFiberGlassSup2Y ;           // geometry parameter
142   Float_t fTSupportDist ;              // geometry parameter
143   Float_t fTSupport1Thickness ;        // geometry parameter
144   Float_t fTSupport2Thickness ;        // geometry parameter
145   Float_t fTSupport1Width ;            // geometry parameter
146   Float_t fTSupport2Width ;            // geometry parameter
147   Float_t fFrameXHalfSize[3] ;         // geometry parameter
148   Float_t fFrameZHalfSize[3] ;         // geometry parameter
149   Float_t fFrameXPosition[3] ;         // geometry parameter
150   Float_t fFrameZPosition[3] ;         // geometry parameter
151   Float_t fFGupXHalfSize[3] ;          // geometry parameter
152   Float_t fFGupXPosition[3] ;          // geometry parameter
153   Float_t fFGupZHalfSize[3] ;          // geometry parameter
154   Float_t fFGupZPosition[3] ;          // geometry parameter
155   Float_t fFGlowXHalfSize[3] ;         // geometry parameter
156   Float_t fFGlowXPosition[3] ;         // geometry parameter
157   Float_t fFGlowZHalfSize[3] ;         // geometry parameter
158   Float_t fFGlowZPosition[3] ;         // geometry parameter
159   Float_t fFEEAirHalfSize[3] ;         // geometry parameter
160   Float_t fFEEAirPosition[3] ;         // geometry parameter
161   Float_t fEMCParams[4] ;              // geometry parameter
162   Float_t fIPtoOuterCoverDistance ;    // Distances from interaction point to outer cover 
163   Float_t fIPtoCrystalSurface ;        // Distances from interaction point to Xtal surface
164
165   Float_t fSupportPlateThickness ;     // Thickness of the Aluminium support plate for Strip   
166
167   Int_t  fNCellsXInStrip ;             // Number of cells in a strip unit in X
168   Int_t  fNCellsZInStrip ;             // Number of cells in a strip unit in Z
169   Int_t  fNStripX ;                    // Number of strip units in X
170   Int_t  fNStripZ ;                    // Number of strip units in Z
171   Int_t  fNTSupports ;                 // geometry parameter
172   Int_t  fNPhi ;                       // Number of crystal units in X (phi) direction
173   Int_t  fNZ ;                         // Number of crystal units in Z direction
174   ClassDef(AliPHOSEMCAGeometry,1)      // EMCA geometry class 
175
176 } ;
177
178 #endif // AliPHOSEMCAGEOMETRY_H