Track Points Added. Class needed for Anti-Merging cut
[u/mrichter/AliRoot.git] / HBTAN / AliHBTReaderTPC.h
1 #ifndef AliHBTReaderTPC_H
2 #define AliHBTReaderTPC_H
3
4 #include "AliHBTReader.h"
5
6 //Multi file reader for TPC
7 //
8 //This reader reads tracks AliTPCtracks.root
9 //                  particles form gAlice
10 //Piotr.Skowronski@cern.ch
11 //more info: http://alisoft.cern.ch/people/skowron/analyzer/index.html
12
13 #include <TString.h>
14 class TFile;
15 class TArrayF;
16 class AliRunLoader;
17 class AliTPCLoader;
18 class AliTPCtrack;
19
20 class AliHBTReaderTPC: public AliHBTReader
21 {
22   public:
23     AliHBTReaderTPC();
24     AliHBTReaderTPC(const Char_t* galicefilename);
25     AliHBTReaderTPC(TObjArray* dirs, const Char_t* galicefilename = "galice.root");
26
27     virtual ~AliHBTReaderTPC();
28     
29     void          Rewind();
30     
31     Bool_t        ReadsTracks() const {return kTRUE;}
32     Bool_t        ReadsParticles() const {return kTRUE;}
33     
34     void          SetMagneticField(Float_t mf){fMagneticField=mf;}
35     void          UseMagneticFieldFromRun(Bool_t flag = kTRUE){fUseMagFFromRun=flag;}
36     
37     void          SetNClustersRange(Int_t min,Int_t max);
38     void          SetChi2PerCluserRange(Float_t min, Float_t max);
39     void          SetC00Range(Float_t min, Float_t max);
40     void          SetC11Range(Float_t min, Float_t max);
41     void          SetC22Range(Float_t min, Float_t max);
42     void          SetC33Range(Float_t min, Float_t max);
43     void          SetC44Range(Float_t min, Float_t max);
44     void          SetNumberOfTrackPoints(Int_t n = 5,Float_t dr = 30.0) {fNTrackPoints = n; fdR = dr;}
45     Int_t         GetNumberOfTrackPoints() const {return fNTrackPoints;}
46   protected:
47     //in the future this class is will read global tracking
48     Int_t         ReadNext();
49     Int_t         OpenNextSession();
50     void          DoOpenError(const char* msgfmt, ...);
51     
52     TString       fFileName;//name of the file with galice.root
53     AliRunLoader* fRunLoader;//!RL
54     AliTPCLoader* fTPCLoader;//!TPCLoader
55     Float_t       fMagneticField;//magnetic field value that was enforced while reading
56     Bool_t        fUseMagFFromRun;//flag indicating if using field specified in gAlice (kTRUE)
57                                // or enforece other defined by fMagneticField
58     
59     Int_t         fNTrackPoints;//number of track points
60     Float_t       fdR;//spacing between points (along radius) in cm
61         
62     Int_t         fNClustMin;//Number of clusters min value
63     Int_t         fNClustMax;//Number of clusters max value
64     
65     Float_t       fNChi2PerClustMin;//Chi^2 per number of clusters min value
66     Float_t       fNChi2PerClustMax;//Chi^2 per number of clusters max value
67
68     Float_t       fC00Min;//C00 (0th diagonal element of covariance matrix) min value
69     Float_t       fC00Max;//C00 (0th diagonal element of covariance matrix) max value
70             
71     Float_t       fC11Min;//C11 (1th diagonal element of covariance matrix) min value
72     Float_t       fC11Max;//C11 (1th diagonal element of covariance matrix) max value
73     
74     Float_t       fC22Min;//C22 (2th diagonal element of covariance matrix) min value
75     Float_t       fC22Max;//C22 (2th diagonal element of covariance matrix) max value
76     
77     Float_t       fC33Min;//C33 (3th diagonal element of covariance matrix) min value
78     Float_t       fC33Max;//C33 (3th diagonal element of covariance matrix) max value
79     
80     Float_t       fC44Min;//C44 (4th diagonal element of covariance matrix) min value
81     Float_t       fC44Max;//C44 (4th diagonal element of covariance matrix) max value
82
83   private:
84     
85     Bool_t CheckTrack(AliTPCtrack* t);
86   public:
87     ClassDef(AliHBTReaderTPC,3)
88 };
89
90
91 #endif