geometry 12 + 24 && recent media properties
[u/mrichter/AliRoot.git] / HBTAN / AliHBTReaderTPC.h
1 #ifndef AliHBTReaderTPC_H
2 #define AliHBTReaderTPC_H
3 //______________________________________________
4 //
5 // class AliHBTReaderTPC
6 //
7 // reader for TPC tracks
8 // needs galice.root
9 // 
10 // more info: http://aliweb.cern.ch/people/skowron/analyzer/index.html
11 // Piotr.Skowronski@cern.ch
12 //
13 ///////////////////////////////////////////////////////////////////////////
14
15 #include "AliHBTReader.h"
16 #include <TString.h>
17
18 class TFile;
19 class TArrayF;
20 class AliRunLoader;
21 class AliTPCLoader;
22 class AliTPCtrack;
23
24 class AliHBTReaderTPC: public AliHBTReader
25 {
26   public:
27     AliHBTReaderTPC();
28     AliHBTReaderTPC(const Char_t* galicefilename);
29     AliHBTReaderTPC(TObjArray* dirs, const Char_t* galicefilename = "galice.root");
30     AliHBTReaderTPC(const AliHBTReaderTPC& in);
31     
32     virtual ~AliHBTReaderTPC();
33     
34     AliHBTReaderTPC& operator=(const AliHBTReaderTPC& in);
35     
36     void          Rewind();
37     
38     Bool_t        ReadsTracks() const {return kTRUE;}
39     Bool_t        ReadsParticles() const {return kTRUE;}
40     
41     void          SetMagneticField(Float_t mf){fMagneticField=mf;}
42     void          UseMagneticFieldFromRun(Bool_t flag = kTRUE){fUseMagFFromRun=flag;}
43     
44     void          SetNClustersRange(Int_t min,Int_t max);
45     void          SetChi2PerCluserRange(Float_t min, Float_t max);
46     void          SetC00Range(Float_t min, Float_t max);
47     void          SetC11Range(Float_t min, Float_t max);
48     void          SetC22Range(Float_t min, Float_t max);
49     void          SetC33Range(Float_t min, Float_t max);
50     void          SetC44Range(Float_t min, Float_t max);
51     void          SetNumberOfTrackPoints(Int_t n = 5,Float_t dr = 30.0) {fNTrackPoints = n; fdR = dr;}
52     Int_t         GetNumberOfTrackPoints() const {return fNTrackPoints;}
53     void          SetClusterMap(Bool_t flag = kTRUE){fClusterMap = flag;}
54
55   protected:
56     Int_t         ReadNext();
57     Int_t         OpenNextSession();
58     void          DoOpenError(const char* msgfmt, ...);
59     
60     TString       fFileName;//name of the file with galice.root
61     AliRunLoader* fRunLoader;//!RL
62     AliTPCLoader* fTPCLoader;//!TPCLoader
63     Float_t       fMagneticField;//magnetic field value that was enforced while reading
64     Bool_t        fUseMagFFromRun;//flag indicating if using field specified in gAlice (kTRUE)
65                                // or enforece other defined by fMagneticField
66     
67     Int_t         fNTrackPoints;//number of track points; if==0 track points are not created
68     Float_t       fdR;//spacing between points (along radius) in cm
69                       //Track Points are needed for Anti-Merging Cut
70     
71     Bool_t        fClusterMap;//Flag indicating if Claster Map should be created for each track
72                               //Claster map is needed for Anti-Splitting Cut
73
74     //Cut Parameters specific to TPC tracks
75         
76     Int_t         fNClustMin;//Number of clusters min value
77     Int_t         fNClustMax;//Number of clusters max value
78     
79     Float_t       fNChi2PerClustMin;//Chi^2 per number of clusters min value
80     Float_t       fNChi2PerClustMax;//Chi^2 per number of clusters max value
81
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   private:
98     
99     Bool_t CheckTrack(AliTPCtrack* t) const;
100
101     ClassDef(AliHBTReaderTPC,3)
102 };
103
104
105 #endif