fRequireITSRefit(kFALSE),
fRequireTPCRefit(kFALSE),
fTPCNclRobustCut(-1),
+ fTPCcrossedOverFindable(-1.),
fAODFilterBit(kSwitchOff),
fWaiveITSNcls(-1)
{
fRequireITSRefit(kFALSE),
fRequireTPCRefit(kFALSE),
fTPCNclRobustCut(-1),
+ fTPCcrossedOverFindable(-1.),
fAODFilterBit(kSwitchOff),
fWaiveITSNcls(-1)
{
if (fRequireTPCRefit) accept*=(vtrack->GetStatus()&AliVTrack::kTPCrefit)>0;
if (fTPCNclRobustCut>0){
- Int_t nclr=TMath::Nint(vtrack->GetTPCClusterInfo(2,1));
- accept*=(nclr>fTPCNclRobustCut);
+ Int_t nclr=TMath::Nint(vtrack->GetTPCClusterInfo(2,1));
+ accept*=(nclr>fTPCNclRobustCut);
+ //implicitly requires NcrossedRows
+ if (fTPCcrossedOverFindable > 0.) {
+ accept*=(vtrack->GetTPCNclsF()); //ESDtrackCut would return here true
+ accept*=((nclr/vtrack->GetTPCNclsF()) >= fTPCcrossedOverFindable);
+ }
+
}
+
// use filter bit to speed up the AOD analysis (track pre-filter)
// relevant filter bits are:
// kTPCqual==1 -> TPC quality cuts
void SetRequireTPCRefit(Bool_t req) { fRequireTPCRefit=req; }
void SetTPCNclFRobust(Int_t cut) { fTPCNclRobustCut=cut; }
+ void SetMinNCrossedRowsOverFindable(Double_t CrossedOverFindable) { fTPCcrossedOverFindable = CrossedOverFindable; }
Int_t GetV0DaughterCut() const { return fV0DaughterCut; }
ITSClusterRequirement GetClusterRequirementITS(Detector det) const { return fCutClusterRequirementITS[det]; }
void SetITSclusterCut(ITSclusterCutType type, UChar_t map) { fITSclusterBitMap=map; fITSclusterCutType=type; }
+
void SetAODFilterBit(EFilterBit type) { fAODFilterBit = type; }
void SetMaxWaivedITSNcls(Int_t max) { fWaiveITSNcls = max; }
Bool_t fRequireITSRefit; // require ITS refit
Bool_t fRequireTPCRefit; // require TPC refit
- Int_t fTPCNclRobustCut; // TPC Ncl cut, Robust
+ Int_t fTPCNclRobustCut; // TPC Ncl cut, Robust, corresponds to 'crossed Rows' in ESDTrackCuts
+ Int_t fTPCcrossedOverFindable;
+
Int_t fAODFilterBit; // Filter bit for AOD analysis
Int_t fWaiveITSNcls; // max number of waived ITS clusters after first hit