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;
151 if (!fSum) CreateSums(primary, 0);
153 fSumTruth =
static_cast<TH2D*
>(primary->Clone(
"truth"));
154 fSumTruth->SetDirectory(0);
156 fSums->Add(fSumTruth);
167 if (forward->
CheckEvent(mask, -10000, -10000, 0, 0, 0, 0, filter)) {
168 fSumTruth->Add(primary, weight);
171 Int_t cnt =
Int_t(fSumTruth->GetBinContent(0,0));
172 fSumTruth->SetBinContent(0,0, ++cnt);
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,
209 marker, color, mclist,
213 fSumTruth =
static_cast<TH2D*
>(
fSums->FindObject(
"truth"));
217 Int_t n0 =
Int_t(fSumTruth->GetBinContent(0,0));
221 DMSG(fDebug,0,
"Normalising MC truth to %d (%d additions)", n, n0);
223 TH1D* dndetaTruth = fSumTruth->ProjectionX(
"dndetaTruth",1,
224 fSumTruth->GetNbinsY(),
"e");
225 dndetaTruth->SetDirectory(0);
226 dndetaTruth->Scale(1./n,
"width");
230 "Monte-Carlo truth");
232 fOutput->Add(dndetaTruth);
234 TH1* dndeta = GetResult(
"");
236 dndeta->SetTitle(
"Monte-Carlo truth (selected)");
Int_t color[]
print message on plot with ok/not ok
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,...)
virtual bool 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)
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()
Various utilities used in PWGLF/FORWARD.
TObjArray * fListOfCentralities
virtual Bool_t Finalize()
virtual Int_t GetColor() const
virtual bool 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 CheckEvent(const AliAODForwardMult &forward)
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)