public:
enum ITSClusterRequirement { kOff = 0, kNone, kAny, kFirst, kOnlyFirst, kSecond, kOnlySecond, kBoth };
enum Detector { kSPD = 0, kSDD, kSSD };
+ enum ITSULayers { kITSU012 = 0, kITSU34, kITSU56 };
enum MultEstTrackCuts { kMultEstTrackCutGlobal = 0, kMultEstTrackCutITSSA, kMultEstTrackCutDCAwSPD, kMultEstTrackCutDCAwoSPD, kNMultEstTrackCuts /* this must always be the last */};
enum MultEstTrackType { kTrackletsITSTPC = 0, kTrackletsITSSA, kTracklets };
enum VertexType { kVertexTracks = 0x1, kVertexSPD = 0x2, kVertexTPC = 0x4 };
void SetMinNClustersITS(Int_t min=-1) {fCutMinNClusterITS=min;}
void SetMinNCrossedRowsTPC(Float_t min=-1) { fCutMinNCrossedRowsTPC=min;}
void SetMinRatioCrossedRowsOverFindableClustersTPC(Float_t min = -1) { fCutMinRatioCrossedRowsOverFindableClustersTPC=min;}
+ void SetMinLengthActiveVolumeTPC(Float_t min = 120.) {fCutMinLengthActiveVolumeTPC=min;}
void SetClusterRequirementITS(Detector det, ITSClusterRequirement req = kOff) { fCutClusterRequirementITS[det] = req; }
+ void SetClusterRequirementITS(ITSULayers det, ITSClusterRequirement req = kOff) { fCutClusterRequirementITS[det] = req; }
void SetMaxChi2PerClusterTPC(Float_t max=1e10) {fCutMaxChi2PerClusterTPC=max;}
void SetMaxChi2PerClusterITS(Float_t max=1e10) {fCutMaxChi2PerClusterITS=max;}
void SetMaxChi2TPCConstrainedGlobal(Float_t max=1e10) {fCutMaxChi2TPCConstrainedVsGlobal = max; }
void SetDCAToVertex2D(Bool_t b=kFALSE) {fCutDCAToVertex2D = b;}
- // getters
-
+ // getters
Int_t GetMinNClusterTPC() const { return fCutMinNClusterTPC;}
+ Float_t GetMinNCrossedRowsTPC() const { return fCutMinNCrossedRowsTPC;}
+ Float_t GetMinRatioCrossedRowsOverFindableClustersTPC() const { return fCutMinRatioCrossedRowsOverFindableClustersTPC;}
+ Float_t GetMinLengthActiveVolumeTPC() const { return fCutMinLengthActiveVolumeTPC;}
Int_t GetMinNClustersITS() const { return fCutMinNClusterITS;}
TFormula *GetMinNClustersTPCPtDep() const { return f1CutMinNClustersTPCPtDep;}
ITSClusterRequirement GetClusterRequirementITS(Detector det) const { return fCutClusterRequirementITS[det]; }
+ ITSClusterRequirement GetClusterRequirementITS(ITSULayers det) const { return fCutClusterRequirementITS[det]; }
Float_t GetMaxChi2PerClusterTPC() const { return fCutMaxChi2PerClusterTPC;}
Float_t GetMaxChi2PerClusterITS() const { return fCutMaxChi2PerClusterITS;}
Float_t GetMaxChi2TPCConstrainedGlobal() const { return fCutMaxChi2TPCConstrainedVsGlobal; }
TH1F* GetNClustersTPC(Int_t i) const { return fhNClustersTPC[i]; }
TH1F* GetPtHist(Int_t i) const { return fhPt[i]; }
+ // TOF cuts
void SetFlagCutTOFdistance(Bool_t flagTOFcut) { fFlagCutTOFdistance = flagTOFcut;}
Bool_t GetFlagCutTOFdistance() const { return fFlagCutTOFdistance;}
void SetCutTOFdistance(Float_t cut) { fCutTOFdistance = cut;}
Float_t GetCutTOFdistance() const { return fCutTOFdistance;}
+ void SetRequireTOFout(Bool_t b = kFALSE) {fCutRequireTOFout = b;}
+ void SetRequireStandardTOFmatchCuts();
protected:
void Init(); // sets everything to 0
Bool_t CheckPtDepDCA(TString dist,Bool_t print=kFALSE) const;
void SetPtDepDCACuts(Double_t pt);
- enum { kNCuts = 41 };
+ enum { kNCuts = 43 };
//######################################################
// esd track quality cuts
Float_t fCutMinNCrossedRowsTPC; // min number of tpc crossed rows
Float_t fCutMinRatioCrossedRowsOverFindableClustersTPC; // min ratio crossed rows / findable clusters
TFormula *f1CutMinNClustersTPCPtDep; // pt dependent tpc clusters cut
- Float_t fCutMaxPtDepNClustersTPC; // maximum pt for pt dependend TPC cluster cut. For pt=>ptmax NClusterMin = f1CutMinNClustersTPCPtDep->Eval(fCutMaxPtDepNClustersTPC).
+ Float_t fCutMaxPtDepNClustersTPC; // maximum pt for pt dependend TPC cluster cut. For pt=>ptmax NClusterMin = f1CutMinNClustersTPCPtDep->Eval(fCutMaxPtDepNClustersTPC).
+ Float_t fCutMinLengthActiveVolumeTPC; // mininum length (in cm) over which the track is sampled in the active volume of the TPC (outside boundaries)
ITSClusterRequirement fCutClusterRequirementITS[3]; // detailed ITS cluster requirements for (SPD, SDD, SSD)
Float_t fEtaMin, fEtaMax; // definition of the range of the eta
Float_t fRapMin, fRapMax; // definition of the range of the y
+ Bool_t fCutRequireTOFout; // require TOF out
Bool_t fFlagCutTOFdistance; // cut on TOFdistance? --> yes by default!
Float_t fCutTOFdistance; // value of the cut on TOFdistance
static Char_t fgBeamTypeFlag; // -1 --> no check done on the beam type yet
TH2F* fhTOFdistance[2]; //-> TOF signal distance dx vs dz
- ClassDef(AliESDtrackCuts, 19)
+ ClassDef(AliESDtrackCuts, 21)
};