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 "AliEvePMDModule.h"

#include "AliPMDdigit.h"
#include "AliPMDddldata.h"

#include <TEveTrans.h>

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

const Float_t AliEvePMDModule::fgkRad        = 0.25;
const Float_t AliEvePMDModule::fgkSqRoot3    = 1.732050808;
const Float_t AliEvePMDModule::fgkZpos       = 0.;
Int_t         AliEvePMDModule::fgPreTotPads  = 0;
Int_t         AliEvePMDModule::fgCpvTotPads  = 0;
Int_t         AliEvePMDModule::fgPreTotAdc   = 0;
Int_t         AliEvePMDModule::fgCpvTotAdc   = 0;


//______________________________________________________________________________
// AliEvePMDModule
//


ClassImp(AliEvePMDModule)

AliEvePMDModule::AliEvePMDModule():
  fH1(0),
  fX(0.),
  fY(0.),
  fZ(0.),
  fNPads(0),
  fAdc(0)
{
  // Constructor.
}

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

  delete fH1;
}

// -------------------------------------------------------------------- //
void AliEvePMDModule::DisplayInit(Int_t ism)
{
  // Initialize display parameters for module ism.

  TString smodule = "Module";
  smodule+= ism;

  Float_t xism =0, yism = 0;
  Float_t dxism =0, dyism = 0;

  GenerateBox(ism,xism,yism,dxism,dyism);

  TEveFrameBox *pmdModBox = new TEveFrameBox();
  pmdModBox->SetAAQuadXY(xism, yism, 0, dxism, dyism);
  pmdModBox->SetFrameColor(Color_t(31));
  pmdModBox->SetFrameFill(kTRUE);
  SetFrame(pmdModBox);

  SetName(smodule.Data());
  SetOwnIds(kTRUE);
  Reset(TEveQuadSet::kQT_HexagonXY, kFALSE, 32);

  fH1 = new TH1F("fH1", smodule.Data(), 100, 0., 1000.);
  fH1->SetDirectory(0);
  fH1->GetXaxis()->SetTitle("Single Cell Edep (adc)");
}

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

void AliEvePMDModule::DisplayDigitsData(Int_t ism, TTree *pmdt)
{
  // Populate internal structures with data from pmdt for module ism.

  DisplayInit(ism);

  Int_t det, smn, irow, icol, adc;
  Int_t xpad = 0, ypad = 0;
  Float_t xpos, ypos;

  TClonesArray *digits = new TClonesArray("AliPMDdigit", 0);

  TBranch *branch = pmdt->GetBranch("PMDDigit");
  branch->SetAddress(&digits);

  AliPMDdigit  *pmddigit;

  branch->GetEntry(ism);
  Int_t nentries = digits->GetLast();
  //printf("%d\n", nentries);

  for (Int_t ient = 0; ient < nentries+1; ient++)
    {
      pmddigit = (AliPMDdigit*)digits->UncheckedAt(ient);

      det    = pmddigit->GetDetector();
      smn    = pmddigit->GetSMNumber();
      irow   = pmddigit->GetRow();
      icol   = pmddigit->GetColumn();
      adc    = (Int_t) pmddigit->GetADC();

      if(smn <12)
	{
	  xpad = icol;
	  ypad = irow;
	}
      else if(smn >=12 && smn < 24)
	{
	  xpad = irow;
	  ypad = icol;
	}

      RectGeomCellPos(smn, xpad, ypad, xpos, ypos);

      AddHexagon(xpos, ypos, fgkZpos, fgkRad);

      QuadValue(adc);

      QuadId(new AliPMDdigit(*pmddigit));
      // new TNamed(Form("Quad with idx=%d", ient),
      //  "This title is not confusing."));

      ++fNPads;
      fAdc += adc;

      if (det == 0)
	{
	  fgPreTotAdc += (Int_t) adc;
	  ++fgPreTotPads;
	}
      if (det == 1)
	{
	  fgCpvTotAdc += (Int_t) adc;
	  ++fgCpvTotPads;
	}
      fH1->Fill((Float_t)adc);

    }

  RefitPlex();

  RefMainTrans().SetPos(fX, fY, fZ);

  delete digits;
}

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

