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 */
8 ///////////////////////////////////////////////////////////////////////////////
10 // TOF geometry class //
12 ///////////////////////////////////////////////////////////////////////////////
20 virtual ~AliTOFGeometry();
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;};
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;};
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;};
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];};
77 static const Int_t fgkNStripA = 15; // number of strips in A type module
78 static const Int_t fgkNStripB = 19; // number of strips in B type module
79 static const Int_t fgkNStripC = 20; // number of strips in C type module
80 static const Int_t fgkNpadX = 48; // Number of pads along X
81 static const Int_t fgkNpadZ = 2; // Number of pads along Z
82 static const Int_t fgkNSectors = 18; // Number of Sectors
83 static const Int_t fgkNPlates = 5; // Number of Plates
84 static const Int_t fgkMaxNstrip = 20; // Max. number of strips
85 static const Int_t fgkMaxTOFTree = 5; // numer of geom. levels:
86 static const Int_t fgkTimeDiff = 25000;// Min signal separation (ps)
88 static const Float_t fgkRmin = 370.; // Inner radius of the TOF (cm)
89 static const Float_t fgkRmax = 399; // Outer radius of the TOF (cm)
90 static const Float_t fgkZlenA = 106.0;// length (cm) of the A module
91 static const Float_t fgkZlenB = 141.0;// length (cm) of the B module
92 static const Float_t fgkZlenC = 177.5;// length (cm) of the C module
93 static const Float_t fgkXPad = 2.5; // Pad size in the x direction (cm)
94 static const Float_t fgkZPad = 3.5; // Pad size in the z direction (cm)
95 static const Float_t fgkMaxhZtof = 371.5;// Max half z-size of TOF (cm)
98 static const Float_t fgkSigmaForTail1= 2.;//Sig1 for simulation of TDC tails
99 static const Float_t fgkSigmaForTail2= 0.5;//Sig2 for simulation of TDC tails
100 static const Float_t fgkSpeedOfLight = 0.299792458;// c (10^9 m/s)
101 static const Float_t fgkPionMass = 0.13957;// pion mass (Gev/c^2)
102 static const Float_t fgkKaonMass = 0.49368;// kaon mass (Gev/c^2)
103 static const Float_t fgkProtonMass = 0.93827;// proton mass (Gev/c^2)
104 static const Float_t fgkElectronMass = 0.00051;// electron mass (Gev/c^2)
105 static const Float_t fgkMuonMass = 0.10566;// muon mass (Gev/c^2)
108 static const Float_t fgkDprecMin = 0.0000075;//num.prec.tolerance on Thmin
109 static const Float_t fgkDprecMax = 0.0000100;//num.prec.tolerance on Thma
110 static const Float_t fgkDprecCen = 0.0000005;//num.prec.tolerance on <Theta>
112 Float_t fAngles[fgkNPlates][fgkMaxNstrip]; //Strip Tilt Angles
113 Float_t fHeights[fgkNPlates][fgkMaxNstrip];//Strip heights
114 Float_t fPhiSec; //sector Phi width (deg)
116 ClassDef(AliTOFGeometry,0) // TOF Geometry base class