]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGCF/Correlations/DPhi/AliAnalysisTaskPhiCorrelations.cxx
TriggerPID: Updates from Debojit
[u/mrichter/AliRoot.git] / PWGCF / Correlations / DPhi / AliAnalysisTaskPhiCorrelations.cxx
index 1509fe3ee4b7fa4ae4ab9657c343d9036b2f84a4..21fc5157acf93cda085af0b0090318fca41af6e5 100644 (file)
@@ -100,6 +100,7 @@ fUseVtxAxis(kFALSE),
 fCourseCentralityBinning(kFALSE),
 fSkipTrigger(kFALSE),
 fInjectedSignals(kFALSE),
+fRandomizeReactionPlane(kFALSE),
 fHelperPID(0x0),
 fAnalysisUtils(0x0),
 fMap(0x0),
@@ -131,6 +132,8 @@ fOnlyOneEtaSide(0),
 fPtMin(0.5),
 fDCAXYCut(0),
 fSharedClusterCut(-1),
+fCrossedRowsCut(-1),
+fFoundFractionCut(-1),
 fFilterBit(0xFF),
 fTrackStatus(0),
 fSelectBit(AliVEvent::kMB|AliVEvent::kUserDefined),
@@ -232,6 +235,8 @@ void  AliAnalysisTaskPhiCorrelations::CreateOutputObjects()
   fAnalyseUE->SetParticleSelectionCriteria(fFilterBit, fUseChargeHadrons, fTrackEtaCut, fTrackEtaCutMin, fPtMin);
   fAnalyseUE->SetDCAXYCut(fDCAXYCut);
   fAnalyseUE->SetSharedClusterCut(fSharedClusterCut);
+  fAnalyseUE->SetCrossedRowsCut(fCrossedRowsCut);
+  fAnalyseUE->SetFoundFractionCut(fFoundFractionCut);
   fAnalyseUE->SetTrackStatus(fTrackStatus);
   fAnalyseUE->SetCheckMotherPDG(fCheckMotherPDG);
   fAnalyseUE->SetDebug(fDebug); 
@@ -413,6 +418,8 @@ void  AliAnalysisTaskPhiCorrelations::AddSettingsTree()
   settingsTree->Branch("fPtMin", &fPtMin, "PtMin/D");
   settingsTree->Branch("fFilterBit", &fFilterBit,"FilterBit/I");
   settingsTree->Branch("fSharedClusterCut", &fSharedClusterCut,"SharedClusterCut/D");
+  settingsTree->Branch("fCrossedRowsCut", &fCrossedRowsCut,"CrossedRowsCut/I");
+  settingsTree->Branch("fFoundFractionCut", &fFoundFractionCut,"FoundFractionCut/D");
   settingsTree->Branch("fTrackStatus", &fTrackStatus,"TrackStatus/I");
   settingsTree->Branch("fSelectBit", &fSelectBit,"EventSelectionBit/I");
   settingsTree->Branch("fUseChargeHadrons", &fUseChargeHadrons,"UseChHadrons/O");
@@ -430,7 +437,8 @@ void  AliAnalysisTaskPhiCorrelations::AddSettingsTree()
   settingsTree->Branch("fFillpT", &fFillpT,"FillpT/O");
   settingsTree->Branch("fMixingTracks", &fMixingTracks,"MixingTracks/I");
   settingsTree->Branch("fSkipTrigger", &fSkipTrigger,"SkipTrigger/O");
-  settingsTree->Branch("fInjectedSignals", &fInjectedSignals,"SkipTrigger/O");
+  settingsTree->Branch("fInjectedSignals", &fInjectedSignals,"InjectedSignals/O");
+  settingsTree->Branch("fRandomizeReactionPlane", &fRandomizeReactionPlane,"RandomizeReactionPlane/O");
   settingsTree->Branch("fRejectCentralityOutliers", &fRejectCentralityOutliers,"RejectCentralityOutliers/O");
   settingsTree->Branch("fRejectZeroTrackEvents", &fRejectZeroTrackEvents,"RejectZeroTrackEvents/O");
   settingsTree->Branch("fRemoveWeakDecays", &fRemoveWeakDecays,"RemoveWeakDecays/O");
@@ -606,6 +614,13 @@ void  AliAnalysisTaskPhiCorrelations::AnalyseCorrectionMode()
     AliInfo(Form("Injected signals in this event (%d headers). Keeping particles/tracks of %s. Will skip particles/tracks above %d.", headers, eventHeader->ClassName(), skipParticlesAbove));
   }
   
+  if (fCentralityWeights && !AcceptEventCentralityWeight(centrality))
+  {
+    AliInfo(Form("Rejecting event because of centrality weighting: %f", centrality));
+    fHistos->FillEvent(centrality, AliUEHist::kCFStepAnaTopology);
+    return;
+  }
+  
   // Get MC primaries
   // triggers
   TObjArray* tmpList = fAnalyseUE->GetAcceptedParticles(mc, 0, kTRUE, fParticleSpeciesTrigger, kTRUE);
@@ -623,6 +638,16 @@ void  AliAnalysisTaskPhiCorrelations::AnalyseCorrectionMode()
     delete tmpList;
   }
   
+  if (fRandomizeReactionPlane)
+  {
+    Double_t centralityDigits = centrality*1000. - (Int_t)(centrality*1000.);
+    Double_t angle = TMath::TwoPi() * centralityDigits;
+    AliInfo(Form("Shifting phi of all tracks by %f (digits %f)", angle, centralityDigits));
+    ShiftTracks(tracksMC, angle);
+    if (tracksCorrelateMC != tracksMC)
+      ShiftTracks(tracksCorrelateMC, angle);
+  }
+  
   if (fFillOnlyStep0)
     zVtx = 0;
   
@@ -1410,3 +1435,21 @@ Bool_t AliAnalysisTaskPhiCorrelations::AcceptEventCentralityWeight(Double_t cent
   
   return result;
 }
+
+//____________________________________________________________________
+void AliAnalysisTaskPhiCorrelations::ShiftTracks(TObjArray* tracks, Double_t angle)
+{
+  // shifts the phi angle of all tracks by angle
+  // 0 <= angle <= 2pi
+  
+  for (Int_t i=0; i<tracks->GetEntriesFast(); ++i) 
+  {
+    AliDPhiBasicParticle* part = (AliDPhiBasicParticle*) tracks->At(i);
+    Double_t newAngle = part->Phi() + angle; 
+    if (newAngle >= TMath::TwoPi())
+      newAngle -= TMath::TwoPi();
+    
+    part->SetPhi(newAngle);
+  }
+}
+  
\ No newline at end of file