// - update print method
// - is there a smarter way to manage the cuts?
// - put comments to each variable
-// - implement destructor !!!
//
#ifndef ALIESDTRACKCUTS_H
#define ALIESDTRACKCUTS_H
-#include <TObject.h>
+#include <TNamed.h>
+#include <TF1.h>
#include <TH2.h>
class AliESD;
class AliESDtrack;
class AliLog;
+class TTree;
-class AliESDtrackCuts : public TObject
+class AliESDtrackCuts : public TNamed
{
public:
AliESDtrackCuts();
+ AliESDtrackCuts(Char_t* name, Char_t* title="");
virtual ~AliESDtrackCuts();
Bool_t AcceptTrack(AliESDtrack* esdTrack);
TObjArray* GetAcceptedTracks(AliESD* esd);
Int_t CountAcceptedTracks(AliESD* esd);
+ virtual Long64_t Merge(TCollection* list);
virtual void Copy(TObject &c) const;
+ AliESDtrackCuts(const AliESDtrackCuts& pd); // Copy Constructor
+ AliESDtrackCuts &operator=(const AliESDtrackCuts &c);
//######################################################
// track quality cut setters
void SetAcceptKingDaughters(Bool_t b=kFALSE) {fCutAcceptKinkDaughters=b;}
void SetMaxCovDiagonalElements(Float_t c1=1e99, Float_t c2=1e99, Float_t c3=1e99, Float_t c4=1e99, Float_t c5=1e99)
{fCutMaxC11=c1; fCutMaxC22=c2; fCutMaxC33=c3; fCutMaxC44=c4; fCutMaxC55=c5;}
-
+
// track to vertex cut setters
void SetMinNsigmaToVertex(Float_t sigma=1e99) {fCutNsigmaToVertex = sigma;}
void SetRequireSigmaToVertex(Bool_t b=kTRUE ) {fCutSigmaToVertexRequired = b;}
-
+
// track kinmatic cut setters
void SetPRange(Float_t r1=0, Float_t r2=1e99) {fPMin=r1; fPMax=r2;}
void SetPtRange(Float_t r1=0, Float_t r2=1e99) {fPtMin=r1; fPtMax=r2;}
virtual void Print(const Option_t* = "") const;
+ static void EnableNeededBranches(TTree* tree);
+
// void SaveQualityCuts(Char_t* file)
// void LoadQualityCuts(Char_t* file)
TH1F* fhDXYNormalized[2]; //->
TH1F* fhDZNormalized[2]; //->
TH2F* fhDXYvsDZNormalized[2]; //->
+ TH1F* fhNSigmaToVertex[2]; //->
+
+ TF1* ffDTheoretical; //-> theoretical distance to vertex normalized (2d gauss)
TH1F* fhCutStatistics; //-> statistics of what cuts the tracks did not survive
TH2F* fhCutCorrelation; //-> 2d statistics plot
- private:
-
- AliESDtrackCuts(const AliESDtrackCuts& pd); // Copy Constructor
- AliESDtrackCuts &operator=(const AliESDtrackCuts &c);
-
-
ClassDef(AliESDtrackCuts, 1)
};