11 #include "AliAODMCParticle.h" 12 #include "AliAODMCHeader.h" 15 #include "AliAODEvent.h" 18 #include "AliGenEventHeader.h" 19 #include "AliAnalysisManager.h" 20 #include "AliInputEventHandler.h" 21 #include "AliGenEventHeaderTunedPbPb.h" 22 #include "AliCollisionGeometry.h" 72 Double_t impactParam[] = { 0.00, 3.72, 5.23, 7.31, 8.88, 10.20,
73 11.38, 12.47, 13.50, 14.51, 16.679};
75 50., 60., 70., 80., 100.};
110 if (&o ==
this)
return *
this;
162 240, -6., 6., 200, 0., TMath::TwoPi());
164 fHistFMDMCCorr =
new TH2D(
"hFMDMCCorr",
"hFMDMCCorr", 200, 0., 15000., 200, 0, 20000);
169 dList->SetName(
"Diagnostics");
172 dList->Add(fHistFMDMCCorr);
177 while ((bin = static_cast<VertexBin*>(nextForwardTR()))) {
181 while ((bin = static_cast<VertexBin*>(nextCentralTR()))) {
185 while ((bin = static_cast<VertexBin*>(nextMC()))) {
190 wList->SetName(
"FlowWeights");
241 if (aodfmult && aodcmult) {
247 Double_t totForward = fhist.Integral(1, fhist.GetNbinsX(), 1, fhist.GetNbinsY());
248 Double_t totSPD = chist.Integral(1, chist.GetNbinsX(), 1, chist.GetNbinsY());
282 fAODMCHeader =
static_cast<AliAODMCHeader*
>(
fAOD->FindListObject(AliAODMCHeader::StdBranchName()));
297 else return (((AliInputEventHandler*)(AliAnalysisManager::GetAnalysisManager()->GetInputEventHandler()))
298 ->IsEventSelected() & AliVEvent::kMB);
313 AliGenEventHeaderTunedPbPb* header =
314 dynamic_cast<AliGenEventHeaderTunedPbPb*
>(
fAODMCHeader->GetCocktailHeader(0));
315 if (header)
fCent = header->GetCentrality();
323 if (
fCent != 0)
return kTRUE;
343 if (fVtx < fVtxAxis->GetXmin() ||
fVtx >
fVtxAxis->GetXmax()) {
367 TClonesArray* mcArray =
368 static_cast<TClonesArray*
>(
fAOD->FindListObject(AliAODMCParticle::StdBranchName()));
370 AliWarning(
"No MC array found in AOD. Try making it again.");
376 Int_t ntracks = mcArray->GetEntriesFast();
382 ntracks =
fAODMCHeader->GetCocktailHeader(0)->NProduced();
386 for (
Int_t it = 0; it < ntracks; it++) {
388 AliAODMCParticle* particle = (AliAODMCParticle*)mcArray->At(it);
390 AliError(Form(
"Could not receive track %d", it));
393 if (!particle->IsPrimary())
continue;
394 if (particle->Charge() == 0)
continue;
398 if (eta >= minEta && eta < maxEta) {
410 for ( ; sBin <= eBin; sBin++) {
void AddOutput(TList *list, TAxis *centAxis)
void EndVtxBinList(const TList &list) const
virtual void Init(TList *l)
TGraph * fImpactParToCent
virtual Bool_t GetVertex(const AliAODForwardMult *aodfm)
virtual void InitVertexBins()
virtual Bool_t GetVertex(const AliAODForwardMult *aodfm)
void FillVtxBinList3Cor(const TList &list, TH2D &hcent, TH2D &hfwd, Int_t vtx, UShort_t flags=0x0)
AliAODMCHeader * fAODMCHeader
AliForwardFlowWeights * fWeights
static Bool_t IsTriggerBits(UInt_t bits, UInt_t trg)
void FillVtxBinList(const TList &list, TH2D &h1, Int_t vtx, UShort_t flags=0x0) const
virtual Bool_t GetCentrality(const AliAODForwardMult *aodfm)
AliForwardMCFlowTaskQC & operator=(const AliForwardMCFlowTaskQC &o)
virtual Bool_t CheckEvent(const AliAODForwardMult *aodfm)
const TH2D & GetHistogram() const
virtual Bool_t GetCentrality(const AliAODForwardMult *aodfm)
Double_t GetCentFromB() const
virtual Bool_t CheckEvent(const AliAODForwardMult *aodfm)
Double_t CalcWeight(Double_t eta, Double_t pt, Double_t phi, Int_t id, Double_t phiR, Double_t bOrC, Int_t type, UShort_t order, UShort_t what) const
virtual Bool_t CheckTrigger(const AliAODForwardMult *aodfm) const
static const Char_t * GetQCType(UShort_t flags, Bool_t prependUS=kTRUE)
const TH2D & GetHistogram() const
void FillVtxBinListEtaGap(const TList &list, TH2D &href, TH2D &hdiff, Int_t vtx, UShort_t flags=0x0) const