#include <Riostream.h>
#include <TMath.h>
#include "AliEMCALTriggerRawDigit.h"
ClassImp(AliEMCALTriggerRawDigit)
AliEMCALTriggerRawDigit::AliEMCALTriggerRawDigit() : AliEMCALRawDigit(),
fTriggerBits(0),
fNL0Times(0),
fL0Times(),
fL1TimeSum(-1)
{
for (Int_t i = 0; i < 10; i++) fL0Times[i] = -1;
}
AliEMCALTriggerRawDigit::AliEMCALTriggerRawDigit(Int_t id, Int_t timeSamples[], Int_t nSamples) : AliEMCALRawDigit(id, timeSamples, nSamples),
fTriggerBits(0),
fNL0Times(0),
fL0Times(),
fL1TimeSum(-1)
{
for (Int_t i = 0; i < 10; i++) fL0Times[i] = -1;
}
AliEMCALTriggerRawDigit::~AliEMCALTriggerRawDigit()
{
}
Bool_t AliEMCALTriggerRawDigit::SetL0Time(const Int_t i)
{
for (Int_t j = 0; j < fNL0Times; j++)
{
if (i == fL0Times[j])
{
AliDebug(1,Form("Digit id %d: L0 time %d already there! Won't add it twice",fId,i));
return kFALSE;
}
}
fNL0Times++;
if (fNL0Times > 9)
{
AliError("More than 10 L0 times!");
return kFALSE;
}
fL0Times[fNL0Times - 1] = i;
return kTRUE;
}
Bool_t AliEMCALTriggerRawDigit::GetL0Time(const Int_t i, Int_t& time) const
{
if (i < 0 || i > fNL0Times)
{
AliError("Bad index!");
return kFALSE;
}
time = fL0Times[i];
return kTRUE;
}
Bool_t AliEMCALTriggerRawDigit::GetL0Times(Int_t times[]) const
{
for (Int_t i = 0; i < fNL0Times; i++) times[i] = fL0Times[i];
return kTRUE;
}
Int_t AliEMCALTriggerRawDigit::GetL0TimeSum(const Int_t time) const
{
Int_t value = 0;
for (Int_t i = 0; i < fNSamples; i++)
{
Int_t timeBin, amp;
GetTimeSample(i, timeBin, amp);
if (timeBin >= time && timeBin < time + 4) value += amp;
}
return value;
}
Int_t AliEMCALTriggerRawDigit::GetTriggerBit(const TriggerType_t type, const Int_t mode) const
{
Int_t shift = kTriggerTypeEnd * mode;
Int_t mask = 1 << type;
return ((fTriggerBits >> shift) & mask);
}
void AliEMCALTriggerRawDigit::Print(const Option_t* ) const
{
printf("===\n| Digit id: %4d / %d Time Samples: \n",fId,fNSamples);
for (Int_t i=0; i < fNSamples; i++)
{
Int_t timeBin, amp;
GetTimeSample(i, timeBin, amp);
printf("| (%d,%d) ",timeBin,amp);
}
printf("\n");
printf("| L0: (%d,%d) / %d Time(s): \n",GetTriggerBit(kL0,1),GetTriggerBit(kL0,0),fNL0Times);
for (Int_t i = 0; i < fNL0Times; i++)
{
Int_t time;
if (GetL0Time(i, time)) printf("| %d ",time);
}
printf("\n");
printf("| L1: g high (%d,%d) g low (%d,%d) j high (%d,%d) j low (%d,%d) / Time sum: %d\n",
GetTriggerBit(kL1GammaHigh,1),GetTriggerBit(kL1GammaHigh,0),GetTriggerBit(kL1GammaLow,1),GetTriggerBit(kL1GammaLow,0),
GetTriggerBit(kL1JetHigh,1), GetTriggerBit(kL1JetHigh,0), GetTriggerBit(kL1JetLow,1), GetTriggerBit(kL1JetLow,0),
fL1TimeSum);
}
AliEMCALTriggerRawDigit.cxx:1 AliEMCALTriggerRawDigit.cxx:2 AliEMCALTriggerRawDigit.cxx:3 AliEMCALTriggerRawDigit.cxx:4 AliEMCALTriggerRawDigit.cxx:5 AliEMCALTriggerRawDigit.cxx:6 AliEMCALTriggerRawDigit.cxx:7 AliEMCALTriggerRawDigit.cxx:8 AliEMCALTriggerRawDigit.cxx:9 AliEMCALTriggerRawDigit.cxx:10 AliEMCALTriggerRawDigit.cxx:11 AliEMCALTriggerRawDigit.cxx:12 AliEMCALTriggerRawDigit.cxx:13 AliEMCALTriggerRawDigit.cxx:14 AliEMCALTriggerRawDigit.cxx:15 AliEMCALTriggerRawDigit.cxx:16 AliEMCALTriggerRawDigit.cxx:17 AliEMCALTriggerRawDigit.cxx:18 AliEMCALTriggerRawDigit.cxx:19 AliEMCALTriggerRawDigit.cxx:20 AliEMCALTriggerRawDigit.cxx:21 AliEMCALTriggerRawDigit.cxx:22 AliEMCALTriggerRawDigit.cxx:23 AliEMCALTriggerRawDigit.cxx:24 AliEMCALTriggerRawDigit.cxx:25 AliEMCALTriggerRawDigit.cxx:26 AliEMCALTriggerRawDigit.cxx:27 AliEMCALTriggerRawDigit.cxx:28 AliEMCALTriggerRawDigit.cxx:29 AliEMCALTriggerRawDigit.cxx:30 AliEMCALTriggerRawDigit.cxx:31 AliEMCALTriggerRawDigit.cxx:32 AliEMCALTriggerRawDigit.cxx:33 AliEMCALTriggerRawDigit.cxx:34 AliEMCALTriggerRawDigit.cxx:35 AliEMCALTriggerRawDigit.cxx:36 AliEMCALTriggerRawDigit.cxx:37 AliEMCALTriggerRawDigit.cxx:38 AliEMCALTriggerRawDigit.cxx:39 AliEMCALTriggerRawDigit.cxx:40 AliEMCALTriggerRawDigit.cxx:41 AliEMCALTriggerRawDigit.cxx:42 AliEMCALTriggerRawDigit.cxx:43 AliEMCALTriggerRawDigit.cxx:44 AliEMCALTriggerRawDigit.cxx:45 AliEMCALTriggerRawDigit.cxx:46 AliEMCALTriggerRawDigit.cxx:47 AliEMCALTriggerRawDigit.cxx:48 AliEMCALTriggerRawDigit.cxx:49 AliEMCALTriggerRawDigit.cxx:50 AliEMCALTriggerRawDigit.cxx:51 AliEMCALTriggerRawDigit.cxx:52 AliEMCALTriggerRawDigit.cxx:53 AliEMCALTriggerRawDigit.cxx:54 AliEMCALTriggerRawDigit.cxx:55 AliEMCALTriggerRawDigit.cxx:56 AliEMCALTriggerRawDigit.cxx:57 AliEMCALTriggerRawDigit.cxx:58 AliEMCALTriggerRawDigit.cxx:59 AliEMCALTriggerRawDigit.cxx:60 AliEMCALTriggerRawDigit.cxx:61 AliEMCALTriggerRawDigit.cxx:62 AliEMCALTriggerRawDigit.cxx:63 AliEMCALTriggerRawDigit.cxx:64 AliEMCALTriggerRawDigit.cxx:65 AliEMCALTriggerRawDigit.cxx:66 AliEMCALTriggerRawDigit.cxx:67 AliEMCALTriggerRawDigit.cxx:68 AliEMCALTriggerRawDigit.cxx:69 AliEMCALTriggerRawDigit.cxx:70 AliEMCALTriggerRawDigit.cxx:71 AliEMCALTriggerRawDigit.cxx:72 AliEMCALTriggerRawDigit.cxx:73 AliEMCALTriggerRawDigit.cxx:74 AliEMCALTriggerRawDigit.cxx:75 AliEMCALTriggerRawDigit.cxx:76 AliEMCALTriggerRawDigit.cxx:77 AliEMCALTriggerRawDigit.cxx:78 AliEMCALTriggerRawDigit.cxx:79 AliEMCALTriggerRawDigit.cxx:80 AliEMCALTriggerRawDigit.cxx:81 AliEMCALTriggerRawDigit.cxx:82 AliEMCALTriggerRawDigit.cxx:83 AliEMCALTriggerRawDigit.cxx:84 AliEMCALTriggerRawDigit.cxx:85 AliEMCALTriggerRawDigit.cxx:86 AliEMCALTriggerRawDigit.cxx:87 AliEMCALTriggerRawDigit.cxx:88 AliEMCALTriggerRawDigit.cxx:89 AliEMCALTriggerRawDigit.cxx:90 AliEMCALTriggerRawDigit.cxx:91 AliEMCALTriggerRawDigit.cxx:92 AliEMCALTriggerRawDigit.cxx:93 AliEMCALTriggerRawDigit.cxx:94 AliEMCALTriggerRawDigit.cxx:95 AliEMCALTriggerRawDigit.cxx:96 AliEMCALTriggerRawDigit.cxx:97 AliEMCALTriggerRawDigit.cxx:98 AliEMCALTriggerRawDigit.cxx:99 AliEMCALTriggerRawDigit.cxx:100 AliEMCALTriggerRawDigit.cxx:101 AliEMCALTriggerRawDigit.cxx:102 AliEMCALTriggerRawDigit.cxx:103 AliEMCALTriggerRawDigit.cxx:104 AliEMCALTriggerRawDigit.cxx:105 AliEMCALTriggerRawDigit.cxx:106 AliEMCALTriggerRawDigit.cxx:107 AliEMCALTriggerRawDigit.cxx:108 AliEMCALTriggerRawDigit.cxx:109 AliEMCALTriggerRawDigit.cxx:110 AliEMCALTriggerRawDigit.cxx:111 AliEMCALTriggerRawDigit.cxx:112 AliEMCALTriggerRawDigit.cxx:113 AliEMCALTriggerRawDigit.cxx:114 AliEMCALTriggerRawDigit.cxx:115 AliEMCALTriggerRawDigit.cxx:116 AliEMCALTriggerRawDigit.cxx:117 AliEMCALTriggerRawDigit.cxx:118 AliEMCALTriggerRawDigit.cxx:119 AliEMCALTriggerRawDigit.cxx:120 AliEMCALTriggerRawDigit.cxx:121 AliEMCALTriggerRawDigit.cxx:122 AliEMCALTriggerRawDigit.cxx:123 AliEMCALTriggerRawDigit.cxx:124 AliEMCALTriggerRawDigit.cxx:125 AliEMCALTriggerRawDigit.cxx:126 AliEMCALTriggerRawDigit.cxx:127 AliEMCALTriggerRawDigit.cxx:128 AliEMCALTriggerRawDigit.cxx:129 AliEMCALTriggerRawDigit.cxx:130 AliEMCALTriggerRawDigit.cxx:131 AliEMCALTriggerRawDigit.cxx:132 AliEMCALTriggerRawDigit.cxx:133 AliEMCALTriggerRawDigit.cxx:134 AliEMCALTriggerRawDigit.cxx:135 AliEMCALTriggerRawDigit.cxx:136 AliEMCALTriggerRawDigit.cxx:137 AliEMCALTriggerRawDigit.cxx:138 AliEMCALTriggerRawDigit.cxx:139 AliEMCALTriggerRawDigit.cxx:140 AliEMCALTriggerRawDigit.cxx:141 AliEMCALTriggerRawDigit.cxx:142 AliEMCALTriggerRawDigit.cxx:143 AliEMCALTriggerRawDigit.cxx:144 AliEMCALTriggerRawDigit.cxx:145 AliEMCALTriggerRawDigit.cxx:146 AliEMCALTriggerRawDigit.cxx:147 AliEMCALTriggerRawDigit.cxx:148 AliEMCALTriggerRawDigit.cxx:149 AliEMCALTriggerRawDigit.cxx:150 AliEMCALTriggerRawDigit.cxx:151 AliEMCALTriggerRawDigit.cxx:152 AliEMCALTriggerRawDigit.cxx:153 AliEMCALTriggerRawDigit.cxx:154 AliEMCALTriggerRawDigit.cxx:155 AliEMCALTriggerRawDigit.cxx:156 AliEMCALTriggerRawDigit.cxx:157 AliEMCALTriggerRawDigit.cxx:158 AliEMCALTriggerRawDigit.cxx:159 AliEMCALTriggerRawDigit.cxx:160 AliEMCALTriggerRawDigit.cxx:161 AliEMCALTriggerRawDigit.cxx:162 AliEMCALTriggerRawDigit.cxx:163 AliEMCALTriggerRawDigit.cxx:164 AliEMCALTriggerRawDigit.cxx:165 AliEMCALTriggerRawDigit.cxx:166 AliEMCALTriggerRawDigit.cxx:167 AliEMCALTriggerRawDigit.cxx:168 AliEMCALTriggerRawDigit.cxx:169