#include "AliAODCaloTrigger.h"
#include "AliLog.h"
#include "TArrayI.h"
#include "Riostream.h"
#include <cstdlib>
ClassImp(AliAODCaloTrigger)
AliAODCaloTrigger::AliAODCaloTrigger() : AliVCaloTrigger(),
fNEntries(0),
fCurrent(-1),
fColumn(0x0),
fRow(0x0),
fAmplitude(0x0),
fTime(0x0),
fNL0Times(0x0),
fL0Times(new TArrayI()),
fL1TimeSum(0x0),
fTriggerBits(0x0),
fL1Threshold(),
fL1V0(),
fL1FrameMask(0)
{
for (int i = 0; i < 4; i++) fL1Threshold[i] = 0;
fL1V0[0] = fL1V0[1] = 0;
}
AliAODCaloTrigger::AliAODCaloTrigger(const char* name, const char* title) : AliVCaloTrigger(name, title),
fNEntries(0),
fCurrent(-1),
fColumn(0x0),
fRow(0x0),
fAmplitude(0x0),
fTime(0x0),
fNL0Times(0x0),
fL0Times(new TArrayI()),
fL1TimeSum(0x0),
fTriggerBits(0x0),
fL1Threshold(),
fL1V0(),
fL1FrameMask(0)
{
fL1Threshold[0] = fL1Threshold[1] = 0;
fL1V0[0] = fL1V0[1] = 0;
}
AliAODCaloTrigger::AliAODCaloTrigger(const AliAODCaloTrigger& src) : AliVCaloTrigger(src),
fNEntries(0),
fCurrent(-1),
fColumn(0x0),
fRow(0x0),
fAmplitude(0x0),
fTime(0x0),
fNL0Times(0x0),
fL0Times(new TArrayI()),
fL1TimeSum(0x0),
fTriggerBits(0x0),
fL1Threshold(),
fL1V0(),
fL1FrameMask(0)
{
src.Copy(*this);
}
AliAODCaloTrigger::~AliAODCaloTrigger()
{
if (fNEntries) DeAllocate();
delete fL0Times; fL0Times = 0x0;
}
void AliAODCaloTrigger::DeAllocate()
{
delete [] fColumn; fColumn = 0x0;
delete [] fRow; fRow = 0x0;
delete [] fAmplitude; fAmplitude = 0x0;
delete [] fTime; fTime = 0x0;
delete [] fNL0Times; fNL0Times = 0x0;
delete [] fL1TimeSum; fL1TimeSum = 0x0;
delete [] fTriggerBits; fTriggerBits = 0x0;
fNEntries = 0;
fCurrent = -1;
fL0Times->Reset();
}
AliAODCaloTrigger& AliAODCaloTrigger::operator=(const AliAODCaloTrigger& src)
{
if (this != &src) src.Copy(*this);
return *this;
}
void AliAODCaloTrigger::Copy(TObject &obj) const
{
AliVCaloTrigger::Copy(obj);
AliAODCaloTrigger& dest = static_cast<AliAODCaloTrigger&>(obj);
if (dest.fNEntries) dest.DeAllocate();
dest.Allocate(fNEntries);
for (Int_t i = 0; i < fNEntries; i++)
{
Int_t times[10];
for (Int_t j = 0; j < 10; j++) times[j] = fL0Times->At(10 * i + j);
dest.Add(fColumn[i], fRow[i], fAmplitude[i], fTime[i], times, fNL0Times[i], fL1TimeSum[i], fTriggerBits[i]);
}
dest.SetL1Threshold(0, fL1Threshold[0]);
dest.SetL1Threshold(1, fL1Threshold[1]);
dest.SetL1V0(fL1V0);
dest.SetL1FrameMask(fL1FrameMask);
}
void AliAODCaloTrigger::Allocate(Int_t size)
{
if (!size) return;
fNEntries = size;
fColumn = new Int_t[fNEntries];
fRow = new Int_t[fNEntries];
fAmplitude = new Float_t[fNEntries];
fTime = new Float_t[fNEntries];
fNL0Times = new Int_t[fNEntries];
fL1TimeSum = new Int_t[fNEntries];
fTriggerBits = new Int_t[fNEntries];
for (Int_t i = 0; i < fNEntries; i++)
{
fColumn[i] = 0;
fRow[i] = 0;
fAmplitude[i] = 0;
fTime[i] = 0;
fNL0Times[i] = 0;
fL1TimeSum[i] = 0;
fTriggerBits[i] = 0;
}
fL0Times->Set(fNEntries * 10);
}
Bool_t AliAODCaloTrigger::Add(Int_t col, Int_t row, Float_t amp, Float_t time, Int_t trgtimes[], Int_t ntrgtimes, Int_t trgts, Int_t trgbits)
{
fCurrent++;
fColumn[fCurrent] = col;
fRow[fCurrent] = row;
fAmplitude[fCurrent] = amp;
fTime[fCurrent] = time;
fNL0Times[fCurrent] = ntrgtimes;
fL1TimeSum[fCurrent] = trgts;
fTriggerBits[fCurrent] = trgbits;
if (ntrgtimes > 9)
{
AliError("Should not have more than 10 L0 times");
return kFALSE;
}
for (Int_t i = 0; i < fNL0Times[fCurrent]; i++) fL0Times->AddAt(trgtimes[i], 10 * fCurrent + i);
return kTRUE;
}
Bool_t AliAODCaloTrigger::Next()
{
if (fCurrent >= fNEntries - 1 || !fNEntries) return kFALSE;
fCurrent++;
return kTRUE;
}
void AliAODCaloTrigger::GetPosition(Int_t& col, Int_t& row) const
{
if (fCurrent == -1) return;
col = fColumn[fCurrent];
row = fRow[fCurrent];
}
void AliAODCaloTrigger::GetAmplitude(Float_t& amp) const
{
if (fCurrent == -1) return;
amp = fAmplitude[fCurrent];
}
void AliAODCaloTrigger::GetTime(Float_t& time) const
{
if (fCurrent == -1) return;
time = fTime[fCurrent];
}
void AliAODCaloTrigger::GetL1TimeSum(Int_t& amp) const
{
if (fCurrent == -1) return;
amp = fL1TimeSum[fCurrent];
}
void AliAODCaloTrigger::GetNL0Times(Int_t& ntimes) const
{
if (fCurrent == -1) return;
ntimes = fNL0Times[fCurrent];
}
void AliAODCaloTrigger::GetTriggerBits(Int_t& bits) const
{
if (fCurrent == -1) return;
bits = fTriggerBits[fCurrent];
}
void AliAODCaloTrigger::GetL0Times(Int_t times[]) const
{
if (fCurrent == -1) return;
for (Int_t i = 0; i < fNL0Times[fCurrent]; i++) times[i] = fL0Times->At(10 * fCurrent + i);
}
void AliAODCaloTrigger::Print(const Option_t* ) const
{
if (fCurrent == -1) return;
printf("============\n");
printf("--L0:\n");
printf("\tPOSITION (X: %2d Y: %2d) / FITTED F-ALTRO (AMP: %4f TIME: %3f)\n",
fColumn[fCurrent], fRow[fCurrent], fAmplitude[fCurrent], fTime[fCurrent]);
printf("\t%d L0 TIMES (", fNL0Times[fCurrent]);
for (Int_t i = 0; i < fNL0Times[fCurrent]; i++) printf("%2d ",fL0Times->At(10 * fCurrent + i));
printf(")\n");
printf("--L1:\n");
printf("\tTIME SUM: %4d\n", fL1TimeSum[fCurrent]);
printf("\tHIGH THRESHOLDS (GAMMA: %4d, JET: %4d)\n", fL1Threshold[0], fL1Threshold[1]);
printf("\tLOW THRESHOLDS (GAMMA: %4d, JET: %4d)\n", fL1Threshold[2], fL1Threshold[3]);
printf("--TRIGGER BITS: 0x%x\n", fTriggerBits[fCurrent]);
}
AliAODCaloTrigger.cxx:100 AliAODCaloTrigger.cxx:101 AliAODCaloTrigger.cxx:102 AliAODCaloTrigger.cxx:103 AliAODCaloTrigger.cxx:104 AliAODCaloTrigger.cxx:105 AliAODCaloTrigger.cxx:106 AliAODCaloTrigger.cxx:107 AliAODCaloTrigger.cxx:108 AliAODCaloTrigger.cxx:109 AliAODCaloTrigger.cxx:110 AliAODCaloTrigger.cxx:111 AliAODCaloTrigger.cxx:112 AliAODCaloTrigger.cxx:113 AliAODCaloTrigger.cxx:114 AliAODCaloTrigger.cxx:115 AliAODCaloTrigger.cxx:116 AliAODCaloTrigger.cxx:117 AliAODCaloTrigger.cxx:118 AliAODCaloTrigger.cxx:119 AliAODCaloTrigger.cxx:120 AliAODCaloTrigger.cxx:121 AliAODCaloTrigger.cxx:122 AliAODCaloTrigger.cxx:123 AliAODCaloTrigger.cxx:124 AliAODCaloTrigger.cxx:125 AliAODCaloTrigger.cxx:126 AliAODCaloTrigger.cxx:127 AliAODCaloTrigger.cxx:128 AliAODCaloTrigger.cxx:129 AliAODCaloTrigger.cxx:130 AliAODCaloTrigger.cxx:131 AliAODCaloTrigger.cxx:132 AliAODCaloTrigger.cxx:133 AliAODCaloTrigger.cxx:134 AliAODCaloTrigger.cxx:135 AliAODCaloTrigger.cxx:136 AliAODCaloTrigger.cxx:137 AliAODCaloTrigger.cxx:138 AliAODCaloTrigger.cxx:139 AliAODCaloTrigger.cxx:140 AliAODCaloTrigger.cxx:141 AliAODCaloTrigger.cxx:142 AliAODCaloTrigger.cxx:143 AliAODCaloTrigger.cxx:144 AliAODCaloTrigger.cxx:145 AliAODCaloTrigger.cxx:146 AliAODCaloTrigger.cxx:147 AliAODCaloTrigger.cxx:148 AliAODCaloTrigger.cxx:149 AliAODCaloTrigger.cxx:150 AliAODCaloTrigger.cxx:151 AliAODCaloTrigger.cxx:152 AliAODCaloTrigger.cxx:153 AliAODCaloTrigger.cxx:154 AliAODCaloTrigger.cxx:155 AliAODCaloTrigger.cxx:156 AliAODCaloTrigger.cxx:157 AliAODCaloTrigger.cxx:158 AliAODCaloTrigger.cxx:159 AliAODCaloTrigger.cxx:160 AliAODCaloTrigger.cxx:161 AliAODCaloTrigger.cxx:162 AliAODCaloTrigger.cxx:163 AliAODCaloTrigger.cxx:164 AliAODCaloTrigger.cxx:165 AliAODCaloTrigger.cxx:166 AliAODCaloTrigger.cxx:167 AliAODCaloTrigger.cxx:168 AliAODCaloTrigger.cxx:169 AliAODCaloTrigger.cxx:170 AliAODCaloTrigger.cxx:171 AliAODCaloTrigger.cxx:172 AliAODCaloTrigger.cxx:173 AliAODCaloTrigger.cxx:174 AliAODCaloTrigger.cxx:175 AliAODCaloTrigger.cxx:176 AliAODCaloTrigger.cxx:177 AliAODCaloTrigger.cxx:178 AliAODCaloTrigger.cxx:179 AliAODCaloTrigger.cxx:180 AliAODCaloTrigger.cxx:181 AliAODCaloTrigger.cxx:182 AliAODCaloTrigger.cxx:183 AliAODCaloTrigger.cxx:184 AliAODCaloTrigger.cxx:185 AliAODCaloTrigger.cxx:186 AliAODCaloTrigger.cxx:187 AliAODCaloTrigger.cxx:188 AliAODCaloTrigger.cxx:189 AliAODCaloTrigger.cxx:190 AliAODCaloTrigger.cxx:191 AliAODCaloTrigger.cxx:192 AliAODCaloTrigger.cxx:193 AliAODCaloTrigger.cxx:194 AliAODCaloTrigger.cxx:195 AliAODCaloTrigger.cxx:196 AliAODCaloTrigger.cxx:197 AliAODCaloTrigger.cxx:198 AliAODCaloTrigger.cxx:199 AliAODCaloTrigger.cxx:200 AliAODCaloTrigger.cxx:201 AliAODCaloTrigger.cxx:202 AliAODCaloTrigger.cxx:203 AliAODCaloTrigger.cxx:204 AliAODCaloTrigger.cxx:205 AliAODCaloTrigger.cxx:206 AliAODCaloTrigger.cxx:207 AliAODCaloTrigger.cxx:208 AliAODCaloTrigger.cxx:209 AliAODCaloTrigger.cxx:210 AliAODCaloTrigger.cxx:211 AliAODCaloTrigger.cxx:212 AliAODCaloTrigger.cxx:213 AliAODCaloTrigger.cxx:214 AliAODCaloTrigger.cxx:215 AliAODCaloTrigger.cxx:216 AliAODCaloTrigger.cxx:217 AliAODCaloTrigger.cxx:218 AliAODCaloTrigger.cxx:219 AliAODCaloTrigger.cxx:220 AliAODCaloTrigger.cxx:221 AliAODCaloTrigger.cxx:222 AliAODCaloTrigger.cxx:223 AliAODCaloTrigger.cxx:224 AliAODCaloTrigger.cxx:225 AliAODCaloTrigger.cxx:226 AliAODCaloTrigger.cxx:227 AliAODCaloTrigger.cxx:228 AliAODCaloTrigger.cxx:229 AliAODCaloTrigger.cxx:230 AliAODCaloTrigger.cxx:231 AliAODCaloTrigger.cxx:232 AliAODCaloTrigger.cxx:233 AliAODCaloTrigger.cxx:234 AliAODCaloTrigger.cxx:235 AliAODCaloTrigger.cxx:236 AliAODCaloTrigger.cxx:237 AliAODCaloTrigger.cxx:238 AliAODCaloTrigger.cxx:239 AliAODCaloTrigger.cxx:240 AliAODCaloTrigger.cxx:241 AliAODCaloTrigger.cxx:242 AliAODCaloTrigger.cxx:243 AliAODCaloTrigger.cxx:244 AliAODCaloTrigger.cxx:245 AliAODCaloTrigger.cxx:246 AliAODCaloTrigger.cxx:247 AliAODCaloTrigger.cxx:248 AliAODCaloTrigger.cxx:249 AliAODCaloTrigger.cxx:250 AliAODCaloTrigger.cxx:251 AliAODCaloTrigger.cxx:252 AliAODCaloTrigger.cxx:253 AliAODCaloTrigger.cxx:254 AliAODCaloTrigger.cxx:255 AliAODCaloTrigger.cxx:256 AliAODCaloTrigger.cxx:257 AliAODCaloTrigger.cxx:258 AliAODCaloTrigger.cxx:259 AliAODCaloTrigger.cxx:260 AliAODCaloTrigger.cxx:261 AliAODCaloTrigger.cxx:262 AliAODCaloTrigger.cxx:263 AliAODCaloTrigger.cxx:264 AliAODCaloTrigger.cxx:265 AliAODCaloTrigger.cxx:266 AliAODCaloTrigger.cxx:267 AliAODCaloTrigger.cxx:268 AliAODCaloTrigger.cxx:269 AliAODCaloTrigger.cxx:270 AliAODCaloTrigger.cxx:271 AliAODCaloTrigger.cxx:272 AliAODCaloTrigger.cxx:273 AliAODCaloTrigger.cxx:274 AliAODCaloTrigger.cxx:275 AliAODCaloTrigger.cxx:276 AliAODCaloTrigger.cxx:277 AliAODCaloTrigger.cxx:278 AliAODCaloTrigger.cxx:279 AliAODCaloTrigger.cxx:280 AliAODCaloTrigger.cxx:281 AliAODCaloTrigger.cxx:282 AliAODCaloTrigger.cxx:283 AliAODCaloTrigger.cxx:284 AliAODCaloTrigger.cxx:285 AliAODCaloTrigger.cxx:286 AliAODCaloTrigger.cxx:287 AliAODCaloTrigger.cxx:288 AliAODCaloTrigger.cxx:289 AliAODCaloTrigger.cxx:290 AliAODCaloTrigger.cxx:291 AliAODCaloTrigger.cxx:292 AliAODCaloTrigger.cxx:293 AliAODCaloTrigger.cxx:294 AliAODCaloTrigger.cxx:295 AliAODCaloTrigger.cxx:296 AliAODCaloTrigger.cxx:297 AliAODCaloTrigger.cxx:298 AliAODCaloTrigger.cxx:299 AliAODCaloTrigger.cxx:300 AliAODCaloTrigger.cxx:301 AliAODCaloTrigger.cxx:302 AliAODCaloTrigger.cxx:303 AliAODCaloTrigger.cxx:304 AliAODCaloTrigger.cxx:305