From 2c32e4e4752b9f937466382aa3dd821f754d028d Mon Sep 17 00:00:00 2001 From: zconesa Date: Thu, 23 May 2013 10:23:32 +0000 Subject: [PATCH] requirements on the clusters --- ANALYSIS/AliESDtrackCuts.cxx | 14 ++++++++++++-- ANALYSIS/AliESDtrackCuts.h | 3 +++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/ANALYSIS/AliESDtrackCuts.cxx b/ANALYSIS/AliESDtrackCuts.cxx index 12540aaf759..f5699c1d717 100644 --- a/ANALYSIS/AliESDtrackCuts.cxx +++ b/ANALYSIS/AliESDtrackCuts.cxx @@ -1241,8 +1241,18 @@ Bool_t AliESDtrackCuts::AcceptTrack(const AliESDtrack* esdTrack) if (!fCutDCAToVertex2D && TMath::Abs(dcaToVertexZ) < fCutMinDCAToVertexZ) cuts[27] = kTRUE; - for (Int_t i = 0; i < 3; i++) - cuts[28+i] = !CheckITSClusterRequirement(fCutClusterRequirementITS[i], esdTrack->HasPointOnITSLayer(i*2), esdTrack->HasPointOnITSLayer(i*2+1)); + for (Int_t i = 0; i < 3; i++) { + if(!(esdTrack->GetStatus()&AliESDtrack::kITSupg)) { // current ITS + cuts[28+i] = !CheckITSClusterRequirement(fCutClusterRequirementITS[i], esdTrack->HasPointOnITSLayer(i*2), esdTrack->HasPointOnITSLayer(i*2+1)); + } else { // upgraded ITS (7 layers) + // at the moment, for L012 the layers 12 are considered together + if(i==0) { // L012 + cuts[28+i] = !CheckITSClusterRequirement(fCutClusterRequirementITS[i], esdTrack->HasPointOnITSLayer(0), (esdTrack->HasPointOnITSLayer(1))&(esdTrack->HasPointOnITSLayer(2))); + } else { // L34 or L56 + cuts[28+i] = !CheckITSClusterRequirement(fCutClusterRequirementITS[i], esdTrack->HasPointOnITSLayer(i*2+1), esdTrack->HasPointOnITSLayer(i*2+2)); + } + } + } if(fCutRequireITSStandAlone || fCutRequireITSpureSA){ if ((status & AliESDtrack::kITSin) == 0 || (status & AliESDtrack::kTPCin)){ diff --git a/ANALYSIS/AliESDtrackCuts.h b/ANALYSIS/AliESDtrackCuts.h index f3abb1d4dda..b148aedffd8 100644 --- a/ANALYSIS/AliESDtrackCuts.h +++ b/ANALYSIS/AliESDtrackCuts.h @@ -41,6 +41,7 @@ class AliESDtrackCuts : public AliAnalysisCuts 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 }; @@ -88,6 +89,7 @@ public: void SetMinNCrossedRowsTPC(Float_t min=-1) { fCutMinNCrossedRowsTPC=min;} void SetMinRatioCrossedRowsOverFindableClustersTPC(Float_t min = -1) { fCutMinRatioCrossedRowsOverFindableClustersTPC=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; } @@ -129,6 +131,7 @@ public: 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; } -- 2.43.0