#include "AliForwarddNdetaTask.h"
#include <TMath.h>
#include <TH2D.h>
#include <TH1D.h>
#include <THStack.h>
#include <TList.h>
#include <TFile.h>
#include <AliAnalysisManager.h>
#include <AliAODEvent.h>
#include <AliAODHandler.h>
#include <AliAODInputHandler.h>
#include "AliForwardUtil.h"
#include "AliAODForwardMult.h"
AliForwarddNdetaTask::AliForwarddNdetaTask()
: AliBasedNdetaTask()
{
DGUARD(fDebug, 3, "Default CTOR of AliForwarddNdetaTask");
}
AliForwarddNdetaTask::AliForwarddNdetaTask(const char* )
: AliBasedNdetaTask("Forward")
{
DGUARD(fDebug, 3, "Named CTOR of AliForwarddNdetaTask");
}
AliForwarddNdetaTask::AliForwarddNdetaTask(const AliForwarddNdetaTask& o)
: AliBasedNdetaTask(o)
{
DGUARD(fDebug, 3, "Copy CTOR of AliForwarddNdetaTask");
}
AliBasedNdetaTask::CentralityBin*
AliForwarddNdetaTask::MakeCentralityBin(const char* name, Short_t l,Short_t h)
const
{
DGUARD(fDebug, 3,
"Make a centrality bin for AliForwarddNdetaTask: %s [%d,%d]",
name, l, h);
return new AliForwarddNdetaTask::CentralityBin(name, l, h);
}
TH2D*
AliForwarddNdetaTask::GetHistogram(const AliAODEvent& aod, Bool_t mc)
{
AliAODForwardMult* forward = GetForward(aod, mc, !mc);
if (!forward) return 0;
return &(forward->GetHistogram());
}
void
AliForwarddNdetaTask::CheckEventData(Double_t vtx,
TH2* data,
TH2* dataMC)
{
Double_t aVtx = TMath::Abs(vtx);
if (aVtx < 37.5 || aVtx > 400) return;
TH2* hists[] = { data, dataMC };
for (Int_t iX = 0; iX<=data->GetNbinsX(); iX++) {
Double_t x = data->GetXaxis()->GetBinCenter(iX);
Bool_t zero = false;
if (((vtx > 60 && vtx < 90) && x < 3) ||
((vtx > 330 && vtx < 350) && x > -2.5) ||
((vtx < 100 || vtx > 305) && TMath::Abs(x) < 4.5) ||
(vtx < 50 && TMath::Abs(x) < 4.75))
zero = true;
if (!zero) continue;
for (Int_t iH = 0; iH < 2; iH++) {
if (!hists[iH]) continue;
for (Int_t iY = 0; iY<=hists[iH]->GetNbinsY()+1; iY++) {
hists[iH]->SetBinContent(iX, iY, 0);
hists[iH]->SetBinError(iX, iY, 0);
}
}
}
if (fCorrEmpty) {
const Int_t phiBin1 = 17;
const Int_t phiBin2 = 18;
for (Int_t iH = 0; iH < 2; iH++) {
if (!hists[iH]) continue;
Int_t midX = hists[iH]->GetNbinsX() / 2;
for (Int_t i = 1; i <= midX; i++) {
hists[iH]->SetBinContent(i, phiBin1, 0);
hists[iH]->SetBinContent(i, phiBin2, 0);
hists[iH]->SetBinError(i, phiBin1, 0);
hists[iH]->SetBinError(i, phiBin2, 0);
}
}
}
}
void
AliForwarddNdetaTask::CentralityBin::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 )
{
DGUARD(fDebug, 1,"In End of %s with corrEmpty=%d, rootProj=%d",
GetName(), corrEmpty, rootProj);
AliBasedNdetaTask::CentralityBin::End(sums, results, scheme, trigEff,
trigEff0, rootProj, corrEmpty,
triggerMask, marker, color, mclist,
truthlist);
if (!IsAllBin()) return;
TFile* file = TFile::Open("forward.root", "READ");
if (!file) return;
TList* forward = static_cast<TList*>(file->Get("ForwardSums"));
if (!forward) {
AliError("List Forward not found in forward.root");
return;
}
TList* rings = static_cast<TList*>(forward->FindObject("ringResults"));
if (!rings) {
AliError("List ringResults not found in forward.root");
return;
}
THStack* res = static_cast<THStack*>(rings->FindObject("all"));
if (!res) {
AliError(Form("Stack all not found in %s", rings->GetName()));
return;
}
if (!fTriggers) {
AliError("Triggers histogram not set");
return;
}
Double_t ntotal = 0;
Double_t epsilonT = trigEff;
#if 0
if (triggerMask == AliAODForwardMult::kNSD) {
epsilonT = 0.92;
AliWarning(Form("Using hard-coded NSD trigger efficiency of %f",epsilonT));
}
#endif
AliInfo("Adding per-ring histograms to output");
TString text;
Double_t scaler = Normalization(*fTriggers, scheme, epsilonT, ntotal, &text);
TIter next(res->GetHists());
TH1* hist = 0;
while ((hist = static_cast<TH1*>(next()))) hist->Scale(scaler);
res->SetName("dndetaRings");
fOutput->Add(res);
fOutput->Add(new TNamed("normCalc", text.Data()));
}
AliForwarddNdetaTask.cxx:1 AliForwarddNdetaTask.cxx:2 AliForwarddNdetaTask.cxx:3 AliForwarddNdetaTask.cxx:4 AliForwarddNdetaTask.cxx:5 AliForwarddNdetaTask.cxx:6 AliForwarddNdetaTask.cxx:7 AliForwarddNdetaTask.cxx:8 AliForwarddNdetaTask.cxx:9 AliForwarddNdetaTask.cxx:10 AliForwarddNdetaTask.cxx:11 AliForwarddNdetaTask.cxx:12 AliForwarddNdetaTask.cxx:13 AliForwarddNdetaTask.cxx:14 AliForwarddNdetaTask.cxx:15 AliForwarddNdetaTask.cxx:16 AliForwarddNdetaTask.cxx:17 AliForwarddNdetaTask.cxx:18 AliForwarddNdetaTask.cxx:19 AliForwarddNdetaTask.cxx:20 AliForwarddNdetaTask.cxx:21 AliForwarddNdetaTask.cxx:22 AliForwarddNdetaTask.cxx:23 AliForwarddNdetaTask.cxx:24 AliForwarddNdetaTask.cxx:25 AliForwarddNdetaTask.cxx:26 AliForwarddNdetaTask.cxx:27 AliForwarddNdetaTask.cxx:28 AliForwarddNdetaTask.cxx:29 AliForwarddNdetaTask.cxx:30 AliForwarddNdetaTask.cxx:31 AliForwarddNdetaTask.cxx:32 AliForwarddNdetaTask.cxx:33 AliForwarddNdetaTask.cxx:34 AliForwarddNdetaTask.cxx:35 AliForwarddNdetaTask.cxx:36 AliForwarddNdetaTask.cxx:37 AliForwarddNdetaTask.cxx:38 AliForwarddNdetaTask.cxx:39 AliForwarddNdetaTask.cxx:40 AliForwarddNdetaTask.cxx:41 AliForwarddNdetaTask.cxx:42 AliForwarddNdetaTask.cxx:43 AliForwarddNdetaTask.cxx:44 AliForwarddNdetaTask.cxx:45 AliForwarddNdetaTask.cxx:46 AliForwarddNdetaTask.cxx:47 AliForwarddNdetaTask.cxx:48 AliForwarddNdetaTask.cxx:49 AliForwarddNdetaTask.cxx:50 AliForwarddNdetaTask.cxx:51 AliForwarddNdetaTask.cxx:52 AliForwarddNdetaTask.cxx:53 AliForwarddNdetaTask.cxx:54 AliForwarddNdetaTask.cxx:55 AliForwarddNdetaTask.cxx:56 AliForwarddNdetaTask.cxx:57 AliForwarddNdetaTask.cxx:58 AliForwarddNdetaTask.cxx:59 AliForwarddNdetaTask.cxx:60 AliForwarddNdetaTask.cxx:61 AliForwarddNdetaTask.cxx:62 AliForwarddNdetaTask.cxx:63 AliForwarddNdetaTask.cxx:64 AliForwarddNdetaTask.cxx:65 AliForwarddNdetaTask.cxx:66 AliForwarddNdetaTask.cxx:67 AliForwarddNdetaTask.cxx:68 AliForwarddNdetaTask.cxx:69 AliForwarddNdetaTask.cxx:70 AliForwarddNdetaTask.cxx:71 AliForwarddNdetaTask.cxx:72 AliForwarddNdetaTask.cxx:73 AliForwarddNdetaTask.cxx:74 AliForwarddNdetaTask.cxx:75 AliForwarddNdetaTask.cxx:76 AliForwarddNdetaTask.cxx:77 AliForwarddNdetaTask.cxx:78 AliForwarddNdetaTask.cxx:79 AliForwarddNdetaTask.cxx:80 AliForwarddNdetaTask.cxx:81 AliForwarddNdetaTask.cxx:82 AliForwarddNdetaTask.cxx:83 AliForwarddNdetaTask.cxx:84 AliForwarddNdetaTask.cxx:85 AliForwarddNdetaTask.cxx:86 AliForwarddNdetaTask.cxx:87 AliForwarddNdetaTask.cxx:88 AliForwarddNdetaTask.cxx:89 AliForwarddNdetaTask.cxx:90 AliForwarddNdetaTask.cxx:91 AliForwarddNdetaTask.cxx:92 AliForwarddNdetaTask.cxx:93 AliForwarddNdetaTask.cxx:94 AliForwarddNdetaTask.cxx:95 AliForwarddNdetaTask.cxx:96 AliForwarddNdetaTask.cxx:97 AliForwarddNdetaTask.cxx:98 AliForwarddNdetaTask.cxx:99 AliForwarddNdetaTask.cxx:100 AliForwarddNdetaTask.cxx:101 AliForwarddNdetaTask.cxx:102 AliForwarddNdetaTask.cxx:103 AliForwarddNdetaTask.cxx:104 AliForwarddNdetaTask.cxx:105 AliForwarddNdetaTask.cxx:106 AliForwarddNdetaTask.cxx:107 AliForwarddNdetaTask.cxx:108 AliForwarddNdetaTask.cxx:109 AliForwarddNdetaTask.cxx:110 AliForwarddNdetaTask.cxx:111 AliForwarddNdetaTask.cxx:112 AliForwarddNdetaTask.cxx:113 AliForwarddNdetaTask.cxx:114 AliForwarddNdetaTask.cxx:115 AliForwarddNdetaTask.cxx:116 AliForwarddNdetaTask.cxx:117 AliForwarddNdetaTask.cxx:118 AliForwarddNdetaTask.cxx:119 AliForwarddNdetaTask.cxx:120 AliForwarddNdetaTask.cxx:121 AliForwarddNdetaTask.cxx:122 AliForwarddNdetaTask.cxx:123 AliForwarddNdetaTask.cxx:124 AliForwarddNdetaTask.cxx:125 AliForwarddNdetaTask.cxx:126 AliForwarddNdetaTask.cxx:127 AliForwarddNdetaTask.cxx:128 AliForwarddNdetaTask.cxx:129 AliForwarddNdetaTask.cxx:130 AliForwarddNdetaTask.cxx:131 AliForwarddNdetaTask.cxx:132 AliForwarddNdetaTask.cxx:133 AliForwarddNdetaTask.cxx:134 AliForwarddNdetaTask.cxx:135 AliForwarddNdetaTask.cxx:136 AliForwarddNdetaTask.cxx:137 AliForwarddNdetaTask.cxx:138 AliForwarddNdetaTask.cxx:139 AliForwarddNdetaTask.cxx:140 AliForwarddNdetaTask.cxx:141 AliForwarddNdetaTask.cxx:142 AliForwarddNdetaTask.cxx:143 AliForwarddNdetaTask.cxx:144 AliForwarddNdetaTask.cxx:145 AliForwarddNdetaTask.cxx:146 AliForwarddNdetaTask.cxx:147 AliForwarddNdetaTask.cxx:148 AliForwarddNdetaTask.cxx:149 AliForwarddNdetaTask.cxx:150 AliForwarddNdetaTask.cxx:151 AliForwarddNdetaTask.cxx:152 AliForwarddNdetaTask.cxx:153 AliForwarddNdetaTask.cxx:154 AliForwarddNdetaTask.cxx:155 AliForwarddNdetaTask.cxx:156 AliForwarddNdetaTask.cxx:157 AliForwarddNdetaTask.cxx:158 AliForwarddNdetaTask.cxx:159 AliForwarddNdetaTask.cxx:160 AliForwarddNdetaTask.cxx:161 AliForwarddNdetaTask.cxx:162 AliForwarddNdetaTask.cxx:163 AliForwarddNdetaTask.cxx:164 AliForwarddNdetaTask.cxx:165 AliForwarddNdetaTask.cxx:166 AliForwarddNdetaTask.cxx:167 AliForwarddNdetaTask.cxx:168 AliForwarddNdetaTask.cxx:169 AliForwarddNdetaTask.cxx:170 AliForwarddNdetaTask.cxx:171 AliForwarddNdetaTask.cxx:172 AliForwarddNdetaTask.cxx:173 AliForwarddNdetaTask.cxx:174 AliForwarddNdetaTask.cxx:175 AliForwarddNdetaTask.cxx:176 AliForwarddNdetaTask.cxx:177 AliForwarddNdetaTask.cxx:178 AliForwarddNdetaTask.cxx:179 AliForwarddNdetaTask.cxx:180 AliForwarddNdetaTask.cxx:181 AliForwarddNdetaTask.cxx:182 AliForwarddNdetaTask.cxx:183 AliForwarddNdetaTask.cxx:184 AliForwarddNdetaTask.cxx:185 AliForwarddNdetaTask.cxx:186 AliForwarddNdetaTask.cxx:187 AliForwarddNdetaTask.cxx:188 AliForwarddNdetaTask.cxx:189 AliForwarddNdetaTask.cxx:190 AliForwarddNdetaTask.cxx:191 AliForwarddNdetaTask.cxx:192 AliForwarddNdetaTask.cxx:193 AliForwarddNdetaTask.cxx:194 AliForwarddNdetaTask.cxx:195 AliForwarddNdetaTask.cxx:196 AliForwarddNdetaTask.cxx:197 AliForwarddNdetaTask.cxx:198 AliForwarddNdetaTask.cxx:199 AliForwarddNdetaTask.cxx:200 AliForwarddNdetaTask.cxx:201 AliForwarddNdetaTask.cxx:202 AliForwarddNdetaTask.cxx:203 AliForwarddNdetaTask.cxx:204 AliForwarddNdetaTask.cxx:205 AliForwarddNdetaTask.cxx:206 AliForwarddNdetaTask.cxx:207 AliForwarddNdetaTask.cxx:208 AliForwarddNdetaTask.cxx:209 AliForwarddNdetaTask.cxx:210 AliForwarddNdetaTask.cxx:211 AliForwarddNdetaTask.cxx:212 AliForwarddNdetaTask.cxx:213 AliForwarddNdetaTask.cxx:214 AliForwarddNdetaTask.cxx:215 AliForwarddNdetaTask.cxx:216 AliForwarddNdetaTask.cxx:217 AliForwarddNdetaTask.cxx:218 AliForwarddNdetaTask.cxx:219 AliForwarddNdetaTask.cxx:220 AliForwarddNdetaTask.cxx:221 AliForwarddNdetaTask.cxx:222 AliForwarddNdetaTask.cxx:223 AliForwarddNdetaTask.cxx:224 AliForwarddNdetaTask.cxx:225 AliForwarddNdetaTask.cxx:226 AliForwarddNdetaTask.cxx:227 AliForwarddNdetaTask.cxx:228 AliForwarddNdetaTask.cxx:229 AliForwarddNdetaTask.cxx:230 AliForwarddNdetaTask.cxx:231 AliForwarddNdetaTask.cxx:232 AliForwarddNdetaTask.cxx:233 AliForwarddNdetaTask.cxx:234 AliForwarddNdetaTask.cxx:235 AliForwarddNdetaTask.cxx:236 AliForwarddNdetaTask.cxx:237 AliForwarddNdetaTask.cxx:238 AliForwarddNdetaTask.cxx:239 AliForwarddNdetaTask.cxx:240 AliForwarddNdetaTask.cxx:241 AliForwarddNdetaTask.cxx:242 AliForwarddNdetaTask.cxx:243 AliForwarddNdetaTask.cxx:244 AliForwarddNdetaTask.cxx:245 AliForwarddNdetaTask.cxx:246 AliForwarddNdetaTask.cxx:247 AliForwarddNdetaTask.cxx:248 AliForwarddNdetaTask.cxx:249