d107d767283e02baaaec16f153c679c738022056
[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 #include <assert.h> 
17
18 // --- ROOT system ---
19 #include "TObject.h"
20 class TObjArray ;
21
22 // --- AliRoot header files ---
23
24 class AliPHOSEMCAGeometry : public TObject {
25
26 public: 
27
28            AliPHOSEMCAGeometry();
29            AliPHOSEMCAGeometry(const AliPHOSEMCAGeometry & cpv) {
30              // cpy ctor requested by Coding Convention but not yet needed
31              assert(0==1) ;
32            } 
33   virtual ~AliPHOSEMCAGeometry(void) {}
34
35   AliPHOSEMCAGeometry & operator = (const AliPHOSEMCAGeometry  & rvalue) {
36     // assignement operator requested by coding convention but not needed
37     assert(0==1) ;
38     return *this ; 
39   }
40
41   Float_t * GetStripHalfSize()   {return fStripHalfSize ;}
42   Float_t   GetStripWallWidthOut() {return fStripWallWidthOut ;}
43   Float_t * GetAirCellHalfSize() {return fAirCellHalfSize ;}
44   Float_t * GetWrappedHalfSize() {return fWrappedHalfSize ;}
45   Float_t   GetAirGapLed() const {return fAirGapLed ;}
46   Float_t * GetCrystalHalfSize() {return fCrystalHalfSize ;}
47   Float_t * GetSupportPlateHalfSize() { return fSupportPlateHalfSize ;}
48   Float_t * GetSupportPlateInHalfSize() {return fSupportPlateInHalfSize ;}
49   Float_t   GetSupportPlateThickness(void)   const { return fSupportPlateThickness ; }    
50
51   Float_t * GetPreampHalfSize() {return fPreampHalfSize ;}
52   Float_t * GetAPDHalfSize(void) {return fPinDiodeHalfSize ; }
53   Float_t * GetOuterThermoParams(void) {return  fOuterThermoParams ; }
54   Float_t * GetCoolerHalfSize(void) {return fCoolerHalfSize ;}
55   Float_t * GetAirGapHalfSize(void) {return fAirGapHalfSize; }
56   Float_t * GetInnerThermoHalfSize(void) {return  fInnerThermoHalfSize ; }
57   Float_t * GetAlCoverParams() {return fAlCoverParams ; }
58   Float_t * GetFiberGlassHalfSize() {return fFiberGlassHalfSize ; }
59   Float_t * GetWarmAlCoverHalfSize() {return fWarmAlCoverHalfSize ;}
60   Float_t * GetWarmThermoHalfSize() {return fWarmThermoHalfSize ;}
61   Float_t * GetTSupport1HalfSize() {return fTSupport1HalfSize ;}
62   Float_t * GetTSupport2HalfSize() {return fTSupport2HalfSize ;}
63   Float_t * GetTCables1HalfSize() {return fTCables1HalfSize ; }
64   Float_t * GetTCables2HalfSize() {return fTCables2HalfSize ; }
65   Float_t   GetTSupportDist() {return fTSupportDist ; }
66   Float_t * GetFrameXHalfSize() {return fFrameXHalfSize ;}
67   Float_t * GetFrameZHalfSize() {return fFrameZHalfSize ;}
68   Float_t * GetFrameXPosition() {return fFrameXPosition ;}
69   Float_t * GetFrameZPosition() {return fFrameZPosition ;}
70   Float_t * GetFGupXHalfSize()  {return fFGupXHalfSize ; }
71   Float_t * GetFGupXPosition()  {return fFGupXPosition ; }
72   Float_t * GetFGupZHalfSize()  {return fFGupZHalfSize ; }
73   Float_t * GetFGupZPosition()  {return fFGupZPosition ; }
74   Float_t * GetFGlowXHalfSize()  {return fFGlowXHalfSize ; }
75   Float_t * GetFGlowXPosition()  {return fFGlowXPosition ; }
76   Float_t * GetFGlowZHalfSize()  {return fFGlowZHalfSize ; }
77   Float_t * GetFGlowZPosition()  {return fFGlowZPosition ; }
78   Float_t * GetFEEAirHalfSize()  {return fFEEAirHalfSize ; }
79   Float_t * GetFEEAirPosition()  {return fFEEAirPosition ; }
80   Float_t * GetEMCParams() {return fEMCParams ;}
81
82   Float_t    GetIPtoCrystalSurface(void)          const { 
83     return fIPtoCrystalSurface ; }
84   Float_t    GetIPtoOuterCoverDistance(void)      const { 
85     return fIPtoOuterCoverDistance ; }
86   Float_t    GetCrystalSize(Int_t index)  const {return 2.*fCrystalHalfSize[index] ; }
87
88   
89   Int_t     GetNCellsInStrip() const { return fNCellsInStrip;}
90   Int_t     GetNStripX()       const { return fNStripX ; }
91   Int_t     GetNStripZ()       const { return fNStripZ ; }
92   Int_t     GetNTSuppots()     const { return fNTSupports; }
93   Int_t     GetNPhi(void)      const { return fNPhi ; }
94   Int_t     GetNZ(void)        const { return fNZ ; }
95
96  
97 private:
98
99   Float_t fStripHalfSize[3]   ;
100   Float_t fAirCellHalfSize[3] ;
101   Float_t fWrappedHalfSize[3] ;
102   Float_t fSupportPlateHalfSize[3] ;
103   Float_t fSupportPlateInHalfSize[3] ;
104   Float_t fCrystalHalfSize[3] ;
105   Float_t fAirGapLed ;
106   Float_t fStripWallWidthOut ; // Side to another strip  
107   Float_t fStripWallWidthIn ; 
108   Float_t fTyvecThickness ; 
109   Float_t fTSupport1HalfSize[3] ;
110   Float_t fTSupport2HalfSize[3] ;
111   Float_t fPreampHalfSize[3] ;
112   Float_t fPinDiodeHalfSize[3] ;              // Size of the PIN Diode 
113
114   Float_t fOuterThermoParams[4] ; 
115   Float_t fCoolerHalfSize[3] ; 
116   Float_t fAirGapHalfSize[3] ;
117   Float_t fInnerThermoHalfSize[3] ;
118   Float_t fAlCoverParams[4] ;
119   Float_t fFiberGlassHalfSize[3] ;
120
121
122   Float_t fInnerThermoWidthX ;
123   Float_t fInnerThermoWidthY ;
124   Float_t fInnerThermoWidthZ ;
125   Float_t fAirGapWidthX ;
126   Float_t fAirGapWidthY ;
127   Float_t fAirGapWidthZ ;
128   Float_t fCoolerWidthX ;
129   Float_t fCoolerWidthY ;
130   Float_t fCoolerWidthZ ;
131   Float_t fAlCoverThickness ;
132   Float_t fOuterThermoWidthXUp ;
133   Float_t fOuterThermoWidthXLow;
134   Float_t fOuterThermoWidthY ;
135   Float_t fOuterThermoWidthZ ;
136   Float_t fAlFrontCoverX  ;
137   Float_t fAlFrontCoverZ  ; 
138   Float_t fFiberGlassSup2X ;
139   Float_t fFiberGlassSup1X ; 
140   Float_t fFrameHeight ; 
141   Float_t fFrameThickness ; 
142   Float_t fAirSpaceFeeX ;
143   Float_t fAirSpaceFeeZ ;
144   Float_t fAirSpaceFeeY ;
145   Float_t fTCables2HalfSize[3] ; 
146   Float_t fTCables1HalfSize[3] ; 
147   Float_t fWarmUpperThickness ;
148   Float_t fWarmBottomThickness ;
149   Float_t fWarmAlCoverWidthX ;
150   Float_t fWarmAlCoverWidthY ;
151   Float_t fWarmAlCoverWidthZ ;
152   Float_t fWarmAlCoverHalfSize[3] ;
153   Float_t fWarmThermoHalfSize[3] ;
154   Float_t fFiberGlassSup1Y ;
155   Float_t fFiberGlassSup2Y ;
156   Float_t fTSupportDist ;
157   Float_t fTSupport1Thickness ;
158   Float_t fTSupport2Thickness ;
159   Float_t fTSupport1Width ;
160   Float_t fTSupport2Width ;
161   Float_t fFrameXHalfSize[3] ;
162   Float_t fFrameZHalfSize[3] ;
163   Float_t fFrameXPosition[3] ;
164   Float_t fFrameZPosition[3] ;
165   Float_t fFGupXHalfSize[3] ;
166   Float_t fFGupXPosition[3] ;
167   Float_t fFGupZHalfSize[3] ;
168   Float_t fFGupZPosition[3] ;
169   Float_t fFGlowXHalfSize[3] ;
170   Float_t fFGlowXPosition[3] ;
171   Float_t fFGlowZHalfSize[3] ;
172   Float_t fFGlowZPosition[3] ;
173   Float_t fFEEAirHalfSize[3] ;
174   Float_t fFEEAirPosition[3] ;
175   Float_t fEMCParams[4] ;
176   Float_t fIPtoOuterCoverDistance ;       // Distances from interaction point to outer cover 
177   Float_t fIPtoCrystalSurface ;           // Distances from interaction point to Xtal surface
178
179   Float_t fSupportPlateThickness ;        // Thickness of the Aluminium support plate for Strip   
180
181   Int_t  fNCellsInStrip ;
182   Int_t  fNStripX ;
183   Int_t  fNStripZ ;
184   Int_t  fNTSupports ;
185   Int_t  fNPhi ;                         // Number of crystal units in X (phi) direction
186   Int_t  fNZ ;                           // Number of crystal units in Z direction
187
188   ClassDef(AliPHOSEMCAGeometry,1)         // EMCA geometry class 
189
190 } ;
191
192 #endif // AliPHOSEMCAGEOMETRY_H