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 visualize the TOF digit information
// in TOF sector frame
//
// Author: A. De Caro (email: decaro@sa.infn.t)
//

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

#include <TEveTrans.h>

#include <AliTOFdigit.h>
#include <AliTOFGeometry.h>

#include "AliEveTOFSector.h"

Bool_t           AliEveTOFSector::fgStaticInitDone    = kFALSE;
TEveFrameBox*    AliEveTOFSector::fgTOFsectorFrameBox = 0;
TEveRGBAPalette* AliEveTOFSector::fgTOFsectorPalette  = 0;

//_______________________________________________________
ClassImp(AliEveTOFSector)

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

AliEveTOFSector::AliEveTOFSector(const Text_t* n, const Text_t* t) :
  TEveQuadSet(n, t),
  fTOFgeometry(new AliTOFGeometry()),
  fTOFarray(0x0),
  fTOFtree(0x0),
  fSector(-1),
  fDx(0), fDy(0), fDz(0),
  fAutoTrans (kTRUE),
  //fMinTime   (0), fMaxTime (0),
  fThreshold (5), fMaxVal (80),
  fSectorID  (0),
  //fPlateFlag0(kTRUE), fPlateFlag1(kTRUE), fPlateFlag2(kTRUE), fPlateFlag3(kTRUE), fPlateFlag4(kTRUE),
  fPlateFlag (0x0),
  //fFrameColor(4),
  //fRnrFrame  (kFALSE),
  fGeoManager(0)
{

  // default ctr

  fPlateFlag = new Bool_t[5];
  for (Int_t ii=0; ii<5; ii++) fPlateFlag[ii]=kTRUE;


  //fGeoManager = AliEveEventManager::AssertGeometry();
  if (!fGeoManager) {
    printf("ERROR: no TGeo\n");
  }

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

AliEveTOFSector::AliEveTOFSector(TGeoManager *localGeoManager,
		     Int_t nSector)
  :
  TEveQuadSet(Form("Sector%i",nSector)),
  fTOFgeometry(new AliTOFGeometry()),
  fTOFarray(0x0),
  fTOFtree(0x0),
  fSector(nSector),
  fDx(0), fDy(0), fDz(0),
  fAutoTrans (kTRUE),
  //fMinTime   (0), fMaxTime (0),
  fThreshold (5), fMaxVal  (80),
  fSectorID  (nSector),
  //fPlateFlag0(kTRUE), fPlateFlag1(kTRUE), fPlateFlag2(kTRUE), fPlateFlag3(kTRUE), fPlateFlag4(kTRUE),
  fPlateFlag (0x0),
  //fFrameColor(4),
  //fRnrFrame  (kFALSE),
  fGeoManager(localGeoManager)
{

  // ctr

  fPlateFlag = new Bool_t[5];
  for (Int_t ii=0; ii<5; ii++) fPlateFlag[ii]=kTRUE;

  /*
  if (!fGeoManager) {
    printf("ERROR: no TGeo\n");
  }
  */

  InitModule();

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

AliEveTOFSector::AliEveTOFSector(TGeoManager *localGeoManager,
		     Int_t nSector,
		     TClonesArray *tofArray)
  :
  TEveQuadSet(Form("Sector%i",nSector)),
  fTOFgeometry(new AliTOFGeometry()),
  fTOFarray(tofArray),
  fTOFtree(0x0),
  fSector(nSector),
  fDx(0), fDy(0), fDz(0),
  fAutoTrans (kTRUE),
  //fMinTime   (0), fMaxTime (0),
  fThreshold (5), fMaxVal    (80),
  fSectorID  (nSector),
  //fPlateFlag0(kTRUE), fPlateFlag1(kTRUE), fPlateFlag2(kTRUE), fPlateFlag3(kTRUE), fPlateFlag4(kTRUE),
  fPlateFlag (0x0),
  //fFrameColor(4),
  //fRnrFrame  (kFALSE),
  fGeoManager(localGeoManager)
{

  // ctr

  fPlateFlag = new Bool_t[5];
  for (Int_t ii=0; ii<5; ii++) fPlateFlag[ii]=kTRUE;

  InitModule();

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

AliEveTOFSector::AliEveTOFSector(TGeoManager *localGeoManager,
		     Int_t nSector,
		     TTree *tofTree)
  :
  TEveQuadSet(Form("Sector%i",nSector)),
  fTOFgeometry(new AliTOFGeometry()),
  fTOFarray(0x0),
  fTOFtree(tofTree),
  fSector(nSector),
  fDx(0), fDy(0), fDz(0),
  fAutoTrans (kTRUE),
  //fMinTime   (0), fMaxTime (0),
  fThreshold (5), fMaxVal    (80),
  fSectorID  (nSector),
  //fPlateFlag0(kTRUE), fPlateFlag1(kTRUE), fPlateFlag2(kTRUE), fPlateFlag3(kTRUE), fPlateFlag4(kTRUE),
  fPlateFlag (0x0),
  //fFrameColor(4),
  //fRnrFrame  (kFALSE),
  fGeoManager(localGeoManager)
{

  // ctr

  fPlateFlag = new Bool_t[5];
  for (Int_t ii=0; ii<5; ii++) fPlateFlag[ii]=kTRUE;

  InitModule();

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

AliEveTOFSector::~AliEveTOFSector()
{

  // dtr

  /*
  fGeoManager = 0x0;
  delete fGeoManager;

  delete fTOFarray;
  fTOFarray = 0x0;
  */
  delete fPlateFlag;

}

/* ************************************************************************ */
/*
void AliEveTOFSector::SetDigitsInfo(AliEveTOFDigitsInfo* info)
{
  if(fInfo) fInfo->DecRefCount();
  fInfo = info;
  if(fInfo) fInfo->IncRefCount();

}
*/
/* ************************************************************************ */
void AliEveTOFSector::InitStatics()
{
  //
  // To initialize statistic variables
  //

  if (fgStaticInitDone) return;

  Float_t dx = 124.5;
  Float_t dz =  29.;
  Float_t dy = 370.6*2.;
  fgTOFsectorFrameBox = new TEveFrameBox();
  fgTOFsectorFrameBox->SetAABox(-dx*0.5, -dy*0.5, -dz*0.5, dx, dy, dz);
  fgTOFsectorFrameBox->SetFrameColor(Color_t(32));
  fgTOFsectorFrameBox->IncRefCount();

  //fgTOFsectorPalette  = new TEveRGBAPalette(0, 2048); // TOT
  //fgTOFsectorPalette->SetLimits(0, 2048); 
  //fgTOFsectorPalette  = new TEveRGBAPalette(0, 8192); // TDC
  fgTOFsectorPalette  = new TEveRGBAPalette(0, 100000); // TDC
  fgTOFsectorPalette->SetOverflowAction(2);
  fgTOFsectorPalette->SetUnderflowAction(2);
  fgTOFsectorPalette->IncRefCount();

  fgStaticInitDone = kTRUE;
}

/* ************************************************************************ */
void AliEveTOFSector::InitModule()
{
  //
  // To initialize TOF sector frame variables
  //

  fDx = fTOFgeometry->XPad()*fTOFgeometry->NpadX();
  //fDy = fTOFgeometry->XPad()*fTOFgeometry->NpadX();
  fDz = fTOFgeometry->ZPad()*fTOFgeometry->NpadZ();

  if (!fgStaticInitDone) InitStatics();

  SetFrame(fgTOFsectorFrameBox);
  SetPalette(fgTOFsectorPalette);
  //fFrame   = fgTOFsectorFrameBox;
  //fPalette = fgTOFsectorPalette;

  LoadQuads();
  ComputeBBox();
  SetTrans();

}

/* ************************************************************************ */
void AliEveTOFSector::LoadQuads()
{
  //
  // Load TOF digit as illuminated pad
  //

  //Int_t n_col = gStyle->GetNumberOfColors();

  Int_t vol[5] = {fSectorID, -1, -1, -1, -1};
  Int_t informations[4] = {-1, -1, -1, -1};
  Int_t dummy[3] = {-1, -1, -1};
  Int_t tdc = -1;
  Int_t tot = -1;

  Double_t coord[4][3];

  Reset(kQT_FreeQuad, kFALSE, 32);

  //printf(" fTOFarray->GetEntries() = %4i \n",fTOFarray->GetEntries());

  if (fTOFtree && !fTOFarray) {
    //printf("Hello world\n");
    TClonesArray* digitsTOFnew = new TClonesArray("AliTOFdigit",  300);

    fTOFarray = new TClonesArray("AliTOFdigit",  300);
    TClonesArray &ldigits = *fTOFarray;
    Int_t newCounter = 0;

    AliTOFdigit *digs;

    fTOFtree->SetBranchAddress("TOF",&digitsTOFnew);
    fTOFtree->GetEntry(0);
    for (Int_t digitNumber=0; digitNumber<digitsTOFnew->GetEntries(); digitNumber++) {

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

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

      if (digs->GetSector()!=fSectorID) continue;

      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)

      informations[0] = digs->GetTdc();
      informations[1] = digs->GetAdc();
      informations[2] = digs->GetToT();
      informations[3] = digs->GetTdcND();
      new (ldigits[newCounter++]) AliTOFdigit(dummy, vol, informations);
    }
  }

  AliTOFdigit *tofDigit;
  //printf("  0x%lx\n",fTOFarray);
  for (Int_t ii=0; ii<fTOFarray->GetEntries(); ii++) {

    tofDigit = (AliTOFdigit*)fTOFarray->UncheckedAt(ii);

    if (fPlateFlag[tofDigit->GetPlate()]) {

      vol[1] = tofDigit->GetPlate();
      vol[2] = tofDigit->GetStrip();
      vol[3] = tofDigit->GetPadz();
      vol[4] = tofDigit->GetPadx();

      tot = tofDigit->GetToT();
      tdc = tofDigit->GetTdc();

      //if (fSector==4 && fPlate==2 && fStrip==0) printf(" %2i  %1i\n", iPadX, iPadZ);
      //if (iPadX==23 || iPadX==24) printf(" %2i  %1i %2i \n", fSector, fPlate, fStrip);
      //if (vol[0]==4 && vol[1]==2 && vol[2]==7) {

      for (Int_t kk=0; kk<4; kk++) for (Int_t jj=0; jj<3; jj++) coord[kk][jj]=0.;

      fTOFgeometry->DetToSectorRF(vol, coord);
      /*
	printf("\n");
	printf("  %1i   %2i,   %f  %f  %f \n", vol[3], vol[4], coord[0][0], coord[0][1], coord[0][2]);
	printf("  %1i   %2i,   %f  %f  %f \n", vol[3], vol[4], coord[1][0], coord[1][1], coord[1][2]);
	printf("  %1i   %2i,   %f  %f  %f \n", vol[3], vol[4], coord[2][0], coord[2][1], coord[2][2]);
	printf("  %1i   %2i,   %f  %f  %f \n", vol[3], vol[4], coord[3][0], coord[3][1], coord[3][2]);
      */
      Float_t vertices[12]={(Float_t)coord[0][0], (Float_t)coord[0][1], (Float_t)coord[0][2],
			    (Float_t)coord[1][0], (Float_t)coord[1][1], (Float_t)coord[1][2],
			    (Float_t)coord[2][0], (Float_t)coord[2][1], (Float_t)coord[2][2],
			    (Float_t)coord[3][0], (Float_t)coord[3][1], (Float_t)coord[3][2]};

      AddQuad(vertices);
      //AddQuad((Float_t*)coord);
      //AddQuad(coord[0], coord[1], coord[2], 2.5, 3.5);
      //AddQuad(-2.5*0.5, -3.5*0.5, 2.5, 3.5);

      // In principle could have color based on number of neigbours. We
      // can insert the time-of-flight value for each pad

      //QuadValue((Int_t)tot);
      QuadValue((Int_t)tdc);
      QuadId(tofDigit);

    //}
    } // closed if control on plates switched on
  } // closed loop on TOF sector digits

  RefitPlex();

  fTOFarray = 0x0;

}

/* ************************************************************ */
void AliEveTOFSector::SetTrans()
{
  //
  // Set the translation matrix for TOF sector
  //

  InitMainTrans();
  TEveTrans& t = RefMainTrans();

  //Int_t det[5] = {fSector, -1, -1, -1, -1};
  Char_t path[200];

  Int_t localSector = fSector;
  if (!fAutoTrans) localSector = 4;

  //fTOFgeometry->GetVolumePath(det,path);
  fTOFgeometry->GetVolumePath(localSector,path);
  fGeoManager->cd(path);
  TGeoHMatrix global = *fGeoManager->GetCurrentMatrix();
  Double_t *rotMat = global.GetRotationMatrix();
  Double_t *tr = global.GetTranslation();

  t.SetBaseVec(1, rotMat[0], rotMat[3], rotMat[6]);
  t.SetBaseVec(2, rotMat[1], rotMat[4], rotMat[7]);
  t.SetBaseVec(3, rotMat[2], rotMat[5], rotMat[8]);
  t.SetBaseVec(4, tr);
}

//-----------------------------------------------------

void AliEveTOFSector::SetSectorID(Int_t id)
{
  //
  // Set TOF sector ID to be visualized
  //

  fSectorID = id;
  fSector   = id;
  if (fAutoTrans)
    SetTrans(); // Force repositioning.

  LoadQuads();
}

//-----------------------------------------------------

void AliEveTOFSector::SetPlate(Int_t nPlate, Bool_t r)
{
  //
  // Set visualization flag to visualize TOF modules
  //

  fPlateFlag[nPlate] = r;

  //printf("   HELLO World ! %i %i %i \n", nPlate, r, fPlateFlag[nPlate]);
}

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

void AliEveTOFSector::SetThreshold(Short_t t)
{
  //
  // Set visualization threshold
  //

  fThreshold = TMath::Min(t, (Short_t)(fMaxVal - 1));
  // ClearColorArray();
}

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

void AliEveTOFSector::SetMaxVal(Int_t mv)
{
  //
  // Set visualization max value
  //

  fMaxVal = TMath::Max(mv, (Int_t)(fThreshold + 1));
  //ClearColorArray();
}

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

void AliEveTOFSector::DigitSelected(Int_t idx)
{
  //
  // Override control-click from TEveQuadSet
  //

  TObject* obj   = GetId(idx);
  AliTOFdigit* digs = dynamic_cast<AliTOFdigit*>(obj);
  // printf("AliEveTOFSector::QuadSelected "); Print();
  if (digs)
    printf("\n Sector = %2i  Plate = %1i  Strip = %2i  PadZ = %1i PadX = %2i  ToT = %3i  Tof = %5i\n",
	   fSector , digs->GetPlate(), digs->GetStrip(), digs->GetPadz(), digs->GetPadx(), digs->GetToT(), digs->GetTdc());
  else printf("\n");

}

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