]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PHOS/AliPHOSCPVGeometry.h
CPV geometry class to correct previous name-convetion rule violation
[u/mrichter/AliRoot.git] / PHOS / AliPHOSCPVGeometry.h
1 #ifndef ALIPHOSCPVGEOMETRY_H
2 #define ALIPHOSCPVGEOMETRY_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:CPV (Charged particle veto, IHEP version)
10 //
11 //*-- Author:  Yuri Kharlov (IHEP, Protvino)
12 //    14 September 2000
13
14 #include <assert.h> 
15
16 #include "AliPHOSCPVBaseGeometry.h"
17
18 class AliPHOSCPVGeometry : public AliPHOSCPVBaseGeometry {
19
20 public: 
21
22            AliPHOSCPVGeometry();
23   virtual ~AliPHOSCPVGeometry(void) {};
24
25   // CPV functions
26
27   Int_t   GetNumberOfCPVLayers(void)        const { return  fNumberOfCPVLayers;        }
28   Bool_t  IsLeadConverterExists(void)       const { return  fLeadConverterExists;      }
29   Int_t   GetNumberOfCPVPadsPhi(void)       const { return  fNumberOfCPVPadsPhi ;      }
30   Int_t   GetNumberOfCPVPadsZ(void)         const { return  fNumberOfCPVPadsZ ;        }
31   Float_t GetCPVPadSizePhi(void)            const { return  fCPVPadSizePhi;            }
32   Float_t GetCPVPadSizeZ(void)              const { return  fCPVPadSizeZ;              }
33   Float_t GetCPVBoxSize(Int_t index)        const { return  fCPVBoxSize[index];        }
34   Float_t GetCPVActiveSize(Int_t index)     const { return  fCPVActiveSize[index];     }
35   Int_t   GetNumberOfCPVChipsPhi(void)      const { return  fNumberOfCPVChipsPhi;      }
36   Int_t   GetNumberOfCPVChipsZ(void)        const { return  fNumberOfCPVChipsZ;        }
37   Float_t GetGassiplexChipSize(Int_t index) const { return  fGassiplexChipSize[index]; }
38   Float_t GetCPVGasThickness(void)          const { return  fCPVGasThickness;          }
39   Float_t GetCPVTextoliteThickness(void)    const { return  fCPVTextoliteThickness;    }
40   Float_t GetCPVCuNiFoilThickness(void)     const { return  fCPVCuNiFoilThickness;     }
41   Float_t GetFTPosition(Int_t index)        const { return  fFTPosition[index];        }
42   Float_t GetCPVFrameSize(Int_t index)      const { return  fCPVFrameSize[index];      }
43
44   // PPSD functions cannot be used for CPV
45
46   Float_t GetAnodeThickness(void)          { AssertPPSD(); return 0; }
47   Float_t GetAvalancheGap(void)            { AssertPPSD(); return 0; }
48   Float_t GetCathodeThickness(void)        { AssertPPSD(); return 0; }
49   Float_t GetCompositeThickness(void)      { AssertPPSD(); return 0; }
50   Float_t GetConversionGap(void)           { AssertPPSD(); return 0; }
51   Float_t GetLeadConverterThickness(void)  { AssertPPSD(); return 0; }
52   Float_t GetLeadToMicro2Gap(void)         { AssertPPSD(); return 0; }
53   Float_t GetLidThickness(void)            { AssertPPSD(); return 0; }
54   Float_t GetMicromegas1Thickness(void)    { AssertPPSD(); return 0; }
55   Float_t GetMicromegas2Thickness(void)    { AssertPPSD(); return 0; }
56   Float_t GetMicromegasWallThickness(void) { AssertPPSD(); return 0; }
57   Float_t GetMicro1ToLeadGap(void)         { AssertPPSD(); return 0; }
58   Float_t GetPCThickness(void)             { AssertPPSD(); return 0; }
59   Float_t GetPhiDisplacement(void)         { AssertPPSD(); return 0; }
60   Float_t GetPPSDModuleSize(Int_t index)   { AssertPPSD(); return 0; }
61   Float_t GetZDisplacement(void)           { AssertPPSD(); return 0; }
62  
63 private:
64
65   Int_t   fNumberOfCPVLayers;      // Number of CPV identical layers
66   Bool_t  fLeadConverterExists;    // kTRUE if the lead converter between CPV layers exists
67   Int_t   fNumberOfCPVPadsPhi;     // Number of CPV pads in phi
68   Int_t   fNumberOfCPVPadsZ;       // Number of CPV pads in z
69   Float_t fCPVPadSizePhi;          // CPV pad size in phi
70   Float_t fCPVPadSizeZ;            // CPV pad size in z
71   Float_t fCPVBoxSize[3];          // Outer size of CPV box
72   Float_t fCPVActiveSize[2];       // Active size of CPV box (x,z)
73   Int_t   fNumberOfCPVChipsPhi;    // Number of CPV Gassiplex chips in phi
74   Int_t   fNumberOfCPVChipsZ;      // Number of CPV Gassiplex chips in z
75   Float_t fGassiplexChipSize[3];   // Size of a Gassiplex chip (0 - in z, 1 - in phi, 2 - thickness (in ALICE radius))
76   Float_t fCPVGasThickness;        // Thickness of CPV gas volume
77   Float_t fCPVTextoliteThickness;  // Thickness of CPV textolite PCB (without foil)
78   Float_t fCPVCuNiFoilThickness;   // Thickness of CPV Copper-Nickel foil of PCB
79   Float_t fFTPosition[4];          // Positions of the 4 PCB vs the CPV box center
80   Float_t fCPVFrameSize[3];        // CPV frame size (0 - in phi, 1 - in z, 2 - thickness (along ALICE radius))
81
82   void    AssertPPSD() {
83     printf("Function %s should not be called for CPV geometry\n",__PRETTY_FUNCTION__);
84     assert(0==1) ;
85   }
86
87   ClassDef(AliPHOSCPVGeometry,1)       // CPV geometry base class 
88
89 } ;
90
91 #endif // AliPHOSCPVGEOMETRY_H