Pair Check corrected
[u/mrichter/AliRoot.git] / HBTAN / AliHBTReaderESD.h
CommitLineData
7be13e68 1#ifndef ALIHBTREADERESD_H
2#define ALIHBTREADERESD_H
7be13e68 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
61f231ad 15#include "AliHBTReader.h"
7be13e68 16#include <TString.h>
17class TFile;
bed069a4 18class AliRunLoader;
61f231ad 19class AliESD;
eb9ddbc0 20class AliESDtrack;
7be13e68 21
22class AliHBTReaderESD: public AliHBTReader
23{
24 public:
bed069a4 25 AliHBTReaderESD(const Char_t* esdfilename = "AliESDs.root", const Char_t* galfilename = "galice.root");
7be13e68 26
bed069a4 27 AliHBTReaderESD(TObjArray* dirs,const Char_t* esdfilename = "AliESDs.root", const Char_t* galfilename = "galice.root");
7be13e68 28
29 virtual ~AliHBTReaderESD();
30
bed069a4 31 void Rewind();
7be13e68 32
bed069a4 33 void ReadParticles(Bool_t flag){fReadParticles = flag;}
34 Bool_t ReadsTracks() const {return kTRUE;}
35 Bool_t ReadsParticles() const {return fReadParticles;}
eb9ddbc0 36 void SetCheckParticlePID(Bool_t flag){fCheckParticlePID = flag;}
37
88378f71 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);
eb9ddbc0 43
98383320 44 void SetChi2Range(Float_t min, Float_t max);
88378f71 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;}
ae05eed3 53 void MustTPC(Bool_t flag){fMustTPC = flag;}
88378f71 54
7be13e68 55 enum ESpecies {kESDElectron = 0, kESDMuon, kESDPion, kESDKaon, kESDProton, kNSpecies};
bed069a4 56 static Int_t GetSpeciesPdgCode(ESpecies spec);//skowron
7be13e68 57
61f231ad 58 Int_t ReadESD(AliESD* esd);
eb9ddbc0 59
bed069a4 60 protected:
61 Int_t ReadNext();
62 TFile* OpenFile(Int_t evno);//opens files to be read for given event
eb9ddbc0 63 Bool_t CheckTrack(AliESDtrack* t) const;
64
bed069a4 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
88378f71 69 TIter* fKeyIterator;
bed069a4 70 Bool_t fReadParticles;//flag indicating wether to read particles from kinematics
eb9ddbc0 71 Bool_t fCheckParticlePID;//flag indicating to perform the check on PID of simulated particle
7be13e68 72
88378f71 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
ae05eed3 80 Bool_t fMustTPC;// must be reconstructed in TPC -> reject tracks reconstructed ITS stand alone
81
88378f71 82 //Cut Parameters specific to TPC tracks
83
84 Int_t fNTPCClustMin;//Number of clusters min value
85 Int_t fNTPCClustMax;//Number of clusters max value
86
87 Float_t fTPCChi2PerClustMin;//Chi^2 per number of clusters min value
88 Float_t fTPCChi2PerClustMax;//Chi^2 per number of clusters max value
89
90
91 // Required parameters at vertex
eb9ddbc0 92 Float_t fChi2Min;//Chi^2 min value
93 Float_t fChi2Max;//Chi^2 max value
94
88378f71 95 Float_t fC00Min;//C00 (0th diagonal element of covariance matrix) min value
96 Float_t fC00Max;//C00 (0th diagonal element of covariance matrix) max value
97
98 Float_t fC11Min;//C11 (1th diagonal element of covariance matrix) min value
99 Float_t fC11Max;//C11 (1th diagonal element of covariance matrix) max value
100
101 Float_t fC22Min;//C22 (2th diagonal element of covariance matrix) min value
102 Float_t fC22Max;//C22 (2th diagonal element of covariance matrix) max value
103
104 Float_t fC33Min;//C33 (3th diagonal element of covariance matrix) min value
105 Float_t fC33Max;//C33 (3th diagonal element of covariance matrix) max value
106
107 Float_t fC44Min;//C44 (4th diagonal element of covariance matrix) min value
108 Float_t fC44Max;//C44 (4th diagonal element of covariance matrix) max value
109
110 // Required parameters at TPC Inner Layer
111 Float_t fTPCC00Min;//C00 (0th diagonal element of covariance matrix) min value
112 Float_t fTPCC00Max;//C00 (0th diagonal element of covariance matrix) max value
113
114 Float_t fTPCC11Min;//C11 (1th diagonal element of covariance matrix) min value
115 Float_t fTPCC11Max;//C11 (1th diagonal element of covariance matrix) max value
116
117 Float_t fTPCC22Min;//C22 (2th diagonal element of covariance matrix) min value
118 Float_t fTPCC22Max;//C22 (2th diagonal element of covariance matrix) max value
119
120 Float_t fTPCC33Min;//C33 (3th diagonal element of covariance matrix) min value
121 Float_t fTPCC33Max;//C33 (3th diagonal element of covariance matrix) max value
122
123 Float_t fTPCC44Min;//C44 (4th diagonal element of covariance matrix) min value
124 Float_t fTPCC44Max;//C44 (4th diagonal element of covariance matrix) max value
125
7be13e68 126 private:
bed069a4 127 ClassDef(AliHBTReaderESD,2)
7be13e68 128};
129
130
131#endif