19 #include <AliESDFMD.h>
29 #include <TProfile2D.h>
64 if (&o ==
this)
return *
this;
94 Char_t r = (q == 0 ?
'I' :
'O');
101 AliWarning(Form(
"No secondary correction for FMDM%d%c in vertex bin %d",
111 AliWarning(Form(
"No event vertex bias correction in vertex bin %d",
152 const TAxis& axis)
const
165 TProfile2D* ret =
new TProfile2D(Form(
"FMD%d%c_esd_vs_mc", d, r),
166 Form(
"ESD/MC signal for FMD%d%c", d, r),
170 (r ==
'I' || r ==
'i') ? 20 : 40,
172 ret->GetXaxis()->SetTitle(
"#eta");
173 ret->GetYaxis()->SetTitle(
"#varphi [degrees]");
174 ret->GetZaxis()->SetTitle(
"#LT primary density ESD/MC#GT");
175 ret->SetDirectory(0);
191 if (!esd || !mc)
return;
194 case 1: p =
fFMD1i;
break;
195 case 2: p = (r ==
'I' || r ==
'i' ?
fFMD2i :
fFMD2o);
break;
196 case 3: p = (r ==
'I' || r ==
'i' ?
fFMD3i :
fFMD3o);
break;
200 for (
Int_t iEta = 1; iEta <= esd->GetNbinsX(); iEta++) {
201 Double_t eta = esd->GetXaxis()->GetBinCenter(iEta);
202 for (
Int_t iPhi = 1; iPhi <= esd->GetNbinsY(); iPhi++) {
203 Double_t phi = esd->GetYaxis()->GetBinCenter(iPhi);
204 Double_t mEsd = esd->GetBinContent(iEta,iPhi);
205 Double_t mMc = mc->GetBinContent(iEta,iPhi);
207 p->Fill(eta, phi, (mMc > 0 ? mEsd / mMc : 0));
249 TList* d =
static_cast<TList*
>(dir->FindObject(GetName()));
252 fComps->SetName(
"esd_mc_comparison");
255 #define PFB(N,FLAG) \
257 AliForwardUtil::PrintName(N); \
258 std::cout << std::boolalpha << (FLAG) << std::noboolalpha << std::endl; \
271 gROOT->IncreaseDirLevel();
273 gROOT->DecreaseDirLevel();
TH2D * GetCorrection(Char_t r, Double_t v) const
virtual ~AliFMDMCCorrector()
AliFMDMCCorrector & operator=(const AliFMDMCCorrector &)
TH2D * GetCorrection(UShort_t d, Char_t r, Double_t v) const
virtual void CreateOutputObjects(TList *dir)
virtual void Print(Option_t *option="") const
virtual Bool_t CompareResults(AliForwardUtil::Histos &esd, AliForwardUtil::Histos &mc)
void SetupForData(const TAxis &etaAxis)
void Fill(UShort_t d, Char_t r, TH2 *esd, TH2 *mc)
void Print(Option_t *option="") const
AliFMDCorrector & operator=(const AliFMDCorrector &)
virtual Bool_t CorrectMC(AliForwardUtil::Histos &hists, UShort_t vtxBin)
TH2D * Get(UShort_t d, Char_t r) const
TProfile2D * Make(UShort_t d, Char_t r, const TAxis &axis) const
void CreateOutputObjects(TList *dir)
const AliFMDCorrVertexBias * GetVertexBias() const
virtual void SetupForData(const TAxis &etaAxis)
const AliFMDCorrSecondaryMap * GetSecondaryMap() const
static AliForwardCorrectionManager & Instance()