]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ALIFAST/AliFDet.h
Fix for multiple events per file: inhibit decrease of size of fParticleFileMap.
[u/mrichter/AliRoot.git] / ALIFAST / AliFDet.h
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