]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PHOS/AliPHOSEMCAGeometry.h
new design: digits are not data members of AliPHOS anymore (use IndexToObject)
[u/mrichter/AliRoot.git] / PHOS / AliPHOSEMCAGeometry.h
CommitLineData
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"
20class TObjArray ;
2f2c3b32 21
22// --- AliRoot header files ---
23
24class AliPHOSEMCAGeometry : public TObject {
25
26public:
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
85private:
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