]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - CORRFW/AliCFTrackQualityCuts.h
Implemented ZDC time cut in phsyics selection and in trigger analysis for MC. Trackle...
[u/mrichter/AliRoot.git] / CORRFW / AliCFTrackQualityCuts.h
index 36b4ff3973860fd3adf3eeae2e032f1f0281e8c4..05e9ec629ec4e3d37d54bdef0ee29de408b9d1f1 100644 (file)
 // ESD and AOD data.
 // It mainly consists of a IsSelected function that returns a boolean.
 // This function checks whether the considered track passes a set of cuts:
-// - number of clusters in the TPC
 // - number of clusters in the ITS
-// - chi2 / cluster in the TPC
+// - number of clusters in the TPC
+// - number of clusters in the TRD
+// - ratio of found / finable number of clusters in the TPC
+// - number of tracklets in the TRD
+// - number TRD tracklets used for pid
 // - chi2 / cluster in the ITS
-// - successful TPC refit
-// - successful ITS refit
+// - chi2 / cluster in the TPC
+// - chi2 / tracklet in the TRD
+// - number of clusters in the TPC used for dEdx calculation
 // - covariance matrix diagonal elements
+// - track status (cf AliESDtrack.h)
 //
 // The cut values for these cuts are set with the corresponding set functions.
 // All cut classes provided by the correction framework are supposed to be
 
 #include "AliCFCutBase.h"
 
-class TH2F ;
-class TH1F ;
+class TH2F;
+class TH1F;
 class TBits;
