9 #include <AliAnalysisManager.h>
10 #include <AliAODEvent.h>
11 #include <AliAODHandler.h>
12 #include <AliAODInputHandler.h>
80 Int_t nY = ret->GetNbinsY();
82 for (
Int_t i = 1; i <= ret->GetNbinsX(); i++) {
83 ret->SetBinContent(i, 0, 1);
84 ret->SetBinContent(i, nY+1, 1);
101 AliInfo(
"The MC truth dN/deta task didn't get any data");
106 THStack* truth =
new THStack(
"dndetaTruth",
"dN/d#eta MC Truth");
109 while ((bin = static_cast<CentralityBin*>(next()))) {
113 if (!results)
continue;
115 TH1* dndeta =
static_cast<TH1*
>(results->FindObject(
"dndetaTruth"));
116 if (dndeta) truth->Add(dndeta);
119 if (!truth->GetHists() ||
120 truth->GetHists()->GetEntries() <= 0) {
121 AliWarning(
"No MC truth histograms found");
144 if (!primary)
return false;
167 if (forward->
CheckEvent(mask, -10000, -10000, 0, 0, 0, 0, filter)) {
176 if (
CheckEvent(forward, triggerMask, vzMin, vzMax, filter))
177 fSum->
Add(primary, isZero, weight);
197 AliInfo(Form(
"At end with sums=%p, results=%p, scheme=%d, "
198 "shapeCorr=%p, trigEff=%f, symmetrice=%d, rebin=%d, "
199 "rootProj=%d, corrEmpty=%d, cutEdges=%d, triggerMask=0x%08x, "
201 sums, results, scheme, shapeCorr, trigEff, trigEff0, symmetrice,
202 rebin, rootProj, corrEmpty, cutEdges, triggerMask, marker,
207 trigEff0, rootProj, corrEmpty,
208 triggerMask, marker, color, mclist,
211 fSumTruth =
static_cast<TH2D*
>(
fSums->FindObject(
"truth"));
215 Int_t n0 =
Int_t(fSumTruth->GetBinContent(0,0));
219 DMSG(fDebug,0,
"Normalising MC truth to %d (%d additions)", n, n0);
221 TH1D* dndetaTruth = fSumTruth->ProjectionX(
"dndetaTruth",1,
222 fSumTruth->GetNbinsY(),
"e");
223 dndetaTruth->SetDirectory(0);
224 dndetaTruth->Scale(1./n,
"width");
228 "Monte-Carlo truth");
230 fOutput->Add(dndetaTruth);
232 TH1* dndeta = GetResult(
"");
234 dndeta->SetTitle(
"Monte-Carlo truth (selected)");
virtual Bool_t ProcessEvent(const AliAODForwardMult *forward, UInt_t triggerMask, Bool_t isZero, Double_t vzMin, Double_t vzMax, const TH2D *data, const TH2D *mc, UInt_t filter, Double_t weight)
#define DMSG(L, N, F,...)
TH2D * GetHistogram(const AliAODEvent &aod, Bool_t mc)
AliBasedNdetaTask::CentralityBin * MakeCentralityBin(const char *name, Float_t l, Float_t h) const
static Int_t GetMarkerStyle(UShort_t bits)
virtual Bool_t Finalize()
virtual Bool_t CheckEvent(const AliAODForwardMult *forward, Int_t triggerMask, Double_t vzMin, Double_t vzMax, Int_t filter)
Various utilities used in PWGLF/FORWARD.
virtual void CreateSums(const TH2D *data, const TH2D *mc)
TObjArray * fListOfCentralities
virtual void End(TList *sums, TList *results, UShort_t scheme, Double_t trigEff, Double_t trigEff0, Bool_t rootProj, Bool_t corrEmpty, Int_t triggerMask, Int_t marker, Int_t color, TList *mclist, TList *truthlist)
virtual Bool_t Finalize()
virtual Int_t GetColor() const
void Add(const TH2D *data, Bool_t isZero, Double_t weight)
virtual void End(TList *sums, TList *results, UShort_t scheme, Double_t trigEff, Double_t trigEff0, Bool_t rootProj, Bool_t corrEmpty, Int_t triggerMask, Int_t marker, Int_t color, TList *mclist, TList *truthlist)
Float_t GetCentrality() const
TList * GetResults() const
TH2D * GetPrimary(const AliAODEvent &aod)
Bool_t CheckEvent(UInt_t triggerMask=kInel, Double_t vzMin=-10, Double_t vzMax=10, Double_t cMin=0, Double_t cMax=100, TH1 *hist=0, TH1 *status=0, UInt_t filterMask=kDefaultFilter) const
Bool_t HasCentrality() const
static void SetHistogramAttributes(TH1D *h, Int_t colour, Int_t marker, const char *title, const char *ytitle=0)