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