ROOT logo
/**************************************************************************
 * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
 * full copyright notice.                                                 *
 **************************************************************************/

// $Id$
// Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007

//
// Class to map TOF digit/raw data information
//
// Author: A. De Caro (email: decaro@sa.infn.it)
//

#include <TClonesArray.h>
#include <TTree.h>

//#include <TEveTreeTools.h>

#include <AliDAQ.h>
#include <AliLog.h>
#include <AliRawReader.h>

#include <AliTOFCableLengthMap.h>
#include <AliTOFdigit.h>
#include <AliTOFGeometry.h>
#include <AliTOFrawData.h>
#include <AliTOFRawStream.h>
#include <AliTOFDigitMap.h>

#include "AliEveTOFDigitsInfo.h"

//_________________________________________________________

ClassImp(AliEveTOFDigitsInfo)

  AliEveTOFDigitsInfo::AliEveTOFDigitsInfo(): 
    TObject(),
    TEveRefCnt(),
    fTree (0),
    fNewTree (0),
    fGeom (new AliTOFGeometry()),
    fTOFdigitMap(new AliTOFDigitMap())
{}
/* ******************************************************* */

AliEveTOFDigitsInfo:: ~AliEveTOFDigitsInfo() 
{
  //dtr

  delete fGeom;
  delete fTree;
  delete fNewTree;
  delete fTOFdigitMap;

}
/* ******************************************************* */

void AliEveTOFDigitsInfo::SetTree(TTree * const tree)
{
  //
  // Set fTree global variable
  //

  static const TEveException kEH("AliEveTOFDigitsInfo::SetTree ");
  
  if(fGeom == 0) {
    fGeom = new AliTOFGeometry();
  }

  fTree = tree;
  /*
  DecRefCount();
  IncRefCount();
  */
}
/* ******************************************************* */
void AliEveTOFDigitsInfo::ReadRaw(AliRawReader* rawReader, Int_t newDecoder)
{
  //
  // Read raw-data. AliTOFdigit is used to
  // store raw-adata for all sub-detectors.
  //

  //AliTOFCableLengthMap *cableLength = new AliTOFCableLengthMap();

  //ofstream ftxt;
  //Char_t fileName[100];
  //sprintf(fileName,"TOFrawDataReadingFromEVE%d.txt",nEvent);

  //ftxt.open(fileName,ios::app);
  //ftxt << endl;
  //ftxt << "  " << nEvent << endl;

  //if (nEvent<0) printf("%3i\n", nEvent); // only to use nEvent variable

  const Int_t kDDL = AliDAQ::NumberOfDdls("TOF");

  TClonesArray *tofDigits = new TClonesArray("AliTOFdigit",10000);
  fTree = new TTree();
  fTree->Branch("TOF", &tofDigits, 32000);
  fTree->GetEntry(0);

  TClonesArray * clonesRawData = 0x0;

  Int_t detectorIndex[5];
  Int_t digit[4];

  AliTOFRawStream stream(rawReader);

  for (Int_t indexDDL = 0; indexDDL < kDDL; indexDDL++) {

    rawReader->Reset();
    if (newDecoder==0) stream.LoadRawData(indexDDL);
    else if (newDecoder==1) stream.LoadRawDataBuffers(indexDDL);
    else if (newDecoder==2) stream.LoadRawDataBuffersV2(indexDDL);

    clonesRawData = (TClonesArray*)stream.GetRawData();

    if (clonesRawData->GetEntriesFast()) AliDebug(2, Form(" Number of TOF digits in the sector number %2i: %5i", indexDDL, clonesRawData->GetEntriesFast()));

    for (Int_t iRawData = 0; iRawData<clonesRawData->GetEntriesFast(); iRawData++) {

      AliTOFrawData *tofRawDatum = (AliTOFrawData*)clonesRawData->UncheckedAt(iRawData);

      if (tofRawDatum->GetTOF()==-1) continue;

      //Int_t cLenInt = Int_t(cableLength->GetCableTimeShift(indexDDL, tofRawDatum->GetTRM(), tofRawDatum->GetTRMchain(),tofRawDatum->GetTDC())*1000./AliTOFGeometry::TdcBinWidth());
      digit[0] = tofRawDatum->GetTOF();// - cLenInt;
      digit[1] = tofRawDatum->GetTOT();
      digit[2] = tofRawDatum->GetTOT();
      digit[3] = -1;

      /*
      if (indexDDL<10) ftxt << "  " << indexDDL;
      else             ftxt << " " << indexDDL;
      if (tofRawDatum->GetTRM()<10) ftxt << "  " << tofRawDatum->GetTRM();
      else                          ftxt << " " << tofRawDatum->GetTRM();
      ftxt << "  " << tofRawDatum->GetTRMchain();
      if (tofRawDatum->GetTDC()<10) ftxt << "  " << tofRawDatum->GetTDC();
      else                          ftxt << " " << tofRawDatum->GetTDC();
      ftxt << "  " << tofRawDatum->GetTDCchannel();
      */

      stream.EquipmentId2VolumeId(indexDDL, tofRawDatum->GetTRM(), tofRawDatum->GetTRMchain(),
				  tofRawDatum->GetTDC(), tofRawDatum->GetTDCchannel(), detectorIndex);

      /* check valid index */
      if (detectorIndex[0]==-1||detectorIndex[1]==-1||detectorIndex[2]==-1||detectorIndex[3]==-1||detectorIndex[4]==-1) continue;

      // Do not reconstruct anything in the holes
      if (detectorIndex[0]==13 || detectorIndex[0]==14 || detectorIndex[0]==15 ) { // sectors with holes
	if (detectorIndex[1]==2) { // plate with holes
	  continue;
	}
      }

      /*
      if (detectorIndex[0]<10) ftxt  << "  ->  " << detectorIndex[0];
      else                     ftxt  << "  -> " << detectorIndex[0];
      ftxt << "  " << detectorIndex[1];
      if (detectorIndex[2]<10) ftxt << "  " << detectorIndex[2];
      else                     ftxt << " " << detectorIndex[2];
      ftxt << "  " << detectorIndex[3];
      if (detectorIndex[4]<10) ftxt << "  " << detectorIndex[4];
      else                     ftxt << " " << detectorIndex[4];

      if (tofRawDatum->GetTOT()<10)                                            ftxt << "        " << tofRawDatum->GetTOT();
      else if (tofRawDatum->GetTOT()>=10 && tofRawDatum->GetTOT()<100)         ftxt << "       " << tofRawDatum->GetTOT();
      else if (tofRawDatum->GetTOT()>=100 && tofRawDatum->GetTOT()<1000)       ftxt << "      " << tofRawDatum->GetTOT();
      else if (tofRawDatum->GetTOT()>=1000 && tofRawDatum->GetTOT()<10000)     ftxt << "     " << tofRawDatum->GetTOT();
      else if (tofRawDatum->GetTOT()>=10000 && tofRawDatum->GetTOT()<100000)   ftxt << "    " << tofRawDatum->GetTOT();
      else if (tofRawDatum->GetTOT()>=100000 && tofRawDatum->GetTOT()<1000000) ftxt << "   " << tofRawDatum->GetTOT();
      else                                                                     ftxt << "  " << tofRawDatum->GetTOT();
      if (tofRawDatum->GetTOF()<10)                                            ftxt << "        " << tofRawDatum->GetTOF() << endl;
      else if (tofRawDatum->GetTOF()>=10 && tofRawDatum->GetTOF()<100)         ftxt << "       " << tofRawDatum->GetTOF() << endl;
      else if (tofRawDatum->GetTOF()>=100 && tofRawDatum->GetTOF()<1000)       ftxt << "      " << tofRawDatum->GetTOF() << endl;
      else if (tofRawDatum->GetTOF()>=1000 && tofRawDatum->GetTOF()<10000)     ftxt << "     " << tofRawDatum->GetTOF() << endl;
      else if (tofRawDatum->GetTOF()>=10000 && tofRawDatum->GetTOF()<100000)   ftxt << "    " << tofRawDatum->GetTOF() << endl;
      else if (tofRawDatum->GetTOF()>=100000 && tofRawDatum->GetTOF()<1000000) ftxt << "   " << tofRawDatum->GetTOF() << endl;
      else                                                                     ftxt << "  " << tofRawDatum->GetTOF() << endl;
      */

      TClonesArray &aDigits = *tofDigits;
      Int_t last = tofDigits->GetEntriesFast();

      fTOFdigitMap->AddDigit(detectorIndex, last);

      AliDebug(2,Form(" %3i -> %2i %2i %2i %2i %2i   %i  %i\n",
		      last, detectorIndex[0], detectorIndex[1],
		      detectorIndex[2], detectorIndex[4], detectorIndex[3],
		      digit[1], digit[0]));

      Int_t tracknum[3]={-1,-1,-1};
      new (aDigits[last]) AliTOFdigit(tracknum, detectorIndex, digit);

    } // while loop

    clonesRawData->Clear();

  } // DDL Loop

  fTree->Fill();

  //ftxt.close();

  //delete cableLength;

}


