#include "Riostream.h"
#include "TBranch.h"
#include "TClonesArray.h"
#include "TMath.h"
#include "TRandom.h"
#include "AliBitPacking.h"
#include "AliDAQ.h"
#include "AliLog.h"
#include "AliRawDataHeaderSim.h"
#include "AliFstream.h"
#include "AliTOFDDLRawData.h"
#include "AliTOFDigitMap.h"
#include "AliTOFdigit.h"
#include "AliTOFGeometry.h"
#include "AliTOFRawStream.h"
extern TRandom *gRandom;
using std::ofstream;
using std::endl;
using std::cout;
using std::ios;
ClassImp(AliTOFDDLRawData)
AliTOFDDLRawData::AliTOFDDLRawData():
TObject(),
fVerbose(0),
fIndex(-1),
fPackedAcquisition(kFALSE),
fFakeOrphaneProduction(kFALSE),
fMatchingWindow(8192),
fTOFdigitMap(new AliTOFDigitMap()),
fTOFdigitArray(0x0),
fWordsPerDRM(0),
fWordsPerTRM(0),
fWordsPerChain(0)
{
}
AliTOFDDLRawData::AliTOFDDLRawData(const AliTOFDDLRawData &source) :
TObject(source),
fVerbose(source.fVerbose),
fIndex(source.fIndex),
fPackedAcquisition(source.fPackedAcquisition),
fFakeOrphaneProduction(source.fFakeOrphaneProduction),
fMatchingWindow(source.fMatchingWindow),
fTOFdigitMap(source.fTOFdigitMap),
fTOFdigitArray(source.fTOFdigitArray),
fWordsPerDRM(source.fWordsPerDRM),
fWordsPerTRM(source.fWordsPerTRM),
fWordsPerChain(source.fWordsPerChain)
{
return;
}
AliTOFDDLRawData& AliTOFDDLRawData::operator=(const AliTOFDDLRawData &source) {
if (this == &source)
return *this;
TObject::operator=(source);
fIndex=source.fIndex;
fVerbose=source.fVerbose;
fPackedAcquisition=source.fPackedAcquisition;
fFakeOrphaneProduction=source.fFakeOrphaneProduction;
fMatchingWindow=source.fMatchingWindow;
fTOFdigitMap=source.fTOFdigitMap;
fTOFdigitArray=source.fTOFdigitArray;
fWordsPerDRM=source.fWordsPerDRM;
fWordsPerTRM=source.fWordsPerTRM;
fWordsPerChain=source.fWordsPerChain;
return *this;
}
AliTOFDDLRawData::~AliTOFDDLRawData()
{
delete fTOFdigitMap;
}
Int_t AliTOFDDLRawData::RawDataTOF(TBranch* branch)
{
const Int_t kSize = 5000;
UInt_t buf[kSize];
fTOFdigitMap->Clear();
fIndex = -1;
fTOFdigitArray = * (TClonesArray**) branch->GetAddress();
AliFstream* outfile;
AliRawDataHeaderSim header;
UInt_t sizeRawData = 0;
branch->GetEvent();
GetDigits();
Int_t jj = -1;
Int_t iDDL = -1;
Int_t nDDL = -1;
Int_t nTRM = 0;
Int_t iChain = -1;
for (nDDL=0; nDDL<AliDAQ::NumberOfDdls("TOF"); nDDL++) {
char fileName[256]="";
strncpy(fileName,AliDAQ::DdlFileName("TOF",nDDL),255);
outfile = new AliFstream(fileName);
iDDL = AliTOFRawStream::GetDDLnumberPerSector(nDDL);
UInt_t dataHeaderPosition = outfile->Tellp();
outfile->WriteBuffer((char*)(&header),sizeof(header));
MakeDRMtrailer(buf);
for (nTRM=AliTOFGeometry::NTRM(); nTRM>=3; nTRM--) {
fWordsPerTRM = 0;
if (iDDL%2==0 && nTRM==3) continue;
for (iChain=AliTOFGeometry::NChain()-1; iChain>=0; iChain--) {
MakeTRMchainTrailer(iChain, buf); fWordsPerTRM++;
MakeTDCdigits(nDDL, nTRM, iChain, buf);
MakeTRMchainHeader(nTRM, iChain, buf); fWordsPerTRM++;
}
MakeTRMheader(nTRM, buf); fWordsPerTRM++;
if ((fWordsPerTRM+1)%2!=0) {
MakeTRMfiller(buf); fWordsPerTRM++;
}
MakeTRMtrailer(buf); fWordsPerDRM++;
fWordsPerDRM += fWordsPerTRM;
}
MakeLTMtrailer(buf); fWordsPerDRM++;
MakeLTMdata(buf); fWordsPerDRM+=48;
MakeLTMheader(buf); fWordsPerDRM++;
MakeDRMheader(nDDL, buf);
ReverseArray(buf, fIndex+1);
outfile->WriteBuffer((char *)buf,((fIndex+1)*sizeof(UInt_t)));
for (jj=0; jj<(fIndex+1); jj++) buf[jj]=0;
fIndex = -1;
UInt_t currentFilePosition = outfile->Tellp();
sizeRawData = currentFilePosition - dataHeaderPosition - sizeof(header);
header.fSize = currentFilePosition - dataHeaderPosition;
header.SetAttribute(0);
outfile->Seekp(dataHeaderPosition);
outfile->WriteBuffer((char*)(&header),sizeof(header));
outfile->Seekp(currentFilePosition);
delete outfile;
}
return 0;
}
void AliTOFDDLRawData::GetDigits()
{
Int_t vol[5] = {-1,-1,-1,-1,-1};
Int_t digit = -1;
Int_t ndigits = fTOFdigitArray->GetEntries();
AliDebug(2, Form(" Number of read digits = %d",ndigits));
AliTOFdigit *digs;
for (digit=0; digit<ndigits; digit++) {
digs = (AliTOFdigit*)fTOFdigitArray->UncheckedAt(digit);
vol[0] = digs->GetSector();
vol[1] = digs->GetPlate();
vol[2] = digs->GetStrip();
vol[3] = digs->GetPadx();
vol[4] = digs->GetPadz();
fTOFdigitMap->AddDigit(vol, digit);
}
AliDebug(2,Form(" Number of mapped digits = %d",fTOFdigitMap->GetFilledCellNumber()));
}
void AliTOFDDLRawData::MakeDRMheader(Int_t nDDL, UInt_t *buf)
{
Int_t iDDL = AliTOFRawStream::GetDDLnumberPerSector(nDDL);
Int_t iSector = AliTOFRawStream::GetSectorNumber(nDDL);
UInt_t baseWord=0;
UInt_t word;
baseWord=0;
word = 1;
AliBitPacking::PackWord(word,baseWord, 0, 3);
word = 0;
AliBitPacking::PackWord(word,baseWord, 4,19);
word = 0;
AliBitPacking::PackWord(word,baseWord,20,27);
word = 4;
AliBitPacking::PackWord(word,baseWord,28,31);
fIndex++;
buf[fIndex]=baseWord;
baseWord=0;
word = 1;
AliBitPacking::PackWord(word,baseWord, 0, 3);
word = 0;
AliBitPacking::PackWord(word,baseWord, 4,13);
word = 0;
AliBitPacking::PackWord(word,baseWord, 14,14);
word = 0;
AliBitPacking::PackWord(word,baseWord, 15,15);
word = 0;
AliBitPacking::PackWord(word,baseWord, 16,18);
word = 0;
AliBitPacking::PackWord(word,baseWord, 19,19);
word = 0;
AliBitPacking::PackWord(word,baseWord, 20,27);
word = 4;
AliBitPacking::PackWord(word,baseWord,28,31);
fIndex++;
buf[fIndex]=baseWord;
baseWord=0;
word = 1;
AliBitPacking::PackWord(word,baseWord, 0, 3);
word = 0;
AliBitPacking::PackWord(word,baseWord, 4,15);
word = 0;
AliBitPacking::PackWord(word,baseWord, 16,27);
word = 4;
AliBitPacking::PackWord(word,baseWord,28,31);
fIndex++;
buf[fIndex]=baseWord;
baseWord=0;
word = 1;
AliBitPacking::PackWord(word,baseWord, 0, 3);
if (iDDL%2==1) {
word = 2047;
AliBitPacking::PackWord(word,baseWord, 4,14);
} else {
word = 2045;
AliBitPacking::PackWord(word,baseWord, 4,14);
}
word = 0;
AliBitPacking::PackWord(word,baseWord,15,15);
word = 0;
AliBitPacking::PackWord(word,baseWord,16,26);
word = 0;
AliBitPacking::PackWord(word,baseWord,27,27);
word = 4;
AliBitPacking::PackWord(word,baseWord,28,31);
fIndex++;
buf[fIndex]=baseWord;
baseWord=0;
word = 1;
AliBitPacking::PackWord(word,baseWord, 0, 3);
if (iDDL%2==1) {
word = 2047;
AliBitPacking::PackWord(word,baseWord, 4,14);
} else {
word = 2045;
AliBitPacking::PackWord(word,baseWord, 4,14);
}
word = 1;
AliBitPacking::PackWord(word,baseWord,15,15);
word = 0;
AliBitPacking::PackWord(word,baseWord,16,20);
word = 0;
AliBitPacking::PackWord(word,baseWord,21,24);
word = 0;
AliBitPacking::PackWord(word,baseWord,25,27);
word = 4;
AliBitPacking::PackWord(word,baseWord,28,31);
fIndex++;
buf[fIndex]=baseWord;
baseWord=0;
word = 1;
AliBitPacking::PackWord(word,baseWord, 0, 3);
word = fIndex+1 + 1;
AliBitPacking::PackWord(word,baseWord, 4,20);
word = iDDL;
AliBitPacking::PackWord(word,baseWord,21,22);
word = iSector;
AliBitPacking::PackWord(word,baseWord,23,27);
word = 4;
AliBitPacking::PackWord(word,baseWord,28,31);
fIndex++;
buf[fIndex]=baseWord;
}
void AliTOFDDLRawData::MakeDRMtrailer(UInt_t *buf)
{
UInt_t baseWord;
UInt_t word;
baseWord=0;
word = 1;
AliBitPacking::PackWord(word,baseWord, 0, 3);
word = 0;
AliBitPacking::PackWord(word,baseWord, 4,15);
word = 0;
AliBitPacking::PackWord(word,baseWord,16,27);
word = 5;
AliBitPacking::PackWord(word,baseWord,28,31);
fIndex++;
buf[fIndex]=baseWord;
}
void AliTOFDDLRawData::MakeLTMheader(UInt_t *buf)
{
UInt_t baseWord;
UInt_t word;
baseWord=0;
word = 2;
AliBitPacking::PackWord(word,baseWord, 0, 3);
word = 35;
AliBitPacking::PackWord(word,baseWord, 4,16);
word = 0;
AliBitPacking::PackWord(word,baseWord,17,17);
word = 0;
AliBitPacking::PackWord(word,baseWord,18,23);
word = 0;
AliBitPacking::PackWord(word,baseWord,24,27);
word = 4;
AliBitPacking::PackWord(word,baseWord,28,31);
fIndex++;
buf[fIndex]=baseWord;
}
void AliTOFDDLRawData::MakeLTMdata(UInt_t *buf)
{
UInt_t baseWord;
UInt_t word;
baseWord=0;
word = 0;
AliBitPacking::PackWord(word,baseWord,0,9);
word = 0;
AliBitPacking::PackWord(word,baseWord,10,19);
word = 0;
AliBitPacking::PackWord(word,baseWord,20,29);
word = 0;
AliBitPacking::PackWord(word,baseWord,30,30);
word = 0;
AliBitPacking::PackWord(word,baseWord,31,31);
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
baseWord=0;
word = 100;
AliBitPacking::PackWord(word,baseWord, 0, 9);
word = 100;
AliBitPacking::PackWord(word,baseWord,10,19);
word = 100;
AliBitPacking::PackWord(word,baseWord,20,29);
word = 0;
AliBitPacking::PackWord(word,baseWord,30,30);
word = 0;
AliBitPacking::PackWord(word,baseWord,31,31);
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
baseWord=0;
word = 0;
AliBitPacking::PackWord(word,baseWord, 0, 9);
word = 0;
AliBitPacking::PackWord(word,baseWord,10,19);
word = 0;
AliBitPacking::PackWord(word,baseWord,20,29);
word = 0;
AliBitPacking::PackWord(word,baseWord,30,30);
word = 0;
AliBitPacking::PackWord(word,baseWord,31,31);
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
baseWord=0;
word = 0;
AliBitPacking::PackWord(word,baseWord, 0, 7);
word = 0;
AliBitPacking::PackWord(word,baseWord, 8,15);
word = 0;
AliBitPacking::PackWord(word,baseWord,16,23);
word = 0;
AliBitPacking::PackWord(word,baseWord,24,31);
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
fIndex++;
buf[fIndex]=baseWord;
}
void AliTOFDDLRawData::MakeLTMtrailer(UInt_t *buf)
{
UInt_t baseWord;
UInt_t word;
baseWord=0;
word = 2;
AliBitPacking::PackWord(word,baseWord, 0, 3);
word = 0;
AliBitPacking::PackWord(word,baseWord, 4,15);
word = 0;
AliBitPacking::PackWord(word,baseWord,16,27);
word = 5;
AliBitPacking::PackWord(word,baseWord,28,31);
fIndex++;
buf[fIndex]=baseWord;
}
void AliTOFDDLRawData::MakeTRMheader(Int_t nTRM, UInt_t *buf)
{
if (nTRM<3 || nTRM>12) {
AliWarning(Form(" TRM number is out of the right range [3;12] (nTRM = %3i",nTRM));
return;
}
UInt_t baseWord;
UInt_t word;
baseWord = 0;
word = nTRM;
AliBitPacking::PackWord(word,baseWord, 0, 3);
word = 0;
AliBitPacking::PackWord(word,baseWord, 4,16);
if (fPackedAcquisition)
word = 0;
else
word = 3;
AliBitPacking::PackWord(word,baseWord,17,18);
word = 0;
AliBitPacking::PackWord(word,baseWord,19,19);
word = 0;
AliBitPacking::PackWord(word,baseWord,20,27);
word = 4;
AliBitPacking::PackWord(word,baseWord,28,31);
fIndex++;
buf[fIndex]=baseWord;
}
void AliTOFDDLRawData::MakeTRMtrailer(UInt_t *buf)
{
UInt_t baseWord;
UInt_t word;
baseWord=0;
word = 15;
AliBitPacking::PackWord(word,baseWord, 0, 3);
UInt_t trmCRC=0x0;
for (Int_t ii=fIndex-(fWordsPerTRM-1); ii<fIndex; ii++)
trmCRC ^= buf[ii];
word = 0x0;
word ^= ( (trmCRC & 0x00000fff) >> 0);
word ^= ( (trmCRC & 0x00fff000) >> 12);
word ^= ( (trmCRC & 0xff000000) >> 24);
AliBitPacking::PackWord(word,baseWord, 4,15);
word = 0;
AliBitPacking::PackWord(word,baseWord,16,27);
word = 5;
AliBitPacking::PackWord(word,baseWord,28,31);
fIndex++;
for (Int_t ii=fIndex; ii>fIndex-fWordsPerTRM; ii--)
buf[ii]=buf[ii-1];
buf[fIndex-fWordsPerTRM] = baseWord;
}
void AliTOFDDLRawData::MakeTRMchainHeader(Int_t nTRM, Int_t iChain,
UInt_t *buf)
{
UInt_t baseWord;
UInt_t word;
if (nTRM<3 || nTRM>12) {
AliWarning(Form(" TRM number is out of the right range [3;12] (nTRM = %3i", nTRM));
return;
}
if (iChain<0 || iChain>1) {
AliWarning(Form(" Chain number is out of the right range [0;1] (iChain = %3i", iChain));
return;
}
baseWord=0;
word = nTRM;
AliBitPacking::PackWord(word,baseWord, 0, 3);
word = 0;
AliBitPacking::PackWord(word,baseWord, 4,15);
word = 0;
AliBitPacking::PackWord(word,baseWord,16,23);
word = 0;
AliBitPacking::PackWord(word,baseWord,24,26);
word = 0;
AliBitPacking::PackWord(word,baseWord,27,27);
switch (iChain) {
case 0:
word = 0;
break;
case 1:
word = 2;
break;
}
AliBitPacking::PackWord(word,baseWord,28,31);
fIndex++;
buf[fIndex]=baseWord;
}
void AliTOFDDLRawData::MakeTRMfiller(UInt_t *buf)
{
Int_t jj = -1;
fIndex++;
for (jj=fIndex; jj>fIndex-fWordsPerTRM; jj--)
buf[jj] = buf[jj-1];
buf[fIndex-fWordsPerTRM] = MakeFiller();
}
UInt_t AliTOFDDLRawData::MakeFiller() const
{
UInt_t baseWord;
UInt_t word;
baseWord=0;
word = 0;
AliBitPacking::PackWord(word,baseWord, 0, 3);
word = 0;
AliBitPacking::PackWord(word,baseWord, 4,27);
word = 7;
AliBitPacking::PackWord(word,baseWord, 28,31);
return baseWord;
}
void AliTOFDDLRawData::MakeTRMchainTrailer(Int_t iChain, UInt_t *buf)
{
if (iChain<0 || iChain>1) {
AliWarning(Form(" Chain number is out of the right range [0;1] (iChain = %3i", iChain));
return;
}
UInt_t baseWord;
UInt_t word;
baseWord=0;
word = 0;
AliBitPacking::PackWord(word,baseWord, 0, 3);
word = 0;
AliBitPacking::PackWord(word,baseWord, 4,15);
word = 0;
AliBitPacking::PackWord(word,baseWord,16,27);
switch (iChain) {
case 0:
word = 1;
break;
case 1:
word = 3;
break;
}
AliBitPacking::PackWord(word,baseWord,28,31);
fIndex++;
buf[fIndex]=baseWord;
}
void AliTOFDDLRawData::MakeTDCdigits(Int_t nDDL, Int_t nTRM, Int_t iChain, UInt_t *buf)
{
const Double_t kOneMoreFilledCell = 1./(AliTOFGeometry::NPadXSector()*AliTOFGeometry::NSectors());
Double_t percentFilledCells = Double_t(fTOFdigitMap->GetFilledCellNumber())/(AliTOFGeometry::NPadXSector()*AliTOFGeometry::NSectors());
if (nDDL<0 || nDDL>71) {
AliWarning(Form(" DDL number is out of the right range [0;71] (nDDL = %3i", nDDL));
return;
}
if (nTRM<3 || nTRM>12) {
AliWarning(Form(" TRM number is out of the right range [3;12] (nTRM = %3i", nTRM));
return;
}
if (iChain<0 || iChain>1) {
AliWarning(Form(" Chain number is out of the right range [0;1] (iChain = %3i", iChain));
return;
}
Int_t psArray[1000];
UInt_t localBuffer[1000];
Int_t localIndex = -1;
Int_t iDDL = nDDL%AliTOFGeometry::NDDL();
Int_t volume[5] = {-1, -1, -1, -1, -1};
Int_t indexDigit[3] = {-1, -1, -1};
Int_t totCharge = -1;
Int_t timeOfFlight = -1;
Int_t trailingSpurious = -1;
Int_t leadingSpurious = -1;
AliTOFdigit *digs;
UInt_t baseWord=0;
UInt_t word=0;
Int_t jj = -1;
Int_t nTDC = -1;
Int_t iCH = -1;
Bool_t outOut = HeadOrTail();
ofstream ftxt;
if (fVerbose==2) ftxt.open("TOFdigits.txt",ios::app);
for (jj=0; jj<5; jj++) volume[jj] = -1;
for (nTDC=AliTOFGeometry::NTdc()-1; nTDC>=0; nTDC--) {
if (iDDL%2==1 && nTRM==3 && (Int_t)(nTDC/3)!=0) continue;
for (iCH=AliTOFGeometry::NCh()-1; iCH>=0; iCH--) {
for (Int_t aa=0; aa<5; aa++) volume[aa]=-1;
AliTOFRawStream::EquipmentId2VolumeId(nDDL, nTRM, iChain, nTDC, iCH, volume);
AliDebug(3,Form(" volume -> %2d %1d %2d %2d %1d",volume[0],volume[1],volume[2],volume[3],volume[4]));
if (volume[0]==-1 || volume[1]==-1 || volume[2]==-1 ||
volume[3]==-1 || volume[4]==-1) continue;
AliDebug(3,Form(" ====== %2d %1d %2d %2d %1d",volume[0],volume[1],volume[2],volume[3],volume[4]));
for (jj=0; jj<3; jj++) indexDigit[jj] = -1;
fTOFdigitMap->GetDigitIndex(volume, indexDigit);
if (indexDigit[0]<0) {
trailingSpurious = Int_t(2097152*gRandom->Rndm());
leadingSpurious = Int_t(2097152*gRandom->Rndm());
if ( fFakeOrphaneProduction &&
( ( fPackedAcquisition && percentFilledCells<0.12 && gRandom->Rndm()<(0.12-percentFilledCells) ) ||
(!fPackedAcquisition && percentFilledCells<0.24 && gRandom->Rndm()<(0.24-percentFilledCells) ) ) ) {
percentFilledCells+=kOneMoreFilledCell;
Int_t dummyPS = 0;
if (outOut) {
word = trailingSpurious;
dummyPS = 2;
}
else {
word = leadingSpurious;
dummyPS = 1;
}
if (fVerbose==2) {
if (nDDL<10) ftxt << " " << nDDL;
else ftxt << " " << nDDL;
if (nTRM<10) ftxt << " " << nTRM;
else ftxt << " " << nTRM;
ftxt << " " << iChain;
if (nTDC<10) ftxt << " " << nTDC;
else ftxt << " " << nTDC;
ftxt << " " << iCH;
if (volume[0]<10) ftxt << " -> " << volume[0];
else ftxt << " -> " << volume[0];
ftxt << " " << volume[1];
if (volume[2]<10) ftxt << " " << volume[2];
else ftxt << " " << volume[2];
ftxt << " " << volume[4];
if (volume[3]<10) ftxt << " " << volume[3];
else ftxt << " " << volume[3];
ftxt << " " << -1;
if (word<10) ftxt << " " << word;
else if (word>=10 && word<100) ftxt << " " << word;
else if (word>=100 && word<1000) ftxt << " " << word;
else if (word>=1000 && word<10000) ftxt << " " << word;
else if (word>=10000 && word<100000) ftxt << " " << word;
else if (word>=100000 && word<1000000) ftxt << " " << word;
else ftxt << " " << word;
ftxt << " " << dummyPS << endl;
}
AliBitPacking::PackWord(word,baseWord, 0,20);
word = iCH;
AliBitPacking::PackWord(word,baseWord,21,23);
word = nTDC;
AliBitPacking::PackWord(word,baseWord,24,27);
word = 0;
AliBitPacking::PackWord(word,baseWord,28,28);
word = dummyPS;
AliBitPacking::PackWord(word,baseWord,29,30);
word = 1;
AliBitPacking::PackWord(word,baseWord,31,31);
localIndex++; fWordsPerTRM++;
localBuffer[localIndex]=baseWord;
psArray[localIndex]=dummyPS;
baseWord=0;
}
}
for (jj=0; jj<3;jj++) {
if (indexDigit[jj]<0) continue;
AliDebug(3,Form(" ====== %2d %1d %2d %2d %1d -> %1d %d",volume[0],volume[1],volume[2],volume[3],volume[4],jj,indexDigit[jj]));
digs = (AliTOFdigit*)fTOFdigitArray->UncheckedAt(indexDigit[jj]);
if (digs->GetSector()!=volume[0] ||
digs->GetPlate() !=volume[1] ||
digs->GetStrip() !=volume[2] ||
digs->GetPadx() !=volume[3] ||
digs->GetPadz() !=volume[4]) AliWarning(Form(" --- ERROR --- %2i (%2i) %1i (%1i) %2i (%2i) %2i (%2i) %1i (%1i)",
digs->GetSector(), volume[0],
digs->GetPlate(), volume[1],
digs->GetStrip(), volume[2],
digs->GetPadx(), volume[3],
digs->GetPadz(), volume[4])
);
timeOfFlight = (Int_t)(digs->GetTdc());
;
if (digs->GetTdcND()>=fMatchingWindow) {
AliDebug(2,"Out of matching window.");
continue;
}
else AliDebug(2,"In matching window");
totCharge = (Int_t)(digs->GetToT());
if (totCharge<0) totCharge = 0;
if (fPackedAcquisition) {
if (fVerbose==2) {
if (nDDL<10) ftxt << " " << nDDL;
else ftxt << " " << nDDL;
if (nTRM<10) ftxt << " " << nTRM;
else ftxt << " " << nTRM;
ftxt << " " << iChain;
if (nTDC<10) ftxt << " " << nTDC;
else ftxt << " " << nTDC;
ftxt << " " << iCH;
if (volume[0]<10) ftxt << " -> " << volume[0];
else ftxt << " -> " << volume[0];
ftxt << " " << volume[1];
if (volume[2]<10) ftxt << " " << volume[2];
else ftxt << " " << volume[2];
ftxt << " " << volume[4];
if (volume[3]<10) ftxt << " " << volume[3];
else ftxt << " " << volume[3];
if (totCharge<10) ftxt << " " << totCharge;
else if (totCharge>=10 && totCharge<100) ftxt << " " << totCharge;
else ftxt << " " << totCharge;
if (timeOfFlight<10) ftxt << " " << timeOfFlight << endl;
else if (timeOfFlight>=10 && timeOfFlight<100) ftxt << " " << timeOfFlight << endl;
else if (timeOfFlight>=100 && timeOfFlight<1000) ftxt << " " << timeOfFlight << endl;
else ftxt << " " << timeOfFlight << endl;
}
word = timeOfFlight%8192;
AliBitPacking::PackWord(word,baseWord, 0,12);
if (totCharge>=256) totCharge = 255;
word = totCharge;
AliBitPacking::PackWord(word,baseWord,13,20);
word = iCH;
AliBitPacking::PackWord(word,baseWord,21,23);
word = nTDC;
AliBitPacking::PackWord(word,baseWord,24,27);
word = 0;
AliBitPacking::PackWord(word,baseWord,28,28);
word = 0;
AliBitPacking::PackWord(word,baseWord,29,30);
word = 1;
AliBitPacking::PackWord(word,baseWord,31,31);
localIndex++; fWordsPerTRM++;
localBuffer[localIndex]=baseWord;
baseWord=0;
if ( fFakeOrphaneProduction &&
percentFilledCells<0.12 && gRandom->Rndm()<(0.12-percentFilledCells) ) {
percentFilledCells+=kOneMoreFilledCell;
trailingSpurious = Int_t(2097152*gRandom->Rndm());
leadingSpurious = Int_t(2097152*gRandom->Rndm());
Int_t dummyPS = 0;
if (outOut) {
word = trailingSpurious;
dummyPS = 2;
}
else {
word = leadingSpurious;
dummyPS = 1;
}
if (fVerbose==2) {
if (nDDL<10) ftxt << " " << nDDL;
else ftxt << " " << nDDL;
if (nTRM<10) ftxt << " " << nTRM;
else ftxt << " " << nTRM;
ftxt << " " << iChain;
if (nTDC<10) ftxt << " " << nTDC;
else ftxt << " " << nTDC;
ftxt << " " << iCH;
if (volume[0]<10) ftxt << " -> " << volume[0];
else ftxt << " -> " << volume[0];
ftxt << " " << volume[1];
if (volume[2]<10) ftxt << " " << volume[2];
else ftxt << " " << volume[2];
ftxt << " " << volume[4];
if (volume[3]<10) ftxt << " " << volume[3];
else ftxt << " " << volume[3];
ftxt << " " << -1;
if (word<10) ftxt << " " << word;
else if (word>=10 && word<100) ftxt << " " << word;
else if (word>=100 && word<1000) ftxt << " " << word;
else if (word>=1000 && word<10000) ftxt << " " << word;
else if (word>=10000 && word<100000) ftxt << " " << word;
else if (word>=100000 && word<1000000) ftxt << " " << word;
else ftxt << " " << word;
ftxt << " " << dummyPS << endl;
}
AliBitPacking::PackWord(word,baseWord, 0,20);
word = iCH;
AliBitPacking::PackWord(word,baseWord,21,23);
word = nTDC;
AliBitPacking::PackWord(word,baseWord,24,27);
word = 0;
AliBitPacking::PackWord(word,baseWord,28,28);
word = dummyPS;
AliBitPacking::PackWord(word,baseWord,29,30);
word = 1;
AliBitPacking::PackWord(word,baseWord,31,31);
localIndex++; fWordsPerTRM++;
localBuffer[localIndex]=baseWord;
psArray[localIndex]=dummyPS;
baseWord=0;
}
}
else {
if ( fFakeOrphaneProduction &&
percentFilledCells<0.24 && gRandom->Rndm()<(0.24-percentFilledCells) && outOut ) {
percentFilledCells+=kOneMoreFilledCell;
trailingSpurious = Int_t(2097152*gRandom->Rndm());
word = trailingSpurious;
Int_t dummyPS = 2;
if (fVerbose==2) {
if (nDDL<10) ftxt << " " << nDDL;
else ftxt << " " << nDDL;
if (nTRM<10) ftxt << " " << nTRM;
else ftxt << " " << nTRM;
ftxt << " " << iChain;
if (nTDC<10) ftxt << " " << nTDC;
else ftxt << " " << nTDC;
ftxt << " " << iCH;
if (volume[0]<10) ftxt << " -> " << volume[0];
else ftxt << " -> " << volume[0];
ftxt << " " << volume[1];
if (volume[2]<10) ftxt << " " << volume[2];
else ftxt << " " << volume[2];
ftxt << " " << volume[4];
if (volume[3]<10) ftxt << " " << volume[3];
else ftxt << " " << volume[3];
ftxt << " " << -1;
if (word<10) ftxt << " " << word;
else if (word>=10 && word<100) ftxt << " " << word;
else if (word>=100 && word<1000) ftxt << " " << word;
else if (word>=1000 && word<10000) ftxt << " " << word;
else if (word>=10000 && word<100000) ftxt << " " << word;
else if (word>=100000 && word<1000000) ftxt << " " << word;
else ftxt << " " << word;
ftxt << " " << dummyPS << endl;
}
AliBitPacking::PackWord(word,baseWord, 0,20);
word = iCH;
AliBitPacking::PackWord(word,baseWord,21,23);
word = nTDC;
AliBitPacking::PackWord(word,baseWord,24,27);
word = 0;
AliBitPacking::PackWord(word,baseWord,28,28);
word = dummyPS;
AliBitPacking::PackWord(word,baseWord,29,30);
word = 1;
AliBitPacking::PackWord(word,baseWord,31,31);
localIndex++; fWordsPerTRM++;
localBuffer[localIndex]=baseWord;
psArray[localIndex]=dummyPS;
baseWord=0;
}
word = (timeOfFlight + Int_t(totCharge*AliTOFGeometry::ToTBinWidth()/AliTOFGeometry::TdcBinWidth()))%2097152;
if (fVerbose==2) {
if (nDDL<10) ftxt << " " << nDDL;
else ftxt << " " << nDDL;
if (nTRM<10) ftxt << " " << nTRM;
else ftxt << " " << nTRM;
ftxt << " " << iChain;
if (nTDC<10) ftxt << " " << nTDC;
else ftxt << " " << nTDC;
ftxt << " " << iCH;
if (volume[0]<10) ftxt << " -> " << volume[0];
else ftxt << " -> " << volume[0];
ftxt << " " << volume[1];
if (volume[2]<10) ftxt << " " << volume[2];
else ftxt << " " << volume[2];
ftxt << " " << volume[4];
if (volume[3]<10) ftxt << " " << volume[3];
else ftxt << " " << volume[3];
ftxt << " " << -1;
if (word<10) ftxt << " " << word;
else if (word>=10 && word<100) ftxt << " " << word;
else if (word>=100 && word<1000) ftxt << " " << word;
else if (word>=1000 && word<10000) ftxt << " " << word;
else if (word>=10000 && word<100000) ftxt << " " << word;
else if (word>=100000 && word<1000000) ftxt << " " << word;
else ftxt << " " << word;
ftxt << " " << 2 << endl;
}
AliBitPacking::PackWord(word,baseWord, 0,20);
word = iCH;
AliBitPacking::PackWord(word,baseWord,21,23);
word = nTDC;
AliBitPacking::PackWord(word,baseWord,24,27);
word = 0;
AliBitPacking::PackWord(word,baseWord,28,28);
word = 2;
AliBitPacking::PackWord(word,baseWord,29,30);
word = 1;
AliBitPacking::PackWord(word,baseWord,31,31);
localIndex++; fWordsPerTRM++;
localBuffer[localIndex]=baseWord;
psArray[localIndex]=2;
baseWord=0;
word = timeOfFlight%2097152;
if (fVerbose==2) {
if (nDDL<10) ftxt << " " << nDDL;
else ftxt << " " << nDDL;
if (nTRM<10) ftxt << " " << nTRM;
else ftxt << " " << nTRM;
ftxt << " " << iChain;
if (nTDC<10) ftxt << " " << nTDC;
else ftxt << " " << nTDC;
ftxt << " " << iCH;
if (volume[0]<10) ftxt << " -> " << volume[0];
else ftxt << " -> " << volume[0];
ftxt << " " << volume[1];
if (volume[2]<10) ftxt << " " << volume[2];
else ftxt << " " << volume[2];
ftxt << " " << volume[4];
if (volume[3]<10) ftxt << " " << volume[3];
else ftxt << " " << volume[3];
ftxt << " " << -1;
if (word<10) ftxt << " " << word;
else if (word>=10 && word<100) ftxt << " " << word;
else if (word>=100 && word<1000) ftxt << " " << word;
else if (word>=1000 && word<10000) ftxt << " " << word;
else if (word>=10000 && word<100000) ftxt << " " << word;
else if (word>=100000 && word<1000000) ftxt << " " << word;
else ftxt << " " << word;
ftxt << " " << 1 << endl;
}
AliBitPacking::PackWord(word,baseWord, 0,20);
word = iCH;
AliBitPacking::PackWord(word,baseWord,21,23);
word = nTDC;
AliBitPacking::PackWord(word,baseWord,24,27);
word = 0;
AliBitPacking::PackWord(word,baseWord,28,28);
word = 1;
AliBitPacking::PackWord(word,baseWord,29,30);
word = 1;
AliBitPacking::PackWord(word,baseWord,31,31);
localIndex++; fWordsPerTRM++;
localBuffer[localIndex]=baseWord;
psArray[localIndex]=1;
baseWord=0;
if ( fFakeOrphaneProduction &&
percentFilledCells<0.24 && gRandom->Rndm()<(0.24-percentFilledCells) && !outOut ) {
percentFilledCells+=kOneMoreFilledCell;
leadingSpurious = Int_t(2097152*gRandom->Rndm());
word = leadingSpurious;
Int_t dummyPS = 1;
if (fVerbose==2) {
if (nDDL<10) ftxt << " " << nDDL;
else ftxt << " " << nDDL;
if (nTRM<10) ftxt << " " << nTRM;
else ftxt << " " << nTRM;
ftxt << " " << iChain;
if (nTDC<10) ftxt << " " << nTDC;
else ftxt << " " << nTDC;
ftxt << " " << iCH;
if (volume[0]<10) ftxt << " -> " << volume[0];
else ftxt << " -> " << volume[0];
ftxt << " " << volume[1];
if (volume[2]<10) ftxt << " " << volume[2];
else ftxt << " " << volume[2];
ftxt << " " << volume[4];
if (volume[3]<10) ftxt << " " << volume[3];
else ftxt << " " << volume[3];
ftxt << " " << -1;
if (word<10) ftxt << " " << word;
else if (word>=10 && word<100) ftxt << " " << word;
else if (word>=100 && word<1000) ftxt << " " << word;
else if (word>=1000 && word<10000) ftxt << " " << word;
else if (word>=10000 && word<100000) ftxt << " " << word;
else if (word>=100000 && word<1000000) ftxt << " " << word;
else ftxt << " " << word;
ftxt << " " << dummyPS << endl;
}
AliBitPacking::PackWord(word,baseWord, 0,20);
word = iCH;
AliBitPacking::PackWord(word,baseWord,21,23);
word = nTDC;
AliBitPacking::PackWord(word,baseWord,24,27);
word = 0;
AliBitPacking::PackWord(word,baseWord,28,28);
word = dummyPS;
AliBitPacking::PackWord(word,baseWord,29,30);
word = 1;
AliBitPacking::PackWord(word,baseWord,31,31);
localIndex++; fWordsPerTRM++;
localBuffer[localIndex]=baseWord;
psArray[localIndex]=dummyPS;
baseWord=0;
}
}
}
}
if (localIndex==-1) continue;
if (fPackedAcquisition) {
for (jj=0; jj<=localIndex; jj++) {
fIndex++;
buf[fIndex] = localBuffer[jj];
localBuffer[jj] = 0;
psArray[jj] = -1;
}
}
else {
for (jj=0; jj<=localIndex; jj++) {
fIndex++;
buf[fIndex] = localBuffer[jj];
localBuffer[jj] = 0;
psArray[jj] = -1;
}
}
localIndex = -1;
}
if (fVerbose==2) ftxt.close();
}
void AliTOFDDLRawData::ReverseArray(UInt_t a[], Int_t n) const
{
Int_t ii, temp;
for (ii=0; ii<n/2; ii++) {
temp = a[ii];
a[ii] = a[n-ii-1];
a[n-ii-1] = temp;
}
return;
}
Bool_t AliTOFDDLRawData::HeadOrTail() const
{
Double_t dummy = gRandom->Rndm();
if (dummy<0.5) return kFALSE;
else return kTRUE;
}
AliTOFDDLRawData.cxx:1000 AliTOFDDLRawData.cxx:1001 AliTOFDDLRawData.cxx:1002 AliTOFDDLRawData.cxx:1003 AliTOFDDLRawData.cxx:1004 AliTOFDDLRawData.cxx:1005 AliTOFDDLRawData.cxx:1006 AliTOFDDLRawData.cxx:1007 AliTOFDDLRawData.cxx:1008 AliTOFDDLRawData.cxx:1009 AliTOFDDLRawData.cxx:1010 AliTOFDDLRawData.cxx:1011 AliTOFDDLRawData.cxx:1012 AliTOFDDLRawData.cxx:1013 AliTOFDDLRawData.cxx:1014 AliTOFDDLRawData.cxx:1015 AliTOFDDLRawData.cxx:1016 AliTOFDDLRawData.cxx:1017 AliTOFDDLRawData.cxx:1018 AliTOFDDLRawData.cxx:1019 AliTOFDDLRawData.cxx:1020 AliTOFDDLRawData.cxx:1021 AliTOFDDLRawData.cxx:1022 AliTOFDDLRawData.cxx:1023 AliTOFDDLRawData.cxx:1024 AliTOFDDLRawData.cxx:1025 AliTOFDDLRawData.cxx:1026 AliTOFDDLRawData.cxx:1027 AliTOFDDLRawData.cxx:1028 AliTOFDDLRawData.cxx:1029 AliTOFDDLRawData.cxx:1030 AliTOFDDLRawData.cxx:1031 AliTOFDDLRawData.cxx:1032 AliTOFDDLRawData.cxx:1033 AliTOFDDLRawData.cxx:1034 AliTOFDDLRawData.cxx:1035 AliTOFDDLRawData.cxx:1036 AliTOFDDLRawData.cxx:1037 AliTOFDDLRawData.cxx:1038 AliTOFDDLRawData.cxx:1039 AliTOFDDLRawData.cxx:1040 AliTOFDDLRawData.cxx:1041 AliTOFDDLRawData.cxx:1042 AliTOFDDLRawData.cxx:1043 AliTOFDDLRawData.cxx:1044 AliTOFDDLRawData.cxx:1045 AliTOFDDLRawData.cxx:1046 AliTOFDDLRawData.cxx:1047 AliTOFDDLRawData.cxx:1048 AliTOFDDLRawData.cxx:1049 AliTOFDDLRawData.cxx:1050 AliTOFDDLRawData.cxx:1051 AliTOFDDLRawData.cxx:1052 AliTOFDDLRawData.cxx:1053 AliTOFDDLRawData.cxx:1054 AliTOFDDLRawData.cxx:1055 AliTOFDDLRawData.cxx:1056 AliTOFDDLRawData.cxx:1057 AliTOFDDLRawData.cxx:1058 AliTOFDDLRawData.cxx:1059 AliTOFDDLRawData.cxx:1060 AliTOFDDLRawData.cxx:1061 AliTOFDDLRawData.cxx:1062 AliTOFDDLRawData.cxx:1063 AliTOFDDLRawData.cxx:1064 AliTOFDDLRawData.cxx:1065 AliTOFDDLRawData.cxx:1066 AliTOFDDLRawData.cxx:1067 AliTOFDDLRawData.cxx:1068 AliTOFDDLRawData.cxx:1069 AliTOFDDLRawData.cxx:1070 AliTOFDDLRawData.cxx:1071 AliTOFDDLRawData.cxx:1072 AliTOFDDLRawData.cxx:1073 AliTOFDDLRawData.cxx:1074 AliTOFDDLRawData.cxx:1075 AliTOFDDLRawData.cxx:1076 AliTOFDDLRawData.cxx:1077 AliTOFDDLRawData.cxx:1078 AliTOFDDLRawData.cxx:1079 AliTOFDDLRawData.cxx:1080 AliTOFDDLRawData.cxx:1081 AliTOFDDLRawData.cxx:1082 AliTOFDDLRawData.cxx:1083 AliTOFDDLRawData.cxx:1084 AliTOFDDLRawData.cxx:1085 AliTOFDDLRawData.cxx:1086 AliTOFDDLRawData.cxx:1087 AliTOFDDLRawData.cxx:1088 AliTOFDDLRawData.cxx:1089 AliTOFDDLRawData.cxx:1090 AliTOFDDLRawData.cxx:1091 AliTOFDDLRawData.cxx:1092 AliTOFDDLRawData.cxx:1093 AliTOFDDLRawData.cxx:1094 AliTOFDDLRawData.cxx:1095 AliTOFDDLRawData.cxx:1096 AliTOFDDLRawData.cxx:1097 AliTOFDDLRawData.cxx:1098 AliTOFDDLRawData.cxx:1099 AliTOFDDLRawData.cxx:1100 AliTOFDDLRawData.cxx:1101 AliTOFDDLRawData.cxx:1102 AliTOFDDLRawData.cxx:1103 AliTOFDDLRawData.cxx:1104 AliTOFDDLRawData.cxx:1105 AliTOFDDLRawData.cxx:1106 AliTOFDDLRawData.cxx:1107 AliTOFDDLRawData.cxx:1108 AliTOFDDLRawData.cxx:1109 AliTOFDDLRawData.cxx:1110 AliTOFDDLRawData.cxx:1111 AliTOFDDLRawData.cxx:1112 AliTOFDDLRawData.cxx:1113 AliTOFDDLRawData.cxx:1114 AliTOFDDLRawData.cxx:1115 AliTOFDDLRawData.cxx:1116 AliTOFDDLRawData.cxx:1117 AliTOFDDLRawData.cxx:1118 AliTOFDDLRawData.cxx:1119 AliTOFDDLRawData.cxx:1120 AliTOFDDLRawData.cxx:1121 AliTOFDDLRawData.cxx:1122 AliTOFDDLRawData.cxx:1123 AliTOFDDLRawData.cxx:1124 AliTOFDDLRawData.cxx:1125 AliTOFDDLRawData.cxx:1126 AliTOFDDLRawData.cxx:1127 AliTOFDDLRawData.cxx:1128 AliTOFDDLRawData.cxx:1129 AliTOFDDLRawData.cxx:1130 AliTOFDDLRawData.cxx:1131 AliTOFDDLRawData.cxx:1132 AliTOFDDLRawData.cxx:1133 AliTOFDDLRawData.cxx:1134 AliTOFDDLRawData.cxx:1135 AliTOFDDLRawData.cxx:1136 AliTOFDDLRawData.cxx:1137 AliTOFDDLRawData.cxx:1138 AliTOFDDLRawData.cxx:1139 AliTOFDDLRawData.cxx:1140 AliTOFDDLRawData.cxx:1141 AliTOFDDLRawData.cxx:1142 AliTOFDDLRawData.cxx:1143 AliTOFDDLRawData.cxx:1144 AliTOFDDLRawData.cxx:1145 AliTOFDDLRawData.cxx:1146 AliTOFDDLRawData.cxx:1147 AliTOFDDLRawData.cxx:1148 AliTOFDDLRawData.cxx:1149 AliTOFDDLRawData.cxx:1150 AliTOFDDLRawData.cxx:1151 AliTOFDDLRawData.cxx:1152 AliTOFDDLRawData.cxx:1153 AliTOFDDLRawData.cxx:1154 AliTOFDDLRawData.cxx:1155 AliTOFDDLRawData.cxx:1156 AliTOFDDLRawData.cxx:1157 AliTOFDDLRawData.cxx:1158 AliTOFDDLRawData.cxx:1159 AliTOFDDLRawData.cxx:1160 AliTOFDDLRawData.cxx:1161 AliTOFDDLRawData.cxx:1162 AliTOFDDLRawData.cxx:1163 AliTOFDDLRawData.cxx:1164 AliTOFDDLRawData.cxx:1165 AliTOFDDLRawData.cxx:1166 AliTOFDDLRawData.cxx:1167 AliTOFDDLRawData.cxx:1168 AliTOFDDLRawData.cxx:1169 AliTOFDDLRawData.cxx:1170 AliTOFDDLRawData.cxx:1171 AliTOFDDLRawData.cxx:1172 AliTOFDDLRawData.cxx:1173 AliTOFDDLRawData.cxx:1174 AliTOFDDLRawData.cxx:1175 AliTOFDDLRawData.cxx:1176 AliTOFDDLRawData.cxx:1177 AliTOFDDLRawData.cxx:1178 AliTOFDDLRawData.cxx:1179 AliTOFDDLRawData.cxx:1180 AliTOFDDLRawData.cxx:1181 AliTOFDDLRawData.cxx:1182 AliTOFDDLRawData.cxx:1183 AliTOFDDLRawData.cxx:1184 AliTOFDDLRawData.cxx:1185 AliTOFDDLRawData.cxx:1186 AliTOFDDLRawData.cxx:1187 AliTOFDDLRawData.cxx:1188 AliTOFDDLRawData.cxx:1189 AliTOFDDLRawData.cxx:1190 AliTOFDDLRawData.cxx:1191 AliTOFDDLRawData.cxx:1192 AliTOFDDLRawData.cxx:1193 AliTOFDDLRawData.cxx:1194 AliTOFDDLRawData.cxx:1195 AliTOFDDLRawData.cxx:1196 AliTOFDDLRawData.cxx:1197 AliTOFDDLRawData.cxx:1198 AliTOFDDLRawData.cxx:1199 AliTOFDDLRawData.cxx:1200 AliTOFDDLRawData.cxx:1201 AliTOFDDLRawData.cxx:1202 AliTOFDDLRawData.cxx:1203 AliTOFDDLRawData.cxx:1204 AliTOFDDLRawData.cxx:1205 AliTOFDDLRawData.cxx:1206 AliTOFDDLRawData.cxx:1207 AliTOFDDLRawData.cxx:1208 AliTOFDDLRawData.cxx:1209 AliTOFDDLRawData.cxx:1210 AliTOFDDLRawData.cxx:1211 AliTOFDDLRawData.cxx:1212 AliTOFDDLRawData.cxx:1213 AliTOFDDLRawData.cxx:1214 AliTOFDDLRawData.cxx:1215 AliTOFDDLRawData.cxx:1216 AliTOFDDLRawData.cxx:1217 AliTOFDDLRawData.cxx:1218 AliTOFDDLRawData.cxx:1219 AliTOFDDLRawData.cxx:1220 AliTOFDDLRawData.cxx:1221 AliTOFDDLRawData.cxx:1222 AliTOFDDLRawData.cxx:1223 AliTOFDDLRawData.cxx:1224 AliTOFDDLRawData.cxx:1225 AliTOFDDLRawData.cxx:1226 AliTOFDDLRawData.cxx:1227 AliTOFDDLRawData.cxx:1228 AliTOFDDLRawData.cxx:1229 AliTOFDDLRawData.cxx:1230 AliTOFDDLRawData.cxx:1231 AliTOFDDLRawData.cxx:1232 AliTOFDDLRawData.cxx:1233 AliTOFDDLRawData.cxx:1234 AliTOFDDLRawData.cxx:1235 AliTOFDDLRawData.cxx:1236 AliTOFDDLRawData.cxx:1237 AliTOFDDLRawData.cxx:1238 AliTOFDDLRawData.cxx:1239 AliTOFDDLRawData.cxx:1240 AliTOFDDLRawData.cxx:1241 AliTOFDDLRawData.cxx:1242 AliTOFDDLRawData.cxx:1243 AliTOFDDLRawData.cxx:1244 AliTOFDDLRawData.cxx:1245 AliTOFDDLRawData.cxx:1246 AliTOFDDLRawData.cxx:1247 AliTOFDDLRawData.cxx:1248 AliTOFDDLRawData.cxx:1249 AliTOFDDLRawData.cxx:1250 AliTOFDDLRawData.cxx:1251 AliTOFDDLRawData.cxx:1252 AliTOFDDLRawData.cxx:1253 AliTOFDDLRawData.cxx:1254 AliTOFDDLRawData.cxx:1255 AliTOFDDLRawData.cxx:1256 AliTOFDDLRawData.cxx:1257 AliTOFDDLRawData.cxx:1258 AliTOFDDLRawData.cxx:1259 AliTOFDDLRawData.cxx:1260 AliTOFDDLRawData.cxx:1261 AliTOFDDLRawData.cxx:1262 AliTOFDDLRawData.cxx:1263 AliTOFDDLRawData.cxx:1264 AliTOFDDLRawData.cxx:1265 AliTOFDDLRawData.cxx:1266 AliTOFDDLRawData.cxx:1267 AliTOFDDLRawData.cxx:1268 AliTOFDDLRawData.cxx:1269 AliTOFDDLRawData.cxx:1270 AliTOFDDLRawData.cxx:1271 AliTOFDDLRawData.cxx:1272 AliTOFDDLRawData.cxx:1273 AliTOFDDLRawData.cxx:1274 AliTOFDDLRawData.cxx:1275 AliTOFDDLRawData.cxx:1276 AliTOFDDLRawData.cxx:1277 AliTOFDDLRawData.cxx:1278 AliTOFDDLRawData.cxx:1279 AliTOFDDLRawData.cxx:1280 AliTOFDDLRawData.cxx:1281 AliTOFDDLRawData.cxx:1282 AliTOFDDLRawData.cxx:1283 AliTOFDDLRawData.cxx:1284 AliTOFDDLRawData.cxx:1285 AliTOFDDLRawData.cxx:1286 AliTOFDDLRawData.cxx:1287 AliTOFDDLRawData.cxx:1288 AliTOFDDLRawData.cxx:1289 AliTOFDDLRawData.cxx:1290 AliTOFDDLRawData.cxx:1291 AliTOFDDLRawData.cxx:1292 AliTOFDDLRawData.cxx:1293 AliTOFDDLRawData.cxx:1294 AliTOFDDLRawData.cxx:1295 AliTOFDDLRawData.cxx:1296 AliTOFDDLRawData.cxx:1297 AliTOFDDLRawData.cxx:1298 AliTOFDDLRawData.cxx:1299 AliTOFDDLRawData.cxx:1300 AliTOFDDLRawData.cxx:1301 AliTOFDDLRawData.cxx:1302 AliTOFDDLRawData.cxx:1303 AliTOFDDLRawData.cxx:1304 AliTOFDDLRawData.cxx:1305 AliTOFDDLRawData.cxx:1306 AliTOFDDLRawData.cxx:1307 AliTOFDDLRawData.cxx:1308 AliTOFDDLRawData.cxx:1309 AliTOFDDLRawData.cxx:1310 AliTOFDDLRawData.cxx:1311 AliTOFDDLRawData.cxx:1312 AliTOFDDLRawData.cxx:1313 AliTOFDDLRawData.cxx:1314 AliTOFDDLRawData.cxx:1315 AliTOFDDLRawData.cxx:1316 AliTOFDDLRawData.cxx:1317 AliTOFDDLRawData.cxx:1318 AliTOFDDLRawData.cxx:1319 AliTOFDDLRawData.cxx:1320 AliTOFDDLRawData.cxx:1321 AliTOFDDLRawData.cxx:1322 AliTOFDDLRawData.cxx:1323 AliTOFDDLRawData.cxx:1324 AliTOFDDLRawData.cxx:1325 AliTOFDDLRawData.cxx:1326 AliTOFDDLRawData.cxx:1327 AliTOFDDLRawData.cxx:1328 AliTOFDDLRawData.cxx:1329 AliTOFDDLRawData.cxx:1330 AliTOFDDLRawData.cxx:1331 AliTOFDDLRawData.cxx:1332 AliTOFDDLRawData.cxx:1333 AliTOFDDLRawData.cxx:1334 AliTOFDDLRawData.cxx:1335 AliTOFDDLRawData.cxx:1336 AliTOFDDLRawData.cxx:1337 AliTOFDDLRawData.cxx:1338 AliTOFDDLRawData.cxx:1339 AliTOFDDLRawData.cxx:1340 AliTOFDDLRawData.cxx:1341 AliTOFDDLRawData.cxx:1342 AliTOFDDLRawData.cxx:1343 AliTOFDDLRawData.cxx:1344 AliTOFDDLRawData.cxx:1345 AliTOFDDLRawData.cxx:1346 AliTOFDDLRawData.cxx:1347 AliTOFDDLRawData.cxx:1348 AliTOFDDLRawData.cxx:1349 AliTOFDDLRawData.cxx:1350 AliTOFDDLRawData.cxx:1351 AliTOFDDLRawData.cxx:1352 AliTOFDDLRawData.cxx:1353 AliTOFDDLRawData.cxx:1354 AliTOFDDLRawData.cxx:1355 AliTOFDDLRawData.cxx:1356 AliTOFDDLRawData.cxx:1357 AliTOFDDLRawData.cxx:1358 AliTOFDDLRawData.cxx:1359 AliTOFDDLRawData.cxx:1360 AliTOFDDLRawData.cxx:1361 AliTOFDDLRawData.cxx:1362 AliTOFDDLRawData.cxx:1363 AliTOFDDLRawData.cxx:1364 AliTOFDDLRawData.cxx:1365 AliTOFDDLRawData.cxx:1366 AliTOFDDLRawData.cxx:1367 AliTOFDDLRawData.cxx:1368 AliTOFDDLRawData.cxx:1369 AliTOFDDLRawData.cxx:1370 AliTOFDDLRawData.cxx:1371 AliTOFDDLRawData.cxx:1372 AliTOFDDLRawData.cxx:1373 AliTOFDDLRawData.cxx:1374 AliTOFDDLRawData.cxx:1375 AliTOFDDLRawData.cxx:1376 AliTOFDDLRawData.cxx:1377 AliTOFDDLRawData.cxx:1378 AliTOFDDLRawData.cxx:1379 AliTOFDDLRawData.cxx:1380 AliTOFDDLRawData.cxx:1381 AliTOFDDLRawData.cxx:1382 AliTOFDDLRawData.cxx:1383 AliTOFDDLRawData.cxx:1384 AliTOFDDLRawData.cxx:1385 AliTOFDDLRawData.cxx:1386 AliTOFDDLRawData.cxx:1387 AliTOFDDLRawData.cxx:1388 AliTOFDDLRawData.cxx:1389 AliTOFDDLRawData.cxx:1390 AliTOFDDLRawData.cxx:1391 AliTOFDDLRawData.cxx:1392 AliTOFDDLRawData.cxx:1393 AliTOFDDLRawData.cxx:1394 AliTOFDDLRawData.cxx:1395 AliTOFDDLRawData.cxx:1396 AliTOFDDLRawData.cxx:1397 AliTOFDDLRawData.cxx:1398 AliTOFDDLRawData.cxx:1399 AliTOFDDLRawData.cxx:1400 AliTOFDDLRawData.cxx:1401 AliTOFDDLRawData.cxx:1402 AliTOFDDLRawData.cxx:1403 AliTOFDDLRawData.cxx:1404 AliTOFDDLRawData.cxx:1405 AliTOFDDLRawData.cxx:1406 AliTOFDDLRawData.cxx:1407 AliTOFDDLRawData.cxx:1408 AliTOFDDLRawData.cxx:1409 AliTOFDDLRawData.cxx:1410 AliTOFDDLRawData.cxx:1411 AliTOFDDLRawData.cxx:1412 AliTOFDDLRawData.cxx:1413 AliTOFDDLRawData.cxx:1414 AliTOFDDLRawData.cxx:1415 AliTOFDDLRawData.cxx:1416 AliTOFDDLRawData.cxx:1417 AliTOFDDLRawData.cxx:1418 AliTOFDDLRawData.cxx:1419 AliTOFDDLRawData.cxx:1420 AliTOFDDLRawData.cxx:1421 AliTOFDDLRawData.cxx:1422 AliTOFDDLRawData.cxx:1423 AliTOFDDLRawData.cxx:1424 AliTOFDDLRawData.cxx:1425 AliTOFDDLRawData.cxx:1426 AliTOFDDLRawData.cxx:1427 AliTOFDDLRawData.cxx:1428 AliTOFDDLRawData.cxx:1429 AliTOFDDLRawData.cxx:1430 AliTOFDDLRawData.cxx:1431 AliTOFDDLRawData.cxx:1432 AliTOFDDLRawData.cxx:1433 AliTOFDDLRawData.cxx:1434 AliTOFDDLRawData.cxx:1435 AliTOFDDLRawData.cxx:1436 AliTOFDDLRawData.cxx:1437 AliTOFDDLRawData.cxx:1438 AliTOFDDLRawData.cxx:1439 AliTOFDDLRawData.cxx:1440 AliTOFDDLRawData.cxx:1441 AliTOFDDLRawData.cxx:1442 AliTOFDDLRawData.cxx:1443 AliTOFDDLRawData.cxx:1444 AliTOFDDLRawData.cxx:1445 AliTOFDDLRawData.cxx:1446 AliTOFDDLRawData.cxx:1447 AliTOFDDLRawData.cxx:1448 AliTOFDDLRawData.cxx:1449 AliTOFDDLRawData.cxx:1450 AliTOFDDLRawData.cxx:1451 AliTOFDDLRawData.cxx:1452 AliTOFDDLRawData.cxx:1453 AliTOFDDLRawData.cxx:1454 AliTOFDDLRawData.cxx:1455 AliTOFDDLRawData.cxx:1456 AliTOFDDLRawData.cxx:1457 AliTOFDDLRawData.cxx:1458 AliTOFDDLRawData.cxx:1459 AliTOFDDLRawData.cxx:1460 AliTOFDDLRawData.cxx:1461 AliTOFDDLRawData.cxx:1462 AliTOFDDLRawData.cxx:1463 AliTOFDDLRawData.cxx:1464 AliTOFDDLRawData.cxx:1465 AliTOFDDLRawData.cxx:1466 AliTOFDDLRawData.cxx:1467 AliTOFDDLRawData.cxx:1468 AliTOFDDLRawData.cxx:1469 AliTOFDDLRawData.cxx:1470 AliTOFDDLRawData.cxx:1471 AliTOFDDLRawData.cxx:1472 AliTOFDDLRawData.cxx:1473 AliTOFDDLRawData.cxx:1474 AliTOFDDLRawData.cxx:1475 AliTOFDDLRawData.cxx:1476 AliTOFDDLRawData.cxx:1477 AliTOFDDLRawData.cxx:1478 AliTOFDDLRawData.cxx:1479 AliTOFDDLRawData.cxx:1480 AliTOFDDLRawData.cxx:1481 AliTOFDDLRawData.cxx:1482 AliTOFDDLRawData.cxx:1483 AliTOFDDLRawData.cxx:1484 AliTOFDDLRawData.cxx:1485 AliTOFDDLRawData.cxx:1486 AliTOFDDLRawData.cxx:1487 AliTOFDDLRawData.cxx:1488 AliTOFDDLRawData.cxx:1489 AliTOFDDLRawData.cxx:1490 AliTOFDDLRawData.cxx:1491 AliTOFDDLRawData.cxx:1492 AliTOFDDLRawData.cxx:1493 AliTOFDDLRawData.cxx:1494 AliTOFDDLRawData.cxx:1495 AliTOFDDLRawData.cxx:1496 AliTOFDDLRawData.cxx:1497 AliTOFDDLRawData.cxx:1498 AliTOFDDLRawData.cxx:1499 AliTOFDDLRawData.cxx:1500 AliTOFDDLRawData.cxx:1501 AliTOFDDLRawData.cxx:1502 AliTOFDDLRawData.cxx:1503 AliTOFDDLRawData.cxx:1504 AliTOFDDLRawData.cxx:1505 AliTOFDDLRawData.cxx:1506 AliTOFDDLRawData.cxx:1507 AliTOFDDLRawData.cxx:1508 AliTOFDDLRawData.cxx:1509 AliTOFDDLRawData.cxx:1510 AliTOFDDLRawData.cxx:1511 AliTOFDDLRawData.cxx:1512 AliTOFDDLRawData.cxx:1513 AliTOFDDLRawData.cxx:1514 AliTOFDDLRawData.cxx:1515 AliTOFDDLRawData.cxx:1516 AliTOFDDLRawData.cxx:1517 AliTOFDDLRawData.cxx:1518 AliTOFDDLRawData.cxx:1519 AliTOFDDLRawData.cxx:1520 AliTOFDDLRawData.cxx:1521 AliTOFDDLRawData.cxx:1522 AliTOFDDLRawData.cxx:1523 AliTOFDDLRawData.cxx:1524 AliTOFDDLRawData.cxx:1525 AliTOFDDLRawData.cxx:1526 AliTOFDDLRawData.cxx:1527 AliTOFDDLRawData.cxx:1528 AliTOFDDLRawData.cxx:1529 AliTOFDDLRawData.cxx:1530 AliTOFDDLRawData.cxx:1531 AliTOFDDLRawData.cxx:1532 AliTOFDDLRawData.cxx:1533 AliTOFDDLRawData.cxx:1534 AliTOFDDLRawData.cxx:1535 AliTOFDDLRawData.cxx:1536 AliTOFDDLRawData.cxx:1537 AliTOFDDLRawData.cxx:1538 AliTOFDDLRawData.cxx:1539 AliTOFDDLRawData.cxx:1540 AliTOFDDLRawData.cxx:1541 AliTOFDDLRawData.cxx:1542 AliTOFDDLRawData.cxx:1543 AliTOFDDLRawData.cxx:1544 AliTOFDDLRawData.cxx:1545 AliTOFDDLRawData.cxx:1546 AliTOFDDLRawData.cxx:1547 AliTOFDDLRawData.cxx:1548 AliTOFDDLRawData.cxx:1549 AliTOFDDLRawData.cxx:1550 AliTOFDDLRawData.cxx:1551 AliTOFDDLRawData.cxx:1552 AliTOFDDLRawData.cxx:1553 AliTOFDDLRawData.cxx:1554 AliTOFDDLRawData.cxx:1555 AliTOFDDLRawData.cxx:1556 AliTOFDDLRawData.cxx:1557 AliTOFDDLRawData.cxx:1558 AliTOFDDLRawData.cxx:1559 AliTOFDDLRawData.cxx:1560 AliTOFDDLRawData.cxx:1561 AliTOFDDLRawData.cxx:1562 AliTOFDDLRawData.cxx:1563 AliTOFDDLRawData.cxx:1564 AliTOFDDLRawData.cxx:1565 AliTOFDDLRawData.cxx:1566 AliTOFDDLRawData.cxx:1567 AliTOFDDLRawData.cxx:1568 AliTOFDDLRawData.cxx:1569 AliTOFDDLRawData.cxx:1570 AliTOFDDLRawData.cxx:1571 AliTOFDDLRawData.cxx:1572 AliTOFDDLRawData.cxx:1573 AliTOFDDLRawData.cxx:1574 AliTOFDDLRawData.cxx:1575 AliTOFDDLRawData.cxx:1576 AliTOFDDLRawData.cxx:1577 AliTOFDDLRawData.cxx:1578 AliTOFDDLRawData.cxx:1579 AliTOFDDLRawData.cxx:1580 AliTOFDDLRawData.cxx:1581 AliTOFDDLRawData.cxx:1582 AliTOFDDLRawData.cxx:1583 AliTOFDDLRawData.cxx:1584 AliTOFDDLRawData.cxx:1585 AliTOFDDLRawData.cxx:1586 AliTOFDDLRawData.cxx:1587 AliTOFDDLRawData.cxx:1588 AliTOFDDLRawData.cxx:1589 AliTOFDDLRawData.cxx:1590 AliTOFDDLRawData.cxx:1591 AliTOFDDLRawData.cxx:1592 AliTOFDDLRawData.cxx:1593 AliTOFDDLRawData.cxx:1594 AliTOFDDLRawData.cxx:1595 AliTOFDDLRawData.cxx:1596 AliTOFDDLRawData.cxx:1597 AliTOFDDLRawData.cxx:1598 AliTOFDDLRawData.cxx:1599 AliTOFDDLRawData.cxx:1600 AliTOFDDLRawData.cxx:1601 AliTOFDDLRawData.cxx:1602 AliTOFDDLRawData.cxx:1603 AliTOFDDLRawData.cxx:1604 AliTOFDDLRawData.cxx:1605 AliTOFDDLRawData.cxx:1606 AliTOFDDLRawData.cxx:1607 AliTOFDDLRawData.cxx:1608 AliTOFDDLRawData.cxx:1609 AliTOFDDLRawData.cxx:1610 AliTOFDDLRawData.cxx:1611 AliTOFDDLRawData.cxx:1612 AliTOFDDLRawData.cxx:1613 AliTOFDDLRawData.cxx:1614 AliTOFDDLRawData.cxx:1615 AliTOFDDLRawData.cxx:1616 AliTOFDDLRawData.cxx:1617 AliTOFDDLRawData.cxx:1618 AliTOFDDLRawData.cxx:1619 AliTOFDDLRawData.cxx:1620 AliTOFDDLRawData.cxx:1621 AliTOFDDLRawData.cxx:1622 AliTOFDDLRawData.cxx:1623 AliTOFDDLRawData.cxx:1624 AliTOFDDLRawData.cxx:1625 AliTOFDDLRawData.cxx:1626 AliTOFDDLRawData.cxx:1627 AliTOFDDLRawData.cxx:1628 AliTOFDDLRawData.cxx:1629 AliTOFDDLRawData.cxx:1630 AliTOFDDLRawData.cxx:1631 AliTOFDDLRawData.cxx:1632 AliTOFDDLRawData.cxx:1633 AliTOFDDLRawData.cxx:1634 AliTOFDDLRawData.cxx:1635 AliTOFDDLRawData.cxx:1636 AliTOFDDLRawData.cxx:1637 AliTOFDDLRawData.cxx:1638 AliTOFDDLRawData.cxx:1639 AliTOFDDLRawData.cxx:1640 AliTOFDDLRawData.cxx:1641 AliTOFDDLRawData.cxx:1642