]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HBTAN/AliHBTReaderTPC.h
New version including TOF
[u/mrichter/AliRoot.git] / HBTAN / AliHBTReaderTPC.h
index b29555fbcf3ea7c7ca456700b9918caac2a1ba6f..7680b9901e8ac12ef28f1f23fb111014038ac652 100644 (file)
@@ -1,16 +1,20 @@
 #ifndef AliHBTReaderTPC_H
 #define AliHBTReaderTPC_H
-
-#include "AliHBTReader.h"
-
-//Multi file reader for TPC
+//______________________________________________
+//
+// class AliHBTReaderTPC
+//
+// reader for TPC tracks
+// needs galice.root
+// 
+// more info: http://aliweb.cern.ch/people/skowron/analyzer/index.html
+// Piotr.Skowronski@cern.ch
 //
-//This reader reads tracks AliTPCtracks.root
-//                  particles form gAlice
-//Piotr.Skowronski@cern.ch
-//more info: http://alisoft.cern.ch/people/skowron/analyzer/index.html
+///////////////////////////////////////////////////////////////////////////
 
+#include "AliHBTReader.h"
 #include <TString.h>
+
 class TFile;
 class TArrayF;
 class AliRunLoader;
@@ -23,9 +27,12 @@ class AliHBTReaderTPC: public AliHBTReader
     AliHBTReaderTPC();
     AliHBTReaderTPC(const Char_t* galicefilename);
     AliHBTReaderTPC(TObjArray* dirs, const Char_t* galicefilename = "galice.root");
-
+    AliHBTReaderTPC(const AliHBTReaderTPC& in);
+    
     virtual ~AliHBTReaderTPC();
     
+    AliHBTReaderTPC& operator=(const AliHBTReaderTPC& in);
+    
     void          Rewind();
     
     Bool_t        ReadsTracks() const {return kTRUE;}
@@ -36,10 +43,16 @@ class AliHBTReaderTPC: public AliHBTReader
     
     void          SetNClustersRange(Int_t min,Int_t max);
     void          SetChi2PerCluserRange(Float_t min, Float_t max);
+    void          SetC00Range(Float_t min, Float_t max);
+    void          SetC11Range(Float_t min, Float_t max);
+    void          SetC22Range(Float_t min, Float_t max);
+    void          SetC33Range(Float_t min, Float_t max);
     void          SetC44Range(Float_t min, Float_t max);
-    
+    void          SetNumberOfTrackPoints(Int_t n = 5,Float_t dr = 30.0) {fNTrackPoints = n; fdR = dr;}
+    Int_t         GetNumberOfTrackPoints() const {return fNTrackPoints;}
+    void          SetClusterMap(Bool_t flag = kTRUE){fClusterMap = flag;}
+
   protected:
-    //in the future this class is will read global tracking
     Int_t         ReadNext();
     Int_t         OpenNextSession();
     void          DoOpenError(const char* msgfmt, ...);
@@ -51,19 +64,40 @@ class AliHBTReaderTPC: public AliHBTReader
     Bool_t        fUseMagFFromRun;//flag indicating if using field specified in gAlice (kTRUE)
                                // or enforece other defined by fMagneticField
     
-    Int_t fNClustMin;
-    Int_t fNClustMax;
+    Int_t         fNTrackPoints;//number of track points; if==0 track points are not created
+    Float_t       fdR;//spacing between points (along radius) in cm
+                      //Track Points are needed for Anti-Merging Cut
     
-    Float_t fNChi2PerClustMin;
-    Float_t fNChi2PerClustMax;
+    Bool_t        fClusterMap;//Flag indicating if Claster Map should be created for each track
+                              //Claster map is needed for Anti-Splitting Cut
+
+    //Cut Parameters specific to TPC tracks
+        
+    Int_t         fNClustMin;//Number of clusters min value
+    Int_t         fNClustMax;//Number of clusters max value
+    
+    Float_t       fNChi2PerClustMin;//Chi^2 per number of clusters min value
+    Float_t       fNChi2PerClustMax;//Chi^2 per number of clusters max value
+
+    Float_t       fC00Min;//C00 (0th diagonal element of covariance matrix) min value
+    Float_t       fC00Max;//C00 (0th diagonal element of covariance matrix) max value
+            
+    Float_t       fC11Min;//C11 (1th diagonal element of covariance matrix) min value
+    Float_t       fC11Max;//C11 (1th diagonal element of covariance matrix) max value
     
-    Float_t fC44Min;
-    Float_t fC44Max;
+    Float_t       fC22Min;//C22 (2th diagonal element of covariance matrix) min value
+    Float_t       fC22Max;//C22 (2th diagonal element of covariance matrix) max value
     
+    Float_t       fC33Min;//C33 (3th diagonal element of covariance matrix) min value
+    Float_t       fC33Max;//C33 (3th diagonal element of covariance matrix) max value
+    
+    Float_t       fC44Min;//C44 (4th diagonal element of covariance matrix) min value
+    Float_t       fC44Max;//C44 (4th diagonal element of covariance matrix) max value
+
   private:
     
-    Bool_t CheckTrack(AliTPCtrack* t);
-  public:
+    Bool_t CheckTrack(AliTPCtrack* t) const;
+
     ClassDef(AliHBTReaderTPC,3)
 };