22 #include <THnSparse.h>
25 #include "AliVEvent.h"
26 #include "AliVVertex.h"
37 namespace EMCalTriggerPtAnalysis {
42 AliEMCalTriggerEventCounterAnalysisComponent::AliEMCalTriggerEventCounterAnalysisComponent():
62 std::map<std::string, std::string> triggerCombinations;
66 std::cout <<
"Event counter component - Found the following triggers:" << std::endl;
67 for(std::map<std::string, std::string>::iterator it = triggerCombinations.begin(); it != triggerCombinations.end(); it++){
68 std::cout << it->first <<
", " << it->second << std::endl;
74 for(std::map<std::string,std::string>::iterator it = triggerCombinations.begin(); it != triggerCombinations.end(); ++it){
75 const std::string name = it->first, &
title = it->second;
77 fHistos->
CreateTH1(Form(
"hEventHist%s", name.c_str()), Form(
"Event-based data for %s events; pileup rejection; z_{V} (cm)",
title.c_str()), *vertexbinning);
81 const TAxis **triggeraxis =
new const TAxis *[triggerCombinations.size()];
82 memset(triggeraxis, 0,
sizeof(
const TAxis *) * triggerCombinations.size());
83 const char *binlabels[2] = {
"OFF",
"ON"};
84 TAxis *mytrgaxis =
new TAxis[triggerCombinations.size()];
85 std::map<std::string, std::string>::iterator trgiter = triggerCombinations.begin();
86 for(
int itrg = 0; itrg < triggerCombinations.size(); ++itrg){
87 DefineAxis(mytrgaxis[itrg], trgiter->first.c_str(), trgiter->first.c_str(), 2, -0.5, 1.5, binlabels);
88 triggeraxis[itrg] = mytrgaxis+itrg;
91 fHistos->
CreateTHnSparse(
"hEventTriggers",
"Trigger type per event", triggerCombinations.size(), triggeraxis);
104 double vz = data->
GetRecEvent()->GetPrimaryVertex()->GetZ();
106 memset(triggerCorrelation.GetArray(), 0,
sizeof(double) * triggerCorrelation.GetSize());
108 std::vector<std::string> triggernames;
111 THnSparse *correlationhist =
dynamic_cast<THnSparse *
>(
fHistos->
FindObject(
"hEventTriggers"));
112 for(std::vector<std::string>::iterator it = triggernames.begin(); it != triggernames.end(); it++){
115 int idim =
FindAxis(correlationhist, it->c_str());
116 if(idim >= 0) triggerCorrelation[idim] = 1.;
119 if(correlationhist) correlationhist->Fill(triggerCorrelation.GetArray());
134 const char*
title,
int nbins,
double min,
double max,
135 const char** labels)
const {
136 axis.Set(nbins, min, max);
138 axis.SetTitle(title);
140 for(
int ib = 1; ib <= axis.GetNbins(); ++ib)
141 axis.SetBinLabel(ib, labels[ib-1]);
146 Int_t naxis = hist->GetNdimensions();
148 for(
int idim = 0; idim < naxis; idim++){
149 if(!
TString(hist->GetAxis(idim)->GetName()).CompareTo(title)){
AliVEvent * GetRecEvent() const
void GetMachingTriggerNames(std::vector< std::string > &triggernames) const
virtual void CreateHistos()
Int_t FindAxis(THnSparse *hist, const char *title) const
TBinning * GetBinning(const char *name) const
Interface for binnings used by the histogram handler.
Event counter analysis component for the trigger analysis.
AliEMCalTriggerEventCounterAnalysisComponent()
Declaration of a management class for trigger classes.
TObject * FindObject(const char *name) const
Find an object inside the container.
void GetAllTriggerNamesAndTitles(std::map< std::string, std::string > &triggers) const
TH1 * CreateTH1(const char *name, const char *title, int nbins, double xmin, double xmax, Option_t *opt="")
Create a new TH1 within the container.
THistManager * fHistos
Histogram container of the analysis component.
const AliEMCalTriggerAnaClassManager * fTriggerClassManager
Global trigger class manager.
void FillTH1(const char *hname, double x, double weight=1., Option_t *opt="")
Fill a 1D histogram within the container.
Base class for analysis components in the analysis of EMCAL-triggered events.
Simple event container within the high- track analysis.
void DefineAxis(TAxis &axis, const char *name, const char *title, int nbins, double min, double max, const char **labels) const
TObjArray * GetAllTriggerClasses() const
THnSparse * CreateTHnSparse(const char *name, const char *title, int ndim, const int *nbins, const double *min, const double *max, Option_t *opt="")
Create a new THnSparse within the container.
const AliEMCalTriggerBinningComponent * fBinning
Global binning handler.
virtual void Process(const AliEMCalTriggerEventData *const data)
virtual void CreateHistos()
Event Data used in exchange to the different analysis components.
Int_t fComponentDebugLevel
Debug level for the given analysis component.