]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PHOS/AliPHOSPPSDGeometry.h
PPSD geometry class to correct previous name-convetion rule violation
[u/mrichter/AliRoot.git] / PHOS / AliPHOSPPSDGeometry.h
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)
10 //
11 //*-- Author  : Yves Schutz
12 //    Modified: Yuri Kharlov (IHEP, Protvino)
13 //    14 September 2000
14
15 #include <assert.h> 
16
17 #include "AliPHOSCPVBaseGeometry.h"
18
19 class AliPHOSPPSDGeometry : public AliPHOSCPVBaseGeometry {
20
21 public: 
22
23            AliPHOSPPSDGeometry();
24   virtual ~AliPHOSPPSDGeometry(void) {};
25
26   // PPSD functions
27
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 ;           }
49  
50   // CPV functions cannot be used for PPSD
51
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; }
64
65 private:
66
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  
88
89   Float_t fIPtoTopLidDistance ;      // Distance from interaction point to top lid of PPSD
90
91   void    AssertCPV() {
92     printf("Function %s should not be called for PPSD geometry\n",__PRETTY_FUNCTION__);
93     assert(0==1) ;
94   }
95
96   ClassDef(AliPHOSPPSDGeometry,1)        // PPSD geometry class 
97
98 } ;
99
100 #endif // AliPHOSPPSDGEOMETRY_H