void AliEvePMDModule::DisplayRawData(Int_t ism, TObjArray *ddlcont)
{
  // Populate internal structures with data from ddlcont for module ism.

  DisplayInit(ism);

  if (ism > 23) ism -= 24;

  Int_t det, smn, irow, icol, adc;
  Int_t xpad = 0, ypad = 0;
  Float_t xpos, ypos;

  Int_t nentries = ddlcont->GetEntries();
  //printf("%d\n", nentries);

  for (Int_t ient = 0; ient < nentries; ient++)
    {
      AliPMDddldata *pmdddl = (AliPMDddldata*)ddlcont->UncheckedAt(ient);

      det    = pmdddl->GetDetector();
      smn    = pmdddl->GetSMN();
      if (smn != ism) continue;
      irow   = pmdddl->GetRow();
      icol   = pmdddl->GetColumn();
      adc    = pmdddl->GetSignal();

      if(smn <12)
	{
	  xpad = icol;
	  ypad = irow;
	}
      else if(smn >=12 && smn < 24)
	{
	  xpad = irow;
	  ypad = icol;
	}

      RectGeomCellPos(smn, xpad, ypad, xpos, ypos);

      AddHexagon(xpos, ypos, fgkZpos, fgkRad);

      QuadValue(adc);

      QuadId(new AliPMDddldata(*pmdddl));
      //new TNamed(Form("Quad with idx=%d", ient),
      //  "This title is not confusing."));

      ++fNPads;
      fAdc += adc;

      if (det == 0)
	{
	  fgPreTotAdc += (Int_t) adc;
	  ++fgPreTotPads;
	}
      if (det == 1)
	{
	  fgCpvTotAdc += (Int_t) adc;
	  ++fgCpvTotPads;
	}

      fH1->Fill((Float_t) adc);
    }

  RefitPlex();

  RefMainTrans().SetPos(fX, fY, fZ);

}

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

void AliEvePMDModule::RectGeomCellPos(Int_t ism, Int_t xpad, Int_t ypad,
				Float_t &xpos, Float_t &ypos)
{
  // This routine finds the cell eta,phi for the new PMD rectangular
  // geometry in ALICE
  // Authors : Bedanga Mohanty and Dipak Mishra - 29.4.2003
  // modified by B. K. Nandi for change of coordinate sys
  //
  // SMA  ---> Supermodule Type A           ( SM - 0)
  // SMAR ---> Supermodule Type A ROTATED   ( SM - 1)
  // SMB  ---> Supermodule Type B           ( SM - 2)
  // SMBR ---> Supermodule Type B ROTATED   ( SM - 3)
  //
  // ism   : Serial module number from 0 to 23 for each plane


  // Corner positions (x,y) of the 24 unit moudles in ALICE PMD

  const Double_t kXcorner[24] =
    {
      74.8833,  53.0045, 31.1255,    //Type-A
      74.8833,  53.0045, 31.1255,    //Type-A
      -74.8833, -53.0044, -31.1255,  //Type-AR
      -74.8833, -53.0044, -31.1255,  //Type-AR
      8.9165, -33.7471,            //Type-B
      8.9165, -33.7471,            //Type-B
      8.9165, -33.7471,            //Type-B
      -8.9165, 33.7471,            //Type-BR
      -8.9165, 33.7471,            //Type-BR
      -8.9165, 33.7471,            //Type-BR
    };


  const Double_t kYcorner[24] =
    {
      86.225,  86.225,  86.225,      //Type-A
      37.075,  37.075,  37.075,      //Type-A
      -86.225, -86.225, -86.225,     //Type-AR
      -37.075, -37.075, -37.075,     //Type-AR
      86.225,  86.225,               //Type-B
      61.075,  61.075,               //Type-B
      35.925,  35.925,               //Type-B
      -86.225, -86.225,              //Type-BR
      -61.075, -61.075,              //Type-BR
      -35.925, -35.925               //Type-BR
    };


  //  const Float_t kSqroot3      = 1.732050808;  // sqrt(3.);
  //  const Float_t kCellRadius   = 0.25;

  //
  //Every even row of cells is shifted and placed
  //in geant so this condition
  //
  Float_t shift = 0.0;
  if(ypad%2 == 0)
    {
      shift = 0.0;
    }
  else
    {
      shift = 0.25;
    }


  if(ism < 6)
    {
      ypos = kYcorner[ism] - (Float_t) xpad*fgkRad*2.0 - shift;
      xpos = kXcorner[ism] - (Float_t) ypad*fgkSqRoot3*fgkRad;
    }
  else if(ism >=6 && ism < 12)
    {
      ypos = kYcorner[ism] + (Float_t) xpad*fgkRad*2.0 + shift;
      xpos = kXcorner[ism] + (Float_t) ypad*fgkSqRoot3*fgkRad;
    }
  else if(ism >= 12 && ism < 18)
    {
      ypos = kYcorner[ism] - (Float_t) xpad*fgkRad*2.0 - shift;
      xpos = kXcorner[ism] - (Float_t) ypad*fgkSqRoot3*fgkRad;
    }
  else if(ism >= 18 && ism < 24)
    {
      ypos = kYcorner[ism] + (Float_t) xpad*fgkRad*2.0 + shift;
      xpos = kXcorner[ism] + (Float_t) ypad*fgkSqRoot3*fgkRad;
    }

}

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

