fCutMaxC55(0),
fCutMaxRel1PtUncertainty(0),
fCutAcceptKinkDaughters(0),
+ fCutAcceptSharedTPCClusters(0),
+ fCutMaxFractionSharedTPCClusters(0),
fCutRequireTPCRefit(0),
fCutRequireTPCStandAlone(0),
fCutRequireITSRefit(0),
fCutMaxC55(0),
fCutMaxRel1PtUncertainty(0),
fCutAcceptKinkDaughters(0),
+ fCutAcceptSharedTPCClusters(0),
+ fCutMaxFractionSharedTPCClusters(0),
fCutRequireTPCRefit(0),
fCutRequireTPCStandAlone(0),
fCutRequireITSRefit(0),
fCutMaxRel1PtUncertainty = 0;
fCutAcceptKinkDaughters = 0;
+ fCutAcceptSharedTPCClusters = 0;
+ fCutMaxFractionSharedTPCClusters = 0;
fCutRequireTPCRefit = 0;
fCutRequireTPCStandAlone = 0;
fCutRequireITSRefit = 0;
target.fCutMaxRel1PtUncertainty = fCutMaxRel1PtUncertainty;
target.fCutAcceptKinkDaughters = fCutAcceptKinkDaughters;
+ target.fCutAcceptSharedTPCClusters = fCutAcceptSharedTPCClusters;
+ target.fCutMaxFractionSharedTPCClusters = fCutMaxFractionSharedTPCClusters;
target.fCutRequireTPCRefit = fCutRequireTPCRefit;
target.fCutRequireTPCStandAlone = fCutRequireTPCStandAlone;
target.fCutRequireITSRefit = fCutRequireITSRefit;
nClustersTPC = esdTrack->GetTPCclusters(0);
}
+ Int_t nClustersTPCShared = esdTrack->GetTPCnclsS();
+ Float_t fracClustersTPCShared = -1.;
+
Float_t chi2PerClusterITS = -1;
Float_t chi2PerClusterTPC = -1;
if (nClustersITS!=0)
} else {
chi2PerClusterTPC = esdTrack->GetTPCchi2()/Float_t(nClustersTPC);
}
+ fracClustersTPCShared = Float_t(nClustersTPCShared)/Float_t(nClustersTPC);
}
Double_t extCov[15];
cuts[28+i] = !CheckITSClusterRequirement(fCutClusterRequirementITS[i], esdTrack->HasPointOnITSLayer(i*2), esdTrack->HasPointOnITSLayer(i*2+1));
if (fCutRequireITSStandAlone && ((status & AliESDtrack::kITSin) == 0 || (status & AliESDtrack::kTPCin)))
- cuts[31]=kTRUE;
+ cuts[31] = kTRUE;
if (relUncertainty1Pt > fCutMaxRel1PtUncertainty)
- cuts[32]=kTRUE;
-
+ cuts[32] = kTRUE;
+
+ if (!fCutAcceptSharedTPCClusters && nClustersTPCShared!=0)
+ cuts[33] = kTRUE;
+
+ if (fracClustersTPCShared > fCutMaxFractionSharedTPCClusters)
+ cuts[34] = kTRUE;
+
Bool_t cut=kFALSE;
for (Int_t i=0; i<kNCuts; i++)
if (cuts[i]) {cut = kTRUE;}
-
//########################################################################
// filling histograms
if (fHistogramsOn) {
void SetRequireTPCStandAlone(Bool_t b=kFALSE) {fCutRequireTPCStandAlone=b;}
void SetRequireITSRefit(Bool_t b=kFALSE) {fCutRequireITSRefit=b;}
void SetRequireITSStandAlone(Bool_t b) {fCutRequireITSStandAlone = b;}
- void SetAcceptKinkDaughters(Bool_t b=kTRUE) {fCutAcceptKinkDaughters=b;}
+ void SetAcceptKinkDaughters(Bool_t b=kTRUE) {fCutAcceptKinkDaughters=b;}
+ void SetAcceptSharedTPCClusters(Bool_t b=kTRUE){fCutAcceptSharedTPCClusters=b;}
+ void SetMaxFractionSharedTPCClusters(Float_t max=1e10) {fCutMaxFractionSharedTPCClusters=max;}
void SetMaxCovDiagonalElements(Float_t c1=1e10, Float_t c2=1e10, Float_t c3=1e10, Float_t c4=1e10, Float_t c5=1e10)
{fCutMaxC11=c1; fCutMaxC22=c2; fCutMaxC33=c3; fCutMaxC44=c4; fCutMaxC55=c5;}
void SetMaxRel1PtUncertainty(Float_t max=1e10) {fCutMaxRel1PtUncertainty=max;}
Bool_t GetRequireITSRefit() const { return fCutRequireITSRefit;}
Bool_t GetRequireITSStandAlone() const { return fCutRequireITSStandAlone; }
Bool_t GetAcceptKinkDaughters() const { return fCutAcceptKinkDaughters;}
+ Bool_t GetAcceptSharedTPCClusters() const {return fCutAcceptSharedTPCClusters;}
+ Float_t GetMaxFractionSharedTPCClusters() const {return fCutMaxFractionSharedTPCClusters;}
void GetMaxCovDiagonalElements(Float_t& c1, Float_t& c2, Float_t& c3, Float_t& c4, Float_t& c5)
{c1 = fCutMaxC11; c2 = fCutMaxC22; c3 = fCutMaxC33; c4 = fCutMaxC44; c5 = fCutMaxC55;}
Float_t GetMaxRel1PtUncertainty() const { return fCutMaxRel1PtUncertainty;}
void Init(); // sets everything to 0
Bool_t CheckITSClusterRequirement(ITSClusterRequirement req, Bool_t clusterL1, Bool_t clusterL2);
- enum { kNCuts = 33 };
+ enum { kNCuts = 35 };
//######################################################
// esd track quality cuts
Float_t fCutMaxRel1PtUncertainty; // max relative uncertainty of 1/pt
Bool_t fCutAcceptKinkDaughters; // accepting kink daughters?
+ Bool_t fCutAcceptSharedTPCClusters;// accepting shared clusters in TPC?
+ Float_t fCutMaxFractionSharedTPCClusters; //Maximum fraction of shared clusters in TPC
Bool_t fCutRequireTPCRefit; // require TPC refit
Bool_t fCutRequireTPCStandAlone; // require TPC standalone tracks
Bool_t fCutRequireITSRefit; // require ITS refit