/* ******************************************************* */
void AliEveTOFDigitsInfo::LoadDigits()
{
  //
  // Load TOF digits
  //

  TClonesArray *digitsTOF = 0x0;
  AliTOFdigit *digs;

  fTree->SetBranchAddress("TOF",&digitsTOF);
  fTree->GetEntry(0);

  Int_t vol[5] = {-1,-1,-1,-1,-1};

  for (Int_t digitNumber=0; digitNumber<digitsTOF->GetEntries(); digitNumber++) {

    if (digitNumber==digitsTOF->GetEntries()-1)
      AliDebug(2,Form(" Hello  4 -> %3i digit of %i \n", digitNumber+1, digitsTOF->GetEntries()));

    digs = (AliTOFdigit*)digitsTOF->UncheckedAt(digitNumber);

    vol[0] = digs->GetSector(); // Sector Number (0-17)
    vol[1] = digs->GetPlate();  // Plate Number (0-4)
    vol[2] = digs->GetStrip();  // Strip Number (0-14/18)
    vol[3] = digs->GetPadx();   // Pad Number in x direction (0-47)
    vol[4] = digs->GetPadz();   // Pad Number in z direction (0-1)

    fTOFdigitMap->AddDigit(vol, digitNumber);
    if (digitNumber==digitsTOF->GetEntries()-1)
      AliDebug(2,Form(" I am inside LoadDigits %3i \n", digitNumber));

  }

}

/* ******************************************************* */

