#include "AliFMDEnergyFitterTask.h"
#include "AliLog.h"
#include "AliESDEvent.h"
#include "AliESDFMD.h"
#include "AliMCEvent.h"
#include "AliAODForwardMult.h"
#include "AliAnalysisManager.h"
#include "AliForwardCorrectionManager.h"
#include <TH1.h>
#include <TDirectory.h>
#include <TTree.h>
#include <TFile.h>
#include <TROOT.h>
#include <iostream>
AliFMDEnergyFitterTask::AliFMDEnergyFitterTask()
: AliBaseESDTask(),
fEventInspector(),
fESDFixer(),
fEnergyFitter(),
fOnlyMB(false)
{
DGUARD(fDebug, 3,"Default CTOR of AliFMDEnergyFitterTask");
fCloneList = true;
}
AliFMDEnergyFitterTask::AliFMDEnergyFitterTask(const char* name)
: AliBaseESDTask(name, "AliFMDEnergyFitterTask",
&(AliForwardCorrectionManager::Instance())),
fEventInspector("event"),
fESDFixer("esdFizer"),
fEnergyFitter("energy"),
fOnlyMB(false)
{
DGUARD(fDebug, 3,"Named CTOR of AliFMDEnergyFitterTask: %s", name);
fCloneList = true;
}
void
AliFMDEnergyFitterTask::SetDebug(Int_t dbg)
{
AliBaseESDTask::SetDebug(dbg);
fEnergyFitter.SetDebug(dbg);
}
TAxis*
AliFMDEnergyFitterTask::DefaultEtaAxis() const
{
static TAxis* a = new TAxis(0, 0, 0);
return a;
}
TAxis*
AliFMDEnergyFitterTask::DefaultVertexAxis() const
{
static TAxis* a = new TAxis(10, -10, 10);
return a;
}
Bool_t
AliFMDEnergyFitterTask::Setup()
{
fEnergyFitter.Init();
return true;
}
Bool_t
AliFMDEnergyFitterTask::Book()
{
DGUARD(fDebug,1,"Create output objects of AliFMDEnergyFitterTask");
fNeededCorrections = 0;
fExtraCorrections = 0;
if (fESDFixer.IsUseNoiseCorrection())
fNeededCorrections = AliForwardCorrectionManager::kNoiseGain;
fESDFixer .CreateOutputObjects(fList);
fEnergyFitter.CreateOutputObjects(fList);
fList->Add(AliForwardUtil::MakeParameter("onlyMB", fOnlyMB));
return true;
}
void
AliFMDEnergyFitterTask::PreCorrections(const AliESDEvent* esd)
{
if (!esd) return;
AliESDFMD* esdFMD = esd->GetFMDData();
if (!esdFMD) return;
Int_t tgt = fESDFixer.FindTargetNoiseFactor(*esdFMD, false);
if (tgt <= 0) {
fESDFixer.SetRecoNoiseFactor(4);
fNeededCorrections ^= AliForwardCorrectionManager::kNoiseGain;
}
else
AliWarning("The noise corrector has been enabled!");
}
Bool_t
AliFMDEnergyFitterTask::PreData(const TAxis& , const TAxis& eta)
{
DGUARD(fDebug,1,"Initialize subs of AliFMDEnergyFitterTask");
fEnergyFitter.SetupForData(eta);
Print();
return true;
}
Bool_t
AliFMDEnergyFitterTask::Event(AliESDEvent& esd)
{
DGUARD(fDebug,3,"Analyse event of AliFMDEnergyFitterTask");
LoadBranches();
Bool_t lowFlux = kFALSE;
UInt_t triggers = 0;
UShort_t ivz = 0;
TVector3 ip;
Double_t cent = 0;
UShort_t nClusters = 0;
UInt_t found = fEventInspector.Process(&esd, triggers, lowFlux,
ivz, ip, cent, nClusters);
if (found & AliFMDEventInspector::kNoEvent) return false;
if (found & AliFMDEventInspector::kNoTriggers) return false;
if (found & AliFMDEventInspector::kNoSPD) return false;
if (found & AliFMDEventInspector::kNoFMD) return false;
if (found & AliFMDEventInspector::kNoVertex) return false;
if (found & AliFMDEventInspector::kBadVertex) return false;
if (triggers & AliAODForwardMult::kPileUp) return false;
if (triggers & AliAODForwardMult::kA) return false;
if (triggers & AliAODForwardMult::kC) return false;
if (triggers & AliAODForwardMult::kE) return false;
if (!(triggers & AliAODForwardMult::kOffline)) return false;
if (fOnlyMB && (!(triggers & AliAODForwardMult::kInel))) return false;
AliESDFMD* esdFMD = esd.GetFMDData();
fESDFixer.Fix(*esdFMD, ip.Z());
if (!fEnergyFitter.Accumulate(*esdFMD, cent,
triggers & AliAODForwardMult::kEmpty)){
AliWarning("Energy fitter failed");
return false;
}
return true;
}
Bool_t
AliFMDEnergyFitterTask::Finalize()
{
DGUARD(fDebug,1,"Processing merged output of AliFMDEnergyFitterTask");
AliInfo("Fitting energy loss spectra");
fEnergyFitter.Fit(fResults);
return true;
}
#define PFB(N,FLAG) \
do { \
AliForwardUtil::PrintName(N); \
std::cout << std::boolalpha << (FLAG) << std::noboolalpha << std::endl; \
} while(false)
void
AliFMDEnergyFitterTask::Print(Option_t* option) const
{
AliBaseESDTask::Print(option);
gROOT->IncreaseDirLevel();
PFB("Only MB", fOnlyMB);
fESDFixer .Print(option);
fEnergyFitter.Print(option);
gROOT->DecreaseDirLevel();
}
AliFMDEnergyFitterTask.cxx:1 AliFMDEnergyFitterTask.cxx:2 AliFMDEnergyFitterTask.cxx:3 AliFMDEnergyFitterTask.cxx:4 AliFMDEnergyFitterTask.cxx:5 AliFMDEnergyFitterTask.cxx:6 AliFMDEnergyFitterTask.cxx:7 AliFMDEnergyFitterTask.cxx:8 AliFMDEnergyFitterTask.cxx:9 AliFMDEnergyFitterTask.cxx:10 AliFMDEnergyFitterTask.cxx:11 AliFMDEnergyFitterTask.cxx:12 AliFMDEnergyFitterTask.cxx:13 AliFMDEnergyFitterTask.cxx:14 AliFMDEnergyFitterTask.cxx:15 AliFMDEnergyFitterTask.cxx:16 AliFMDEnergyFitterTask.cxx:17 AliFMDEnergyFitterTask.cxx:18 AliFMDEnergyFitterTask.cxx:19 AliFMDEnergyFitterTask.cxx:20 AliFMDEnergyFitterTask.cxx:21 AliFMDEnergyFitterTask.cxx:22 AliFMDEnergyFitterTask.cxx:23 AliFMDEnergyFitterTask.cxx:24 AliFMDEnergyFitterTask.cxx:25 AliFMDEnergyFitterTask.cxx:26 AliFMDEnergyFitterTask.cxx:27 AliFMDEnergyFitterTask.cxx:28 AliFMDEnergyFitterTask.cxx:29 AliFMDEnergyFitterTask.cxx:30 AliFMDEnergyFitterTask.cxx:31 AliFMDEnergyFitterTask.cxx:32 AliFMDEnergyFitterTask.cxx:33 AliFMDEnergyFitterTask.cxx:34 AliFMDEnergyFitterTask.cxx:35 AliFMDEnergyFitterTask.cxx:36 AliFMDEnergyFitterTask.cxx:37 AliFMDEnergyFitterTask.cxx:38 AliFMDEnergyFitterTask.cxx:39 AliFMDEnergyFitterTask.cxx:40 AliFMDEnergyFitterTask.cxx:41 AliFMDEnergyFitterTask.cxx:42 AliFMDEnergyFitterTask.cxx:43 AliFMDEnergyFitterTask.cxx:44 AliFMDEnergyFitterTask.cxx:45 AliFMDEnergyFitterTask.cxx:46 AliFMDEnergyFitterTask.cxx:47 AliFMDEnergyFitterTask.cxx:48 AliFMDEnergyFitterTask.cxx:49 AliFMDEnergyFitterTask.cxx:50 AliFMDEnergyFitterTask.cxx:51 AliFMDEnergyFitterTask.cxx:52 AliFMDEnergyFitterTask.cxx:53 AliFMDEnergyFitterTask.cxx:54 AliFMDEnergyFitterTask.cxx:55 AliFMDEnergyFitterTask.cxx:56 AliFMDEnergyFitterTask.cxx:57 AliFMDEnergyFitterTask.cxx:58 AliFMDEnergyFitterTask.cxx:59 AliFMDEnergyFitterTask.cxx:60 AliFMDEnergyFitterTask.cxx:61 AliFMDEnergyFitterTask.cxx:62 AliFMDEnergyFitterTask.cxx:63 AliFMDEnergyFitterTask.cxx:64 AliFMDEnergyFitterTask.cxx:65 AliFMDEnergyFitterTask.cxx:66 AliFMDEnergyFitterTask.cxx:67 AliFMDEnergyFitterTask.cxx:68 AliFMDEnergyFitterTask.cxx:69 AliFMDEnergyFitterTask.cxx:70 AliFMDEnergyFitterTask.cxx:71 AliFMDEnergyFitterTask.cxx:72 AliFMDEnergyFitterTask.cxx:73 AliFMDEnergyFitterTask.cxx:74 AliFMDEnergyFitterTask.cxx:75 AliFMDEnergyFitterTask.cxx:76 AliFMDEnergyFitterTask.cxx:77 AliFMDEnergyFitterTask.cxx:78 AliFMDEnergyFitterTask.cxx:79 AliFMDEnergyFitterTask.cxx:80 AliFMDEnergyFitterTask.cxx:81 AliFMDEnergyFitterTask.cxx:82 AliFMDEnergyFitterTask.cxx:83 AliFMDEnergyFitterTask.cxx:84 AliFMDEnergyFitterTask.cxx:85 AliFMDEnergyFitterTask.cxx:86 AliFMDEnergyFitterTask.cxx:87 AliFMDEnergyFitterTask.cxx:88 AliFMDEnergyFitterTask.cxx:89 AliFMDEnergyFitterTask.cxx:90 AliFMDEnergyFitterTask.cxx:91 AliFMDEnergyFitterTask.cxx:92 AliFMDEnergyFitterTask.cxx:93 AliFMDEnergyFitterTask.cxx:94 AliFMDEnergyFitterTask.cxx:95 AliFMDEnergyFitterTask.cxx:96 AliFMDEnergyFitterTask.cxx:97 AliFMDEnergyFitterTask.cxx:98 AliFMDEnergyFitterTask.cxx:99 AliFMDEnergyFitterTask.cxx:100 AliFMDEnergyFitterTask.cxx:101 AliFMDEnergyFitterTask.cxx:102 AliFMDEnergyFitterTask.cxx:103 AliFMDEnergyFitterTask.cxx:104 AliFMDEnergyFitterTask.cxx:105 AliFMDEnergyFitterTask.cxx:106 AliFMDEnergyFitterTask.cxx:107 AliFMDEnergyFitterTask.cxx:108 AliFMDEnergyFitterTask.cxx:109 AliFMDEnergyFitterTask.cxx:110 AliFMDEnergyFitterTask.cxx:111 AliFMDEnergyFitterTask.cxx:112 AliFMDEnergyFitterTask.cxx:113 AliFMDEnergyFitterTask.cxx:114 AliFMDEnergyFitterTask.cxx:115 AliFMDEnergyFitterTask.cxx:116 AliFMDEnergyFitterTask.cxx:117 AliFMDEnergyFitterTask.cxx:118 AliFMDEnergyFitterTask.cxx:119 AliFMDEnergyFitterTask.cxx:120 AliFMDEnergyFitterTask.cxx:121 AliFMDEnergyFitterTask.cxx:122 AliFMDEnergyFitterTask.cxx:123 AliFMDEnergyFitterTask.cxx:124 AliFMDEnergyFitterTask.cxx:125 AliFMDEnergyFitterTask.cxx:126 AliFMDEnergyFitterTask.cxx:127 AliFMDEnergyFitterTask.cxx:128 AliFMDEnergyFitterTask.cxx:129 AliFMDEnergyFitterTask.cxx:130 AliFMDEnergyFitterTask.cxx:131 AliFMDEnergyFitterTask.cxx:132 AliFMDEnergyFitterTask.cxx:133 AliFMDEnergyFitterTask.cxx:134 AliFMDEnergyFitterTask.cxx:135 AliFMDEnergyFitterTask.cxx:136 AliFMDEnergyFitterTask.cxx:137 AliFMDEnergyFitterTask.cxx:138 AliFMDEnergyFitterTask.cxx:139 AliFMDEnergyFitterTask.cxx:140 AliFMDEnergyFitterTask.cxx:141 AliFMDEnergyFitterTask.cxx:142 AliFMDEnergyFitterTask.cxx:143 AliFMDEnergyFitterTask.cxx:144 AliFMDEnergyFitterTask.cxx:145 AliFMDEnergyFitterTask.cxx:146 AliFMDEnergyFitterTask.cxx:147 AliFMDEnergyFitterTask.cxx:148 AliFMDEnergyFitterTask.cxx:149 AliFMDEnergyFitterTask.cxx:150 AliFMDEnergyFitterTask.cxx:151 AliFMDEnergyFitterTask.cxx:152 AliFMDEnergyFitterTask.cxx:153 AliFMDEnergyFitterTask.cxx:154 AliFMDEnergyFitterTask.cxx:155 AliFMDEnergyFitterTask.cxx:156 AliFMDEnergyFitterTask.cxx:157 AliFMDEnergyFitterTask.cxx:158 AliFMDEnergyFitterTask.cxx:159 AliFMDEnergyFitterTask.cxx:160 AliFMDEnergyFitterTask.cxx:161 AliFMDEnergyFitterTask.cxx:162 AliFMDEnergyFitterTask.cxx:163 AliFMDEnergyFitterTask.cxx:164 AliFMDEnergyFitterTask.cxx:165 AliFMDEnergyFitterTask.cxx:166 AliFMDEnergyFitterTask.cxx:167 AliFMDEnergyFitterTask.cxx:168 AliFMDEnergyFitterTask.cxx:169 AliFMDEnergyFitterTask.cxx:170 AliFMDEnergyFitterTask.cxx:171 AliFMDEnergyFitterTask.cxx:172 AliFMDEnergyFitterTask.cxx:173 AliFMDEnergyFitterTask.cxx:174 AliFMDEnergyFitterTask.cxx:175 AliFMDEnergyFitterTask.cxx:176 AliFMDEnergyFitterTask.cxx:177 AliFMDEnergyFitterTask.cxx:178 AliFMDEnergyFitterTask.cxx:179 AliFMDEnergyFitterTask.cxx:180 AliFMDEnergyFitterTask.cxx:181 AliFMDEnergyFitterTask.cxx:182 AliFMDEnergyFitterTask.cxx:183 AliFMDEnergyFitterTask.cxx:184 AliFMDEnergyFitterTask.cxx:185 AliFMDEnergyFitterTask.cxx:186 AliFMDEnergyFitterTask.cxx:187 AliFMDEnergyFitterTask.cxx:188 AliFMDEnergyFitterTask.cxx:189 AliFMDEnergyFitterTask.cxx:190 AliFMDEnergyFitterTask.cxx:191 AliFMDEnergyFitterTask.cxx:192 AliFMDEnergyFitterTask.cxx:193 AliFMDEnergyFitterTask.cxx:194 AliFMDEnergyFitterTask.cxx:195 AliFMDEnergyFitterTask.cxx:196 AliFMDEnergyFitterTask.cxx:197 AliFMDEnergyFitterTask.cxx:198 AliFMDEnergyFitterTask.cxx:199 AliFMDEnergyFitterTask.cxx:200 AliFMDEnergyFitterTask.cxx:201 AliFMDEnergyFitterTask.cxx:202 AliFMDEnergyFitterTask.cxx:203 AliFMDEnergyFitterTask.cxx:204 AliFMDEnergyFitterTask.cxx:205 AliFMDEnergyFitterTask.cxx:206 AliFMDEnergyFitterTask.cxx:207 AliFMDEnergyFitterTask.cxx:208 AliFMDEnergyFitterTask.cxx:209 AliFMDEnergyFitterTask.cxx:210 AliFMDEnergyFitterTask.cxx:211 AliFMDEnergyFitterTask.cxx:212 AliFMDEnergyFitterTask.cxx:213 AliFMDEnergyFitterTask.cxx:214 AliFMDEnergyFitterTask.cxx:215 AliFMDEnergyFitterTask.cxx:216 AliFMDEnergyFitterTask.cxx:217 AliFMDEnergyFitterTask.cxx:218 AliFMDEnergyFitterTask.cxx:219 AliFMDEnergyFitterTask.cxx:220 AliFMDEnergyFitterTask.cxx:221 AliFMDEnergyFitterTask.cxx:222 AliFMDEnergyFitterTask.cxx:223 AliFMDEnergyFitterTask.cxx:224 AliFMDEnergyFitterTask.cxx:225 AliFMDEnergyFitterTask.cxx:226 AliFMDEnergyFitterTask.cxx:227 AliFMDEnergyFitterTask.cxx:228 AliFMDEnergyFitterTask.cxx:229 AliFMDEnergyFitterTask.cxx:230 AliFMDEnergyFitterTask.cxx:231 AliFMDEnergyFitterTask.cxx:232 AliFMDEnergyFitterTask.cxx:233 AliFMDEnergyFitterTask.cxx:234 AliFMDEnergyFitterTask.cxx:235 AliFMDEnergyFitterTask.cxx:236 AliFMDEnergyFitterTask.cxx:237 AliFMDEnergyFitterTask.cxx:238 AliFMDEnergyFitterTask.cxx:239 AliFMDEnergyFitterTask.cxx:240 AliFMDEnergyFitterTask.cxx:241 AliFMDEnergyFitterTask.cxx:242 AliFMDEnergyFitterTask.cxx:243 AliFMDEnergyFitterTask.cxx:244 AliFMDEnergyFitterTask.cxx:245 AliFMDEnergyFitterTask.cxx:246 AliFMDEnergyFitterTask.cxx:247 AliFMDEnergyFitterTask.cxx:248 AliFMDEnergyFitterTask.cxx:249 AliFMDEnergyFitterTask.cxx:250 AliFMDEnergyFitterTask.cxx:251 AliFMDEnergyFitterTask.cxx:252 AliFMDEnergyFitterTask.cxx:253 AliFMDEnergyFitterTask.cxx:254 AliFMDEnergyFitterTask.cxx:255 AliFMDEnergyFitterTask.cxx:256 AliFMDEnergyFitterTask.cxx:257 AliFMDEnergyFitterTask.cxx:258 AliFMDEnergyFitterTask.cxx:259 AliFMDEnergyFitterTask.cxx:260 AliFMDEnergyFitterTask.cxx:261 AliFMDEnergyFitterTask.cxx:262 AliFMDEnergyFitterTask.cxx:263 AliFMDEnergyFitterTask.cxx:264 AliFMDEnergyFitterTask.cxx:265 AliFMDEnergyFitterTask.cxx:266 AliFMDEnergyFitterTask.cxx:267 AliFMDEnergyFitterTask.cxx:268 AliFMDEnergyFitterTask.cxx:269 AliFMDEnergyFitterTask.cxx:270 AliFMDEnergyFitterTask.cxx:271