]>
Commit | Line | Data |
---|---|---|
7119952d | 1 | #ifndef ALIPHOSPPSDGEOMETRY_H |
2 | #define ALIPHOSPPSDGEOMETRY_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 derived class for PHOS:PPSD (PHOS Preshower Detector) | |
a3dfe79c | 10 | // Its data members provide geometry parametrization of PPSD |
11 | // which can be changed in the constructor only. | |
12 | // Author : Yves Schutz | |
13 | // Modified: Yuri Kharlov (IHEP, Protvino) | |
14 | // 7 November 2000 | |
7119952d | 15 | |
16 | #include <assert.h> | |
17 | ||
18 | #include "AliPHOSCPVBaseGeometry.h" | |
19 | ||
20 | class AliPHOSPPSDGeometry : public AliPHOSCPVBaseGeometry { | |
21 | ||
22 | public: | |
23 | ||
24 | AliPHOSPPSDGeometry(); | |
25 | virtual ~AliPHOSPPSDGeometry(void) {}; | |
26 | ||
27 | // PPSD functions | |
28 | ||
a3dfe79c | 29 | virtual Float_t GetAnodeThickness(void) { return fAnodeThickness ; } |
30 | virtual Float_t GetAvalancheGap(void) { return fAvalancheGap ; } | |
31 | virtual Float_t GetCathodeThickness(void) { return fCathodeThickness ; } | |
32 | virtual Float_t GetCompositeThickness(void) { return fCompositeThickness ; } | |
33 | virtual Float_t GetConversionGap(void) { return fConversionGap ; } | |
34 | virtual Float_t GetLeadConverterThickness(void) { return fLeadConverterThickness ; } | |
35 | virtual Float_t GetLeadToMicro2Gap(void) { return fLeadToMicro2Gap ; } | |
36 | virtual Float_t GetLidThickness(void) { return fLidThickness ; } | |
37 | virtual Float_t GetMicromegas1Thickness(void) { return fMicromegas1Thickness ; } | |
38 | virtual Float_t GetMicromegas2Thickness(void) { return fMicromegas2Thickness ; } | |
39 | virtual Float_t GetMicromegasWallThickness(void) { return fMicromegasWallThickness ; } | |
40 | virtual Float_t GetMicro1ToLeadGap(void) { return fMicro1ToLeadGap ; } | |
41 | virtual Int_t GetNumberOfPadsPhi(void) { return fNumberOfPadsPhi ; } | |
42 | virtual Int_t GetNumberOfPadsZ(void) { return fNumberOfPadsZ ; } | |
43 | virtual Int_t GetNumberOfModulesPhi(void) { return fNumberOfModulesPhi ; } | |
44 | virtual Int_t GetNumberOfModulesZ(void) { return fNumberOfModulesZ ; } | |
45 | virtual Float_t GetPCThickness(void) { return fPCThickness ; } | |
46 | virtual Float_t GetPhiDisplacement(void) { return fPhiDisplacement ; } | |
47 | virtual Float_t GetCPVBoxSize(Int_t index) { return fPPSDBoxSize[index] ; } | |
48 | virtual Float_t GetPPSDModuleSize(Int_t index) { return fPPSDModuleSize[index] ; } | |
49 | virtual Float_t GetZDisplacement(void) { return fZDisplacement ; } | |
ed4205d8 | 50 | virtual void SetLeadConverterThickness(Float_t x) { fLeadConverterThickness = x; } |
a3dfe79c | 51 | |
7119952d | 52 | // CPV functions cannot be used for PPSD |
a3dfe79c | 53 | |
54 | virtual Int_t GetNumberOfCPVLayers(void) { AssertCPV("GetNumberOfCPVLayers"); return 0; } | |
55 | virtual Bool_t IsLeadConverterExists(void) { AssertCPV("IsLeadConverterExists"); return 0; } | |
56 | virtual Float_t GetCPVActiveSize(Int_t index) { AssertCPV("GetCPVActiveSize"); return 0; } | |
57 | virtual Int_t GetNumberOfCPVChipsPhi(void) { AssertCPV("GetNumberOfCPVChipsPhi"); return 0; } | |
58 | virtual Int_t GetNumberOfCPVChipsZ(void) { AssertCPV("GetNumberOfCPVChipsZ"); return 0; } | |
59 | virtual Float_t GetGassiplexChipSize(Int_t index){ AssertCPV("GetGassiplexChipSize"); return 0; } | |
60 | virtual Float_t GetCPVGasThickness(void) { AssertCPV("GetCPVGasThickness"); return 0; } | |
61 | virtual Float_t GetCPVTextoliteThickness(void) { AssertCPV("GetCPVTextoliteThickness"); return 0; } | |
62 | virtual Float_t GetCPVCuNiFoilThickness(void) { AssertCPV("GetCPVCuNiFoilThickness"); return 0; } | |
63 | virtual Float_t GetFTPosition(Int_t index) { AssertCPV("GetFTPosition"); return 0; } | |
64 | virtual Float_t GetCPVFrameSize(Int_t index) { AssertCPV("GetCPVFrameSize"); return 0; } | |
65 | virtual Float_t GetIPtoCPVDistance(void) { AssertCPV("GetIPtoCPVDistance"); return 0; } | |
7119952d | 66 | |
67 | private: | |
68 | ||
69 | Float_t fAnodeThickness ; // Thickness of the copper layer which makes the anode | |
70 | Float_t fAvalancheGap ; // Thickness of the gas in the avalanche stage | |
a3dfe79c | 71 | Float_t fCathodeThickness ; // Thickness of composite material ensuring rigidity of cathode |
72 | Float_t fCompositeThickness ; // Thickness of composite material ensuring rigidity of anode | |
7119952d | 73 | Float_t fConversionGap ; // Thickness of the gas in the conversion stage |
74 | Float_t fLeadConverterThickness ; // Thickness of the Lead converter | |
75 | Float_t fLeadToMicro2Gap ; // Thickness of the air gap between the Lead and Micromegas 2 | |
76 | Float_t fLidThickness ; // Thickness of top lid | |
77 | Float_t fMicromegas1Thickness ; // Thickness of the first downstream Micromegas | |
78 | Float_t fMicromegas2Thickness ; // Thickness of the second downstream Micromegas | |
79 | Float_t fMicromegasWallThickness ; // Thickness of the Micromegas leak tight box | |
80 | Float_t fMicro1ToLeadGap ; // Thickness of the air gap between Micromegas 1 and the Lead | |
81 | Int_t fNumberOfPadsPhi ; // Number of pads on a micromegas module ; | |
82 | Int_t fNumberOfPadsZ ; // Number of pads on a micromegas module ; | |
83 | Int_t fNumberOfModulesPhi ; // Number of micromegas modules in phi | |
84 | Int_t fNumberOfModulesZ ; // Number of micromegas modules in z | |
85 | Float_t fPCThickness ; // Thickness of the printed circuit board of the anode | |
86 | Float_t fPhiDisplacement ; // Phi displacement of micromegas1 with respect to micromegas2 | |
87 | Float_t fPPSDBoxSize[3] ; // Size of large box which contains PPSD; matches PHOS module size | |
88 | Float_t fPPSDModuleSize[3] ; // Size of an individual micromegas module | |
89 | Float_t fZDisplacement ; // Z displacement of micromegas1 with respect to micromegas2 | |
90 | ||
91 | Float_t fIPtoTopLidDistance ; // Distance from interaction point to top lid of PPSD | |
92 | ||
a3dfe79c | 93 | void AssertCPV(char* name) { |
94 | printf("Function AliPPSDGeometry::%s should not be called for PPSD geometry\n",name); | |
7119952d | 95 | assert(0==1) ; |
96 | } | |
97 | ||
98 | ClassDef(AliPHOSPPSDGeometry,1) // PPSD geometry class | |
99 | ||
100 | } ; | |
101 | ||
102 | #endif // AliPHOSPPSDGEOMETRY_H |