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

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

#include "AliEveITSModule.h"

#include <AliITSgeomTGeo.h>
#include <AliITSsegmentationSPD.h>
#include <AliITSsegmentationSDD.h>
#include <AliITSsegmentationSSD.h>

#include <AliITSdigitSPD.h>
#include <AliITSdigitSDD.h>
#include <AliITSdigitSSD.h>

#include <TEveTrans.h>
#include <TClonesArray.h>
#include <TStyle.h>


//______________________________________________________________________________
//
// Visualization of an ITS module.

ClassImp(AliEveITSModule)

Bool_t AliEveITSModule::fgStaticInitDone = kFALSE;

TEveFrameBox*    AliEveITSModule::fgSPDFrameBox     = 0;
TEveFrameBox*    AliEveITSModule::fgSPDFrameBoxDead = 0;
TEveFrameBox*    AliEveITSModule::fgSDDFrameBox     = 0;
TEveFrameBox*    AliEveITSModule::fgSDDFrameBoxDead = 0;
TEveFrameBox*    AliEveITSModule::fgSSDFrameBox     = 0;
TEveFrameBox*    AliEveITSModule::fgSSDFrameBoxDead = 0;

TEveRGBAPalette* AliEveITSModule::fgSPDPalette  = 0;
TEveRGBAPalette* AliEveITSModule::fgSDDPalette  = 0;
TEveRGBAPalette* AliEveITSModule::fgSSDPalette  = 0;

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

AliEveITSModule::AliEveITSModule(const Text_t* n, const Text_t* t) :
  TEveQuadSet(n, t),
  fInfo(0),
  fID(-1), fDetID(-1),
  fLayer(-1), fLadder(-1), fDet(-1),
  fDx(0), fDz(0), fDy(0)
{
  // Constructor.
}

AliEveITSModule::AliEveITSModule(Int_t gid, AliEveITSDigitsInfo* info) :
  TEveQuadSet(Form("ITS module %d", gid)),
  fInfo  (0),
  fID(-1), fDetID(-1),
  fLayer(-1), fLadder(-1), fDet(-1),
  fDx(0), fDz(0), fDy(0)
{
  // Constructor with module id and data-source.

  SetDigitsInfo(info);
  SetID(gid);
}

AliEveITSModule::~AliEveITSModule()
{
  // Destructor.

  if (fInfo) fInfo->DecRefCount();
}

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

void AliEveITSModule::InitStatics(AliEveITSDigitsInfo* info)
{
  // Initialize static variables.
  //
  // Warning all sensor sizes are in microns, here we transform them
  // to cm. In Eve half-lengths/widths are used, hence another 1/2.

  if (fgStaticInitDone) return;
  fgStaticInitDone = kTRUE;

  {
    Float_t dx = info->fSegSPD->Dx()*0.00005;
    Float_t dz = info->fSegSPD->Dz()*0.00005;

    fgSPDFrameBox = new TEveFrameBox();
    fgSPDFrameBox->SetAAQuadXZ(-dx, 0, -dz, 2*dx, 2*dz);
    fgSPDFrameBox->SetFrameColor(Color_t(31));
    fgSPDFrameBox->SetFrameFill(kTRUE);
    fgSPDFrameBox->IncRefCount();
    fgSPDPalette  = new TEveRGBAPalette(info->fSPDMinVal,info->fSPDMaxVal);
    fgSPDPalette->IncRefCount();

    fgSPDFrameBoxDead = new TEveFrameBox();
    fgSPDFrameBoxDead->SetAAQuadXZ(-dx, 0, -dz, 2*dx, 2*dz);
    fgSPDFrameBoxDead->SetFrameColor(kRed);
    fgSPDFrameBoxDead->SetFrameFill(kTRUE);
    fgSPDFrameBoxDead->IncRefCount();
  }

  {
    Float_t dx = info->fSegSDD->Dx()*0.0001;
    Float_t dz = info->fSegSDD->Dz()*0.00005;

    fgSDDFrameBox = new TEveFrameBox();
    fgSDDFrameBox->SetAAQuadXZ(-dx, 0, -dz, 2*dx, 2*dz);
    fgSDDFrameBox->SetFrameColor(Color_t(32));
    fgSDDFrameBox->SetFrameFill(kTRUE);
    fgSDDFrameBox->IncRefCount();
    fgSDDPalette  = new TEveRGBAPalette(info->fSDDMinVal,info->fSDDMaxVal);
    fgSDDPalette->SetLimits(0, info->fSDDHighLim); // Set proper ADC range.
    fgSDDPalette->IncRefCount();

    fgSDDFrameBoxDead = new TEveFrameBox();
    fgSDDFrameBoxDead->SetAAQuadXZ(-dx, 0, -dz, 2*dx, 2*dz);
    fgSDDFrameBoxDead->SetFrameColor(kRed);
    fgSDDFrameBoxDead->SetFrameFill(kTRUE);
    fgSDDFrameBoxDead->IncRefCount();
  }

  {
    Float_t dx = info->fSegSSD->Dx()*0.00005;
    Float_t dz = info->fSegSSD->Dz()*0.00005;

    fgSSDFrameBox = new TEveFrameBox();
    fgSSDFrameBox->SetAAQuadXZ(-dx, 0, -dz, 2*dx, 2*dz);
    fgSSDFrameBox->SetFrameColor(Color_t(33));
    fgSSDFrameBox->SetFrameFill(kTRUE);
    fgSSDFrameBox->IncRefCount();
    fgSSDPalette  = new TEveRGBAPalette(info->fSSDMinVal,info->fSSDMaxVal);
    fgSSDPalette->SetLimits(0, info->fSSDHighLim); // Set proper ADC range.
    fgSSDPalette->IncRefCount();

    fgSSDFrameBoxDead = new TEveFrameBox();
    fgSSDFrameBoxDead->SetAAQuadXZ(-dx, 0, -dz, 2*dx, 2*dz);
    fgSSDFrameBoxDead->SetFrameColor(kRed);
    fgSSDFrameBoxDead->SetFrameFill(kTRUE);
    fgSSDFrameBoxDead->IncRefCount();
  }

}

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

