removed old ESDtrack cuts class and updated AliESDtrack cuts
authorekman <ekman@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 30 May 2006 12:21:16 +0000 (12:21 +0000)
committerekman <ekman@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 30 May 2006 12:21:16 +0000 (12:21 +0000)
PWG0/esdTrackCuts/AliESDtrackCuts.cxx
PWG0/esdTrackCuts/AliESDtrackCuts.h
PWG0/esdTrackCuts/ESDtrackQualityCuts.cxx [deleted file]
PWG0/esdTrackCuts/ESDtrackQualityCuts.h [deleted file]
PWG0/esdTrackCuts/Makefile [deleted file]

index 26c3bfb..a63421f 100644 (file)
@@ -1,5 +1,10 @@
 #include "AliESDtrackCuts.h"
 
+
+#include <AliESDtrack.h>
+#include <AliESD.h>
+#include <AliLog.h>
+
 //____________________________________________________________________
 ClassImp(AliESDtrackCuts)
 
@@ -281,13 +286,22 @@ AliESDtrackCuts::AcceptTrack(AliESDtrack* esdTrack) {
   bRes[0] = TMath::Sqrt(bCov[0]);
   bRes[1] = TMath::Sqrt(bCov[2]);
 
-  // FIX !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+  // -----------------------------------
+  // How to get to a n-sigma cut?
+  //
+  // The accumulated statistics from 0 to d is
+  //
+  // ->  Erf(d/Sqrt(2)) for a 1-dim gauss (d = n_sigma)
+  // ->  1 - Exp(-d**2) for a 2-dim gauss (d*d = dx*dx + dy*dy != n_sigma)
+  //
+  // It means that for a 2-dim gauss: n_sigma(d) = Sqrt(2)*ErfInv(1 - Exp((-x**2)/2)
+  // Can this be expressed in a different way?
   //
-  // this is not correct - it will not give n sigma!!!
-  // 
   Float_t nSigmaToVertex = -1;
-  if (bRes[0]!=0 && bRes[1]!=0)
-    nSigmaToVertex = TMath::Sqrt(TMath::Power(b[0]/bRes[0],2) + TMath::Power(b[1]/bRes[1],2));  
+  if (bRes[0]!=0 && bRes[1]!=0) {
+    Float_t d = TMath::Sqrt(TMath::Power(b[0]/bRes[0],2) + TMath::Power(b[1]/bRes[1],2));
+    nSigmaToVertex = TMath::Sqrt(2)*(TMath::ErfInverse(1 - TMath::Exp(0.5*(-d*d))));
+  }
 
   // getting the kinematic variables of the track 
   // (assuming the mass is known)
index a0d5a01..c1e61e9 100644 (file)
 //
 //  TODO: 
 //  - add functionality to save and load cuts
-//  - fix the n sigma cut so it is really a n sigma cut
 //  - add different ways to make track to vertex cut
 //  - add histograms for kinematic cut variables?
 //  - upper and lower cuts for all (non-boolean) cuts
 //  - update print method
 //  - is there a smarter way to manage the cuts?
-//  - put comment to each variable
+//  - put comments to each variable
 //  - implement destructor !!!
 //
-//  NOTE: 
-//  - 
-//
 
 #ifndef ALIESDTRACKCUTS_H
 #define ALIESDTRACKCUTS_H
 
+#include <TObject.h>
+#include <TH2.h>
 
-#include "TObject.h"
-
-#include "TH1.h"
-#include "TH2.h"
-
-#include "AliESDtrack.h"
-#include "AliESD.h"
-#include "AliLog.h"
+class AliESD;
+class AliESDtrack;
+class AliLog;
 
 class AliESDtrackCuts : public TObject 
 {
 
 public:
   AliESDtrackCuts();
-  virtual ~AliESDtrackCuts();
   AliESDtrackCuts(const AliESDtrackCuts& pd);  // Copy Constructor
+  virtual ~AliESDtrackCuts();
 
   Bool_t AcceptTrack(AliESDtrack* esdTrack);
-
   TObjArray* GetAcceptedTracks(AliESD* esd);
 
   AliESDtrackCuts &operator=(const AliESDtrackCuts &c);
diff --git a/PWG0/esdTrackCuts/ESDtrackQualityCuts.cxx b/PWG0/esdTrackCuts/ESDtrackQualityCuts.cxx
deleted file mode 100644 (file)
index 2a3287e..0000000
+++ /dev/null
@@ -1,383 +0,0 @@
-#include "ESDtrackQualityCuts.h"
-
-#include <Riostream.h>
-
-//____________________________________________________________________
-ClassImp(ESDtrackQualityCuts);
-
-//____________________________________________________________________
-ESDtrackQualityCuts::ESDtrackQualityCuts() {
-
-  //##############################################################################
-  // setting default cuts
-  SetMinNClustersTPC();
-  SetMinNClustersITS();            
-  SetMaxChi2PerClusterTPC();
-  SetMaxChi2PerClusterITS();                               
-  SetMaxCovDiagonalElements();                                     
-  SetRequireTPCRefit();
-  SetRequireITSRefit();
-  SetAcceptKingDaughters();
-  SetMinNsigmaToVertex();
-  SetRequireSigmaToVertex();
-
-  SetHistogramsOn();
-
-  // set the cut names
-  fCutNames[0]  = "require TPC refit";
-  fCutNames[1]  = "require ITS refit";  
-  fCutNames[2]  = "n clusters TPC";
-  fCutNames[3]  = "n clusters ITS";
-  fCutNames[4]  = "#Chi^{2}/clusters TPC";
-  fCutNames[5]  = "#Chi^{2}/clusters ITS";
-  fCutNames[6]  = "cov 11";
-  fCutNames[7]  = "cov 22";
-  fCutNames[8]  = "cov 33";
-  fCutNames[9]  = "cov 44";
-  fCutNames[10] = "cov 55";
-  fCutNames[11] = "trk-to-vtx";
-  fCutNames[12] = "trk-to-vtx failed";
-  fCutNames[13] = "kink daughters";
-}
-
-//____________________________________________________________________
-Bool_t 
-ESDtrackQualityCuts::AcceptTrack(AliESDtrack* esdTrack, AliESDVertex* esdVtx, Double_t field) {
-
-  // relate the track to the new vertex
-  esdTrack->RelateToVertex(esdVtx, field, 999999);
-  
-  return AcceptTrack(esdTrack);
-}
-
-//____________________________________________________________________
-Bool_t 
-ESDtrackQualityCuts::AcceptTrack(AliESDtrack* esdTrack, Double_t* vtx, Double_t* vtx_res, Double_t field) {
-  
-  AliESDVertex* esdVtx = new AliESDVertex(vtx, vtx_res,"new vertex");
-  esdTrack->RelateToVertex(esdVtx, field, 1e99);
-  return AcceptTrack(esdTrack);
-} 
-
-//____________________________________________________________________
-Bool_t 
-ESDtrackQualityCuts::AcceptTrack(AliESDtrack* esdTrack) {
-
-  UInt_t status = esdTrack->GetStatus();
-  
-  // getting variables from ESD
-  Int_t nClustersITS = esdTrack->GetITSclusters(fIdxInt);
-  Int_t nClustersTPC = esdTrack->GetTPCclusters(fIdxInt);
-
-  Float_t chi2PerClusterITS = -1;
-  Float_t chi2PerClusterTPC = -1;
-  if (nClustersITS!=0)
-    chi2PerClusterITS = esdTrack->GetITSchi2()/Float_t(nClustersITS);
-  if (nClustersTPC!=0)
-    chi2PerClusterTPC = esdTrack->GetTPCchi2()/Float_t(nClustersTPC);  
-
-  Double_t extCov[15];
-  esdTrack->GetExternalCovariance(extCov);  
-
-  Float_t b[2];
-  Float_t bRes[2];
-  Float_t bCov[3];
-  esdTrack->GetImpactParameters(b,bCov);    
-  if (bCov[0]<=0 || bCov[2]<=0) {
-    AliDebug(1, "Estimated b resolution zero!");
-    bCov[0]=0; bCov[1]=0;
-  }
-  bRes[0] = TMath::Sqrt(bCov[0]);
-  bRes[1] = TMath::Sqrt(bCov[2]);
-
-  //
-  // FIX !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
-  //
-  // this is not correct - it will not give n sigma!!!
-  // 
-  //
-  Float_t nSigmaToVertex = -1;
-  if (bRes[0]!=0 && bRes[1]!=0)
-    nSigmaToVertex = TMath::Sqrt(TMath::Power(b[0]/bRes[0],2) + TMath::Power(b[1]/bRes[1],2));
-  
-
-  //########################################################################
-  // cut the track?
-  
-  Bool_t cuts[fNCuts];
-  for (Int_t i=0; i<fNCuts; i++) cuts[i]=kFALSE;
-
-  if (fCut_RequireTPCRefit && (status&AliESDtrack::kTPCrefit)==0)
-    cuts[0]=kTRUE;
-  if (fCut_RequireITSRefit && (status&AliESDtrack::kITSrefit)==0)
-    cuts[1]=kTRUE;
-  if (nClustersTPC<fCut_MinNClusterTPC) 
-    cuts[2]=kTRUE;
-  if (nClustersITS<fCut_MinNClusterITS) 
-    cuts[3]=kTRUE;
-  if (chi2PerClusterTPC>fCut_MaxChi2PerClusterTPC) 
-    cuts[4]=kTRUE; 
-  if (chi2PerClusterITS>fCut_MaxChi2PerClusterITS) 
-    cuts[5]=kTRUE;
-  if (extCov[0]  > fCut_MaxC11) 
-    cuts[6]=kTRUE;  
-  if (extCov[2]  > fCut_MaxC22) 
-    cuts[7]=kTRUE;  
-  if (extCov[5]  > fCut_MaxC33) 
-    cuts[8]=kTRUE;  
-  if (extCov[9]  > fCut_MaxC44) 
-    cuts[9]=kTRUE;  
-  if (extCov[14]  > fCut_MaxC55) 
-    cuts[10]=kTRUE;  
-  if (nSigmaToVertex > fCut_NsigmaToVertex) 
-    cuts[11] = kTRUE;
-  // if n sigma could not be calculated
-  if (nSigmaToVertex==-1 && fCut_SigmaToVertexRequired)   
-    cuts[12]=kTRUE;
-  if (!fCut_AcceptKinkDaughters && esdTrack->GetKinkIndex(0)>0) 
-    cuts[13]=kTRUE;
-
-  Bool_t cut=kFALSE;
-  for (Int_t i=0; i<fNCuts; i++) 
-    if (cuts[i]) cut = kTRUE;
-
-  //########################################################################
-  // filling histograms
-  if (fHistogramsOn) {
-    hCutStatistics->Fill(hCutStatistics->GetBinCenter(hCutStatistics->GetXaxis()->FindBin("n tracks")));
-    
-    if (cut)
-      hCutStatistics->Fill(hCutStatistics->GetBinCenter(hCutStatistics->GetXaxis()->FindBin("n cut tracks")));
-    
-    for (Int_t i=0; i<fNCuts; i++) {
-      if (cuts[i])
-       hCutStatistics->Fill(hCutStatistics->GetBinCenter(hCutStatistics->GetXaxis()->FindBin(fCutNames[i])));
-      
-      for (Int_t j=i; j<fNCuts; j++) {
-       if (cuts[i] && cuts[j]) {
-         Float_t x = hCutCorrelation->GetXaxis()->GetBinCenter(hCutCorrelation->GetXaxis()->FindBin(fCutNames[i]));
-         Float_t y = hCutCorrelation->GetYaxis()->GetBinCenter(hCutCorrelation->GetYaxis()->FindBin(fCutNames[j]));
-         hCutCorrelation->Fill(x,y);
-       }
-      }
-    }
-    
-
-    hNClustersITS[0]->Fill(nClustersITS);        
-    hNClustersTPC[0]->Fill(nClustersTPC);        
-    hChi2PerClusterITS[0]->Fill(chi2PerClusterITS);
-    hChi2PerClusterTPC[0]->Fill(chi2PerClusterTPC);   
-    
-    hC11[0]->Fill(extCov[0]);                 
-    hC22[0]->Fill(extCov[2]);                 
-    hC33[0]->Fill(extCov[5]);                 
-    hC44[0]->Fill(extCov[9]);                                  
-    hC55[0]->Fill(extCov[14]);                                  
-    
-    hDZ[0]->Fill(b[1]);     
-    hDXY[0]->Fill(b[0]);    
-    hDXYvsDZ[0]->Fill(b[1],b[0]);
-
-    if (bRes[0]!=0 && bRes[1]!=0) {
-      hDZNormalized[0]->Fill(b[1]/bRes[1]);     
-      hDXYNormalized[0]->Fill(b[0]/bRes[0]);    
-      hDXYvsDZNormalized[0]->Fill(b[1]/bRes[1], b[0]/bRes[0]);
-    }
-  }
-
-  //########################################################################  
-  // cut the track!
-  if (cut) return kFALSE;
-
-  //########################################################################  
-  // filling histograms after cut
-  if (fHistogramsOn) {
-    hNClustersITS[1]->Fill(nClustersITS);        
-    hNClustersTPC[1]->Fill(nClustersTPC);        
-    hChi2PerClusterITS[1]->Fill(chi2PerClusterITS);
-    hChi2PerClusterTPC[1]->Fill(chi2PerClusterTPC);   
-    
-    hC11[1]->Fill(extCov[0]);                 
-    hC22[1]->Fill(extCov[2]);                 
-    hC33[1]->Fill(extCov[5]);                 
-    hC44[1]->Fill(extCov[9]);                                  
-    hC55[1]->Fill(extCov[14]);                                  
-    
-    hDZ[1]->Fill(b[1]);     
-    hDXY[1]->Fill(b[0]);    
-    hDXYvsDZ[1]->Fill(b[1],b[0]);
-
-    hDZNormalized[1]->Fill(b[1]/bRes[1]);     
-    hDXYNormalized[1]->Fill(b[0]/bRes[0]);    
-    hDXYvsDZNormalized[1]->Fill(b[1]/bRes[1], b[0]/bRes[0]);
-  }
-  
-  return kTRUE;
-}
-
-//____________________________________________________________________
-void 
-ESDtrackQualityCuts::DefineHistograms(Int_t color) {
-
-  fHistogramsOn=kTRUE;
-
-  //###################################################################################
-  // defining histograms
-
-  hCutStatistics = new TH1F("cut_statistics","cut statistics",fNCuts+4,-0.5,fNCuts+3.5);
-
-  hCutStatistics->GetXaxis()->SetBinLabel(1,"n tracks");
-  hCutStatistics->GetXaxis()->SetBinLabel(2,"n cut tracks");
-
-  hCutCorrelation = new TH2F("cut_correlation","cut correlation",fNCuts,-0.5,fNCuts-0.5,fNCuts,-0.5,fNCuts-0.5);;
-  
-  for (Int_t i=0; i<fNCuts; i++) {
-    hCutStatistics->GetXaxis()->SetBinLabel(i+4,fCutNames[i]);
-    hCutCorrelation->GetXaxis()->SetBinLabel(i+1,fCutNames[i]);
-    hCutCorrelation->GetYaxis()->SetBinLabel(i+1,fCutNames[i]);
-  } 
-
-  hCutStatistics  ->SetLineColor(color);
-  hCutCorrelation ->SetLineColor(color);
-  hCutStatistics  ->SetLineWidth(2);
-  hCutCorrelation ->SetLineWidth(2);
-
-
-  hNClustersITS        = new TH1F*[2];
-  hNClustersTPC        = new TH1F*[2];
-  hChi2PerClusterITS   = new TH1F*[2];
-  hChi2PerClusterTPC   = new TH1F*[2];
-                      
-  hC11                 = new TH1F*[2];
-  hC22                 = new TH1F*[2];
-  hC33                 = new TH1F*[2];
-  hC44                 = new TH1F*[2];
-  hC55                 = new TH1F*[2];
-  
-  hDXY                 = new TH1F*[2];
-  hDZ                 = new TH1F*[2];
-  hDXYvsDZ            = new TH2F*[2];
-
-  hDXYNormalized       = new TH1F*[2];
-  hDZNormalized        = new TH1F*[2];
-  hDXYvsDZNormalized   = new TH2F*[2];
-
-
-
-  Char_t str[256];
-  for (Int_t i=0; i<2; i++) {
-    if (i==0) sprintf(str,"");
-    else sprintf(str,"_cut");
-
-    hNClustersITS[i]        = new TH1F(Form("nClustersITS%s",str),"",8,-0.5,7.5);
-    hNClustersTPC[i]        = new TH1F(Form("nClustersTPC%s",str),"",165,-0.5,164.5);
-    hChi2PerClusterITS[i]   = new TH1F(Form("chi2PerClusterITS%s",str),"",500,0,10);
-    hChi2PerClusterTPC[i]   = new TH1F(Form("chi2PerClusterTPC%s",str),"",500,0,10);
-    
-    hC11[i]                 = new TH1F(Form("covMatrixDiagonal11%s",str),"",1000,0,5);
-    hC22[i]                 = new TH1F(Form("covMatrixDiagonal22%s",str),"",1000,0,5);
-    hC33[i]                 = new TH1F(Form("covMatrixDiagonal33%s",str),"",1000,0,0.5);
-    hC44[i]                 = new TH1F(Form("covMatrixDiagonal44%s",str),"",1000,0,5);
-    hC55[i]                 = new TH1F(Form("covMatrixDiagonal55%s",str),"",1000,0,5);
-    
-    hDXY[i]                 = new TH1F(Form("dXY%s",str),"",500,-10,10);
-    hDZ[i]                  = new TH1F(Form("dZ%s",str),"",500,-10,10);
-    hDXYvsDZ[i]             = new TH2F(Form("dXYvsDZ%s",str),"",200,-10,10,200,-10,10);
-
-    hDXYNormalized[i]       = new TH1F(Form("dXYNormalized%s",str),"",500,-10,10);
-    hDZNormalized[i]        = new TH1F(Form("dZNormalized%s",str),"",500,-10,10);
-    hDXYvsDZNormalized[i]   = new TH2F(Form("dXYvsDZNormalized%s",str),"",200,-10,10,200,-10,10);
-
-
-    hNClustersITS[i]        ->SetXTitle("n ITS clusters");  
-    hNClustersTPC[i]        ->SetXTitle("n TPC clusters"); 
-    hChi2PerClusterITS[i]   ->SetXTitle("#Chi^{2} per ITS cluster"); 
-    hChi2PerClusterTPC[i]   ->SetXTitle("#Chi^{2} per TPC cluster"); 
-    
-    hC11[i]                 ->SetXTitle("cov 11 : #sigma_{y}^{2} [cm^{2}]"); 
-    hC22[i]                 ->SetXTitle("cov 22 : #sigma_{z}^{2} [cm^{2}]"); 
-    hC33[i]                 ->SetXTitle("cov 33 : #sigma_{sin(#phi)}^{2}"); 
-    hC44[i]                 ->SetXTitle("cov 44 : #sigma_{tan(#theta_{dip})}^{2}"); 
-    hC55[i]                 ->SetXTitle("cov 55 : #sigma_{1/p_{T}}^{2} [(c/GeV)^2]"); 
-   
-    hDXY[i]                 ->SetXTitle("transverse impact parameter"); 
-    hDZ[i]                  ->SetXTitle("longitudinal impact parameter"); 
-    hDXYvsDZ[i]             ->SetXTitle("longitudinal impact parameter"); 
-    hDXYvsDZ[i]             ->SetYTitle("transverse impact parameter"); 
-
-    hDXYNormalized[i]       ->SetXTitle("normalized trans impact par"); 
-    hDZNormalized[i]        ->SetXTitle("normalized long impact par"); 
-    hDXYvsDZNormalized[i]   ->SetXTitle("normalized long impact par"); 
-    hDXYvsDZNormalized[i]   ->SetYTitle("normalized trans impact par"); 
-
-    hNClustersITS[i]        ->SetLineColor(color);   hNClustersITS[i]        ->SetLineWidth(2);
-    hNClustersTPC[i]        ->SetLineColor(color);   hNClustersTPC[i]        ->SetLineWidth(2);
-    hChi2PerClusterITS[i]   ->SetLineColor(color);   hChi2PerClusterITS[i]   ->SetLineWidth(2);
-    hChi2PerClusterTPC[i]   ->SetLineColor(color);   hChi2PerClusterTPC[i]   ->SetLineWidth(2);
-                                                                                             
-    hC11[i]                 ->SetLineColor(color);   hC11[i]                 ->SetLineWidth(2);
-    hC22[i]                 ->SetLineColor(color);   hC22[i]                 ->SetLineWidth(2);
-    hC33[i]                 ->SetLineColor(color);   hC33[i]                 ->SetLineWidth(2);
-    hC44[i]                 ->SetLineColor(color);   hC44[i]                 ->SetLineWidth(2);
-    hC55[i]                 ->SetLineColor(color);   hC55[i]                 ->SetLineWidth(2);
-                                                                                             
-    hDXY[i]                 ->SetLineColor(color);   hDXY[i]                 ->SetLineWidth(2);
-    hDZ[i]                  ->SetLineColor(color);   hDZ[i]                  ->SetLineWidth(2);
-                                                    
-    hDXYNormalized[i]       ->SetLineColor(color);   hDXYNormalized[i]       ->SetLineWidth(2);
-    hDZNormalized[i]        ->SetLineColor(color);   hDZNormalized[i]        ->SetLineWidth(2);
-
-  }
-}
-
-//____________________________________________________________________
-void 
-ESDtrackQualityCuts::SaveHistograms(Char_t* dir) {
-  
-  if (!fHistogramsOn) {
-    AliDebug(0, "Histograms not on - cannot save histograms!!!");
-    return;
-  }
-
-  gDirectory->mkdir(dir);
-  gDirectory->cd(dir);
-
-  gDirectory->mkdir("before_cuts");
-  gDirectory->mkdir("after_cuts");
-  hCutStatistics->Write();
-  hCutCorrelation->Write();
-
-  for (Int_t i=0; i<2; i++) {
-    if (i==0)
-      gDirectory->cd("before_cuts");
-    else
-      gDirectory->cd("after_cuts");
-    
-    hNClustersITS[i]        ->Write();
-    hNClustersTPC[i]        ->Write();
-    hChi2PerClusterITS[i]   ->Write();
-    hChi2PerClusterTPC[i]   ->Write();
-    
-    hC11[i]                 ->Write();
-    hC22[i]                 ->Write();
-    hC33[i]                 ->Write();
-    hC44[i]                 ->Write();
-    hC55[i]                 ->Write();
-
-    hDXY[i]                 ->Write();
-    hDZ[i]                  ->Write();
-    hDXYvsDZ[i]             ->Write();
-    
-    hDXYNormalized[i]       ->Write();
-    hDZNormalized[i]        ->Write();
-    hDXYvsDZNormalized[i]   ->Write();
-
-    gDirectory->cd("../");
-  }
-
-  gDirectory->cd("../");
-}
-
-
-
diff --git a/PWG0/esdTrackCuts/ESDtrackQualityCuts.h b/PWG0/esdTrackCuts/ESDtrackQualityCuts.h
deleted file mode 100644 (file)
index 7d8daeb..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-#ifndef ESDTRACKQUALITYCUTS
-#define ESDTRACKQUALITYCUTS
-
-//****************************************************************
-//
-//  Class for handling of ESD track quality cuts
-//
-//  TODO: 
-//  - add functionality to save and load cuts
-//  - fix the n sigma cut so it is really a n sigma cut
-//
-
-#ifndef ROOT_TObject
-#include "TObject.h"
-#endif
-#ifndef ROOT_TTree
-#include "TTree.h"
-#endif
-#ifndef ROOT_TH2
-#include "TH2.h"
-#endif
-
-#include "AliESDtrack.h"
-#include "AliESDVertex.h"
-#include "AliLog.h"
-
-class ESDtrackQualityCuts : public TObject 
-{
-protected:
-
-  //######################################################
-  // esd track quality cuts
-  static const Int_t fNCuts = 14;
-  Char_t*            fCutNames[14];
-
-  Int_t   fCut_MinNClusterTPC;        // min number of tpc clusters
-  Int_t   fCut_MinNClusterITS;        // min number of its clusters  
-
-  Float_t fCut_MaxChi2PerClusterTPC;  // max tpc fit chi2 per tpc cluster
-  Float_t fCut_MaxChi2PerClusterITS;  // max its fit chi2 per its cluster
-
-  Float_t fCut_MaxC11;                // max resolutions of covariance matrix diag. elements
-  Float_t fCut_MaxC22;
-  Float_t fCut_MaxC33;
-  Float_t fCut_MaxC44;
-  Float_t fCut_MaxC55;
-
-  Float_t fCut_NsigmaToVertex;        // max number of estimated sigma from track-to-vertex
-  Bool_t  fCut_SigmaToVertexRequired; // cut track if sigma from track-to-vertex could not be calculated
-  Bool_t  fCut_AcceptKinkDaughters;   // accepting kink daughters?
-  Bool_t  fCut_RequireTPCRefit;       // require TPC refit
-  Bool_t  fCut_RequireITSRefit;       // require ITS refit
-  
-  //######################################################
-  // diagnostics histograms
-  Bool_t fHistogramsOn;
-
-  TH1F** hNClustersITS;
-  TH1F** hNClustersTPC;
-  
-  TH1F** hChi2PerClusterITS;
-  TH1F** hChi2PerClusterTPC;
-
-  TH1F** hC11;
-  TH1F** hC22;
-  TH1F** hC33;
-  TH1F** hC44;
-  TH1F** hC55;
-
-  TH1F** hDXY;
-  TH1F** hDZ;
-  TH2F** hDXYvsDZ;
-
-  TH1F** hDXYNormalized;
-  TH1F** hDZNormalized;
-  TH2F** hDXYvsDZNormalized;
-
-  TH1F*  hCutStatistics;
-  TH2F*  hCutCorrelation;
-  
-
-  // dummy array
-  Int_t  fIdxInt[200];
-
-public:
-  ESDtrackQualityCuts();
-  
-  Bool_t AcceptTrack(AliESDtrack* esdTrack);
-  Bool_t AcceptTrack(AliESDtrack* esdTrack, AliESDVertex* esdVtx, Double_t field);
-  Bool_t AcceptTrack(AliESDtrack* esdTrack, Double_t* vtx, Double_t* vtx_res, Double_t field);
-  Bool_t AcceptTrack(AliESDtrack* esdTrack, AliESDVertex* esdVtx, Float_t field)
-    {return AcceptTrack(esdTrack,esdVtx, Double_t(field));}
-
-  //######################################################
-  // track quality cut setters  
-  void   SetMinNClustersTPC(Int_t min=-1)          {fCut_MinNClusterTPC=min;}
-  void   SetMinNClustersITS(Int_t min=-1)          {fCut_MinNClusterITS=min;}
-  void   SetMaxChi2PerClusterTPC(Float_t max=1e99) {fCut_MaxChi2PerClusterTPC=max;}
-  void   SetMaxChi2PerClusterITS(Float_t max=1e99) {fCut_MaxChi2PerClusterITS=max;}
-  void   SetMinNsigmaToVertex(Float_t sigma=3)     {fCut_NsigmaToVertex=sigma;}
-  void   SetRequireSigmaToVertex(Bool_t b=kTRUE)  { fCut_SigmaToVertexRequired = b; }
-  void   SetRequireTPCRefit(Bool_t b=kFALSE)       {fCut_RequireTPCRefit=b;}
-  void   SetRequireITSRefit(Bool_t b=kFALSE)       {fCut_RequireITSRefit=b;}
-  void   SetAcceptKingDaughters(Bool_t b=kFALSE)   {fCut_AcceptKinkDaughters=b;}
-  void   SetMaxCovDiagonalElements(Float_t c1=1e99, Float_t c2=1e99, Float_t c3=1e99, Float_t c4=1e99, Float_t c5=1e99) 
-    {fCut_MaxC11=c1; fCut_MaxC22=c2; fCut_MaxC33=c3; fCut_MaxC44=c4; fCut_MaxC55=c5;}
-  //######################################################
-  void   SetHistogramsOn(Bool_t b=kFALSE) {fHistogramsOn = b;}
-  void   DefineHistograms(Int_t color=1);
-  void   SaveHistograms(Char_t* dir="track_selection");
-  
-  // void SaveQualityCuts(Char_t* file)
-  // void LoadQualityCuts(Char_t* file)
-
-  ClassDef(ESDtrackQualityCuts,0)
-};
-
-#endif
diff --git a/PWG0/esdTrackCuts/Makefile b/PWG0/esdTrackCuts/Makefile
deleted file mode 100644 (file)
index 607f822..0000000
+++ /dev/null
@@ -1,70 +0,0 @@
-
-ROOTCINT       = rootcint
-ROOTLIBS       = $(shell root-config --glibs) -lEG 
-ROOTCFLAGS     = $(shell root-config --cflags)
-
-#
-# Compile variables 
-#
-LIBS           = $(ROOTLIBS) -L$(ALICE_ROOT)/lib/tgt_linux/ -lESD 
-CPPFLAGS       = $(ROOTCFLAGS) -I$(ALICE_ROOT)/include -I$(ALICE_ROOT)/STEER/ -I./ 
-
-CXX            = g++   
-CXXFLAGS       = -c -g -Wall -fPIC 
-LD             = g++
-LDFLAGS                = -rdynamic -Wl,-rpath,./ $(LIBS) -o
-SOFLAGS         = -shared -Wl,-soname,
-CP             = cp
-
-LIB      = libESDtrackCuts.so
-LIBO     = AliESDtrackCutsCint.o \
-           AliESDtrackCuts.o 
-
-#
-# Rules
-
-%Cint.cxx:%.h
-       rootcint -f $@ -c $(ROOTCFLAGS) $(CPPFLAGS) -p -I./  $^
-
-%.o:%.cxx
-       $(CXX) $(CPPFLAGS) $(CXXFLAGS) $<
-
-%.so:
-       $(LD) $(SOFLAGS)$@ $^ -o $@
-
-%:%.o
-       $(LD) $(LDFLAGS) $(LIBS) $^ -o $@
-
-
-
-#
-#
-#----------------------------------------------------------------------------
-
-
-LIBRARIES = $(LIB)
-
-#
-# Targets 
-#
-.PHONY:all module 
-
-all            : $(LIBRARIES) 
-
-clean:
-       @echo "Cleaning up ..."
-       @$(RM) -f *~ core *Cint.* *.o
-
-realclean: clean 
-       @echo "Being very tidy ... "
-       @$(RM) -f $(LIBRARIES)*
-       @echo "done"
-
-
-#
-# Dependencies  
-#
-$(LIB):$(LIBO)
-
-
-