-class AliESDtrack ;
+class AliESDtrack;
+class AliESDtrackCuts;
 
 class AliCFTrackQualityCuts : public AliCFCutBase
 {
@@ -65,12 +71,17 @@ class AliCFTrackQualityCuts : public AliCFCutBase
   // cut value setter
   void SetMinNClusterTPC(Int_t cluster=-1)             {fMinNClusterTPC = cluster;}
   void SetMinNClusterITS(Int_t cluster=-1)             {fMinNClusterITS = cluster;}
-  void SetMaxChi2PerClusterTPC(Double_t chi=1e99)      {fMaxChi2PerClusterTPC = chi;}
-  void SetMaxChi2PerClusterITS(Double_t chi=1e99)      {fMaxChi2PerClusterITS = chi;}
-  void SetRequireTPCRefit(Bool_t b=kFALSE)             {fRequireTPCRefit = b;}
-  void SetRequireITSRefit(Bool_t b=kFALSE)             {fRequireITSRefit = b;}
-  void SetMaxCovDiagonalElements(Float_t c1=1e99, Float_t c2=1e99, Float_t c3=1e99, Float_t c4=1e99, Float_t c5=1e99) 
+  void SetMinNClusterTRD(Int_t cluster=-1)             {fMinNClusterTRD = cluster;}
+  void SetMinFoundClusterTPC(Double_t fraction=-1)     {fMinFoundClusterTPC = fraction;}
+  void SetMinNTrackletTRD(Int_t tracklet=-1)           {fMinNTrackletTRD = tracklet;}
+  void SetMinNTrackletTRDpid(Int_t tracklet=-1)                {fMinNTrackletTRDpid = tracklet;}
+  void SetMaxChi2PerClusterTPC(Double_t chi=1.e+09)    {fMaxChi2PerClusterTPC = chi;}
+  void SetMaxChi2PerClusterITS(Double_t chi=1.e+09)    {fMaxChi2PerClusterITS = chi;}
+  void SetMaxChi2PerTrackletTRD(Double_t chi=1.e+09)   {fMaxChi2PerTrackletTRD = chi;}
+  void SetMinNdEdxClusterTPC(UShort_t cluster=0)       {fMinNdEdxClusterTPC = cluster;}
+  void SetMaxCovDiagonalElements(Float_t c1=1.e+09, Float_t c2=1.e+09, Float_t c3=1.e+09, Float_t c4=1.e+09, Float_t c5=1.e+09) 
 {fCovariance11Max=c1;fCovariance22Max=c2;fCovariance33Max=c3;fCovariance44Max=c4;fCovariance55Max=c5;}
+  void SetStatus(ULong_t status=0) {fStatus = status ;}
 
   // QA histograms
   void DrawHistograms(Bool_t drawLogScale=kTRUE);
@@ -85,18 +96,23 @@ class AliCFTrackQualityCuts : public AliCFCutBase
   enum { 
     kCutClusterTPC=0,  // number of clusters in TPC
     kCutClusterITS,    // number of clusters in ITS
+    kCutClusterTRD,    // number of clusters in TRD
+    kCutMinFoundClusterTPC,    // ratio found / findable number of clusters in TPC
+    kCutTrackletTRD,   // number of tracklets in TRD
+    kCutTrackletTRDpid,        // tracklets for TRD pid
     kCutChi2TPC,       // chi2 per cluster in TPC
     kCutChi2ITS,       // chi2 per cluster in ITS
-    kCutRefitTPC,      // require TPC refit
-    kCutRefitITS,      // require ITS refit
+    kCutChi2TRD,       // chi2 per cluster in TRD
+    kCutdEdxClusterTPC,        // number of points used for dEdx
     kCutCovElement11,  // diagonal element 11 of covariance matrix
     kCutCovElement22,  // diagonal element 22 of covariance matrix
     kCutCovElement33,  // diagonal element 33 of covariance matrix
     kCutCovElement44,  // diagonal element 44 of covariance matrix
     kCutCovElement55,  // diagonal element 55 of covariance matrix
-    kNCuts=11,         // number of single selections
+    kCutStatus,         // track status
+    kNCuts,            // number of single selections
     kNStepQA=2,                // number of QA steps (before/after the cuts)
-    kNHist=11          // number of QA histograms
+    kNHist=15          // number of QA histograms
   };
 
  private:
@@ -105,32 +121,42 @@ class AliCFTrackQualityCuts : public AliCFCutBase
   void Initialise();                   // sets everything to 0
   void FillHistograms(TObject* obj, Bool_t b);
                                        // Fills histograms before and after cuts
-  Double_t fMinNClusterTPC;            // min number of clusters in TPC
-  Double_t fMinNClusterITS;            // min number of clusters in ITS
+  Int_t fMinNClusterTPC;               // min number of clusters in TPC
+  Int_t fMinNClusterITS;               // min number of clusters in ITS
+  Double_t fMinNClusterTRD;            // min number of clusters in TRD
+  Double_t fMinFoundClusterTPC;                // min ratio found / findable number of clusters in TPC
+  Double_t fMinNTrackletTRD;           // min number of tracklets in TRD
+  Double_t fMinNTrackletTRDpid;                // min number of tracklets for TRD pid
   Double_t fMaxChi2PerClusterTPC;      // max chi2 per clusters in TPC
   Double_t fMaxChi2PerClusterITS;      // max chi2 per clusters in ITS
-  Bool_t fRequireTPCRefit;             // require TPC refit
-  Bool_t fRequireITSRefit;             // require ITS refit
-
+  Double_t fMaxChi2PerTrackletTRD;     // max chi2 per clusters in TRD
+  UShort_t fMinNdEdxClusterTPC;                // number of points used for dEdx
   Double_t fCovariance11Max ;          // max covariance matrix element 11
   Double_t fCovariance22Max ;          // max covariance matrix element 22
   Double_t fCovariance33Max ;          // max covariance matrix element 33
   Double_t fCovariance44Max ;          // max covariance matrix element 44
   Double_t fCovariance55Max ;          // max covariance matrix element 55
 
+  ULong_t fStatus;    // track status
+
   TH1F* fhCutStatistics;               // Histogram: statistics of what cuts the tracks did not survive
   TH2F* fhCutCorrelation;              // Histogram: 2d statistics plot
 
   TH1F* fhQA[kNHist][kNStepQA];                // QA Histograms
   TBits *fBitmap ;                     // stores single selection decisions
+  AliESDtrackCuts *fTrackCuts;         // use some functionality from this class
 
   // QA histogram setters
   Int_t fhNBinsClusterTPC;             // number of bins+1: cluster TPC
   Int_t fhNBinsClusterITS;             // number of bins+1: cluster ITS
+  Int_t fhNBinsClusterTRD;             // number of bins+1: cluster TRD
+  Int_t fhNBinsFoundClusterTPC;                // number of bins+1: ratio found / findable number of clusters in TPC
+  Int_t fhNBinsTrackletTRD;            // number of bins+1: number of tracklets in TRD
+  Int_t fhNBinsTrackletTRDpid;         // number of bins+1: number of tracklets for TRD pid
   Int_t fhNBinsChi2TPC;                        // number of bins+1: chi2 per cluster TPC
   Int_t fhNBinsChi2ITS;                        // number of bins+1: chi2 per cluster ITS
-  Int_t fhNBinsRefitTPC;               // number of bins+1: require refit TPC
-  Int_t fhNBinsRefitITS;               // number of bins+1: require refit ITS  
+  Int_t fhNBinsChi2TRD;                        // number of bins+1: chi2 per cluster TRD
+  Int_t fhNBinsdEdxClusterTPC;         // number of bins+1: cluster TPC used for dEdx
   Int_t fhNBinsCovariance11;           // number of bins+1: covariance matrix element 11
   Int_t fhNBinsCovariance22;           // number of bins+1: covariance matrix element 22
   Int_t fhNBinsCovariance33;           // number of bins+1: covariance matrix element 33
@@ -139,17 +165,21 @@ class AliCFTrackQualityCuts : public AliCFCutBase
 
   Double_t *fhBinLimClusterTPC;        //[fhNBinsClusterTPC] bin limits: cluster TPC
   Double_t *fhBinLimClusterITS;        //[fhNBinsClusterITS] bin limits: cluster ITS
+  Double_t *fhBinLimClusterTRD;        //[fhNBinsClusterTRD] bin limits: cluster TRD
+  Double_t *fhBinLimFoundClusterTPC;//[fhNBinsFoundClusterTPC] bin limits: ratio found / findable number of clusters in TPC
+  Double_t *fhBinLimTrackletTRD;    //[fhNBinsTrackletTRD] bin limits: number of tracklets in TRD
+  Double_t *fhBinLimTrackletTRDpid; //[fhNBinsTrackletTRDpid] bin limits: number of tracklets for TRD pid
   Double_t *fhBinLimChi2TPC;   //[fhNBinsChi2TPC] bin limits: chi2 per cluster TPC
   Double_t *fhBinLimChi2ITS;   //[fhNBinsChi2ITS] bin limits: chi2 per cluster ITS
-  Double_t *fhBinLimRefitTPC;  //[fhNBinsRefitTPC] bin limits: require refit TPC
-  Double_t *fhBinLimRefitITS;  //[fhNBinsRefitITS] bin limits: require refit ITS
+  Double_t *fhBinLimChi2TRD;   //[fhNBinsChi2TRD] bin limits: chi2 per cluster TRD
+  Double_t *fhBinLimdEdxClusterTPC;    //[fhNBinsdEdxClusterTPC] bin limits: cluster TPC used for dEdx
   Double_t *fhBinLimCovariance11;//[fhNBinsCovariance11] bin limits: covariance matrix element 11
   Double_t *fhBinLimCovariance22;//[fhNBinsCovariance22] bin limits: covariance matrix element 22
   Double_t *fhBinLimCovariance33;//[fhNBinsCovariance33] bin limits: covariance matrix element 33
   Double_t *fhBinLimCovariance44;//[fhNBinsCovariance44] bin limits: covariance matrix element 44
   Double_t *fhBinLimCovariance55;//[fhNBinsCovariance55] bin limits: covariance matrix element 55
 
-  ClassDef(AliCFTrackQualityCuts,2);
+  ClassDef(AliCFTrackQualityCuts,4);
 };
 
 #endif