]>
Commit | Line | Data |
---|---|---|
65a39007 | 1 | #ifndef AliFDet_H |
2 | #define AliFDet_H | |
3 | //////////////////////////////////////////////////////////////////////////// | |
4 | // // | |
5 | // AliFast Detector Class // | |
6 | // // | |
7 | // to provide information of effective material (X/Xo) of the detector // | |
8 | // needed for the multiple scattering formula used in AliFTrackMaker. // | |
9 | // // | |
10 | // the number and dimensions of cylindrical layers of material are // | |
11 | // initialised here for the TP status and are to be updated accordingly. // | |
12 | // // | |
13 | // this class is replacing the "init_geometry" routine of program "res.f // | |
14 | // // | |
15 | //////////////////////////////////////////////////////////////////////////// | |
16 | ||
17 | //#ifndef ROOT_TObject | |
18 | #include <TNamed.h> | |
19 | //#endif | |
20 | ||
21 | enum { kNMaxDet = 100 }; | |
22 | enum { kNMaxDet2 = 200 }; | |
23 | ||
24 | ||
25 | class AliFDet : public TNamed { | |
09af0662 | 26 | |
27 | public: | |
28 | AliFDet() {} | |
29 | AliFDet(const char *name, const char *title); | |
30 | virtual ~AliFDet() {} | |
31 | ||
32 | // Initialise parameters for detector geometry | |
33 | void InitDetParam(); | |
34 | void PrintDetInfo(); | |
35 | ||
36 | ||
37 | // Getters | |
38 | Double_t RDet(Int_t idDet) const {return fRDet[idDet];} | |
39 | Double_t RDetSQ(Int_t idDet) const {return fRDetSQ[idDet];} | |
40 | Double_t ThickDet(Int_t idDet) const {return fThickDet[idDet];} | |
41 | Double_t ErrorRPhi(Int_t idDet) const {return fErrorRPhi[idDet];} | |
42 | Double_t ErrorZ(Int_t idDet) const {return fErrorZ[idDet];} | |
43 | Double_t ErrorR(Int_t idDet) const {return fErrorR[idDet];} | |
44 | Int_t IFlagDet(Int_t idDet) const {return fIFlagDet[idDet];} | |
45 | Int_t IFlagGas(Int_t idDet) const {return fIFlagGas[idDet];} | |
46 | Double_t ErrorVertexX() const {return fErrorVertexX;} | |
47 | Double_t ErrorVertexY() const {return fErrorVertexY;} | |
48 | Double_t ErrorVertexZ() const {return fErrorVertexZ;} | |
49 | Double_t BMag() const {return fBMag;} | |
50 | Double_t ConstMag() const {return fConstMag;} | |
51 | Int_t NDetActive() const {return fNDetActive;} | |
52 | Int_t NDet() const {return fNDet;} | |
53 | ||
65a39007 | 54 | |
55 | private: | |
56 | //geometry parameters | |
57 | Double_t fRDet[kNMaxDet]; // radius of detector material in cm | |
58 | Double_t fRDetSQ[kNMaxDet]; // and the sq root of it | |
59 | Double_t fThickDet[kNMaxDet]; // thickness divided by Xo | |
60 | //errors due to detector precision plus alignement given by groups. | |
61 | //they are momentum dependent; for TPC are calculated properly. | |
62 | Double_t fErrorRPhi[kNMaxDet]; // error in bending direction | |
63 | Double_t fErrorZ[kNMaxDet]; // error in z direction | |
64 | Double_t fErrorR[kNMaxDet]; // error in r direction,from alignement only | |
65 | Int_t fIFlagDet[kNMaxDet]; // 1: sensitive detector | |
66 | // 2: errors will be calculated | |
67 | Int_t fIFlagGas[kNMaxDet]; // for gas detectors | |
68 | //vertex precision calculated for particle multiplicity mult_density | |
69 | //high multiplicity results in optimistic errors for vertex | |
70 | Double_t fErrorVertexX; // vertex precision in x | |
71 | Double_t fErrorVertexY; // vertex precision in y | |
72 | Double_t fErrorVertexZ; // vertex precision in z | |
73 | Double_t fBMag; // magnetic field in KGauss | |
09af0662 | 74 | Double_t fConstMag; // Constant Magnetic Field flag |
65a39007 | 75 | Int_t fNDetActive; // n. of active detector layers |
76 | Int_t fNDet; // n. of detectors layers | |
77 | ||
65a39007 | 78 | |
79 | ClassDef(AliFDet,1) //AliFast Detector intialisation for AliFTrackMaker | |
80 | }; | |
81 | ||
82 | #endif | |
83 | ||
84 | ||
85 | ||
86 | ||
87 | ||
88 | ||
89 | ||
90 | ||
91 | ||
92 |