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 */
8 //_________________________________________________________________________
9 // Geometry derived class for PHOS:PPSD (PHOS Preshower Detector)
11 //*-- Author : Yves Schutz
12 // Modified: Yuri Kharlov (IHEP, Protvino)
17 #include "AliPHOSCPVBaseGeometry.h"
19 class AliPHOSPPSDGeometry : public AliPHOSCPVBaseGeometry {
23 AliPHOSPPSDGeometry();
24 virtual ~AliPHOSPPSDGeometry(void) {};
28 Float_t GetAnodeThickness(void) const { return fAnodeThickness ; }
29 Float_t GetAvalancheGap(void) const { return fAvalancheGap ; }
30 Float_t GetCathodeThickness(void) const { return fCathodeThickness ; }
31 Float_t GetCompositeThickness(void) const { return fCompositeThickness ; }
32 Float_t GetConversionGap(void) const { return fConversionGap ; }
33 Float_t GetLeadConverterThickness(void) const { return fLeadConverterThickness ; }
34 Float_t GetLeadToMicro2Gap(void) const { return fLeadToMicro2Gap ; }
35 Float_t GetLidThickness(void) const { return fLidThickness ; }
36 Float_t GetMicromegas1Thickness(void) const { return fMicromegas1Thickness ; }
37 Float_t GetMicromegas2Thickness(void) const { return fMicromegas2Thickness ; }
38 Float_t GetMicromegasWallThickness(void) const { return fMicromegasWallThickness ; }
39 Float_t GetMicro1ToLeadGap(void) const { return fMicro1ToLeadGap ; }
40 Int_t GetNumberOfPadsPhi(void) const { return fNumberOfPadsPhi ; }
41 Int_t GetNumberOfPadsZ(void) const { return fNumberOfPadsZ ; }
42 Int_t GetNumberOfModulesPhi(void) const { return fNumberOfModulesPhi ; }
43 Int_t GetNumberOfModulesZ(void) const { return fNumberOfModulesZ ; }
44 Float_t GetPCThickness(void) const { return fPCThickness ; }
45 Float_t GetPhiDisplacement(void) const { return fPhiDisplacement ; }
46 Float_t GetCPVBoxSize(Int_t index) const { return fPPSDBoxSize[index] ; }
47 Float_t GetPPSDModuleSize(Int_t index) const { return fPPSDModuleSize[index] ; }
48 Float_t GetZDisplacement(void) const { return fZDisplacement ; }
50 // CPV functions cannot be used for PPSD
52 Int_t GetNumberOfCPVLayers(void) { AssertCPV(); return 0; }
53 Bool_t IsLeadConverterExists(void) { AssertCPV(); return 0; }
54 Float_t GetCPVActiveSize(Int_t index) { AssertCPV(); return 0; }
55 Int_t GetNumberOfCPVChipsPhi(void) { AssertCPV(); return 0; }
56 Int_t GetNumberOfCPVChipsZ(void) { AssertCPV(); return 0; }
57 Float_t GetGassiplexChipSize(Int_t index){ AssertCPV(); return 0; }
58 Float_t GetCPVGasThickness(void) { AssertCPV(); return 0; }
59 Float_t GetCPVTextoliteThickness(void) { AssertCPV(); return 0; }
60 Float_t GetCPVCuNiFoilThickness(void) { AssertCPV(); return 0; }
61 Float_t GetFTPosition(Int_t index) { AssertCPV(); return 0; }
62 Float_t GetCPVFrameSize(Int_t index) { AssertCPV(); return 0; }
63 Float_t GetIPtoCPVDistance(void) { AssertCPV(); return 0; }
67 Float_t fAnodeThickness ; // Thickness of the copper layer which makes the anode
68 Float_t fAvalancheGap ; // Thickness of the gas in the avalanche stage
69 Float_t fCathodeThickness ; // Thickeness of composite material ensuring rigidity of cathode
70 Float_t fCompositeThickness ; // Thickeness of composite material ensuring rigidity of anode
71 Float_t fConversionGap ; // Thickness of the gas in the conversion stage
72 Float_t fLeadConverterThickness ; // Thickness of the Lead converter
73 Float_t fLeadToMicro2Gap ; // Thickness of the air gap between the Lead and Micromegas 2
74 Float_t fLidThickness ; // Thickness of top lid
75 Float_t fMicromegas1Thickness ; // Thickness of the first downstream Micromegas
76 Float_t fMicromegas2Thickness ; // Thickness of the second downstream Micromegas
77 Float_t fMicromegasWallThickness ; // Thickness of the Micromegas leak tight box
78 Float_t fMicro1ToLeadGap ; // Thickness of the air gap between Micromegas 1 and the Lead
79 Int_t fNumberOfPadsPhi ; // Number of pads on a micromegas module ;
80 Int_t fNumberOfPadsZ ; // Number of pads on a micromegas module ;
81 Int_t fNumberOfModulesPhi ; // Number of micromegas modules in phi
82 Int_t fNumberOfModulesZ ; // Number of micromegas modules in z
83 Float_t fPCThickness ; // Thickness of the printed circuit board of the anode
84 Float_t fPhiDisplacement ; // Phi displacement of micromegas1 with respect to micromegas2
85 Float_t fPPSDBoxSize[3] ; // Size of large box which contains PPSD; matches PHOS module size
86 Float_t fPPSDModuleSize[3] ; // Size of an individual micromegas module
87 Float_t fZDisplacement ; // Z displacement of micromegas1 with respect to micromegas2
89 Float_t fIPtoTopLidDistance ; // Distance from interaction point to top lid of PPSD
92 printf("Function %s should not be called for PPSD geometry\n",__PRETTY_FUNCTION__);
96 ClassDef(AliPHOSPPSDGeometry,1) // PPSD geometry class
100 #endif // AliPHOSPPSDGEOMETRY_H