#include "AliFMDMCDensityCalculator.h"
#include <TMath.h>
#include "AliForwardCorrectionManager.h"
#include "AliFMDStripIndex.h"
#include "AliMCEvent.h"
#include "AliESDFMD.h"
#include "AliLog.h"
#include <TH2D.h>
#include <TProfile2D.h>
ClassImp(AliFMDMCDensityCalculator)
#if 0
;
#endif
AliFMDMCDensityCalculator::~AliFMDMCDensityCalculator()
{
}
AliFMDMCDensityCalculator&
AliFMDMCDensityCalculator::operator=(const AliFMDMCDensityCalculator& o)
{
AliFMDDensityCalculator::operator=(o);
return *this;
}
void
AliFMDMCDensityCalculator::SetupForData(const TAxis& eAxis)
{
AliFMDDensityCalculator::SetupForData(eAxis);
fFMD1i = Make(1,'I',eAxis);
fFMD2i = Make(2,'I',eAxis);
fFMD2o = Make(2,'O',eAxis);
fFMD3i = Make(3,'I',eAxis);
fFMD3o = Make(3,'O',eAxis);
fFMD1iC = Make(1,'I');
fFMD2iC = Make(2,'I');
fFMD2oC = Make(2,'O');
fFMD3iC = Make(3,'I');
fFMD3oC = Make(3,'O');
fFMD1iD = Make(1,'I', 20);
fFMD2iD = Make(2,'I', 20);
fFMD2oD = Make(2,'O', 20);
fFMD3iD = Make(3,'I', 20);
fFMD3oD = Make(3,'O', 20);
fComps->Add(fFMD1i);
fComps->Add(fFMD2i);
fComps->Add(fFMD2o);
fComps->Add(fFMD3i);
fComps->Add(fFMD3o);
fComps->Add(fFMD1iC);
fComps->Add(fFMD2iC);
fComps->Add(fFMD2oC);
fComps->Add(fFMD3iC);
fComps->Add(fFMD3oC);
fComps->Add(fFMD1iD);
fComps->Add(fFMD2iD);
fComps->Add(fFMD2oD);
fComps->Add(fFMD3iD);
fComps->Add(fFMD3oD);
}
Bool_t
AliFMDMCDensityCalculator::CalculateMC(const AliESDFMD& fmd,
AliForwardUtil::Histos& hists)
{
for (UShort_t d=1; d<=3; d++) {
UShort_t nr = (d == 1 ? 1 : 2);
for (UShort_t q=0; q<nr; q++) {
Char_t r = (q == 0 ? 'I' : 'O');
UShort_t ns= (q == 0 ? 20 : 40);
UShort_t nt= (q == 0 ? 512 : 256);
TH2D* h = hists.Get(d,r);
for (UShort_t s=0; s<ns; s++) {
for (UShort_t t=0; t<nt; t++) {
Float_t mult = fmd.Multiplicity(d,r,s,t);
if (mult == 0 || mult > 20) continue;
Float_t phi = fmd.Phi(d,r,s,t) / 180 * TMath::Pi();
Float_t eta = fmd.Eta(d,r,s,t);
Float_t corr = Correction(d, r, t, eta, false);
Float_t sig = (corr <= 0 ? 0 : mult / corr);
h->Fill(eta,phi,sig);
}
}
}
}
return kTRUE;
}
TProfile2D*
AliFMDMCDensityCalculator::Make(UShort_t d, Char_t r,
const TAxis& axis) const
{
TProfile2D* ret = new TProfile2D(Form("FMD%d%c_esd_vs_mc", d, r),
Form("ESD/MC signal for FMD%d%c", d, r),
axis.GetNbins(),
axis.GetXmin(),
axis.GetXmax(),
(r == 'I' || r == 'i') ? 20 : 40,
0, 2*TMath::Pi());
ret->GetXaxis()->SetTitle("#eta");
ret->GetYaxis()->SetTitle("#varphi [radians]");
ret->GetZaxis()->SetTitle("#LT #deltaN_{ch,incl}=N_{ch,incl,ana}-N_{ch,incl,mc}#GT");
ret->SetDirectory(0);
return ret;
}
TH2D*
AliFMDMCDensityCalculator::Make(UShort_t d, Char_t r) const
{
TH2D* ret = new TH2D(Form("FMD%d%c_corr_mc_esd", d, r),
Form("ESD-MC correlation for FMD%d%c", d, r),
41, -.5, 40.5, 410, -.5, 40.5);
ret->GetXaxis()->SetTitle("m_{incl} (MC)");
ret->GetYaxis()->SetTitle("m_{incl} from #Delta/#Delta_{mp} (ESD)");
ret->GetZaxis()->SetTitle("Correlation");
ret->SetDirectory(0);
return ret;
}
TH1D*
AliFMDMCDensityCalculator::Make(UShort_t d, Char_t r, Int_t max) const
{
TH1D* ret = new TH1D(Form("FMD%d%c_diff_mc_esd", d, r),
Form("ESD-MC difference for FMD%d%c", d, r),
5*max,-max, max);
ret->GetXaxis()->SetTitle("MC - ESD");
ret->SetFillColor(AliForwardUtil::RingColor(d,r));
ret->SetLineColor(AliForwardUtil::RingColor(d,r));
ret->SetFillStyle(3001);
ret->SetDirectory(0);
return ret;
}
void
AliFMDMCDensityCalculator::Fill(UShort_t d, Char_t r, TH2* esd, TH2* mc)
{
if (!esd || !mc) return;
TProfile2D* p = 0;
TH2D* h = 0;
TH1D* x = 0;
switch (d) {
case 1:
p = fFMD1i;
h = fFMD1iC;
x = fFMD1iD;
break;
case 2:
p = (r == 'I' || r == 'i' ? fFMD2i : fFMD2o);
h = (r == 'I' || r == 'i' ? fFMD2iC : fFMD2oC);
x = (r == 'I' || r == 'i' ? fFMD2iD : fFMD2oD);
break;
case 3:
p = (r == 'I' || r == 'i' ? fFMD3i : fFMD3o);
h = (r == 'I' || r == 'i' ? fFMD3iC : fFMD3oC);
x = (r == 'I' || r == 'i' ? fFMD3iD : fFMD3oD);
break;
}
if (!p) return;
for (Int_t iEta = 1; iEta <= esd->GetNbinsX(); iEta++) {
Double_t eta = esd->GetXaxis()->GetBinCenter(iEta);
for (Int_t iPhi = 1; iPhi <= esd->GetNbinsY(); iPhi++) {
Double_t phi = esd->GetYaxis()->GetBinCenter(iPhi);
Double_t mEsd = esd->GetBinContent(iEta,iPhi);
Double_t mMc = mc->GetBinContent(iEta,iPhi);
if (mMc <= 0 && mEsd <= 0) continue;
x->Fill(mMc-mEsd);
p->Fill(eta, phi, mEsd - mMc);
h->Fill(mMc,mEsd);
}
}
}
Bool_t
AliFMDMCDensityCalculator::CompareResults(AliForwardUtil::Histos& esd,
AliForwardUtil::Histos& mc)
{
Fill(1, 'I', esd.Get(1,'I'), mc.Get(1,'I'));
Fill(2, 'I', esd.Get(2,'I'), mc.Get(2,'I'));
Fill(2, 'O', esd.Get(2,'O'), mc.Get(2,'O'));
Fill(3, 'I', esd.Get(3,'I'), mc.Get(3,'I'));
Fill(3, 'O', esd.Get(3,'O'), mc.Get(3,'O'));
return kTRUE;
}
void
AliFMDMCDensityCalculator::CreateOutputObjects(TList* dir)
{
AliFMDDensityCalculator::CreateOutputObjects(dir);
TList* d = static_cast<TList*>(dir->FindObject(GetName()));
fComps = new TList;
fComps->SetOwner();
fComps->SetName("esd_mc_comparison");
d->Add(fComps);
}
AliFMDMCDensityCalculator.cxx:1 AliFMDMCDensityCalculator.cxx:2 AliFMDMCDensityCalculator.cxx:3 AliFMDMCDensityCalculator.cxx:4 AliFMDMCDensityCalculator.cxx:5 AliFMDMCDensityCalculator.cxx:6 AliFMDMCDensityCalculator.cxx:7 AliFMDMCDensityCalculator.cxx:8 AliFMDMCDensityCalculator.cxx:9 AliFMDMCDensityCalculator.cxx:10 AliFMDMCDensityCalculator.cxx:11 AliFMDMCDensityCalculator.cxx:12 AliFMDMCDensityCalculator.cxx:13 AliFMDMCDensityCalculator.cxx:14 AliFMDMCDensityCalculator.cxx:15 AliFMDMCDensityCalculator.cxx:16 AliFMDMCDensityCalculator.cxx:17 AliFMDMCDensityCalculator.cxx:18 AliFMDMCDensityCalculator.cxx:19 AliFMDMCDensityCalculator.cxx:20 AliFMDMCDensityCalculator.cxx:21 AliFMDMCDensityCalculator.cxx:22 AliFMDMCDensityCalculator.cxx:23 AliFMDMCDensityCalculator.cxx:24 AliFMDMCDensityCalculator.cxx:25 AliFMDMCDensityCalculator.cxx:26 AliFMDMCDensityCalculator.cxx:27 AliFMDMCDensityCalculator.cxx:28 AliFMDMCDensityCalculator.cxx:29 AliFMDMCDensityCalculator.cxx:30 AliFMDMCDensityCalculator.cxx:31 AliFMDMCDensityCalculator.cxx:32 AliFMDMCDensityCalculator.cxx:33 AliFMDMCDensityCalculator.cxx:34 AliFMDMCDensityCalculator.cxx:35 AliFMDMCDensityCalculator.cxx:36 AliFMDMCDensityCalculator.cxx:37 AliFMDMCDensityCalculator.cxx:38 AliFMDMCDensityCalculator.cxx:39 AliFMDMCDensityCalculator.cxx:40 AliFMDMCDensityCalculator.cxx:41 AliFMDMCDensityCalculator.cxx:42 AliFMDMCDensityCalculator.cxx:43 AliFMDMCDensityCalculator.cxx:44 AliFMDMCDensityCalculator.cxx:45 AliFMDMCDensityCalculator.cxx:46 AliFMDMCDensityCalculator.cxx:47 AliFMDMCDensityCalculator.cxx:48 AliFMDMCDensityCalculator.cxx:49 AliFMDMCDensityCalculator.cxx:50 AliFMDMCDensityCalculator.cxx:51 AliFMDMCDensityCalculator.cxx:52 AliFMDMCDensityCalculator.cxx:53 AliFMDMCDensityCalculator.cxx:54 AliFMDMCDensityCalculator.cxx:55 AliFMDMCDensityCalculator.cxx:56 AliFMDMCDensityCalculator.cxx:57 AliFMDMCDensityCalculator.cxx:58 AliFMDMCDensityCalculator.cxx:59 AliFMDMCDensityCalculator.cxx:60 AliFMDMCDensityCalculator.cxx:61 AliFMDMCDensityCalculator.cxx:62 AliFMDMCDensityCalculator.cxx:63 AliFMDMCDensityCalculator.cxx:64 AliFMDMCDensityCalculator.cxx:65 AliFMDMCDensityCalculator.cxx:66 AliFMDMCDensityCalculator.cxx:67 AliFMDMCDensityCalculator.cxx:68 AliFMDMCDensityCalculator.cxx:69 AliFMDMCDensityCalculator.cxx:70 AliFMDMCDensityCalculator.cxx:71 AliFMDMCDensityCalculator.cxx:72 AliFMDMCDensityCalculator.cxx:73 AliFMDMCDensityCalculator.cxx:74 AliFMDMCDensityCalculator.cxx:75 AliFMDMCDensityCalculator.cxx:76 AliFMDMCDensityCalculator.cxx:77 AliFMDMCDensityCalculator.cxx:78 AliFMDMCDensityCalculator.cxx:79 AliFMDMCDensityCalculator.cxx:80 AliFMDMCDensityCalculator.cxx:81 AliFMDMCDensityCalculator.cxx:82 AliFMDMCDensityCalculator.cxx:83 AliFMDMCDensityCalculator.cxx:84 AliFMDMCDensityCalculator.cxx:85 AliFMDMCDensityCalculator.cxx:86 AliFMDMCDensityCalculator.cxx:87 AliFMDMCDensityCalculator.cxx:88 AliFMDMCDensityCalculator.cxx:89 AliFMDMCDensityCalculator.cxx:90 AliFMDMCDensityCalculator.cxx:91 AliFMDMCDensityCalculator.cxx:92 AliFMDMCDensityCalculator.cxx:93 AliFMDMCDensityCalculator.cxx:94 AliFMDMCDensityCalculator.cxx:95 AliFMDMCDensityCalculator.cxx:96 AliFMDMCDensityCalculator.cxx:97 AliFMDMCDensityCalculator.cxx:98 AliFMDMCDensityCalculator.cxx:99 AliFMDMCDensityCalculator.cxx:100 AliFMDMCDensityCalculator.cxx:101 AliFMDMCDensityCalculator.cxx:102 AliFMDMCDensityCalculator.cxx:103 AliFMDMCDensityCalculator.cxx:104 AliFMDMCDensityCalculator.cxx:105 AliFMDMCDensityCalculator.cxx:106 AliFMDMCDensityCalculator.cxx:107 AliFMDMCDensityCalculator.cxx:108 AliFMDMCDensityCalculator.cxx:109 AliFMDMCDensityCalculator.cxx:110 AliFMDMCDensityCalculator.cxx:111 AliFMDMCDensityCalculator.cxx:112 AliFMDMCDensityCalculator.cxx:113 AliFMDMCDensityCalculator.cxx:114 AliFMDMCDensityCalculator.cxx:115 AliFMDMCDensityCalculator.cxx:116 AliFMDMCDensityCalculator.cxx:117 AliFMDMCDensityCalculator.cxx:118 AliFMDMCDensityCalculator.cxx:119 AliFMDMCDensityCalculator.cxx:120 AliFMDMCDensityCalculator.cxx:121 AliFMDMCDensityCalculator.cxx:122 AliFMDMCDensityCalculator.cxx:123 AliFMDMCDensityCalculator.cxx:124 AliFMDMCDensityCalculator.cxx:125 AliFMDMCDensityCalculator.cxx:126 AliFMDMCDensityCalculator.cxx:127 AliFMDMCDensityCalculator.cxx:128 AliFMDMCDensityCalculator.cxx:129 AliFMDMCDensityCalculator.cxx:130 AliFMDMCDensityCalculator.cxx:131 AliFMDMCDensityCalculator.cxx:132 AliFMDMCDensityCalculator.cxx:133 AliFMDMCDensityCalculator.cxx:134 AliFMDMCDensityCalculator.cxx:135 AliFMDMCDensityCalculator.cxx:136 AliFMDMCDensityCalculator.cxx:137 AliFMDMCDensityCalculator.cxx:138 AliFMDMCDensityCalculator.cxx:139 AliFMDMCDensityCalculator.cxx:140 AliFMDMCDensityCalculator.cxx:141 AliFMDMCDensityCalculator.cxx:142 AliFMDMCDensityCalculator.cxx:143 AliFMDMCDensityCalculator.cxx:144 AliFMDMCDensityCalculator.cxx:145 AliFMDMCDensityCalculator.cxx:146 AliFMDMCDensityCalculator.cxx:147 AliFMDMCDensityCalculator.cxx:148 AliFMDMCDensityCalculator.cxx:149 AliFMDMCDensityCalculator.cxx:150 AliFMDMCDensityCalculator.cxx:151 AliFMDMCDensityCalculator.cxx:152 AliFMDMCDensityCalculator.cxx:153 AliFMDMCDensityCalculator.cxx:154 AliFMDMCDensityCalculator.cxx:155 AliFMDMCDensityCalculator.cxx:156 AliFMDMCDensityCalculator.cxx:157 AliFMDMCDensityCalculator.cxx:158 AliFMDMCDensityCalculator.cxx:159 AliFMDMCDensityCalculator.cxx:160 AliFMDMCDensityCalculator.cxx:161 AliFMDMCDensityCalculator.cxx:162 AliFMDMCDensityCalculator.cxx:163 AliFMDMCDensityCalculator.cxx:164 AliFMDMCDensityCalculator.cxx:165 AliFMDMCDensityCalculator.cxx:166 AliFMDMCDensityCalculator.cxx:167 AliFMDMCDensityCalculator.cxx:168 AliFMDMCDensityCalculator.cxx:169 AliFMDMCDensityCalculator.cxx:170 AliFMDMCDensityCalculator.cxx:171 AliFMDMCDensityCalculator.cxx:172 AliFMDMCDensityCalculator.cxx:173 AliFMDMCDensityCalculator.cxx:174 AliFMDMCDensityCalculator.cxx:175 AliFMDMCDensityCalculator.cxx:176 AliFMDMCDensityCalculator.cxx:177 AliFMDMCDensityCalculator.cxx:178 AliFMDMCDensityCalculator.cxx:179 AliFMDMCDensityCalculator.cxx:180 AliFMDMCDensityCalculator.cxx:181 AliFMDMCDensityCalculator.cxx:182 AliFMDMCDensityCalculator.cxx:183 AliFMDMCDensityCalculator.cxx:184 AliFMDMCDensityCalculator.cxx:185 AliFMDMCDensityCalculator.cxx:186 AliFMDMCDensityCalculator.cxx:187 AliFMDMCDensityCalculator.cxx:188 AliFMDMCDensityCalculator.cxx:189 AliFMDMCDensityCalculator.cxx:190 AliFMDMCDensityCalculator.cxx:191 AliFMDMCDensityCalculator.cxx:192 AliFMDMCDensityCalculator.cxx:193 AliFMDMCDensityCalculator.cxx:194 AliFMDMCDensityCalculator.cxx:195 AliFMDMCDensityCalculator.cxx:196 AliFMDMCDensityCalculator.cxx:197 AliFMDMCDensityCalculator.cxx:198 AliFMDMCDensityCalculator.cxx:199 AliFMDMCDensityCalculator.cxx:200 AliFMDMCDensityCalculator.cxx:201 AliFMDMCDensityCalculator.cxx:202 AliFMDMCDensityCalculator.cxx:203 AliFMDMCDensityCalculator.cxx:204 AliFMDMCDensityCalculator.cxx:205 AliFMDMCDensityCalculator.cxx:206 AliFMDMCDensityCalculator.cxx:207 AliFMDMCDensityCalculator.cxx:208 AliFMDMCDensityCalculator.cxx:209 AliFMDMCDensityCalculator.cxx:210 AliFMDMCDensityCalculator.cxx:211 AliFMDMCDensityCalculator.cxx:212 AliFMDMCDensityCalculator.cxx:213 AliFMDMCDensityCalculator.cxx:214 AliFMDMCDensityCalculator.cxx:215 AliFMDMCDensityCalculator.cxx:216 AliFMDMCDensityCalculator.cxx:217 AliFMDMCDensityCalculator.cxx:218 AliFMDMCDensityCalculator.cxx:219 AliFMDMCDensityCalculator.cxx:220 AliFMDMCDensityCalculator.cxx:221 AliFMDMCDensityCalculator.cxx:222 AliFMDMCDensityCalculator.cxx:223 AliFMDMCDensityCalculator.cxx:224 AliFMDMCDensityCalculator.cxx:225 AliFMDMCDensityCalculator.cxx:226 AliFMDMCDensityCalculator.cxx:227 AliFMDMCDensityCalculator.cxx:228 AliFMDMCDensityCalculator.cxx:229 AliFMDMCDensityCalculator.cxx:230 AliFMDMCDensityCalculator.cxx:231 AliFMDMCDensityCalculator.cxx:232 AliFMDMCDensityCalculator.cxx:233 AliFMDMCDensityCalculator.cxx:234 AliFMDMCDensityCalculator.cxx:235 AliFMDMCDensityCalculator.cxx:236 AliFMDMCDensityCalculator.cxx:237 AliFMDMCDensityCalculator.cxx:238 AliFMDMCDensityCalculator.cxx:239 AliFMDMCDensityCalculator.cxx:240 AliFMDMCDensityCalculator.cxx:241 AliFMDMCDensityCalculator.cxx:242 AliFMDMCDensityCalculator.cxx:243 AliFMDMCDensityCalculator.cxx:244 AliFMDMCDensityCalculator.cxx:245 AliFMDMCDensityCalculator.cxx:246 AliFMDMCDensityCalculator.cxx:247 AliFMDMCDensityCalculator.cxx:248 AliFMDMCDensityCalculator.cxx:249 AliFMDMCDensityCalculator.cxx:250 AliFMDMCDensityCalculator.cxx:251 AliFMDMCDensityCalculator.cxx:252 AliFMDMCDensityCalculator.cxx:253 AliFMDMCDensityCalculator.cxx:254 AliFMDMCDensityCalculator.cxx:255 AliFMDMCDensityCalculator.cxx:256 AliFMDMCDensityCalculator.cxx:257 AliFMDMCDensityCalculator.cxx:258 AliFMDMCDensityCalculator.cxx:259 AliFMDMCDensityCalculator.cxx:260 AliFMDMCDensityCalculator.cxx:261 AliFMDMCDensityCalculator.cxx:262 AliFMDMCDensityCalculator.cxx:263 AliFMDMCDensityCalculator.cxx:264 AliFMDMCDensityCalculator.cxx:265 AliFMDMCDensityCalculator.cxx:266 AliFMDMCDensityCalculator.cxx:267 AliFMDMCDensityCalculator.cxx:268 AliFMDMCDensityCalculator.cxx:269 AliFMDMCDensityCalculator.cxx:270 AliFMDMCDensityCalculator.cxx:271 AliFMDMCDensityCalculator.cxx:272 AliFMDMCDensityCalculator.cxx:273 AliFMDMCDensityCalculator.cxx:274 AliFMDMCDensityCalculator.cxx:275 AliFMDMCDensityCalculator.cxx:276 AliFMDMCDensityCalculator.cxx:277 AliFMDMCDensityCalculator.cxx:278 AliFMDMCDensityCalculator.cxx:279 AliFMDMCDensityCalculator.cxx:280 AliFMDMCDensityCalculator.cxx:281 AliFMDMCDensityCalculator.cxx:282 AliFMDMCDensityCalculator.cxx:283 AliFMDMCDensityCalculator.cxx:284 AliFMDMCDensityCalculator.cxx:285 AliFMDMCDensityCalculator.cxx:286 AliFMDMCDensityCalculator.cxx:287 AliFMDMCDensityCalculator.cxx:288 AliFMDMCDensityCalculator.cxx:289 AliFMDMCDensityCalculator.cxx:290 AliFMDMCDensityCalculator.cxx:291 AliFMDMCDensityCalculator.cxx:292 AliFMDMCDensityCalculator.cxx:293 AliFMDMCDensityCalculator.cxx:294 AliFMDMCDensityCalculator.cxx:295 AliFMDMCDensityCalculator.cxx:296 AliFMDMCDensityCalculator.cxx:297 AliFMDMCDensityCalculator.cxx:298 AliFMDMCDensityCalculator.cxx:299 AliFMDMCDensityCalculator.cxx:300 AliFMDMCDensityCalculator.cxx:301 AliFMDMCDensityCalculator.cxx:302 AliFMDMCDensityCalculator.cxx:303 AliFMDMCDensityCalculator.cxx:304 AliFMDMCDensityCalculator.cxx:305 AliFMDMCDensityCalculator.cxx:306 AliFMDMCDensityCalculator.cxx:307 AliFMDMCDensityCalculator.cxx:308 AliFMDMCDensityCalculator.cxx:309 AliFMDMCDensityCalculator.cxx:310 AliFMDMCDensityCalculator.cxx:311 AliFMDMCDensityCalculator.cxx:312 AliFMDMCDensityCalculator.cxx:313 AliFMDMCDensityCalculator.cxx:314 AliFMDMCDensityCalculator.cxx:315 AliFMDMCDensityCalculator.cxx:316 AliFMDMCDensityCalculator.cxx:317 AliFMDMCDensityCalculator.cxx:318 AliFMDMCDensityCalculator.cxx:319 AliFMDMCDensityCalculator.cxx:320 AliFMDMCDensityCalculator.cxx:321 AliFMDMCDensityCalculator.cxx:322 AliFMDMCDensityCalculator.cxx:323 AliFMDMCDensityCalculator.cxx:324