19 #include "AliMCEvent.h"
20 #include "AliESDFMD.h"
23 #include <TProfile2D.h>
122 Char_t r = (q == 0 ?
'I' :
'O');
129 Float_t mult = fmd.Multiplicity(d,r,s,t);
131 if (mult == 0 || mult > 20)
continue;
133 Float_t phi = fmd.Phi(d,r,s,t) / 180 * TMath::Pi();
134 Float_t eta = fmd.Eta(d,r,s,t);
137 Float_t sig = (corr <= 0 ? 0 : mult / corr);
138 h->Fill(eta,phi,sig);
149 const TAxis& axis)
const
162 TProfile2D* ret =
new TProfile2D(Form(
"FMD%d%c_esd_vs_mc", d, r),
163 Form(
"ESD/MC signal for FMD%d%c", d, r),
167 (r ==
'I' || r ==
'i') ? 20 : 40,
169 ret->GetXaxis()->SetTitle(
"#eta");
170 ret->GetYaxis()->SetTitle(
"#varphi [radians]");
171 ret->GetZaxis()->SetTitle(
"#LT #deltaN_{ch,incl}=N_{ch,incl,ana}-N_{ch,incl,mc}#GT");
172 ret->SetDirectory(0);
189 TH2D* ret =
new TH2D(Form(
"FMD%d%c_corr_mc_esd", d, r),
190 Form(
"ESD-MC correlation for FMD%d%c", d, r),
191 41, -.5, 40.5, 410, -.5, 40.5);
192 ret->GetXaxis()->SetTitle(
"m_{incl} (MC)");
193 ret->GetYaxis()->SetTitle(
"m_{incl} from #Delta/#Delta_{mp} (ESD)");
194 ret->GetZaxis()->SetTitle(
"Correlation");
195 ret->SetDirectory(0);
212 TH1D* ret =
new TH1D(Form(
"FMD%d%c_diff_mc_esd", d, r),
213 Form(
"ESD-MC difference for FMD%d%c", d, r),
215 ret->GetXaxis()->SetTitle(
"MC - ESD");
218 ret->SetFillStyle(3001);
219 ret->SetDirectory(0);
235 if (!esd || !mc)
return;
258 for (
Int_t iEta = 1; iEta <= esd->GetNbinsX(); iEta++) {
259 Double_t eta = esd->GetXaxis()->GetBinCenter(iEta);
260 for (
Int_t iPhi = 1; iPhi <= esd->GetNbinsY(); iPhi++) {
261 Double_t phi = esd->GetYaxis()->GetBinCenter(iPhi);
262 Double_t mEsd = esd->GetBinContent(iEta,iPhi);
263 Double_t mMc = mc->GetBinContent(iEta,iPhi);
265 if (mMc <= 0 && mEsd <= 0)
continue;
267 p->Fill(eta, phi, mEsd - mMc);
310 TList* d =
static_cast<TList*
>(dir->FindObject(GetName()));
314 fComps->SetName(
"esd_mc_comparison");
virtual void SetupForData(const TAxis &etaAxis)
virtual ~AliFMDMCDensityCalculator()
void SetupForData(const TAxis &etaAxis)
TProfile2D * Make(UShort_t d, Char_t r, const TAxis &axis) const
AliFMDDensityCalculator & operator=(const AliFMDDensityCalculator &o)
static Color_t RingColor(UShort_t d, Char_t r)
virtual Bool_t CalculateMC(const AliESDFMD &fmd, AliForwardUtil::Histos &hists)
AliFMDMCDensityCalculator & operator=(const AliFMDMCDensityCalculator &o)
virtual Bool_t CompareResults(AliForwardUtil::Histos &esd, AliForwardUtil::Histos &mc)
void Fill(UShort_t d, Char_t r, TH2 *esd, TH2 *mc)
virtual void CreateOutputObjects(TList *dir)
TH2D * Get(UShort_t d, Char_t r) const
void CreateOutputObjects(TList *dir)
virtual Float_t Correction(UShort_t d, Char_t r, UShort_t t, Float_t eta, Bool_t lowFlux) const