void AliEveITSModule::SetDigitsInfo(AliEveITSDigitsInfo* info)
{
  // Set data and geometry source.

  if (fInfo == info) return;
  if (fInfo) fInfo->DecRefCount();
  fInfo = info;
  if (fInfo) fInfo->IncRefCount();
}

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

void AliEveITSModule::SetID(Int_t gid, Bool_t trans)
{
  // Set detector id.

  static const TEveException kEH("AliEveITSModule::SetID ");

  if (fInfo == 0)
    throw(kEH + "AliEveITSDigitsInfo not set.");

  Int_t firstSPD = AliITSgeomTGeo::GetModuleIndex(1,1,1);
  Int_t lastSSD  = AliITSgeomTGeo::GetNModules() - 1;
  if (gid < firstSPD || gid > lastSSD)
  {
    throw(kEH + Form("%d is not valid. ID range from %d to %d", gid,
		    firstSPD, lastSSD ));
  }

  fID = gid;

  if (!fgStaticInitDone)
  {
    InitStatics(fInfo);
  }

  AliITSgeomTGeo::GetModuleId(fID, fLayer, fLadder, fDet);
  TString strLadder = "Ladder";
  TString strSensor = "Sensor";
  TString symname;
  Int_t   id, nsector, nstave, nladder, rest;

  if (fID <= (AliITSgeomTGeo::GetModuleIndex(3,1,1) - 1))
  {
    // SPD

    fDetID = 0;

    SetFrame(fInfo->IsDead(fID, fDetID) ? fgSPDFrameBoxDead : fgSPDFrameBox);
    SetPalette(fgSPDPalette);

    symname += strLadder;
    if (fID < 80)
    {
      nsector = fID/8;
      rest    = fID - 8*nsector;
      nstave  = 1;
    }
    else
    {
      id      = fID - 80;
      nsector = id/8;
      rest    = id - 8*nsector;
      nstave  = 1;
    }
    if (rest < 4) nstave = 0;
    rest    -= 4*nstave;
    symname += rest;
    SetName(symname);
    fDx = fInfo->fSegSPD->Dx()*0.00005;
    fDz = 3.50;
    fDy = fInfo->fSegSPD->Dy()*0.00005;
  }
  else if (fID <= (AliITSgeomTGeo::GetModuleIndex(5,1,1) - 1))
  {
    // SDD

    fDetID = 1;

    SetFrame(fInfo->IsDead(fID, fDetID) ? fgSDDFrameBoxDead : fgSDDFrameBox);
    SetPalette(fgSDDPalette);

    symname += strSensor;
    if (fID < 324)
    {
      id      = fID - 240;
      nladder = id/6;
      rest    = id - 6*nladder;
    }
    else
    {
      id      = fID - 324;
      nladder = id/8;
      rest    = id - 8*nladder;
    }
    symname += rest;
    SetName(symname);
    fDx = fInfo->fSegSDD->Dx()*0.0001;
    fDz = fInfo->fSegSDD->Dz()*0.00005;
    fDy = fInfo->fSegSDD->Dy()*0.00005;
  }
  else
  {
    // SSD

    fDetID = 2;

    SetFrame(fInfo->IsDead(fID, fDetID) ? fgSSDFrameBoxDead : fgSSDFrameBox);
    SetPalette(fgSSDPalette);

    symname += strSensor;
    if (fID < 1248)
    {
      id      = fID - 500;
      nladder = id/22;
      rest    = id - nladder*22;
    }
    else
    {
      id      = fID - 1248;
      nladder = id/25;
      rest    = id - nladder*25;
    }
    symname += rest;
    SetName(symname);
    fInfo->fSegSSD->SetLayer(fLayer);
    fDx = fInfo->fSegSSD->Dx()*0.00005;
    fDz = fInfo->fSegSSD->Dz()*0.00005;
    fDy = fInfo->fSegSSD->Dy()*0.00005;
  }

  LoadQuads();
  RefitPlex();
  ComputeBBox();
  InitMainTrans();
  if (trans)
    SetTrans();

}

