#include "AliEMCALTriggerElectronics.h"
#include "AliEMCALTriggerTRU.h"
#include "AliEMCALTriggerSTU.h"
#include "AliEMCALGeometry.h"
#include "AliRunLoader.h"
#include "AliEMCAL.h"
#include "AliRun.h"
#include "AliEMCALTriggerDCSConfig.h"
#include "AliEMCALTriggerData.h"
#include "AliEMCALDigit.h"
#include "AliCaloRawStreamV3.h"
#include "AliEMCALTriggerSTURawStream.h"
#include "AliEMCALDigit.h"
#include "AliEMCALTriggerRawDigit.h"
#include "AliEMCALTriggerPatch.h"
#include "AliEMCALTriggerSTUDCSConfig.h"
#include <TVector2.h>
namespace
{
const Int_t kNTRU = 32;
}
ClassImp(AliEMCALTriggerElectronics)
AliEMCALTriggerElectronics::AliEMCALTriggerElectronics(const AliEMCALTriggerDCSConfig *dcsConf) : TObject(),
fTRU(new TClonesArray("AliEMCALTriggerTRU",32)),
fSTU(0x0),
fGeometry(0)
{
TVector2 rSize;
rSize.Set( 24., 4. );
AliRunLoader *rl = AliRunLoader::Instance();
if (rl->GetAliRun() && rl->GetAliRun()->GetDetector("EMCAL")) {
AliEMCAL *emcal = dynamic_cast<AliEMCAL*>(rl->GetAliRun()->GetDetector("EMCAL"));
if (emcal) fGeometry = emcal->GetGeometry();
}
if (!fGeometry) {
fGeometry = AliEMCALGeometry::GetInstance(AliEMCALGeometry::GetDefaultGeometryName());
AliError("Cannot access geometry, create a new default one!");
}
for (Int_t i = 0; i < kNTRU; i++) {
if(i>=(fGeometry->GetNTotalTRU())) continue;
AliEMCALTriggerTRUDCSConfig *truConf = dcsConf->GetTRUDCSConfig(fGeometry->GetOnlineIndexFromTRUIndex(i));
if (truConf) new ((*fTRU)[i]) AliEMCALTriggerTRU(truConf, rSize, i % 2);
}
rSize.Set( 48., 64. );
AliEMCALTriggerSTUDCSConfig* stuConf = dcsConf->GetSTUDCSConfig();
fSTU = new AliEMCALTriggerSTU(stuConf, rSize);
TString str = "map";
for (Int_t i = 0; i < kNTRU; i++) {
AliEMCALTriggerTRU *iTRU = static_cast<AliEMCALTriggerTRU*>(fTRU->At(i));
if (!iTRU) continue;
fSTU->Build(str,
i,
iTRU->Map(),
iTRU->RegionSize()
);
}
}
AliEMCALTriggerElectronics::~AliEMCALTriggerElectronics()
{
fTRU->Delete();
delete fSTU;
}
void AliEMCALTriggerElectronics::Digits2Trigger(TClonesArray* digits, const Int_t V0M[], AliEMCALTriggerData* data)
{
Int_t pos, px, py, id;
Int_t region[48][64], posMap[48][64];
for (Int_t i = 0; i < 48; i++) for (Int_t j = 0; j < 64; j++)
{
region[i][j] = 0;
posMap[i][j] = -1;
}
for (Int_t i = 0; i < digits->GetEntriesFast(); i++)
{
AliEMCALTriggerRawDigit* digit = (AliEMCALTriggerRawDigit*)digits->At(i);
id = digit->GetId();
Int_t iTRU, iADC;
Bool_t isOK1 = fGeometry->GetTRUFromAbsFastORIndex(id, iTRU, iADC);
if (!isOK1) continue;
for (Int_t j = 0; j < digit->GetNSamples(); j++)
{
Int_t time, amp;
Bool_t isOK2 = digit->GetTimeSample(j, time, amp);
if (isOK1 && isOK2 && amp) {
AliDebug(999, Form("=== TRU# %2d ADC# %2d time# %2d signal %d ===", iTRU, iADC, time, amp));
if(iTRU>32) continue;
AliEMCALTriggerTRU * etr = (static_cast<AliEMCALTriggerTRU*>(fTRU->At(iTRU)));
if (etr) {
if (data->GetMode())
etr->SetADC(iADC, time, 4 * amp);
else
etr->SetADC(iADC, time, amp);
}
}
}
if (fGeometry->GetPositionInEMCALFromAbsFastORIndex(id, px, py)) posMap[px][py] = i;
}
Int_t iL0 = 0;
Int_t timeL0[kNTRU] = {0}, timeL0min = 999;
for (Int_t i = 0; i < kNTRU; i++)
{
AliEMCALTriggerTRU *iTRU = static_cast<AliEMCALTriggerTRU*>(fTRU->At(i));
if (!iTRU) continue;
AliDebug(999, Form("===========< TRU %2d >============", i));
if (iTRU->L0())
{
iL0++;
timeL0[i] = iTRU->GetL0Time();
if (!timeL0[i]) AliWarning(Form("TRU# %d has 0 trigger time",i));
if (timeL0[i] < timeL0min) timeL0min = timeL0[i];
data->SetL0Trigger(0, i, 1);
}
else
data->SetL0Trigger(0, i, 0);
}
AliDebug(999, Form("=== %2d TRU (out of %2d) has issued a L0 / Min L0 time: %d", iL0, fTRU->GetEntriesFast(), timeL0min));
AliEMCALTriggerRawDigit* dig = 0x0;
if (iL0 && (!data->GetMode() || !fSTU->GetDCSConfig()->GetRawData()))
{
for (Int_t i = 0; i < kNTRU; i++)
{
AliEMCALTriggerTRU *iTRU = static_cast<AliEMCALTriggerTRU*>(fTRU->At(i));
if (!iTRU) continue;
Int_t reg[24][4];
for (int j = 0; j < 24; j++) for (int k = 0; k < 4; k++) reg[j][k] = 0;
iTRU->GetL0Region(timeL0min, reg);
for (int j = 0; j < iTRU->RegionSize()->X(); j++)
{
for (int k = 0; k < iTRU->RegionSize()->Y(); k++)
{
if (reg[j][k]
&&
fGeometry->GetAbsFastORIndexFromPositionInTRU(i, j, k, id)
&&
fGeometry->GetPositionInEMCALFromAbsFastORIndex(id, px, py))
{
pos = posMap[px][py];
if (pos == -1)
{
posMap[px][py] = digits->GetEntriesFast();
new((*digits)[digits->GetEntriesFast()]) AliEMCALTriggerRawDigit(id, 0x0, 0);
dig = (AliEMCALTriggerRawDigit*)digits->At(digits->GetEntriesFast() - 1);
}
else
{
dig = (AliEMCALTriggerRawDigit*)digits->At(pos);
}
reg[j][k] >>= 2;
dig->SetL1TimeSum(reg[j][k]);
}
}
}
}
}
if (iL0 && !data->GetMode())
{
for (Int_t i = 0; i < kNTRU; i++)
{
AliEMCALTriggerTRU *iTRU = static_cast<AliEMCALTriggerTRU*>(fTRU->At(i));
if (!iTRU) continue;
AliDebug(999, Form("=== TRU# %2d found %d patches", i, (iTRU->Patches()).GetEntriesFast()));
TIter next(&iTRU->Patches());
while (AliEMCALTriggerPatch* p = (AliEMCALTriggerPatch*)next())
{
p->Position(px, py);
if (fGeometry->GetAbsFastORIndexFromPositionInTRU(i, px, py, id)
&&
fGeometry->GetPositionInEMCALFromAbsFastORIndex(id, px, py)) p->SetPosition(px, py);
if (AliDebugLevel()) p->Print("");
Int_t peaks = p->Peaks();
Int_t sizeX = (Int_t) ((iTRU->PatchSize())->X() * (iTRU->SubRegionSize())->X());
Int_t sizeY = (Int_t) ((iTRU->PatchSize())->Y() * (iTRU->SubRegionSize())->Y());
for (Int_t j = 0; j < sizeX * sizeY; j++)
{
if (peaks & (1 << j))
{
pos = posMap[px + j % sizeX][py + j / sizeX];
if (pos == -1) {
posMap[px + j % sizeX][py + j / sizeX] = digits->GetEntriesFast();
new((*digits)[digits->GetEntriesFast()]) AliEMCALTriggerRawDigit(id, 0x0, 0);
dig = (AliEMCALTriggerRawDigit*)digits->At(digits->GetEntriesFast() - 1);
} else {
dig = (AliEMCALTriggerRawDigit*)digits->At(pos);
}
dig->SetL0Time(p->Time());
}
}
pos = posMap[px][py];
if (pos == -1) {
posMap[px][py] = digits->GetEntriesFast();
new((*digits)[digits->GetEntriesFast()]) AliEMCALTriggerRawDigit(id, 0x0, 0);
dig = (AliEMCALTriggerRawDigit*)digits->At(digits->GetEntriesFast() - 1);
}
else
{
dig = (AliEMCALTriggerRawDigit*)digits->At(pos);
}
dig->SetTriggerBit(kL0, 0);
}
}
}
for (int i = 0; i < (fSTU->RegionSize())->X(); i++) {
for (int j = 0; j < (fSTU->RegionSize())->Y(); j++) {
pos = posMap[i][j];
if (pos >= 0) {
AliEMCALTriggerRawDigit *digit = (AliEMCALTriggerRawDigit*)digits->At(pos);
if (digit->GetL1TimeSum() > -1) region[i][j] = digit->GetL1TimeSum();
}
}
}
AliDebug(999,"==================== STU ====================");
if (AliDebugLevel() >= 999) fSTU->Scan();
AliDebug(999,"==============================================");
fSTU->SetRegion(region);
if (data->GetMode())
{
for (int ithr = 0; ithr < 2; ithr++) {
AliDebug(999, Form(" THR %d / EGA %d / EJE %d", ithr, data->GetL1GammaThreshold(ithr), data->GetL1JetThreshold(ithr)));
fSTU->SetThreshold(kL1GammaHigh + ithr, data->GetL1GammaThreshold(ithr));
fSTU->SetThreshold(kL1JetHigh + ithr, data->GetL1JetThreshold( ithr));
}
}
else
{
for (int ithr = 0; ithr < 2; ithr++) {
fSTU->ComputeThFromV0(kL1GammaHigh + ithr, V0M);
data->SetL1GammaThreshold(ithr, fSTU->GetThreshold(kL1GammaHigh + ithr));
fSTU->ComputeThFromV0(kL1JetHigh + ithr, V0M);
data->SetL1JetThreshold(ithr, fSTU->GetThreshold(kL1JetHigh + ithr) );
AliDebug(999, Form("STU THR %d EGA %d EJE %d", ithr, fSTU->GetThreshold(kL1GammaHigh + ithr), fSTU->GetThreshold(kL1JetHigh + ithr)));
}
}
for (int ithr = 0; ithr < 2; ithr++) {
fSTU->Reset();
fSTU->L1(kL1GammaHigh + ithr);
TIterator* nP = 0x0;
nP = (fSTU->Patches()).MakeIterator();
AliDebug(999, Form("=== STU found %d gamma patches", (fSTU->Patches()).GetEntriesFast()));
while (AliEMCALTriggerPatch* p = (AliEMCALTriggerPatch*)nP->Next())
{
p->Position(px, py);
if (AliDebugLevel()) p->Print("");
if (fGeometry->GetAbsFastORIndexFromPositionInEMCAL(px, py, id))
{
if (posMap[px][py] == -1)
{
posMap[px][py] = digits->GetEntriesFast();
new((*digits)[digits->GetEntriesFast()]) AliEMCALTriggerRawDigit(id, 0x0, 0);
dig = (AliEMCALTriggerRawDigit*)digits->At(digits->GetEntriesFast() - 1);
}
else
{
dig = (AliEMCALTriggerRawDigit*)digits->At(posMap[px][py]);
}
if (AliDebugLevel()) dig->Print("");
dig->SetTriggerBit(kL1GammaHigh + ithr, 0);
}
}
fSTU->Reset();
fSTU->L1(kL1JetHigh + ithr);
nP = (fSTU->Patches()).MakeIterator();
AliDebug(999, Form("=== STU found %d jet patches", (fSTU->Patches()).GetEntriesFast()));
while (AliEMCALTriggerPatch* p = (AliEMCALTriggerPatch*)nP->Next())
{
p->Position(px, py);
if (AliDebugLevel()) p->Print("");
if (fGeometry->GetAbsFastORIndexFromPositionInEMCAL(px, py, id))
{
if (posMap[px][py] == -1)
{
posMap[px][py] = digits->GetEntriesFast();
new((*digits)[digits->GetEntriesFast()]) AliEMCALTriggerRawDigit(id, 0x0, 0);
dig = (AliEMCALTriggerRawDigit*)digits->At(digits->GetEntriesFast() - 1);
}
else
{
dig = (AliEMCALTriggerRawDigit*)digits->At(posMap[px][py]);
}
if (AliDebugLevel()) dig->Print("");
dig->SetTriggerBit(kL1JetHigh + ithr, 0);
}
}
}
Reset();
}
void AliEMCALTriggerElectronics::Reset()
{
TIter nextTRU(fTRU);
while ( AliEMCALTriggerTRU *TRU = (AliEMCALTriggerTRU*)nextTRU() ) TRU->Reset();
fSTU->Reset();
}
AliEMCALTriggerElectronics.cxx:1 AliEMCALTriggerElectronics.cxx:2 AliEMCALTriggerElectronics.cxx:3 AliEMCALTriggerElectronics.cxx:4 AliEMCALTriggerElectronics.cxx:5 AliEMCALTriggerElectronics.cxx:6 AliEMCALTriggerElectronics.cxx:7 AliEMCALTriggerElectronics.cxx:8 AliEMCALTriggerElectronics.cxx:9 AliEMCALTriggerElectronics.cxx:10 AliEMCALTriggerElectronics.cxx:11 AliEMCALTriggerElectronics.cxx:12 AliEMCALTriggerElectronics.cxx:13 AliEMCALTriggerElectronics.cxx:14 AliEMCALTriggerElectronics.cxx:15 AliEMCALTriggerElectronics.cxx:16 AliEMCALTriggerElectronics.cxx:17 AliEMCALTriggerElectronics.cxx:18 AliEMCALTriggerElectronics.cxx:19 AliEMCALTriggerElectronics.cxx:20 AliEMCALTriggerElectronics.cxx:21 AliEMCALTriggerElectronics.cxx:22 AliEMCALTriggerElectronics.cxx:23 AliEMCALTriggerElectronics.cxx:24 AliEMCALTriggerElectronics.cxx:25 AliEMCALTriggerElectronics.cxx:26 AliEMCALTriggerElectronics.cxx:27 AliEMCALTriggerElectronics.cxx:28 AliEMCALTriggerElectronics.cxx:29 AliEMCALTriggerElectronics.cxx:30 AliEMCALTriggerElectronics.cxx:31 AliEMCALTriggerElectronics.cxx:32 AliEMCALTriggerElectronics.cxx:33 AliEMCALTriggerElectronics.cxx:34 AliEMCALTriggerElectronics.cxx:35 AliEMCALTriggerElectronics.cxx:36 AliEMCALTriggerElectronics.cxx:37 AliEMCALTriggerElectronics.cxx:38 AliEMCALTriggerElectronics.cxx:39 AliEMCALTriggerElectronics.cxx:40 AliEMCALTriggerElectronics.cxx:41 AliEMCALTriggerElectronics.cxx:42 AliEMCALTriggerElectronics.cxx:43 AliEMCALTriggerElectronics.cxx:44 AliEMCALTriggerElectronics.cxx:45 AliEMCALTriggerElectronics.cxx:46 AliEMCALTriggerElectronics.cxx:47 AliEMCALTriggerElectronics.cxx:48 AliEMCALTriggerElectronics.cxx:49 AliEMCALTriggerElectronics.cxx:50 AliEMCALTriggerElectronics.cxx:51 AliEMCALTriggerElectronics.cxx:52 AliEMCALTriggerElectronics.cxx:53 AliEMCALTriggerElectronics.cxx:54 AliEMCALTriggerElectronics.cxx:55 AliEMCALTriggerElectronics.cxx:56 AliEMCALTriggerElectronics.cxx:57 AliEMCALTriggerElectronics.cxx:58 AliEMCALTriggerElectronics.cxx:59 AliEMCALTriggerElectronics.cxx:60 AliEMCALTriggerElectronics.cxx:61 AliEMCALTriggerElectronics.cxx:62 AliEMCALTriggerElectronics.cxx:63 AliEMCALTriggerElectronics.cxx:64 AliEMCALTriggerElectronics.cxx:65 AliEMCALTriggerElectronics.cxx:66 AliEMCALTriggerElectronics.cxx:67 AliEMCALTriggerElectronics.cxx:68 AliEMCALTriggerElectronics.cxx:69 AliEMCALTriggerElectronics.cxx:70 AliEMCALTriggerElectronics.cxx:71 AliEMCALTriggerElectronics.cxx:72 AliEMCALTriggerElectronics.cxx:73 AliEMCALTriggerElectronics.cxx:74 AliEMCALTriggerElectronics.cxx:75 AliEMCALTriggerElectronics.cxx:76 AliEMCALTriggerElectronics.cxx:77 AliEMCALTriggerElectronics.cxx:78 AliEMCALTriggerElectronics.cxx:79 AliEMCALTriggerElectronics.cxx:80 AliEMCALTriggerElectronics.cxx:81 AliEMCALTriggerElectronics.cxx:82 AliEMCALTriggerElectronics.cxx:83 AliEMCALTriggerElectronics.cxx:84 AliEMCALTriggerElectronics.cxx:85 AliEMCALTriggerElectronics.cxx:86 AliEMCALTriggerElectronics.cxx:87 AliEMCALTriggerElectronics.cxx:88 AliEMCALTriggerElectronics.cxx:89 AliEMCALTriggerElectronics.cxx:90 AliEMCALTriggerElectronics.cxx:91 AliEMCALTriggerElectronics.cxx:92 AliEMCALTriggerElectronics.cxx:93 AliEMCALTriggerElectronics.cxx:94 AliEMCALTriggerElectronics.cxx:95 AliEMCALTriggerElectronics.cxx:96 AliEMCALTriggerElectronics.cxx:97 AliEMCALTriggerElectronics.cxx:98 AliEMCALTriggerElectronics.cxx:99 AliEMCALTriggerElectronics.cxx:100 AliEMCALTriggerElectronics.cxx:101 AliEMCALTriggerElectronics.cxx:102 AliEMCALTriggerElectronics.cxx:103 AliEMCALTriggerElectronics.cxx:104 AliEMCALTriggerElectronics.cxx:105 AliEMCALTriggerElectronics.cxx:106 AliEMCALTriggerElectronics.cxx:107 AliEMCALTriggerElectronics.cxx:108 AliEMCALTriggerElectronics.cxx:109 AliEMCALTriggerElectronics.cxx:110 AliEMCALTriggerElectronics.cxx:111 AliEMCALTriggerElectronics.cxx:112 AliEMCALTriggerElectronics.cxx:113 AliEMCALTriggerElectronics.cxx:114 AliEMCALTriggerElectronics.cxx:115 AliEMCALTriggerElectronics.cxx:116 AliEMCALTriggerElectronics.cxx:117 AliEMCALTriggerElectronics.cxx:118 AliEMCALTriggerElectronics.cxx:119 AliEMCALTriggerElectronics.cxx:120 AliEMCALTriggerElectronics.cxx:121 AliEMCALTriggerElectronics.cxx:122 AliEMCALTriggerElectronics.cxx:123 AliEMCALTriggerElectronics.cxx:124 AliEMCALTriggerElectronics.cxx:125 AliEMCALTriggerElectronics.cxx:126 AliEMCALTriggerElectronics.cxx:127 AliEMCALTriggerElectronics.cxx:128 AliEMCALTriggerElectronics.cxx:129 AliEMCALTriggerElectronics.cxx:130 AliEMCALTriggerElectronics.cxx:131 AliEMCALTriggerElectronics.cxx:132 AliEMCALTriggerElectronics.cxx:133 AliEMCALTriggerElectronics.cxx:134 AliEMCALTriggerElectronics.cxx:135 AliEMCALTriggerElectronics.cxx:136 AliEMCALTriggerElectronics.cxx:137 AliEMCALTriggerElectronics.cxx:138 AliEMCALTriggerElectronics.cxx:139 AliEMCALTriggerElectronics.cxx:140 AliEMCALTriggerElectronics.cxx:141 AliEMCALTriggerElectronics.cxx:142 AliEMCALTriggerElectronics.cxx:143 AliEMCALTriggerElectronics.cxx:144 AliEMCALTriggerElectronics.cxx:145 AliEMCALTriggerElectronics.cxx:146 AliEMCALTriggerElectronics.cxx:147 AliEMCALTriggerElectronics.cxx:148 AliEMCALTriggerElectronics.cxx:149 AliEMCALTriggerElectronics.cxx:150 AliEMCALTriggerElectronics.cxx:151 AliEMCALTriggerElectronics.cxx:152 AliEMCALTriggerElectronics.cxx:153 AliEMCALTriggerElectronics.cxx:154 AliEMCALTriggerElectronics.cxx:155 AliEMCALTriggerElectronics.cxx:156 AliEMCALTriggerElectronics.cxx:157 AliEMCALTriggerElectronics.cxx:158 AliEMCALTriggerElectronics.cxx:159 AliEMCALTriggerElectronics.cxx:160 AliEMCALTriggerElectronics.cxx:161 AliEMCALTriggerElectronics.cxx:162 AliEMCALTriggerElectronics.cxx:163 AliEMCALTriggerElectronics.cxx:164 AliEMCALTriggerElectronics.cxx:165 AliEMCALTriggerElectronics.cxx:166 AliEMCALTriggerElectronics.cxx:167 AliEMCALTriggerElectronics.cxx:168 AliEMCALTriggerElectronics.cxx:169 AliEMCALTriggerElectronics.cxx:170 AliEMCALTriggerElectronics.cxx:171 AliEMCALTriggerElectronics.cxx:172 AliEMCALTriggerElectronics.cxx:173 AliEMCALTriggerElectronics.cxx:174 AliEMCALTriggerElectronics.cxx:175 AliEMCALTriggerElectronics.cxx:176 AliEMCALTriggerElectronics.cxx:177 AliEMCALTriggerElectronics.cxx:178 AliEMCALTriggerElectronics.cxx:179 AliEMCALTriggerElectronics.cxx:180 AliEMCALTriggerElectronics.cxx:181 AliEMCALTriggerElectronics.cxx:182 AliEMCALTriggerElectronics.cxx:183 AliEMCALTriggerElectronics.cxx:184 AliEMCALTriggerElectronics.cxx:185 AliEMCALTriggerElectronics.cxx:186 AliEMCALTriggerElectronics.cxx:187 AliEMCALTriggerElectronics.cxx:188 AliEMCALTriggerElectronics.cxx:189 AliEMCALTriggerElectronics.cxx:190 AliEMCALTriggerElectronics.cxx:191 AliEMCALTriggerElectronics.cxx:192 AliEMCALTriggerElectronics.cxx:193 AliEMCALTriggerElectronics.cxx:194 AliEMCALTriggerElectronics.cxx:195 AliEMCALTriggerElectronics.cxx:196 AliEMCALTriggerElectronics.cxx:197 AliEMCALTriggerElectronics.cxx:198 AliEMCALTriggerElectronics.cxx:199 AliEMCALTriggerElectronics.cxx:200 AliEMCALTriggerElectronics.cxx:201 AliEMCALTriggerElectronics.cxx:202 AliEMCALTriggerElectronics.cxx:203 AliEMCALTriggerElectronics.cxx:204 AliEMCALTriggerElectronics.cxx:205 AliEMCALTriggerElectronics.cxx:206 AliEMCALTriggerElectronics.cxx:207 AliEMCALTriggerElectronics.cxx:208 AliEMCALTriggerElectronics.cxx:209 AliEMCALTriggerElectronics.cxx:210 AliEMCALTriggerElectronics.cxx:211 AliEMCALTriggerElectronics.cxx:212 AliEMCALTriggerElectronics.cxx:213 AliEMCALTriggerElectronics.cxx:214 AliEMCALTriggerElectronics.cxx:215 AliEMCALTriggerElectronics.cxx:216 AliEMCALTriggerElectronics.cxx:217 AliEMCALTriggerElectronics.cxx:218 AliEMCALTriggerElectronics.cxx:219 AliEMCALTriggerElectronics.cxx:220 AliEMCALTriggerElectronics.cxx:221 AliEMCALTriggerElectronics.cxx:222 AliEMCALTriggerElectronics.cxx:223 AliEMCALTriggerElectronics.cxx:224 AliEMCALTriggerElectronics.cxx:225 AliEMCALTriggerElectronics.cxx:226 AliEMCALTriggerElectronics.cxx:227 AliEMCALTriggerElectronics.cxx:228 AliEMCALTriggerElectronics.cxx:229 AliEMCALTriggerElectronics.cxx:230 AliEMCALTriggerElectronics.cxx:231 AliEMCALTriggerElectronics.cxx:232 AliEMCALTriggerElectronics.cxx:233 AliEMCALTriggerElectronics.cxx:234 AliEMCALTriggerElectronics.cxx:235 AliEMCALTriggerElectronics.cxx:236 AliEMCALTriggerElectronics.cxx:237 AliEMCALTriggerElectronics.cxx:238 AliEMCALTriggerElectronics.cxx:239 AliEMCALTriggerElectronics.cxx:240 AliEMCALTriggerElectronics.cxx:241 AliEMCALTriggerElectronics.cxx:242 AliEMCALTriggerElectronics.cxx:243 AliEMCALTriggerElectronics.cxx:244 AliEMCALTriggerElectronics.cxx:245 AliEMCALTriggerElectronics.cxx:246 AliEMCALTriggerElectronics.cxx:247 AliEMCALTriggerElectronics.cxx:248 AliEMCALTriggerElectronics.cxx:249 AliEMCALTriggerElectronics.cxx:250 AliEMCALTriggerElectronics.cxx:251 AliEMCALTriggerElectronics.cxx:252 AliEMCALTriggerElectronics.cxx:253 AliEMCALTriggerElectronics.cxx:254 AliEMCALTriggerElectronics.cxx:255 AliEMCALTriggerElectronics.cxx:256 AliEMCALTriggerElectronics.cxx:257 AliEMCALTriggerElectronics.cxx:258 AliEMCALTriggerElectronics.cxx:259 AliEMCALTriggerElectronics.cxx:260 AliEMCALTriggerElectronics.cxx:261 AliEMCALTriggerElectronics.cxx:262 AliEMCALTriggerElectronics.cxx:263 AliEMCALTriggerElectronics.cxx:264 AliEMCALTriggerElectronics.cxx:265 AliEMCALTriggerElectronics.cxx:266 AliEMCALTriggerElectronics.cxx:267 AliEMCALTriggerElectronics.cxx:268 AliEMCALTriggerElectronics.cxx:269 AliEMCALTriggerElectronics.cxx:270 AliEMCALTriggerElectronics.cxx:271 AliEMCALTriggerElectronics.cxx:272 AliEMCALTriggerElectronics.cxx:273 AliEMCALTriggerElectronics.cxx:274 AliEMCALTriggerElectronics.cxx:275 AliEMCALTriggerElectronics.cxx:276 AliEMCALTriggerElectronics.cxx:277 AliEMCALTriggerElectronics.cxx:278 AliEMCALTriggerElectronics.cxx:279 AliEMCALTriggerElectronics.cxx:280 AliEMCALTriggerElectronics.cxx:281 AliEMCALTriggerElectronics.cxx:282 AliEMCALTriggerElectronics.cxx:283 AliEMCALTriggerElectronics.cxx:284 AliEMCALTriggerElectronics.cxx:285 AliEMCALTriggerElectronics.cxx:286 AliEMCALTriggerElectronics.cxx:287 AliEMCALTriggerElectronics.cxx:288 AliEMCALTriggerElectronics.cxx:289 AliEMCALTriggerElectronics.cxx:290 AliEMCALTriggerElectronics.cxx:291 AliEMCALTriggerElectronics.cxx:292 AliEMCALTriggerElectronics.cxx:293 AliEMCALTriggerElectronics.cxx:294 AliEMCALTriggerElectronics.cxx:295 AliEMCALTriggerElectronics.cxx:296 AliEMCALTriggerElectronics.cxx:297 AliEMCALTriggerElectronics.cxx:298 AliEMCALTriggerElectronics.cxx:299 AliEMCALTriggerElectronics.cxx:300 AliEMCALTriggerElectronics.cxx:301 AliEMCALTriggerElectronics.cxx:302 AliEMCALTriggerElectronics.cxx:303 AliEMCALTriggerElectronics.cxx:304 AliEMCALTriggerElectronics.cxx:305 AliEMCALTriggerElectronics.cxx:306 AliEMCALTriggerElectronics.cxx:307 AliEMCALTriggerElectronics.cxx:308 AliEMCALTriggerElectronics.cxx:309 AliEMCALTriggerElectronics.cxx:310 AliEMCALTriggerElectronics.cxx:311 AliEMCALTriggerElectronics.cxx:312 AliEMCALTriggerElectronics.cxx:313 AliEMCALTriggerElectronics.cxx:314 AliEMCALTriggerElectronics.cxx:315 AliEMCALTriggerElectronics.cxx:316 AliEMCALTriggerElectronics.cxx:317 AliEMCALTriggerElectronics.cxx:318 AliEMCALTriggerElectronics.cxx:319 AliEMCALTriggerElectronics.cxx:320 AliEMCALTriggerElectronics.cxx:321 AliEMCALTriggerElectronics.cxx:322 AliEMCALTriggerElectronics.cxx:323 AliEMCALTriggerElectronics.cxx:324 AliEMCALTriggerElectronics.cxx:325 AliEMCALTriggerElectronics.cxx:326 AliEMCALTriggerElectronics.cxx:327 AliEMCALTriggerElectronics.cxx:328 AliEMCALTriggerElectronics.cxx:329 AliEMCALTriggerElectronics.cxx:330 AliEMCALTriggerElectronics.cxx:331 AliEMCALTriggerElectronics.cxx:332 AliEMCALTriggerElectronics.cxx:333 AliEMCALTriggerElectronics.cxx:334 AliEMCALTriggerElectronics.cxx:335 AliEMCALTriggerElectronics.cxx:336 AliEMCALTriggerElectronics.cxx:337 AliEMCALTriggerElectronics.cxx:338 AliEMCALTriggerElectronics.cxx:339 AliEMCALTriggerElectronics.cxx:340 AliEMCALTriggerElectronics.cxx:341 AliEMCALTriggerElectronics.cxx:342 AliEMCALTriggerElectronics.cxx:343 AliEMCALTriggerElectronics.cxx:344 AliEMCALTriggerElectronics.cxx:345 AliEMCALTriggerElectronics.cxx:346 AliEMCALTriggerElectronics.cxx:347 AliEMCALTriggerElectronics.cxx:348 AliEMCALTriggerElectronics.cxx:349 AliEMCALTriggerElectronics.cxx:350 AliEMCALTriggerElectronics.cxx:351 AliEMCALTriggerElectronics.cxx:352 AliEMCALTriggerElectronics.cxx:353 AliEMCALTriggerElectronics.cxx:354 AliEMCALTriggerElectronics.cxx:355 AliEMCALTriggerElectronics.cxx:356 AliEMCALTriggerElectronics.cxx:357 AliEMCALTriggerElectronics.cxx:358 AliEMCALTriggerElectronics.cxx:359 AliEMCALTriggerElectronics.cxx:360 AliEMCALTriggerElectronics.cxx:361 AliEMCALTriggerElectronics.cxx:362 AliEMCALTriggerElectronics.cxx:363 AliEMCALTriggerElectronics.cxx:364 AliEMCALTriggerElectronics.cxx:365 AliEMCALTriggerElectronics.cxx:366 AliEMCALTriggerElectronics.cxx:367 AliEMCALTriggerElectronics.cxx:368 AliEMCALTriggerElectronics.cxx:369 AliEMCALTriggerElectronics.cxx:370 AliEMCALTriggerElectronics.cxx:371 AliEMCALTriggerElectronics.cxx:372 AliEMCALTriggerElectronics.cxx:373 AliEMCALTriggerElectronics.cxx:374 AliEMCALTriggerElectronics.cxx:375 AliEMCALTriggerElectronics.cxx:376 AliEMCALTriggerElectronics.cxx:377 AliEMCALTriggerElectronics.cxx:378 AliEMCALTriggerElectronics.cxx:379 AliEMCALTriggerElectronics.cxx:380 AliEMCALTriggerElectronics.cxx:381 AliEMCALTriggerElectronics.cxx:382 AliEMCALTriggerElectronics.cxx:383 AliEMCALTriggerElectronics.cxx:384 AliEMCALTriggerElectronics.cxx:385 AliEMCALTriggerElectronics.cxx:386 AliEMCALTriggerElectronics.cxx:387 AliEMCALTriggerElectronics.cxx:388 AliEMCALTriggerElectronics.cxx:389 AliEMCALTriggerElectronics.cxx:390 AliEMCALTriggerElectronics.cxx:391 AliEMCALTriggerElectronics.cxx:392 AliEMCALTriggerElectronics.cxx:393 AliEMCALTriggerElectronics.cxx:394 AliEMCALTriggerElectronics.cxx:395 AliEMCALTriggerElectronics.cxx:396 AliEMCALTriggerElectronics.cxx:397 AliEMCALTriggerElectronics.cxx:398 AliEMCALTriggerElectronics.cxx:399 AliEMCALTriggerElectronics.cxx:400 AliEMCALTriggerElectronics.cxx:401 AliEMCALTriggerElectronics.cxx:402 AliEMCALTriggerElectronics.cxx:403 AliEMCALTriggerElectronics.cxx:404 AliEMCALTriggerElectronics.cxx:405 AliEMCALTriggerElectronics.cxx:406 AliEMCALTriggerElectronics.cxx:407 AliEMCALTriggerElectronics.cxx:408 AliEMCALTriggerElectronics.cxx:409 AliEMCALTriggerElectronics.cxx:410 AliEMCALTriggerElectronics.cxx:411 AliEMCALTriggerElectronics.cxx:412 AliEMCALTriggerElectronics.cxx:413 AliEMCALTriggerElectronics.cxx:414 AliEMCALTriggerElectronics.cxx:415 AliEMCALTriggerElectronics.cxx:416 AliEMCALTriggerElectronics.cxx:417 AliEMCALTriggerElectronics.cxx:418 AliEMCALTriggerElectronics.cxx:419 AliEMCALTriggerElectronics.cxx:420 AliEMCALTriggerElectronics.cxx:421 AliEMCALTriggerElectronics.cxx:422 AliEMCALTriggerElectronics.cxx:423 AliEMCALTriggerElectronics.cxx:424 AliEMCALTriggerElectronics.cxx:425 AliEMCALTriggerElectronics.cxx:426 AliEMCALTriggerElectronics.cxx:427 AliEMCALTriggerElectronics.cxx:428 AliEMCALTriggerElectronics.cxx:429 AliEMCALTriggerElectronics.cxx:430 AliEMCALTriggerElectronics.cxx:431 AliEMCALTriggerElectronics.cxx:432 AliEMCALTriggerElectronics.cxx:433 AliEMCALTriggerElectronics.cxx:434 AliEMCALTriggerElectronics.cxx:435 AliEMCALTriggerElectronics.cxx:436 AliEMCALTriggerElectronics.cxx:437