]>
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 { | |
26 | ||
27 | private: | |
28 | //geometry parameters | |
29 | Double_t fRDet[kNMaxDet]; // radius of detector material in cm | |
30 | Double_t fRDetSQ[kNMaxDet]; // and the sq root of it | |
31 | Double_t fThickDet[kNMaxDet]; // thickness divided by Xo | |
32 | //errors due to detector precision plus alignement given by groups. | |
33 | //they are momentum dependent; for TPC are calculated properly. | |
34 | Double_t fErrorRPhi[kNMaxDet]; // error in bending direction | |
35 | Double_t fErrorZ[kNMaxDet]; // error in z direction | |
36 | Double_t fErrorR[kNMaxDet]; // error in r direction,from alignement only | |
37 | Int_t fIFlagDet[kNMaxDet]; // 1: sensitive detector | |
38 | // 2: errors will be calculated | |
39 | Int_t fIFlagGas[kNMaxDet]; // for gas detectors | |
40 | //vertex precision calculated for particle multiplicity mult_density | |
41 | //high multiplicity results in optimistic errors for vertex | |
42 | Double_t fErrorVertexX; // vertex precision in x | |
43 | Double_t fErrorVertexY; // vertex precision in y | |
44 | Double_t fErrorVertexZ; // vertex precision in z | |
45 | Double_t fBMag; // magnetic field in KGauss | |
46 | Double_t fConstMag; // | |
47 | Int_t fNDetActive; // n. of active detector layers | |
48 | Int_t fNDet; // n. of detectors layers | |
49 | ||
50 | public: | |
51 | AliFDet() {} | |
52 | AliFDet(const char *name, const char *title); | |
53 | virtual ~AliFDet() {} | |
54 | ||
55 | // Initialise parameters for detector geometry | |
56 | void InitDetParam(); | |
57 | void PrintDetInfo(); | |
58 | ||
59 | ||
60 | // Getters | |
61 | Double_t RDet(Int_t idDet) {return fRDet[idDet];} | |
62 | Double_t RDetSQ(Int_t idDet) {return fRDetSQ[idDet];} | |
63 | Double_t ThickDet(Int_t idDet) {return fThickDet[idDet];} | |
64 | Double_t ErrorRPhi(Int_t idDet) {return fErrorRPhi[idDet];} | |
65 | Double_t ErrorZ(Int_t idDet) {return fErrorZ[idDet];} | |
66 | Double_t ErrorR(Int_t idDet) {return fErrorR[idDet];} | |
67 | Int_t IFlagDet(Int_t idDet) {return fIFlagDet[idDet];} | |
68 | Int_t IFlagGas(Int_t idDet) {return fIFlagGas[idDet];} | |
69 | Double_t ErrorVertexX() {return fErrorVertexX;} | |
70 | Double_t ErrorVertexY() {return fErrorVertexY;} | |
71 | Double_t ErrorVertexZ() {return fErrorVertexZ;} | |
72 | Double_t BMag() {return fBMag;} | |
73 | Double_t ConstMag() {return fConstMag;} | |
74 | Int_t NDetActive() {return fNDetActive;} | |
75 | Int_t NDet() {return fNDet;} | |
76 | ||
77 | ||
78 | ClassDef(AliFDet,1) //AliFast Detector intialisation for AliFTrackMaker | |
79 | }; | |
80 | ||
81 | #endif | |
82 | ||
83 | ||
84 | ||
85 | ||
86 | ||
87 | ||
88 | ||
89 | ||
90 | ||
91 |