21 #include <THnSparse.h>
24 #include "AliVEvent.h"
25 #include "AliVVertex.h"
36 namespace EMCalTriggerPtAnalysis {
41 AliEMCalTriggerEventCounterAnalysisComponent::AliEMCalTriggerEventCounterAnalysisComponent():
61 std::map<std::string, std::string> triggerCombinations;
65 std::cout <<
"Event counter component - Found the following triggers:" << std::endl;
66 for(std::map<std::string, std::string>::iterator it = triggerCombinations.begin(); it != triggerCombinations.end(); it++){
67 std::cout << it->first <<
", " << it->second << std::endl;
73 for(std::map<std::string,std::string>::iterator it = triggerCombinations.begin(); it != triggerCombinations.end(); ++it){
74 const std::string name = it->first, &
title = it->second;
80 const TAxis **triggeraxis =
new const TAxis *[triggerCombinations.size()];
81 memset(triggeraxis, 0,
sizeof(
const TAxis *) * triggerCombinations.size());
82 const char *binlabels[2] = {
"OFF",
"ON"};
83 TAxis *mytrgaxis =
new TAxis[triggerCombinations.size()];
84 std::map<std::string, std::string>::iterator trgiter = triggerCombinations.begin();
85 for(
int itrg = 0; itrg < triggerCombinations.size(); ++itrg){
86 DefineAxis(mytrgaxis[itrg], trgiter->first.c_str(), trgiter->first.c_str(), 2, -0.5, 1.5, binlabels);
87 triggeraxis[itrg] = mytrgaxis+itrg;
90 fHistos->
CreateTHnSparse(
"hEventTriggers",
"Trigger type per event", triggerCombinations.size(), triggeraxis);
103 double vz = data->
GetRecEvent()->GetPrimaryVertex()->GetZ();
105 memset(triggerCorrelation.GetArray(), 0,
sizeof(double) * triggerCorrelation.GetSize());
107 std::vector<std::string> triggernames;
110 THnSparse *correlationhist =
dynamic_cast<THnSparse *
>(
fHistos->
FindObject(
"hEventTriggers"));
111 for(std::vector<std::string>::iterator it = triggernames.begin(); it != triggernames.end(); it++){
114 int idim =
FindAxis(correlationhist, it->c_str());
115 if(idim >= 0) triggerCorrelation[idim] = 1.;
118 if(correlationhist) correlationhist->Fill(triggerCorrelation.GetArray());
133 const char*
title,
int nbins,
double min,
double max,
134 const char** labels)
const {
135 axis.Set(nbins, min, max);
137 axis.SetTitle(title);
139 for(
int ib = 1; ib <= axis.GetNbins(); ++ib)
140 axis.SetBinLabel(ib, labels[ib-1]);
145 Int_t naxis = hist->GetNdimensions();
147 for(
int idim = 0; idim < naxis; idim++){
148 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
int GetNumberOfBins() const
Event counter analysis component for the trigger analysis.
AliEMCalTriggerEventCounterAnalysisComponent()
Declaration of a management class for trigger classes.
TObject * FindObject(const char *name) const
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="")
THistManager * fHistos
Histogram container of the analysis component.
const AliEMCalTriggerAnaClassManager * fTriggerClassManager
Global trigger class manager.
AliEMCalTriggerBinningDimension * GetBinning(const char *name) const
void FillTH1(const char *hname, double x, double weight=1., Option_t *opt="")
Base class for analysis components in the analysis of EMCAL-triggered events.
Binning definition for a certain dimension.
ClassImp(AliAnalysisTaskCRC) AliAnalysisTaskCRC
const double * GetBinLimits() const
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="")
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.