ec1eceee0dc1c0f9e4128cb0227e0374be0b63ce
[u/mrichter/AliRoot.git] / HBTAN / AliHBTReaderESD.h
1 #ifndef ALIHBTREADERESD_H
2 #define ALIHBTREADERESD_H
3 //___________________________________________________________________________
4 /////////////////////////////////////////////////////////////////////////////
5 //                                                                         //
6 // Multi file reader for ESD                                               //
7 //                                                                         //
8 // This reader reads tracks from Event Summary Data                        //
9 // do not read particles                                                   //
10 // Piotr.Skowronski@cern.ch                                                //
11 // more info: http://alisoft.cern.ch/people/skowron/analyzer/index.html    //
12 //                                                                         //
13 /////////////////////////////////////////////////////////////////////////////
14
15 #include "AliHBTReader.h"
16 #include <TString.h>
17 class TFile;
18 class AliRunLoader;
19 class AliESD;
20 class AliESDtrack;
21
22 class AliHBTReaderESD: public AliHBTReader
23 {
24   public:
25     AliHBTReaderESD(const Char_t* esdfilename = "AliESDs.root", const Char_t* galfilename = "galice.root");
26
27     AliHBTReaderESD(TObjArray* dirs,const Char_t* esdfilename = "AliESDs.root", const Char_t* galfilename = "galice.root");
28
29     virtual ~AliHBTReaderESD();
30     
31     void          Rewind();
32     
33     void          ReadParticles(Bool_t flag){fReadParticles = flag;}
34     Bool_t        ReadsTracks() const {return kTRUE;}
35     Bool_t        ReadsParticles() const {return fReadParticles;}
36     void          SetCheckParticlePID(Bool_t flag){fCheckParticlePID = flag;}
37         
38     void          ReadDataTPC(){}
39     void          ReadDataITS(){}
40
41     void          SetTPCNClustersRange(Int_t min,Int_t max);
42     void          SetTPCChi2PerCluserRange(Float_t min, Float_t max);
43     
44     void          SetChi2Range(Float_t min, Float_t max);
45     void          SetC00Range(Float_t min, Float_t max);
46     void          SetC11Range(Float_t min, Float_t max);
47     void          SetC22Range(Float_t min, Float_t max);
48     void          SetC33Range(Float_t min, Float_t max);
49     void          SetC44Range(Float_t min, Float_t max);
50     void          SetNumberOfTrackPoints(Int_t n = 5,Float_t dr = 30.0) {fNTrackPoints = n; fdR = dr;}
51     Int_t         GetNumberOfTrackPoints() const {return fNTrackPoints;}
52     void          SetClusterMap(Bool_t flag = kTRUE){fClusterMap = flag;}
53
54     
55     enum ESpecies {kESDElectron = 0, kESDMuon, kESDPion, kESDKaon, kESDProton, kNSpecies};
56     static Int_t  GetSpeciesPdgCode(ESpecies spec);//skowron
57     
58     Int_t         ReadESD(AliESD* esd);
59     
60   protected:
61     Int_t         ReadNext();
62     TFile*        OpenFile(Int_t evno);//opens files to be read for given event
63     Bool_t        CheckTrack(AliESDtrack* t) const;
64     
65     TString       fESDFileName;//name of the file with tracks
66     TString       fGAlFileName;//name of the file with tracks
67     TFile*        fFile;//! pointer to current ESD file
68     AliRunLoader* fRunLoader;//!Run Loader
69     TIter*        fKeyIterator;
70     Bool_t        fReadParticles;//flag indicating wether to read particles from kinematics
71     Bool_t        fCheckParticlePID;//flag indicating to perform the check on PID of simulated particle
72     
73     Int_t         fNTrackPoints;//number of track points; if==0 track points are not created
74     Float_t       fdR;//spacing between points (along radius) in cm
75                       //Track Points are needed for Anti-Merging Cut
76     
77     Bool_t        fClusterMap;//Flag indicating if Claster Map should be created for each track
78                               //Claster map is needed for Anti-Splitting Cut
79
80     //Cut Parameters specific to TPC tracks
81         
82     Int_t         fNTPCClustMin;//Number of clusters min value
83     Int_t         fNTPCClustMax;//Number of clusters max value
84     
85     Float_t       fTPCChi2PerClustMin;//Chi^2 per number of clusters min value
86     Float_t       fTPCChi2PerClustMax;//Chi^2 per number of clusters max value
87
88
89     // Required parameters at vertex
90     Float_t       fChi2Min;//Chi^2 min value
91     Float_t       fChi2Max;//Chi^2 max value
92
93     Float_t       fC00Min;//C00 (0th diagonal element of covariance matrix) min value
94     Float_t       fC00Max;//C00 (0th diagonal element of covariance matrix) max value
95             
96     Float_t       fC11Min;//C11 (1th diagonal element of covariance matrix) min value
97     Float_t       fC11Max;//C11 (1th diagonal element of covariance matrix) max value
98     
99     Float_t       fC22Min;//C22 (2th diagonal element of covariance matrix) min value
100     Float_t       fC22Max;//C22 (2th diagonal element of covariance matrix) max value
101     
102     Float_t       fC33Min;//C33 (3th diagonal element of covariance matrix) min value
103     Float_t       fC33Max;//C33 (3th diagonal element of covariance matrix) max value
104     
105     Float_t       fC44Min;//C44 (4th diagonal element of covariance matrix) min value
106     Float_t       fC44Max;//C44 (4th diagonal element of covariance matrix) max value
107
108     // Required parameters at TPC Inner Layer
109     Float_t       fTPCC00Min;//C00 (0th diagonal element of covariance matrix) min value
110     Float_t       fTPCC00Max;//C00 (0th diagonal element of covariance matrix) max value
111             
112     Float_t       fTPCC11Min;//C11 (1th diagonal element of covariance matrix) min value
113     Float_t       fTPCC11Max;//C11 (1th diagonal element of covariance matrix) max value
114     
115     Float_t       fTPCC22Min;//C22 (2th diagonal element of covariance matrix) min value
116     Float_t       fTPCC22Max;//C22 (2th diagonal element of covariance matrix) max value
117     
118     Float_t       fTPCC33Min;//C33 (3th diagonal element of covariance matrix) min value
119     Float_t       fTPCC33Max;//C33 (3th diagonal element of covariance matrix) max value
120     
121     Float_t       fTPCC44Min;//C44 (4th diagonal element of covariance matrix) min value
122     Float_t       fTPCC44Max;//C44 (4th diagonal element of covariance matrix) max value
123     
124   private:
125     ClassDef(AliHBTReaderESD,2)
126 };
127
128
129 #endif