]>
Commit | Line | Data |
---|---|---|
2f2c3b32 | 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) | |
a3dfe79c | 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> | |
2f2c3b32 | 17 | |
18 | // --- ROOT system --- | |
468794ea | 19 | #include "TObject.h" |
20 | class TObjArray ; | |
2f2c3b32 | 21 | |
22 | // --- AliRoot header files --- | |
23 | ||
24 | class AliPHOSEMCAGeometry : public TObject { | |
25 | ||
26 | public: | |
27 | ||
28 | AliPHOSEMCAGeometry(); | |
a3dfe79c | 29 | AliPHOSEMCAGeometry(const AliPHOSEMCAGeometry & cpv) { |
30 | // cpy ctor requested by Coding Convention but not yet needed | |
31 | assert(0==1) ; | |
32 | } | |
2f2c3b32 | 33 | virtual ~AliPHOSEMCAGeometry(void) {} |
34 | ||
a3dfe79c | 35 | AliPHOSEMCAGeometry & operator = (const AliPHOSEMCAGeometry & rvalue) { |
36 | // assignement operator requested by coding convention but not needed | |
37 | assert(0==1) ; | |
38 | return *this ; | |
39 | } | |
2f2c3b32 | 40 | Float_t GetAirFilledBoxSize(Int_t index) const { |
41 | return fAirFilledBoxSize[index] ;} | |
42 | Float_t GetCrystalHolderThickness(void) const { | |
43 | return fCrystalHolderThickness ; } | |
44 | Float_t GetCrystalSize(Int_t index) const { | |
45 | return fXtlSize[index] ; } | |
46 | Float_t GetCrystalSupportHeight(void) const { | |
47 | return fCrystalSupportHeight ; } | |
48 | Float_t GetCrystalWrapThickness(void) const { | |
49 | return fCrystalWrapThickness;} | |
50 | Float_t GetGapBetweenCrystals(void) const { | |
51 | return fGapBetweenCrystals ; } | |
52 | Float_t GetIPtoCrystalSurface(void) const { | |
53 | return fIPtoCrystalSurface ; } | |
54 | Float_t GetIPtoOuterCoverDistance(void) const { | |
55 | return fIPtoOuterCoverDistance ; } | |
56 | Float_t GetLowerThermoPlateThickness(void) const { | |
57 | return fLowerThermoPlateThickness ; } | |
58 | Float_t GetLowerTextolitPlateThickness(void) const { | |
59 | return fLowerTextolitPlateThickness ; } | |
60 | Float_t GetModuleBoxThickness(void) const { | |
61 | return fModuleBoxThickness ; } | |
62 | Int_t GetNPhi(void) const { | |
63 | return fNPhi ; } | |
64 | Int_t GetNZ(void) const { | |
65 | return fNZ ; } | |
66 | Float_t GetOuterBoxSize(Int_t index) const { | |
67 | return fOuterBoxSize[index] ; } | |
68 | Float_t GetOuterBoxThickness(Int_t index) const { | |
69 | return fOuterBoxThickness[index] ; } | |
70 | Float_t GetPinDiodeSize(Int_t index) const { | |
71 | return fPinDiodeSize[index] ; } | |
72 | Float_t GetSecondUpperPlateThickness(void) const { | |
73 | return fSecondUpperPlateThickness ; } | |
74 | Float_t GetSupportPlateThickness(void) const { | |
75 | return fSupportPlateThickness ; } | |
76 | Float_t GetTextolitBoxSize(Int_t index) const { | |
77 | return fTextolitBoxSize[index] ; } | |
78 | Float_t GetTextolitBoxThickness(Int_t index) const { | |
79 | return fTextolitBoxThickness[index]; } | |
80 | Float_t GetUpperPlateThickness(void) const { | |
81 | return fUpperPlateThickness ; } | |
82 | Float_t GetUpperCoolingPlateThickness(void) const { | |
83 | return fUpperCoolingPlateThickness ; } | |
84 | ||
85 | private: | |
86 | ||
87 | Float_t fAirFilledBoxSize[3] ; // Air filled box containing one module | |
88 | Float_t fAirThickness[3] ; // Space filled with air between the module box and the Textolit box | |
89 | Float_t fCrystalSupportHeight ; // Height of the support of the crystal | |
90 | Float_t fCrystalWrapThickness ; // Thickness of Tyvek wrapping the crystal | |
91 | Float_t fCrystalHolderThickness ; // Titanium holder of the crystal | |
92 | Float_t fGapBetweenCrystals ; // Total Gap between two adjacent crystals | |
93 | Float_t fIPtoOuterCoverDistance ; // Distances from interaction point to outer cover | |
94 | Float_t fIPtoCrystalSurface ; // Distances from interaction point to Xtal surface | |
95 | Float_t fModuleBoxThickness ; // Thickness of the thermo insulating box containing one crystals module | |
96 | Float_t fLowerTextolitPlateThickness ; // Thickness of lower textolit plate | |
97 | Float_t fLowerThermoPlateThickness ; // Thickness of lower thermo insulating plate | |
98 | Int_t fNPhi ; // Number of crystal units in X (phi) direction | |
99 | Int_t fNZ ; // Number of crystal units in Z direction | |
100 | Float_t fOuterBoxSize[3] ; // Size of the outer thermo insulating foam box | |
101 | Float_t fOuterBoxThickness[3] ; // Thickness of the outer thermo insulating foam box | |
102 | Float_t fPinDiodeSize[3] ; // Size of the PIN Diode | |
2f2c3b32 | 103 | Float_t fSecondUpperPlateThickness ; // Thickness of upper polystyrene foam plate |
104 | Float_t fSupportPlateThickness ; // Thickness of the Aluminium support plate | |
105 | Float_t fUpperCoolingPlateThickness ; // Thickness of the upper cooling plate | |
106 | Float_t fUpperPlateThickness ; // Thickness of the uper thermo insulating foam plate | |
107 | Float_t fTextolitBoxSize[3] ; // Size of the Textolit box inside the insulating foam box | |
108 | Float_t fTextolitBoxThickness[3] ; // Thicknesses of th Textolit box | |
109 | Float_t fXtlSize[3] ; // PWO4 crystal dimensions | |
a3dfe79c | 110 | TObjArray *fRotMatrixArray ; // List of rotation matrices (one per phos module) |
2f2c3b32 | 111 | |
112 | ClassDef(AliPHOSEMCAGeometry,1) // EMCA geometry class | |
113 | ||
114 | } ; | |
115 | ||
116 | #endif // AliPHOSEMCAGEOMETRY_H |