20 #include <TClonesArray.h>
21 #include <THistManager.h>
22 #include <TLorentzVector.h>
25 #include "AliVCluster.h"
26 #include "AliVEvent.h"
37 namespace EMCalTriggerPtAnalysis {
42 AliEMCalTriggerClusterAnalysisComponent::AliEMCalTriggerClusterAnalysisComponent() :
66 std::map<std::string, std::string> triggerCombinations;
81 const TAxis *clusteraxes[5] = {
90 for(std::map<std::string,std::string>::iterator it = triggerCombinations.begin(); it != triggerCombinations.end(); ++it){
91 const std::string name = it->first, &
title = it->second;
92 fHistos->CreateTHnSparse(Form(
"hClusterCalibHist%s", name.c_str()), Form(
"Calib. cluster-based histogram for %s events",
title.c_str()), 5, clusteraxes,
"s");
93 fHistos->CreateTHnSparse(Form(
"hClusterUncalibHist%s", name.c_str()), Form(
"Uncalib. cluster-based histogram for %s events",
title.c_str()), 5, clusteraxes,
"s");
96 for(
int iaxis = 0; iaxis < 5; iaxis++)
delete clusteraxes[iaxis];
106 AliDebug(1, Form(
"Number of calibrated clusters: %d", data->
GetClusterContainer()->GetEntries()));
108 AliVCluster *clust(NULL);
110 std::vector<std::string> triggerNames;
112 for(
int iclust = 0; iclust < recEv->GetNumberOfCaloClusters(); iclust++){
113 clust = recEv->GetCaloCluster(iclust);
114 if(!clust->IsEMCAL())
continue;
116 for(std::vector<std::string>::iterator name = triggerNames.begin(); name != triggerNames.end(); ++name)
122 printf(
"Cluster container not found \n");
124 while((clust = dynamic_cast<AliVCluster *>(clusterIter()))){
125 if(!clust->IsEMCAL())
continue;
127 for(std::vector<std::string>::iterator name = triggerNames.begin(); name != triggerNames.end(); ++name)
142 ev->GetPrimaryVertex()->GetXYZ(xyz);
143 clust->GetMomentum(vec, xyz);
144 double infs[5] = {clust->E(), vec.Eta(), vec.Phi(), xyz[2], inMB ? 1. : 0.};
145 fHistos->FillTHnSparse(histname.Data(), infs);
AliVEvent * GetRecEvent() const
ClassImp(AliAnalysisTaskTriggerRates) AliAnalysisTaskTriggerRates
void FillHistogram(const TString &histname, const AliVCluster *clust, AliVEvent *ev, Bool_t inMB)
void GetMachingTriggerNames(std::vector< std::string > &triggernames) const
AliCutValueRange< double > fEnergyRange
Allowed energy range for the cluster.
bool HasMinBiasTrigger() const
TAxis * DefineAxis(const char *name, const AliEMCalTriggerBinningDimension *binning)
virtual void Process(const AliEMCalTriggerEventData *const data)
void SetLimits(t min, t max)
const TClonesArray * GetClusterContainer() const
Declaration of a management class for trigger classes.
void GetAllTriggerNamesAndTitles(std::map< std::string, std::string > &triggers) const
THistManager * fHistos
Histogram container of the analysis component.
const AliEMCalTriggerAnaClassManager * fTriggerClassManager
Global trigger class manager.
Analysis component for EMCAL clusters.
AliEMCalTriggerBinningDimension * GetBinning(const char *name) const
Base class for analysis components in the analysis of EMCAL-triggered events.
virtual void CreateHistos()
Binning definition for a certain dimension.
AliEMCalTriggerClusterAnalysisComponent()
Declaration of the classes AliEMCalTriggerBinningComponent and AliEMCalTriggerBinningDimension.
Simple event container within the high- track analysis.
const AliEMCalTriggerBinningComponent * fBinning
Global binning handler.
virtual void CreateHistos()
Event Data used in exchange to the different analysis components.
Analysis component for EMCAL clusters in events.
bool IsInRange(t value) const