This commit was generated by cvs2svn to compensate for changes in r1018,
[u/mrichter/AliRoot.git] / ALIFAST / AliFTrackMaker.h
1 #ifndef AliFTrackMaker_H
2 #define AliFTrackMaker_H
3
4 //////////////////////////////////////////////////////////////////////////
5 //                                                                      //
6 // AliFast TrackMaker class.                                            //
7 //                                                                      //
8 //                                                                      //
9 //////////////////////////////////////////////////////////////////////////
10
11 #ifndef AliFMaker_H
12 #include "AliFMaker.h"
13 #endif
14 #ifndef ROOT_TMatrix
15 #include <TMatrix.h>
16 #endif
17 #ifndef ROOT_TH1
18 #include <TH1.h>
19 #endif
20
21 class AliFTrack;
22 #include "AliFDet.h"
23
24
25 class AliFTrackMaker : public AliFMaker {
26
27 protected:
28    Int_t           fNTracks;          //Number of tracks
29    Int_t           fRecTrack;        //Tracks reconstruction  on/off
30    //masses
31    Double_t        fPionMass;
32    Double_t        fKaonMass;
33    Double_t        fElectronMass;
34    Double_t        fProtonMass;
35    //matrices
36    Double_t        fHH[kNMaxDet2][kNMaxDet2];   
37    Double_t        fHHI[kNMaxDet2][kNMaxDet2];
38    //TPC resolution
39    Double_t        fSigmaRPhiSQ;   
40    Double_t        fSigmaZSQ;   
41    //     Tracks histograms (control)
42    TH1D          *fResID11;          //histogram ID11 Elec: delta(1/pTot)/pTot
43    TH1D          *fResID12;          //histogram ID12 Elec: delta(lambda)/lambda
44    TH1D          *fResID13;          //histogram ID13 Elec: delta(phi)/phi
45    TH1D          *fResID21;          //histogram ID21 Pion: delta(1/pTot)/pTot
46    TH1D          *fResID22;          //histogram ID22 Pion: delta(lambda)/lambda
47    TH1D          *fResID23;          //histogram ID23 Pion: delta(phi)/phi
48    TH1D          *fResID31;          //histogram ID31 Kaon: delta(1/pTot)/pTot
49    TH1D          *fResID32;          //histogram ID32 Kaon: delta(lambda)/lambda
50    TH1D          *fResID33;          //histogram ID33 Kaon: delta(phi)/phi
51    TH1D          *fResID41;          //histogram ID41 Proton: delta(1/pTot)/pTot
52    TH1D          *fResID42;          //histogram ID42 Proton: delta(lambda)/lambda
53    TH1D          *fResID43;          //histogram ID43 Proton: delta(phi)/phi
54    //     Tracks histograms (Test job)
55    TH1D          *fResID1Test;       //histogram ID1 in res.f 
56    TH1D          *fResID2Test;       //histogram ID2 in res.f 
57    TH1D          *fResID3Test;       //histogram ID3 in res.f 
58    TH1D          *fResID4Test;       //histogram ID4 in res.f 
59    TH1D          *fResID5Test;       //histogram ID5 in res.f 
60
61 public:
62                   AliFTrackMaker();
63                   AliFTrackMaker(const char *name, const char *title);
64    virtual       ~AliFTrackMaker();
65    virtual void   Clear(Option_t *option="");
66    virtual void   Draw(Option_t *option="");
67    virtual void   Finish();
68    virtual void   Init();
69    virtual void   Make();
70    virtual void   MakeTest(Int_t n);
71    virtual void   PrintInfo() {}
72    AliFTrack     *AddTrack(Int_t code, Double_t charge, Double_t pT, Double_t eta, Double_t phi,
73                   Double_t v11, Double_t v22, Double_t v33, 
74                   Double_t v12, Double_t v13, Double_t v23, Int_t iFlag);
75            void   LogLikelyhood(Int_t idTrack, Double_t pInvers,  Double_t lambda);
76            void   TPCResolution(Double_t ptransv, Double_t radiPad, Double_t lambda); 
77    Double_t       ParticleMass(Int_t idTrack);  
78    Double_t       Rapidity(Double_t pT, Double_t pZ);  
79    Double_t       Angle(Double_t pX, Double_t pY);  
80    Int_t          Charge(Int_t kf);
81    Int_t          Compress(Int_t kf);
82            void   ErrorMatrix(Int_t idTrack, Double_t pT,  Double_t eta,
83                               Double_t &v11, Double_t &v22, Double_t &v33, 
84                               Double_t &v12, Double_t &v13, Double_t &v23, Int_t &iFlag);
85
86 //    Getters
87    Double_t       HH(Int_t id1, Int_t id2) {return fHH[id1][id2];}
88    Double_t       HHI(Int_t id1, Int_t id2) {return fHHI[id1][id2];}
89    Double_t       SigmaRPhiSQ() {return fSigmaRPhiSQ;}
90    Double_t       SigmaZSQ() {return fSigmaZSQ;}
91    Int_t          NTracks() {return fNTracks;}
92
93
94 //     Getters Tracks histograms
95
96
97
98 //    Setters for tracks
99    //masses
100    void           SetPionMass(Double_t val=0.1395679e0) {fPionMass=val;}
101    void           SetKaonMass(Double_t val=0.493646e0) {fKaonMass=val;}
102    void           SetElectronMass(Double_t val=0.51099906e-3) {fElectronMass=val;}
103    void           SetProtonMass(Double_t val=0.93827231e0) {fProtonMass=val;}
104    void           SetHH(Int_t id1, Int_t id2, Double_t hh) {fHH[id1][id2]=hh;}
105    void           SetHHI(Int_t id1, Int_t id2, Double_t hhi) {fHHI[id1][id2]=hhi;}
106    void           SetSigmaRPhiSQ(Double_t val){fSigmaRPhiSQ=val;}
107    void           SetSigmaZSQ(Double_t val){fSigmaZSQ=val;}
108    void           SetRecTrack(Int_t val=100){fRecTrack=val;}
109
110
111
112    // 
113    ClassDef(AliFTrackMaker, 1)   //AliFast TrackMaker
114 };
115
116 #endif
117
118
119
120
121
122
123
124