#include "AliForwardMultiplicityTask.h"
#include "AliTriggerAnalysis.h"
#include "AliPhysicsSelection.h"
#include "AliLog.h"
#include "AliESDEvent.h"
#include "AliAODHandler.h"
#include "AliMultiplicity.h"
#include "AliInputEventHandler.h"
#include "AliForwardCorrectionManager.h"
#include "AliAnalysisManager.h"
#include <TH1.h>
#include <TH3D.h>
#include <TDirectory.h>
#include <TTree.h>
#include <TROOT.h>
#include <TStopwatch.h>
#include <TProfile.h>
#ifndef ENABLE_TIMING
# define MAKE_SW(NAME) do {} while(false)
# define START_SW(NAME) do {} while(false)
# define FILL_SW(NAME,WHICH) do {} while(false)
#else
# define MAKE_SW(NAME) TStopwatch NAME
# define START_SW(NAME) if (fDoTiming) NAME.Start(true)
# define FILL_SW(NAME,WHICH) \
if (fDoTiming) fHTiming->Fill(WHICH,NAME.CpuTime())
#endif
AliForwardMultiplicityTask::AliForwardMultiplicityTask()
: AliForwardMultiplicityBase(),
fESDFMD(),
fEventInspector(),
fESDFixer(),
fSharingFilter(),
fDensityCalculator(),
fCorrections(),
fHistCollector(),
fEventPlaneFinder()
{
DGUARD(fDebug, 3,"Default CTOR of AliForwardMultiplicityTask");
}
AliForwardMultiplicityTask::AliForwardMultiplicityTask(const char* name)
: AliForwardMultiplicityBase(name),
fESDFMD(),
fEventInspector("event"),
fESDFixer("esdFizer"),
fSharingFilter("sharing"),
fDensityCalculator("density"),
fCorrections("corrections"),
fHistCollector("collector"),
fEventPlaneFinder("eventplane")
{
DGUARD(fDebug, 3,"named CTOR of AliForwardMultiplicityTask: %s", name);
}
void
AliForwardMultiplicityTask::SetDoTiming(Bool_t enable)
{
#ifndef ENABLE_TIMING
if (enable)
AliWarning("Timing of task explicitly disabled in compilation");
#else
fDoTiming = enable;
#endif
}
void
AliForwardMultiplicityTask::PreCorrections(const AliESDEvent* esd)
{
if (!esd) return;
AliESDFMD* esdFMD = esd->GetFMDData();
if (!esdFMD) return;
Int_t tgt = GetESDFixer().FindTargetNoiseFactor(*esdFMD, false);
if (tgt <= 0) {
GetESDFixer().SetRecoNoiseFactor(4);
fNeededCorrections ^= AliForwardCorrectionManager::kNoiseGain;
}
else
AliWarning("The noise corrector has been enabled!");
}
Bool_t
AliForwardMultiplicityTask::PreEvent()
{
fHistos.Clear();
fESDFMD.Clear();
fAODFMD.Clear();
fAODEP.Clear();
return true;
}
Bool_t
AliForwardMultiplicityTask::Event(AliESDEvent& esd)
{
MAKE_SW(total);
MAKE_SW(individual);
START_SW(total);
DGUARD(fDebug,1,"Process the input event");
START_SW(individual);
Bool_t lowFlux = kFALSE;
UInt_t triggers = 0;
UShort_t ivz = 0;
TVector3 ip;
Double_t cent = -1;
UShort_t nClusters = 0;
UInt_t found = fEventInspector.Process(&esd, triggers, lowFlux,
ivz, ip, cent, nClusters);
FILL_SW(individual,kTimingEventInspector);
if (found & AliFMDEventInspector::kNoEvent) {
fHStatus->Fill(1);
return false;
}
if (found & AliFMDEventInspector::kNoTriggers) {
fHStatus->Fill(2);
return false;
}
fAODFMD.SetTriggerBits(triggers);
fAODFMD.SetSNN(fEventInspector.GetEnergy());
fAODFMD.SetSystem(fEventInspector.GetCollisionSystem());
fAODFMD.SetCentrality(cent);
fAODFMD.SetNClusters(nClusters);
MarkEventForStore();
if (found & AliFMDEventInspector::kNoFMD) {
fHStatus->Fill(4);
return false;
}
if (found & AliFMDEventInspector::kNoVertex) {
fHStatus->Fill(5);
return false;
}
if (triggers & AliAODForwardMult::kPileUp) {
fHStatus->Fill(6);
return false;
}
fAODFMD.SetIpZ(ip.Z());
if (found & AliFMDEventInspector::kBadVertex) {
fHStatus->Fill(7);
return false;
}
if (!fEnableLowFlux) lowFlux = false;
AliESDFMD* esdFMD = esd.GetFMDData();
GetESDFixer().Fix(*esdFMD, ip.Z());
START_SW(individual);
if (!fSharingFilter.Filter(*esdFMD, lowFlux, fESDFMD, ip.Z())) {
AliWarning("Sharing filter failed!");
fHStatus->Fill(8);
return false;
}
FILL_SW(individual,kTimingSharingFilter);
START_SW(individual);
if (!fDensityCalculator.Calculate(fESDFMD, fHistos, lowFlux, cent, ip)) {
AliWarning("Density calculator failed!");
fHStatus->Fill(9);
return false;
}
FILL_SW(individual,kTimingDensityCalculator);
if (fEventInspector.GetCollisionSystem() == AliFMDEventInspector::kPbPb) {
START_SW(individual);
if (!fEventPlaneFinder.FindEventplane(&esd, fAODEP,
&(fAODFMD.GetHistogram()), &fHistos)){
AliWarning("Eventplane finder failed!");
fHStatus->Fill(10);
}
FILL_SW(individual,kTimingEventPlaneFinder);
}
Int_t nSkip = 0;
for (UShort_t d=1; d<=3; d++) {
for (UShort_t q=0; q<=(d/2); q++) {
TH2D* h = fHistos.Get(d,q == 0 ? 'I' : 'O');
if (h && h->TestBit(AliForwardUtil::kSkipRing)) nSkip++;
}
}
if (nSkip > 0) {
fHStatus->Fill(11);
return false;
}
START_SW(individual);
if (!fCorrections.Correct(fHistos, ivz)) {
AliWarning("Corrections failed");
fHStatus->Fill(12);
return false;
}
FILL_SW(individual,kTimingCorrections);
Bool_t add = (fAODFMD.IsTriggerBits(fAddMask) && nSkip < 1);
START_SW(individual);
if (!fHistCollector.Collect(fHistos,
fRingSums,
ivz,
fAODFMD.GetHistogram(),
fAODFMD.GetCentrality(),
false,
add)) {
AliWarning("Histogram collector failed");
fHStatus->Fill(13);
return false;
}
FILL_SW(individual,kTimingHistCollector);
if (!add) {
fHStatus->Fill(14);
}
else {
fHData->Add(&(fAODFMD.GetHistogram()));
fHStatus->Fill(15);
}
FILL_SW(total,kTimingTotal);
return true;
}
AliForwardMultiplicityTask.cxx:1 AliForwardMultiplicityTask.cxx:2 AliForwardMultiplicityTask.cxx:3 AliForwardMultiplicityTask.cxx:4 AliForwardMultiplicityTask.cxx:5 AliForwardMultiplicityTask.cxx:6 AliForwardMultiplicityTask.cxx:7 AliForwardMultiplicityTask.cxx:8 AliForwardMultiplicityTask.cxx:9 AliForwardMultiplicityTask.cxx:10 AliForwardMultiplicityTask.cxx:11 AliForwardMultiplicityTask.cxx:12 AliForwardMultiplicityTask.cxx:13 AliForwardMultiplicityTask.cxx:14 AliForwardMultiplicityTask.cxx:15 AliForwardMultiplicityTask.cxx:16 AliForwardMultiplicityTask.cxx:17 AliForwardMultiplicityTask.cxx:18 AliForwardMultiplicityTask.cxx:19 AliForwardMultiplicityTask.cxx:20 AliForwardMultiplicityTask.cxx:21 AliForwardMultiplicityTask.cxx:22 AliForwardMultiplicityTask.cxx:23 AliForwardMultiplicityTask.cxx:24 AliForwardMultiplicityTask.cxx:25 AliForwardMultiplicityTask.cxx:26 AliForwardMultiplicityTask.cxx:27 AliForwardMultiplicityTask.cxx:28 AliForwardMultiplicityTask.cxx:29 AliForwardMultiplicityTask.cxx:30 AliForwardMultiplicityTask.cxx:31 AliForwardMultiplicityTask.cxx:32 AliForwardMultiplicityTask.cxx:33 AliForwardMultiplicityTask.cxx:34 AliForwardMultiplicityTask.cxx:35 AliForwardMultiplicityTask.cxx:36 AliForwardMultiplicityTask.cxx:37 AliForwardMultiplicityTask.cxx:38 AliForwardMultiplicityTask.cxx:39 AliForwardMultiplicityTask.cxx:40 AliForwardMultiplicityTask.cxx:41 AliForwardMultiplicityTask.cxx:42 AliForwardMultiplicityTask.cxx:43 AliForwardMultiplicityTask.cxx:44 AliForwardMultiplicityTask.cxx:45 AliForwardMultiplicityTask.cxx:46 AliForwardMultiplicityTask.cxx:47 AliForwardMultiplicityTask.cxx:48 AliForwardMultiplicityTask.cxx:49 AliForwardMultiplicityTask.cxx:50 AliForwardMultiplicityTask.cxx:51 AliForwardMultiplicityTask.cxx:52 AliForwardMultiplicityTask.cxx:53 AliForwardMultiplicityTask.cxx:54 AliForwardMultiplicityTask.cxx:55 AliForwardMultiplicityTask.cxx:56 AliForwardMultiplicityTask.cxx:57 AliForwardMultiplicityTask.cxx:58 AliForwardMultiplicityTask.cxx:59 AliForwardMultiplicityTask.cxx:60 AliForwardMultiplicityTask.cxx:61 AliForwardMultiplicityTask.cxx:62 AliForwardMultiplicityTask.cxx:63 AliForwardMultiplicityTask.cxx:64 AliForwardMultiplicityTask.cxx:65 AliForwardMultiplicityTask.cxx:66 AliForwardMultiplicityTask.cxx:67 AliForwardMultiplicityTask.cxx:68 AliForwardMultiplicityTask.cxx:69 AliForwardMultiplicityTask.cxx:70 AliForwardMultiplicityTask.cxx:71 AliForwardMultiplicityTask.cxx:72 AliForwardMultiplicityTask.cxx:73 AliForwardMultiplicityTask.cxx:74 AliForwardMultiplicityTask.cxx:75 AliForwardMultiplicityTask.cxx:76 AliForwardMultiplicityTask.cxx:77 AliForwardMultiplicityTask.cxx:78 AliForwardMultiplicityTask.cxx:79 AliForwardMultiplicityTask.cxx:80 AliForwardMultiplicityTask.cxx:81 AliForwardMultiplicityTask.cxx:82 AliForwardMultiplicityTask.cxx:83 AliForwardMultiplicityTask.cxx:84 AliForwardMultiplicityTask.cxx:85 AliForwardMultiplicityTask.cxx:86 AliForwardMultiplicityTask.cxx:87 AliForwardMultiplicityTask.cxx:88 AliForwardMultiplicityTask.cxx:89 AliForwardMultiplicityTask.cxx:90 AliForwardMultiplicityTask.cxx:91 AliForwardMultiplicityTask.cxx:92 AliForwardMultiplicityTask.cxx:93 AliForwardMultiplicityTask.cxx:94 AliForwardMultiplicityTask.cxx:95 AliForwardMultiplicityTask.cxx:96 AliForwardMultiplicityTask.cxx:97 AliForwardMultiplicityTask.cxx:98 AliForwardMultiplicityTask.cxx:99 AliForwardMultiplicityTask.cxx:100 AliForwardMultiplicityTask.cxx:101 AliForwardMultiplicityTask.cxx:102 AliForwardMultiplicityTask.cxx:103 AliForwardMultiplicityTask.cxx:104 AliForwardMultiplicityTask.cxx:105 AliForwardMultiplicityTask.cxx:106 AliForwardMultiplicityTask.cxx:107 AliForwardMultiplicityTask.cxx:108 AliForwardMultiplicityTask.cxx:109 AliForwardMultiplicityTask.cxx:110 AliForwardMultiplicityTask.cxx:111 AliForwardMultiplicityTask.cxx:112 AliForwardMultiplicityTask.cxx:113 AliForwardMultiplicityTask.cxx:114 AliForwardMultiplicityTask.cxx:115 AliForwardMultiplicityTask.cxx:116 AliForwardMultiplicityTask.cxx:117 AliForwardMultiplicityTask.cxx:118 AliForwardMultiplicityTask.cxx:119 AliForwardMultiplicityTask.cxx:120 AliForwardMultiplicityTask.cxx:121 AliForwardMultiplicityTask.cxx:122 AliForwardMultiplicityTask.cxx:123 AliForwardMultiplicityTask.cxx:124 AliForwardMultiplicityTask.cxx:125 AliForwardMultiplicityTask.cxx:126 AliForwardMultiplicityTask.cxx:127 AliForwardMultiplicityTask.cxx:128 AliForwardMultiplicityTask.cxx:129 AliForwardMultiplicityTask.cxx:130 AliForwardMultiplicityTask.cxx:131 AliForwardMultiplicityTask.cxx:132 AliForwardMultiplicityTask.cxx:133 AliForwardMultiplicityTask.cxx:134 AliForwardMultiplicityTask.cxx:135 AliForwardMultiplicityTask.cxx:136 AliForwardMultiplicityTask.cxx:137 AliForwardMultiplicityTask.cxx:138 AliForwardMultiplicityTask.cxx:139 AliForwardMultiplicityTask.cxx:140 AliForwardMultiplicityTask.cxx:141 AliForwardMultiplicityTask.cxx:142 AliForwardMultiplicityTask.cxx:143 AliForwardMultiplicityTask.cxx:144 AliForwardMultiplicityTask.cxx:145 AliForwardMultiplicityTask.cxx:146 AliForwardMultiplicityTask.cxx:147 AliForwardMultiplicityTask.cxx:148 AliForwardMultiplicityTask.cxx:149 AliForwardMultiplicityTask.cxx:150 AliForwardMultiplicityTask.cxx:151 AliForwardMultiplicityTask.cxx:152 AliForwardMultiplicityTask.cxx:153 AliForwardMultiplicityTask.cxx:154 AliForwardMultiplicityTask.cxx:155 AliForwardMultiplicityTask.cxx:156 AliForwardMultiplicityTask.cxx:157 AliForwardMultiplicityTask.cxx:158 AliForwardMultiplicityTask.cxx:159 AliForwardMultiplicityTask.cxx:160 AliForwardMultiplicityTask.cxx:161 AliForwardMultiplicityTask.cxx:162 AliForwardMultiplicityTask.cxx:163 AliForwardMultiplicityTask.cxx:164 AliForwardMultiplicityTask.cxx:165 AliForwardMultiplicityTask.cxx:166 AliForwardMultiplicityTask.cxx:167 AliForwardMultiplicityTask.cxx:168 AliForwardMultiplicityTask.cxx:169 AliForwardMultiplicityTask.cxx:170 AliForwardMultiplicityTask.cxx:171 AliForwardMultiplicityTask.cxx:172 AliForwardMultiplicityTask.cxx:173 AliForwardMultiplicityTask.cxx:174 AliForwardMultiplicityTask.cxx:175 AliForwardMultiplicityTask.cxx:176 AliForwardMultiplicityTask.cxx:177 AliForwardMultiplicityTask.cxx:178 AliForwardMultiplicityTask.cxx:179 AliForwardMultiplicityTask.cxx:180 AliForwardMultiplicityTask.cxx:181 AliForwardMultiplicityTask.cxx:182 AliForwardMultiplicityTask.cxx:183 AliForwardMultiplicityTask.cxx:184 AliForwardMultiplicityTask.cxx:185 AliForwardMultiplicityTask.cxx:186 AliForwardMultiplicityTask.cxx:187 AliForwardMultiplicityTask.cxx:188 AliForwardMultiplicityTask.cxx:189 AliForwardMultiplicityTask.cxx:190 AliForwardMultiplicityTask.cxx:191 AliForwardMultiplicityTask.cxx:192 AliForwardMultiplicityTask.cxx:193 AliForwardMultiplicityTask.cxx:194 AliForwardMultiplicityTask.cxx:195 AliForwardMultiplicityTask.cxx:196 AliForwardMultiplicityTask.cxx:197 AliForwardMultiplicityTask.cxx:198 AliForwardMultiplicityTask.cxx:199 AliForwardMultiplicityTask.cxx:200 AliForwardMultiplicityTask.cxx:201 AliForwardMultiplicityTask.cxx:202 AliForwardMultiplicityTask.cxx:203 AliForwardMultiplicityTask.cxx:204 AliForwardMultiplicityTask.cxx:205 AliForwardMultiplicityTask.cxx:206 AliForwardMultiplicityTask.cxx:207 AliForwardMultiplicityTask.cxx:208 AliForwardMultiplicityTask.cxx:209 AliForwardMultiplicityTask.cxx:210 AliForwardMultiplicityTask.cxx:211 AliForwardMultiplicityTask.cxx:212 AliForwardMultiplicityTask.cxx:213 AliForwardMultiplicityTask.cxx:214 AliForwardMultiplicityTask.cxx:215 AliForwardMultiplicityTask.cxx:216 AliForwardMultiplicityTask.cxx:217 AliForwardMultiplicityTask.cxx:218 AliForwardMultiplicityTask.cxx:219 AliForwardMultiplicityTask.cxx:220 AliForwardMultiplicityTask.cxx:221 AliForwardMultiplicityTask.cxx:222 AliForwardMultiplicityTask.cxx:223 AliForwardMultiplicityTask.cxx:224 AliForwardMultiplicityTask.cxx:225 AliForwardMultiplicityTask.cxx:226 AliForwardMultiplicityTask.cxx:227 AliForwardMultiplicityTask.cxx:228 AliForwardMultiplicityTask.cxx:229 AliForwardMultiplicityTask.cxx:230 AliForwardMultiplicityTask.cxx:231 AliForwardMultiplicityTask.cxx:232 AliForwardMultiplicityTask.cxx:233 AliForwardMultiplicityTask.cxx:234 AliForwardMultiplicityTask.cxx:235 AliForwardMultiplicityTask.cxx:236 AliForwardMultiplicityTask.cxx:237 AliForwardMultiplicityTask.cxx:238 AliForwardMultiplicityTask.cxx:239 AliForwardMultiplicityTask.cxx:240 AliForwardMultiplicityTask.cxx:241 AliForwardMultiplicityTask.cxx:242 AliForwardMultiplicityTask.cxx:243 AliForwardMultiplicityTask.cxx:244 AliForwardMultiplicityTask.cxx:245 AliForwardMultiplicityTask.cxx:246 AliForwardMultiplicityTask.cxx:247 AliForwardMultiplicityTask.cxx:248 AliForwardMultiplicityTask.cxx:249 AliForwardMultiplicityTask.cxx:250 AliForwardMultiplicityTask.cxx:251 AliForwardMultiplicityTask.cxx:252 AliForwardMultiplicityTask.cxx:253 AliForwardMultiplicityTask.cxx:254 AliForwardMultiplicityTask.cxx:255 AliForwardMultiplicityTask.cxx:256 AliForwardMultiplicityTask.cxx:257 AliForwardMultiplicityTask.cxx:258 AliForwardMultiplicityTask.cxx:259 AliForwardMultiplicityTask.cxx:260 AliForwardMultiplicityTask.cxx:261 AliForwardMultiplicityTask.cxx:262 AliForwardMultiplicityTask.cxx:263 AliForwardMultiplicityTask.cxx:264 AliForwardMultiplicityTask.cxx:265 AliForwardMultiplicityTask.cxx:266 AliForwardMultiplicityTask.cxx:267 AliForwardMultiplicityTask.cxx:268 AliForwardMultiplicityTask.cxx:269 AliForwardMultiplicityTask.cxx:270 AliForwardMultiplicityTask.cxx:271 AliForwardMultiplicityTask.cxx:272 AliForwardMultiplicityTask.cxx:273 AliForwardMultiplicityTask.cxx:274 AliForwardMultiplicityTask.cxx:275 AliForwardMultiplicityTask.cxx:276 AliForwardMultiplicityTask.cxx:277 AliForwardMultiplicityTask.cxx:278 AliForwardMultiplicityTask.cxx:279 AliForwardMultiplicityTask.cxx:280 AliForwardMultiplicityTask.cxx:281 AliForwardMultiplicityTask.cxx:282 AliForwardMultiplicityTask.cxx:283 AliForwardMultiplicityTask.cxx:284 AliForwardMultiplicityTask.cxx:285 AliForwardMultiplicityTask.cxx:286 AliForwardMultiplicityTask.cxx:287 AliForwardMultiplicityTask.cxx:288 AliForwardMultiplicityTask.cxx:289 AliForwardMultiplicityTask.cxx:290