added class AliPMDReconstructor
[u/mrichter/AliRoot.git] / TOF / AliTOFGeometry.h
CommitLineData
0f4a7374 1#ifndef ALITOFGEOMETRY_H
2#define ALITOFGEOMETRY_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// //
10// TOF geometry class //
11// //
12///////////////////////////////////////////////////////////////////////////////
13
14
15
16class AliTOFGeometry{
17
18 public:
19 AliTOFGeometry();
20 virtual ~AliTOFGeometry();
21
22 static Int_t NStripA() { return fgkNStripA;};
23 static Int_t NStripB() { return fgkNStripB;};
24 static Int_t NStripC() { return fgkNStripC;};
25 static Int_t NpadX() { return fgkNpadX;};
26 static Int_t NpadZ() { return fgkNpadZ;};
27 static Int_t NSectors() { return fgkNSectors;};
28 static Int_t NPlates() { return fgkNPlates;};
29 static Int_t NPadXSector() { return (fgkNStripA + 2*fgkNStripB +
30 2*fgkNStripC)*fgkNpadX*fgkNpadZ;};
31 static Int_t TimeDiff() { return fgkTimeDiff;};
32 static Int_t MaxTOFTree() { return fgkMaxTOFTree;};
33
34
35 static Float_t Rmin() { return fgkRmin;};
36 static Float_t Rmax() { return fgkRmax;};
37 static Float_t ZlenA() { return fgkZlenA;};
38 static Float_t ZlenB() { return fgkZlenB;};
39 static Float_t ZlenC() { return fgkZlenC;};
40 static Float_t XPad() { return fgkXPad;};
41 static Float_t ZPad() { return fgkZPad;};
42 static Float_t MaxhZtof() { return fgkMaxhZtof;};
43
44
45 static Float_t SigmaForTail1() { return fgkSigmaForTail1;};
46 static Float_t SigmaForTail2() { return fgkSigmaForTail2;};
47 static Float_t SpeedOfLight() { return fgkSpeedOfLight;};
48 static Float_t PionMass() { return fgkPionMass;};
49 static Float_t KaonMass() { return fgkKaonMass;};
50 static Float_t ProtonMass() { return fgkProtonMass;};
51 static Float_t ElectronMass() { return fgkElectronMass;};
52 static Float_t MuonMass() { return fgkMuonMass;};
53
54
55
56 virtual void Init();
57 virtual void GetPos(Int_t *det,Float_t *pos);
58 virtual void GetDetID(Float_t *pos,Int_t *det);
59 virtual Int_t GetPlate(Float_t *pos);
60 virtual Int_t GetStrip(Float_t *pos);
61 virtual Int_t GetSector(Float_t *pos);
62 virtual Int_t GetPadX(Float_t *pos);
63 virtual Int_t GetPadZ(Float_t *pos);
64 virtual Float_t GetX(Int_t *det);
65 virtual Float_t GetY(Int_t *det);
66 virtual Float_t GetZ(Int_t *det);
67 virtual Float_t GetMinPlateTheta(Int_t iPlate);
68 virtual Float_t GetMaxPlateTheta(Int_t iPlate);
69 virtual Float_t GetMinStripTheta(Int_t iPlate, Int_t iStrip);
70 virtual Float_t GetMaxStripTheta(Int_t iPlate, Int_t iStrip);
71 virtual Float_t GetStripTheta(Int_t iPlate, Int_t iStrip);
72 virtual Float_t GetAngles(Int_t iplate, Int_t istrip) const {return fAngles[iplate][istrip];};
73 virtual Float_t GetHeights(Int_t iplate, Int_t istrip) const {return fHeights[iplate][istrip];};
74
75 private:
76
58eb5b61 77 enum {
78 fgkNStripA = 15, // number of strips in A type module
79 fgkNStripB = 19, // number of strips in B type module
80 fgkNStripC = 20, // number of strips in C type module
81 fgkNpadX = 48, // Number of pads along X
82 fgkNpadZ = 2, // Number of pads along Z
83 fgkNSectors = 18, // Number of Sectors
84 fgkNPlates = 5, // Number of Plates
85 fgkMaxNstrip = 20, // Max. number of strips
86 fgkMaxTOFTree = 5 // numer of geom. levels:
87 };
88
89 static const Int_t fgkTimeDiff; // Min signal separation (ps)
90
91 static const Float_t fgkRmin; // Inner radius of the TOF (cm)
92 static const Float_t fgkRmax; // Outer radius of the TOF (cm)
93 static const Float_t fgkZlenA; // length (cm) of the A module
94 static const Float_t fgkZlenB; // length (cm) of the B module
95 static const Float_t fgkZlenC; // length (cm) of the C module
96 static const Float_t fgkXPad; // Pad size in the x direction (cm)
97 static const Float_t fgkZPad; // Pad size in the z direction (cm)
98 static const Float_t fgkMaxhZtof;// Max half z-size of TOF (cm)
99
100
101 static const Float_t fgkSigmaForTail1;//Sig1 for simulation of TDC tails
102 static const Float_t fgkSigmaForTail2;//Sig2 for simulation of TDC tails
103 static const Float_t fgkSpeedOfLight;// c (10^9 m/s)
104 static const Float_t fgkPionMass;// pion mass (Gev/c^2)
105 static const Float_t fgkKaonMass;// kaon mass (Gev/c^2)
106 static const Float_t fgkProtonMass;// proton mass (Gev/c^2)
107 static const Float_t fgkElectronMass;// electron mass (Gev/c^2)
108 static const Float_t fgkMuonMass;// muon mass (Gev/c^2)
109
110
111 static const Float_t fgkDprecMin;//num.prec.tolerance on Thmin
112 static const Float_t fgkDprecMax;//num.prec.tolerance on Thma
113 static const Float_t fgkDprecCen;//num.prec.tolerance on <Theta>
0f4a7374 114
115 Float_t fAngles[fgkNPlates][fgkMaxNstrip]; //Strip Tilt Angles
116 Float_t fHeights[fgkNPlates][fgkMaxNstrip];//Strip heights
117 Float_t fPhiSec; //sector Phi width (deg)
118
119 ClassDef(AliTOFGeometry,0) // TOF Geometry base class
120};
121
122#endif