fCourseCentralityBinning(kFALSE),
fSkipTrigger(kFALSE),
fInjectedSignals(kFALSE),
+fRandomizeReactionPlane(kFALSE),
fHelperPID(0x0),
fAnalysisUtils(0x0),
fMap(0x0),
fPtMin(0.5),
fDCAXYCut(0),
fSharedClusterCut(-1),
+fCrossedRowsCut(-1),
+fFoundFractionCut(-1),
fFilterBit(0xFF),
fTrackStatus(0),
fSelectBit(AliVEvent::kMB|AliVEvent::kUserDefined),
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);
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");
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");
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);
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;
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