35 #include "AliAnalysisManager.h" 38 #include "AliInputEventHandler.h" 40 #include "AliVEvent.h" 46 fTriggerCorrelationHist(
nullptr),
47 fNameTriggerDecisionContainer(
"EmcalTriggerDecision")
67 const std::array<const std::string, 9> kTriggers = {{
"INT7",
"EG1",
"EG2",
"EJ1",
"EJ2",
"DG1",
"DG2",
"DJ1",
"DJ2"}};
68 fTriggerCorrelationHist =
new TH2F(
"hTriggerCorrelationMC",
"Trigger correlation hist", kTriggers.size(), -0.5, kTriggers.size() - 0.5, kTriggers.size(), -0.5, kTriggers.size() - 0.5);
70 for(decltype(kTriggers.size()) itrg = 0; itrg < kTriggers.size(); itrg++){
80 const std::array<const std::string, 9> kTriggers = {{
"INT7",
"EG1",
"EG2",
"EJ1",
"EJ2",
"DG1",
"DG2",
"DJ1",
"DJ2"}};
81 if(!(fInputHandler->IsEventSelected() & AliVEvent::kINT7))
return false;
85 AliErrorStream() <<
"EMCAL trigger decision container with name " <<
fNameTriggerDecisionContainer <<
" not found in the event. Exiting ..." << std::endl;
90 std::bitset<sizeof(Short_t) * 8> triggersSelected = 0;
91 for(decltype(kTriggers.size()) itrg = 0; itrg < kTriggers.size(); itrg++){
92 const auto &triggername = kTriggers[itrg];
93 if(triggername ==
"INT7") triggersSelected.set(itrg,
true);
94 else if(emcaltriggers->IsEventSelected(triggername.data())) triggersSelected.set(itrg,
true);
97 for(decltype(kTriggers.size()) itrg = 0; itrg < kTriggers.size(); itrg++){
98 if(!triggersSelected.test(itrg))
continue;
99 const auto &xlabel = kTriggers[itrg];
100 for(decltype(kTriggers.size()) jtrg = 0; jtrg < kTriggers.size(); jtrg++){
101 if(!triggersSelected.test(jtrg))
continue;
102 const auto &ylabel = kTriggers[jtrg];
110 auto mgr = AliAnalysisManager::GetAnalysisManager();
112 std::cerr <<
"No Analysis Manager found. Exiting ..." << std::endl;
116 std::stringstream tasknamebuilder;
117 tasknamebuilder <<
"EmcalTriggerCorrelationMC";
119 tasknamebuilder <<
"_" <<
suffix;
122 mgr->AddTask(correlationtask);
124 std::stringstream outcontname, outfilename;
125 outcontname <<
"HistosTriggerCorrelationMC";
126 outfilename << mgr->GetCommonFileName() <<
":EmcalTriggerCorrelationMC";
128 outcontname <<
"_" <<
suffix;
129 outfilename <<
"_" <<
suffix;
131 mgr->ConnectInput(correlationtask, 0, mgr->GetCommonInputContainer());
132 mgr->ConnectOutput(correlationtask, 1, mgr->CreateContainer(outcontname.str().data(), TList::Class(), AliAnalysisManager::kOutputContainer, outfilename.str().data()));
134 return correlationtask;
TString fNameTriggerDecisionContainer
Name of the trigger decision container.
Base task in the EMCAL framework.
void SetUseAliAnaUtils(Bool_t b, Bool_t bRejPilup=kTRUE)
AliAnalysisTaskEmcalTriggerCorrelationMC()
TH2 * fTriggerCorrelationHist
! Trigger correlation histogram
virtual ~AliAnalysisTaskEmcalTriggerCorrelationMC()
Container for trigger decision object.
AliEmcalList * fOutput
!output list
virtual bool Run()
Run function. This is the core function of the analysis and contains the user code. Therefore users have to implement this function.
void UserCreateOutputObjects()
Main initialization function on the worker.
static AliAnalysisTaskEmcalTriggerCorrelationMC * AddTaskEmcalTriggerCorrelationMC(const char *suffix)
virtual void UserCreateOutputObjects()