fRequireITSRefit(kFALSE),
fRequireTPCRefit(kFALSE),
fTPCNclRobustCut(-1),
- fAODFilterBit(kSwitchOff)
+ fTPCcrossedOverFindable(-1.),
+ fAODFilterBit(kSwitchOff),
+ fWaiveITSNcls(-1)
{
//
// Default Constructor
fRequireITSRefit(kFALSE),
fRequireTPCRefit(kFALSE),
fTPCNclRobustCut(-1),
- fAODFilterBit(kSwitchOff)
+ fTPCcrossedOverFindable(-1.),
+ fAODFilterBit(kSwitchOff),
+ fWaiveITSNcls(-1)
{
//
// Named Constructor
//more flexible ITS cluster cut
if (fITSclusterBitMap) accept*=CheckITSClusterCut(vtrack->GetITSClusterMap());
+ //different its cluster cut
+ if (fWaiveITSNcls > -1) {
+ Int_t nITScls = 0;
+ Int_t requiredNcls = 7;
+ for(Int_t i=5; i>=0; i--) {
+ if(TESTBIT(vtrack->GetITSClusterMap(),i)) {
+ nITScls++;
+ requiredNcls=6-fWaiveITSNcls-i;
+ }
+ }
+ accept*=(requiredNcls<=nITScls);
+ }
+
//its and tpc refit
if (fRequireITSRefit) accept*=(vtrack->GetStatus()&AliVTrack::kITSrefit)>0;
if (fRequireTPCRefit) accept*=(vtrack->GetStatus()&AliVTrack::kTPCrefit)>0;
+ Int_t nclr=TMath::Nint(vtrack->GetTPCClusterInfo(2,1));
if (fTPCNclRobustCut>0){
- Int_t nclr=TMath::Nint(vtrack->GetTPCClusterInfo(2,1));
- accept*=(nclr>fTPCNclRobustCut);
+ accept*=(nclr>fTPCNclRobustCut);
}
+ if (fTPCcrossedOverFindable > 0.) {
+ Int_t tpcNclsF = vtrack->GetTPCNclsF();
+ accept*=(tpcNclsF); //ESDtrackCut would return here true
+ if (tpcNclsF != 0) {//'accept' already negated above in this case above
+ accept*=(((Double_t)nclr/(Double_t)vtrack->GetTPCNclsF()) >= fTPCcrossedOverFindable);
+ }
+ }
+
// use filter bit to speed up the AOD analysis (track pre-filter)
// relevant filter bits are: