16 #include "AliTriggerAnalysis.h"
17 #include "AliPhysicsSelection.h"
19 #include "AliHeader.h"
20 #include "AliGenEventHeader.h"
21 #include "AliESDEvent.h"
22 #include "AliAODHandler.h"
23 #include "AliMultiplicity.h"
24 #include "AliInputEventHandler.h"
26 #include "AliMCEvent.h"
32 #include <TDirectory.h>
57 fTrackDensity(
"trackDensity"),
104 Char_t r = (q == 0 ?
'I' :
'O');
113 if (mult == 0 || mult > maxMult)
continue;
117 h->Fill(eta,phi,mult);
152 gROOT->IncreaseDirLevel();
154 gROOT->DecreaseDirLevel();
180 d->Add(fHists.fFMD1i);
181 d->Add(fHists.fFMD2i);
182 d->Add(fHists.fFMD2o);
183 d->Add(fHists.fFMD3i);
184 d->Add(fHists.fFMD3o);
192 const TH2D* primary)
const
194 TH2D* h =
static_cast<TH2D*
>(hits->Clone());
197 n.ReplaceAll(
"_cache",
"");
212 out->SetName(GetName());
216 TList* l =
static_cast<TList*
>(input->FindObject(GetName()));
218 AliError(Form(
"List %s not found in %s", GetName(), input->GetName()));
222 TH2D* fmd1i =
static_cast<TH2D*
>(l->FindObject(
"FMD1I_cache"));
223 TH2D* fmd2i =
static_cast<TH2D*
>(l->FindObject(
"FMD2I_cache"));
224 TH2D* fmd2o =
static_cast<TH2D*
>(l->FindObject(
"FMD2O_cache"));
225 TH2D* fmd3i =
static_cast<TH2D*
>(l->FindObject(
"FMD3I_cache"));
226 TH2D* fmd3o =
static_cast<TH2D*
>(l->FindObject(
"FMD3O_cache"));
227 TH2D* primO =
static_cast<TH2D*
>(l->FindObject(
"primary"));
228 if (!fmd1i || !fmd2i || !fmd2o || !fmd3i || !fmd3o || !primO) {
229 AliError(Form(
"Missing histogram(s): %p,%p,%p,%p,%p,%p",
230 fmd1i, fmd2i, fmd2o, fmd3i, fmd3o, primO));
235 TH2D* primI =
static_cast<TH2D*
>(primO->Clone());
236 primI->SetDirectory(0);
239 TH2D* bg1i = MakeBg(fmd1i, primI);
240 TH2D* bg2i = MakeBg(fmd2i, primI);
241 TH2D* bg2o = MakeBg(fmd2o, primO);
242 TH2D* bg3i = MakeBg(fmd3i, primI);
243 TH2D* bg3o = MakeBg(fmd3o, primO);
virtual void CreateCorrections(TList *results)
Bool_t SetCorrection(UShort_t d, Char_t r, Double_t v, TH2D *h)
AliForwardMCCorrectionsTask()
TList * CreateOutputObjects(TList *list)
AliForwardUtil::Histos fHists
Bool_t Calculate(const AliESDFMD &esd, const AliMCEvent &event, const TVector3 &ip, AliESDFMD &output, TH2D *primary)
TH2D * MakeBg(const TH2D *hits, const TH2D *primary) const
AliFMDCorrSecondaryMap * fSecCorr
virtual Bool_t PreEvent()
void Print(Option_t *option="") const
AliBaseMCCorrectionsTask::VtxBin * CreateVtxBin(Double_t low, Double_t high)
void SetVertexAxis(const TAxis &axis)
virtual TList * CreateOutputObjects(TList *list)
virtual Bool_t FinalizeVtxBin(AliBaseMCCorrectionsTask::VtxBin *bin, UShort_t iVz)
void Print(Option_t *option="") const
TH2D * Get(UShort_t d, Char_t r) const
void Init(const TAxis &etaAxis)
void Print(Option_t *option="") const
void Terminate(const TList *i, TList *o, UShort_t iVz, AliFMDCorrSecondaryMap *map)
void SetEtaAxis(const TAxis &axis)
AliFMDMCTrackDensity fTrackDensity
Bool_t ProcessESD(const AliESDEvent &esd, const AliMCEvent &mc, AliBaseMCCorrectionsTask::VtxBin &bin, const TVector3 &ip)