]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PHOS/AliPHOSPPSDGeometry.h
Possibility to investigate a primary of not yet loaded particle (I.Hrivnacova)
[u/mrichter/AliRoot.git] / PHOS / AliPHOSPPSDGeometry.h
CommitLineData
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
20class AliPHOSPPSDGeometry : public AliPHOSCPVBaseGeometry {
21
22public:
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 ; }
baef0810 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
67private:
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