]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGHF/vertexingHF/AliRDHFCuts.cxx
AliAODEvent::GetNTracks() changed with AliAODEvent::GetNumberOfTracks()
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / AliRDHFCuts.cxx
index 964ed7d19531a12bf09cc4956fb47da2fd618bcc..8810918d0ed7fd3d8a1d466eae57a19aa6b6ff55 100644 (file)
@@ -98,6 +98,7 @@ fKeepSignalMC(kFALSE),
 fIsCandTrackSPDFirst(kFALSE),
 fMaxPtCandTrackSPDFirst(0.),
 fApplySPDDeadPbPb2011(kFALSE),
+fApplySPDMisalignedPP2012(kFALSE),
 fMaxDiffTRKV0Centr(-1.),
 fRemoveTrackletOutliers(kFALSE),
 fCutOnzVertexSPD(0),
@@ -162,6 +163,7 @@ AliRDHFCuts::AliRDHFCuts(const AliRDHFCuts &source) :
   fIsCandTrackSPDFirst(source.fIsCandTrackSPDFirst),
   fMaxPtCandTrackSPDFirst(source.fMaxPtCandTrackSPDFirst),
   fApplySPDDeadPbPb2011(source.fApplySPDDeadPbPb2011),
+  fApplySPDMisalignedPP2012(source.fApplySPDMisalignedPP2012),
   fMaxDiffTRKV0Centr(source.fMaxDiffTRKV0Centr),
   fRemoveTrackletOutliers(source.fRemoveTrackletOutliers),
   fCutOnzVertexSPD(source.fCutOnzVertexSPD),
@@ -242,6 +244,7 @@ AliRDHFCuts &AliRDHFCuts::operator=(const AliRDHFCuts &source)
   fIsCandTrackSPDFirst=source.fIsCandTrackSPDFirst;
   fMaxPtCandTrackSPDFirst=source.fMaxPtCandTrackSPDFirst;
   fApplySPDDeadPbPb2011=source.fApplySPDDeadPbPb2011;
+  fApplySPDMisalignedPP2012=source.fApplySPDMisalignedPP2012;
   fMaxDiffTRKV0Centr=source.fMaxDiffTRKV0Centr;
   fRemoveTrackletOutliers=source.fRemoveTrackletOutliers;
   fCutOnzVertexSPD=source.fCutOnzVertexSPD;
@@ -271,6 +274,7 @@ AliRDHFCuts::~AliRDHFCuts() {
   //  
   // 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;}
@@ -484,7 +488,7 @@ Bool_t AliRDHFCuts::IsEventSelected(AliVEvent *event) {
   }
 
   // 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);
@@ -625,6 +629,9 @@ Bool_t AliRDHFCuts::IsEventSelected(AliVEvent *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;
 }
 //---------------------------------------------------------------------------
@@ -844,6 +851,22 @@ Bool_t AliRDHFCuts::IsDaughterSelected(AliAODTrack *track,const AliESDVertex *pr
     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; 
 }
 //---------------------------------------------------------------------------
@@ -1050,6 +1073,7 @@ void AliRDHFCuts::PrintAll() const {
    }
    cout<<endl;
   }
+  if(fPidHF) fPidHF->PrintAll();
   return;
 }