#include <map>
#include <string>
#include "AliVEvent.h"
#include "AliVVertex.h"
#include "AliEMCalTriggerAnaTriggerDecision.h"
#include "AliEMCalTriggerBinningComponent.h"
#include "AliEMCalTriggerEventData.h"
#include "AliEMCalHistoContainer.h"
#include "AliEMCalTriggerEventCounterAnalysisComponent.h"
ClassImp(EMCalTriggerPtAnalysis::AliEMCalTriggerEventCounterAnalysisComponent)
namespace EMCalTriggerPtAnalysis {
AliEMCalTriggerEventCounterAnalysisComponent::AliEMCalTriggerEventCounterAnalysisComponent():
AliEMCalTriggerTracksAnalysisComponent(),
fUsePatches(kFALSE)
{
}
AliEMCalTriggerEventCounterAnalysisComponent::AliEMCalTriggerEventCounterAnalysisComponent(const char *name):
AliEMCalTriggerTracksAnalysisComponent(name),
fUsePatches(kFALSE)
{
}
void AliEMCalTriggerEventCounterAnalysisComponent::CreateHistos() {
AliEMCalTriggerTracksAnalysisComponent::CreateHistos();
std::map<std::string, std::string> triggerCombinations;
const char *triggernames[11] = {"MinBias", "EMCJHigh", "EMCJLow", "EMCGHigh",
"EMCGLow", "EMCHighBoth", "EMCHighGammaOnly", "EMCHighJetOnly",
"EMCLowBoth", "EMCLowGammaOnly", "EMCLowJetOnly"};
triggerCombinations.insert(std::pair<std::string,std::string>(triggernames[0], "min. bias events"));
triggerCombinations.insert(std::pair<std::string,std::string>(triggernames[1], "jet-triggered events (high threshold)"));
triggerCombinations.insert(std::pair<std::string,std::string>(triggernames[2], "jet-triggered events (low threshold)"));
triggerCombinations.insert(std::pair<std::string,std::string>(triggernames[3], "gamma-triggered events (high threshold)"));
triggerCombinations.insert(std::pair<std::string,std::string>(triggernames[4], "gamma-triggered events (low threshold)"));
triggerCombinations.insert(std::pair<std::string,std::string>(triggernames[5], "jet and gamma triggered events (high threshold)"));
triggerCombinations.insert(std::pair<std::string,std::string>(triggernames[6], "exclusively gamma-triggered events (high threshold)"));
triggerCombinations.insert(std::pair<std::string,std::string>(triggernames[7], "exclusively jet-triggered events (high threshold)"));
triggerCombinations.insert(std::pair<std::string,std::string>(triggernames[8], "jet and gamma triggered events (low threshold)"));
triggerCombinations.insert(std::pair<std::string,std::string>(triggernames[9], "exclusively gamma-triggered events (low threshold)"));
triggerCombinations.insert(std::pair<std::string,std::string>(triggernames[10], "exclusively-triggered events (low threshold)"));
AliEMCalTriggerBinningDimension *vertexbinning = fBinning->GetBinning("zvertex");
for(std::map<std::string,std::string>::iterator it = triggerCombinations.begin(); it != triggerCombinations.end(); ++it){
const std::string name = it->first, &title = it->second;
fHistos->CreateTH1(Form("hEventHist%s", name.c_str()), Form("Event-based data for %s events; pileup rejection; z_{V} (cm)", title.c_str()), vertexbinning->GetNumberOfBins(), vertexbinning->GetBinLimits());
}
const TAxis *triggeraxis[5]; memset(triggeraxis, 0, sizeof(const TAxis *) * 5);
const char *binlabels[2] = {"OFF", "ON"};
TAxis mytrgaxis[5];
for(int itrg = 0; itrg < 5; ++itrg){
DefineAxis(mytrgaxis[itrg], triggernames[itrg], triggernames[itrg], 2, -0.5, 1.5, binlabels);
triggeraxis[itrg] = mytrgaxis+itrg;
}
fHistos->CreateTHnSparse("hEventTriggers", "Trigger type per event", 5, triggeraxis);
}
void AliEMCalTriggerEventCounterAnalysisComponent::Process(const AliEMCalTriggerEventData* const data) {
if(!fTriggerDecision) return;
double vz = data->GetRecEvent()->GetPrimaryVertex()->GetZ();
double triggerCorrelation[5]; memset(triggerCorrelation, 0, sizeof(double) * 5);
if(fTriggerDecision->IsMinBias()){
triggerCorrelation[0] = 1.;
fHistos->FillTH1("hEventHistMinBias", vz);
}
if(fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCJHigh, fUsePatches)){
triggerCorrelation[2] = 1.;
fHistos->FillTH1("hEventHistEMCJHigh", vz);
if(fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCGHigh, fUsePatches)){
fHistos->FillTH1("hEventHistEMCHighBoth", vz);
} else {
fHistos->FillTH1("hEventHistEMCHighJetOnly", vz);
}
}
if(fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCJLow, fUsePatches)){
triggerCorrelation[1] = 1.;
fHistos->FillTH1("hEventHistEMCJLow", vz);
if(fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCGLow, fUsePatches)){
fHistos->FillTH1("hEventHistEMCLowBoth", vz);
} else {
fHistos->FillTH1("hEventHistEMCLowJetOnly", vz);
}
}
if(fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCGHigh, fUsePatches)){
triggerCorrelation[3] = 1.;
fHistos->FillTH1("hEventHistEMCGHigh", vz);
if(!fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCJHigh, fUsePatches))
fHistos->FillTH1("hEventHistEMCHighGammaOnly", vz);
}
if(fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCGLow, fUsePatches)){
triggerCorrelation[4] = 1.;
fHistos->FillTH1("hEventHistEMCGLow", vz);
if(!fTriggerDecision->IsTriggered(AliEMCalTriggerAnaTriggerDecision::kTAEMCJLow, fUsePatches))
fHistos->FillTH1("hEventHistEMCLowGammaOnly", vz);
}
fHistos->FillTHnSparse("hEventTriggers", triggerCorrelation);
}
void AliEMCalTriggerEventCounterAnalysisComponent::DefineAxis(TAxis& axis, const char* name,
const char* title, int nbins, double min, double max,
const char** labels) const {
axis.Set(nbins, min, max);
axis.SetName(name);
axis.SetTitle(title);
if(labels){
for(int ib = 1; ib <= axis.GetNbins(); ++ib)
axis.SetBinLabel(ib, labels[ib-1]);
}
}
}
AliEMCalTriggerEventCounterAnalysisComponent.cxx:1 AliEMCalTriggerEventCounterAnalysisComponent.cxx:2 AliEMCalTriggerEventCounterAnalysisComponent.cxx:3 AliEMCalTriggerEventCounterAnalysisComponent.cxx:4 AliEMCalTriggerEventCounterAnalysisComponent.cxx:5 AliEMCalTriggerEventCounterAnalysisComponent.cxx:6 AliEMCalTriggerEventCounterAnalysisComponent.cxx:7 AliEMCalTriggerEventCounterAnalysisComponent.cxx:8 AliEMCalTriggerEventCounterAnalysisComponent.cxx:9 AliEMCalTriggerEventCounterAnalysisComponent.cxx:10 AliEMCalTriggerEventCounterAnalysisComponent.cxx:11 AliEMCalTriggerEventCounterAnalysisComponent.cxx:12 AliEMCalTriggerEventCounterAnalysisComponent.cxx:13 AliEMCalTriggerEventCounterAnalysisComponent.cxx:14 AliEMCalTriggerEventCounterAnalysisComponent.cxx:15 AliEMCalTriggerEventCounterAnalysisComponent.cxx:16 AliEMCalTriggerEventCounterAnalysisComponent.cxx:17 AliEMCalTriggerEventCounterAnalysisComponent.cxx:18 AliEMCalTriggerEventCounterAnalysisComponent.cxx:19 AliEMCalTriggerEventCounterAnalysisComponent.cxx:20 AliEMCalTriggerEventCounterAnalysisComponent.cxx:21 AliEMCalTriggerEventCounterAnalysisComponent.cxx:22 AliEMCalTriggerEventCounterAnalysisComponent.cxx:23 AliEMCalTriggerEventCounterAnalysisComponent.cxx:24 AliEMCalTriggerEventCounterAnalysisComponent.cxx:25 AliEMCalTriggerEventCounterAnalysisComponent.cxx:26 AliEMCalTriggerEventCounterAnalysisComponent.cxx:27 AliEMCalTriggerEventCounterAnalysisComponent.cxx:28 AliEMCalTriggerEventCounterAnalysisComponent.cxx:29 AliEMCalTriggerEventCounterAnalysisComponent.cxx:30 AliEMCalTriggerEventCounterAnalysisComponent.cxx:31 AliEMCalTriggerEventCounterAnalysisComponent.cxx:32 AliEMCalTriggerEventCounterAnalysisComponent.cxx:33 AliEMCalTriggerEventCounterAnalysisComponent.cxx:34 AliEMCalTriggerEventCounterAnalysisComponent.cxx:35 AliEMCalTriggerEventCounterAnalysisComponent.cxx:36 AliEMCalTriggerEventCounterAnalysisComponent.cxx:37 AliEMCalTriggerEventCounterAnalysisComponent.cxx:38 AliEMCalTriggerEventCounterAnalysisComponent.cxx:39 AliEMCalTriggerEventCounterAnalysisComponent.cxx:40 AliEMCalTriggerEventCounterAnalysisComponent.cxx:41 AliEMCalTriggerEventCounterAnalysisComponent.cxx:42 AliEMCalTriggerEventCounterAnalysisComponent.cxx:43 AliEMCalTriggerEventCounterAnalysisComponent.cxx:44 AliEMCalTriggerEventCounterAnalysisComponent.cxx:45 AliEMCalTriggerEventCounterAnalysisComponent.cxx:46 AliEMCalTriggerEventCounterAnalysisComponent.cxx:47 AliEMCalTriggerEventCounterAnalysisComponent.cxx:48 AliEMCalTriggerEventCounterAnalysisComponent.cxx:49 AliEMCalTriggerEventCounterAnalysisComponent.cxx:50 AliEMCalTriggerEventCounterAnalysisComponent.cxx:51 AliEMCalTriggerEventCounterAnalysisComponent.cxx:52 AliEMCalTriggerEventCounterAnalysisComponent.cxx:53 AliEMCalTriggerEventCounterAnalysisComponent.cxx:54 AliEMCalTriggerEventCounterAnalysisComponent.cxx:55 AliEMCalTriggerEventCounterAnalysisComponent.cxx:56 AliEMCalTriggerEventCounterAnalysisComponent.cxx:57 AliEMCalTriggerEventCounterAnalysisComponent.cxx:58 AliEMCalTriggerEventCounterAnalysisComponent.cxx:59 AliEMCalTriggerEventCounterAnalysisComponent.cxx:60 AliEMCalTriggerEventCounterAnalysisComponent.cxx:61 AliEMCalTriggerEventCounterAnalysisComponent.cxx:62 AliEMCalTriggerEventCounterAnalysisComponent.cxx:63 AliEMCalTriggerEventCounterAnalysisComponent.cxx:64 AliEMCalTriggerEventCounterAnalysisComponent.cxx:65 AliEMCalTriggerEventCounterAnalysisComponent.cxx:66 AliEMCalTriggerEventCounterAnalysisComponent.cxx:67 AliEMCalTriggerEventCounterAnalysisComponent.cxx:68 AliEMCalTriggerEventCounterAnalysisComponent.cxx:69 AliEMCalTriggerEventCounterAnalysisComponent.cxx:70 AliEMCalTriggerEventCounterAnalysisComponent.cxx:71 AliEMCalTriggerEventCounterAnalysisComponent.cxx:72 AliEMCalTriggerEventCounterAnalysisComponent.cxx:73 AliEMCalTriggerEventCounterAnalysisComponent.cxx:74 AliEMCalTriggerEventCounterAnalysisComponent.cxx:75 AliEMCalTriggerEventCounterAnalysisComponent.cxx:76 AliEMCalTriggerEventCounterAnalysisComponent.cxx:77 AliEMCalTriggerEventCounterAnalysisComponent.cxx:78 AliEMCalTriggerEventCounterAnalysisComponent.cxx:79 AliEMCalTriggerEventCounterAnalysisComponent.cxx:80 AliEMCalTriggerEventCounterAnalysisComponent.cxx:81 AliEMCalTriggerEventCounterAnalysisComponent.cxx:82 AliEMCalTriggerEventCounterAnalysisComponent.cxx:83 AliEMCalTriggerEventCounterAnalysisComponent.cxx:84 AliEMCalTriggerEventCounterAnalysisComponent.cxx:85 AliEMCalTriggerEventCounterAnalysisComponent.cxx:86 AliEMCalTriggerEventCounterAnalysisComponent.cxx:87 AliEMCalTriggerEventCounterAnalysisComponent.cxx:88 AliEMCalTriggerEventCounterAnalysisComponent.cxx:89 AliEMCalTriggerEventCounterAnalysisComponent.cxx:90 AliEMCalTriggerEventCounterAnalysisComponent.cxx:91 AliEMCalTriggerEventCounterAnalysisComponent.cxx:92 AliEMCalTriggerEventCounterAnalysisComponent.cxx:93 AliEMCalTriggerEventCounterAnalysisComponent.cxx:94 AliEMCalTriggerEventCounterAnalysisComponent.cxx:95 AliEMCalTriggerEventCounterAnalysisComponent.cxx:96 AliEMCalTriggerEventCounterAnalysisComponent.cxx:97 AliEMCalTriggerEventCounterAnalysisComponent.cxx:98 AliEMCalTriggerEventCounterAnalysisComponent.cxx:99 AliEMCalTriggerEventCounterAnalysisComponent.cxx:100 AliEMCalTriggerEventCounterAnalysisComponent.cxx:101 AliEMCalTriggerEventCounterAnalysisComponent.cxx:102 AliEMCalTriggerEventCounterAnalysisComponent.cxx:103 AliEMCalTriggerEventCounterAnalysisComponent.cxx:104 AliEMCalTriggerEventCounterAnalysisComponent.cxx:105 AliEMCalTriggerEventCounterAnalysisComponent.cxx:106 AliEMCalTriggerEventCounterAnalysisComponent.cxx:107 AliEMCalTriggerEventCounterAnalysisComponent.cxx:108 AliEMCalTriggerEventCounterAnalysisComponent.cxx:109 AliEMCalTriggerEventCounterAnalysisComponent.cxx:110 AliEMCalTriggerEventCounterAnalysisComponent.cxx:111 AliEMCalTriggerEventCounterAnalysisComponent.cxx:112 AliEMCalTriggerEventCounterAnalysisComponent.cxx:113 AliEMCalTriggerEventCounterAnalysisComponent.cxx:114 AliEMCalTriggerEventCounterAnalysisComponent.cxx:115 AliEMCalTriggerEventCounterAnalysisComponent.cxx:116 AliEMCalTriggerEventCounterAnalysisComponent.cxx:117 AliEMCalTriggerEventCounterAnalysisComponent.cxx:118 AliEMCalTriggerEventCounterAnalysisComponent.cxx:119 AliEMCalTriggerEventCounterAnalysisComponent.cxx:120 AliEMCalTriggerEventCounterAnalysisComponent.cxx:121 AliEMCalTriggerEventCounterAnalysisComponent.cxx:122 AliEMCalTriggerEventCounterAnalysisComponent.cxx:123 AliEMCalTriggerEventCounterAnalysisComponent.cxx:124 AliEMCalTriggerEventCounterAnalysisComponent.cxx:125 AliEMCalTriggerEventCounterAnalysisComponent.cxx:126 AliEMCalTriggerEventCounterAnalysisComponent.cxx:127 AliEMCalTriggerEventCounterAnalysisComponent.cxx:128 AliEMCalTriggerEventCounterAnalysisComponent.cxx:129 AliEMCalTriggerEventCounterAnalysisComponent.cxx:130 AliEMCalTriggerEventCounterAnalysisComponent.cxx:131 AliEMCalTriggerEventCounterAnalysisComponent.cxx:132 AliEMCalTriggerEventCounterAnalysisComponent.cxx:133 AliEMCalTriggerEventCounterAnalysisComponent.cxx:134 AliEMCalTriggerEventCounterAnalysisComponent.cxx:135 AliEMCalTriggerEventCounterAnalysisComponent.cxx:136 AliEMCalTriggerEventCounterAnalysisComponent.cxx:137 AliEMCalTriggerEventCounterAnalysisComponent.cxx:138 AliEMCalTriggerEventCounterAnalysisComponent.cxx:139 AliEMCalTriggerEventCounterAnalysisComponent.cxx:140 AliEMCalTriggerEventCounterAnalysisComponent.cxx:141 AliEMCalTriggerEventCounterAnalysisComponent.cxx:142 AliEMCalTriggerEventCounterAnalysisComponent.cxx:143 AliEMCalTriggerEventCounterAnalysisComponent.cxx:144 AliEMCalTriggerEventCounterAnalysisComponent.cxx:145 AliEMCalTriggerEventCounterAnalysisComponent.cxx:146 AliEMCalTriggerEventCounterAnalysisComponent.cxx:147 AliEMCalTriggerEventCounterAnalysisComponent.cxx:148 AliEMCalTriggerEventCounterAnalysisComponent.cxx:149 AliEMCalTriggerEventCounterAnalysisComponent.cxx:150 AliEMCalTriggerEventCounterAnalysisComponent.cxx:151 AliEMCalTriggerEventCounterAnalysisComponent.cxx:152 AliEMCalTriggerEventCounterAnalysisComponent.cxx:153 AliEMCalTriggerEventCounterAnalysisComponent.cxx:154 AliEMCalTriggerEventCounterAnalysisComponent.cxx:155 AliEMCalTriggerEventCounterAnalysisComponent.cxx:156 AliEMCalTriggerEventCounterAnalysisComponent.cxx:157 AliEMCalTriggerEventCounterAnalysisComponent.cxx:158 AliEMCalTriggerEventCounterAnalysisComponent.cxx:159 AliEMCalTriggerEventCounterAnalysisComponent.cxx:160 AliEMCalTriggerEventCounterAnalysisComponent.cxx:161 AliEMCalTriggerEventCounterAnalysisComponent.cxx:162 AliEMCalTriggerEventCounterAnalysisComponent.cxx:163 AliEMCalTriggerEventCounterAnalysisComponent.cxx:164 AliEMCalTriggerEventCounterAnalysisComponent.cxx:165 AliEMCalTriggerEventCounterAnalysisComponent.cxx:166 AliEMCalTriggerEventCounterAnalysisComponent.cxx:167 AliEMCalTriggerEventCounterAnalysisComponent.cxx:168 AliEMCalTriggerEventCounterAnalysisComponent.cxx:169 AliEMCalTriggerEventCounterAnalysisComponent.cxx:170 AliEMCalTriggerEventCounterAnalysisComponent.cxx:171 AliEMCalTriggerEventCounterAnalysisComponent.cxx:172 AliEMCalTriggerEventCounterAnalysisComponent.cxx:173 AliEMCalTriggerEventCounterAnalysisComponent.cxx:174 AliEMCalTriggerEventCounterAnalysisComponent.cxx:175