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;
//
// Default Destructor
//
+ if(fTrackCuts) { delete fTrackCuts; fTrackCuts=0; }
if(fPtBinLimits) {delete [] fPtBinLimits; fPtBinLimits=0;}
if(fVarNames) {delete [] fVarNames; fVarNames=0;}
if(fVarsForOpt) {delete [] fVarsForOpt; fVarsForOpt=0;}
}
// TEMPORARY FIX FOR GetEvent
- Int_t nTracks=((AliAODEvent*)event)->GetNTracks();
+ Int_t nTracks=((AliAODEvent*)event)->GetNumberOfTracks();
for(Int_t itr=0; itr<nTracks; itr++){
AliAODTrack* tr=(AliAODTrack*)((AliAODEvent*)event)->GetTrack(itr);
tr->SetAODEvent((AliAODEvent*)event);
}
}
+ // 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;
}
//---------------------------------------------------------------------------
}
cout<<endl;
}
+ if(fPidHF) fPidHF->PrintAll();
return;
}