void AliEveITSModule::LoadQuads()
{
  // Read module data from source and create low-level objects for
  // visualization - called quads.

  TClonesArray *digits  = fInfo->GetDigits(fID, fDetID);
  Int_t         ndigits = digits ? digits->GetEntriesFast() : 0;

  Float_t       x, z, dpx, dpz;
  Int_t         i, j;

  switch(fDetID)
  {
    case 0:
    {
      AliITSsegmentationSPD* seg =  fInfo->fSegSPD;

      Reset(kQT_RectangleXZFixedY, kFALSE, 32);

      for (Int_t k=0; k<ndigits; ++k)
      {
	AliITSdigit *d = (AliITSdigit*) digits->UncheckedAt(k);
	j = d->GetCoord1();
	i = d->GetCoord2();
	x  = -0.5*seg->Dx() + i*seg->Dpx(0);
	x *=  0.0001;
	fInfo->GetSPDLocalZ(j, z);
	dpx = seg->Dpx(i)*0.0001;
	dpz = seg->Dpz(j)*0.0001;

	AddQuad(x, z, dpx, dpz);
	QuadValue(1); // In principle could have color based on number of neigbours
	QuadId(d);
      }
      break;
    }

    case 1:
    {
      AliITSsegmentationSDD *seg =  fInfo->fSegSDD;

      Reset(kQT_RectangleXZFixedY, kFALSE, 32);

      for (Int_t k=0; k<ndigits; ++k)
      {
	AliITSdigit* d = (AliITSdigit*) digits->UncheckedAt(k);

	j = d->GetCoord1();
	i = d->GetCoord2();
	seg->DetToLocal(i, j, x, z);
	dpx = seg->Dpx(i)*0.0001;
	dpz = seg->Dpz(j)*0.0001;

	AddQuad(x-2*dpx, z - dpz*0.5, 4*dpx, dpz);
	QuadValue(d->GetSignal());
	QuadId(d);
      }
      break;
    }

    case 2:
    {
      AliITSsegmentationSSD* seg = fInfo->fSegSSD;

      Reset(kQT_LineXZFixedY, kFALSE, 32);

      Float_t ap, an; // positive/negative angles -> offsets
      seg->Angles(ap, an);
      ap =   TMath::Tan(ap) * fDz;
      an = - TMath::Tan(an) * fDz;

      for (Int_t k=0; k<ndigits; ++k)
      {
	AliITSdigit *d = (AliITSdigit*) digits->UncheckedAt(k);

	j = d->GetCoord1();
	i = d->GetCoord2();
	// !!!! The following function complains about not being verified.
	// !!!! Experts should check.
	seg->DetToLocal(i,j,x,z);

	Float_t a = (d->GetCoord1() == 1) ? ap : an;

	AddLine(x-a, -fDz, 2*a, 2*fDz);
	QuadValue(d->GetSignal());
	QuadId(d);
	// printf("%3d -> %3d -> %8x\n", d->GetSignal(), ci, fQuads.back().color);
      }
      break;
    }

  } // end switch
}

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

void AliEveITSModule::SetTrans()
{
  // Set transformation matrix based on module id (use geometry to
  // retrieve this information).

  fMainTrans->SetFrom(*AliITSgeomTGeo::GetMatrix(fID));
}

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

void AliEveITSModule::DigitSelected(Int_t idx)
{
  // Override secondary select (alt-click) from TEveQuadSet.

  DigitBase_t *qb  = GetDigit(idx);
  TObject     *obj = GetId(idx);
  AliITSdigit *d   = dynamic_cast<AliITSdigit*>(obj);
  printf("AliEveITSModule::QuadSelected "); Print();
  printf("  idx=%d, value=%d, obj=0x%lx, digit=0x%lx\n",
	 idx, qb->fValue, (ULong_t)obj, (ULong_t)d);
  if (d)
    printf("  coord1=%3d coord2=%3d signal=%d\n",
	   d->GetCoord1(), d->GetCoord2(), d->GetSignal());

}

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

void AliEveITSModule::Print(Option_t* ) const
{
  // Print object summary information.

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