fIsCandTrackSPDFirst(kFALSE),
fMaxPtCandTrackSPDFirst(0.),
fApplySPDDeadPbPb2011(kFALSE),
+fApplySPDMisalignedPP2012(kFALSE),
fMaxDiffTRKV0Centr(-1.),
fRemoveTrackletOutliers(kFALSE),
fCutOnzVertexSPD(0),
fIsCandTrackSPDFirst(source.fIsCandTrackSPDFirst),
fMaxPtCandTrackSPDFirst(source.fMaxPtCandTrackSPDFirst),
fApplySPDDeadPbPb2011(source.fApplySPDDeadPbPb2011),
+ fApplySPDMisalignedPP2012(source.fApplySPDMisalignedPP2012),
fMaxDiffTRKV0Centr(source.fMaxDiffTRKV0Centr),
fRemoveTrackletOutliers(source.fRemoveTrackletOutliers),
fCutOnzVertexSPD(source.fCutOnzVertexSPD),
fIsCandTrackSPDFirst=source.fIsCandTrackSPDFirst;
fMaxPtCandTrackSPDFirst=source.fMaxPtCandTrackSPDFirst;
fApplySPDDeadPbPb2011=source.fApplySPDDeadPbPb2011;
+ fApplySPDMisalignedPP2012=source.fApplySPDMisalignedPP2012;
fMaxDiffTRKV0Centr=source.fMaxDiffTRKV0Centr;
fRemoveTrackletOutliers=source.fRemoveTrackletOutliers;
fCutOnzVertexSPD=source.fCutOnzVertexSPD;
}
}
+ // Correcting PP2012 flag to remoce tracks crossing SPD misaligned staves for periods 12def
+ if(fApplySPDMisalignedPP2012 && !(event->GetRunNumber()>=195681 && event->GetRunNumber()<=197388)) fApplySPDMisalignedPP2012=false;
+
return accept;
}
//---------------------------------------------------------------------------
if(!lay1ok && !lay2ok) return kFALSE;
}
+ if(fApplySPDMisalignedPP2012) {
+ // Cut tracks crossing the SPD at 5.6<phi<2pi
+ Double_t xyz1[3],xyz2[3];
+ esdTrack.GetXYZAt(3.9,0.,xyz1);
+ esdTrack.GetXYZAt(7.6,0.,xyz2);
+ Double_t phi1=TMath::ATan2(xyz1[1],xyz1[0]);
+ if(phi1<0) phi1+=2*TMath::Pi();
+ Double_t phi2=TMath::ATan2(xyz2[1],xyz2[0]);
+ if(phi2<0) phi2+=2*TMath::Pi();
+ Bool_t lay1ok=kTRUE;
+ if(phi1>5.6 && phi1<2.*TMath::Pi()) lay1ok=kFALSE;
+ Bool_t lay2ok=kTRUE;
+ if(phi2>5.6 && phi2<2.*TMath::Pi()) lay2ok=kFALSE;
+ if(!lay1ok || !lay2ok) return kFALSE;
+ }
+
return kTRUE;
}
//---------------------------------------------------------------------------
}
void SetTriggerClass(TString trclass0, TString trclass1="") {fTriggerClass[0]=trclass0; fTriggerClass[1]=trclass1;}
void ApplySPDDeadPbPb2011(){fApplySPDDeadPbPb2011=kTRUE;}
+ void ApplySPDMisalignedCutPP2012(){fApplySPDMisalignedPP2012=kTRUE;}
void SetVarsForOpt(Int_t nVars,Bool_t *forOpt);
void SetGlobalIndex(){fGlobalIndex=fnVars*fnPtBins;}
void SetGlobalIndex(Int_t nVars,Int_t nptBins){fnVars=nVars; fnPtBins=nptBins; SetGlobalIndex();}
Bool_t fIsCandTrackSPDFirst; // flag to select the track kFirst criteria for pt < ptlimit
Double_t fMaxPtCandTrackSPDFirst; // maximum pt of the candidate for which to check if the daughters fulfill kFirst criteria
Bool_t fApplySPDDeadPbPb2011; // flag to apply SPD dead module map of PbPb2011
+ Bool_t fApplySPDMisalignedPP2012; // flag to apply cut on tracks crossing SPD misaligned modules for PP2012 data
Double_t fMaxDiffTRKV0Centr; // Max. difference between TRK and V0 centrality (remove TPC pileup for PbPb 2011)
Bool_t fRemoveTrackletOutliers; // flag to apply cut on tracklets vs. centrality for 2011 data
Int_t fCutOnzVertexSPD; // cut on zSPD vertex to remove outliers in centrality vs. tracklets (0=no cut, 1= cut at 12 cm, 2= cut on difference to z of vtx tracks
TFormula *f1CutMinNCrossedRowsTPCPtDep; // pT-dep cut in TPC minimum n crossed rows
- ClassDef(AliRDHFCuts,34); // base class for cuts on AOD reconstructed heavy-flavour decays
+ ClassDef(AliRDHFCuts,35); // base class for cuts on AOD reconstructed heavy-flavour decays
};
#endif