#include <TClonesArray.h>
#include <TArrayI.h>
#include <THashList.h>
#include "AliAODCaloTrigger.h"
#include "AliEMCALGeometry.h"
#include "AliEmcalTriggerPatchInfo.h"
#include "AliEmcalTriggerSetupInfo.h"
#include "AliLog.h"
#include "AliVCaloCells.h"
#include "AliVCaloTrigger.h"
#include "AliVVZERO.h"
#include "AliEmcalTriggerMaker.h"
#include "THistManager.h"
#include "TString.h"
ClassImp(AliEmcalTriggerMaker)
using namespace std;
const TString AliEmcalTriggerMaker::fgkTriggerTypeNames[5] = {"EJE", "EGA", "EL0", "REJE", "REGA"};
AliEmcalTriggerMaker::AliEmcalTriggerMaker() :
AliAnalysisTaskEmcal("AliEmcalTriggerMaker",kFALSE),
fCaloTriggersOutName("EmcalTriggers"),
fCaloTriggerSetupOutName("EmcalTriggersSetup"),
fV0InName("AliAODVZERO"),
fUseTriggerBitConfig(kNewConfig),
fTriggerBitConfig(NULL),
fCaloTriggersOut(0),
fCaloTriggerSetupOut(0),
fSimpleOfflineTriggers(0),
fV0(0),
fITrigger(0),
fDoQA(kFALSE),
fQAHistos(NULL)
{
fRunTriggerType[kTMEMCalJet] = kTRUE;
fRunTriggerType[kTMEMCalGamma] = kTRUE;
fRunTriggerType[kTMEMCalLevel0] = kTRUE;
fRunTriggerType[kTMEMCalRecalcJet] = kTRUE;
fRunTriggerType[kTMEMCalRecalcGamma] = kTRUE;
memset(fThresholdConstants, 0, sizeof(Int_t) * 12);
memset(fPatchADCSimple, 0, sizeof(Double_t) * kPatchCols * kPatchRows);
memset(fPatchADC, 0, sizeof(Int_t) * kPatchCols * kPatchRows);
}
AliEmcalTriggerMaker::AliEmcalTriggerMaker(const char *name, Bool_t doQA) :
AliAnalysisTaskEmcal(name,doQA),
fCaloTriggersOutName("EmcalTriggers"),
fCaloTriggerSetupOutName("EmcalTriggersSetup"),
fV0InName("AliAODVZERO"),
fUseTriggerBitConfig(kNewConfig),
fTriggerBitConfig(NULL),
fCaloTriggersOut(0),
fCaloTriggerSetupOut(0),
fSimpleOfflineTriggers(0),
fV0(0),
fITrigger(0),
fDoQA(doQA),
fQAHistos(NULL)
{
fRunTriggerType[kTMEMCalJet] = kTRUE;
fRunTriggerType[kTMEMCalGamma] = kTRUE;
fRunTriggerType[kTMEMCalLevel0] = kTRUE;
fRunTriggerType[kTMEMCalRecalcJet] = kTRUE;
fRunTriggerType[kTMEMCalRecalcGamma] = kTRUE;
memset(fThresholdConstants, 0, sizeof(Int_t) * 12);
memset(fPatchADCSimple, 0, sizeof(Double_t) * kPatchCols * kPatchRows);
memset(fPatchADC, 0, sizeof(Int_t) * kPatchCols * kPatchRows);
}
AliEmcalTriggerMaker::~AliEmcalTriggerMaker()
{
if(fTriggerBitConfig) delete fTriggerBitConfig;
}
void AliEmcalTriggerMaker::ExecOnce()
{
AliAnalysisTaskEmcal::ExecOnce();
if (!fInitialized)
return;
if(!fTriggerBitConfig){
switch(fUseTriggerBitConfig){
case kNewConfig:
fTriggerBitConfig = new AliEmcalTriggerBitConfigNew();
break;
case kOldConfig:
fTriggerBitConfig = new AliEmcalTriggerBitConfigOld();
break;
}
}
if (!fCaloTriggersOutName.IsNull()) {
fCaloTriggersOut = new TClonesArray("AliEmcalTriggerPatchInfo");
fCaloTriggersOut->SetName(fCaloTriggersOutName);
if (!(InputEvent()->FindListObject(fCaloTriggersOutName))) {
InputEvent()->AddObject(fCaloTriggersOut);
}
else {
fInitialized = kFALSE;
AliFatal(Form("%s: Container with same name %s already present. Aborting", GetName(), fCaloTriggersOutName.Data()));
return;
}
}
if (!fCaloTriggerSetupOutName.IsNull()) {
fCaloTriggerSetupOut = new AliEmcalTriggerSetupInfo();
fCaloTriggerSetupOut->SetName(fCaloTriggerSetupOutName);
if (!(InputEvent()->FindListObject(fCaloTriggerSetupOutName))) {
InputEvent()->AddObject(fCaloTriggerSetupOut);
}
else {
fInitialized = kFALSE;
AliFatal(Form("%s: Container with same name %s already present. Aborting", GetName(), fCaloTriggerSetupOutName.Data()));
return;
}
}
if ( ! fV0InName.IsNull()) {
fV0 = (AliVVZERO*)InputEvent()->FindListObject(fV0InName);
}
fSimpleOfflineTriggers = new AliAODCaloTrigger();
fSimpleOfflineTriggers->Allocate(0);
}
void AliEmcalTriggerMaker::UserCreateOutputObjects()
{
AliAnalysisTaskEmcal::UserCreateOutputObjects();
if(fDoQA && fOutput){
fQAHistos = new THistManager("TriggerQA");
for(int itype = 0; itype < 5; itype++){
fQAHistos->CreateTH2(Form("RCPos%s", fgkTriggerTypeNames[itype].Data()), Form("Lower edge position of %s patches (col-row)", fgkTriggerTypeNames[itype].Data()), 48, -0.5, 47.5, 64, -0.5, 63.5);
fQAHistos->CreateTH2(Form("EPCentPos%s", fgkTriggerTypeNames[itype].Data()), Form("Center position of the %s trigger patches", fgkTriggerTypeNames[itype].Data()), 20, -0.8, 0.8, 100, 1., 4.);
fQAHistos->CreateTH2(Form("PatchADCvsE%s", fgkTriggerTypeNames[itype].Data()), Form("Patch ADC value for trigger type %s", fgkTriggerTypeNames[itype].Data()), 200, 0., 200, 200, 0., 200);
}
fQAHistos->CreateTH1("triggerBitsAll", "Trigger bits for all incoming patches", 64, -0.5, 63.5);
fQAHistos->CreateTH1("triggerBitsSel", "Trigger bits for reconstructed patches", 64, -0.5, 63.5);
fOutput->Add(fQAHistos->GetListOfHistograms());
PostData(1, fOutput);
}
}
Bool_t AliEmcalTriggerMaker::Run()
{
AliEmcalTriggerPatchInfo *trigger, *triggerMainJet, *triggerMainGamma, *triggerMainLevel0;
AliEmcalTriggerPatchInfo *triggerMainJetSimple, *triggerMainGammaSimple;
fCaloTriggersOut->Delete();
fCaloTriggerSetupOut->Clean();
if (!fCaloTriggers) {
AliError(Form("Calo triggers container %s not available.", fCaloTriggersName.Data()));
return kTRUE;
}
if (!fCaloCells) {
AliError(Form("Calo cells container %s not available.", fCaloCellsName.Data()));
return kTRUE;
}
if (!fCaloCells) {
AliError(Form("V0 container %s not available.", fV0InName.Data()));
return kTRUE;
}
if( InputEvent()->GetRunNumber() < 167693 )
return kTRUE;
fCaloTriggers->Reset();
if (fCaloTriggers->GetEntries() > 0) {
memset(fPatchADC, 0, sizeof(Int_t) * kPatchCols * kPatchRows);
while (fCaloTriggers->Next()) {
Int_t globCol=-1, globRow=-1;
fCaloTriggers->GetPosition(globCol, globRow);
Int_t adcAmp=-1;
fCaloTriggers->GetL1TimeSum(adcAmp);
if (adcAmp>-1)
fPatchADC[globCol][globRow] = adcAmp;
}
}
memset(fPatchADCSimple, 0, sizeof(Double_t) * kPatchRows * kPatchCols);
Int_t nCell = fCaloCells->GetNumberOfCells();
for(Int_t iCell = 0; iCell < nCell; ++iCell) {
Short_t cellId = fCaloCells->GetCellNumber(iCell);
Double_t amp = fCaloCells->GetAmplitude(iCell);
Int_t absId=-1;
fGeom->GetFastORIndexFromCellIndex(cellId, absId);
Int_t globCol=-1, globRow=-1;
fGeom->GetPositionInEMCALFromAbsFastORIndex(absId, globCol, globRow);
fPatchADCSimple[globCol][globRow] += amp/kEMCL1ADCtoGeV;
}
fCaloTriggerSetupOut->SetThresholds(fCaloTriggers->GetL1Threshold(0),
fCaloTriggers->GetL1Threshold(1),
fCaloTriggers->GetL1Threshold(2),
fCaloTriggers->GetL1Threshold(3));
Int_t v0[2];
v0[0] = fV0->GetTriggerChargeA();
v0[1] = fV0->GetTriggerChargeC();
ULong64_t v0S = v0[0] + v0[1];
fSimpleOfflineTriggers->SetL1V0(v0);
for (Int_t i = 0; i < 4; ++i) {
ULong64_t thresh = ( ((ULong64_t)fThresholdConstants[i][0]) * v0S * v0S ) >> 32;
thresh += ( ((ULong64_t)fThresholdConstants[i][1]) * v0S ) >> 16;
thresh += ((ULong64_t)fThresholdConstants[i][2]);
fSimpleOfflineTriggers->SetL1Threshold(i,thresh);
}
fCaloTriggerSetupOut->SetThresholdsSimple(fSimpleOfflineTriggers->GetL1Threshold(0),
fSimpleOfflineTriggers->GetL1Threshold(1),
fSimpleOfflineTriggers->GetL1Threshold(2),
fSimpleOfflineTriggers->GetL1Threshold(3));
RunSimpleOfflineTrigger();
fCaloTriggers->Reset();
fSimpleOfflineTriggers->Reset();
if (fCaloTriggers->GetEntries() > 0 || fSimpleOfflineTriggers->GetEntries() > 0) {
fITrigger = 0;
triggerMainGamma = 0;
triggerMainJet = 0;
triggerMainGammaSimple = 0;
triggerMainJetSimple = 0;
triggerMainLevel0 = 0;
Bool_t isOfflineSimple=0;
while (NextTrigger(isOfflineSimple)) {
if(fRunTriggerType[kTMEMCalJet]){
trigger = ProcessPatch(kTMEMCalJet, isOfflineSimple);
if (trigger != 0) {
if (!isOfflineSimple) {
if (triggerMainJet == 0 || (triggerMainJet->GetPatchE() < trigger->GetPatchE()))
triggerMainJet = trigger;
} else {
if (triggerMainJetSimple == 0 || (triggerMainJetSimple->GetPatchE() < trigger->GetPatchE()))
triggerMainJetSimple = trigger;
}
}
}
if(fRunTriggerType[kTMEMCalGamma]){
trigger = ProcessPatch(kTMEMCalGamma, isOfflineSimple);
if (trigger != 0) {
if (!isOfflineSimple) {
if (triggerMainGamma == 0 || (triggerMainGamma->GetPatchE() < trigger->GetPatchE()))
triggerMainGamma = trigger;
} else {
if (triggerMainGammaSimple == 0 || (triggerMainGammaSimple->GetPatchE() < trigger->GetPatchE()))
triggerMainGammaSimple = trigger;
}
}
}
if(fRunTriggerType[kTMEMCalLevel0]){
trigger = ProcessPatch(kTMEMCalLevel0, isOfflineSimple);
if (trigger) {
if (!triggerMainLevel0 || (triggerMainLevel0->GetPatchE() < trigger->GetPatchE()))
triggerMainLevel0 = trigger;
}
}
if(fRunTriggerType[kTMEMCalRecalcJet])
ProcessPatch(kTMEMCalRecalcJet, isOfflineSimple);
if(fRunTriggerType[kTMEMCalRecalcGamma])
ProcessPatch(kTMEMCalRecalcGamma, isOfflineSimple);
}
if (triggerMainJet != 0) {
Int_t tBits = triggerMainJet->GetTriggerBits();
tBits = tBits | ( 1 << AliEmcalTriggerPatchInfo::kMainTriggerBitNum );
triggerMainJet->SetTriggerBits( tBits );
}
if (triggerMainJetSimple != 0) {
Int_t tBits = triggerMainJetSimple->GetTriggerBits();
tBits = tBits | ( 1 << AliEmcalTriggerPatchInfo::kMainTriggerBitNum );
triggerMainJetSimple->SetTriggerBits(tBits);
}
if (triggerMainGamma != 0) {
Int_t tBits = triggerMainGamma->GetTriggerBits();
tBits = tBits | ( 1 << AliEmcalTriggerPatchInfo::kMainTriggerBitNum );
triggerMainGamma->SetTriggerBits( tBits );
}
if (triggerMainGammaSimple != 0) {
Int_t tBits = triggerMainGammaSimple->GetTriggerBits();
tBits = tBits | ( 1 << AliEmcalTriggerPatchInfo::kMainTriggerBitNum );
triggerMainGammaSimple->SetTriggerBits( tBits );
}
if(triggerMainLevel0){
Int_t tBits = triggerMainLevel0->GetTriggerBits();
tBits |= (1 << AliEmcalTriggerPatchInfo::kMainTriggerBitNum);
triggerMainLevel0->SetTriggerBits(tBits);
}
}
return kTRUE;
}
AliEmcalTriggerPatchInfo* AliEmcalTriggerMaker::ProcessPatch(TriggerMakerTriggerType_t type, Bool_t isOfflineSimple)
{
Int_t tBits=-1;
if (!isOfflineSimple)
fCaloTriggers->GetTriggerBits(tBits);
else
fSimpleOfflineTriggers->GetTriggerBits(tBits);
if(fDoQA){
for(unsigned int ibit = 0; ibit < sizeof(tBits)*8; ibit++) {
if(tBits & (1 << ibit)){
fQAHistos->FillTH1("triggerBitsAll", ibit);
}
}
}
if ((type == kTMEMCalJet && !IsEJE( tBits )) ||
(type == kTMEMCalGamma && !IsEGA( tBits )) ||
(type == kTMEMCalLevel0 && !(CheckForL0(*fCaloTriggers))) ||
(type == kTMEMCalRecalcJet && (tBits & (1 << AliEmcalTriggerPatchInfo::kRecalcJetBitNum))==0) ||
(type == kTMEMCalRecalcGamma && (tBits & (1 << AliEmcalTriggerPatchInfo::kRecalcGammaBitNum))==0) )
return 0;
TVector3 vertex;
vertex.SetXYZ(fVertex[0], fVertex[1], fVertex[2]);
Int_t globCol=-1, globRow=-1;
if (!isOfflineSimple)
fCaloTriggers->GetPosition(globCol,globRow);
else
fSimpleOfflineTriggers->GetPosition(globCol, globRow);
Int_t absId=-1;
fGeom->GetAbsFastORIndexFromPositionInEMCAL(globCol, globRow, absId);
Int_t cellAbsId[4]={-1,-1,-1,-1};
fGeom->GetCellIndexFromFastORIndex(absId, cellAbsId);
TVector3 edge1;
fGeom->GetGlobal(cellAbsId[0], edge1);
Float_t amp = 0;
Float_t cmiCol = 0;
Float_t cmiRow = 0;
Int_t adcAmp = 0;
Double_t adcOfflineAmp = 0;
int nfastor = (type == kTMEMCalJet || type == kTMEMCalRecalcJet) ? 16 : 2;
for (Int_t i = 0; i < nfastor; ++i) {
for (Int_t j = 0; j < nfastor; ++j) {
fGeom->GetAbsFastORIndexFromPositionInEMCAL(globCol+i, globRow+j, absId);
fGeom->GetCellIndexFromFastORIndex(absId, cellAbsId);
for (Int_t k = 0; k < 4; ++k) {
Float_t ca = fCaloCells->GetCellAmplitude(cellAbsId[k]);
amp += ca;
cmiCol += ca*(Float_t)i;
cmiRow += ca*(Float_t)j;
}
if(type == kTMEMCalLevel0){
adcAmp += fPatchADC[globCol+i][globRow+j] * 4;
} else
adcAmp += fPatchADC[globCol+i][globRow+j];
adcOfflineAmp += fPatchADCSimple[globCol+i][globRow+j];
}
}
if (amp == 0) {
AliDebug(2,"EMCal trigger patch with 0 energy.");
return 0;
}
cmiCol /= amp;
cmiRow /= amp;
Int_t cmCol = globCol + (Int_t)cmiCol;
Int_t cmRow = globRow + (Int_t)cmiRow;
fGeom->GetAbsFastORIndexFromPositionInEMCAL( cmCol, cmRow, absId );
fGeom->GetCellIndexFromFastORIndex( absId, cellAbsId );
Int_t cmiCellCol = TMath::Nint(cmiCol * 2.);
Int_t cmiCellRow = TMath::Nint(cmiRow * 2.);
TVector3 centerMass;
fGeom->GetGlobal(cellAbsId[(cmiCellRow%2)*2 + cmiCellCol%2], centerMass);
Int_t posOffset=-1;
switch(type){
case kTMEMCalJet:
case kTMEMCalRecalcJet:
posOffset = 15;
break;
case kTMEMCalGamma:
case kTMEMCalRecalcGamma:
posOffset = 1;
break;
case kTMEMCalLevel0:
posOffset = 1;
break;
default:
posOffset = 0;
break;
};
fGeom->GetAbsFastORIndexFromPositionInEMCAL(globCol+posOffset, globRow+posOffset, absId);
fGeom->GetCellIndexFromFastORIndex(absId, cellAbsId);
TVector3 edge2;
fGeom->GetGlobal(cellAbsId[3], edge2);
switch(type){
case kTMEMCalJet:
case kTMEMCalRecalcJet:
posOffset = 7;
break;
case kTMEMCalGamma:
case kTMEMCalRecalcGamma:
posOffset = 0;
break;
case kTMEMCalLevel0:
posOffset = 0;
break;
default:
posOffset = 0;
break;
};
fGeom->GetAbsFastORIndexFromPositionInEMCAL(globCol+posOffset, globRow+posOffset, absId);
fGeom->GetCellIndexFromFastORIndex(absId, cellAbsId);
TVector3 center1;
fGeom->GetGlobal(cellAbsId[3], center1);
switch(type){
case kTMEMCalJet:
case kTMEMCalRecalcJet:
posOffset = 8;
break;
case kTMEMCalGamma:
case kTMEMCalRecalcGamma:
posOffset = 1;
break;
case kTMEMCalLevel0:
posOffset = 1;
break;
};
fGeom->GetAbsFastORIndexFromPositionInEMCAL(globCol+posOffset, globRow+posOffset, absId);
fGeom->GetCellIndexFromFastORIndex(absId, cellAbsId);
TVector3 center2;
fGeom->GetGlobal(cellAbsId[0], center2);
TVector3 centerGeo(center1);
centerGeo += center2;
centerGeo *= 0.5;
centerGeo -= vertex;
centerMass -= vertex;
edge1 -= vertex;
edge2 -= vertex;
Int_t isMC = MCEvent() ? 1 : 0;
Int_t offSet = (1 - isMC) * fTriggerBitConfig->GetTriggerTypesEnd();
switch(type){
case kTMEMCalJet:
tBits = tBits & ~( 1 << (fTriggerBitConfig->GetTriggerTypesEnd() + fTriggerBitConfig->GetGammaLowBit()) | 1 << (fTriggerBitConfig->GetTriggerTypesEnd() + fTriggerBitConfig->GetGammaHighBit()) |
1 << (fTriggerBitConfig->GetGammaLowBit()) | 1 << (fTriggerBitConfig->GetGammaHighBit()) |
1 << (fTriggerBitConfig->GetTriggerTypesEnd() + fTriggerBitConfig->GetLevel0Bit()) | 1 << (fTriggerBitConfig->GetLevel0Bit()));
break;
case kTMEMCalGamma:
tBits = tBits & ~( 1 << (fTriggerBitConfig->GetTriggerTypesEnd() + fTriggerBitConfig->GetJetLowBit()) | 1 << (fTriggerBitConfig->GetTriggerTypesEnd() + fTriggerBitConfig->GetJetHighBit()) |
1 << (fTriggerBitConfig->GetJetLowBit()) | 1 << (fTriggerBitConfig->GetJetHighBit()) |
1 << (fTriggerBitConfig->GetTriggerTypesEnd() + fTriggerBitConfig->GetLevel0Bit()) | 1 << (fTriggerBitConfig->GetLevel0Bit()));
break;
case kTMEMCalLevel0:
tBits |= 1 << (offSet + fTriggerBitConfig->GetLevel0Bit());
tBits = tBits & ~( 1 << (fTriggerBitConfig->GetTriggerTypesEnd() + fTriggerBitConfig->GetJetLowBit()) | 1 << (fTriggerBitConfig->GetTriggerTypesEnd() + fTriggerBitConfig->GetJetHighBit()) |
1 << (fTriggerBitConfig->GetJetLowBit()) | 1 << (fTriggerBitConfig->GetJetHighBit()) | 1 << (fTriggerBitConfig->GetTriggerTypesEnd() + fTriggerBitConfig->GetGammaLowBit()) |
1 << (fTriggerBitConfig->GetTriggerTypesEnd() + fTriggerBitConfig->GetGammaHighBit()) | 1 << (fTriggerBitConfig->GetGammaLowBit()) | 1 << (fTriggerBitConfig->GetGammaHighBit()));
break;
default:
break;
};
AliEmcalTriggerPatchInfo *trigger =
new ((*fCaloTriggersOut)[fITrigger]) AliEmcalTriggerPatchInfo();
fITrigger++;
trigger->SetTriggerBitConfig(fTriggerBitConfig);
trigger->SetCenterGeo(centerGeo, amp);
trigger->SetCenterMass(centerMass, amp);
trigger->SetEdge1(edge1, amp);
trigger->SetEdge2(edge2, amp);
trigger->SetADCAmp(adcAmp);
trigger->SetADCOfflineAmp(Int_t(adcOfflineAmp));
trigger->SetTriggerBits(tBits);
trigger->SetOffSet(offSet);
trigger->SetEdgeCell(globCol*2, globRow*2);
if(fDoQA){
fQAHistos->FillTH2(Form("RCPos%s", fgkTriggerTypeNames[type].Data()), globCol, globRow);
fQAHistos->FillTH2(Form("EPCentPos%s", fgkTriggerTypeNames[type].Data()), centerGeo.Eta(), centerGeo.Phi());
fQAHistos->FillTH2(Form("PatchADCvsE%s", fgkTriggerTypeNames[type].Data()), adcAmp, trigger->GetPatchE());
for(unsigned int ibit = 0; ibit < sizeof(tBits)*8; ibit++) {
if(tBits & (1 << ibit)){
fQAHistos->FillTH1("triggerBitsSel", ibit);
}
}
}
return trigger;
}
void AliEmcalTriggerMaker::RunSimpleOfflineTrigger()
{
TArrayI tBitsArray(4), rowArray(4), colArray(4);
tBitsArray[0] = 1 << AliEmcalTriggerPatchInfo::kRecalcJetBitNum;
colArray[0] = -1;
rowArray[0] = -1;
tBitsArray[1] = 1 << AliEmcalTriggerPatchInfo::kRecalcJetBitNum | 1 << AliEmcalTriggerPatchInfo::kSimpleOfflineBitNum;
colArray[1] = -1;
rowArray[1] = -1;
tBitsArray[2] = 1 << AliEmcalTriggerPatchInfo::kRecalcGammaBitNum;
colArray[2] = -1;
rowArray[2] = -1;
tBitsArray[3] = 1 << AliEmcalTriggerPatchInfo::kRecalcGammaBitNum | 1 << AliEmcalTriggerPatchInfo::kSimpleOfflineBitNum;
colArray[3] = -1;
rowArray[3] = -1;
Double_t maxPatchADCoffline = -1;
Int_t maxPatchADC = -1;
Int_t maxCol = 48;
Int_t maxRow = fGeom->GetNTotalTRU()*2;
for (Int_t i = 0; i < (maxCol-16); i += 4) {
for (Int_t j = 0; j < (maxRow-16); j += 4) {
Double_t tSumOffline = 0;
Int_t tSum = 0;
Int_t tBits = 0;
for (Int_t k = 0; k < 16; ++k) {
for (Int_t l = 0; l < 16; ++l) {
tSumOffline += fPatchADCSimple[i+k][j+l];
tSum += (ULong64_t)fPatchADC[i+k][j+l];
}
}
if (tSum > maxPatchADC) {
maxPatchADC = tSum;
colArray[0] = i;
rowArray[0] = j;
}
if (tSumOffline > maxPatchADCoffline) {
maxPatchADCoffline = tSumOffline;
colArray[1] = i;
rowArray[1] = j;
}
if (tSumOffline > fCaloTriggerSetupOut->GetThresholdJetLowSimple())
tBits = tBits | ( 1 << ( fTriggerBitConfig->GetTriggerTypesEnd() + fTriggerBitConfig->GetJetLowBit() ));
if (tSumOffline > fCaloTriggerSetupOut->GetThresholdJetHighSimple())
tBits = tBits | ( 1 << ( fTriggerBitConfig->GetTriggerTypesEnd() + fTriggerBitConfig->GetJetHighBit() ));
if (tBits != 0) {
tBits = tBits | ( 1 << AliEmcalTriggerPatchInfo::kSimpleOfflineBitNum );
tBitsArray.Set( tBitsArray.GetSize() + 1 );
colArray.Set( colArray.GetSize() + 1 );
rowArray.Set( rowArray.GetSize() + 1 );
tBitsArray[tBitsArray.GetSize()-1] = tBits;
colArray[colArray.GetSize()-1] = i;
rowArray[rowArray.GetSize()-1] = j;
}
}
}
maxPatchADC = -1;
maxPatchADCoffline = -1;
for (Int_t i = 0; i < (maxCol-2); ++i) {
for (Int_t j = 0; j < (maxRow-2); ++j) {
Int_t tSum = 0;
Double_t tSumOffline = 0;
Int_t tBits = 0;
for (Int_t k = 0; k < 2; ++k) {
for (Int_t l = 0; l < 2; ++l) {
tSumOffline += fPatchADCSimple[i+k][j+l];
tSum += (ULong64_t)fPatchADC[i+k][j+l];
}
}
if (tSum > maxPatchADC) {
maxPatchADC = tSum;
colArray[2] = i;
rowArray[2] = j;
}
if (tSumOffline > maxPatchADCoffline) {
maxPatchADCoffline = tSumOffline;
colArray[3] = i;
rowArray[3] = j;
}
if (tSumOffline > fCaloTriggerSetupOut->GetThresholdGammaLowSimple())
tBits = tBits | ( 1 << ( fTriggerBitConfig->GetTriggerTypesEnd() + fTriggerBitConfig->GetGammaLowBit() ));
if (tSumOffline > fCaloTriggerSetupOut->GetThresholdGammaHighSimple())
tBits = tBits | ( 1 << ( fTriggerBitConfig->GetTriggerTypesEnd() + fTriggerBitConfig->GetGammaHighBit() ));
if (tBits != 0) {
tBits = tBits | ( 1 << AliEmcalTriggerPatchInfo::kSimpleOfflineBitNum );
tBitsArray.Set( tBitsArray.GetSize() + 1 );
colArray.Set( colArray.GetSize() + 1 );
rowArray.Set( rowArray.GetSize() + 1 );
tBitsArray[tBitsArray.GetSize()-1] = tBits;
colArray[colArray.GetSize()-1] = i;
rowArray[rowArray.GetSize()-1] = j;
}
}
}
fSimpleOfflineTriggers->DeAllocate();
fSimpleOfflineTriggers->Allocate(tBitsArray.GetSize());
for (Int_t i = 0; i < tBitsArray.GetSize(); ++i){
fSimpleOfflineTriggers->Add(colArray[i],rowArray[i], 0, 0, 0, 0, 0, tBitsArray[i]);
}
}
Bool_t AliEmcalTriggerMaker::NextTrigger(Bool_t &isOfflineSimple)
{
isOfflineSimple = kFALSE;
Bool_t loopContinue = fCaloTriggers->Next();
if (!loopContinue) {
loopContinue = fSimpleOfflineTriggers->Next();
isOfflineSimple = kTRUE;
}
return loopContinue;
}
Bool_t AliEmcalTriggerMaker::CheckForL0(const AliVCaloTrigger& trg) const {
if(MCEvent()){
Int_t tbits(-1);
trg.GetTriggerBits(tbits);
return tbits & (1 << fTriggerBitConfig->GetLevel0Bit());
} else {
Int_t nl0times(0);
Bool_t l0fired(kFALSE);
trg.GetNL0Times(nl0times);
if(nl0times){
TArrayI l0times(nl0times);
trg.GetL0Times(l0times.GetArray());
for(Int_t *l0timeIter = l0times.GetArray(); l0timeIter < l0times.GetArray() + l0times.GetSize(); l0timeIter++){
if(*l0timeIter > 7 && *l0timeIter < 10){
l0fired = kTRUE;
break;
}
}
}
return l0fired;
}
}
AliEmcalTriggerMaker.cxx:1 AliEmcalTriggerMaker.cxx:2 AliEmcalTriggerMaker.cxx:3 AliEmcalTriggerMaker.cxx:4 AliEmcalTriggerMaker.cxx:5 AliEmcalTriggerMaker.cxx:6 AliEmcalTriggerMaker.cxx:7 AliEmcalTriggerMaker.cxx:8 AliEmcalTriggerMaker.cxx:9 AliEmcalTriggerMaker.cxx:10 AliEmcalTriggerMaker.cxx:11 AliEmcalTriggerMaker.cxx:12 AliEmcalTriggerMaker.cxx:13 AliEmcalTriggerMaker.cxx:14 AliEmcalTriggerMaker.cxx:15 AliEmcalTriggerMaker.cxx:16 AliEmcalTriggerMaker.cxx:17 AliEmcalTriggerMaker.cxx:18 AliEmcalTriggerMaker.cxx:19 AliEmcalTriggerMaker.cxx:20 AliEmcalTriggerMaker.cxx:21 AliEmcalTriggerMaker.cxx:22 AliEmcalTriggerMaker.cxx:23 AliEmcalTriggerMaker.cxx:24 AliEmcalTriggerMaker.cxx:25 AliEmcalTriggerMaker.cxx:26 AliEmcalTriggerMaker.cxx:27 AliEmcalTriggerMaker.cxx:28 AliEmcalTriggerMaker.cxx:29 AliEmcalTriggerMaker.cxx:30 AliEmcalTriggerMaker.cxx:31 AliEmcalTriggerMaker.cxx:32 AliEmcalTriggerMaker.cxx:33 AliEmcalTriggerMaker.cxx:34 AliEmcalTriggerMaker.cxx:35 AliEmcalTriggerMaker.cxx:36 AliEmcalTriggerMaker.cxx:37 AliEmcalTriggerMaker.cxx:38 AliEmcalTriggerMaker.cxx:39 AliEmcalTriggerMaker.cxx:40 AliEmcalTriggerMaker.cxx:41 AliEmcalTriggerMaker.cxx:42 AliEmcalTriggerMaker.cxx:43 AliEmcalTriggerMaker.cxx:44 AliEmcalTriggerMaker.cxx:45 AliEmcalTriggerMaker.cxx:46 AliEmcalTriggerMaker.cxx:47 AliEmcalTriggerMaker.cxx:48 AliEmcalTriggerMaker.cxx:49 AliEmcalTriggerMaker.cxx:50 AliEmcalTriggerMaker.cxx:51 AliEmcalTriggerMaker.cxx:52 AliEmcalTriggerMaker.cxx:53 AliEmcalTriggerMaker.cxx:54 AliEmcalTriggerMaker.cxx:55 AliEmcalTriggerMaker.cxx:56 AliEmcalTriggerMaker.cxx:57 AliEmcalTriggerMaker.cxx:58 AliEmcalTriggerMaker.cxx:59 AliEmcalTriggerMaker.cxx:60 AliEmcalTriggerMaker.cxx:61 AliEmcalTriggerMaker.cxx:62 AliEmcalTriggerMaker.cxx:63 AliEmcalTriggerMaker.cxx:64 AliEmcalTriggerMaker.cxx:65 AliEmcalTriggerMaker.cxx:66 AliEmcalTriggerMaker.cxx:67 AliEmcalTriggerMaker.cxx:68 AliEmcalTriggerMaker.cxx:69 AliEmcalTriggerMaker.cxx:70 AliEmcalTriggerMaker.cxx:71 AliEmcalTriggerMaker.cxx:72 AliEmcalTriggerMaker.cxx:73 AliEmcalTriggerMaker.cxx:74 AliEmcalTriggerMaker.cxx:75 AliEmcalTriggerMaker.cxx:76 AliEmcalTriggerMaker.cxx:77 AliEmcalTriggerMaker.cxx:78 AliEmcalTriggerMaker.cxx:79 AliEmcalTriggerMaker.cxx:80 AliEmcalTriggerMaker.cxx:81 AliEmcalTriggerMaker.cxx:82 AliEmcalTriggerMaker.cxx:83 AliEmcalTriggerMaker.cxx:84 AliEmcalTriggerMaker.cxx:85 AliEmcalTriggerMaker.cxx:86 AliEmcalTriggerMaker.cxx:87 AliEmcalTriggerMaker.cxx:88 AliEmcalTriggerMaker.cxx:89 AliEmcalTriggerMaker.cxx:90 AliEmcalTriggerMaker.cxx:91 AliEmcalTriggerMaker.cxx:92 AliEmcalTriggerMaker.cxx:93 AliEmcalTriggerMaker.cxx:94 AliEmcalTriggerMaker.cxx:95 AliEmcalTriggerMaker.cxx:96 AliEmcalTriggerMaker.cxx:97 AliEmcalTriggerMaker.cxx:98 AliEmcalTriggerMaker.cxx:99 AliEmcalTriggerMaker.cxx:100 AliEmcalTriggerMaker.cxx:101 AliEmcalTriggerMaker.cxx:102 AliEmcalTriggerMaker.cxx:103 AliEmcalTriggerMaker.cxx:104 AliEmcalTriggerMaker.cxx:105 AliEmcalTriggerMaker.cxx:106 AliEmcalTriggerMaker.cxx:107 AliEmcalTriggerMaker.cxx:108 AliEmcalTriggerMaker.cxx:109 AliEmcalTriggerMaker.cxx:110 AliEmcalTriggerMaker.cxx:111 AliEmcalTriggerMaker.cxx:112 AliEmcalTriggerMaker.cxx:113 AliEmcalTriggerMaker.cxx:114 AliEmcalTriggerMaker.cxx:115 AliEmcalTriggerMaker.cxx:116 AliEmcalTriggerMaker.cxx:117 AliEmcalTriggerMaker.cxx:118 AliEmcalTriggerMaker.cxx:119 AliEmcalTriggerMaker.cxx:120 AliEmcalTriggerMaker.cxx:121 AliEmcalTriggerMaker.cxx:122 AliEmcalTriggerMaker.cxx:123 AliEmcalTriggerMaker.cxx:124 AliEmcalTriggerMaker.cxx:125 AliEmcalTriggerMaker.cxx:126 AliEmcalTriggerMaker.cxx:127 AliEmcalTriggerMaker.cxx:128 AliEmcalTriggerMaker.cxx:129 AliEmcalTriggerMaker.cxx:130 AliEmcalTriggerMaker.cxx:131 AliEmcalTriggerMaker.cxx:132 AliEmcalTriggerMaker.cxx:133 AliEmcalTriggerMaker.cxx:134 AliEmcalTriggerMaker.cxx:135 AliEmcalTriggerMaker.cxx:136 AliEmcalTriggerMaker.cxx:137 AliEmcalTriggerMaker.cxx:138 AliEmcalTriggerMaker.cxx:139 AliEmcalTriggerMaker.cxx:140 AliEmcalTriggerMaker.cxx:141 AliEmcalTriggerMaker.cxx:142 AliEmcalTriggerMaker.cxx:143 AliEmcalTriggerMaker.cxx:144 AliEmcalTriggerMaker.cxx:145 AliEmcalTriggerMaker.cxx:146 AliEmcalTriggerMaker.cxx:147 AliEmcalTriggerMaker.cxx:148 AliEmcalTriggerMaker.cxx:149 AliEmcalTriggerMaker.cxx:150 AliEmcalTriggerMaker.cxx:151 AliEmcalTriggerMaker.cxx:152 AliEmcalTriggerMaker.cxx:153 AliEmcalTriggerMaker.cxx:154 AliEmcalTriggerMaker.cxx:155 AliEmcalTriggerMaker.cxx:156 AliEmcalTriggerMaker.cxx:157 AliEmcalTriggerMaker.cxx:158 AliEmcalTriggerMaker.cxx:159 AliEmcalTriggerMaker.cxx:160 AliEmcalTriggerMaker.cxx:161 AliEmcalTriggerMaker.cxx:162 AliEmcalTriggerMaker.cxx:163 AliEmcalTriggerMaker.cxx:164 AliEmcalTriggerMaker.cxx:165 AliEmcalTriggerMaker.cxx:166 AliEmcalTriggerMaker.cxx:167 AliEmcalTriggerMaker.cxx:168 AliEmcalTriggerMaker.cxx:169 AliEmcalTriggerMaker.cxx:170 AliEmcalTriggerMaker.cxx:171 AliEmcalTriggerMaker.cxx:172 AliEmcalTriggerMaker.cxx:173 AliEmcalTriggerMaker.cxx:174 AliEmcalTriggerMaker.cxx:175 AliEmcalTriggerMaker.cxx:176 AliEmcalTriggerMaker.cxx:177 AliEmcalTriggerMaker.cxx:178 AliEmcalTriggerMaker.cxx:179 AliEmcalTriggerMaker.cxx:180 AliEmcalTriggerMaker.cxx:181 AliEmcalTriggerMaker.cxx:182 AliEmcalTriggerMaker.cxx:183 AliEmcalTriggerMaker.cxx:184 AliEmcalTriggerMaker.cxx:185 AliEmcalTriggerMaker.cxx:186 AliEmcalTriggerMaker.cxx:187 AliEmcalTriggerMaker.cxx:188 AliEmcalTriggerMaker.cxx:189 AliEmcalTriggerMaker.cxx:190 AliEmcalTriggerMaker.cxx:191 AliEmcalTriggerMaker.cxx:192 AliEmcalTriggerMaker.cxx:193 AliEmcalTriggerMaker.cxx:194 AliEmcalTriggerMaker.cxx:195 AliEmcalTriggerMaker.cxx:196 AliEmcalTriggerMaker.cxx:197 AliEmcalTriggerMaker.cxx:198 AliEmcalTriggerMaker.cxx:199 AliEmcalTriggerMaker.cxx:200 AliEmcalTriggerMaker.cxx:201 AliEmcalTriggerMaker.cxx:202 AliEmcalTriggerMaker.cxx:203 AliEmcalTriggerMaker.cxx:204 AliEmcalTriggerMaker.cxx:205 AliEmcalTriggerMaker.cxx:206 AliEmcalTriggerMaker.cxx:207 AliEmcalTriggerMaker.cxx:208 AliEmcalTriggerMaker.cxx:209 AliEmcalTriggerMaker.cxx:210 AliEmcalTriggerMaker.cxx:211 AliEmcalTriggerMaker.cxx:212 AliEmcalTriggerMaker.cxx:213 AliEmcalTriggerMaker.cxx:214 AliEmcalTriggerMaker.cxx:215 AliEmcalTriggerMaker.cxx:216 AliEmcalTriggerMaker.cxx:217 AliEmcalTriggerMaker.cxx:218 AliEmcalTriggerMaker.cxx:219 AliEmcalTriggerMaker.cxx:220 AliEmcalTriggerMaker.cxx:221 AliEmcalTriggerMaker.cxx:222 AliEmcalTriggerMaker.cxx:223 AliEmcalTriggerMaker.cxx:224 AliEmcalTriggerMaker.cxx:225 AliEmcalTriggerMaker.cxx:226 AliEmcalTriggerMaker.cxx:227 AliEmcalTriggerMaker.cxx:228 AliEmcalTriggerMaker.cxx:229 AliEmcalTriggerMaker.cxx:230 AliEmcalTriggerMaker.cxx:231 AliEmcalTriggerMaker.cxx:232 AliEmcalTriggerMaker.cxx:233 AliEmcalTriggerMaker.cxx:234 AliEmcalTriggerMaker.cxx:235 AliEmcalTriggerMaker.cxx:236 AliEmcalTriggerMaker.cxx:237 AliEmcalTriggerMaker.cxx:238 AliEmcalTriggerMaker.cxx:239 AliEmcalTriggerMaker.cxx:240 AliEmcalTriggerMaker.cxx:241 AliEmcalTriggerMaker.cxx:242 AliEmcalTriggerMaker.cxx:243 AliEmcalTriggerMaker.cxx:244 AliEmcalTriggerMaker.cxx:245 AliEmcalTriggerMaker.cxx:246 AliEmcalTriggerMaker.cxx:247 AliEmcalTriggerMaker.cxx:248 AliEmcalTriggerMaker.cxx:249 AliEmcalTriggerMaker.cxx:250 AliEmcalTriggerMaker.cxx:251 AliEmcalTriggerMaker.cxx:252 AliEmcalTriggerMaker.cxx:253 AliEmcalTriggerMaker.cxx:254 AliEmcalTriggerMaker.cxx:255 AliEmcalTriggerMaker.cxx:256 AliEmcalTriggerMaker.cxx:257 AliEmcalTriggerMaker.cxx:258 AliEmcalTriggerMaker.cxx:259 AliEmcalTriggerMaker.cxx:260 AliEmcalTriggerMaker.cxx:261 AliEmcalTriggerMaker.cxx:262 AliEmcalTriggerMaker.cxx:263 AliEmcalTriggerMaker.cxx:264 AliEmcalTriggerMaker.cxx:265 AliEmcalTriggerMaker.cxx:266 AliEmcalTriggerMaker.cxx:267 AliEmcalTriggerMaker.cxx:268 AliEmcalTriggerMaker.cxx:269 AliEmcalTriggerMaker.cxx:270 AliEmcalTriggerMaker.cxx:271 AliEmcalTriggerMaker.cxx:272 AliEmcalTriggerMaker.cxx:273 AliEmcalTriggerMaker.cxx:274 AliEmcalTriggerMaker.cxx:275 AliEmcalTriggerMaker.cxx:276 AliEmcalTriggerMaker.cxx:277 AliEmcalTriggerMaker.cxx:278 AliEmcalTriggerMaker.cxx:279 AliEmcalTriggerMaker.cxx:280 AliEmcalTriggerMaker.cxx:281 AliEmcalTriggerMaker.cxx:282 AliEmcalTriggerMaker.cxx:283 AliEmcalTriggerMaker.cxx:284 AliEmcalTriggerMaker.cxx:285 AliEmcalTriggerMaker.cxx:286 AliEmcalTriggerMaker.cxx:287 AliEmcalTriggerMaker.cxx:288 AliEmcalTriggerMaker.cxx:289 AliEmcalTriggerMaker.cxx:290 AliEmcalTriggerMaker.cxx:291 AliEmcalTriggerMaker.cxx:292 AliEmcalTriggerMaker.cxx:293 AliEmcalTriggerMaker.cxx:294 AliEmcalTriggerMaker.cxx:295 AliEmcalTriggerMaker.cxx:296 AliEmcalTriggerMaker.cxx:297 AliEmcalTriggerMaker.cxx:298 AliEmcalTriggerMaker.cxx:299 AliEmcalTriggerMaker.cxx:300 AliEmcalTriggerMaker.cxx:301 AliEmcalTriggerMaker.cxx:302 AliEmcalTriggerMaker.cxx:303 AliEmcalTriggerMaker.cxx:304 AliEmcalTriggerMaker.cxx:305 AliEmcalTriggerMaker.cxx:306 AliEmcalTriggerMaker.cxx:307 AliEmcalTriggerMaker.cxx:308 AliEmcalTriggerMaker.cxx:309 AliEmcalTriggerMaker.cxx:310 AliEmcalTriggerMaker.cxx:311 AliEmcalTriggerMaker.cxx:312 AliEmcalTriggerMaker.cxx:313 AliEmcalTriggerMaker.cxx:314 AliEmcalTriggerMaker.cxx:315 AliEmcalTriggerMaker.cxx:316 AliEmcalTriggerMaker.cxx:317 AliEmcalTriggerMaker.cxx:318 AliEmcalTriggerMaker.cxx:319 AliEmcalTriggerMaker.cxx:320 AliEmcalTriggerMaker.cxx:321 AliEmcalTriggerMaker.cxx:322 AliEmcalTriggerMaker.cxx:323 AliEmcalTriggerMaker.cxx:324 AliEmcalTriggerMaker.cxx:325 AliEmcalTriggerMaker.cxx:326 AliEmcalTriggerMaker.cxx:327 AliEmcalTriggerMaker.cxx:328 AliEmcalTriggerMaker.cxx:329 AliEmcalTriggerMaker.cxx:330 AliEmcalTriggerMaker.cxx:331 AliEmcalTriggerMaker.cxx:332 AliEmcalTriggerMaker.cxx:333 AliEmcalTriggerMaker.cxx:334 AliEmcalTriggerMaker.cxx:335 AliEmcalTriggerMaker.cxx:336 AliEmcalTriggerMaker.cxx:337 AliEmcalTriggerMaker.cxx:338 AliEmcalTriggerMaker.cxx:339 AliEmcalTriggerMaker.cxx:340 AliEmcalTriggerMaker.cxx:341 AliEmcalTriggerMaker.cxx:342 AliEmcalTriggerMaker.cxx:343 AliEmcalTriggerMaker.cxx:344 AliEmcalTriggerMaker.cxx:345 AliEmcalTriggerMaker.cxx:346 AliEmcalTriggerMaker.cxx:347 AliEmcalTriggerMaker.cxx:348 AliEmcalTriggerMaker.cxx:349 AliEmcalTriggerMaker.cxx:350 AliEmcalTriggerMaker.cxx:351 AliEmcalTriggerMaker.cxx:352 AliEmcalTriggerMaker.cxx:353 AliEmcalTriggerMaker.cxx:354 AliEmcalTriggerMaker.cxx:355 AliEmcalTriggerMaker.cxx:356 AliEmcalTriggerMaker.cxx:357 AliEmcalTriggerMaker.cxx:358 AliEmcalTriggerMaker.cxx:359 AliEmcalTriggerMaker.cxx:360 AliEmcalTriggerMaker.cxx:361 AliEmcalTriggerMaker.cxx:362 AliEmcalTriggerMaker.cxx:363 AliEmcalTriggerMaker.cxx:364 AliEmcalTriggerMaker.cxx:365 AliEmcalTriggerMaker.cxx:366 AliEmcalTriggerMaker.cxx:367 AliEmcalTriggerMaker.cxx:368 AliEmcalTriggerMaker.cxx:369 AliEmcalTriggerMaker.cxx:370 AliEmcalTriggerMaker.cxx:371 AliEmcalTriggerMaker.cxx:372 AliEmcalTriggerMaker.cxx:373 AliEmcalTriggerMaker.cxx:374 AliEmcalTriggerMaker.cxx:375 AliEmcalTriggerMaker.cxx:376 AliEmcalTriggerMaker.cxx:377 AliEmcalTriggerMaker.cxx:378 AliEmcalTriggerMaker.cxx:379 AliEmcalTriggerMaker.cxx:380 AliEmcalTriggerMaker.cxx:381 AliEmcalTriggerMaker.cxx:382 AliEmcalTriggerMaker.cxx:383 AliEmcalTriggerMaker.cxx:384 AliEmcalTriggerMaker.cxx:385 AliEmcalTriggerMaker.cxx:386 AliEmcalTriggerMaker.cxx:387 AliEmcalTriggerMaker.cxx:388 AliEmcalTriggerMaker.cxx:389 AliEmcalTriggerMaker.cxx:390 AliEmcalTriggerMaker.cxx:391 AliEmcalTriggerMaker.cxx:392 AliEmcalTriggerMaker.cxx:393 AliEmcalTriggerMaker.cxx:394 AliEmcalTriggerMaker.cxx:395 AliEmcalTriggerMaker.cxx:396 AliEmcalTriggerMaker.cxx:397 AliEmcalTriggerMaker.cxx:398 AliEmcalTriggerMaker.cxx:399 AliEmcalTriggerMaker.cxx:400 AliEmcalTriggerMaker.cxx:401 AliEmcalTriggerMaker.cxx:402 AliEmcalTriggerMaker.cxx:403 AliEmcalTriggerMaker.cxx:404 AliEmcalTriggerMaker.cxx:405 AliEmcalTriggerMaker.cxx:406 AliEmcalTriggerMaker.cxx:407 AliEmcalTriggerMaker.cxx:408 AliEmcalTriggerMaker.cxx:409 AliEmcalTriggerMaker.cxx:410 AliEmcalTriggerMaker.cxx:411 AliEmcalTriggerMaker.cxx:412 AliEmcalTriggerMaker.cxx:413 AliEmcalTriggerMaker.cxx:414 AliEmcalTriggerMaker.cxx:415 AliEmcalTriggerMaker.cxx:416 AliEmcalTriggerMaker.cxx:417 AliEmcalTriggerMaker.cxx:418 AliEmcalTriggerMaker.cxx:419 AliEmcalTriggerMaker.cxx:420 AliEmcalTriggerMaker.cxx:421 AliEmcalTriggerMaker.cxx:422 AliEmcalTriggerMaker.cxx:423 AliEmcalTriggerMaker.cxx:424 AliEmcalTriggerMaker.cxx:425 AliEmcalTriggerMaker.cxx:426 AliEmcalTriggerMaker.cxx:427 AliEmcalTriggerMaker.cxx:428 AliEmcalTriggerMaker.cxx:429 AliEmcalTriggerMaker.cxx:430 AliEmcalTriggerMaker.cxx:431 AliEmcalTriggerMaker.cxx:432 AliEmcalTriggerMaker.cxx:433 AliEmcalTriggerMaker.cxx:434 AliEmcalTriggerMaker.cxx:435 AliEmcalTriggerMaker.cxx:436 AliEmcalTriggerMaker.cxx:437 AliEmcalTriggerMaker.cxx:438 AliEmcalTriggerMaker.cxx:439 AliEmcalTriggerMaker.cxx:440 AliEmcalTriggerMaker.cxx:441 AliEmcalTriggerMaker.cxx:442 AliEmcalTriggerMaker.cxx:443 AliEmcalTriggerMaker.cxx:444 AliEmcalTriggerMaker.cxx:445 AliEmcalTriggerMaker.cxx:446 AliEmcalTriggerMaker.cxx:447 AliEmcalTriggerMaker.cxx:448 AliEmcalTriggerMaker.cxx:449 AliEmcalTriggerMaker.cxx:450 AliEmcalTriggerMaker.cxx:451 AliEmcalTriggerMaker.cxx:452 AliEmcalTriggerMaker.cxx:453 AliEmcalTriggerMaker.cxx:454 AliEmcalTriggerMaker.cxx:455 AliEmcalTriggerMaker.cxx:456 AliEmcalTriggerMaker.cxx:457 AliEmcalTriggerMaker.cxx:458 AliEmcalTriggerMaker.cxx:459 AliEmcalTriggerMaker.cxx:460 AliEmcalTriggerMaker.cxx:461 AliEmcalTriggerMaker.cxx:462 AliEmcalTriggerMaker.cxx:463 AliEmcalTriggerMaker.cxx:464 AliEmcalTriggerMaker.cxx:465 AliEmcalTriggerMaker.cxx:466 AliEmcalTriggerMaker.cxx:467 AliEmcalTriggerMaker.cxx:468 AliEmcalTriggerMaker.cxx:469 AliEmcalTriggerMaker.cxx:470 AliEmcalTriggerMaker.cxx:471 AliEmcalTriggerMaker.cxx:472 AliEmcalTriggerMaker.cxx:473 AliEmcalTriggerMaker.cxx:474 AliEmcalTriggerMaker.cxx:475 AliEmcalTriggerMaker.cxx:476 AliEmcalTriggerMaker.cxx:477 AliEmcalTriggerMaker.cxx:478 AliEmcalTriggerMaker.cxx:479 AliEmcalTriggerMaker.cxx:480 AliEmcalTriggerMaker.cxx:481 AliEmcalTriggerMaker.cxx:482 AliEmcalTriggerMaker.cxx:483 AliEmcalTriggerMaker.cxx:484 AliEmcalTriggerMaker.cxx:485 AliEmcalTriggerMaker.cxx:486 AliEmcalTriggerMaker.cxx:487 AliEmcalTriggerMaker.cxx:488 AliEmcalTriggerMaker.cxx:489 AliEmcalTriggerMaker.cxx:490 AliEmcalTriggerMaker.cxx:491 AliEmcalTriggerMaker.cxx:492 AliEmcalTriggerMaker.cxx:493 AliEmcalTriggerMaker.cxx:494 AliEmcalTriggerMaker.cxx:495 AliEmcalTriggerMaker.cxx:496 AliEmcalTriggerMaker.cxx:497 AliEmcalTriggerMaker.cxx:498 AliEmcalTriggerMaker.cxx:499 AliEmcalTriggerMaker.cxx:500 AliEmcalTriggerMaker.cxx:501 AliEmcalTriggerMaker.cxx:502 AliEmcalTriggerMaker.cxx:503 AliEmcalTriggerMaker.cxx:504 AliEmcalTriggerMaker.cxx:505 AliEmcalTriggerMaker.cxx:506 AliEmcalTriggerMaker.cxx:507 AliEmcalTriggerMaker.cxx:508 AliEmcalTriggerMaker.cxx:509 AliEmcalTriggerMaker.cxx:510 AliEmcalTriggerMaker.cxx:511 AliEmcalTriggerMaker.cxx:512 AliEmcalTriggerMaker.cxx:513 AliEmcalTriggerMaker.cxx:514 AliEmcalTriggerMaker.cxx:515 AliEmcalTriggerMaker.cxx:516 AliEmcalTriggerMaker.cxx:517 AliEmcalTriggerMaker.cxx:518 AliEmcalTriggerMaker.cxx:519 AliEmcalTriggerMaker.cxx:520 AliEmcalTriggerMaker.cxx:521 AliEmcalTriggerMaker.cxx:522 AliEmcalTriggerMaker.cxx:523 AliEmcalTriggerMaker.cxx:524 AliEmcalTriggerMaker.cxx:525 AliEmcalTriggerMaker.cxx:526 AliEmcalTriggerMaker.cxx:527 AliEmcalTriggerMaker.cxx:528 AliEmcalTriggerMaker.cxx:529 AliEmcalTriggerMaker.cxx:530 AliEmcalTriggerMaker.cxx:531 AliEmcalTriggerMaker.cxx:532 AliEmcalTriggerMaker.cxx:533 AliEmcalTriggerMaker.cxx:534 AliEmcalTriggerMaker.cxx:535 AliEmcalTriggerMaker.cxx:536 AliEmcalTriggerMaker.cxx:537 AliEmcalTriggerMaker.cxx:538 AliEmcalTriggerMaker.cxx:539 AliEmcalTriggerMaker.cxx:540 AliEmcalTriggerMaker.cxx:541 AliEmcalTriggerMaker.cxx:542 AliEmcalTriggerMaker.cxx:543 AliEmcalTriggerMaker.cxx:544 AliEmcalTriggerMaker.cxx:545 AliEmcalTriggerMaker.cxx:546 AliEmcalTriggerMaker.cxx:547 AliEmcalTriggerMaker.cxx:548 AliEmcalTriggerMaker.cxx:549 AliEmcalTriggerMaker.cxx:550 AliEmcalTriggerMaker.cxx:551 AliEmcalTriggerMaker.cxx:552 AliEmcalTriggerMaker.cxx:553 AliEmcalTriggerMaker.cxx:554 AliEmcalTriggerMaker.cxx:555 AliEmcalTriggerMaker.cxx:556 AliEmcalTriggerMaker.cxx:557 AliEmcalTriggerMaker.cxx:558 AliEmcalTriggerMaker.cxx:559 AliEmcalTriggerMaker.cxx:560 AliEmcalTriggerMaker.cxx:561 AliEmcalTriggerMaker.cxx:562 AliEmcalTriggerMaker.cxx:563 AliEmcalTriggerMaker.cxx:564 AliEmcalTriggerMaker.cxx:565 AliEmcalTriggerMaker.cxx:566 AliEmcalTriggerMaker.cxx:567 AliEmcalTriggerMaker.cxx:568 AliEmcalTriggerMaker.cxx:569 AliEmcalTriggerMaker.cxx:570 AliEmcalTriggerMaker.cxx:571 AliEmcalTriggerMaker.cxx:572 AliEmcalTriggerMaker.cxx:573 AliEmcalTriggerMaker.cxx:574 AliEmcalTriggerMaker.cxx:575 AliEmcalTriggerMaker.cxx:576 AliEmcalTriggerMaker.cxx:577 AliEmcalTriggerMaker.cxx:578 AliEmcalTriggerMaker.cxx:579 AliEmcalTriggerMaker.cxx:580 AliEmcalTriggerMaker.cxx:581 AliEmcalTriggerMaker.cxx:582 AliEmcalTriggerMaker.cxx:583 AliEmcalTriggerMaker.cxx:584 AliEmcalTriggerMaker.cxx:585 AliEmcalTriggerMaker.cxx:586 AliEmcalTriggerMaker.cxx:587 AliEmcalTriggerMaker.cxx:588 AliEmcalTriggerMaker.cxx:589 AliEmcalTriggerMaker.cxx:590 AliEmcalTriggerMaker.cxx:591 AliEmcalTriggerMaker.cxx:592 AliEmcalTriggerMaker.cxx:593 AliEmcalTriggerMaker.cxx:594 AliEmcalTriggerMaker.cxx:595 AliEmcalTriggerMaker.cxx:596 AliEmcalTriggerMaker.cxx:597 AliEmcalTriggerMaker.cxx:598 AliEmcalTriggerMaker.cxx:599 AliEmcalTriggerMaker.cxx:600 AliEmcalTriggerMaker.cxx:601 AliEmcalTriggerMaker.cxx:602 AliEmcalTriggerMaker.cxx:603 AliEmcalTriggerMaker.cxx:604 AliEmcalTriggerMaker.cxx:605 AliEmcalTriggerMaker.cxx:606 AliEmcalTriggerMaker.cxx:607 AliEmcalTriggerMaker.cxx:608 AliEmcalTriggerMaker.cxx:609 AliEmcalTriggerMaker.cxx:610 AliEmcalTriggerMaker.cxx:611 AliEmcalTriggerMaker.cxx:612 AliEmcalTriggerMaker.cxx:613 AliEmcalTriggerMaker.cxx:614 AliEmcalTriggerMaker.cxx:615 AliEmcalTriggerMaker.cxx:616 AliEmcalTriggerMaker.cxx:617 AliEmcalTriggerMaker.cxx:618 AliEmcalTriggerMaker.cxx:619 AliEmcalTriggerMaker.cxx:620 AliEmcalTriggerMaker.cxx:621 AliEmcalTriggerMaker.cxx:622 AliEmcalTriggerMaker.cxx:623 AliEmcalTriggerMaker.cxx:624 AliEmcalTriggerMaker.cxx:625 AliEmcalTriggerMaker.cxx:626 AliEmcalTriggerMaker.cxx:627 AliEmcalTriggerMaker.cxx:628 AliEmcalTriggerMaker.cxx:629 AliEmcalTriggerMaker.cxx:630 AliEmcalTriggerMaker.cxx:631 AliEmcalTriggerMaker.cxx:632 AliEmcalTriggerMaker.cxx:633 AliEmcalTriggerMaker.cxx:634 AliEmcalTriggerMaker.cxx:635 AliEmcalTriggerMaker.cxx:636 AliEmcalTriggerMaker.cxx:637 AliEmcalTriggerMaker.cxx:638 AliEmcalTriggerMaker.cxx:639 AliEmcalTriggerMaker.cxx:640 AliEmcalTriggerMaker.cxx:641 AliEmcalTriggerMaker.cxx:642 AliEmcalTriggerMaker.cxx:643 AliEmcalTriggerMaker.cxx:644 AliEmcalTriggerMaker.cxx:645 AliEmcalTriggerMaker.cxx:646 AliEmcalTriggerMaker.cxx:647 AliEmcalTriggerMaker.cxx:648 AliEmcalTriggerMaker.cxx:649 AliEmcalTriggerMaker.cxx:650 AliEmcalTriggerMaker.cxx:651 AliEmcalTriggerMaker.cxx:652 AliEmcalTriggerMaker.cxx:653 AliEmcalTriggerMaker.cxx:654 AliEmcalTriggerMaker.cxx:655 AliEmcalTriggerMaker.cxx:656 AliEmcalTriggerMaker.cxx:657 AliEmcalTriggerMaker.cxx:658 AliEmcalTriggerMaker.cxx:659 AliEmcalTriggerMaker.cxx:660 AliEmcalTriggerMaker.cxx:661 AliEmcalTriggerMaker.cxx:662 AliEmcalTriggerMaker.cxx:663 AliEmcalTriggerMaker.cxx:664 AliEmcalTriggerMaker.cxx:665 AliEmcalTriggerMaker.cxx:666 AliEmcalTriggerMaker.cxx:667 AliEmcalTriggerMaker.cxx:668 AliEmcalTriggerMaker.cxx:669 AliEmcalTriggerMaker.cxx:670 AliEmcalTriggerMaker.cxx:671 AliEmcalTriggerMaker.cxx:672 AliEmcalTriggerMaker.cxx:673 AliEmcalTriggerMaker.cxx:674 AliEmcalTriggerMaker.cxx:675 AliEmcalTriggerMaker.cxx:676 AliEmcalTriggerMaker.cxx:677 AliEmcalTriggerMaker.cxx:678 AliEmcalTriggerMaker.cxx:679 AliEmcalTriggerMaker.cxx:680 AliEmcalTriggerMaker.cxx:681 AliEmcalTriggerMaker.cxx:682 AliEmcalTriggerMaker.cxx:683 AliEmcalTriggerMaker.cxx:684 AliEmcalTriggerMaker.cxx:685 AliEmcalTriggerMaker.cxx:686 AliEmcalTriggerMaker.cxx:687 AliEmcalTriggerMaker.cxx:688 AliEmcalTriggerMaker.cxx:689 AliEmcalTriggerMaker.cxx:690 AliEmcalTriggerMaker.cxx:691 AliEmcalTriggerMaker.cxx:692 AliEmcalTriggerMaker.cxx:693 AliEmcalTriggerMaker.cxx:694 AliEmcalTriggerMaker.cxx:695 AliEmcalTriggerMaker.cxx:696 AliEmcalTriggerMaker.cxx:697 AliEmcalTriggerMaker.cxx:698 AliEmcalTriggerMaker.cxx:699 AliEmcalTriggerMaker.cxx:700 AliEmcalTriggerMaker.cxx:701 AliEmcalTriggerMaker.cxx:702 AliEmcalTriggerMaker.cxx:703 AliEmcalTriggerMaker.cxx:704 AliEmcalTriggerMaker.cxx:705 AliEmcalTriggerMaker.cxx:706 AliEmcalTriggerMaker.cxx:707 AliEmcalTriggerMaker.cxx:708 AliEmcalTriggerMaker.cxx:709 AliEmcalTriggerMaker.cxx:710 AliEmcalTriggerMaker.cxx:711 AliEmcalTriggerMaker.cxx:712 AliEmcalTriggerMaker.cxx:713 AliEmcalTriggerMaker.cxx:714 AliEmcalTriggerMaker.cxx:715 AliEmcalTriggerMaker.cxx:716 AliEmcalTriggerMaker.cxx:717 AliEmcalTriggerMaker.cxx:718 AliEmcalTriggerMaker.cxx:719 AliEmcalTriggerMaker.cxx:720 AliEmcalTriggerMaker.cxx:721 AliEmcalTriggerMaker.cxx:722 AliEmcalTriggerMaker.cxx:723 AliEmcalTriggerMaker.cxx:724 AliEmcalTriggerMaker.cxx:725 AliEmcalTriggerMaker.cxx:726 AliEmcalTriggerMaker.cxx:727 AliEmcalTriggerMaker.cxx:728 AliEmcalTriggerMaker.cxx:729 AliEmcalTriggerMaker.cxx:730 AliEmcalTriggerMaker.cxx:731 AliEmcalTriggerMaker.cxx:732 AliEmcalTriggerMaker.cxx:733 AliEmcalTriggerMaker.cxx:734 AliEmcalTriggerMaker.cxx:735 AliEmcalTriggerMaker.cxx:736 AliEmcalTriggerMaker.cxx:737 AliEmcalTriggerMaker.cxx:738 AliEmcalTriggerMaker.cxx:739 AliEmcalTriggerMaker.cxx:740 AliEmcalTriggerMaker.cxx:741 AliEmcalTriggerMaker.cxx:742 AliEmcalTriggerMaker.cxx:743 AliEmcalTriggerMaker.cxx:744 AliEmcalTriggerMaker.cxx:745 AliEmcalTriggerMaker.cxx:746 AliEmcalTriggerMaker.cxx:747 AliEmcalTriggerMaker.cxx:748 AliEmcalTriggerMaker.cxx:749 AliEmcalTriggerMaker.cxx:750 AliEmcalTriggerMaker.cxx:751 AliEmcalTriggerMaker.cxx:752 AliEmcalTriggerMaker.cxx:753 AliEmcalTriggerMaker.cxx:754 AliEmcalTriggerMaker.cxx:755 AliEmcalTriggerMaker.cxx:756 AliEmcalTriggerMaker.cxx:757 AliEmcalTriggerMaker.cxx:758 AliEmcalTriggerMaker.cxx:759 AliEmcalTriggerMaker.cxx:760 AliEmcalTriggerMaker.cxx:761 AliEmcalTriggerMaker.cxx:762 AliEmcalTriggerMaker.cxx:763 AliEmcalTriggerMaker.cxx:764 AliEmcalTriggerMaker.cxx:765 AliEmcalTriggerMaker.cxx:766 AliEmcalTriggerMaker.cxx:767 AliEmcalTriggerMaker.cxx:768 AliEmcalTriggerMaker.cxx:769 AliEmcalTriggerMaker.cxx:770 AliEmcalTriggerMaker.cxx:771 AliEmcalTriggerMaker.cxx:772 AliEmcalTriggerMaker.cxx:773 AliEmcalTriggerMaker.cxx:774 AliEmcalTriggerMaker.cxx:775 AliEmcalTriggerMaker.cxx:776 AliEmcalTriggerMaker.cxx:777 AliEmcalTriggerMaker.cxx:778 AliEmcalTriggerMaker.cxx:779 AliEmcalTriggerMaker.cxx:780 AliEmcalTriggerMaker.cxx:781 AliEmcalTriggerMaker.cxx:782 AliEmcalTriggerMaker.cxx:783 AliEmcalTriggerMaker.cxx:784 AliEmcalTriggerMaker.cxx:785 AliEmcalTriggerMaker.cxx:786 AliEmcalTriggerMaker.cxx:787 AliEmcalTriggerMaker.cxx:788 AliEmcalTriggerMaker.cxx:789 AliEmcalTriggerMaker.cxx:790 AliEmcalTriggerMaker.cxx:791 AliEmcalTriggerMaker.cxx:792 AliEmcalTriggerMaker.cxx:793 AliEmcalTriggerMaker.cxx:794 AliEmcalTriggerMaker.cxx:795 AliEmcalTriggerMaker.cxx:796 AliEmcalTriggerMaker.cxx:797 AliEmcalTriggerMaker.cxx:798 AliEmcalTriggerMaker.cxx:799 AliEmcalTriggerMaker.cxx:800 AliEmcalTriggerMaker.cxx:801 AliEmcalTriggerMaker.cxx:802 AliEmcalTriggerMaker.cxx:803 AliEmcalTriggerMaker.cxx:804 AliEmcalTriggerMaker.cxx:805 AliEmcalTriggerMaker.cxx:806 AliEmcalTriggerMaker.cxx:807 AliEmcalTriggerMaker.cxx:808 AliEmcalTriggerMaker.cxx:809 AliEmcalTriggerMaker.cxx:810