33 #include "AliAnalysisManager.h" 34 #include "AliAODInputHandler.h" 40 #include "AliInputEventHandler.h" 42 #include "AliVCluster.h" 43 #include "AliVEvent.h" 50 namespace EMCALJetTasks {
53 AliAnalysisTaskEmcalTriggerSelectionTest::AliAnalysisTaskEmcalTriggerSelectionTest():
76 const std::array<TString, 9> EMCALL1TRIGGERS = {
"INT7",
"EG1",
"EG2",
"EJ1",
"EJ2",
"DG1",
"DG2",
"DJ1",
"DJ2"};
79 for(
auto t : EMCALL1TRIGGERS){
80 fHistos->
CreateTH1(Form(
"hEventCount%s", t.Data()), Form(
"Event counter for trigger %s", t.Data()), 1, 0.5, 1.5);
81 fHistos->
CreateTH1(Form(
"hVertexDist%s", t.Data()), Form(
"Vertex distribution for trigger %s", t.Data()), 160, -40., 40);
82 fHistos->
CreateTH1(Form(
"hClusterEnergyNonLinCorr%s", t.Data()), Form(
"Cluster energy corrected for non-linearity for trigger %s", t.Data()), 1000, 0., 100);
91 AliFatal(
"Trigger decision object not found in the event - task cannot run\n");
97 if(fInputHandler->IsEventSelected() & AliVEvent::kINT7)
fSelectedTriggers.push_back(
"INT7");
100 AliDebugStream(2) <<
"Processing decision " << sel->GetName() << std::endl;
102 AliDebugStream(2) <<
"Selected" << std::endl;
119 fHistos->
FillTH1(Form(
"hClusterEnergyNonLinCorr%s", trigger),
c->GetNonLinCorrEnergy());
126 std::cerr <<
"AddTaskEmcalTriggerSelectionTest: Analysis manager not available" << std::endl;
130 TString taskname(
"TriggerSelectionTest"),outfilename(TString::Format(
"%s:TriggerSelectionTest", mgr->GetCommonFileName()));
133 outfilename +=
"_" +
suffix;
137 mgr->AddTask(testtask);
142 mgr->ConnectInput(testtask, 0, mgr->GetCommonInputContainer());
143 mgr->ConnectOutput(testtask, 1, mgr->CreateContainer(Form(
"Histos%s", taskname.Data()), AliEmcalList::Class(), AliAnalysisManager::kOutputContainer, outfilename));
virtual ~AliAnalysisTaskEmcalTriggerSelectionTest()
Container for trigger decision.
static AliAnalysisTaskEmcalTriggerSelectionTest * AddTaskEmcalTriggerSelectionTest(TString suffix)
Base task in the EMCAL framework.
virtual void UserExecOnce()
Task initializations handled in user tasks.
AliAnalysisTaskEmcalTriggerSelectionTest()
AliClusterContainer * AddClusterContainer(const char *n)
Create new cluster container and attach it to the task.
std::vector< TString > fSelectedTriggers
! selected triggers in event
const TList * GetListOfTriggerDecisions() const
Get container with trigger decision results.
THashList * GetListOfHistograms() const
Get the list of histograms.
void SetClusNonLinCorrEnergyCut(Double_t cut)
TH1 * CreateTH1(const char *name, const char *title, int nbins, double xmin, double xmax, Option_t *opt="")
Create a new TH1 within the container.
AliClusterContainer * GetClusterContainer(Int_t i=0) const
Get cluster container attached to this task.
THistManager * fHistos
Histogram handler.
void FillTH1(const char *hname, double x, double weight=1., Option_t *opt="")
Fill a 1D histogram within the container.
Container for trigger decision object.
virtual bool FillHistograms()
Function filling histograms.
AliEmcalList * fOutput
!output list
Double_t fVertex[3]
!event vertex
void SetMakeGeneralHistograms(Bool_t g)
Container class for histograms.
PWG::EMCAL::AliEmcalTriggerDecisionContainer * fTriggerDecision
Trigger decision container (from event)
Bool_t IsSelected() const
Check whether event is selected under the given trigger.
void UserCreateOutputObjects()
Main initialization function on the worker.
void FillHistosForTrigger(const char *triggername)
Container structure for EMCAL clusters.
virtual void UserCreateOutputObjects()
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.
static TString ClusterContainerNameFactory(Bool_t isAOD)
Get name of the default cluster container.