void AliEveTOFDigitsInfo::GetDigits(Int_t nSector, Int_t nPlate,
				    Int_t nStrip, Int_t nPadZ, Int_t nPadX,
				    Int_t indexDigit[3])
{
  //
  // Get TOF digit indices in the TOF volume
  // (nSector, nPlate,nStrip,nPadZ,nPadX)
  //

  Int_t vol[5] = {nSector,nPlate,nStrip,nPadX,nPadZ};

  fTOFdigitMap->GetDigitIndex(vol, indexDigit);
  //for (Int_t ii=1; ii<3; ii++) indexDigit[ii]=-1;

}
/* ******************************************************* */

TClonesArray* AliEveTOFDigitsInfo::GetDigits(Int_t nSector, Int_t nPlate,
					     Int_t nStrip)
{
  //
  // Get TOF digits in the TOF volume
  // (nSector, nPlate,nStrip)
  //

  Int_t newCounter = 0;
  Int_t nDigitsInVolume[3] = {-1, -1, -1};
  Int_t dummy[3] = {-1, -1, -1};
  Int_t informations[4] = {-1, -1, -1, -1};

  TClonesArray* digitsTOFnew = new TClonesArray("AliTOFdigit",  300);
  TClonesArray &ldigits = *digitsTOFnew;

  AliTOFdigit *digs;

  TClonesArray *digitsTOF = 0x0;
  fTree->SetBranchAddress("TOF",&digitsTOF);
  fTree->GetEntry(0);

  Int_t vol[5] = {nSector,nPlate,nStrip,-1,-1};

  for(Int_t iPadZ=0; iPadZ<fGeom->NpadZ(); iPadZ++){
    vol[4] = iPadZ;
    for(Int_t iPadX=0; iPadX<fGeom->NpadX(); iPadX++) {
      vol[3] = iPadX;

      fTOFdigitMap->GetDigitIndex(vol, nDigitsInVolume);

      for (Int_t ii=0; ii<3; ii++) {
	//if (ii!=0) continue;
	if (nDigitsInVolume[ii]>=0 ) {
	  AliDebug(2,Form("  nDigitsInVolume[%2i]  = %3i\n ", ii, nDigitsInVolume[ii]));
	  digs = (AliTOFdigit*)digitsTOF->UncheckedAt(nDigitsInVolume[ii]);
	  informations[0] = digs->GetTdc();
	  informations[1] = digs->GetAdc();
	  informations[2] = digs->GetToT();
	  informations[3] = digs->GetTdcND();
	  for(Int_t kk=0; kk<3; kk++) dummy[kk] = digs->GetTrack(kk);
	  new (ldigits[newCounter++]) AliTOFdigit(dummy, vol, informations);
	}

      }

      for (Int_t ii=0; ii<4; ii++) informations[ii]=-1;
      for (Int_t ii=0; ii<3; ii++) dummy[ii]=-1;
      for (Int_t ii=0; ii<3; ii++) nDigitsInVolume[ii]=-1;

    }
  }

  if (digitsTOFnew)
    AliDebug(2, Form("Sector %2i   Plate %1i  Strip %2i  -> number of digits %3i \n",
		     nSector, nPlate, nStrip, digitsTOFnew->GetEntries()));

  return digitsTOFnew;

}
/* ******************************************************* */

TClonesArray* AliEveTOFDigitsInfo::GetDigits(Int_t nSector)
{
  //
  // Get TOF digits in the TOF SM nSector
  //

  const Int_t kND = AliTOFDigitMap::kMaxDigitsPerPad;

  Int_t newCounter = 0;
  Int_t nDigitsInVolume[kND];
  Int_t dummy[3];
  Int_t informations[4];

  Int_t nStrips=19;

  TClonesArray* digitsTOFnew = new TClonesArray("AliTOFdigit",  300);
  TClonesArray &ldigits = *digitsTOFnew;

  AliTOFdigit *digs;

  TClonesArray *digitsTOF = 0x0;
  fTree->SetBranchAddress("TOF",&digitsTOF);
  fTree->GetEntry(0);

  //Int_t nSector = 1;
  Int_t vol[5] = {nSector,-1,-1,-1,-1};
 
  for(Int_t iPlate=0; iPlate<fGeom->NPlates(); iPlate++){
    vol[1] = iPlate;
    if(iPlate==2) nStrips=15;
    else nStrips=19;

    for(Int_t iStrip=0; iStrip<nStrips; iStrip++){
      vol[2] = iStrip;

      for(Int_t iPadZ=0; iPadZ<fGeom->NpadZ(); iPadZ++){
	vol[4] = iPadZ;

	for(Int_t iPadX=0; iPadX<fGeom->NpadX(); iPadX++) {

	  for (Int_t ii=0; ii<4; ii++) informations[ii]=-1;
	  for (Int_t ii=0; ii<3; ii++) dummy[ii]=-1;
	  for (Int_t ii=0; ii<kND; ii++) nDigitsInVolume[ii]=-1;

	  vol[3] = iPadX;

	  fTOFdigitMap->GetDigitIndex(vol, nDigitsInVolume);

	  for (Int_t ii=0; ii<kND; ii++) {
	    //if (ii!=0) continue;
	    if (nDigitsInVolume[ii]>=0 ) {

	      digs = (AliTOFdigit*)digitsTOF->UncheckedAt(nDigitsInVolume[ii]);
	      informations[0] = digs->GetTdc();
	      informations[1] = digs->GetAdc();
	      informations[2] = digs->GetToT();
	      informations[3] = digs->GetTdcND();
	      for(Int_t kk=0; kk<3; kk++) dummy[kk] = digs->GetTrack(kk);
	      new (ldigits[newCounter++]) AliTOFdigit(dummy, vol, informations);

	      AliDebug(2,Form(" %2i -> %2i %2i %2i %2i %2i %7i %7i\n",
			      nDigitsInVolume[ii],
			      vol[0], vol[1], vol[2], vol[4], vol[3],
			      informations[1], informations[0]));

	    }

	  }

	}
      }
    }
  }

  if (digitsTOFnew)
    AliDebug(2,Form("Sector %2i  -> number of digits %3i \n",
		    nSector, digitsTOFnew->GetEntries()));

  return digitsTOFnew;

}
/* ******************************************************* */