void AliEvePMDModule::GenerateBox(Int_t ism, Float_t &xism, Float_t &yism,
                                  Float_t &dxism, Float_t &dyism)
{
  // Generate bounding-box.

  const Float_t kDia     = 0.50;

  const Double_t kXcorner[24] =
    {
      74.8833,  53.0045, 31.1255,    //Type-A
      74.8833,  53.0045, 31.1255,    //Type-A
      -74.8833, -53.0044, -31.1255,  //Type-AR
      -74.8833, -53.0044, -31.1255,  //Type-AR
      8.9165, -33.7471,            //Type-B
      8.9165, -33.7471,            //Type-B
      8.9165, -33.7471,            //Type-B
      -8.9165, 33.7471,            //Type-BR
      -8.9165, 33.7471,            //Type-BR
      -8.9165, 33.7471,            //Type-BR
    };


  const Double_t kYcorner[24] =
    {
      86.225,  86.225,  86.225,      //Type-A
      37.075,  37.075,  37.075,      //Type-A
      -86.225, -86.225, -86.225,     //Type-AR
      -37.075, -37.075, -37.075,     //Type-AR
      86.225,  86.225,               //Type-B
      61.075,  61.075,               //Type-B
      35.925,  35.925,               //Type-B
      -86.225, -86.225,              //Type-BR
      -61.075, -61.075,              //Type-BR
      -35.925, -35.925               //Type-BR
    };


  if (ism > 23) ism -= 24;


  if (ism < 6)
    {
      xism  = kXcorner[ism] + fgkRad;
      yism  = kYcorner[ism] + fgkRad;
      dxism = -fgkRad*fgkSqRoot3*48.;
      dyism = -kDia*96. - fgkRad;
  }
  if (ism >= 6 && ism < 12)
    {
      xism  = kXcorner[ism] - fgkRad;
      yism  = kYcorner[ism] - fgkRad;
      dxism = fgkRad*fgkSqRoot3*48.;
      dyism = kDia*96. + fgkRad;
  }
  if (ism >= 12 && ism < 18)
    {
      xism  = kXcorner[ism] + fgkRad;
      yism  = kYcorner[ism] + fgkRad;
      dxism = -fgkRad*fgkSqRoot3*96.;
      dyism = -kDia*48. - fgkRad;
  }
  if (ism >= 18 && ism < 24)
    {
      xism  = kXcorner[ism] - fgkRad;
      yism  = kYcorner[ism] - fgkRad;
      dxism = fgkRad*fgkSqRoot3*96.;
      dyism = kDia*48. + fgkRad;
  }

}

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

void AliEvePMDModule::SetPosition(Float_t x, Float_t y, Float_t z)
{
  // Set position of module.

  fX = x;
  fY = y;
  fZ = z;
}

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