fNInputTracksMin(0),
fNInputTracksMax(-1),
fRequireITSRefit(0),
+fApplySharedClusterCut(0),
fAngStructCloseTracks(0),
fCheckMethods(0),
fDoEventMixing(0),
fNInputTracksMin(0),
fNInputTracksMax(-1),
fRequireITSRefit(0),
+fApplySharedClusterCut(0),
fAngStructCloseTracks(0),
fCheckMethods(0),
fDoEventMixing(0),
else if(fFilterType == 1)bGood = tr->IsHybridTPCConstrainedGlobal();
else if(fFilterType == 2)bGood = tr->IsHybridGlobalConstrainedGlobal();
if((fFilterMask>0)&&!(tr->TestFilterBit(fFilterMask)))continue;
- if(fRequireITSRefit==0){if((tr->GetStatus()&AliESDtrack::kITSrefit)==0)continue;}
+ if(fRequireITSRefit==1){if((tr->GetStatus()&AliESDtrack::kITSrefit)==0)continue;}
if(bGood==false) continue;
- if(TMath::Abs(tr->Eta())>0.9)continue;
+ if (fApplySharedClusterCut) {
+ Double_t frac = Double_t(tr->GetTPCnclsS()) /Double_t(tr->GetTPCncls());
+ if (frac > 0.4) continue;
+ }
+ if(TMath::Abs(tr->Eta())>0.9)continue;
if(tr->Pt()<0.15)continue;
list->Add(tr);
iCount++;
else if(fFilterType == 1)bGood = tr->IsHybridTPCConstrainedGlobal();
else if(fFilterType == 2)bGood = tr->IsHybridGlobalConstrainedGlobal();
if((fFilterMask>0)&&!(tr->TestFilterBit(fFilterMask)))continue;
- if(fRequireITSRefit==0){if((tr->GetStatus()&AliESDtrack::kITSrefit)==0)continue;}
+ if(fRequireITSRefit==1){if((tr->GetStatus()&AliESDtrack::kITSrefit)==0)continue;}
if(bGood==false) continue;
+ if (fApplySharedClusterCut) {
+ Double_t frac = Double_t(tr->GetTPCnclsS()) /Double_t(tr->GetTPCncls());
+ if (frac > 0.4) continue;
+ }
if(TMath::Abs(tr->Eta())>0.9)continue;
if(tr->Pt()<0.15)continue;
list->Add(tr);
virtual void SetNInputTracksMin(Int_t nTr) { fNInputTracksMin = nTr; }
virtual void SetNInputTracksMax(Int_t nTr) { fNInputTracksMax = nTr; }
virtual void SetRequireITSRefit(Int_t nref) {fRequireITSRefit=nref;}
+ virtual void SetSharedClusterCut(Int_t docut){fApplySharedClusterCut=docut;}
virtual void SetAngStructCloseTracks(Int_t yesno){fAngStructCloseTracks=yesno;}
virtual void SetCheckMethods(Int_t yesno){fCheckMethods=yesno;}
virtual void SetEventMixing(Int_t yesno){fDoEventMixing=yesno;}
Int_t fNInputTracksMin; // lower bound of nb. of input tracks
Int_t fNInputTracksMax; // upper bound of nb. of input tracks
Int_t fRequireITSRefit;
+ Int_t fApplySharedClusterCut; // flag to apply shared cluster cut (needed for some AODs where this cut was not applied in the filtering)
Int_t fAngStructCloseTracks;//only constituents or all tracks with R<0.8 for the angular structure
Int_t fCheckMethods; //to look into more detail into the core
Int_t fDoEventMixing;