Int_t AliEveTOFDigitsInfo::GetTOFInfos() const
{
  //
  // Return number of TOF digits
  //

  return fTOFdigitMap->GetFilledCellNumber();

}

/* ******************************************************* */
Int_t AliEveTOFDigitsInfo::IsStripFilled(Int_t iSector, Int_t iPlate, Int_t iStrip)
{
  //
  // Return number of TOF digits
  // in volume (iSector,iPlate,iStrip)
  //

  Int_t vol[5] = {iSector, iPlate, iStrip, -1, -1};

  Int_t index = 0;

  for (Int_t iPadZ=0; iPadZ<fGeom->NpadZ(); iPadZ++) 
    for (Int_t iPadX=0; iPadX<fGeom->NpadX(); iPadX++) 
      {
	vol[3] = iPadX;
	vol[4] = iPadZ;
	if (fTOFdigitMap->GetDigitIndex(vol,0)>=0) index++;
      }

  return index;

}

/* ******************************************************* */
/*
void AliEveTOFDigitsInfo::GetDigits()
{

  for (Int_t iSector=0; iSector<fGeom->NSectors(); iSector++) {

    fNewTree = new TTree();




  }

}
*/
 AliEveTOFDigitsInfo.cxx:1
 AliEveTOFDigitsInfo.cxx:2
 AliEveTOFDigitsInfo.cxx:3
 AliEveTOFDigitsInfo.cxx:4
 AliEveTOFDigitsInfo.cxx:5
 AliEveTOFDigitsInfo.cxx:6
 AliEveTOFDigitsInfo.cxx:7
 AliEveTOFDigitsInfo.cxx:8
 AliEveTOFDigitsInfo.cxx:9
 AliEveTOFDigitsInfo.cxx:10
 AliEveTOFDigitsInfo.cxx:11
 AliEveTOFDigitsInfo.cxx:12
 AliEveTOFDigitsInfo.cxx:13
 AliEveTOFDigitsInfo.cxx:14
 AliEveTOFDigitsInfo.cxx:15
 AliEveTOFDigitsInfo.cxx:16
 AliEveTOFDigitsInfo.cxx:17
 AliEveTOFDigitsInfo.cxx:18
 AliEveTOFDigitsInfo.cxx:19
 AliEveTOFDigitsInfo.cxx:20
 AliEveTOFDigitsInfo.cxx:21
 AliEveTOFDigitsInfo.cxx:22
 AliEveTOFDigitsInfo.cxx:23
 AliEveTOFDigitsInfo.cxx:24
 AliEveTOFDigitsInfo.cxx:25
 AliEveTOFDigitsInfo.cxx:26
 AliEveTOFDigitsInfo.cxx:27
 AliEveTOFDigitsInfo.cxx:28
 AliEveTOFDigitsInfo.cxx:29
 AliEveTOFDigitsInfo.cxx:30
 AliEveTOFDigitsInfo.cxx:31
 AliEveTOFDigitsInfo.cxx:32
 AliEveTOFDigitsInfo.cxx:33
 AliEveTOFDigitsInfo.cxx:34
 AliEveTOFDigitsInfo.cxx:35
 AliEveTOFDigitsInfo.cxx:36
 AliEveTOFDigitsInfo.cxx:37
 AliEveTOFDigitsInfo.cxx:38
 AliEveTOFDigitsInfo.cxx:39
 AliEveTOFDigitsInfo.cxx:40
 AliEveTOFDigitsInfo.cxx:41
 AliEveTOFDigitsInfo.cxx:42
 AliEveTOFDigitsInfo.cxx:43
 AliEveTOFDigitsInfo.cxx:44
 AliEveTOFDigitsInfo.cxx:45
 AliEveTOFDigitsInfo.cxx:46
 AliEveTOFDigitsInfo.cxx:47
 AliEveTOFDigitsInfo.cxx:48
 AliEveTOFDigitsInfo.cxx:49
 AliEveTOFDigitsInfo.cxx:50
 AliEveTOFDigitsInfo.cxx:51
 AliEveTOFDigitsInfo.cxx:52
 AliEveTOFDigitsInfo.cxx:53
 AliEveTOFDigitsInfo.cxx:54
 AliEveTOFDigitsInfo.cxx:55
 AliEveTOFDigitsInfo.cxx:56
 AliEveTOFDigitsInfo.cxx:57
 AliEveTOFDigitsInfo.cxx:58
 AliEveTOFDigitsInfo.cxx:59
 AliEveTOFDigitsInfo.cxx:60
 AliEveTOFDigitsInfo.cxx:61
 AliEveTOFDigitsInfo.cxx:62
 AliEveTOFDigitsInfo.cxx:63
 AliEveTOFDigitsInfo.cxx:64
 AliEveTOFDigitsInfo.cxx:65
 AliEveTOFDigitsInfo.cxx:66
 AliEveTOFDigitsInfo.cxx:67
 AliEveTOFDigitsInfo.cxx:68
 AliEveTOFDigitsInfo.cxx:69
 AliEveTOFDigitsInfo.cxx:70
 AliEveTOFDigitsInfo.cxx:71
 AliEveTOFDigitsInfo.cxx:72
 AliEveTOFDigitsInfo.cxx:73
 AliEveTOFDigitsInfo.cxx:74
 AliEveTOFDigitsInfo.cxx:75
 AliEveTOFDigitsInfo.cxx:76
 AliEveTOFDigitsInfo.cxx:77
 AliEveTOFDigitsInfo.cxx:78
 AliEveTOFDigitsInfo.cxx:79
 AliEveTOFDigitsInfo.cxx:80
 AliEveTOFDigitsInfo.cxx:81
 AliEveTOFDigitsInfo.cxx:82
 AliEveTOFDigitsInfo.cxx:83
 AliEveTOFDigitsInfo.cxx:84
 AliEveTOFDigitsInfo.cxx:85
 AliEveTOFDigitsInfo.cxx:86
 AliEveTOFDigitsInfo.cxx:87
 AliEveTOFDigitsInfo.cxx:88
 AliEveTOFDigitsInfo.cxx:89
 AliEveTOFDigitsInfo.cxx:90
 AliEveTOFDigitsInfo.cxx:91
 AliEveTOFDigitsInfo.cxx:92
 AliEveTOFDigitsInfo.cxx:93
 AliEveTOFDigitsInfo.cxx:94
 AliEveTOFDigitsInfo.cxx:95
 AliEveTOFDigitsInfo.cxx:96
 AliEveTOFDigitsInfo.cxx:97
 AliEveTOFDigitsInfo.cxx:98
 AliEveTOFDigitsInfo.cxx:99
 AliEveTOFDigitsInfo.cxx:100
 AliEveTOFDigitsInfo.cxx:101
 AliEveTOFDigitsInfo.cxx:102
 AliEveTOFDigitsInfo.cxx:103
 AliEveTOFDigitsInfo.cxx:104
 AliEveTOFDigitsInfo.cxx:105
 AliEveTOFDigitsInfo.cxx:106
 AliEveTOFDigitsInfo.cxx:107
 AliEveTOFDigitsInfo.cxx:108
 AliEveTOFDigitsInfo.cxx:109
 AliEveTOFDigitsInfo.cxx:110
 AliEveTOFDigitsInfo.cxx:111
 AliEveTOFDigitsInfo.cxx:112
 AliEveTOFDigitsInfo.cxx:113
 AliEveTOFDigitsInfo.cxx:114
 AliEveTOFDigitsInfo.cxx:115
 AliEveTOFDigitsInfo.cxx:116
 AliEveTOFDigitsInfo.cxx:117
 AliEveTOFDigitsInfo.cxx:118
 AliEveTOFDigitsInfo.cxx:119
 AliEveTOFDigitsInfo.cxx:120
 AliEveTOFDigitsInfo.cxx:121
 AliEveTOFDigitsInfo.cxx:122
 AliEveTOFDigitsInfo.cxx:123
 AliEveTOFDigitsInfo.cxx:124
 AliEveTOFDigitsInfo.cxx:125
 AliEveTOFDigitsInfo.cxx:126
 AliEveTOFDigitsInfo.cxx:127
 AliEveTOFDigitsInfo.cxx:128
 AliEveTOFDigitsInfo.cxx:129
 AliEveTOFDigitsInfo.cxx:130
 AliEveTOFDigitsInfo.cxx:131
 AliEveTOFDigitsInfo.cxx:132
 AliEveTOFDigitsInfo.cxx:133
 AliEveTOFDigitsInfo.cxx:134
 AliEveTOFDigitsInfo.cxx:135
 AliEveTOFDigitsInfo.cxx:136
 AliEveTOFDigitsInfo.cxx:137
 AliEveTOFDigitsInfo.cxx:138
 AliEveTOFDigitsInfo.cxx:139
 AliEveTOFDigitsInfo.cxx:140
 AliEveTOFDigitsInfo.cxx:141
 AliEveTOFDigitsInfo.cxx:142
 AliEveTOFDigitsInfo.cxx:143
 AliEveTOFDigitsInfo.cxx:144
 AliEveTOFDigitsInfo.cxx:145
 AliEveTOFDigitsInfo.cxx:146
 AliEveTOFDigitsInfo.cxx:147
 AliEveTOFDigitsInfo.cxx:148
 AliEveTOFDigitsInfo.cxx:149
 AliEveTOFDigitsInfo.cxx:150
 AliEveTOFDigitsInfo.cxx:151
 AliEveTOFDigitsInfo.cxx:152
 AliEveTOFDigitsInfo.cxx:153
 AliEveTOFDigitsInfo.cxx:154
 AliEveTOFDigitsInfo.cxx:155
 AliEveTOFDigitsInfo.cxx:156
 AliEveTOFDigitsInfo.cxx:157
 AliEveTOFDigitsInfo.cxx:158
 AliEveTOFDigitsInfo.cxx:159
 AliEveTOFDigitsInfo.cxx:160
 AliEveTOFDigitsInfo.cxx:161
 AliEveTOFDigitsInfo.cxx:162
 AliEveTOFDigitsInfo.cxx:163
 AliEveTOFDigitsInfo.cxx:164
 AliEveTOFDigitsInfo.cxx:165
 AliEveTOFDigitsInfo.cxx:166
 AliEveTOFDigitsInfo.cxx:167
 AliEveTOFDigitsInfo.cxx:168
 AliEveTOFDigitsInfo.cxx:169
 AliEveTOFDigitsInfo.cxx:170
 AliEveTOFDigitsInfo.cxx:171
 AliEveTOFDigitsInfo.cxx:172
 AliEveTOFDigitsInfo.cxx:173
 AliEveTOFDigitsInfo.cxx:174
 AliEveTOFDigitsInfo.cxx:175
 AliEveTOFDigitsInfo.cxx:176
 AliEveTOFDigitsInfo.cxx:177
 AliEveTOFDigitsInfo.cxx:178
 AliEveTOFDigitsInfo.cxx:179
 AliEveTOFDigitsInfo.cxx:180
 AliEveTOFDigitsInfo.cxx:181
 AliEveTOFDigitsInfo.cxx:182
 AliEveTOFDigitsInfo.cxx:183
 AliEveTOFDigitsInfo.cxx:184
 AliEveTOFDigitsInfo.cxx:185
 AliEveTOFDigitsInfo.cxx:186
 AliEveTOFDigitsInfo.cxx:187
 AliEveTOFDigitsInfo.cxx:188
 AliEveTOFDigitsInfo.cxx:189
 AliEveTOFDigitsInfo.cxx:190
 AliEveTOFDigitsInfo.cxx:191
 AliEveTOFDigitsInfo.cxx:192
 AliEveTOFDigitsInfo.cxx:193
 AliEveTOFDigitsInfo.cxx:194
 AliEveTOFDigitsInfo.cxx:195
 AliEveTOFDigitsInfo.cxx:196
 AliEveTOFDigitsInfo.cxx:197
 AliEveTOFDigitsInfo.cxx:198
 AliEveTOFDigitsInfo.cxx:199
 AliEveTOFDigitsInfo.cxx:200
 AliEveTOFDigitsInfo.cxx:201
 AliEveTOFDigitsInfo.cxx:202
 AliEveTOFDigitsInfo.cxx:203
 AliEveTOFDigitsInfo.cxx:204
 AliEveTOFDigitsInfo.cxx:205
 AliEveTOFDigitsInfo.cxx:206
 AliEveTOFDigitsInfo.cxx:207
 AliEveTOFDigitsInfo.cxx:208
 AliEveTOFDigitsInfo.cxx:209
 AliEveTOFDigitsInfo.cxx:210
 AliEveTOFDigitsInfo.cxx:211
 AliEveTOFDigitsInfo.cxx:212
 AliEveTOFDigitsInfo.cxx:213
 AliEveTOFDigitsInfo.cxx:214
 AliEveTOFDigitsInfo.cxx:215
 AliEveTOFDigitsInfo.cxx:216
 AliEveTOFDigitsInfo.cxx:217
 AliEveTOFDigitsInfo.cxx:218
 AliEveTOFDigitsInfo.cxx:219
 AliEveTOFDigitsInfo.cxx:220
 AliEveTOFDigitsInfo.cxx:221
 AliEveTOFDigitsInfo.cxx:222
 AliEveTOFDigitsInfo.cxx:223
 AliEveTOFDigitsInfo.cxx:224
 AliEveTOFDigitsInfo.cxx:225
 AliEveTOFDigitsInfo.cxx:226
 AliEveTOFDigitsInfo.cxx:227
 AliEveTOFDigitsInfo.cxx:228
 AliEveTOFDigitsInfo.cxx:229
 AliEveTOFDigitsInfo.cxx:230
 AliEveTOFDigitsInfo.cxx:231
 AliEveTOFDigitsInfo.cxx:232
 AliEveTOFDigitsInfo.cxx:233
 AliEveTOFDigitsInfo.cxx:234
 AliEveTOFDigitsInfo.cxx:235
 AliEveTOFDigitsInfo.cxx:236
 AliEveTOFDigitsInfo.cxx:237
 AliEveTOFDigitsInfo.cxx:238
 AliEveTOFDigitsInfo.cxx:239
 AliEveTOFDigitsInfo.cxx:240
 AliEveTOFDigitsInfo.cxx:241
 AliEveTOFDigitsInfo.cxx:242
 AliEveTOFDigitsInfo.cxx:243
 AliEveTOFDigitsInfo.cxx:244
 AliEveTOFDigitsInfo.cxx:245
 AliEveTOFDigitsInfo.cxx:246
 AliEveTOFDigitsInfo.cxx:247
 AliEveTOFDigitsInfo.cxx:248
 AliEveTOFDigitsInfo.cxx:249
 AliEveTOFDigitsInfo.cxx:250
 AliEveTOFDigitsInfo.cxx:251
 AliEveTOFDigitsInfo.cxx:252
 AliEveTOFDigitsInfo.cxx:253
 AliEveTOFDigitsInfo.cxx:254
 AliEveTOFDigitsInfo.cxx:255
 AliEveTOFDigitsInfo.cxx:256
 AliEveTOFDigitsInfo.cxx:257
 AliEveTOFDigitsInfo.cxx:258
 AliEveTOFDigitsInfo.cxx:259
 AliEveTOFDigitsInfo.cxx:260
 AliEveTOFDigitsInfo.cxx:261
 AliEveTOFDigitsInfo.cxx:262
 AliEveTOFDigitsInfo.cxx:263
 AliEveTOFDigitsInfo.cxx:264
 AliEveTOFDigitsInfo.cxx:265
 AliEveTOFDigitsInfo.cxx:266
 AliEveTOFDigitsInfo.cxx:267
 AliEveTOFDigitsInfo.cxx:268
 AliEveTOFDigitsInfo.cxx:269
 AliEveTOFDigitsInfo.cxx:270
 AliEveTOFDigitsInfo.cxx:271
 AliEveTOFDigitsInfo.cxx:272
 AliEveTOFDigitsInfo.cxx:273
 AliEveTOFDigitsInfo.cxx:274
 AliEveTOFDigitsInfo.cxx:275
 AliEveTOFDigitsInfo.cxx:276
 AliEveTOFDigitsInfo.cxx:277
 AliEveTOFDigitsInfo.cxx:278
 AliEveTOFDigitsInfo.cxx:279
 AliEveTOFDigitsInfo.cxx:280
 AliEveTOFDigitsInfo.cxx:281
 AliEveTOFDigitsInfo.cxx:282
 AliEveTOFDigitsInfo.cxx:283
 AliEveTOFDigitsInfo.cxx:284
 AliEveTOFDigitsInfo.cxx:285
 AliEveTOFDigitsInfo.cxx:286
 AliEveTOFDigitsInfo.cxx:287
 AliEveTOFDigitsInfo.cxx:288
 AliEveTOFDigitsInfo.cxx:289
 AliEveTOFDigitsInfo.cxx:290
 AliEveTOFDigitsInfo.cxx:291
 AliEveTOFDigitsInfo.cxx:292
 AliEveTOFDigitsInfo.cxx:293
 AliEveTOFDigitsInfo.cxx:294
 AliEveTOFDigitsInfo.cxx:295
 AliEveTOFDigitsInfo.cxx:296
 AliEveTOFDigitsInfo.cxx:297
 AliEveTOFDigitsInfo.cxx:298
 AliEveTOFDigitsInfo.cxx:299
 AliEveTOFDigitsInfo.cxx:300
 AliEveTOFDigitsInfo.cxx:301
 AliEveTOFDigitsInfo.cxx:302
 AliEveTOFDigitsInfo.cxx:303
 AliEveTOFDigitsInfo.cxx:304
 AliEveTOFDigitsInfo.cxx:305
 AliEveTOFDigitsInfo.cxx:306
 AliEveTOFDigitsInfo.cxx:307
 AliEveTOFDigitsInfo.cxx:308
 AliEveTOFDigitsInfo.cxx:309
 AliEveTOFDigitsInfo.cxx:310
 AliEveTOFDigitsInfo.cxx:311
 AliEveTOFDigitsInfo.cxx:312
 AliEveTOFDigitsInfo.cxx:313
 AliEveTOFDigitsInfo.cxx:314
 AliEveTOFDigitsInfo.cxx:315
 AliEveTOFDigitsInfo.cxx:316
 AliEveTOFDigitsInfo.cxx:317
 AliEveTOFDigitsInfo.cxx:318
 AliEveTOFDigitsInfo.cxx:319
 AliEveTOFDigitsInfo.cxx:320
 AliEveTOFDigitsInfo.cxx:321
 AliEveTOFDigitsInfo.cxx:322
 AliEveTOFDigitsInfo.cxx:323
 AliEveTOFDigitsInfo.cxx:324
 AliEveTOFDigitsInfo.cxx:325
 AliEveTOFDigitsInfo.cxx:326
 AliEveTOFDigitsInfo.cxx:327
 AliEveTOFDigitsInfo.cxx:328
 AliEveTOFDigitsInfo.cxx:329
 AliEveTOFDigitsInfo.cxx:330
 AliEveTOFDigitsInfo.cxx:331
 AliEveTOFDigitsInfo.cxx:332
 AliEveTOFDigitsInfo.cxx:333
 AliEveTOFDigitsInfo.cxx:334
 AliEveTOFDigitsInfo.cxx:335
 AliEveTOFDigitsInfo.cxx:336
 AliEveTOFDigitsInfo.cxx:337
 AliEveTOFDigitsInfo.cxx:338
 AliEveTOFDigitsInfo.cxx:339
 AliEveTOFDigitsInfo.cxx:340
 AliEveTOFDigitsInfo.cxx:341
 AliEveTOFDigitsInfo.cxx:342
 AliEveTOFDigitsInfo.cxx:343
 AliEveTOFDigitsInfo.cxx:344
 AliEveTOFDigitsInfo.cxx:345
 AliEveTOFDigitsInfo.cxx:346
 AliEveTOFDigitsInfo.cxx:347
 AliEveTOFDigitsInfo.cxx:348
 AliEveTOFDigitsInfo.cxx:349
 AliEveTOFDigitsInfo.cxx:350
 AliEveTOFDigitsInfo.cxx:351
 AliEveTOFDigitsInfo.cxx:352
 AliEveTOFDigitsInfo.cxx:353
 AliEveTOFDigitsInfo.cxx:354
 AliEveTOFDigitsInfo.cxx:355
 AliEveTOFDigitsInfo.cxx:356
 AliEveTOFDigitsInfo.cxx:357
 AliEveTOFDigitsInfo.cxx:358
 AliEveTOFDigitsInfo.cxx:359
 AliEveTOFDigitsInfo.cxx:360
 AliEveTOFDigitsInfo.cxx:361
 AliEveTOFDigitsInfo.cxx:362
 AliEveTOFDigitsInfo.cxx:363
 AliEveTOFDigitsInfo.cxx:364
 AliEveTOFDigitsInfo.cxx:365
 AliEveTOFDigitsInfo.cxx:366
 AliEveTOFDigitsInfo.cxx:367
 AliEveTOFDigitsInfo.cxx:368
 AliEveTOFDigitsInfo.cxx:369
 AliEveTOFDigitsInfo.cxx:370
 AliEveTOFDigitsInfo.cxx:371
 AliEveTOFDigitsInfo.cxx:372
 AliEveTOFDigitsInfo.cxx:373
 AliEveTOFDigitsInfo.cxx:374
 AliEveTOFDigitsInfo.cxx:375
 AliEveTOFDigitsInfo.cxx:376
 AliEveTOFDigitsInfo.cxx:377
 AliEveTOFDigitsInfo.cxx:378
 AliEveTOFDigitsInfo.cxx:379
 AliEveTOFDigitsInfo.cxx:380
 AliEveTOFDigitsInfo.cxx:381
 AliEveTOFDigitsInfo.cxx:382
 AliEveTOFDigitsInfo.cxx:383
 AliEveTOFDigitsInfo.cxx:384
 AliEveTOFDigitsInfo.cxx:385
 AliEveTOFDigitsInfo.cxx:386
 AliEveTOFDigitsInfo.cxx:387
 AliEveTOFDigitsInfo.cxx:388
 AliEveTOFDigitsInfo.cxx:389
 AliEveTOFDigitsInfo.cxx:390
 AliEveTOFDigitsInfo.cxx:391
 AliEveTOFDigitsInfo.cxx:392
 AliEveTOFDigitsInfo.cxx:393
 AliEveTOFDigitsInfo.cxx:394
 AliEveTOFDigitsInfo.cxx:395
 AliEveTOFDigitsInfo.cxx:396
 AliEveTOFDigitsInfo.cxx:397
 AliEveTOFDigitsInfo.cxx:398
 AliEveTOFDigitsInfo.cxx:399
 AliEveTOFDigitsInfo.cxx:400
 AliEveTOFDigitsInfo.cxx:401
 AliEveTOFDigitsInfo.cxx:402
 AliEveTOFDigitsInfo.cxx:403
 AliEveTOFDigitsInfo.cxx:404
 AliEveTOFDigitsInfo.cxx:405
 AliEveTOFDigitsInfo.cxx:406
 AliEveTOFDigitsInfo.cxx:407
 AliEveTOFDigitsInfo.cxx:408
 AliEveTOFDigitsInfo.cxx:409
 AliEveTOFDigitsInfo.cxx:410
 AliEveTOFDigitsInfo.cxx:411
 AliEveTOFDigitsInfo.cxx:412
 AliEveTOFDigitsInfo.cxx:413
 AliEveTOFDigitsInfo.cxx:414
 AliEveTOFDigitsInfo.cxx:415
 AliEveTOFDigitsInfo.cxx:416
 AliEveTOFDigitsInfo.cxx:417
 AliEveTOFDigitsInfo.cxx:418
 AliEveTOFDigitsInfo.cxx:419
 AliEveTOFDigitsInfo.cxx:420
 AliEveTOFDigitsInfo.cxx:421
 AliEveTOFDigitsInfo.cxx:422
 AliEveTOFDigitsInfo.cxx:423
 AliEveTOFDigitsInfo.cxx:424
 AliEveTOFDigitsInfo.cxx:425
 AliEveTOFDigitsInfo.cxx:426
 AliEveTOFDigitsInfo.cxx:427
 AliEveTOFDigitsInfo.cxx:428
 AliEveTOFDigitsInfo.cxx:429
 AliEveTOFDigitsInfo.cxx:430
 AliEveTOFDigitsInfo.cxx:431
 AliEveTOFDigitsInfo.cxx:432
 AliEveTOFDigitsInfo.cxx:433
 AliEveTOFDigitsInfo.cxx:434
 AliEveTOFDigitsInfo.cxx:435
 AliEveTOFDigitsInfo.cxx:436
 AliEveTOFDigitsInfo.cxx:437
 AliEveTOFDigitsInfo.cxx:438
 AliEveTOFDigitsInfo.cxx:439
 AliEveTOFDigitsInfo.cxx:440
 AliEveTOFDigitsInfo.cxx:441
 AliEveTOFDigitsInfo.cxx:442
 AliEveTOFDigitsInfo.cxx:443
 AliEveTOFDigitsInfo.cxx:444
 AliEveTOFDigitsInfo.cxx:445
 AliEveTOFDigitsInfo.cxx:446
 AliEveTOFDigitsInfo.cxx:447
 AliEveTOFDigitsInfo.cxx:448
 AliEveTOFDigitsInfo.cxx:449
 AliEveTOFDigitsInfo.cxx:450
 AliEveTOFDigitsInfo.cxx:451
 AliEveTOFDigitsInfo.cxx:452
 AliEveTOFDigitsInfo.cxx:453
 AliEveTOFDigitsInfo.cxx:454
 AliEveTOFDigitsInfo.cxx:455
 AliEveTOFDigitsInfo.cxx:456
 AliEveTOFDigitsInfo.cxx:457
 AliEveTOFDigitsInfo.cxx:458
 AliEveTOFDigitsInfo.cxx:459
 AliEveTOFDigitsInfo.cxx:460
 AliEveTOFDigitsInfo.cxx:461
 AliEveTOFDigitsInfo.cxx:462