ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/


///////////////////////////////////////////////////////////////////////
//                                                                   //
//  		AliZDCv3 --- new ZDC geometry		     	     //
//  	    with both ZDC arms geometry implemented 		     //
//                                                                   //  
///////////////////////////////////////////////////////////////////////

// --- Standard libraries
#include "stdio.h"

// --- ROOT system
#include <TMath.h>
#include <TRandom.h>
#include <TSystem.h>
#include <TTree.h>
#include <TVirtualMC.h>
#include <TGeoManager.h>
#include <TGeoMatrix.h>
#include <TGeoTube.h>
#include <TGeoCone.h>
#include <TGeoShape.h>
#include <TGeoScaledShape.h>
#include <TGeoCompositeShape.h>
#include <TParticle.h>

// --- AliRoot classes
#include "AliLog.h"
#include "AliConst.h"
#include "AliMagF.h"
#include "AliRun.h"
#include "AliZDCv3.h"
#include "AliMC.h"
 
class  AliZDCHit;
class  AliPDG;
class  AliDetector;
 
 
ClassImp(AliZDCv3)

//_____________________________________________________________________________
AliZDCv3::AliZDCv3() : 
  AliZDC(),
  fMedSensF1(0),
  fMedSensF2(0),
  fMedSensZP(0),
  fMedSensZN(0),
  fMedSensZEM(0),
  fMedSensGR(0),
  fMedSensPI(0),
  fMedSensTDI(0),
  fMedSensVColl(0),
  fMedSensLumi(0),
  fNalfan(0),
  fNalfap(0),
  fNben(0),  
  fNbep(0),
  fZEMLength(0),
  fpLostITC(0), 
  fpLostD1C(0), 
  fpcVCollC(0),
  fpDetectedC(0),
  fnDetectedC(0),
  fpLostITA(0), 
  fpLostD1A(0), 
  fpLostTDI(0), 
  fpcVCollA(0),
  fpDetectedA(0),
  fnDetectedA(0),
  fVCollSideCAperture(7./2.),
  fVCollSideCApertureNeg(7./2.),
  fVCollSideCCentreY(0.),
  fVCollSideAAperture(7./2.),
  fVCollSideAApertureNeg(7./2.),
  fVCollSideACentreY(0.),
  fTCDDAperturePos(2.0),
  fTCDDApertureNeg(2.2),
  fTDIAperturePos(5.5),
  fTDIApertureNeg(5.5),
  fLumiLength(15.)
{
  //
  // Default constructor for Zero Degree Calorimeter
  //
  for(Int_t i=0; i<3; i++){
     fDimZN[i] = fDimZP[i] = 0.;
     fPosZNC[i] = fPosZNA[i] = fPosZPC[i]= fPosZPA[i] = fPosZEM[i] = 0.;
     fFibZN[i] = fFibZP[i] = 0.;
  }
}
 
//_____________________________________________________________________________
AliZDCv3::AliZDCv3(const char *name, const char *title) : 
  AliZDC(name,title),
  fMedSensF1(0),
  fMedSensF2(0),
  fMedSensZP(0),
  fMedSensZN(0),
  fMedSensZEM(0),
  fMedSensGR(0),
  fMedSensPI(0),
  fMedSensTDI(0),
  fMedSensVColl(0),
  fMedSensLumi(0),
  fNalfan(90),
  fNalfap(90),
  fNben(18),  
  fNbep(28), 
  fZEMLength(0),
  fpLostITC(0), 
  fpLostD1C(0), 
  fpcVCollC(0),
  fpDetectedC(0),
  fnDetectedC(0),
  fpLostITA(0), 
  fpLostD1A(0), 
  fpLostTDI(0), 
  fpcVCollA(0),
  fpDetectedA(0),
  fnDetectedA(0),
  fVCollSideCAperture(7./2.),
  fVCollSideCApertureNeg(7./2.),
  fVCollSideCCentreY(0.),
  fVCollSideAAperture(7./2.),
  fVCollSideAApertureNeg(7./2.),
  fVCollSideACentreY(0.),
  fTCDDAperturePos(2.0),
  fTCDDApertureNeg(2.2),
  fTDIAperturePos(5.5),
  fTDIApertureNeg(5.5),
  fLumiLength(15.)  
{
  //
  // Standard constructor for Zero Degree Calorimeter 
  //
  //
  // Check that DIPO, ABSO, DIPO and SHIL is there (otherwise tracking is wrong!!!)
  
  AliModule* pipe=gAlice->GetModule("PIPE");
  AliModule* abso=gAlice->GetModule("ABSO");
  AliModule* dipo=gAlice->GetModule("DIPO");
  AliModule* shil=gAlice->GetModule("SHIL");
  if((!pipe) || (!abso) || (!dipo) || (!shil)) {
    Error("Constructor","ZDC needs PIPE, ABSO, DIPO and SHIL!!!\n");
    exit(1);
  } 
  //
  Int_t ip,jp,kp;
  for(ip=0; ip<4; ip++){
     for(kp=0; kp<fNalfap; kp++){
        for(jp=0; jp<fNbep; jp++){
           fTablep[ip][kp][jp] = 0;
        } 
     }
  }
  Int_t in,jn,kn;
  for(in=0; in<4; in++){
     for(kn=0; kn<fNalfan; kn++){
        for(jn=0; jn<fNben; jn++){
           fTablen[in][kn][jn] = 0;
        } 
     }
  }
  //
  // Parameters for hadronic calorimeters geometry
  // Positions updated after post-installation measurements
  fDimZN[0] = 3.52;
  fDimZN[1] = 3.52;
  fDimZN[2] = 50.;  
  fDimZP[0] = 11.2;
  fDimZP[1] = 6.;
  fDimZP[2] = 75.;    
  fPosZNC[0] = 0.;
  fPosZNC[1] = 0.;
  fPosZNC[2] = -11397.3; 
  fPosZPC[0] = 24.35;
  fPosZPC[1] = 0.;
  fPosZPC[2] = -11389.3; 
  fPosZNA[0] = 0.;
  fPosZNA[1] = 0.;
  fPosZNA[2] = 11395.8;  
  fPosZPA[0] = 24.35;
  fPosZPA[1] = 0.;
  fPosZPA[2] = 11387.8; 
  fFibZN[0] = 0.;
  fFibZN[1] = 0.01825;
  fFibZN[2] = 50.;
  fFibZP[0] = 0.;
  fFibZP[1] = 0.0275;
  fFibZP[2] = 75.;
  // Parameters for EM calorimeter geometry
  fPosZEM[0] = 8.5;
  fPosZEM[1] = 0.;
  fPosZEM[2] = 735.;
  Float_t kDimZEMPb  = 0.15*(TMath::Sqrt(2.));  // z-dimension of the Pb slice
  Float_t kDimZEMAir = 0.001; 			// scotch
  Float_t kFibRadZEM = 0.0315; 			// External fiber radius (including cladding)
  Int_t   kDivZEM[3] = {92, 0, 20}; 		// Divisions for EM detector
  Float_t kDimZEM0 = 2*kDivZEM[2]*(kDimZEMPb+kDimZEMAir+kFibRadZEM*(TMath::Sqrt(2.)));
  fZEMLength = kDimZEM0;
  
}
 
//_____________________________________________________________________________
void AliZDCv3::CreateGeometry()
{
  //
  // Create the geometry for the Zero Degree Calorimeter version 2
  //* Initialize COMMON block ZDC_CGEOM
  //*

  CreateBeamLine();
  CreateZDC();
}
  
//_____________________________________________________________________________
void AliZDCv3::CreateBeamLine()
{
  //
  // Create the beam line elements
  //
  
  Double_t zd1, zd2, zCorrDip, zInnTrip, zD1, zD2;
  Double_t conpar[9], tubpar[3], tubspar[5], boxpar[3];

  //-- rotation matrices for the legs
  Int_t irotpipe1, irotpipe2;
  TVirtualMC::GetMC()->Matrix(irotpipe1,90.-1.0027,0.,90.,90.,1.0027,180.);      
  TVirtualMC::GetMC()->Matrix(irotpipe2,90.+1.0027,0.,90.,90.,1.0027,0.);

  //
  Int_t *idtmed = fIdtmed->GetArray();
  
  ////////////////////////////////////////////////////////////////
  //								//
  //                SIDE C - RB26 (dimuon side)			//
  //								//
  ///////////////////////////////////////////////////////////////
  
  
  // -- Mother of the ZDCs (Vacuum PCON)
  zd1 = 1921.6;
  
  conpar[0] = 0.;
  conpar[1] = 360.;
  conpar[2] = 2.;
  conpar[3] = -13500.;
  conpar[4] = 0.;
  conpar[5] = 55.;
  conpar[6] = -zd1;
  conpar[7] = 0.;
  conpar[8] = 55.;
  TVirtualMC::GetMC()->Gsvolu("ZDCC", "PCON", idtmed[10], conpar, 9);
  TVirtualMC::GetMC()->Gspos("ZDCC", 1, "ALIC", 0., 0., 0., 0, "ONLY");
  

  // -- BEAM PIPE from compensator dipole to the beginning of D1) 
  tubpar[0] = 6.3/2.;
  tubpar[1] = 6.7/2.;
  // From beginning of ZDC volumes to beginning of D1
  tubpar[2] = (5838.3-zd1)/2.;
  TVirtualMC::GetMC()->Gsvolu("QT01", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QT01", 1, "ZDCC", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
  // Ch.debug
  //printf("	QT01 TUBE pipe from z = %1.2f to z= %1.2f (D1 beg.)\n",-zd1,-2*tubpar[2]-zd1);
  
  //-- BEAM PIPE from the end of D1 to the beginning of D2) 
  
  //-- FROM MAGNETIC BEGINNING OF D1 TO MAGNETIC END OF D1
  //-- 	Cylindrical pipe (r = 3.47) + conical flare  
  // -> Beginning of D1
  zd1 += 2.*tubpar[2];
  
  tubpar[0] = 6.94/2.;
  tubpar[1] = 7.34/2.;
  tubpar[2] = (6909.8-zd1)/2.;
  TVirtualMC::GetMC()->Gsvolu("QT02", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QT02", 1, "ZDCC", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
  // Ch.debug
  //printf("	QT02 TUBE pipe from z = %1.2f to z= %1.2f\n",-zd1,-2*tubpar[2]-zd1);

  zd1 += 2.*tubpar[2];
  
  tubpar[0] = 9./2.;
  tubpar[1] = 9.6/2.;
  tubpar[2] = (7022.8-zd1)/2.;
  TVirtualMC::GetMC()->Gsvolu("QT03", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QT03", 1, "ZDCC", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
  // Ch.debug
  //printf("	QT03 TUBE pipe from z = %1.2f to z= %1.2f\n",-zd1,-2*tubpar[2]-zd1);

  zd1 += 2.*tubpar[2];
  
  conpar[0] = 39.2/2.;
  conpar[1] = 18./2.;
  conpar[2] = 18.6/2.;
  conpar[3] = 9./2.;
  conpar[4] = 9.6/2.;
  TVirtualMC::GetMC()->Gsvolu("QC01", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("QC01", 1, "ZDCC", 0., 0., -conpar[0]-zd1, 0, "ONLY");
  // Ch.debug
  //printf("	QC01 CONE pipe from z = %1.2f to z= %1.2f\n",-zd1,-2*conpar[0]-zd1);
  
  zd1 += conpar[0] * 2.;
  
  // ******************************************************
  // N.B.-> according to last vacuum layout 
  // private communication by D. Macina, mail 27/1/2009
  // ****************************************************** 
  // 2nd section of VCTCQ+VAMTF+TCTVB+VAMTF+TCLIA+VAMTF+1st part of VCTCP
  Float_t totLength1 = 160.8 + 78. + 148. + 78. + 148. + 78. + 9.3;
  //
  tubpar[0] = 18.6/2.;
  tubpar[1] = 7.6/2.;
  tubpar[2] = totLength1/2.;
//  TVirtualMC::GetMC()->Gsvolu("QE01", "ELTU", idtmed[7], tubpar, 3);  
  // temporary replace with a scaled tube (AG)
  TGeoTube *tubeQE01 = new TGeoTube(0.,tubpar[0],tubpar[2]);
  TGeoScale *scaleQE01 = new TGeoScale(1., tubpar[1]/tubpar[0], 1.);
  TGeoScaledShape *sshapeQE01 = new TGeoScaledShape(tubeQE01, scaleQE01);
  new TGeoVolume("QE01", sshapeQE01, gGeoManager->GetMedium(idtmed[7]));

  tubpar[0] = 18.0/2.;
  tubpar[1] = 7.0/2.;
  tubpar[2] = totLength1/2.;
//  TVirtualMC::GetMC()->Gsvolu("QE02", "ELTU", idtmed[10], tubpar, 3);  
  // temporary replace with a scaled tube (AG)
  TGeoTube *tubeQE02 = new TGeoTube(0.,tubpar[0],tubpar[2]);
  TGeoScale *scaleQE02 = new TGeoScale(1., tubpar[1]/tubpar[0], 1.);
  TGeoScaledShape *sshapeQE02 = new TGeoScaledShape(tubeQE02, scaleQE02);
  new TGeoVolume("QE02", sshapeQE02, gGeoManager->GetMedium(idtmed[10]));

  TVirtualMC::GetMC()->Gspos("QE01", 1, "ZDCC", 0., 0., -tubpar[2]-zd1, 0, "ONLY"); 
  TVirtualMC::GetMC()->Gspos("QE02", 1, "QE01", 0., 0., 0., 0, "ONLY");  
  // Ch.debug
  //printf("	QE01 ELTU from z = %1.2f to z= %1.2f\n",-zd1,-2*tubpar[2]-zd1);
  
  // Vertical collimator jaws (defined ONLY if fVCollAperture<3.5!)
  if(fVCollSideCAperture<3.5){
    boxpar[0] = 5.4/2.;
    boxpar[1] = (3.5-fVCollSideCAperture-fVCollSideCCentreY-0.7)/2.;
    if(boxpar[1]<0.) boxpar[1]=0.;
    boxpar[2] = 124.4/2.;
    printf("  AliZDCv3 -> sideC VCollimator jaws: apertures +%1.2f/-%1.2f center %1.2f [cm]\n", 
    	fVCollSideCAperture, fVCollSideCApertureNeg,fVCollSideCCentreY);
    TVirtualMC::GetMC()->Gsvolu("QCVC" , "BOX ", idtmed[13], boxpar, 3); 
    TVirtualMC::GetMC()->Gspos("QCVC", 1, "QE02", -boxpar[0],  fVCollSideCAperture+fVCollSideCCentreY+boxpar[1], -totLength1/2.+160.8+78.+148./2., 0, "ONLY");  
    TVirtualMC::GetMC()->Gspos("QCVC", 2, "QE02", -boxpar[0], -fVCollSideCApertureNeg+fVCollSideCCentreY-boxpar[1], -totLength1/2.+160.8+78.+148./2., 0, "ONLY");  
  }
  
  zd1 += tubpar[2] * 2.;
  
  // 2nd part of VCTCP
  conpar[0] = 31.5/2.;
  conpar[1] = 21.27/2.;
  conpar[2] = 21.87/2.;
  conpar[3] = 18.0/2.;
  conpar[4] = 18.6/2.;
  TVirtualMC::GetMC()->Gsvolu("QC02", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("QC02", 1, "ZDCC", 0., 0., -conpar[0]-zd1, 0, "ONLY");
  // Ch.debug
  //printf("	QC02 CONE pipe from z = %1.2f to z= %1.2f\n",-zd1,-2*conpar[0]-zd1);
  
  zd1 += conpar[0] * 2.;

  // 3rd section of VCTCP+VCDWC+VMLGB	
  Float_t totLenght2 = 9.2 + 530.5+40.;
  tubpar[0] = 21.2/2.;
  tubpar[1] = 21.9/2.;
  tubpar[2] = totLenght2/2.;
  TVirtualMC::GetMC()->Gsvolu("QT04", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QT04", 1, "ZDCC", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
  // Ch.debug
  //printf("	QT04 TUBE pipe from z = %1.2f to z= %1.2f\n",-zd1,-2*tubpar[2]-zd1);
  
  zd1 += tubpar[2] * 2.;
  
  // First part of VCTCD
  // skewed transition cone from ID=212.7 mm to ID=797 mm
  conpar[0] = 121./2.;
  conpar[1] = 79.7/2.;
  conpar[2] = 81.3/2.;
  conpar[3] = 21.27/2.;
  conpar[4] = 21.87/2.;
  TVirtualMC::GetMC()->Gsvolu("QC03", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("QC03", 1, "ZDCC", 0., 0., -conpar[0]-zd1, 0, "ONLY");
  // Ch.debug
  //printf("	QC03 CONE pipe from z = %1.2f to z= %1.2f\n",-zd1,-2*conpar[0]-zd1);
  
  zd1 += 2.*conpar[0];
  
  // VCDGB + 1st part of VCTCH
  tubpar[0] = 79.7/2.;
  tubpar[1] = 81.3/2.;
  tubpar[2] = (5*475.2+97.)/2.;
  TVirtualMC::GetMC()->Gsvolu("QT05", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QT05", 1, "ZDCC", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
  // Ch.debug
  //printf("	QT05 TUBE pipe from z = %1.2f to z= %1.2f\n",-zd1,-2*tubpar[2]-zd1);
  
  zd1 += 2.*tubpar[2];
     
  // 2nd part of VCTCH
  // Transition from ID=797 mm to ID=196 mm:
  // in order to simulate the thin window opened in the transition cone
  // we divide the transition cone in three cones:
  // (1) 8 mm thick (2) 3 mm thick (3) the third 8 mm thick
  
  // (1) 8 mm thick
  conpar[0] = 9.09/2.; // 15 degree
  conpar[1] = 74.82868/2.;
  conpar[2] = 76.42868/2.; // thickness 8 mm 
  conpar[3] = 79.7/2.;
  conpar[4] = 81.3/2.; // thickness 8 mm  
  TVirtualMC::GetMC()->Gsvolu("QC04", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("QC04", 1, "ZDCC", 0., 0., -conpar[0]-zd1, 0, "ONLY");
  // Ch.debug
  //printf("	QC04 CONE pipe from z = %1.2f to z= %1.2f\n",-zd1,-2*conpar[0]-zd1);

  zd1 += 2.*conpar[0];  

  // (2) 3 mm thick
  conpar[0] = 96.2/2.; // 15 degree
  conpar[1] = 23.19588/2.;
  conpar[2] = 23.79588/2.; // thickness 3 mm 
  conpar[3] = 74.82868/2.;
  conpar[4] = 75.42868/2.; // thickness 3 mm  
  TVirtualMC::GetMC()->Gsvolu("QC05", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("QC05", 1, "ZDCC", 0., 0., -conpar[0]-zd1, 0, "ONLY");  
  // Ch.debug
  //printf("	QC05 CONE pipe from z = %1.2f to z= %1.2f\n",-zd1,-2*conpar[0]-zd1);

  zd1 += 2.*conpar[0];
  
  // (3) 8 mm thick
  conpar[0] = 6.71/2.; // 15 degree
  conpar[1] = 19.6/2.;
  conpar[2] = 21.2/2.;// thickness 8 mm 
  conpar[3] = 23.19588/2.;
  conpar[4] = 24.79588/2.;// thickness 8 mm 
  TVirtualMC::GetMC()->Gsvolu("QC06", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("QC06", 1, "ZDCC", 0., 0., -conpar[0]-zd1, 0, "ONLY");
  // Ch.debug
  //printf("	QC06 CONE pipe from z = %1.2f to z= %1.2f\n",-zd1,-2*conpar[0]-zd1);

  zd1 += 2.*conpar[0];
  
  // VMZAR (5 volumes)  
  tubpar[0] = 20.2/2.;
  tubpar[1] = 20.6/2.;
  tubpar[2] = 2.15/2.;
  TVirtualMC::GetMC()->Gsvolu("QT06", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QT06", 1, "ZDCC", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
  // Ch.debug
  //printf("	QT06 TUBE pipe from z = %1.2f to z= %1.2f\n",-zd1,-2*tubpar[2]-zd1);

  zd1 += 2.*tubpar[2];
  
  conpar[0] = 6.9/2.;
  conpar[1] = 23.9/2.;
  conpar[2] = 24.3/2.;
  conpar[3] = 20.2/2.;
  conpar[4] = 20.6/2.;
  TVirtualMC::GetMC()->Gsvolu("QC07", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("QC07", 1, "ZDCC", 0., 0., -conpar[0]-zd1, 0, "ONLY");
  // Ch.debug
  //printf("	QC07 CONE pipe from z = %1.2f to z= %1.2f\n",-zd1,-2*conpar[0]-zd1);

  zd1 += 2.*conpar[0];

  tubpar[0] = 23.9/2.;
  tubpar[1] = 25.5/2.;
  tubpar[2] = 17.0/2.;
  TVirtualMC::GetMC()->Gsvolu("QT07", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QT07", 1, "ZDCC", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
  // Ch.debug
  //printf("	QT07 TUBE pipe from z = %1.2f to z= %1.2f\n",-zd1,-2*tubpar[2]-zd1);
 
  zd1 += 2.*tubpar[2];
  
  conpar[0] = 6.9/2.;
  conpar[1] = 20.2/2.;
  conpar[2] = 20.6/2.;
  conpar[3] = 23.9/2.;
  conpar[4] = 24.3/2.;
  TVirtualMC::GetMC()->Gsvolu("QC08", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("QC08", 1, "ZDCC", 0., 0., -conpar[0]-zd1, 0, "ONLY");
  // Ch.debug
  //printf("	QC08 CONE pipe from z = %1.2f to z= %1.2f\n",-zd1,-2*conpar[0]-zd1);

  zd1 += 2.*conpar[0];
  
  tubpar[0] = 20.2/2.;
  tubpar[1] = 20.6/2.;
  tubpar[2] = 2.15/2.;
  TVirtualMC::GetMC()->Gsvolu("QT08", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QT08", 1, "ZDCC", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
  // Ch.debug
  //printf("	QT08 TUBE pipe from z = %1.2f to z= %1.2f\n",-zd1,-2*tubpar[2]-zd1);

  zd1 += 2.*tubpar[2];
  
  // Flange (ID=196 mm)(last part of VMZAR and first part of VCTYB)
  tubpar[0] = 19.6/2.;
  tubpar[1] = 25.3/2.;
  tubpar[2] = 4.9/2.;
  TVirtualMC::GetMC()->Gsvolu("QT09", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QT09", 1, "ZDCC", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
  // Ch.debug
  //printf("	QT09 TUBE pipe from z = %1.2f to z= %1.2f\n",-zd1,-2*tubpar[2]-zd1);
 
  zd1 += 2.*tubpar[2];
  // Ch.debug
  //printf("	Beginning of VCTYB volume @ z = %1.2f \n",-zd1);
  
  // simulation of the trousers (VCTYB)     
  tubpar[0] = 19.6/2.;
  tubpar[1] = 20.0/2.;
  tubpar[2] = 3.9/2.;
  TVirtualMC::GetMC()->Gsvolu("QT10", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QT10", 1, "ZDCC", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
  // Ch.debug
  //printf("	QT10 TUBE pipe from z = %1.2f to z= %1.2f\n",-zd1,-2*tubpar[2]-zd1);

  zd1 += 2.*tubpar[2];

  // transition cone from ID=196. to ID=216.6
  conpar[0] = 32.55/2.;
  conpar[1] = 21.66/2.;
  conpar[2] = 22.06/2.;
  conpar[3] = 19.6/2.;
  conpar[4] = 20.0/2.;
  TVirtualMC::GetMC()->Gsvolu("QC09", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("QC09", 1, "ZDCC", 0., 0., -conpar[0]-zd1, 0, "ONLY");
  // Ch.debug
  //printf("	QC09 CONE pipe from z = %1.2f to z= %1.2f\n",-zd1,-2*conpar[0]-zd1);

  zd1 += 2.*conpar[0]; 
  
  // tube  
  tubpar[0] = 21.66/2.;
  tubpar[1] = 22.06/2.;
  tubpar[2] = 28.6/2.;
  TVirtualMC::GetMC()->Gsvolu("QT11", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QT11", 1, "ZDCC", 0., 0., -tubpar[2]-zd1, 0, "ONLY");
  // Ch.debug
  //printf("	QT11 TUBE pipe from z = %1.2f to z= %1.2f\n",-zd1,-2*tubpar[2]-zd1);

  zd1 += 2.*tubpar[2];
  // Ch.debug
  //printf("	Beginning of recombination chamber @ z = %f \n",-zd1);

  // --------------------------------------------------------
  // RECOMBINATION CHAMBER IMPLEMENTED USING TGeo CLASSES!!!!
  // author: Chiara (August 2008)
  // --------------------------------------------------------
  // TRANSFORMATION MATRICES
  // Combi transformation: 
  Double_t dx = -3.970000;
  Double_t dy = 0.000000;
  Double_t dz = 0.0;
  // Rotation: 
  Double_t thx = 84.989100;   Double_t phx = 180.000000;
  Double_t thy = 90.000000;   Double_t phy = 90.000000;
  Double_t thz = 185.010900;  Double_t phz = 0.000000;
  TGeoRotation *rotMatrix1c = new TGeoRotation("c",thx,phx,thy,phy,thz,phz);
  // Combi transformation: 
  dx = -3.970000;
  dy = 0.000000;
  dz = 0.0;
  TGeoCombiTrans *rotMatrix2c = new TGeoCombiTrans("ZDCC_c1", dx,dy,dz,rotMatrix1c);
  rotMatrix2c->RegisterYourself();
  // Combi transformation: 
  dx = 3.970000;
  dy = 0.000000;
  dz = 0.0;
  // Rotation: 
  thx = 95.010900;   phx = 180.000000;
  thy = 90.000000;   phy = 90.000000;
  thz = 180.-5.010900;    phz = 0.000000;
  TGeoRotation *rotMatrix3c = new TGeoRotation("",thx,phx,thy,phy,thz,phz);
  TGeoCombiTrans *rotMatrix4c = new TGeoCombiTrans("ZDCC_c2", dx,dy,dz,rotMatrix3c);
  rotMatrix4c->RegisterYourself();

  // VOLUMES DEFINITION
  // Volume: ZDCC
  TGeoVolume *pZDCC = gGeoManager->GetVolume("ZDCC");
  
  conpar[0] = (90.1-0.95-0.26-0.0085)/2.;
  conpar[1] = 0.0/2.;
  conpar[2] = 21.6/2.;
  conpar[3] = 0.0/2.;
  conpar[4] = 5.8/2.;
  new TGeoCone("QCLext", conpar[0],conpar[1],conpar[2],conpar[3],conpar[4]);
  
  conpar[0] = (90.1-0.95-0.26-0.0085)/2.;
  conpar[1] = 0.0/2.;
  conpar[2] = 21.2/2.;
  conpar[3] = 0.0/2.;
  conpar[4] = 5.4/2.;
  new TGeoCone("QCLint", conpar[0],conpar[1],conpar[2],conpar[3],conpar[4]);

  // Outer trousers
  TGeoCompositeShape *pOutTrousersC = new TGeoCompositeShape("outTrousersC", "QCLext:ZDCC_c1+QCLext:ZDCC_c2");
  
  // Volume: QCLext
  TGeoMedium *medZDCFe = gGeoManager->GetMedium("ZDC_ZIRONT");
  TGeoVolume *pQCLext = new TGeoVolume("QCLext",pOutTrousersC, medZDCFe);
  pQCLext->SetLineColor(kGreen);
  pQCLext->SetVisLeaves(kTRUE);
  //
  TGeoTranslation *tr1c = new TGeoTranslation(0., 0., (Double_t) -conpar[0]-0.95-zd1);
  //printf("	Recombination chamber from z = %1.2f to z= %1.2f\n",-zd1,-2*conpar[0]-0.95-zd1);
  //
  pZDCC->AddNode(pQCLext, 1, tr1c);
  // Inner trousers
  TGeoCompositeShape *pIntTrousersC = new TGeoCompositeShape("intTrousersC", "QCLint:ZDCC_c1+QCLint:ZDCC_c2");
  // Volume: QCLint
  TGeoMedium *medZDCvoid = gGeoManager->GetMedium("ZDC_ZVOID");
  TGeoVolume *pQCLint = new TGeoVolume("QCLint",pIntTrousersC, medZDCvoid);
  pQCLint->SetLineColor(kTeal);
  pQCLint->SetVisLeaves(kTRUE);
  pQCLext->AddNode(pQCLint, 1);
    
  zd1 += 90.1;
  Double_t offset = 0.5;
  zd1 = zd1+offset;
  
  //  second section : 2 tubes (ID = 54. OD = 58.)  
  tubpar[0] = 5.4/2.;
  tubpar[1] = 5.8/2.;
  tubpar[2] = 40.0/2.;
  TVirtualMC::GetMC()->Gsvolu("QT12", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QT12", 1, "ZDCC", -15.8/2., 0., -tubpar[2]-zd1, 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("QT12", 2, "ZDCC",  15.8/2., 0., -tubpar[2]-zd1, 0, "ONLY");  
  // Ch.debug
  //printf("	QT12 TUBE from z = %1.2f to z= %1.2f\n",-zd1,-2*tubpar[2]-zd1);
  
  zd1 += 2.*tubpar[2];
  
  // transition x2zdc to recombination chamber : skewed cone  
  conpar[0] = (10.-0.2-offset)/2.;
  conpar[1] = 6.3/2.;
  conpar[2] = 7.0/2.;
  conpar[3] = 5.4/2.;
  conpar[4] = 5.8/2.;
  TVirtualMC::GetMC()->Gsvolu("QC10", "CONE", idtmed[7], conpar, 5); 
  TVirtualMC::GetMC()->Gspos("QC10", 1, "ZDCC", -7.9-0.175, 0., -conpar[0]-0.1-zd1, irotpipe1, "ONLY");
  TVirtualMC::GetMC()->Gspos("QC10", 2, "ZDCC", 7.9+0.175, 0., -conpar[0]-0.1-zd1, irotpipe2, "ONLY");
  //printf("	QC10 CONE from z = %1.2f to z= %1.2f\n",-zd1,-2*conpar[0]-0.2-zd1);

  zd1 += 2.*conpar[0]+0.2;
  
  // 2 tubes (ID = 63 mm OD=70 mm)      
  tubpar[0] = 6.3/2.;
  tubpar[1] = 7.0/2.;
  tubpar[2] = 639.8/2.;
  TVirtualMC::GetMC()->Gsvolu("QT13", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QT13", 1, "ZDCC", -16.5/2., 0., -tubpar[2]-zd1, 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("QT13", 2, "ZDCC",  16.5/2., 0., -tubpar[2]-zd1, 0, "ONLY");
  //printf("	QT13 TUBE from z = %1.2f to z= %1.2f\n",-zd1,-2*tubpar[2]-zd1);  

  zd1 += 2.*tubpar[2];
  //printf("	END OF SIDE C BEAM PIPE DEFINITION @ z = %f\n",-zd1);

	   
  // -- Luminometer (Cu box) in front of ZN - side C
  boxpar[0] = 8.0/2.;
  boxpar[1] = 8.0/2.;
  boxpar[2] = fLumiLength/2.;
  TVirtualMC::GetMC()->Gsvolu("QLUC", "BOX ", idtmed[9], boxpar, 3);
  TVirtualMC::GetMC()->Gspos("QLUC", 1, "ZDCC", 0., 0.,  fPosZNC[2]+66.+boxpar[2], 0, "ONLY");
  //printf("	QLUC LUMINOMETER from z = %1.2f to z= %1.2f\n",  fPosZNC[2]+66., fPosZNC[2]+66.+2*boxpar[2]);
	         
  // --  END OF BEAM PIPE VOLUME DEFINITION FOR SIDE C (RB26 SIDE) 
  // ----------------------------------------------------------------

  ////////////////////////////////////////////////////////////////
  //								//
  //                SIDE A - RB24 				//
  //								//
  ///////////////////////////////////////////////////////////////

  // Rotation Matrices definition
  Int_t irotpipe3, irotpipe4, irotpipe5;
  //-- rotation matrices for the tilted cone after the TDI to recenter vacuum chamber      
  TVirtualMC::GetMC()->Matrix(irotpipe3,90.-1.8934,0.,90.,90.,1.8934,180.);    
  //-- rotation matrices for the tilted tube before and after the TDI 
  TVirtualMC::GetMC()->Matrix(irotpipe4,90.-3.8,0.,90.,90.,3.8,180.);       
  //-- rotation matrix for the tilted cone after the TDI
  TVirtualMC::GetMC()->Matrix(irotpipe5,90.+9.8,0.,90.,90.,9.8,0.);     

  // -- Mother of the ZDCs (Vacuum PCON)		
  zd2 = 1910.22;// zd2 initial value
  
  conpar[0] = 0.;
  conpar[1] = 360.;
  conpar[2] = 2.;
  conpar[3] = zd2;
  conpar[4] = 0.;
  conpar[5] = 55.;
  conpar[6] = 13500.;
  conpar[7] = 0.;
  conpar[8] = 55.;
  TVirtualMC::GetMC()->Gsvolu("ZDCA", "PCON", idtmed[10], conpar, 9);
  TVirtualMC::GetMC()->Gspos("ZDCA", 1, "ALIC", 0., 0., 0., 0, "ONLY");
  
  // To avoid overlaps 1 micron are left between certain volumes!
  Double_t dxNoOverlap = 0.0;
  //zd2 += dxNoOverlap;  
  
  // BEAM PIPE from 19.10 m to inner triplet beginning (22.965 m)  
  tubpar[0] = 6.0/2.;
  tubpar[1] = 6.4/2.;
  tubpar[2] = 386.28/2. - dxNoOverlap; 
  TVirtualMC::GetMC()->Gsvolu("QA01", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QA01", 1, "ZDCA", 0., 0., tubpar[2]+zd2, 0, "ONLY");
  // Ch.debug
  //printf("	QA01 TUBE centred in %f from z = %1.2f to z= %1.2f (IT begin)\n",tubpar[2]+zd2,zd2,2*tubpar[2]+zd2);
  
  zd2 += 2.*tubpar[2];  

  // -- FIRST SECTION OF THE BEAM PIPE (from beginning of inner triplet to
  //    beginning of D1)  
  tubpar[0] = 6.3/2.;
  tubpar[1] = 6.7/2.;
  tubpar[2] = 3541.8/2. - dxNoOverlap;
  TVirtualMC::GetMC()->Gsvolu("QA02", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QA02", 1, "ZDCA", 0., 0., tubpar[2]+zd2, 0, "ONLY");
  // Ch.debug
  //printf("	QA02 TUBE from z = %1.2f to z= %1.2f (D1 begin)\n",zd2,2*tubpar[2]+zd2);
  
  zd2 += 2.*tubpar[2]; 
  
    
  // -- SECOND SECTION OF THE BEAM PIPE (from the beginning of D1 to the beginning of D2)
  //
  //  FROM (MAGNETIC) BEGINNING OF D1 TO THE (MAGNETIC) END OF D1 + 126.5 cm
  //  CYLINDRICAL PIPE of diameter increasing from 6.75 cm up to 8.0 cm
  //  from magnetic end :
  //  1) 80.1 cm still with ID = 6.75 radial beam screen
  //  2) 2.5 cm conical section from ID = 6.75 to ID = 8.0 cm
  //  3) 43.9 cm straight section (tube) with ID = 8.0 cm

  tubpar[0] = 6.75/2.;
  tubpar[1] = 7.15/2.;
  tubpar[2] = (945.0+80.1)/2.;
  TVirtualMC::GetMC()->Gsvolu("QA03", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QA03", 1, "ZDCA", 0., 0., tubpar[2]+zd2, 0, "ONLY");
  // Ch.debug
  //printf("	QA03 TUBE from z = %1.2f to z= %1.2f\n",zd2,2*tubpar[2]+zd2);
  
  zd2 += 2.*tubpar[2];

  // Transition Cone from ID=67.5 mm  to ID=80 mm
  conpar[0] = 2.5/2.;
  conpar[1] = 6.75/2.;
  conpar[2] = 7.15/2.;
  conpar[3] = 8.0/2.;
  conpar[4] = 8.4/2.;
  TVirtualMC::GetMC()->Gsvolu("QA04", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("QA04", 1, "ZDCA", 0., 0., conpar[0]+zd2, 0, "ONLY");
  //printf("	QA04 CONE from z = %1.2f to z= %1.2f\n",zd2,2*conpar[0]+zd2);

  zd2 += 2.*conpar[0];
  
  tubpar[0] = 8.0/2.;
  tubpar[1] = 8.4/2.;
  tubpar[2] = (43.9+20.+28.5+28.5)/2.;
  TVirtualMC::GetMC()->Gsvolu("QA05", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QA05", 1, "ZDCA", 0., 0., tubpar[2]+zd2, 0, "ONLY");
  // Ch.debug
  //printf("	QA05 TUBE from z = %1.2f to z= %1.2f\n",zd2,2*tubpar[2]+zd2);
  
  zd2 += 2.*tubpar[2];

  // Second section of VAEHI (transition cone from ID=80mm to ID=98mm)
  conpar[0] = 4.0/2.;
  conpar[1] = 8.0/2.;
  conpar[2] = 8.4/2.;
  conpar[3] = 9.8/2.;
  conpar[4] = 10.2/2.;
  TVirtualMC::GetMC()->Gsvolu("QAV1", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("QAV1", 1, "ZDCA", 0., 0., conpar[0]+zd2, 0, "ONLY");
  //printf("	QAV1 CONE from z = %1.2f to z= %1.2f\n",zd2,2*conpar[0]+zd2);

  zd2 += 2.*conpar[0];
  
  //Third section of VAEHI (transition cone from ID=98mm to ID=90mm)
  conpar[0] = 1.0/2.;
  conpar[1] = 9.8/2.;
  conpar[2] = 10.2/2.;
  conpar[3] = 9.0/2.;
  conpar[4] = 9.4/2.;
  TVirtualMC::GetMC()->Gsvolu("QAV2", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("QAV2", 1, "ZDCA", 0., 0., conpar[0]+zd2, 0, "ONLY");
  //printf("	QAV2 CONE from z = %1.2f to z= %1.2f\n",zd2,2*conpar[0]+zd2);

  zd2 += 2.*conpar[0];
 
  // Fourth section of VAEHI (tube ID=90mm)    
  tubpar[0] = 9.0/2.;
  tubpar[1] = 9.4/2.;
  tubpar[2] = 31.0/2.;
  TVirtualMC::GetMC()->Gsvolu("QAV3", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QAV3", 1, "ZDCA", 0., 0., tubpar[2]+zd2, 0, "ONLY");
  // Ch.debug
  //printf("	QAV3 TUBE from z = %1.2f to z= %1.2f\n",zd2,2*tubpar[2]+zd2);
  
  zd2 += 2.*tubpar[2]; 

  //---------------------------- TCDD beginning ----------------------------------    
  // space for the insertion of the collimator TCDD (2 m)
  // TCDD ZONE - 1st volume
  conpar[0] = 1.3/2.;
  conpar[1] = 9.0/2.;
  conpar[2] = 13.0/2.;
  conpar[3] = 9.6/2.;
  conpar[4] = 13.0/2.;
  TVirtualMC::GetMC()->Gsvolu("Q01T", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("Q01T", 1, "ZDCA", 0., 0., conpar[0]+zd2, 0, "ONLY");
  //printf("	Q01T CONE from z = %1.2f to z= %1.2f\n",zd2,2*conpar[0]+zd2);

  zd2 += 2.*conpar[0];  

  // TCDD ZONE - 2nd volume    
  tubpar[0] = 9.6/2.;
  tubpar[1] = 10.0/2.;
  tubpar[2] = 1.0/2.;
  TVirtualMC::GetMC()->Gsvolu("Q02T", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("Q02T", 1, "ZDCA", 0., 0., tubpar[2]+zd2, 0, "ONLY");
  // Ch.debug
  //printf("	Q02T TUBE from z = %1.2f to z= %1.2f\n",zd2,2*tubpar[2]+zd2);
  
  zd2 += 2.*tubpar[2]; 

  // TCDD ZONE - third volume
  conpar[0] = 9.04/2.;
  conpar[1] = 9.6/2.;
  conpar[2] = 10.0/2.;
  conpar[3] = 13.8/2.;
  conpar[4] = 14.2/2.;
  TVirtualMC::GetMC()->Gsvolu("Q03T", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("Q03T", 1, "ZDCA", 0., 0., conpar[0]+zd2, 0, "ONLY");
  //printf("	Q03T CONE from z = %1.2f to z= %1.2f\n",zd2,2*conpar[0]+zd2);

  zd2 += 2.*conpar[0];  

  // TCDD ZONE - 4th volume    
  tubpar[0] = 13.8/2.;
  tubpar[1] = 14.2/2.;
  tubpar[2] = 38.6/2.;
  TVirtualMC::GetMC()->Gsvolu("Q04T", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("Q04T", 1, "ZDCA", 0., 0., tubpar[2]+zd2, 0, "ONLY");
  // Ch.debug
  //printf("	Q04T TUBE from z = %1.2f to z= %1.2f\n",zd2,2*tubpar[2]+zd2);
  
  zd2 += 2.*tubpar[2]; 

  // TCDD ZONE - 5th volume    
  tubpar[0] = 21.0/2.;
  tubpar[1] = 21.4/2.;
  tubpar[2] = 100.12/2.;
  TVirtualMC::GetMC()->Gsvolu("Q05T", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("Q05T", 1, "ZDCA", 0., 0., tubpar[2]+zd2, 0, "ONLY");
  // Ch.debug
  //printf("	Q05T TUBE from z = %1.2f to z= %1.2f\n",zd2,2*tubpar[2]+zd2);

  zd2 += 2.*tubpar[2]; 
 
  // TCDD ZONE - 6th volume    
  tubpar[0] = 13.8/2.;
  tubpar[1] = 14.2/2.;
  tubpar[2] = 38.6/2.;
  TVirtualMC::GetMC()->Gsvolu("Q06T", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("Q06T", 1, "ZDCA", 0., 0., tubpar[2]+zd2, 0, "ONLY");
  // Ch.debug
  //printf("	Q06T TUBE from z = %1.2f to z= %1.2f\n",zd2,2*tubpar[2]+zd2);
  
  zd2 += 2.*tubpar[2];

  // TCDD ZONE - 7th volume
  conpar[0] = 11.34/2.;
  conpar[1] = 13.8/2.;
  conpar[2] = 14.2/2.;
  conpar[3] = 18.0/2.;
  conpar[4] = 18.4/2.;
  TVirtualMC::GetMC()->Gsvolu("Q07T", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("Q07T", 1, "ZDCA", 0., 0., conpar[0]+zd2, 0, "ONLY");
  //printf("	Q07T CONE from z = %1.2f to z= %1.2f\n",zd2,2*conpar[0]+zd2);

  zd2 += 2.*conpar[0];

  // Upper section : one single phi segment of a tube 
  //  5 parameters for tubs: inner radius = 0.,
  //	outer radius = 7. cm, half length = 50 cm
  //	phi1 = 0., phi2 = 180. 
  tubspar[0] = 0.0/2.;
  tubspar[1] = 14.0/2.;
  tubspar[2] = 100.0/2.;
  tubspar[3] = 0.;
  tubspar[4] = 180.;  
  TVirtualMC::GetMC()->Gsvolu("Q08T", "TUBS", idtmed[7], tubspar, 5);
  // Ch.debug
  //printf("	upper part : one single phi segment of a tube (Q08T)\n");  
  
  // rectangular beam pipe inside TCDD upper section (Vacuum)  
  boxpar[0] = 7.0/2.;
  boxpar[1] = 2.2/2.;
  boxpar[2] = 100./2.;
  TVirtualMC::GetMC()->Gsvolu("Q09T", "BOX ", idtmed[10], boxpar, 3);
  // positioning vacuum box in the upper section of TCDD
  TVirtualMC::GetMC()->Gspos("Q09T", 1, "Q08T", 0., 1.1,  0., 0, "ONLY");
  
  // lower section : one single phi segment of a tube       
  tubspar[0] = 0.0/2.;
  tubspar[1] = 14.0/2.;
  tubspar[2] = 100.0/2.;
  tubspar[3] = 180.;
  tubspar[4] = 360.;  
  TVirtualMC::GetMC()->Gsvolu("Q10T", "TUBS", idtmed[7], tubspar, 5);
  // rectangular beam pipe inside TCDD lower section (Vacuum)  
  boxpar[0] = 7.0/2.;
  boxpar[1] = 2.2/2.;
  boxpar[2] = 100./2.;
  TVirtualMC::GetMC()->Gsvolu("Q11T", "BOX ", idtmed[10], boxpar, 3);
  // positioning vacuum box in the lower section of TCDD
  TVirtualMC::GetMC()->Gspos("Q11T", 1, "Q10T", 0., -1.1,  0., 0, "ONLY");  
  
  // positioning  TCDD elements in ZDCA, (inside TCDD volume)
  TVirtualMC::GetMC()->Gspos("Q08T", 1, "ZDCA", 0., fTCDDAperturePos, -100.+zd2, 0, "ONLY");  
  TVirtualMC::GetMC()->Gspos("Q10T", 1, "ZDCA", 0., -fTCDDApertureNeg, -100.+zd2, 0, "ONLY");  
  printf("  AliZDCv3 -> TCDD apertures +%1.2f/-%1.2f cm\n", 
    	fTCDDAperturePos, fTCDDApertureNeg);
    
  // RF screen 
  boxpar[0] = 0.2/2.;
  boxpar[1] = 4.0/2.;
  boxpar[2] = 100./2.;
  TVirtualMC::GetMC()->Gsvolu("Q12T", "BOX ", idtmed[7], boxpar, 3);  
  // positioning RF screen at both sides of TCDD
  TVirtualMC::GetMC()->Gspos("Q12T", 1, "ZDCA", tubspar[1]+boxpar[0], 0., -100.+zd2, 0, "ONLY");  
  TVirtualMC::GetMC()->Gspos("Q12T", 2, "ZDCA", -tubspar[1]-boxpar[0], 0., -100.+zd2, 0, "ONLY");      
  //---------------------------- TCDD end ---------------------------------------    

  // The following elliptical tube 180 mm x 70 mm
  // (obtained positioning the void QA09 in QA08)
  // represents VMTSA (780 mm) + space reserved to the TCTVB (1480 mm)+ 
  //            VMTSA (780 mm) + first part of VCTCP (93 mm)

  tubpar[0] = 18.4/2.;
  tubpar[1] = 7.4/2.;
  tubpar[2] = 313.3/2.;
//  TVirtualMC::GetMC()->Gsvolu("QA06", "ELTU", idtmed[7], tubpar, 3);  
  // temporary replace with a scaled tube (AG)
  TGeoTube *tubeQA06 = new TGeoTube(0.,tubpar[0],tubpar[2]);
  TGeoScale *scaleQA06 = new TGeoScale(1., tubpar[1]/tubpar[0], 1.);
  TGeoScaledShape *sshapeQA06 = new TGeoScaledShape(tubeQA06, scaleQA06);
  new TGeoVolume("QA06", sshapeQA06, gGeoManager->GetMedium(idtmed[7]));
  //printf("	QA06 TUBE from z = %1.2f to z= %1.2f\n",zd2,2*tubpar[2]+zd2);

  tubpar[0] = 18.0/2.;
  tubpar[1] = 7.0/2.;
  tubpar[2] = 313.3/2.;
//  TVirtualMC::GetMC()->Gsvolu("QA07", "ELTU", idtmed[10], tubpar, 3);  
  // temporary replace with a scaled tube (AG)
  TGeoTube *tubeQA07 = new TGeoTube(0.,tubpar[0],tubpar[2]);
  TGeoScale *scaleQA07 = new TGeoScale(1., tubpar[1]/tubpar[0], 1.);
  TGeoScaledShape *sshapeQA07 = new TGeoScaledShape(tubeQA07, scaleQA07);
  new TGeoVolume("QA07", sshapeQA07, gGeoManager->GetMedium(idtmed[10]));
  //printf("	QA07 TUBE from z = %1.2f to z= %1.2f\n",zd2,2*tubpar[2]+zd2);
  TVirtualMC::GetMC()->Gspos("QA06", 1, "ZDCA", 0., 0., tubpar[2]+zd2, 0, "ONLY"); 
  TVirtualMC::GetMC()->Gspos("QA07", 1, "QA06", 0., 0., 0., 0, "ONLY");  
  
  // Vertical collimator jaws (defined ONLY if fVCollAperture<3.5!)
  if(fVCollSideAAperture<3.5){
    boxpar[0] = 5.4/2.;
    boxpar[1] = (3.5-fVCollSideAAperture-fVCollSideACentreY-0.7)/2.;
    if(boxpar[1]<0.) boxpar[1]=0.;
    boxpar[2] = 124.4/2.;
    TVirtualMC::GetMC()->Gsvolu("QCVA" , "BOX ", idtmed[13], boxpar, 3); 
    TVirtualMC::GetMC()->Gspos("QCVA", 1, "QA07", -boxpar[0], fVCollSideAAperture+fVCollSideACentreY+boxpar[1], -313.3/2.+78.+148./2., 0, "ONLY");  
    TVirtualMC::GetMC()->Gspos("QCVA", 2, "QA07", -boxpar[0], -fVCollSideAApertureNeg+fVCollSideACentreY-boxpar[1], -313.3/2.+78.+148./2., 0, "ONLY");  
    printf("  AliZDCv3 -> sideA VCollimator jaws: apertures +%1.2f/-%1.2f center %1.2f [cm]\n", 
    	fVCollSideAAperture, fVCollSideAApertureNeg,fVCollSideACentreY);
  }
  
  zd2 += 2.*tubpar[2];
      
  // VCTCP second part: transition cone from ID=180 to ID=212.7 
  conpar[0] = 31.5/2.;
  conpar[1] = 18.0/2.;
  conpar[2] = 18.6/2.;
  conpar[3] = 21.27/2.;
  conpar[4] = 21.87/2.;
  TVirtualMC::GetMC()->Gsvolu("QA08", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("QA08", 1, "ZDCA", 0., 0., conpar[0]+zd2, 0, "ONLY");
  // Ch.debug  
  //printf("	QA08 CONE from z = %Third part of VCTCR: tube (ID=196 mm) f to z = %f\n",zd2,2*conpar[0]+zd2);

  zd2 += 2.*conpar[0];
  
  // Tube ID 212.7 mm
  // Represents VCTCP third part (92 mm) + VCDWB (765 mm) + VMBGA (400 mm) +
  //            VCDWE (300 mm) + VMBGA (400 mm)
  tubpar[0] = 21.27/2.;
  tubpar[1] = 21.87/2.;
  tubpar[2] = 195.7/2.;
  TVirtualMC::GetMC()->Gsvolu("QA09", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QA09", 1, "ZDCA", 0., 0., tubpar[2]+zd2, 0, "ONLY");
  //printf("	QA09 TUBE from z = %1.2f to z= %1.2f\n",zd2,2*tubpar[2]+zd2);

  zd2 += 2.*tubpar[2];

  // skewed transition piece (ID=212.7 mm to 332 mm) (before TDI)   
  conpar[0] = (50.0-0.73-1.13)/2.;
  conpar[1] = 21.27/2.;
  conpar[2] = 21.87/2.;
  conpar[3] = 33.2/2.;
  conpar[4] = 33.8/2.;
  TVirtualMC::GetMC()->Gsvolu("QA10", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("QA10", 1, "ZDCA", -1.66, 0., conpar[0]+0.73+zd2, irotpipe4, "ONLY");
  // Ch.debug  
  //printf("	QA10 skewed CONE from z = %1.2f to z= %1.2f\n",zd2,2*conpar[0]+0.73+1.13+zd2);

  zd2 += 2.*conpar[0]+0.73+1.13;
      
  // Vacuum chamber containing TDI  
  tubpar[0] = 0.;
  tubpar[1] = 54.6/2.;
  tubpar[2] = 540.0/2.;
  TVirtualMC::GetMC()->Gsvolu("Q13TM", "TUBE", idtmed[10], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("Q13TM", 1, "ZDCA", 0., 0., tubpar[2]+zd2, 0, "ONLY");
  tubpar[0] = 54.0/2.;
  tubpar[1] = 54.6/2.;
  tubpar[2] = 540.0/2.;
  TVirtualMC::GetMC()->Gsvolu("Q13T", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("Q13T", 1, "Q13TM", 0., 0., 0., 0, "ONLY");
  // Ch.debug
  //printf("	Q13T TUBE from z = %1.2f to z= %1.2f\n",zd2,2*tubpar[2]+zd2);

  zd2 += 2.*tubpar[2];
  
  //---------------- INSERT TDI INSIDE Q13T -----------------------------------    
  boxpar[0] = 11.0/2.;
  boxpar[1] = 9.0/2.;
  boxpar[2] = 540.0/2.;
  TVirtualMC::GetMC()->Gsvolu("QTD1", "BOX ", idtmed[7], boxpar, 3);
  TVirtualMC::GetMC()->Gspos("QTD1", 1, "Q13TM", -3.8, boxpar[1]+fTDIAperturePos,  0., 0, "ONLY");
  boxpar[0] = 11.0/2.;
  boxpar[1] = 9.0/2.;
  boxpar[2] = 540.0/2.;
  TVirtualMC::GetMC()->Gsvolu("QTD2", "BOX ", idtmed[7], boxpar, 3);
  TVirtualMC::GetMC()->Gspos("QTD2", 1, "Q13TM", -3.8, -boxpar[1]-fTDIApertureNeg,  0., 0, "ONLY");  
  boxpar[0] = 5.1/2.;
  boxpar[1] = 0.2/2.;
  boxpar[2] = 540.0/2.;
  TVirtualMC::GetMC()->Gsvolu("QTD3", "BOX ", idtmed[7], boxpar, 3);
  TVirtualMC::GetMC()->Gspos("QTD3", 1, "Q13TM", -3.8+5.5+boxpar[0], fTDIAperturePos,  0., 0, "ONLY");  
  TVirtualMC::GetMC()->Gspos("QTD3", 2, "Q13TM", -3.8+5.5+boxpar[0], -fTDIApertureNeg,  0., 0, "ONLY"); 
  TVirtualMC::GetMC()->Gspos("QTD3", 3, "Q13TM", -3.8-5.5-boxpar[0], fTDIAperturePos,  0., 0, "ONLY");  
  TVirtualMC::GetMC()->Gspos("QTD3", 4, "Q13TM", -3.8-5.5-boxpar[0], -fTDIApertureNeg,  0., 0, "ONLY");  
  printf("  AliZDCv3 -> TDI apertures +%1.2f/-%1.2f cm\n\n", 
    	fTDIAperturePos, fTDIApertureNeg);
  //
  tubspar[0] = 12.0/2.;
  tubspar[1] = 12.4/2.;
  tubspar[2] = 540.0/2.;
  tubspar[3] = 90.;
  tubspar[4] = 270.;  
  TVirtualMC::GetMC()->Gsvolu("QTD4", "TUBS", idtmed[7], tubspar, 5);
  TVirtualMC::GetMC()->Gspos("QTD4", 1, "Q13TM", -3.8-10.6, 0.,  0., 0, "ONLY");
  tubspar[0] = 12.0/2.;
  tubspar[1] = 12.4/2.;
  tubspar[2] = 540.0/2.;
  tubspar[3] = -90.;
  tubspar[4] = 90.;  
  TVirtualMC::GetMC()->Gsvolu("QTD5", "TUBS", idtmed[7], tubspar, 5);
  TVirtualMC::GetMC()->Gspos("QTD5", 1, "Q13TM", -3.8+10.6, 0.,  0., 0, "ONLY"); 
  //---------------- END DEFINING TDI INSIDE Q13T -------------------------------
  
  // VCTCG skewed transition piece (ID=332 mm to 212.7 mm) (after TDI)
  conpar[0] = (50.0-2.92-1.89)/2.;
  conpar[1] = 33.2/2.;
  conpar[2] = 33.8/2.;
  conpar[3] = 21.27/2.;
  conpar[4] = 21.87/2.;
  TVirtualMC::GetMC()->Gsvolu("QA11", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("QA11", 1, "ZDCA", 4.32-3.8, 0., conpar[0]+2.92+zd2, irotpipe5, "ONLY");
  // Ch.debug  
  //printf("	QA11 skewed CONE from z = %f to z =%f\n",zd2,2*conpar[0]+2.92+1.89+zd2);

  zd2 += 2.*conpar[0]+2.92+1.89;
  
  // The following tube ID 212.7 mm  
  // represents VMBGA (400 mm) + VCDWE (300 mm) + VMBGA (400 mm) +
  //            BTVTS (600 mm) + VMLGB (400 mm)  
  tubpar[0] = 21.27/2.;
  tubpar[1] = 21.87/2.;
  tubpar[2] = 210.0/2.;
  TVirtualMC::GetMC()->Gsvolu("QA12", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QA12", 1, "ZDCA", 4., 0., tubpar[2]+zd2, 0, "ONLY");
  // Ch.debug
  //printf("	QA12 TUBE from z = %1.2f to z= %1.2f\n",zd2,2*tubpar[2]+zd2);

  zd2 += 2.*tubpar[2];  
  
  // First part of VCTCC
  // skewed transition cone from ID=212.7 mm to ID=797 mm
  conpar[0] = (121.0-0.37-1.35)/2.;
  conpar[1] = 21.27/2.;
  conpar[2] = 21.87/2.;
  conpar[3] = 79.7/2.;
  conpar[4] = 81.3/2.;
  TVirtualMC::GetMC()->Gsvolu("QA13", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("QA13", 1, "ZDCA", 4.-2., 0., conpar[0]+0.37+zd2, irotpipe3, "ONLY");
  // Ch.debug  
  //printf("	QA13 CONE from z = %1.2f to z= %1.2f\n",zd2,2*conpar[0]+0.37+1.35+zd2);

  zd2 += 2.*conpar[0]+0.37+1.35;
  
  // The following tube ID 797 mm  --- (volume QA16)
  // represents the second part of VCTCC (4272 mm) + 
  //            4 x VCDGA (4 x 4272 mm) + 
  //            the first part of VCTCR (850 mm)
  tubpar[0] = 79.7/2.;
  tubpar[1] = 81.3/2.;
  tubpar[2] = 2221./2.;
  TVirtualMC::GetMC()->Gsvolu("QA14", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QA14", 1, "ZDCA", 0., 0., tubpar[2]+zd2, 0, "ONLY");
  // Ch.debug  
  //printf("	QA14 TUBE from z = %1.2f to z= %1.2f\n",zd2,2*tubpar[2]+zd2);

  zd2 += 2.*tubpar[2];
        
  // Second part of VCTCR
  // Transition from ID=797 mm to ID=196 mm:
  // in order to simulate the thin window opened in the transition cone
  // we divide the transition cone in three cones:
  // (1) 8 mm thick (2) 3 mm thick (3) the third 8 mm thick
  
  // (1) 8 mm thick
  conpar[0] = 9.09/2.; // 15 degree
  conpar[1] = 79.7/2.;
  conpar[2] = 81.3/2.; // thickness 8 mm  
  conpar[3] = 74.82868/2.;
  conpar[4] = 76.42868/2.; // thickness 8 mm 
  TVirtualMC::GetMC()->Gsvolu("QA15", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("QA15", 1, "ZDCA", 0., 0., conpar[0]+zd2, 0, "ONLY");
  //printf("	QA15 CONE from z = %1.2f to z= %1.2f\n",zd2,2*conpar[0]+zd2);

  zd2 += 2.*conpar[0];  

  // (2) 3 mm thick
  conpar[0] = 96.2/2.; // 15 degree
  conpar[1] = 74.82868/2.;
  conpar[2] = 75.42868/2.; // thickness 3 mm  
  conpar[3] = 23.19588/2.;
  conpar[4] = 23.79588/2.; // thickness 3 mm 
  TVirtualMC::GetMC()->Gsvolu("QA16", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("QA16", 1, "ZDCA", 0., 0., conpar[0]+zd2, 0, "ONLY");  
  //printf("	QA16 CONE from z = %1.2f to z= %1.2f\n",zd2,2*conpar[0]+zd2);

  zd2 += 2.*conpar[0];
  
  // (3) 8 mm thick
  conpar[0] = 6.71/2.; // 15 degree
  conpar[1] = 23.19588/2.;
  conpar[2] = 24.79588/2.;// thickness 8 mm 
  conpar[3] = 19.6/2.;
  conpar[4] = 21.2/2.;// thickness 8 mm 
  TVirtualMC::GetMC()->Gsvolu("QA17", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("QA17", 1, "ZDCA", 0., 0., conpar[0]+zd2, 0, "ONLY");
  //printf("	QA19 CONE from z = %1.2f to z= %1.2f\n",zd2,2*conpar[0]+zd2);

  zd2 += 2.*conpar[0];
 
  // Third part of VCTCR: tube (ID=196 mm)  
  tubpar[0] = 19.6/2.;
  tubpar[1] = 21.2/2.;
  tubpar[2] = 9.55/2.;
  TVirtualMC::GetMC()->Gsvolu("QA18", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QA18", 1, "ZDCA", 0., 0., tubpar[2]+zd2, 0, "ONLY");
  // Ch.debug  
  //printf("	QA18 TUBE from z = %1.2f to z= %1.2f\n",zd2,2*tubpar[2]+zd2);

  zd2 += 2.*tubpar[2];  
  
  // Flange (ID=196 mm) (last part of VCTCR and first part of VMZAR)
  tubpar[0] = 19.6/2.;
  tubpar[1] = 25.3/2.;
  tubpar[2] = 4.9/2.;
  TVirtualMC::GetMC()->Gsvolu("QF01", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QF01", 1, "ZDCA", 0., 0., tubpar[2]+zd2, 0, "ONLY");
  // Ch.debug  
  //printf("	QF01  TUBE from z = %1.2f to z= %1.2f\n",zd2,2*tubpar[2]+zd2);

  zd2 += 2.*tubpar[2];
  
  // VMZAR (5 volumes)  
  tubpar[0] = 20.2/2.;
  tubpar[1] = 20.6/2.;
  tubpar[2] = 2.15/2.;
  TVirtualMC::GetMC()->Gsvolu("QA19", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QA19", 1, "ZDCA", 0., 0., tubpar[2]+zd2, 0, "ONLY");
  // Ch.debug  
  //printf("	QA19  TUBE from z = %1.2f to z= %1.2f\n",zd2,2*tubpar[2]+zd2);

  zd2 += 2.*tubpar[2];
  
  conpar[0] = 6.9/2.;
  conpar[1] = 20.2/2.;
  conpar[2] = 20.6/2.;
  conpar[3] = 23.9/2.;
  conpar[4] = 24.3/2.;
  TVirtualMC::GetMC()->Gsvolu("QA20", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("QA20", 1, "ZDCA", 0., 0., conpar[0]+zd2, 0, "ONLY");
  // Ch.debug  
  //printf("	QA20 CONE from z = %1.2f to z= %1.2f\n",zd2,2*conpar[0]+zd2);

  zd2 += 2.*conpar[0];

  tubpar[0] = 23.9/2.;
  tubpar[1] = 25.5/2.;
  tubpar[2] = 17.0/2.;
  TVirtualMC::GetMC()->Gsvolu("QA21", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QA21", 1, "ZDCA", 0., 0., tubpar[2]+zd2, 0, "ONLY");
  // Ch.debug  
  //printf("	QA21  TUBE from z = %1.2f to z= %1.2f\n",zd2,2*tubpar[2]+zd2);

  zd2 += 2.*tubpar[2];
  
  conpar[0] = 6.9/2.;
  conpar[1] = 23.9/2.;
  conpar[2] = 24.3/2.;
  conpar[3] = 20.2/2.;
  conpar[4] = 20.6/2.;
  TVirtualMC::GetMC()->Gsvolu("QA22", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("QA22", 1, "ZDCA", 0., 0., conpar[0]+zd2, 0, "ONLY");
  // Ch.debug  
  //printf("	QA22 CONE from z = %1.2f to z= %1.2f\n",zd2,2*conpar[0]+zd2);

  zd2 += 2.*conpar[0];
  
  tubpar[0] = 20.2/2.;
  tubpar[1] = 20.6/2.;
  tubpar[2] = 2.15/2.;
  TVirtualMC::GetMC()->Gsvolu("QA23", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QA23", 1, "ZDCA", 0., 0., tubpar[2]+zd2, 0, "ONLY");
  // Ch.debug  
  //printf("	QA23  TUBE from z = %1.2f to z= %1.2f\n",zd2,2*tubpar[2]+zd2);

  zd2 += 2.*tubpar[2];
  
  // Flange (ID=196 mm)(last part of VMZAR and first part of VCTYD)
  tubpar[0] = 19.6/2.;
  tubpar[1] = 25.3/2.;
  tubpar[2] = 4.9/2.;
  TVirtualMC::GetMC()->Gsvolu("QF02", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QF02", 1, "ZDCA", 0., 0., tubpar[2]+zd2, 0, "ONLY");
  // Ch.debug  
  //printf("	QF02 TUBE from z = %1.2f to z= %1.2f\n",zd2,2*tubpar[2]+zd2);

  zd2 += 2.*tubpar[2];
  
  // simulation of the trousers (VCTYB)     
  tubpar[0] = 19.6/2.;
  tubpar[1] = 20.0/2.;
  tubpar[2] = 3.9/2.;
  TVirtualMC::GetMC()->Gsvolu("QA24", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QA24", 1, "ZDCA", 0., 0., tubpar[2]+zd2, 0, "ONLY");
  // Ch.debug
  //printf("	QA24  TUBE from z = %1.2f to z= %1.2f\n",zd2,2*tubpar[2]+zd2);

  zd2 += 2.*tubpar[2];

  // transition cone from ID=196. to ID=216.6
  conpar[0] = 32.55/2.;
  conpar[1] = 19.6/2.;
  conpar[2] = 20.0/2.;
  conpar[3] = 21.66/2.;
  conpar[4] = 22.06/2.;
  TVirtualMC::GetMC()->Gsvolu("QA25", "CONE", idtmed[7], conpar, 5);
  TVirtualMC::GetMC()->Gspos("QA25", 1, "ZDCA", 0., 0., conpar[0]+zd2, 0, "ONLY");
  // Ch.debug  
  //printf("	QA25 CONE from z = %1.2f to z= %1.2f\n",zd2,2*conpar[0]+zd2);

  zd2 += 2.*conpar[0]; 
  
  // tube  
  tubpar[0] = 21.66/2.;
  tubpar[1] = 22.06/2.;
  tubpar[2] = 28.6/2.;
  TVirtualMC::GetMC()->Gsvolu("QA26", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QA26", 1, "ZDCA", 0., 0., tubpar[2]+zd2, 0, "ONLY");
  // Ch.debug 
  //printf("	QA26  TUBE from z = %1.2f to z= %1.2f\n",zd2,2*tubpar[2]+zd2);

  zd2 += 2.*tubpar[2];

  // --------------------------------------------------------
  // RECOMBINATION CHAMBER IMPLEMENTED USING TGeo CLASSES!!!!
  // author: Chiara (June 2008)
  // --------------------------------------------------------
  // TRANSFORMATION MATRICES
  // Combi transformation: 
  dx = -3.970000;
  dy = 0.000000;
  dz = 0.0;
  // Rotation: 
  thx = 84.989100;   phx = 0.000000;
  thy = 90.000000;   phy = 90.000000;
  thz = 5.010900;    phz = 180.000000;
  TGeoRotation *rotMatrix1 = new TGeoRotation("",thx,phx,thy,phy,thz,phz);
  // Combi transformation: 
  dx = -3.970000;
  dy = 0.000000;
  dz = 0.0;
  TGeoCombiTrans *rotMatrix2 = new TGeoCombiTrans("ZDC_c1", dx,dy,dz,rotMatrix1);
  rotMatrix2->RegisterYourself();
  // Combi transformation: 
  dx = 3.970000;
  dy = 0.000000;
  dz = 0.0;
  // Rotation: 
  thx = 95.010900;   phx = 0.000000;
  thy = 90.000000;   phy = 90.000000;
  thz = 5.010900;    phz = 0.000000;
  TGeoRotation *rotMatrix3 = new TGeoRotation("",thx,phx,thy,phy,thz,phz);
  TGeoCombiTrans *rotMatrix4 = new TGeoCombiTrans("ZDC_c2", dx,dy,dz,rotMatrix3);
  rotMatrix4->RegisterYourself();
  
  
  // VOLUMES DEFINITION
  // Volume: ZDCA
  TGeoVolume *pZDCA = gGeoManager->GetVolume("ZDCA");
  
  conpar[0] = (90.1-0.95-0.26)/2.;
  conpar[1] = 0.0/2.;
  conpar[2] = 21.6/2.;
  conpar[3] = 0.0/2.;
  conpar[4] = 5.8/2.;
  new TGeoCone("QALext", conpar[0],conpar[1],conpar[2],conpar[3],conpar[4]);
  
  conpar[0] = (90.1-0.95-0.26)/2.;
  conpar[1] = 0.0/2.;
  conpar[2] = 21.2/2.;
  conpar[3] = 0.0/2.;
  conpar[4] = 5.4/2.;
  new TGeoCone("QALint", conpar[0],conpar[1],conpar[2],conpar[3],conpar[4]);

  // Outer trousers
  TGeoCompositeShape *pOutTrousers = new TGeoCompositeShape("outTrousers", "QALext:ZDC_c1+QALext:ZDC_c2");
  
  // Volume: QALext
  //TGeoMedium *medZDCFe = gGeoManager->GetMedium("ZDC_ZIRON");
  TGeoVolume *pQALext = new TGeoVolume("QALext",pOutTrousers, medZDCFe);
  pQALext->SetLineColor(kBlue);
  pQALext->SetVisLeaves(kTRUE);
  //
  TGeoTranslation *tr1 = new TGeoTranslation(0., 0., (Double_t) conpar[0]+0.95+zd2);
  pZDCA->AddNode(pQALext, 1, tr1);
  // Inner trousers
  TGeoCompositeShape *pIntTrousers = new TGeoCompositeShape("intTrousers", "QALint:ZDC_c1+QALint:ZDC_c2");
  // Volume: QALint
  //TGeoMedium *medZDCvoid = gGeoManager->GetMedium("ZDC_ZVOID");
  TGeoVolume *pQALint = new TGeoVolume("QALint",pIntTrousers, medZDCvoid);
  pQALint->SetLineColor(kAzure);
  pQALint->SetVisLeaves(kTRUE);
  pQALext->AddNode(pQALint, 1);
    
  zd2 += 90.1;
  
  //  second section : 2 tubes (ID = 54. OD = 58.)  
  tubpar[0] = 5.4/2.;
  tubpar[1] = 5.8/2.;
  tubpar[2] = 40.0/2.;
  TVirtualMC::GetMC()->Gsvolu("QA27", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QA27", 1, "ZDCA", -15.8/2., 0., tubpar[2]+zd2, 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("QA27", 2, "ZDCA",  15.8/2., 0., tubpar[2]+zd2, 0, "ONLY");  
  // Ch.debug
  //printf("	QA27 TUBE from z = %1.2f to z= %1.2f\n",zd2,2*tubpar[2]+zd2);
  
  zd2 += 2.*tubpar[2];
 
  // transition x2zdc to recombination chamber : skewed cone  
  conpar[0] = (10.-1.)/2.;
  conpar[1] = 5.4/2.;
  conpar[2] = 5.8/2.;
  conpar[3] = 6.3/2.;
  conpar[4] = 7.0/2.;
  TVirtualMC::GetMC()->Gsvolu("QA28", "CONE", idtmed[7], conpar, 5); 
  TVirtualMC::GetMC()->Gspos("QA28", 1, "ZDCA", -7.9-0.175, 0., conpar[0]+0.5+zd2, irotpipe1, "ONLY");
  TVirtualMC::GetMC()->Gspos("QA28", 2, "ZDCA", 7.9+0.175, 0., conpar[0]+0.5+zd2, irotpipe2, "ONLY");
  //printf("	QA28 CONE from z = %1.2f to z= %1.2f\n",zd2,2*conpar[0]+0.2+zd2);

  zd2 += 2.*conpar[0]+1.;
  
  // 2 tubes (ID = 63 mm OD=70 mm)      
  tubpar[0] = 6.3/2.;
  tubpar[1] = 7.0/2.;
  tubpar[2] = (342.5+498.3)/2.;
  TVirtualMC::GetMC()->Gsvolu("QA29", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("QA29", 1, "ZDCA", -16.5/2., 0., tubpar[2]+zd2, 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("QA29", 2, "ZDCA",  16.5/2., 0., tubpar[2]+zd2, 0, "ONLY");
  //printf("	QA29 TUBE from z = %1.2f to z= %1.2f\n",zd2,2*tubpar[2]+zd2);  

  zd2 += 2.*tubpar[2];
	   
  // -- Luminometer (Cu box) in front of ZN - side A
  boxpar[0] = 8.0/2.;
  boxpar[1] = 8.0/2.;
  boxpar[2] = fLumiLength/2.;
  TVirtualMC::GetMC()->Gsvolu("QLUA", "BOX ", idtmed[9], boxpar, 3);
  TVirtualMC::GetMC()->Gspos("QLUA", 1, "ZDCA", 0., 0.,  fPosZNA[2]-66.-boxpar[2], 0, "ONLY");
  //printf("	QLUA LUMINOMETER from z = %1.2f to z= %1.2f\n\n",  fPosZNA[2]-66., fPosZNA[2]-66.-2*boxpar[2]);

  //printf("	END OF BEAM PIPE VOLUME DEFINITION AT z = %f\n",zd2);
  

  // ----------------------------------------------------------------
  // --  MAGNET DEFINITION  -> LHC OPTICS 6.5  
  // ----------------------------------------------------------------      
  // ***************************************************************  
  //		SIDE C - RB26  (dimuon side) 
  // ***************************************************************   
  // --  COMPENSATOR DIPOLE (MBXW)
  zCorrDip = 1972.5;   
  
  // --  GAP (VACUUM WITH MAGNETIC FIELD)
  tubpar[0] = 0.;
  tubpar[1] = 3.14;
  tubpar[2] = 153./2.;
  TVirtualMC::GetMC()->Gsvolu("MBXW", "TUBE", idtmed[11], tubpar, 3);

  // --  YOKE 
  tubpar[0] = 4.5;
  tubpar[1] = 55.;
  tubpar[2] = 153./2.;
  TVirtualMC::GetMC()->Gsvolu("YMBX", "TUBE", idtmed[7], tubpar, 3);

  TVirtualMC::GetMC()->Gspos("MBXW", 1, "ZDCC", 0., 0., -tubpar[2]-zCorrDip, 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("YMBX", 1, "ZDCC", 0., 0., -tubpar[2]-zCorrDip, 0, "ONLY");
  
  
  // -- INNER TRIPLET 
  zInnTrip = 2296.5; 

  // -- DEFINE MQXL AND MQX QUADRUPOLE ELEMENT 
  // --  MQXL 
  // --  GAP (VACUUM WITH MAGNETIC FIELD) 
  tubpar[0] = 0.;
  tubpar[1] = 3.14;
  tubpar[2] = 637./2.;
  TVirtualMC::GetMC()->Gsvolu("MQXL", "TUBE", idtmed[11], tubpar, 3);
    
  // --  YOKE 
  tubpar[0] = 3.5;
  tubpar[1] = 22.;
  tubpar[2] = 637./2.;
  TVirtualMC::GetMC()->Gsvolu("YMQL", "TUBE", idtmed[7], tubpar, 3);
  
  TVirtualMC::GetMC()->Gspos("MQXL", 1, "ZDCC", 0., 0., -tubpar[2]-zInnTrip, 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("YMQL", 1, "ZDCC", 0., 0., -tubpar[2]-zInnTrip, 0, "ONLY");
  
  TVirtualMC::GetMC()->Gspos("MQXL", 2, "ZDCC", 0., 0., -tubpar[2]-zInnTrip-2400., 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("YMQL", 2, "ZDCC", 0., 0., -tubpar[2]-zInnTrip-2400., 0, "ONLY");
  
  // --  MQX 
  // --  GAP (VACUUM WITH MAGNETIC FIELD) 
  tubpar[0] = 0.;
  tubpar[1] = 3.14;
  tubpar[2] = 550./2.;
  TVirtualMC::GetMC()->Gsvolu("MQX ", "TUBE", idtmed[11], tubpar, 3);
  
  // --  YOKE 
  tubpar[0] = 3.5;
  tubpar[1] = 22.;
  tubpar[2] = 550./2.;
  TVirtualMC::GetMC()->Gsvolu("YMQ ", "TUBE", idtmed[7], tubpar, 3);
  
  TVirtualMC::GetMC()->Gspos("MQX ", 1, "ZDCC", 0., 0., -tubpar[2]-zInnTrip-908.5,  0, "ONLY");
  TVirtualMC::GetMC()->Gspos("YMQ ", 1, "ZDCC", 0., 0., -tubpar[2]-zInnTrip-908.5,  0, "ONLY");
  
  TVirtualMC::GetMC()->Gspos("MQX ", 2, "ZDCC", 0., 0., -tubpar[2]-zInnTrip-1558.5, 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("YMQ ", 2, "ZDCC", 0., 0., -tubpar[2]-zInnTrip-1558.5, 0, "ONLY");
  
  // -- SEPARATOR DIPOLE D1 
  zD1 = 5838.3001;
  
  // --  GAP (VACUUM WITH MAGNETIC FIELD) 
  tubpar[0] = 0.;
  tubpar[1] = 3.46;
  tubpar[2] = 945./2.;
  TVirtualMC::GetMC()->Gsvolu("MD1 ", "TUBE", idtmed[11], tubpar, 3);
  
  // --  Insert horizontal Cu plates inside D1 
  // --   (to simulate the vacuum chamber)
  boxpar[0] = TMath::Sqrt(tubpar[1]*tubpar[1]-(2.98+0.2)*(2.98+0.2)) - 0.05;
  boxpar[1] = 0.2/2.;
  boxpar[2] = 945./2.;
  TVirtualMC::GetMC()->Gsvolu("MD1V", "BOX ", idtmed[6], boxpar, 3);
  TVirtualMC::GetMC()->Gspos("MD1V", 1, "MD1 ", 0., 2.98+boxpar[1], 0., 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("MD1V", 2, "MD1 ", 0., -2.98-boxpar[1], 0., 0, "ONLY");
    
  // --  YOKE 
  tubpar[0] = 3.68;
  tubpar[1] = 110./2.;
  tubpar[2] = 945./2.;
  TVirtualMC::GetMC()->Gsvolu("YD1 ", "TUBE", idtmed[7], tubpar, 3);
  
  TVirtualMC::GetMC()->Gspos("YD1 ", 1, "ZDCC", 0., 0., -tubpar[2]-zD1, 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("MD1 ", 1, "ZDCC", 0., 0., -tubpar[2]-zD1, 0, "ONLY");
  // Ch debug
  //printf("	MD1 from z = %1.2f to z= %1.2f cm\n",-zD1, -zD1-2*tubpar[2]); 
  
  // -- DIPOLE D2 
  zD2 = 12167.8;
  // --  GAP (VACUUM WITH MAGNETIC FIELD) 
  tubpar[0] = 0.;
  tubpar[1] = 7.5/2.;
  tubpar[2] = 945./2.;
  TVirtualMC::GetMC()->Gsvolu("MD2 ", "TUBE", idtmed[11], tubpar, 3);
  
  // --  YOKE 
  tubpar[0] = 0.;
  tubpar[1] = 55.;
  tubpar[2] = 945./2.;
  TVirtualMC::GetMC()->Gsvolu("YD2 ", "TUBE", idtmed[7], tubpar, 3);
  
  TVirtualMC::GetMC()->Gspos("YD2 ", 1, "ZDCC", 0., 0., -tubpar[2]-zD2, 0, "ONLY");
  // Ch debug
  //printf("	YD2 from z = %1.2f to z= %1.2f cm\n",-zD2, -zD2-2*tubpar[2]); 
  
  TVirtualMC::GetMC()->Gspos("MD2 ", 1, "YD2 ", -9.4, 0., 0., 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("MD2 ", 2, "YD2 ",  9.4, 0., 0., 0, "ONLY");
  
  // ***************************************************************  
  //		SIDE A - RB24 
  // ***************************************************************
  
  // COMPENSATOR DIPOLE (MCBWA) (2nd compensator)
  // --  GAP (VACUUM WITH MAGNETIC FIELD) 
  tubpar[0] = 0.;
  tubpar[1] = 3.;  
  tubpar[2] = 153./2.;
  TVirtualMC::GetMC()->Gsvolu("MCBW", "TUBE", idtmed[11], tubpar, 3);  
  TVirtualMC::GetMC()->Gspos("MCBW", 1, "ZDCA", 0., 0., tubpar[2]+zCorrDip, 0, "ONLY");
    
   // --  YOKE 
  tubpar[0] = 4.5;
  tubpar[1] = 55.;
  tubpar[2] = 153./2.;
  TVirtualMC::GetMC()->Gsvolu("YMCB", "TUBE", idtmed[7], tubpar, 3);
  TVirtualMC::GetMC()->Gspos("YMCB", 1, "ZDCA", 0., 0., tubpar[2]+zCorrDip, 0, "ONLY");  
  
   // -- INNER TRIPLET 
  // -- DEFINE MQX1 AND MQX2 QUADRUPOLE ELEMENT 
  // --  MQX1 
  // --  GAP (VACUUM WITH MAGNETIC FIELD) 
  tubpar[0] = 0.;
  tubpar[1] = 3.14;
  tubpar[2] = 637./2.;
  TVirtualMC::GetMC()->Gsvolu("MQX1", "TUBE", idtmed[11], tubpar, 3);
  TVirtualMC::GetMC()->Gsvolu("MQX4", "TUBE", idtmed[11], tubpar, 3);
    
  // --  YOKE 
  tubpar[0] = 3.5;
  tubpar[1] = 22.;
  tubpar[2] = 637./2.;
  TVirtualMC::GetMC()->Gsvolu("YMQ1", "TUBE", idtmed[7], tubpar, 3);

  // -- Q1
  TVirtualMC::GetMC()->Gspos("MQX1", 1, "ZDCA", 0., 0., tubpar[2]+zInnTrip, 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("YMQ1", 1, "ZDCA", 0., 0., tubpar[2]+zInnTrip, 0, "ONLY");

   // -- BEAM SCREEN FOR Q1
   tubpar[0] = 4.78/2.;
   tubpar[1] = 5.18/2.;
   tubpar[2] = 637./2.;
   TVirtualMC::GetMC()->Gsvolu("QBS1", "TUBE", idtmed[6], tubpar, 3);
   TVirtualMC::GetMC()->Gspos("QBS1", 1, "MQX1", 0., 0., 0., 0, "ONLY");
   // INSERT VERTICAL PLATE INSIDE Q1
   boxpar[0] = 0.2/2.0;
   boxpar[1] = TMath::Sqrt(tubpar[0]*tubpar[0]-(1.9+0.2)*(1.9+0.2));
   boxpar[2] =637./2.;
   TVirtualMC::GetMC()->Gsvolu("QBS2", "BOX ", idtmed[6], boxpar, 3);
   TVirtualMC::GetMC()->Gspos("QBS2", 1, "MQX1", 1.9+boxpar[0], 0., 0., 0, "ONLY");
   TVirtualMC::GetMC()->Gspos("QBS2", 2, "MQX1", -1.9-boxpar[0], 0., 0., 0, "ONLY");

   // -- Q3   
   TVirtualMC::GetMC()->Gspos("MQX4", 1, "ZDCA", 0., 0., tubpar[2]+zInnTrip+2400., 0, "ONLY");
   TVirtualMC::GetMC()->Gspos("YMQ1", 2, "ZDCA", 0., 0., tubpar[2]+zInnTrip+2400., 0, "ONLY");

   // -- BEAM SCREEN FOR Q3
   tubpar[0] = 5.79/2.;
   tubpar[1] = 6.14/2.;
   tubpar[2] = 637./2.;
   TVirtualMC::GetMC()->Gsvolu("QBS3", "TUBE", idtmed[6], tubpar, 3);
   TVirtualMC::GetMC()->Gspos("QBS3", 1, "MQX4", 0., 0., 0., 0, "ONLY");
   // INSERT VERTICAL PLATE INSIDE Q3
   boxpar[0] = 0.2/2.0;
   boxpar[1] = TMath::Sqrt(tubpar[0]*tubpar[0]-(2.405+0.2)*(2.405+0.2));
   boxpar[2] =637./2.;
   TVirtualMC::GetMC()->Gsvolu("QBS4", "BOX ", idtmed[6], boxpar, 3);
   TVirtualMC::GetMC()->Gspos("QBS4", 1, "MQX4", 2.405+boxpar[0], 0., 0., 0, "ONLY");
   TVirtualMC::GetMC()->Gspos("QBS4", 2, "MQX4", -2.405-boxpar[0], 0., 0., 0, "ONLY");
    
  
  
  // --  MQX2
  // --  GAP (VACUUM WITH MAGNETIC FIELD) 
  tubpar[0] = 0.;
  tubpar[1] = 3.14;
  tubpar[2] = 550./2.;
  TVirtualMC::GetMC()->Gsvolu("MQX2", "TUBE", idtmed[11], tubpar, 3);
  TVirtualMC::GetMC()->Gsvolu("MQX3", "TUBE", idtmed[11], tubpar, 3);
  
  // --  YOKE 
  tubpar[0] = 3.5;
  tubpar[1] = 22.;
  tubpar[2] = 550./2.;
  TVirtualMC::GetMC()->Gsvolu("YMQ2", "TUBE", idtmed[7], tubpar, 3);

   // -- BEAM SCREEN FOR Q2
   tubpar[0] = 5.79/2.;
   tubpar[1] = 6.14/2.;
   tubpar[2] = 550./2.;
   TVirtualMC::GetMC()->Gsvolu("QBS5", "TUBE", idtmed[6], tubpar, 3);
   //    VERTICAL PLATE INSIDE Q2
   boxpar[0] = 0.2/2.0;
   boxpar[1] = TMath::Sqrt(tubpar[0]*tubpar[0]-(2.405+0.2)*(2.405+0.2));
   boxpar[2] =550./2.;
   TVirtualMC::GetMC()->Gsvolu("QBS6", "BOX ", idtmed[6], boxpar, 3);

  // -- Q2A
  TVirtualMC::GetMC()->Gspos("MQX2", 1, "ZDCA", 0., 0., tubpar[2]+zInnTrip+908.5,  0, "ONLY");
  TVirtualMC::GetMC()->Gspos("QBS5", 1, "MQX2", 0., 0., 0., 0, "ONLY");  
  TVirtualMC::GetMC()->Gspos("QBS6", 1, "MQX2", 2.405+boxpar[0], 0., 0., 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("QBS6", 2, "MQX2", -2.405-boxpar[0], 0., 0., 0, "ONLY");  
  TVirtualMC::GetMC()->Gspos("YMQ2", 1, "ZDCA", 0., 0., tubpar[2]+zInnTrip+908.5,  0, "ONLY");

  
  // -- Q2B
  TVirtualMC::GetMC()->Gspos("MQX3", 1, "ZDCA", 0., 0., tubpar[2]+zInnTrip+1558.5, 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("QBS5", 2, "MQX3", 0., 0., 0., 0, "ONLY");  
  TVirtualMC::GetMC()->Gspos("QBS6", 3, "MQX3", 2.405+boxpar[0], 0., 0., 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("QBS6", 4, "MQX3", -2.405-boxpar[0], 0., 0., 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("YMQ2", 2, "ZDCA", 0., 0., tubpar[2]+zInnTrip+1558.5, 0, "ONLY");

  // -- SEPARATOR DIPOLE D1 
  // --  GAP (VACUUM WITH MAGNETIC FIELD) 
  tubpar[0] = 0.;
  tubpar[1] = 6.75/2.;//3.375
  tubpar[2] = 945./2.;
  TVirtualMC::GetMC()->Gsvolu("MD1L", "TUBE", idtmed[11], tubpar, 3);

  // --  The beam screen tube is provided by the beam pipe in D1 (QA03 volume)
  // --  Insert the beam screen horizontal Cu plates inside D1  
  // --   (to simulate the vacuum chamber)
  boxpar[0] = TMath::Sqrt(tubpar[1]*tubpar[1]-(2.885+0.2)*(2.885+0.2));
  boxpar[1] = 0.2/2.;
  boxpar[2] =945./2.;  
  TVirtualMC::GetMC()->Gsvolu("QBS7", "BOX ", idtmed[6], boxpar, 3);
  TVirtualMC::GetMC()->Gspos("QBS7", 1, "MD1L", 0., 2.885+boxpar[1],0., 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("QBS7", 2, "MD1L", 0., -2.885-boxpar[1],0., 0, "ONLY");  
    
  // --  YOKE 
  tubpar[0] = 3.68;
  tubpar[1] = 110./2;
  tubpar[2] = 945./2.;
  TVirtualMC::GetMC()->Gsvolu("YD1L", "TUBE", idtmed[7], tubpar, 3);
  
  TVirtualMC::GetMC()->Gspos("YD1L", 1, "ZDCA", 0., 0., tubpar[2]+zD1, 0, "ONLY");  
  TVirtualMC::GetMC()->Gspos("MD1L", 1, "ZDCA", 0., 0., tubpar[2]+zD1, 0, "ONLY");  
  
  // -- DIPOLE D2 
  // --  GAP (VACUUM WITH MAGNETIC FIELD) 
  tubpar[0] = 0.;
  tubpar[1] = 7.5/2.; // this has to be checked
  tubpar[2] = 945./2.;
  TVirtualMC::GetMC()->Gsvolu("MD2L", "TUBE", idtmed[11], tubpar, 3);
  
  // --  YOKE 
  tubpar[0] = 0.;
  tubpar[1] = 55.;
  tubpar[2] = 945./2.;
  TVirtualMC::GetMC()->Gsvolu("YD2L", "TUBE", idtmed[7], tubpar, 3);
  
  TVirtualMC::GetMC()->Gspos("YD2L", 1, "ZDCA", 0., 0., tubpar[2]+zD2, 0, "ONLY");
  
  TVirtualMC::GetMC()->Gspos("MD2L", 1, "YD2L", -9.4, 0., 0., 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("MD2L", 2, "YD2L",  9.4, 0., 0., 0, "ONLY");
  
  // -- END OF MAGNET DEFINITION     
}
  
//_____________________________________________________________________________
void AliZDCv3::CreateZDC()
{
 //
 // Create the various ZDCs (ZN + ZP)
 //
  
  Float_t dimPb[6], dimVoid[6];
  
  Int_t *idtmed = fIdtmed->GetArray();

  // Parameters for hadronic calorimeters geometry
  // NB -> parameters used ONLY in CreateZDC()
  Float_t fGrvZN[3] = {0.03, 0.03, 50.};  // Grooves for neutron detector
  Float_t fGrvZP[3] = {0.04, 0.04, 75.};  // Grooves for proton detector
  Int_t   fDivZN[3] = {11, 11, 0};  	  // Division for neutron detector
  Int_t   fDivZP[3] = {7, 15, 0};  	  // Division for proton detector
  Int_t   fTowZN[2] = {2, 2};  		  // Tower for neutron detector
  Int_t   fTowZP[2] = {4, 1};  		  // Tower for proton detector

  // Parameters for EM calorimeter geometry
  // NB -> parameters used ONLY in CreateZDC()
  Float_t kDimZEMPb  = 0.15*(TMath::Sqrt(2.));  // z-dimension of the Pb slice
  Float_t kFibRadZEM = 0.0315; 			// External fiber radius (including cladding)
  Int_t   fDivZEM[3] = {92, 0, 20}; 		// Divisions for EM detector
  Float_t fDimZEM[6] = {fZEMLength, 3.5, 3.5, 45., 0., 0.}; // Dimensions of EM detector
  Float_t fFibZEM2 = fDimZEM[2]/TMath::Sin(fDimZEM[3]*kDegrad)-kFibRadZEM;
  Float_t fFibZEM[3] = {0., 0.0275, fFibZEM2};  // Fibers for EM calorimeter

  
  //-- Create calorimeters geometry
  
  // -------------------------------------------------------------------------------
  //--> Neutron calorimeter (ZN) 
  
  TVirtualMC::GetMC()->Gsvolu("ZNEU", "BOX ", idtmed[1], fDimZN, 3); // Passive material  
  TVirtualMC::GetMC()->Gsvolu("ZNF1", "TUBE", idtmed[3], fFibZN, 3); // Active material
  TVirtualMC::GetMC()->Gsvolu("ZNF2", "TUBE", idtmed[4], fFibZN, 3); 
  TVirtualMC::GetMC()->Gsvolu("ZNF3", "TUBE", idtmed[4], fFibZN, 3); 
  TVirtualMC::GetMC()->Gsvolu("ZNF4", "TUBE", idtmed[3], fFibZN, 3); 
  TVirtualMC::GetMC()->Gsvolu("ZNG1", "BOX ", idtmed[12], fGrvZN, 3); // Empty grooves 
  TVirtualMC::GetMC()->Gsvolu("ZNG2", "BOX ", idtmed[12], fGrvZN, 3); 
  TVirtualMC::GetMC()->Gsvolu("ZNG3", "BOX ", idtmed[12], fGrvZN, 3); 
  TVirtualMC::GetMC()->Gsvolu("ZNG4", "BOX ", idtmed[12], fGrvZN, 3); 
  
  // Divide ZNEU in towers (for hits purposes) 
  
  TVirtualMC::GetMC()->Gsdvn("ZNTX", "ZNEU", fTowZN[0], 1); // x-tower 
  TVirtualMC::GetMC()->Gsdvn("ZN1 ", "ZNTX", fTowZN[1], 2); // y-tower
  
  //-- Divide ZN1 in minitowers 
  //  fDivZN[0]= NUMBER OF FIBERS PER TOWER ALONG X-AXIS, 
  //  fDivZN[1]= NUMBER OF FIBERS PER TOWER ALONG Y-AXIS
  //  (4 fibres per minitower) 
  
  TVirtualMC::GetMC()->Gsdvn("ZNSL", "ZN1 ", fDivZN[1], 2); // Slices 
  TVirtualMC::GetMC()->Gsdvn("ZNST", "ZNSL", fDivZN[0], 1); // Sticks
  
  // --- Position the empty grooves in the sticks (4 grooves per stick)
  Float_t dx = fDimZN[0] / fDivZN[0] / 4.;
  Float_t dy = fDimZN[1] / fDivZN[1] / 4.;
  
  TVirtualMC::GetMC()->Gspos("ZNG1", 1, "ZNST", 0.-dx, 0.+dy, 0., 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("ZNG2", 1, "ZNST", 0.+dx, 0.+dy, 0., 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("ZNG3", 1, "ZNST", 0.-dx, 0.-dy, 0., 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("ZNG4", 1, "ZNST", 0.+dx, 0.-dy, 0., 0, "ONLY");
  
  // --- Position the fibers in the grooves 
  TVirtualMC::GetMC()->Gspos("ZNF1", 1, "ZNG1", 0., 0., 0., 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("ZNF2", 1, "ZNG2", 0., 0., 0., 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("ZNF3", 1, "ZNG3", 0., 0., 0., 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("ZNF4", 1, "ZNG4", 0., 0., 0., 0, "ONLY");
  
  // --- Position the neutron calorimeter in ZDC 
  // -- Rotation of ZDCs
  Int_t irotzdc;
  TVirtualMC::GetMC()->Matrix(irotzdc, 90., 180., 90., 90., 180., 0.);
  //
  TVirtualMC::GetMC()->Gspos("ZNEU", 1, "ZDCC", fPosZNC[0], fPosZNC[1], fPosZNC[2]-fDimZN[2], irotzdc, "ONLY");
  //Ch debug
  //printf("\n ZN -> %f < z < %f cm\n",fPosZN[2],fPosZN[2]-2*fDimZN[2]);

  // --- Position the neutron calorimeter in ZDC2 (left line) 
  // -- No Rotation of ZDCs
  TVirtualMC::GetMC()->Gspos("ZNEU", 2, "ZDCA", fPosZNA[0], fPosZNA[1], fPosZNA[2]+fDimZN[2], 0, "ONLY");
  //Ch debug
  //printf("\n ZN left -> %f < z < %f cm\n",fPosZNl[2],fPosZNl[2]+2*fDimZN[2]);


  // -------------------------------------------------------------------------------
  //--> Proton calorimeter (ZP)  
  
  TVirtualMC::GetMC()->Gsvolu("ZPRO", "BOX ", idtmed[2], fDimZP, 3); // Passive material
  TVirtualMC::GetMC()->Gsvolu("ZPF1", "TUBE", idtmed[3], fFibZP, 3); // Active material
  TVirtualMC::GetMC()->Gsvolu("ZPF2", "TUBE", idtmed[4], fFibZP, 3); 
  TVirtualMC::GetMC()->Gsvolu("ZPF3", "TUBE", idtmed[4], fFibZP, 3); 
  TVirtualMC::GetMC()->Gsvolu("ZPF4", "TUBE", idtmed[3], fFibZP, 3); 
  TVirtualMC::GetMC()->Gsvolu("ZPG1", "BOX ", idtmed[12], fGrvZP, 3); // Empty grooves 
  TVirtualMC::GetMC()->Gsvolu("ZPG2", "BOX ", idtmed[12], fGrvZP, 3); 
  TVirtualMC::GetMC()->Gsvolu("ZPG3", "BOX ", idtmed[12], fGrvZP, 3); 
  TVirtualMC::GetMC()->Gsvolu("ZPG4", "BOX ", idtmed[12], fGrvZP, 3); 
    
  //-- Divide ZPRO in towers(for hits purposes) 
  
  TVirtualMC::GetMC()->Gsdvn("ZPTX", "ZPRO", fTowZP[0], 1); // x-tower 
  TVirtualMC::GetMC()->Gsdvn("ZP1 ", "ZPTX", fTowZP[1], 2); // y-tower
  
  
  //-- Divide ZP1 in minitowers 
  //  fDivZP[0]= NUMBER OF FIBERS ALONG X-AXIS PER MINITOWER, 
  //  fDivZP[1]= NUMBER OF FIBERS ALONG Y-AXIS PER MINITOWER
  //  (4 fiber per minitower) 
  
  TVirtualMC::GetMC()->Gsdvn("ZPSL", "ZP1 ", fDivZP[1], 2); // Slices 
  TVirtualMC::GetMC()->Gsdvn("ZPST", "ZPSL", fDivZP[0], 1); // Sticks
  
  // --- Position the empty grooves in the sticks (4 grooves per stick)
  dx = fDimZP[0] / fTowZP[0] / fDivZP[0] / 2.;
  dy = fDimZP[1] / fTowZP[1] / fDivZP[1] / 2.;
  
  TVirtualMC::GetMC()->Gspos("ZPG1", 1, "ZPST", 0.-dx, 0.+dy, 0., 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("ZPG2", 1, "ZPST", 0.+dx, 0.+dy, 0., 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("ZPG3", 1, "ZPST", 0.-dx, 0.-dy, 0., 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("ZPG4", 1, "ZPST", 0.+dx, 0.-dy, 0., 0, "ONLY");
  
  // --- Position the fibers in the grooves 
  TVirtualMC::GetMC()->Gspos("ZPF1", 1, "ZPG1", 0., 0., 0., 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("ZPF2", 1, "ZPG2", 0., 0., 0., 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("ZPF3", 1, "ZPG3", 0., 0., 0., 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("ZPF4", 1, "ZPG4", 0., 0., 0., 0, "ONLY");
  

  // --- Position the proton calorimeter in ZDCC
  TVirtualMC::GetMC()->Gspos("ZPRO", 1, "ZDCC", fPosZPC[0], fPosZPC[1], fPosZPC[2]-fDimZP[2], irotzdc, "ONLY");
  //Ch debug
  //printf("\n ZP -> %f < z < %f cm\n",fPosZP[2],fPosZP[2]-2*fDimZP[2]);
  
  // --- Position the proton calorimeter in ZDCA
  // --- No rotation 
  TVirtualMC::GetMC()->Gspos("ZPRO", 2, "ZDCA", fPosZPA[0], fPosZPA[1], fPosZPA[2]+fDimZP[2], 0, "ONLY");
  //Ch debug
  //printf("\n ZP left -> %f < z < %f cm\n",fPosZPl[2],fPosZPl[2]+2*fDimZP[2]);  
    
  
  // -------------------------------------------------------------------------------
  // -> EM calorimeter (ZEM)  
  
  TVirtualMC::GetMC()->Gsvolu("ZEM ", "PARA", idtmed[10], fDimZEM, 6);

  Int_t irot1, irot2;
  TVirtualMC::GetMC()->Matrix(irot1,0.,0.,90.,90.,-90.,0.); 		       // Rotation matrix 1  
  TVirtualMC::GetMC()->Matrix(irot2,180.,0.,90.,fDimZEM[3]+90.,90.,fDimZEM[3]);// Rotation matrix 2
  //printf("irot1 = %d, irot2 = %d \n", irot1, irot2);
  
  TVirtualMC::GetMC()->Gsvolu("ZEMF", "TUBE", idtmed[3], fFibZEM, 3); 	// Active material

  TVirtualMC::GetMC()->Gsdvn("ZETR", "ZEM ", fDivZEM[2], 1); 	     	// Tranches 
  
  dimPb[0] = kDimZEMPb;					// Lead slices 
  dimPb[1] = fDimZEM[2];
  dimPb[2] = fDimZEM[1];
  //dimPb[3] = fDimZEM[3]; //controllare
  dimPb[3] = 90.-fDimZEM[3]; //originale
  dimPb[4] = 0.;
  dimPb[5] = 0.;
  TVirtualMC::GetMC()->Gsvolu("ZEL0", "PARA", idtmed[5], dimPb, 6);
  TVirtualMC::GetMC()->Gsvolu("ZEL1", "PARA", idtmed[5], dimPb, 6);
  TVirtualMC::GetMC()->Gsvolu("ZEL2", "PARA", idtmed[5], dimPb, 6);
  
  // --- Position the lead slices in the tranche 
  Float_t zTran = fDimZEM[0]/fDivZEM[2]; 
  Float_t zTrPb = -zTran+kDimZEMPb;
  TVirtualMC::GetMC()->Gspos("ZEL0", 1, "ZETR", zTrPb, 0., 0., 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("ZEL1", 1, "ZETR", kDimZEMPb, 0., 0., 0, "ONLY");
  
  // --- Vacuum zone (to be filled with fibres)
  dimVoid[0] = (zTran-2*kDimZEMPb)/2.;
  dimVoid[1] = fDimZEM[2];
  dimVoid[2] = fDimZEM[1];
  dimVoid[3] = 90.-fDimZEM[3];
  dimVoid[4] = 0.;
  dimVoid[5] = 0.;
  TVirtualMC::GetMC()->Gsvolu("ZEV0", "PARA", idtmed[10], dimVoid,6);
  TVirtualMC::GetMC()->Gsvolu("ZEV1", "PARA", idtmed[10], dimVoid,6);
  
  // --- Divide the vacuum slice into sticks along x axis
  TVirtualMC::GetMC()->Gsdvn("ZES0", "ZEV0", fDivZEM[0], 3); 
  TVirtualMC::GetMC()->Gsdvn("ZES1", "ZEV1", fDivZEM[0], 3); 
  
  // --- Positioning the fibers into the sticks
  TVirtualMC::GetMC()->Gspos("ZEMF", 1,"ZES0", 0., 0., 0., irot2, "ONLY");
  TVirtualMC::GetMC()->Gspos("ZEMF", 1,"ZES1", 0., 0., 0., irot2, "ONLY");
  
  // --- Positioning the vacuum slice into the tranche
  //Float_t displFib = fDimZEM[1]/fDivZEM[0];
  TVirtualMC::GetMC()->Gspos("ZEV0", 1,"ZETR", -dimVoid[0], 0., 0., 0, "ONLY");
  TVirtualMC::GetMC()->Gspos("ZEV1", 1,"ZETR", -dimVoid[0]+zTran, 0., 0., 0, "ONLY");

  // --- Positioning the ZEM into the ZDC - rotation for 90 degrees  
  // NB -> ZEM is positioned in ALIC (instead of in ZDC) volume
  TVirtualMC::GetMC()->Gspos("ZEM ", 1,"ALIC", -fPosZEM[0], fPosZEM[1], fPosZEM[2]+fDimZEM[0], irot1, "ONLY");
  
  // Second EM ZDC (same side w.r.t. IP, just on the other side w.r.t. beam pipe)
  TVirtualMC::GetMC()->Gspos("ZEM ", 2,"ALIC", fPosZEM[0], fPosZEM[1], fPosZEM[2]+fDimZEM[0], irot1, "ONLY");
  
  // --- Adding last slice at the end of the EM calorimeter 
  Float_t zLastSlice = fPosZEM[2]+kDimZEMPb+2*fDimZEM[0];
  TVirtualMC::GetMC()->Gspos("ZEL2", 1,"ALIC", fPosZEM[0], fPosZEM[1], zLastSlice, irot1, "ONLY");
  //Ch debug
  //printf("\n ZEM lenght = %f cm\n",2*fZEMLength);
  //printf("\n ZEM -> %f < z < %f cm\n",fPosZEM[2],fPosZEM[2]+2*fZEMLength+zLastSlice+kDimZEMPb);
  
}
 
//_____________________________________________________________________________
void AliZDCv3::CreateMaterials()
{
  //
  // Create Materials for the Zero Degree Calorimeter
  //
  Float_t dens, ubuf[1], wmat[3], a[3], z[3];

  // --- W alloy -> ZN passive material
  dens = 17.6;
  a[0] = 183.85;
  a[1] = 55.85;
  a[2] = 58.71;
  z[0] = 74.;
  z[1] = 26.;
  z[2] = 28.;
  wmat[0] = .93;
  wmat[1] = .03;
  wmat[2] = .04;
  AliMixture(1, "WALL", a, z, dens, 3, wmat);

  // --- Brass (CuZn)  -> ZP passive material
  dens = 8.48;
  a[0] = 63.546;
  a[1] = 65.39;
  z[0] = 29.;
  z[1] = 30.;
  wmat[0] = .63;
  wmat[1] = .37;
  AliMixture(2, "BRASS", a, z, dens, 2, wmat);
  
  // --- SiO2 
  dens = 2.64;
  a[0] = 28.086;
  a[1] = 15.9994;
  z[0] = 14.;
  z[1] = 8.;
  wmat[0] = 1.;
  wmat[1] = 2.;
  AliMixture(3, "SIO2", a, z, dens, -2, wmat);  
  
  // --- Lead 
  ubuf[0] = 1.12;
  AliMaterial(5, "LEAD", 207.19, 82., 11.35, .56, 0., ubuf, 1);

  // --- Copper (energy loss taken into account)
  ubuf[0] = 1.10;
  AliMaterial(6, "COPP0", 63.54, 29., 8.96, 1.4, 0., ubuf, 1);

  // --- Copper 
  ubuf[0] = 1.10;
  AliMaterial(9, "COPP1", 63.54, 29., 8.96, 1.4, 0., ubuf, 1);
  
  // --- Iron (energy loss taken into account)
  ubuf[0] = 1.1;
  AliMaterial(7, "IRON0", 55.85, 26., 7.87, 1.76, 0., ubuf, 1);
  
  // --- Iron (no energy loss)
  ubuf[0] = 1.1;
  AliMaterial(8, "IRON1", 55.85, 26., 7.87, 1.76, 0., ubuf, 1);
  
  // --- Tatalum 
  ubuf[0] = 1.1;
  AliMaterial(13, "TANT", 183.84, 74., 19.3, 0.35, 0., ubuf, 1);
    
  // ---------------------------------------------------------  
  Float_t aResGas[3]={1.008,12.0107,15.9994};
  Float_t zResGas[3]={1.,6.,8.};
  Float_t wResGas[3]={0.28,0.28,0.44};
  Float_t dResGas = 3.2E-14;

  // --- Vacuum (no magnetic field) 
  AliMixture(10, "VOID", aResGas, zResGas, dResGas, 3, wResGas);
  
  // --- Vacuum (with magnetic field) 
  AliMixture(11, "VOIM", aResGas, zResGas, dResGas, 3, wResGas);
  
  // --- Air (no magnetic field)
  Float_t aAir[4]={12.0107,14.0067,15.9994,39.948};
  Float_t zAir[4]={6.,7.,8.,18.};
  Float_t wAir[4]={0.000124,0.755267,0.231781,0.012827};
  Float_t dAir = 1.20479E-3;
  //
  AliMixture(12, "Air    $", aAir, zAir, dAir, 4, wAir);
  
  // ---  Definition of tracking media: 
  
  // --- Tantalum = 1 ; 
  // --- Brass = 2 ; 
  // --- Fibers (SiO2) = 3 ; 
  // --- Fibers (SiO2) = 4 ; 
  // --- Lead = 5 ; 
  // --- Copper (with high thr.)= 6 ;
  // --- Copper (with low thr.)=  9;
  // --- Iron (with energy loss) = 7 ; 
  // --- Iron (without energy loss) = 8 ; 
  // --- Vacuum (no field) = 10 
  // --- Vacuum (with field) = 11 
  // --- Air (no field) = 12 
  
  // **************************************************** 
  //     Tracking media parameters
  //
  Float_t epsil  = 0.01;   // Tracking precision, 
  Float_t stmin  = 0.01;   // Min. value 4 max. step (cm)
  Float_t stemax = 1.;     // Max. step permitted (cm) 
  Float_t tmaxfd = 0.;     // Maximum angle due to field (degrees) 
  Float_t tmaxfdv = 0.1;   // Maximum angle due to field (degrees) 
  Float_t deemax = -1.;    // Maximum fractional energy loss
  Float_t nofieldm = 0.;   // Max. field value (no field)
  Float_t fieldm = 45.;    // Max. field value (with field)
  Int_t isvol = 0;         // ISVOL =0 -> not sensitive volume
  Int_t isvolActive = 1;   // ISVOL =1 -> sensitive volume
  Int_t inofld = 0;        // IFIELD=0 -> no magnetic field
  Int_t ifield =2;         // IFIELD=2 -> magnetic field defined in AliMagFC.h
  // *****************************************************
  
  AliMedium(1, "ZWALL", 1, isvolActive, inofld, nofieldm, tmaxfd, stemax, deemax, epsil, stmin);
  AliMedium(2, "ZBRASS",2, isvolActive, inofld, nofieldm, tmaxfd, stemax, deemax, epsil, stmin);
  AliMedium(3, "ZSIO2", 3, isvolActive, inofld, nofieldm, tmaxfd, stemax, deemax, epsil, stmin);
  AliMedium(4, "ZQUAR", 3, isvolActive, inofld, nofieldm, tmaxfd, stemax, deemax, epsil, stmin);
  AliMedium(5, "ZLEAD", 5, isvolActive, inofld, nofieldm, tmaxfd, stemax, deemax, epsil, stmin);
  AliMedium(6, "ZCOPP", 6, isvol, inofld, nofieldm, tmaxfd, stemax, deemax, epsil, stmin);
  AliMedium(7, "ZIRON", 7, isvol, inofld, nofieldm, tmaxfd, stemax, deemax, epsil, stmin);
  AliMedium(8, "ZIRONN",8, isvol, inofld, nofieldm, tmaxfd, stemax, deemax, epsil, stmin);
  AliMedium(9, "ZCOPL", 6, isvol, inofld, nofieldm, tmaxfd, stemax, deemax, epsil, stmin);
  AliMedium(10,"ZVOID",10, isvol, inofld, nofieldm, tmaxfd, stemax, deemax, epsil, stmin);
  AliMedium(11,"ZVOIM",11, isvol, ifield, fieldm, tmaxfdv, stemax, deemax, epsil, stmin);
  AliMedium(12,"ZAIR", 12, isvolActive, inofld, nofieldm, tmaxfd, stemax, deemax, epsil, stmin);
  AliMedium(13,"ZTANT",13, isvolActive, inofld, nofieldm, tmaxfd, stemax, deemax, epsil, stmin);
  AliMedium(14, "ZIRONT", 7, isvol, inofld, nofieldm, tmaxfd, stemax, deemax, epsil, stmin);

} 

//_____________________________________________________________________________
void AliZDCv3::AddAlignableVolumes() const
{
 //
 // Create entries for alignable volumes associating the symbolic volume
 // name with the corresponding volume path. Needs to be syncronized with
 // eventual changes in the geometry.
 //
 TString volpath1 = "ALIC_1/ZDCC_1/ZNEU_1";
 TString volpath2 = "ALIC_1/ZDCC_1/ZPRO_1";
 TString volpath3 = "ALIC_1/ZDCA_1/ZNEU_2";
 TString volpath4 = "ALIC_1/ZDCA_1/ZPRO_2";

 TString symname1="ZDC/NeutronZDC_C";
 TString symname2="ZDC/ProtonZDC_C";
 TString symname3="ZDC/NeutronZDC_A";
 TString symname4="ZDC/ProtonZDC_A";

 if(!gGeoManager->SetAlignableEntry(symname1.Data(),volpath1.Data()))
     AliFatal(Form("Alignable entry %s not created. Volume path %s not valid",   symname1.Data(),volpath1.Data()));

 if(!gGeoManager->SetAlignableEntry(symname2.Data(),volpath2.Data()))
     AliFatal(Form("Alignable entry %s not created. Volume path %s not valid",   symname2.Data(),volpath2.Data()));

 if(!gGeoManager->SetAlignableEntry(symname3.Data(),volpath3.Data()))
     AliFatal(Form("Alignable entry %s not created. Volume path %s not valid",   symname1.Data(),volpath1.Data()));

 if(!gGeoManager->SetAlignableEntry(symname4.Data(),volpath4.Data()))
     AliFatal(Form("Alignable entry %s not created. Volume path %s not valid",   symname2.Data(),volpath2.Data()));

}


//_____________________________________________________________________________
void AliZDCv3::Init()
{
 InitTables();
  Int_t *idtmed = fIdtmed->GetArray();  
  //
  fMedSensZN     = idtmed[1];  // Sensitive volume: ZN passive material
  fMedSensZP     = idtmed[2];  // Sensitive volume: ZP passive material
  fMedSensF1     = idtmed[3];  // Sensitive volume: fibres type 1
  fMedSensF2     = idtmed[4];  // Sensitive volume: fibres type 2
  fMedSensZEM    = idtmed[5];  // Sensitive volume: ZEM passive material
  fMedSensTDI    = idtmed[6];  // Sensitive volume: TDI Cu shield
  fMedSensPI     = idtmed[7];  // Sensitive volume: beam pipes
  fMedSensLumi   = idtmed[9];  // Sensitive volume: luminometer
  fMedSensGR     = idtmed[12]; // Sensitive volume: air into the grooves
  fMedSensVColl  = idtmed[13]; // Sensitive volume: collimator jaws
}

//_____________________________________________________________________________
void AliZDCv3::InitTables()
{
 //
 // Read light tables for Cerenkov light production parameterization 
 //

  Int_t k, j;
  int read=1;

  //  --- Reading light tables for ZN 
  char *lightfName1 = gSystem->ExpandPathName("$ALICE_ROOT/ZDC/light22620362207s");
  FILE *fp1 = fopen(lightfName1,"r");
  if(fp1 == NULL){
     printf("Cannot open file fp1 \n");
     return;
  }
  else{
    for(k=0; k<fNalfan; k++){
      for(j=0; j<fNben; j++){
       read = fscanf(fp1,"%f",&fTablen[0][k][j]);
       if(read==0) AliDebug(3, " Error in reading light table 1");
      }
    }
    fclose(fp1);
  }
  char *lightfName2 = gSystem->ExpandPathName("$ALICE_ROOT/ZDC/light22620362208s");
  FILE *fp2 = fopen(lightfName2,"r");
  if(fp2 == NULL){
     printf("Cannot open file fp2 \n");
     return;
  }  
  else{
    for(k=0; k<fNalfan; k++){
      for(j=0; j<fNben; j++){
       read = fscanf(fp2,"%f",&fTablen[1][k][j]);
       if(read==0) AliDebug(3, " Error in reading light table 2");
      }
    }
    fclose(fp2);
  }
  char *lightfName3 = gSystem->ExpandPathName("$ALICE_ROOT/ZDC/light22620362209s");
  FILE *fp3 = fopen(lightfName3,"r");
  if(fp3 == NULL){
     printf("Cannot open file fp3 \n");
     return;
  }
  else{
    for(k=0; k<fNalfan; k++){
      for(j=0; j<fNben; j++){
       read = fscanf(fp3,"%f",&fTablen[2][k][j]);
       if(read==0) AliDebug(3, " Error in reading light table 3");
      }
    }
    fclose(fp3);
  }
  char *lightfName4 = gSystem->ExpandPathName("$ALICE_ROOT/ZDC/light22620362210s");
  FILE *fp4 = fopen(lightfName4,"r");
  if(fp4 == NULL){
     printf("Cannot open file fp4 \n");
     return;
  }
  else{
    for(k=0; k<fNalfan; k++){
      for(j=0; j<fNben; j++){
       read = fscanf(fp4,"%f",&fTablen[3][k][j]);
       if(read==0) AliDebug(3, " Error in reading light table 4");
      }
    }
    fclose(fp4);
  }
    
  //  --- Reading light tables for ZP and ZEM
  char *lightfName5 = gSystem->ExpandPathName("$ALICE_ROOT/ZDC/light22620552207s");
  FILE *fp5 = fopen(lightfName5,"r");
  if(fp5 == NULL){
     printf("Cannot open file fp5 \n");
     return;
  }
  else{
    for(k=0; k<fNalfap; k++){
      for(j=0; j<fNbep; j++){
       read = fscanf(fp5,"%f",&fTablep[0][k][j]);
       if(read==0) AliDebug(3, " Error in reading light table 5");
      }
    }
    fclose(fp5);
  }
  char *lightfName6 = gSystem->ExpandPathName("$ALICE_ROOT/ZDC/light22620552208s");
  FILE *fp6 = fopen(lightfName6,"r");
  if(fp6 == NULL){
     printf("Cannot open file fp6 \n");
     return;
  }
  else{
    for(k=0; k<fNalfap; k++){
      for(j=0; j<fNbep; j++){
       read = fscanf(fp6,"%f",&fTablep[1][k][j]);
       if(read==0) AliDebug(3, " Error in reading light table 6");
      }
    }
    fclose(fp6);
  }
  char *lightfName7 = gSystem->ExpandPathName("$ALICE_ROOT/ZDC/light22620552209s");
  FILE *fp7 = fopen(lightfName7,"r");
  if(fp7 == NULL){
     printf("Cannot open file fp7 \n");
     return;
  }
  else{
    for(k=0; k<fNalfap; k++){
      for(j=0; j<fNbep; j++){
       read = fscanf(fp7,"%f",&fTablep[2][k][j]);
       if(read==0) AliDebug(3, " Error in reading light table 7");
      }
    }
   fclose(fp7);
  }
  char *lightfName8 = gSystem->ExpandPathName("$ALICE_ROOT/ZDC/light22620552210s");
  FILE *fp8 = fopen(lightfName8,"r");
  if(fp8 == NULL){
     printf("Cannot open file fp8 \n");
     return;
  }
  else{
    for(k=0; k<fNalfap; k++){
      for(j=0; j<fNbep; j++){
       read = fscanf(fp8,"%f",&fTablep[3][k][j]);
       if(read==0) AliDebug(3, " Error in reading light table 8");
      }
    }
   fclose(fp8);
  }

}
//_____________________________________________________________________________
void AliZDCv3::StepManager()
{
  //
  // Routine called at every step in the Zero Degree Calorimeters
  //
  Int_t   j, vol[2]={0,0}, ibeta=0, ialfa=0, ibe=0, nphe=0;
  Float_t hits[14], x[3], xdet[3]={999.,999.,999.}, um[3], ud[3];
  Float_t destep=0., be=0., out=0.;
  Double_t s[3], p[4];
  const char *knamed;
  //
  for(j=0;j<14;j++) hits[j]=-999.;
  //
  // --- This part is for no shower developement in beam pipe, TDI, VColl
  // If particle interacts with beam pipe, TDI, VColl -> return
  if(fNoShower==1 && ((TVirtualMC::GetMC()->CurrentMedium() == fMedSensPI) || (TVirtualMC::GetMC()->CurrentMedium() == fMedSensTDI) ||  
     (TVirtualMC::GetMC()->CurrentMedium() == fMedSensVColl || (TVirtualMC::GetMC()->CurrentMedium() == fMedSensLumi)))){ 
    
    // If option NoShower is set -> StopTrack

    Int_t ipr = 0; 
      TVirtualMC::GetMC()->TrackPosition(s[0],s[1],s[2]);
      if(TVirtualMC::GetMC()->CurrentMedium() == fMedSensPI){
        knamed = TVirtualMC::GetMC()->CurrentVolName();
        if(!strncmp(knamed,"YMQ",3)){
	  if(s[2]<0) fpLostITC += 1;
	  else fpLostITA += 1;
	  ipr=1;
        }
	else if(!strncmp(knamed,"YD1",3)){
	  if(s[2]<0) fpLostD1C += 1;
	  else fpLostD1A += 1;
	  ipr=1;
	}
      }
      else if(TVirtualMC::GetMC()->CurrentMedium() == fMedSensTDI){ 
        knamed = TVirtualMC::GetMC()->CurrentVolName();
        if(!strncmp(knamed,"MD1",3)){
	  if(s[2]<0) fpLostD1C += 1;
	  else  fpLostD1A += 1;
	  ipr=1;
        }
	else if(!strncmp(knamed,"QTD",3)) fpLostTDI += 1;
      }
      else if(TVirtualMC::GetMC()->CurrentMedium() == fMedSensVColl){ 
        knamed = TVirtualMC::GetMC()->CurrentVolName();
        if(!strncmp(knamed,"QCVC",4)) fpcVCollC++;
 	else if(!strncmp(knamed,"QCVA",4))  fpcVCollA++;
	ipr=1;
      }
      //
      //TVirtualMC::GetMC()->TrackMomentum(p[0], p[1], p[2], p[3]);
      //printf("\t Particle: mass = %1.3f, E = %1.3f GeV, pz = %1.2f GeV -> stopped in volume %s\n", 
      //     TVirtualMC::GetMC()->TrackMass(), p[3], p[2], TVirtualMC::GetMC()->CurrentVolName());
      //
      if(ipr!=0){
        printf("\n\t **********************************\n");
        printf("\t ********** Side C **********\n");
        printf("\t # of particles in IT = %d\n",fpLostITC);
        printf("\t # of particles in D1 = %d\n",fpLostD1C);
        printf("\t # of particles in VColl = %d\n",fpcVCollC);
        printf("\t ********** Side A **********\n");
        printf("\t # of particles in IT = %d\n",fpLostITA);
        printf("\t # of particles in D1 = %d\n",fpLostD1A);
        printf("\t # of particles in TDI = %d\n",fpLostTDI);
        printf("\t # of particles in VColl = %d\n",fpcVCollA);
        printf("\t **********************************\n");
      }
      TVirtualMC::GetMC()->StopTrack();
      return;
  }
  
  if((TVirtualMC::GetMC()->CurrentMedium() == fMedSensZN) || (TVirtualMC::GetMC()->CurrentMedium() == fMedSensZP) ||
     (TVirtualMC::GetMC()->CurrentMedium() == fMedSensGR) || (TVirtualMC::GetMC()->CurrentMedium() == fMedSensF1) ||
     (TVirtualMC::GetMC()->CurrentMedium() == fMedSensF2) || (TVirtualMC::GetMC()->CurrentMedium() == fMedSensZEM)){

    
  //Particle coordinates 
    TVirtualMC::GetMC()->TrackPosition(s[0],s[1],s[2]);
    for(j=0; j<=2; j++) x[j] = s[j];
    hits[0] = x[0];
    hits[1] = x[1];
    hits[2] = x[2];

  // Determine in which ZDC the particle is
    knamed = TVirtualMC::GetMC()->CurrentVolName();
    if(!strncmp(knamed,"ZN",2)){
          if(x[2]<0.) vol[0]=1; // ZNC (dimuon side)
	  else if(x[2]>0.) vol[0]=4; //ZNA
    }
    else if(!strncmp(knamed,"ZP",2)){ 
          if(x[2]<0.) vol[0]=2; //ZPC (dimuon side)
	  else if(x[2]>0.) vol[0]=5; //ZPA  
    }
    else if(!strncmp(knamed,"ZE",2)) vol[0]=3; //ZEM
  
  // Determine in which quadrant the particle is
    if(vol[0]==1){	//Quadrant in ZNC
      // Calculating particle coordinates inside ZNC
      xdet[0] = x[0]-fPosZNC[0];
      xdet[1] = x[1]-fPosZNC[1];
      // Calculating quadrant in ZN
      if(xdet[0]<=0.){
        if(xdet[1]<=0.) vol[1]=1;
	else vol[1]=3;
      }
      else if(xdet[0]>0.){
        if(xdet[1]<=0.) vol[1]=2;
        else vol[1]=4;
      }
    }
    
    else if(vol[0]==2){	//Quadrant in ZPC
      // Calculating particle coordinates inside ZPC
      xdet[0] = x[0]-fPosZPC[0];
      xdet[1] = x[1]-fPosZPC[1];
      if(xdet[0]>=fDimZP[0])  xdet[0]=fDimZP[0]-0.01;
      if(xdet[0]<=-fDimZP[0]) xdet[0]=-fDimZP[0]+0.01;
      // Calculating tower in ZP
      Float_t xqZP = xdet[0]/(fDimZP[0]/2.);
      for(int i=1; i<=4; i++){
         if(xqZP>=(i-3) && xqZP<(i-2)){
 	   vol[1] = i;
 	   break;
 	 }
      }
    }
    //
    // Quadrant in ZEM: vol[1] = 1 -> particle in 1st ZEM (placed at x = 8.5 cm)
    // 		 	vol[1] = 2 -> particle in 2nd ZEM (placed at x = -8.5 cm)
    else if(vol[0] == 3){	
      if(x[0]>0.){
        vol[1] = 1;
        // Particle x-coordinate inside ZEM1
        xdet[0] = x[0]-fPosZEM[0];
      }
      else{
   	vol[1] = 2;
        // Particle x-coordinate inside ZEM2
        xdet[0] = x[0]+fPosZEM[0];
      }
      xdet[1] = x[1]-fPosZEM[1];
    }
    //
    else if(vol[0]==4){	//Quadrant in ZNA
      // Calculating particle coordinates inside ZNA
      xdet[0] = x[0]-fPosZNA[0];
      xdet[1] = x[1]-fPosZNA[1];
      // Calculating quadrant in ZNA
      if(xdet[0]>=0.){
        if(xdet[1]<=0.) vol[1]=1;
	else vol[1]=3;
      }
      else if(xdet[0]<0.){
        if(xdet[1]<=0.) vol[1]=2;
        else vol[1]=4;
      }
    }    
    //
    else if(vol[0]==5){	//Quadrant in ZPA
      // Calculating particle coordinates inside ZPA
      xdet[0] = x[0]-fPosZPA[0];
      xdet[1] = x[1]-fPosZPA[1];
      if(xdet[0]>=fDimZP[0])  xdet[0]=fDimZP[0]-0.01;
      if(xdet[0]<=-fDimZP[0]) xdet[0]=-fDimZP[0]+0.01;
      // Calculating tower in ZP
      Float_t xqZP = -xdet[0]/(fDimZP[0]/2.);
      for(int i=1; i<=4; i++){
         if(xqZP>=(i-3) && xqZP<(i-2)){
 	   vol[1] = i;
 	   break;
 	 }
      }
    }    
    if((vol[1]!=1) && (vol[1]!=2) && (vol[1]!=3) && (vol[1]!=4))
      AliError(Form(" WRONG tower for det %d: tow %d with xdet=(%f, %f)\n",
		vol[0], vol[1], xdet[0], xdet[1]));
    // Ch. debug
    //printf("\t *** det %d vol %d xdet(%f, %f)\n",vol[0], vol[1], xdet[0], xdet[1]);
    
    
    // Store impact point and kinetic energy of the ENTERING particle
    
    if(TVirtualMC::GetMC()->IsTrackEntering()){
      //Particle energy
      TVirtualMC::GetMC()->TrackMomentum(p[0],p[1],p[2],p[3]);
      hits[3] = p[3];
      
      // Impact point on ZDC
      // X takes into account the LHC x-axis sign
      // which is opposite to positive x on detector front face
      // for side A detectors (ZNA and ZPA)  
      if(vol[0]==4 || vol[0]==5){
        hits[4] = -xdet[0];
      }
      else{
        hits[4] = xdet[0];
      }
      hits[5] = xdet[1];
      hits[6] = 0;
      hits[7] = 0;
      hits[8] = 0;
      hits[9] = 0;
      //
      Int_t curTrackN = gAlice->GetMCApp()->GetCurrentTrackNumber();
      TParticle *part = gAlice->GetMCApp()->Particle(curTrackN);
      hits[10] = part->GetPdgCode();
      //printf("\t PDGCode = %d\n", part->GetPdgCode());
      //
      Int_t imo = part->GetFirstMother();
      if(imo>0){
    	TParticle * pmot = gAlice->GetMCApp()->Particle(imo);
    	hits[11] = pmot->GetPdgCode();
      }
      else hits[11]=0;
      //
      hits[12] = 1.0e09*TVirtualMC::GetMC()->TrackTime(); // in ns!
      //printf("\t TrackTime = %f\n", hits[12]);
      hits[13] = part->Eta();

      AddHit(curTrackN, vol, hits);

      if(fNoShower==1){
        if(vol[0]==1){
          fnDetectedC += 1;
          if(fnDetectedC==1) printf("	### Particle in ZNC\n\n");
        }
        else if(vol[0]==2){
          fpDetectedC += 1;
          if(fpDetectedC==1) printf("	### Particle in ZPC\n\n");
        }
        else if(vol[0]==4){
          fnDetectedA += 1;
          if(fnDetectedA==1) printf("	### Particle in ZNA\n\n");	  
        }
        else if(vol[0]==5){
          fpDetectedA += 1;
          if(fpDetectedA==1) printf("	### Particle in ZPA\n\n"); 	 
        }
    	//
        //printf("\t Pc: x %1.2f y %1.2f z %1.2f  E %1.2f GeV pz = %1.2f GeV in volume %s\n", 
        //   x[0],x[1],x[3],p[3],p[2],TVirtualMC::GetMC()->CurrentVolName());
        //
        TVirtualMC::GetMC()->StopTrack();
        return;
      }
    }
    	   
    // Particle energy loss
    if(TVirtualMC::GetMC()->Edep() != 0){
      hits[9] = TVirtualMC::GetMC()->Edep();
      hits[7] = 0.;
      hits[8] = 0.;
      AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(), vol, hits);
    }
  }
 

  // *** Light production in fibres 
  if((TVirtualMC::GetMC()->CurrentMedium() == fMedSensF1) || (TVirtualMC::GetMC()->CurrentMedium() == fMedSensF2)){

     //Select charged particles
     if((destep=TVirtualMC::GetMC()->Edep())){

       // Particle velocity
       Float_t beta = 0.;
       TVirtualMC::GetMC()->TrackMomentum(p[0],p[1],p[2],p[3]);
       Float_t ptot=TMath::Sqrt(p[0]*p[0]+p[1]*p[1]+p[2]*p[2]);
       if(p[3] > 0.00001) beta =  ptot/p[3];
       else return;
       if(beta<0.67)return;
       else if((beta>=0.67) && (beta<=0.75)) ibeta = 0;
       else if((beta>0.75)  && (beta<=0.85)) ibeta = 1;
       else if((beta>0.85)  && (beta<=0.95)) ibeta = 2;
       else if(beta>0.95) ibeta = 3;
 
       // Angle between particle trajectory and fibre axis
       // 1 -> Momentum directions
       um[0] = p[0]/ptot;
       um[1] = p[1]/ptot;
       um[2] = p[2]/ptot;
       TVirtualMC::GetMC()->Gmtod(um,ud,2);
       // 2 -> Angle < limit angle
       Double_t alfar = TMath::ACos(ud[2]);
       Double_t alfa = alfar*kRaddeg;
       if(alfa>=110.) return;
       //
       ialfa = Int_t(1.+alfa/2.);
 
       // Distance between particle trajectory and fibre axis
       TVirtualMC::GetMC()->TrackPosition(s[0],s[1],s[2]);
       for(j=0; j<=2; j++){
   	  x[j] = s[j];
       }
       TVirtualMC::GetMC()->Gmtod(x,xdet,1);
       if(TMath::Abs(ud[0])>0.00001){
         Float_t dcoeff = ud[1]/ud[0];
         be = TMath::Abs((xdet[1]-dcoeff*xdet[0])/TMath::Sqrt(dcoeff*dcoeff+1.));
       }
       else{
         be = TMath::Abs(ud[0]);
       }
 
       ibe = Int_t(be*1000.+1);
  
       //Looking into the light tables 
       Float_t charge = TVirtualMC::GetMC()->TrackCharge();
       
       if(vol[0]==1 || vol[0]==4) {	// (1)  ZN fibres
         if(ibe>fNben) ibe=fNben;
         out =  charge*charge*fTablen[ibeta][ialfa][ibe];
	 nphe = gRandom->Poisson(out);
	 // Ch. debug
         //if(ibeta==3) printf("\t %f \t %f \t %f\n",alfa, be, out);
	 //printf("\t ibeta = %d, ialfa = %d, ibe = %d -> nphe = %d\n\n",ibeta,ialfa,ibe,nphe);
	 if(TVirtualMC::GetMC()->CurrentMedium() == fMedSensF1){
	   hits[7] = nphe;  	//fLightPMQ
	   hits[8] = 0;
	   hits[9] = 0;
	   AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(), vol, hits);
	 }
	 else{
	   hits[7] = 0;
	   hits[8] = nphe;	//fLightPMC
	   hits[9] = 0;
	   AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(), vol, hits);
	 }
       } 
       else if(vol[0]==2 || vol[0]==5) {// (2) ZP fibres
         if(ibe>fNbep) ibe=fNbep;
         out =  charge*charge*fTablep[ibeta][ialfa][ibe];
	 nphe = gRandom->Poisson(out);
	 if(TVirtualMC::GetMC()->CurrentMedium() == fMedSensF1){
	   hits[7] = nphe;  	//fLightPMQ
	   hits[8] = 0;
	   hits[9] = 0;
	   AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(), vol, hits);
	 }
	 else{
	   hits[7] = 0;
	   hits[8] = nphe;	//fLightPMC
	   hits[9] = 0;
	   AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(), vol, hits);
	 }
       } 
       else if(vol[0]==3) {	// (3) ZEM fibres
         if(ibe>fNbep) ibe=fNbep;
         out =  charge*charge*fTablep[ibeta][ialfa][ibe];
	 TVirtualMC::GetMC()->TrackPosition(s[0],s[1],s[2]);
	 Float_t xalic[3];
         for(j=0; j<3; j++){
            xalic[j] = s[j];
         }
	 // z-coordinate from ZEM front face 
	 // NB-> fPosZEM[2]+fZEMLength = -1000.+2*10.3 = 979.69 cm
	 Float_t z = -xalic[2]+fPosZEM[2]+2*fZEMLength-xalic[1];
	 //z = xalic[2]-fPosZEM[2]-fZEMLength-xalic[1]*(TMath::Tan(45.*kDegrad));
         //printf("	fPosZEM[2]+2*fZEMLength = %f", fPosZEM[2]+2*fZEMLength);
         //
	 // Parametrization for light guide uniformity
         // NEW!!! Light guide tilted @ 51 degrees
         Float_t guiPar[4]={0.31,-0.0006305,0.01337,0.8895};
	 Float_t guiEff = guiPar[0]*(guiPar[1]*z*z+guiPar[2]*z+guiPar[3]);
	 out = out*guiEff;
	 nphe = gRandom->Poisson(out);
         //printf("	out*guiEff = %f	nphe = %d", out, nphe);
	 if(vol[1] == 1){
	   hits[7] = 0;  	
	   hits[8] = nphe;	//fLightPMC (ZEM1)
	   hits[9] = 0;
	   AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(), vol, hits);
	 }
	 else{
	   hits[7] = nphe;  	//fLightPMQ (ZEM2)
	   hits[8] = 0;		
	   hits[9] = 0;
	   AddHit(gAlice->GetMCApp()->GetCurrentTrackNumber(), vol, hits);
	 }
       }
     }
   }
}
 AliZDCv3.cxx:1
 AliZDCv3.cxx:2
 AliZDCv3.cxx:3
 AliZDCv3.cxx:4
 AliZDCv3.cxx:5
 AliZDCv3.cxx:6
 AliZDCv3.cxx:7
 AliZDCv3.cxx:8
 AliZDCv3.cxx:9
 AliZDCv3.cxx:10
 AliZDCv3.cxx:11
 AliZDCv3.cxx:12
 AliZDCv3.cxx:13
 AliZDCv3.cxx:14
 AliZDCv3.cxx:15
 AliZDCv3.cxx:16
 AliZDCv3.cxx:17
 AliZDCv3.cxx:18
 AliZDCv3.cxx:19
 AliZDCv3.cxx:20
 AliZDCv3.cxx:21
 AliZDCv3.cxx:22
 AliZDCv3.cxx:23
 AliZDCv3.cxx:24
 AliZDCv3.cxx:25
 AliZDCv3.cxx:26
 AliZDCv3.cxx:27
 AliZDCv3.cxx:28
 AliZDCv3.cxx:29
 AliZDCv3.cxx:30
 AliZDCv3.cxx:31
 AliZDCv3.cxx:32
 AliZDCv3.cxx:33
 AliZDCv3.cxx:34
 AliZDCv3.cxx:35
 AliZDCv3.cxx:36
 AliZDCv3.cxx:37
 AliZDCv3.cxx:38
 AliZDCv3.cxx:39
 AliZDCv3.cxx:40
 AliZDCv3.cxx:41
 AliZDCv3.cxx:42
 AliZDCv3.cxx:43
 AliZDCv3.cxx:44
 AliZDCv3.cxx:45
 AliZDCv3.cxx:46
 AliZDCv3.cxx:47
 AliZDCv3.cxx:48
 AliZDCv3.cxx:49
 AliZDCv3.cxx:50
 AliZDCv3.cxx:51
 AliZDCv3.cxx:52
 AliZDCv3.cxx:53
 AliZDCv3.cxx:54
 AliZDCv3.cxx:55
 AliZDCv3.cxx:56
 AliZDCv3.cxx:57
 AliZDCv3.cxx:58
 AliZDCv3.cxx:59
 AliZDCv3.cxx:60
 AliZDCv3.cxx:61
 AliZDCv3.cxx:62
 AliZDCv3.cxx:63
 AliZDCv3.cxx:64
 AliZDCv3.cxx:65
 AliZDCv3.cxx:66
 AliZDCv3.cxx:67
 AliZDCv3.cxx:68
 AliZDCv3.cxx:69
 AliZDCv3.cxx:70
 AliZDCv3.cxx:71
 AliZDCv3.cxx:72
 AliZDCv3.cxx:73
 AliZDCv3.cxx:74
 AliZDCv3.cxx:75
 AliZDCv3.cxx:76
 AliZDCv3.cxx:77
 AliZDCv3.cxx:78
 AliZDCv3.cxx:79
 AliZDCv3.cxx:80
 AliZDCv3.cxx:81
 AliZDCv3.cxx:82
 AliZDCv3.cxx:83
 AliZDCv3.cxx:84
 AliZDCv3.cxx:85
 AliZDCv3.cxx:86
 AliZDCv3.cxx:87
 AliZDCv3.cxx:88
 AliZDCv3.cxx:89
 AliZDCv3.cxx:90
 AliZDCv3.cxx:91
 AliZDCv3.cxx:92
 AliZDCv3.cxx:93
 AliZDCv3.cxx:94
 AliZDCv3.cxx:95
 AliZDCv3.cxx:96
 AliZDCv3.cxx:97
 AliZDCv3.cxx:98
 AliZDCv3.cxx:99
 AliZDCv3.cxx:100
 AliZDCv3.cxx:101
 AliZDCv3.cxx:102
 AliZDCv3.cxx:103
 AliZDCv3.cxx:104
 AliZDCv3.cxx:105
 AliZDCv3.cxx:106
 AliZDCv3.cxx:107
 AliZDCv3.cxx:108
 AliZDCv3.cxx:109
 AliZDCv3.cxx:110
 AliZDCv3.cxx:111
 AliZDCv3.cxx:112
 AliZDCv3.cxx:113
 AliZDCv3.cxx:114
 AliZDCv3.cxx:115
 AliZDCv3.cxx:116
 AliZDCv3.cxx:117
 AliZDCv3.cxx:118
 AliZDCv3.cxx:119
 AliZDCv3.cxx:120
 AliZDCv3.cxx:121
 AliZDCv3.cxx:122
 AliZDCv3.cxx:123
 AliZDCv3.cxx:124
 AliZDCv3.cxx:125
 AliZDCv3.cxx:126
 AliZDCv3.cxx:127
 AliZDCv3.cxx:128
 AliZDCv3.cxx:129
 AliZDCv3.cxx:130
 AliZDCv3.cxx:131
 AliZDCv3.cxx:132
 AliZDCv3.cxx:133
 AliZDCv3.cxx:134
 AliZDCv3.cxx:135
 AliZDCv3.cxx:136
 AliZDCv3.cxx:137
 AliZDCv3.cxx:138
 AliZDCv3.cxx:139
 AliZDCv3.cxx:140
 AliZDCv3.cxx:141
 AliZDCv3.cxx:142
 AliZDCv3.cxx:143
 AliZDCv3.cxx:144
 AliZDCv3.cxx:145
 AliZDCv3.cxx:146
 AliZDCv3.cxx:147
 AliZDCv3.cxx:148
 AliZDCv3.cxx:149
 AliZDCv3.cxx:150
 AliZDCv3.cxx:151
 AliZDCv3.cxx:152
 AliZDCv3.cxx:153
 AliZDCv3.cxx:154
 AliZDCv3.cxx:155
 AliZDCv3.cxx:156
 AliZDCv3.cxx:157
 AliZDCv3.cxx:158
 AliZDCv3.cxx:159
 AliZDCv3.cxx:160
 AliZDCv3.cxx:161
 AliZDCv3.cxx:162
 AliZDCv3.cxx:163
 AliZDCv3.cxx:164
 AliZDCv3.cxx:165
 AliZDCv3.cxx:166
 AliZDCv3.cxx:167
 AliZDCv3.cxx:168
 AliZDCv3.cxx:169
 AliZDCv3.cxx:170
 AliZDCv3.cxx:171
 AliZDCv3.cxx:172
 AliZDCv3.cxx:173
 AliZDCv3.cxx:174
 AliZDCv3.cxx:175
 AliZDCv3.cxx:176
 AliZDCv3.cxx:177
 AliZDCv3.cxx:178
 AliZDCv3.cxx:179
 AliZDCv3.cxx:180
 AliZDCv3.cxx:181
 AliZDCv3.cxx:182
 AliZDCv3.cxx:183
 AliZDCv3.cxx:184
 AliZDCv3.cxx:185
 AliZDCv3.cxx:186
 AliZDCv3.cxx:187
 AliZDCv3.cxx:188
 AliZDCv3.cxx:189
 AliZDCv3.cxx:190
 AliZDCv3.cxx:191
 AliZDCv3.cxx:192
 AliZDCv3.cxx:193
 AliZDCv3.cxx:194
 AliZDCv3.cxx:195
 AliZDCv3.cxx:196
 AliZDCv3.cxx:197
 AliZDCv3.cxx:198
 AliZDCv3.cxx:199
 AliZDCv3.cxx:200
 AliZDCv3.cxx:201
 AliZDCv3.cxx:202
 AliZDCv3.cxx:203
 AliZDCv3.cxx:204
 AliZDCv3.cxx:205
 AliZDCv3.cxx:206
 AliZDCv3.cxx:207
 AliZDCv3.cxx:208
 AliZDCv3.cxx:209
 AliZDCv3.cxx:210
 AliZDCv3.cxx:211
 AliZDCv3.cxx:212
 AliZDCv3.cxx:213
 AliZDCv3.cxx:214
 AliZDCv3.cxx:215
 AliZDCv3.cxx:216
 AliZDCv3.cxx:217
 AliZDCv3.cxx:218
 AliZDCv3.cxx:219
 AliZDCv3.cxx:220
 AliZDCv3.cxx:221
 AliZDCv3.cxx:222
 AliZDCv3.cxx:223
 AliZDCv3.cxx:224
 AliZDCv3.cxx:225
 AliZDCv3.cxx:226
 AliZDCv3.cxx:227
 AliZDCv3.cxx:228
 AliZDCv3.cxx:229
 AliZDCv3.cxx:230
 AliZDCv3.cxx:231
 AliZDCv3.cxx:232
 AliZDCv3.cxx:233
 AliZDCv3.cxx:234
 AliZDCv3.cxx:235
 AliZDCv3.cxx:236
 AliZDCv3.cxx:237
 AliZDCv3.cxx:238
 AliZDCv3.cxx:239
 AliZDCv3.cxx:240
 AliZDCv3.cxx:241
 AliZDCv3.cxx:242
 AliZDCv3.cxx:243
 AliZDCv3.cxx:244
 AliZDCv3.cxx:245
 AliZDCv3.cxx:246
 AliZDCv3.cxx:247
 AliZDCv3.cxx:248
 AliZDCv3.cxx:249
 AliZDCv3.cxx:250
 AliZDCv3.cxx:251
 AliZDCv3.cxx:252
 AliZDCv3.cxx:253
 AliZDCv3.cxx:254
 AliZDCv3.cxx:255
 AliZDCv3.cxx:256
 AliZDCv3.cxx:257
 AliZDCv3.cxx:258
 AliZDCv3.cxx:259
 AliZDCv3.cxx:260
 AliZDCv3.cxx:261
 AliZDCv3.cxx:262
 AliZDCv3.cxx:263
 AliZDCv3.cxx:264
 AliZDCv3.cxx:265
 AliZDCv3.cxx:266
 AliZDCv3.cxx:267
 AliZDCv3.cxx:268
 AliZDCv3.cxx:269
 AliZDCv3.cxx:270
 AliZDCv3.cxx:271
 AliZDCv3.cxx:272
 AliZDCv3.cxx:273
 AliZDCv3.cxx:274
 AliZDCv3.cxx:275
 AliZDCv3.cxx:276
 AliZDCv3.cxx:277
 AliZDCv3.cxx:278
 AliZDCv3.cxx:279
 AliZDCv3.cxx:280
 AliZDCv3.cxx:281
 AliZDCv3.cxx:282
 AliZDCv3.cxx:283
 AliZDCv3.cxx:284
 AliZDCv3.cxx:285
 AliZDCv3.cxx:286
 AliZDCv3.cxx:287
 AliZDCv3.cxx:288
 AliZDCv3.cxx:289
 AliZDCv3.cxx:290
 AliZDCv3.cxx:291
 AliZDCv3.cxx:292
 AliZDCv3.cxx:293
 AliZDCv3.cxx:294
 AliZDCv3.cxx:295
 AliZDCv3.cxx:296
 AliZDCv3.cxx:297
 AliZDCv3.cxx:298
 AliZDCv3.cxx:299
 AliZDCv3.cxx:300
 AliZDCv3.cxx:301
 AliZDCv3.cxx:302
 AliZDCv3.cxx:303
 AliZDCv3.cxx:304
 AliZDCv3.cxx:305
 AliZDCv3.cxx:306
 AliZDCv3.cxx:307
 AliZDCv3.cxx:308
 AliZDCv3.cxx:309
 AliZDCv3.cxx:310
 AliZDCv3.cxx:311
 AliZDCv3.cxx:312
 AliZDCv3.cxx:313
 AliZDCv3.cxx:314
 AliZDCv3.cxx:315
 AliZDCv3.cxx:316
 AliZDCv3.cxx:317
 AliZDCv3.cxx:318
 AliZDCv3.cxx:319
 AliZDCv3.cxx:320
 AliZDCv3.cxx:321
 AliZDCv3.cxx:322
 AliZDCv3.cxx:323
 AliZDCv3.cxx:324
 AliZDCv3.cxx:325
 AliZDCv3.cxx:326
 AliZDCv3.cxx:327
 AliZDCv3.cxx:328
 AliZDCv3.cxx:329
 AliZDCv3.cxx:330
 AliZDCv3.cxx:331
 AliZDCv3.cxx:332
 AliZDCv3.cxx:333
 AliZDCv3.cxx:334
 AliZDCv3.cxx:335
 AliZDCv3.cxx:336
 AliZDCv3.cxx:337
 AliZDCv3.cxx:338
 AliZDCv3.cxx:339
 AliZDCv3.cxx:340
 AliZDCv3.cxx:341
 AliZDCv3.cxx:342
 AliZDCv3.cxx:343
 AliZDCv3.cxx:344
 AliZDCv3.cxx:345
 AliZDCv3.cxx:346
 AliZDCv3.cxx:347
 AliZDCv3.cxx:348
 AliZDCv3.cxx:349
 AliZDCv3.cxx:350
 AliZDCv3.cxx:351
 AliZDCv3.cxx:352
 AliZDCv3.cxx:353
 AliZDCv3.cxx:354
 AliZDCv3.cxx:355
 AliZDCv3.cxx:356
 AliZDCv3.cxx:357
 AliZDCv3.cxx:358
 AliZDCv3.cxx:359
 AliZDCv3.cxx:360
 AliZDCv3.cxx:361
 AliZDCv3.cxx:362
 AliZDCv3.cxx:363
 AliZDCv3.cxx:364
 AliZDCv3.cxx:365
 AliZDCv3.cxx:366
 AliZDCv3.cxx:367
 AliZDCv3.cxx:368
 AliZDCv3.cxx:369
 AliZDCv3.cxx:370
 AliZDCv3.cxx:371
 AliZDCv3.cxx:372
 AliZDCv3.cxx:373
 AliZDCv3.cxx:374
 AliZDCv3.cxx:375
 AliZDCv3.cxx:376
 AliZDCv3.cxx:377
 AliZDCv3.cxx:378
 AliZDCv3.cxx:379
 AliZDCv3.cxx:380
 AliZDCv3.cxx:381
 AliZDCv3.cxx:382
 AliZDCv3.cxx:383
 AliZDCv3.cxx:384
 AliZDCv3.cxx:385
 AliZDCv3.cxx:386
 AliZDCv3.cxx:387
 AliZDCv3.cxx:388
 AliZDCv3.cxx:389
 AliZDCv3.cxx:390
 AliZDCv3.cxx:391
 AliZDCv3.cxx:392
 AliZDCv3.cxx:393
 AliZDCv3.cxx:394
 AliZDCv3.cxx:395
 AliZDCv3.cxx:396
 AliZDCv3.cxx:397
 AliZDCv3.cxx:398
 AliZDCv3.cxx:399
 AliZDCv3.cxx:400
 AliZDCv3.cxx:401
 AliZDCv3.cxx:402
 AliZDCv3.cxx:403
 AliZDCv3.cxx:404
 AliZDCv3.cxx:405
 AliZDCv3.cxx:406
 AliZDCv3.cxx:407
 AliZDCv3.cxx:408
 AliZDCv3.cxx:409
 AliZDCv3.cxx:410
 AliZDCv3.cxx:411
 AliZDCv3.cxx:412
 AliZDCv3.cxx:413
 AliZDCv3.cxx:414
 AliZDCv3.cxx:415
 AliZDCv3.cxx:416
 AliZDCv3.cxx:417
 AliZDCv3.cxx:418
 AliZDCv3.cxx:419
 AliZDCv3.cxx:420
 AliZDCv3.cxx:421
 AliZDCv3.cxx:422
 AliZDCv3.cxx:423
 AliZDCv3.cxx:424
 AliZDCv3.cxx:425
 AliZDCv3.cxx:426
 AliZDCv3.cxx:427
 AliZDCv3.cxx:428
 AliZDCv3.cxx:429
 AliZDCv3.cxx:430
 AliZDCv3.cxx:431
 AliZDCv3.cxx:432
 AliZDCv3.cxx:433
 AliZDCv3.cxx:434
 AliZDCv3.cxx:435
 AliZDCv3.cxx:436
 AliZDCv3.cxx:437
 AliZDCv3.cxx:438
 AliZDCv3.cxx:439
 AliZDCv3.cxx:440
 AliZDCv3.cxx:441
 AliZDCv3.cxx:442
 AliZDCv3.cxx:443
 AliZDCv3.cxx:444
 AliZDCv3.cxx:445
 AliZDCv3.cxx:446
 AliZDCv3.cxx:447
 AliZDCv3.cxx:448
 AliZDCv3.cxx:449
 AliZDCv3.cxx:450
 AliZDCv3.cxx:451
 AliZDCv3.cxx:452
 AliZDCv3.cxx:453
 AliZDCv3.cxx:454
 AliZDCv3.cxx:455
 AliZDCv3.cxx:456
 AliZDCv3.cxx:457
 AliZDCv3.cxx:458
 AliZDCv3.cxx:459
 AliZDCv3.cxx:460
 AliZDCv3.cxx:461
 AliZDCv3.cxx:462
 AliZDCv3.cxx:463
 AliZDCv3.cxx:464
 AliZDCv3.cxx:465
 AliZDCv3.cxx:466
 AliZDCv3.cxx:467
 AliZDCv3.cxx:468
 AliZDCv3.cxx:469
 AliZDCv3.cxx:470
 AliZDCv3.cxx:471
 AliZDCv3.cxx:472
 AliZDCv3.cxx:473
 AliZDCv3.cxx:474
 AliZDCv3.cxx:475
 AliZDCv3.cxx:476
 AliZDCv3.cxx:477
 AliZDCv3.cxx:478
 AliZDCv3.cxx:479
 AliZDCv3.cxx:480
 AliZDCv3.cxx:481
 AliZDCv3.cxx:482
 AliZDCv3.cxx:483
 AliZDCv3.cxx:484
 AliZDCv3.cxx:485
 AliZDCv3.cxx:486
 AliZDCv3.cxx:487
 AliZDCv3.cxx:488
 AliZDCv3.cxx:489
 AliZDCv3.cxx:490
 AliZDCv3.cxx:491
 AliZDCv3.cxx:492
 AliZDCv3.cxx:493
 AliZDCv3.cxx:494
 AliZDCv3.cxx:495
 AliZDCv3.cxx:496
 AliZDCv3.cxx:497
 AliZDCv3.cxx:498
 AliZDCv3.cxx:499
 AliZDCv3.cxx:500
 AliZDCv3.cxx:501
 AliZDCv3.cxx:502
 AliZDCv3.cxx:503
 AliZDCv3.cxx:504
 AliZDCv3.cxx:505
 AliZDCv3.cxx:506
 AliZDCv3.cxx:507
 AliZDCv3.cxx:508
 AliZDCv3.cxx:509
 AliZDCv3.cxx:510
 AliZDCv3.cxx:511
 AliZDCv3.cxx:512
 AliZDCv3.cxx:513
 AliZDCv3.cxx:514
 AliZDCv3.cxx:515
 AliZDCv3.cxx:516
 AliZDCv3.cxx:517
 AliZDCv3.cxx:518
 AliZDCv3.cxx:519
 AliZDCv3.cxx:520
 AliZDCv3.cxx:521
 AliZDCv3.cxx:522
 AliZDCv3.cxx:523
 AliZDCv3.cxx:524
 AliZDCv3.cxx:525
 AliZDCv3.cxx:526
 AliZDCv3.cxx:527
 AliZDCv3.cxx:528
 AliZDCv3.cxx:529
 AliZDCv3.cxx:530
 AliZDCv3.cxx:531
 AliZDCv3.cxx:532
 AliZDCv3.cxx:533
 AliZDCv3.cxx:534
 AliZDCv3.cxx:535
 AliZDCv3.cxx:536
 AliZDCv3.cxx:537
 AliZDCv3.cxx:538
 AliZDCv3.cxx:539
 AliZDCv3.cxx:540
 AliZDCv3.cxx:541
 AliZDCv3.cxx:542
 AliZDCv3.cxx:543
 AliZDCv3.cxx:544
 AliZDCv3.cxx:545
 AliZDCv3.cxx:546
 AliZDCv3.cxx:547
 AliZDCv3.cxx:548
 AliZDCv3.cxx:549
 AliZDCv3.cxx:550
 AliZDCv3.cxx:551
 AliZDCv3.cxx:552
 AliZDCv3.cxx:553
 AliZDCv3.cxx:554
 AliZDCv3.cxx:555
 AliZDCv3.cxx:556
 AliZDCv3.cxx:557
 AliZDCv3.cxx:558
 AliZDCv3.cxx:559
 AliZDCv3.cxx:560
 AliZDCv3.cxx:561
 AliZDCv3.cxx:562
 AliZDCv3.cxx:563
 AliZDCv3.cxx:564
 AliZDCv3.cxx:565
 AliZDCv3.cxx:566
 AliZDCv3.cxx:567
 AliZDCv3.cxx:568
 AliZDCv3.cxx:569
 AliZDCv3.cxx:570
 AliZDCv3.cxx:571
 AliZDCv3.cxx:572
 AliZDCv3.cxx:573
 AliZDCv3.cxx:574
 AliZDCv3.cxx:575
 AliZDCv3.cxx:576
 AliZDCv3.cxx:577
 AliZDCv3.cxx:578
 AliZDCv3.cxx:579
 AliZDCv3.cxx:580
 AliZDCv3.cxx:581
 AliZDCv3.cxx:582
 AliZDCv3.cxx:583
 AliZDCv3.cxx:584
 AliZDCv3.cxx:585
 AliZDCv3.cxx:586
 AliZDCv3.cxx:587
 AliZDCv3.cxx:588
 AliZDCv3.cxx:589
 AliZDCv3.cxx:590
 AliZDCv3.cxx:591
 AliZDCv3.cxx:592
 AliZDCv3.cxx:593
 AliZDCv3.cxx:594
 AliZDCv3.cxx:595
 AliZDCv3.cxx:596
 AliZDCv3.cxx:597
 AliZDCv3.cxx:598
 AliZDCv3.cxx:599
 AliZDCv3.cxx:600
 AliZDCv3.cxx:601
 AliZDCv3.cxx:602
 AliZDCv3.cxx:603
 AliZDCv3.cxx:604
 AliZDCv3.cxx:605
 AliZDCv3.cxx:606
 AliZDCv3.cxx:607
 AliZDCv3.cxx:608
 AliZDCv3.cxx:609
 AliZDCv3.cxx:610
 AliZDCv3.cxx:611
 AliZDCv3.cxx:612
 AliZDCv3.cxx:613
 AliZDCv3.cxx:614
 AliZDCv3.cxx:615
 AliZDCv3.cxx:616
 AliZDCv3.cxx:617
 AliZDCv3.cxx:618
 AliZDCv3.cxx:619
 AliZDCv3.cxx:620
 AliZDCv3.cxx:621
 AliZDCv3.cxx:622
 AliZDCv3.cxx:623
 AliZDCv3.cxx:624
 AliZDCv3.cxx:625
 AliZDCv3.cxx:626
 AliZDCv3.cxx:627
 AliZDCv3.cxx:628
 AliZDCv3.cxx:629
 AliZDCv3.cxx:630
 AliZDCv3.cxx:631
 AliZDCv3.cxx:632
 AliZDCv3.cxx:633
 AliZDCv3.cxx:634
 AliZDCv3.cxx:635
 AliZDCv3.cxx:636
 AliZDCv3.cxx:637
 AliZDCv3.cxx:638
 AliZDCv3.cxx:639
 AliZDCv3.cxx:640
 AliZDCv3.cxx:641
 AliZDCv3.cxx:642
 AliZDCv3.cxx:643
 AliZDCv3.cxx:644
 AliZDCv3.cxx:645
 AliZDCv3.cxx:646
 AliZDCv3.cxx:647
 AliZDCv3.cxx:648
 AliZDCv3.cxx:649
 AliZDCv3.cxx:650
 AliZDCv3.cxx:651
 AliZDCv3.cxx:652
 AliZDCv3.cxx:653
 AliZDCv3.cxx:654
 AliZDCv3.cxx:655
 AliZDCv3.cxx:656
 AliZDCv3.cxx:657
 AliZDCv3.cxx:658
 AliZDCv3.cxx:659
 AliZDCv3.cxx:660
 AliZDCv3.cxx:661
 AliZDCv3.cxx:662
 AliZDCv3.cxx:663
 AliZDCv3.cxx:664
 AliZDCv3.cxx:665
 AliZDCv3.cxx:666
 AliZDCv3.cxx:667
 AliZDCv3.cxx:668
 AliZDCv3.cxx:669
 AliZDCv3.cxx:670
 AliZDCv3.cxx:671
 AliZDCv3.cxx:672
 AliZDCv3.cxx:673
 AliZDCv3.cxx:674
 AliZDCv3.cxx:675
 AliZDCv3.cxx:676
 AliZDCv3.cxx:677
 AliZDCv3.cxx:678
 AliZDCv3.cxx:679
 AliZDCv3.cxx:680
 AliZDCv3.cxx:681
 AliZDCv3.cxx:682
 AliZDCv3.cxx:683
 AliZDCv3.cxx:684
 AliZDCv3.cxx:685
 AliZDCv3.cxx:686
 AliZDCv3.cxx:687
 AliZDCv3.cxx:688
 AliZDCv3.cxx:689
 AliZDCv3.cxx:690
 AliZDCv3.cxx:691
 AliZDCv3.cxx:692
 AliZDCv3.cxx:693
 AliZDCv3.cxx:694
 AliZDCv3.cxx:695
 AliZDCv3.cxx:696
 AliZDCv3.cxx:697
 AliZDCv3.cxx:698
 AliZDCv3.cxx:699
 AliZDCv3.cxx:700
 AliZDCv3.cxx:701
 AliZDCv3.cxx:702
 AliZDCv3.cxx:703
 AliZDCv3.cxx:704
 AliZDCv3.cxx:705
 AliZDCv3.cxx:706
 AliZDCv3.cxx:707
 AliZDCv3.cxx:708
 AliZDCv3.cxx:709
 AliZDCv3.cxx:710
 AliZDCv3.cxx:711
 AliZDCv3.cxx:712
 AliZDCv3.cxx:713
 AliZDCv3.cxx:714
 AliZDCv3.cxx:715
 AliZDCv3.cxx:716
 AliZDCv3.cxx:717
 AliZDCv3.cxx:718
 AliZDCv3.cxx:719
 AliZDCv3.cxx:720
 AliZDCv3.cxx:721
 AliZDCv3.cxx:722
 AliZDCv3.cxx:723
 AliZDCv3.cxx:724
 AliZDCv3.cxx:725
 AliZDCv3.cxx:726
 AliZDCv3.cxx:727
 AliZDCv3.cxx:728
 AliZDCv3.cxx:729
 AliZDCv3.cxx:730
 AliZDCv3.cxx:731
 AliZDCv3.cxx:732
 AliZDCv3.cxx:733
 AliZDCv3.cxx:734
 AliZDCv3.cxx:735
 AliZDCv3.cxx:736
 AliZDCv3.cxx:737
 AliZDCv3.cxx:738
 AliZDCv3.cxx:739
 AliZDCv3.cxx:740
 AliZDCv3.cxx:741
 AliZDCv3.cxx:742
 AliZDCv3.cxx:743
 AliZDCv3.cxx:744
 AliZDCv3.cxx:745
 AliZDCv3.cxx:746
 AliZDCv3.cxx:747
 AliZDCv3.cxx:748
 AliZDCv3.cxx:749
 AliZDCv3.cxx:750
 AliZDCv3.cxx:751
 AliZDCv3.cxx:752
 AliZDCv3.cxx:753
 AliZDCv3.cxx:754
 AliZDCv3.cxx:755
 AliZDCv3.cxx:756
 AliZDCv3.cxx:757
 AliZDCv3.cxx:758
 AliZDCv3.cxx:759
 AliZDCv3.cxx:760
 AliZDCv3.cxx:761
 AliZDCv3.cxx:762
 AliZDCv3.cxx:763
 AliZDCv3.cxx:764
 AliZDCv3.cxx:765
 AliZDCv3.cxx:766
 AliZDCv3.cxx:767
 AliZDCv3.cxx:768
 AliZDCv3.cxx:769
 AliZDCv3.cxx:770
 AliZDCv3.cxx:771
 AliZDCv3.cxx:772
 AliZDCv3.cxx:773
 AliZDCv3.cxx:774
 AliZDCv3.cxx:775
 AliZDCv3.cxx:776
 AliZDCv3.cxx:777
 AliZDCv3.cxx:778
 AliZDCv3.cxx:779
 AliZDCv3.cxx:780
 AliZDCv3.cxx:781
 AliZDCv3.cxx:782
 AliZDCv3.cxx:783
 AliZDCv3.cxx:784
 AliZDCv3.cxx:785
 AliZDCv3.cxx:786
 AliZDCv3.cxx:787
 AliZDCv3.cxx:788
 AliZDCv3.cxx:789
 AliZDCv3.cxx:790
 AliZDCv3.cxx:791
 AliZDCv3.cxx:792
 AliZDCv3.cxx:793
 AliZDCv3.cxx:794
 AliZDCv3.cxx:795
 AliZDCv3.cxx:796
 AliZDCv3.cxx:797
 AliZDCv3.cxx:798
 AliZDCv3.cxx:799
 AliZDCv3.cxx:800
 AliZDCv3.cxx:801
 AliZDCv3.cxx:802
 AliZDCv3.cxx:803
 AliZDCv3.cxx:804
 AliZDCv3.cxx:805
 AliZDCv3.cxx:806
 AliZDCv3.cxx:807
 AliZDCv3.cxx:808
 AliZDCv3.cxx:809
 AliZDCv3.cxx:810
 AliZDCv3.cxx:811
 AliZDCv3.cxx:812
 AliZDCv3.cxx:813
 AliZDCv3.cxx:814
 AliZDCv3.cxx:815
 AliZDCv3.cxx:816
 AliZDCv3.cxx:817
 AliZDCv3.cxx:818
 AliZDCv3.cxx:819
 AliZDCv3.cxx:820
 AliZDCv3.cxx:821
 AliZDCv3.cxx:822
 AliZDCv3.cxx:823
 AliZDCv3.cxx:824
 AliZDCv3.cxx:825
 AliZDCv3.cxx:826
 AliZDCv3.cxx:827
 AliZDCv3.cxx:828
 AliZDCv3.cxx:829
 AliZDCv3.cxx:830
 AliZDCv3.cxx:831
 AliZDCv3.cxx:832
 AliZDCv3.cxx:833
 AliZDCv3.cxx:834
 AliZDCv3.cxx:835
 AliZDCv3.cxx:836
 AliZDCv3.cxx:837
 AliZDCv3.cxx:838
 AliZDCv3.cxx:839
 AliZDCv3.cxx:840
 AliZDCv3.cxx:841
 AliZDCv3.cxx:842
 AliZDCv3.cxx:843
 AliZDCv3.cxx:844
 AliZDCv3.cxx:845
 AliZDCv3.cxx:846
 AliZDCv3.cxx:847
 AliZDCv3.cxx:848
 AliZDCv3.cxx:849
 AliZDCv3.cxx:850
 AliZDCv3.cxx:851
 AliZDCv3.cxx:852
 AliZDCv3.cxx:853
 AliZDCv3.cxx:854
 AliZDCv3.cxx:855
 AliZDCv3.cxx:856
 AliZDCv3.cxx:857
 AliZDCv3.cxx:858
 AliZDCv3.cxx:859
 AliZDCv3.cxx:860
 AliZDCv3.cxx:861
 AliZDCv3.cxx:862
 AliZDCv3.cxx:863
 AliZDCv3.cxx:864
 AliZDCv3.cxx:865
 AliZDCv3.cxx:866
 AliZDCv3.cxx:867
 AliZDCv3.cxx:868
 AliZDCv3.cxx:869
 AliZDCv3.cxx:870
 AliZDCv3.cxx:871
 AliZDCv3.cxx:872
 AliZDCv3.cxx:873
 AliZDCv3.cxx:874
 AliZDCv3.cxx:875
 AliZDCv3.cxx:876
 AliZDCv3.cxx:877
 AliZDCv3.cxx:878
 AliZDCv3.cxx:879
 AliZDCv3.cxx:880
 AliZDCv3.cxx:881
 AliZDCv3.cxx:882
 AliZDCv3.cxx:883
 AliZDCv3.cxx:884
 AliZDCv3.cxx:885
 AliZDCv3.cxx:886
 AliZDCv3.cxx:887
 AliZDCv3.cxx:888
 AliZDCv3.cxx:889
 AliZDCv3.cxx:890
 AliZDCv3.cxx:891
 AliZDCv3.cxx:892
 AliZDCv3.cxx:893
 AliZDCv3.cxx:894
 AliZDCv3.cxx:895
 AliZDCv3.cxx:896
 AliZDCv3.cxx:897
 AliZDCv3.cxx:898
 AliZDCv3.cxx:899
 AliZDCv3.cxx:900
 AliZDCv3.cxx:901
 AliZDCv3.cxx:902
 AliZDCv3.cxx:903
 AliZDCv3.cxx:904
 AliZDCv3.cxx:905
 AliZDCv3.cxx:906
 AliZDCv3.cxx:907
 AliZDCv3.cxx:908
 AliZDCv3.cxx:909
 AliZDCv3.cxx:910
 AliZDCv3.cxx:911
 AliZDCv3.cxx:912
 AliZDCv3.cxx:913
 AliZDCv3.cxx:914
 AliZDCv3.cxx:915
 AliZDCv3.cxx:916
 AliZDCv3.cxx:917
 AliZDCv3.cxx:918
 AliZDCv3.cxx:919
 AliZDCv3.cxx:920
 AliZDCv3.cxx:921
 AliZDCv3.cxx:922
 AliZDCv3.cxx:923
 AliZDCv3.cxx:924
 AliZDCv3.cxx:925
 AliZDCv3.cxx:926
 AliZDCv3.cxx:927
 AliZDCv3.cxx:928
 AliZDCv3.cxx:929
 AliZDCv3.cxx:930
 AliZDCv3.cxx:931
 AliZDCv3.cxx:932
 AliZDCv3.cxx:933
 AliZDCv3.cxx:934
 AliZDCv3.cxx:935
 AliZDCv3.cxx:936
 AliZDCv3.cxx:937
 AliZDCv3.cxx:938
 AliZDCv3.cxx:939
 AliZDCv3.cxx:940
 AliZDCv3.cxx:941
 AliZDCv3.cxx:942
 AliZDCv3.cxx:943
 AliZDCv3.cxx:944
 AliZDCv3.cxx:945
 AliZDCv3.cxx:946
 AliZDCv3.cxx:947
 AliZDCv3.cxx:948
 AliZDCv3.cxx:949
 AliZDCv3.cxx:950
 AliZDCv3.cxx:951
 AliZDCv3.cxx:952
 AliZDCv3.cxx:953
 AliZDCv3.cxx:954
 AliZDCv3.cxx:955
 AliZDCv3.cxx:956
 AliZDCv3.cxx:957
 AliZDCv3.cxx:958
 AliZDCv3.cxx:959
 AliZDCv3.cxx:960
 AliZDCv3.cxx:961
 AliZDCv3.cxx:962
 AliZDCv3.cxx:963
 AliZDCv3.cxx:964
 AliZDCv3.cxx:965
 AliZDCv3.cxx:966
 AliZDCv3.cxx:967
 AliZDCv3.cxx:968
 AliZDCv3.cxx:969
 AliZDCv3.cxx:970
 AliZDCv3.cxx:971
 AliZDCv3.cxx:972
 AliZDCv3.cxx:973
 AliZDCv3.cxx:974
 AliZDCv3.cxx:975
 AliZDCv3.cxx:976
 AliZDCv3.cxx:977
 AliZDCv3.cxx:978
 AliZDCv3.cxx:979
 AliZDCv3.cxx:980
 AliZDCv3.cxx:981
 AliZDCv3.cxx:982
 AliZDCv3.cxx:983
 AliZDCv3.cxx:984
 AliZDCv3.cxx:985
 AliZDCv3.cxx:986
 AliZDCv3.cxx:987
 AliZDCv3.cxx:988
 AliZDCv3.cxx:989
 AliZDCv3.cxx:990
 AliZDCv3.cxx:991
 AliZDCv3.cxx:992
 AliZDCv3.cxx:993
 AliZDCv3.cxx:994
 AliZDCv3.cxx:995
 AliZDCv3.cxx:996
 AliZDCv3.cxx:997
 AliZDCv3.cxx:998
 AliZDCv3.cxx:999
 AliZDCv3.cxx:1000
 AliZDCv3.cxx:1001
 AliZDCv3.cxx:1002
 AliZDCv3.cxx:1003
 AliZDCv3.cxx:1004
 AliZDCv3.cxx:1005
 AliZDCv3.cxx:1006
 AliZDCv3.cxx:1007
 AliZDCv3.cxx:1008
 AliZDCv3.cxx:1009
 AliZDCv3.cxx:1010
 AliZDCv3.cxx:1011
 AliZDCv3.cxx:1012
 AliZDCv3.cxx:1013
 AliZDCv3.cxx:1014
 AliZDCv3.cxx:1015
 AliZDCv3.cxx:1016
 AliZDCv3.cxx:1017
 AliZDCv3.cxx:1018
 AliZDCv3.cxx:1019
 AliZDCv3.cxx:1020
 AliZDCv3.cxx:1021
 AliZDCv3.cxx:1022
 AliZDCv3.cxx:1023
 AliZDCv3.cxx:1024
 AliZDCv3.cxx:1025
 AliZDCv3.cxx:1026
 AliZDCv3.cxx:1027
 AliZDCv3.cxx:1028
 AliZDCv3.cxx:1029
 AliZDCv3.cxx:1030
 AliZDCv3.cxx:1031
 AliZDCv3.cxx:1032
 AliZDCv3.cxx:1033
 AliZDCv3.cxx:1034
 AliZDCv3.cxx:1035
 AliZDCv3.cxx:1036
 AliZDCv3.cxx:1037
 AliZDCv3.cxx:1038
 AliZDCv3.cxx:1039
 AliZDCv3.cxx:1040
 AliZDCv3.cxx:1041
 AliZDCv3.cxx:1042
 AliZDCv3.cxx:1043
 AliZDCv3.cxx:1044
 AliZDCv3.cxx:1045
 AliZDCv3.cxx:1046
 AliZDCv3.cxx:1047
 AliZDCv3.cxx:1048
 AliZDCv3.cxx:1049
 AliZDCv3.cxx:1050
 AliZDCv3.cxx:1051
 AliZDCv3.cxx:1052
 AliZDCv3.cxx:1053
 AliZDCv3.cxx:1054
 AliZDCv3.cxx:1055
 AliZDCv3.cxx:1056
 AliZDCv3.cxx:1057
 AliZDCv3.cxx:1058
 AliZDCv3.cxx:1059
 AliZDCv3.cxx:1060
 AliZDCv3.cxx:1061
 AliZDCv3.cxx:1062
 AliZDCv3.cxx:1063
 AliZDCv3.cxx:1064
 AliZDCv3.cxx:1065
 AliZDCv3.cxx:1066
 AliZDCv3.cxx:1067
 AliZDCv3.cxx:1068
 AliZDCv3.cxx:1069
 AliZDCv3.cxx:1070
 AliZDCv3.cxx:1071
 AliZDCv3.cxx:1072
 AliZDCv3.cxx:1073
 AliZDCv3.cxx:1074
 AliZDCv3.cxx:1075
 AliZDCv3.cxx:1076
 AliZDCv3.cxx:1077
 AliZDCv3.cxx:1078
 AliZDCv3.cxx:1079
 AliZDCv3.cxx:1080
 AliZDCv3.cxx:1081
 AliZDCv3.cxx:1082
 AliZDCv3.cxx:1083
 AliZDCv3.cxx:1084
 AliZDCv3.cxx:1085
 AliZDCv3.cxx:1086
 AliZDCv3.cxx:1087
 AliZDCv3.cxx:1088
 AliZDCv3.cxx:1089
 AliZDCv3.cxx:1090
 AliZDCv3.cxx:1091
 AliZDCv3.cxx:1092
 AliZDCv3.cxx:1093
 AliZDCv3.cxx:1094
 AliZDCv3.cxx:1095
 AliZDCv3.cxx:1096
 AliZDCv3.cxx:1097
 AliZDCv3.cxx:1098
 AliZDCv3.cxx:1099
 AliZDCv3.cxx:1100
 AliZDCv3.cxx:1101
 AliZDCv3.cxx:1102
 AliZDCv3.cxx:1103
 AliZDCv3.cxx:1104
 AliZDCv3.cxx:1105
 AliZDCv3.cxx:1106
 AliZDCv3.cxx:1107
 AliZDCv3.cxx:1108
 AliZDCv3.cxx:1109
 AliZDCv3.cxx:1110
 AliZDCv3.cxx:1111
 AliZDCv3.cxx:1112
 AliZDCv3.cxx:1113
 AliZDCv3.cxx:1114
 AliZDCv3.cxx:1115
 AliZDCv3.cxx:1116
 AliZDCv3.cxx:1117
 AliZDCv3.cxx:1118
 AliZDCv3.cxx:1119
 AliZDCv3.cxx:1120
 AliZDCv3.cxx:1121
 AliZDCv3.cxx:1122
 AliZDCv3.cxx:1123
 AliZDCv3.cxx:1124
 AliZDCv3.cxx:1125
 AliZDCv3.cxx:1126
 AliZDCv3.cxx:1127
 AliZDCv3.cxx:1128
 AliZDCv3.cxx:1129
 AliZDCv3.cxx:1130
 AliZDCv3.cxx:1131
 AliZDCv3.cxx:1132
 AliZDCv3.cxx:1133
 AliZDCv3.cxx:1134
 AliZDCv3.cxx:1135
 AliZDCv3.cxx:1136
 AliZDCv3.cxx:1137
 AliZDCv3.cxx:1138
 AliZDCv3.cxx:1139
 AliZDCv3.cxx:1140
 AliZDCv3.cxx:1141
 AliZDCv3.cxx:1142
 AliZDCv3.cxx:1143
 AliZDCv3.cxx:1144
 AliZDCv3.cxx:1145
 AliZDCv3.cxx:1146
 AliZDCv3.cxx:1147
 AliZDCv3.cxx:1148
 AliZDCv3.cxx:1149
 AliZDCv3.cxx:1150
 AliZDCv3.cxx:1151
 AliZDCv3.cxx:1152
 AliZDCv3.cxx:1153
 AliZDCv3.cxx:1154
 AliZDCv3.cxx:1155
 AliZDCv3.cxx:1156
 AliZDCv3.cxx:1157
 AliZDCv3.cxx:1158
 AliZDCv3.cxx:1159
 AliZDCv3.cxx:1160
 AliZDCv3.cxx:1161
 AliZDCv3.cxx:1162
 AliZDCv3.cxx:1163
 AliZDCv3.cxx:1164
 AliZDCv3.cxx:1165
 AliZDCv3.cxx:1166
 AliZDCv3.cxx:1167
 AliZDCv3.cxx:1168
 AliZDCv3.cxx:1169
 AliZDCv3.cxx:1170
 AliZDCv3.cxx:1171
 AliZDCv3.cxx:1172
 AliZDCv3.cxx:1173
 AliZDCv3.cxx:1174
 AliZDCv3.cxx:1175
 AliZDCv3.cxx:1176
 AliZDCv3.cxx:1177
 AliZDCv3.cxx:1178
 AliZDCv3.cxx:1179
 AliZDCv3.cxx:1180
 AliZDCv3.cxx:1181
 AliZDCv3.cxx:1182
 AliZDCv3.cxx:1183
 AliZDCv3.cxx:1184
 AliZDCv3.cxx:1185
 AliZDCv3.cxx:1186
 AliZDCv3.cxx:1187
 AliZDCv3.cxx:1188
 AliZDCv3.cxx:1189
 AliZDCv3.cxx:1190
 AliZDCv3.cxx:1191
 AliZDCv3.cxx:1192
 AliZDCv3.cxx:1193
 AliZDCv3.cxx:1194
 AliZDCv3.cxx:1195
 AliZDCv3.cxx:1196
 AliZDCv3.cxx:1197
 AliZDCv3.cxx:1198
 AliZDCv3.cxx:1199
 AliZDCv3.cxx:1200
 AliZDCv3.cxx:1201
 AliZDCv3.cxx:1202
 AliZDCv3.cxx:1203
 AliZDCv3.cxx:1204
 AliZDCv3.cxx:1205
 AliZDCv3.cxx:1206
 AliZDCv3.cxx:1207
 AliZDCv3.cxx:1208
 AliZDCv3.cxx:1209
 AliZDCv3.cxx:1210
 AliZDCv3.cxx:1211
 AliZDCv3.cxx:1212
 AliZDCv3.cxx:1213
 AliZDCv3.cxx:1214
 AliZDCv3.cxx:1215
 AliZDCv3.cxx:1216
 AliZDCv3.cxx:1217
 AliZDCv3.cxx:1218
 AliZDCv3.cxx:1219
 AliZDCv3.cxx:1220
 AliZDCv3.cxx:1221
 AliZDCv3.cxx:1222
 AliZDCv3.cxx:1223
 AliZDCv3.cxx:1224
 AliZDCv3.cxx:1225
 AliZDCv3.cxx:1226
 AliZDCv3.cxx:1227
 AliZDCv3.cxx:1228
 AliZDCv3.cxx:1229
 AliZDCv3.cxx:1230
 AliZDCv3.cxx:1231
 AliZDCv3.cxx:1232
 AliZDCv3.cxx:1233
 AliZDCv3.cxx:1234
 AliZDCv3.cxx:1235
 AliZDCv3.cxx:1236
 AliZDCv3.cxx:1237
 AliZDCv3.cxx:1238
 AliZDCv3.cxx:1239
 AliZDCv3.cxx:1240
 AliZDCv3.cxx:1241
 AliZDCv3.cxx:1242
 AliZDCv3.cxx:1243
 AliZDCv3.cxx:1244
 AliZDCv3.cxx:1245
 AliZDCv3.cxx:1246
 AliZDCv3.cxx:1247
 AliZDCv3.cxx:1248
 AliZDCv3.cxx:1249
 AliZDCv3.cxx:1250
 AliZDCv3.cxx:1251
 AliZDCv3.cxx:1252
 AliZDCv3.cxx:1253
 AliZDCv3.cxx:1254
 AliZDCv3.cxx:1255
 AliZDCv3.cxx:1256
 AliZDCv3.cxx:1257
 AliZDCv3.cxx:1258
 AliZDCv3.cxx:1259
 AliZDCv3.cxx:1260
 AliZDCv3.cxx:1261
 AliZDCv3.cxx:1262
 AliZDCv3.cxx:1263
 AliZDCv3.cxx:1264
 AliZDCv3.cxx:1265
 AliZDCv3.cxx:1266
 AliZDCv3.cxx:1267
 AliZDCv3.cxx:1268
 AliZDCv3.cxx:1269
 AliZDCv3.cxx:1270
 AliZDCv3.cxx:1271
 AliZDCv3.cxx:1272
 AliZDCv3.cxx:1273
 AliZDCv3.cxx:1274
 AliZDCv3.cxx:1275
 AliZDCv3.cxx:1276
 AliZDCv3.cxx:1277
 AliZDCv3.cxx:1278
 AliZDCv3.cxx:1279
 AliZDCv3.cxx:1280
 AliZDCv3.cxx:1281
 AliZDCv3.cxx:1282
 AliZDCv3.cxx:1283
 AliZDCv3.cxx:1284
 AliZDCv3.cxx:1285
 AliZDCv3.cxx:1286
 AliZDCv3.cxx:1287
 AliZDCv3.cxx:1288
 AliZDCv3.cxx:1289
 AliZDCv3.cxx:1290
 AliZDCv3.cxx:1291
 AliZDCv3.cxx:1292
 AliZDCv3.cxx:1293
 AliZDCv3.cxx:1294
 AliZDCv3.cxx:1295
 AliZDCv3.cxx:1296
 AliZDCv3.cxx:1297
 AliZDCv3.cxx:1298
 AliZDCv3.cxx:1299
 AliZDCv3.cxx:1300
 AliZDCv3.cxx:1301
 AliZDCv3.cxx:1302
 AliZDCv3.cxx:1303
 AliZDCv3.cxx:1304
 AliZDCv3.cxx:1305
 AliZDCv3.cxx:1306
 AliZDCv3.cxx:1307
 AliZDCv3.cxx:1308
 AliZDCv3.cxx:1309
 AliZDCv3.cxx:1310
 AliZDCv3.cxx:1311
 AliZDCv3.cxx:1312
 AliZDCv3.cxx:1313
 AliZDCv3.cxx:1314
 AliZDCv3.cxx:1315
 AliZDCv3.cxx:1316
 AliZDCv3.cxx:1317
 AliZDCv3.cxx:1318
 AliZDCv3.cxx:1319
 AliZDCv3.cxx:1320
 AliZDCv3.cxx:1321
 AliZDCv3.cxx:1322
 AliZDCv3.cxx:1323
 AliZDCv3.cxx:1324
 AliZDCv3.cxx:1325
 AliZDCv3.cxx:1326
 AliZDCv3.cxx:1327
 AliZDCv3.cxx:1328
 AliZDCv3.cxx:1329
 AliZDCv3.cxx:1330
 AliZDCv3.cxx:1331
 AliZDCv3.cxx:1332
 AliZDCv3.cxx:1333
 AliZDCv3.cxx:1334
 AliZDCv3.cxx:1335
 AliZDCv3.cxx:1336
 AliZDCv3.cxx:1337
 AliZDCv3.cxx:1338
 AliZDCv3.cxx:1339
 AliZDCv3.cxx:1340
 AliZDCv3.cxx:1341
 AliZDCv3.cxx:1342
 AliZDCv3.cxx:1343
 AliZDCv3.cxx:1344
 AliZDCv3.cxx:1345
 AliZDCv3.cxx:1346
 AliZDCv3.cxx:1347
 AliZDCv3.cxx:1348
 AliZDCv3.cxx:1349
 AliZDCv3.cxx:1350
 AliZDCv3.cxx:1351
 AliZDCv3.cxx:1352
 AliZDCv3.cxx:1353
 AliZDCv3.cxx:1354
 AliZDCv3.cxx:1355
 AliZDCv3.cxx:1356
 AliZDCv3.cxx:1357
 AliZDCv3.cxx:1358
 AliZDCv3.cxx:1359
 AliZDCv3.cxx:1360
 AliZDCv3.cxx:1361
 AliZDCv3.cxx:1362
 AliZDCv3.cxx:1363
 AliZDCv3.cxx:1364
 AliZDCv3.cxx:1365
 AliZDCv3.cxx:1366
 AliZDCv3.cxx:1367
 AliZDCv3.cxx:1368
 AliZDCv3.cxx:1369
 AliZDCv3.cxx:1370
 AliZDCv3.cxx:1371
 AliZDCv3.cxx:1372
 AliZDCv3.cxx:1373
 AliZDCv3.cxx:1374
 AliZDCv3.cxx:1375
 AliZDCv3.cxx:1376
 AliZDCv3.cxx:1377
 AliZDCv3.cxx:1378
 AliZDCv3.cxx:1379
 AliZDCv3.cxx:1380
 AliZDCv3.cxx:1381
 AliZDCv3.cxx:1382
 AliZDCv3.cxx:1383
 AliZDCv3.cxx:1384
 AliZDCv3.cxx:1385
 AliZDCv3.cxx:1386
 AliZDCv3.cxx:1387
 AliZDCv3.cxx:1388
 AliZDCv3.cxx:1389
 AliZDCv3.cxx:1390
 AliZDCv3.cxx:1391
 AliZDCv3.cxx:1392
 AliZDCv3.cxx:1393
 AliZDCv3.cxx:1394
 AliZDCv3.cxx:1395
 AliZDCv3.cxx:1396
 AliZDCv3.cxx:1397
 AliZDCv3.cxx:1398
 AliZDCv3.cxx:1399
 AliZDCv3.cxx:1400
 AliZDCv3.cxx:1401
 AliZDCv3.cxx:1402
 AliZDCv3.cxx:1403
 AliZDCv3.cxx:1404
 AliZDCv3.cxx:1405
 AliZDCv3.cxx:1406
 AliZDCv3.cxx:1407
 AliZDCv3.cxx:1408
 AliZDCv3.cxx:1409
 AliZDCv3.cxx:1410
 AliZDCv3.cxx:1411
 AliZDCv3.cxx:1412
 AliZDCv3.cxx:1413
 AliZDCv3.cxx:1414
 AliZDCv3.cxx:1415
 AliZDCv3.cxx:1416
 AliZDCv3.cxx:1417
 AliZDCv3.cxx:1418
 AliZDCv3.cxx:1419
 AliZDCv3.cxx:1420
 AliZDCv3.cxx:1421
 AliZDCv3.cxx:1422
 AliZDCv3.cxx:1423
 AliZDCv3.cxx:1424
 AliZDCv3.cxx:1425
 AliZDCv3.cxx:1426
 AliZDCv3.cxx:1427
 AliZDCv3.cxx:1428
 AliZDCv3.cxx:1429
 AliZDCv3.cxx:1430
 AliZDCv3.cxx:1431
 AliZDCv3.cxx:1432
 AliZDCv3.cxx:1433
 AliZDCv3.cxx:1434
 AliZDCv3.cxx:1435
 AliZDCv3.cxx:1436
 AliZDCv3.cxx:1437
 AliZDCv3.cxx:1438
 AliZDCv3.cxx:1439
 AliZDCv3.cxx:1440
 AliZDCv3.cxx:1441
 AliZDCv3.cxx:1442
 AliZDCv3.cxx:1443
 AliZDCv3.cxx:1444
 AliZDCv3.cxx:1445
 AliZDCv3.cxx:1446
 AliZDCv3.cxx:1447
 AliZDCv3.cxx:1448
 AliZDCv3.cxx:1449
 AliZDCv3.cxx:1450
 AliZDCv3.cxx:1451
 AliZDCv3.cxx:1452
 AliZDCv3.cxx:1453
 AliZDCv3.cxx:1454
 AliZDCv3.cxx:1455
 AliZDCv3.cxx:1456
 AliZDCv3.cxx:1457
 AliZDCv3.cxx:1458
 AliZDCv3.cxx:1459
 AliZDCv3.cxx:1460
 AliZDCv3.cxx:1461
 AliZDCv3.cxx:1462
 AliZDCv3.cxx:1463
 AliZDCv3.cxx:1464
 AliZDCv3.cxx:1465
 AliZDCv3.cxx:1466
 AliZDCv3.cxx:1467
 AliZDCv3.cxx:1468
 AliZDCv3.cxx:1469
 AliZDCv3.cxx:1470
 AliZDCv3.cxx:1471
 AliZDCv3.cxx:1472
 AliZDCv3.cxx:1473
 AliZDCv3.cxx:1474
 AliZDCv3.cxx:1475
 AliZDCv3.cxx:1476
 AliZDCv3.cxx:1477
 AliZDCv3.cxx:1478
 AliZDCv3.cxx:1479
 AliZDCv3.cxx:1480
 AliZDCv3.cxx:1481
 AliZDCv3.cxx:1482
 AliZDCv3.cxx:1483
 AliZDCv3.cxx:1484
 AliZDCv3.cxx:1485
 AliZDCv3.cxx:1486
 AliZDCv3.cxx:1487
 AliZDCv3.cxx:1488
 AliZDCv3.cxx:1489
 AliZDCv3.cxx:1490
 AliZDCv3.cxx:1491
 AliZDCv3.cxx:1492
 AliZDCv3.cxx:1493
 AliZDCv3.cxx:1494
 AliZDCv3.cxx:1495
 AliZDCv3.cxx:1496
 AliZDCv3.cxx:1497
 AliZDCv3.cxx:1498
 AliZDCv3.cxx:1499
 AliZDCv3.cxx:1500
 AliZDCv3.cxx:1501
 AliZDCv3.cxx:1502
 AliZDCv3.cxx:1503
 AliZDCv3.cxx:1504
 AliZDCv3.cxx:1505
 AliZDCv3.cxx:1506
 AliZDCv3.cxx:1507
 AliZDCv3.cxx:1508
 AliZDCv3.cxx:1509
 AliZDCv3.cxx:1510
 AliZDCv3.cxx:1511
 AliZDCv3.cxx:1512
 AliZDCv3.cxx:1513
 AliZDCv3.cxx:1514
 AliZDCv3.cxx:1515
 AliZDCv3.cxx:1516
 AliZDCv3.cxx:1517
 AliZDCv3.cxx:1518
 AliZDCv3.cxx:1519
 AliZDCv3.cxx:1520
 AliZDCv3.cxx:1521
 AliZDCv3.cxx:1522
 AliZDCv3.cxx:1523
 AliZDCv3.cxx:1524
 AliZDCv3.cxx:1525
 AliZDCv3.cxx:1526
 AliZDCv3.cxx:1527
 AliZDCv3.cxx:1528
 AliZDCv3.cxx:1529
 AliZDCv3.cxx:1530
 AliZDCv3.cxx:1531
 AliZDCv3.cxx:1532
 AliZDCv3.cxx:1533
 AliZDCv3.cxx:1534
 AliZDCv3.cxx:1535
 AliZDCv3.cxx:1536
 AliZDCv3.cxx:1537
 AliZDCv3.cxx:1538
 AliZDCv3.cxx:1539
 AliZDCv3.cxx:1540
 AliZDCv3.cxx:1541
 AliZDCv3.cxx:1542
 AliZDCv3.cxx:1543
 AliZDCv3.cxx:1544
 AliZDCv3.cxx:1545
 AliZDCv3.cxx:1546
 AliZDCv3.cxx:1547
 AliZDCv3.cxx:1548
 AliZDCv3.cxx:1549
 AliZDCv3.cxx:1550
 AliZDCv3.cxx:1551
 AliZDCv3.cxx:1552
 AliZDCv3.cxx:1553
 AliZDCv3.cxx:1554
 AliZDCv3.cxx:1555
 AliZDCv3.cxx:1556
 AliZDCv3.cxx:1557
 AliZDCv3.cxx:1558
 AliZDCv3.cxx:1559
 AliZDCv3.cxx:1560
 AliZDCv3.cxx:1561
 AliZDCv3.cxx:1562
 AliZDCv3.cxx:1563
 AliZDCv3.cxx:1564
 AliZDCv3.cxx:1565
 AliZDCv3.cxx:1566
 AliZDCv3.cxx:1567
 AliZDCv3.cxx:1568
 AliZDCv3.cxx:1569
 AliZDCv3.cxx:1570
 AliZDCv3.cxx:1571
 AliZDCv3.cxx:1572
 AliZDCv3.cxx:1573
 AliZDCv3.cxx:1574
 AliZDCv3.cxx:1575
 AliZDCv3.cxx:1576
 AliZDCv3.cxx:1577
 AliZDCv3.cxx:1578
 AliZDCv3.cxx:1579
 AliZDCv3.cxx:1580
 AliZDCv3.cxx:1581
 AliZDCv3.cxx:1582
 AliZDCv3.cxx:1583
 AliZDCv3.cxx:1584
 AliZDCv3.cxx:1585
 AliZDCv3.cxx:1586
 AliZDCv3.cxx:1587
 AliZDCv3.cxx:1588
 AliZDCv3.cxx:1589
 AliZDCv3.cxx:1590
 AliZDCv3.cxx:1591
 AliZDCv3.cxx:1592
 AliZDCv3.cxx:1593
 AliZDCv3.cxx:1594
 AliZDCv3.cxx:1595
 AliZDCv3.cxx:1596
 AliZDCv3.cxx:1597
 AliZDCv3.cxx:1598
 AliZDCv3.cxx:1599
 AliZDCv3.cxx:1600
 AliZDCv3.cxx:1601
 AliZDCv3.cxx:1602
 AliZDCv3.cxx:1603
 AliZDCv3.cxx:1604
 AliZDCv3.cxx:1605
 AliZDCv3.cxx:1606
 AliZDCv3.cxx:1607
 AliZDCv3.cxx:1608
 AliZDCv3.cxx:1609
 AliZDCv3.cxx:1610
 AliZDCv3.cxx:1611
 AliZDCv3.cxx:1612
 AliZDCv3.cxx:1613
 AliZDCv3.cxx:1614
 AliZDCv3.cxx:1615
 AliZDCv3.cxx:1616
 AliZDCv3.cxx:1617
 AliZDCv3.cxx:1618
 AliZDCv3.cxx:1619
 AliZDCv3.cxx:1620
 AliZDCv3.cxx:1621
 AliZDCv3.cxx:1622
 AliZDCv3.cxx:1623
 AliZDCv3.cxx:1624
 AliZDCv3.cxx:1625
 AliZDCv3.cxx:1626
 AliZDCv3.cxx:1627
 AliZDCv3.cxx:1628
 AliZDCv3.cxx:1629
 AliZDCv3.cxx:1630
 AliZDCv3.cxx:1631
 AliZDCv3.cxx:1632
 AliZDCv3.cxx:1633
 AliZDCv3.cxx:1634
 AliZDCv3.cxx:1635
 AliZDCv3.cxx:1636
 AliZDCv3.cxx:1637
 AliZDCv3.cxx:1638
 AliZDCv3.cxx:1639
 AliZDCv3.cxx:1640
 AliZDCv3.cxx:1641
 AliZDCv3.cxx:1642
 AliZDCv3.cxx:1643
 AliZDCv3.cxx:1644
 AliZDCv3.cxx:1645
 AliZDCv3.cxx:1646
 AliZDCv3.cxx:1647
 AliZDCv3.cxx:1648
 AliZDCv3.cxx:1649
 AliZDCv3.cxx:1650
 AliZDCv3.cxx:1651
 AliZDCv3.cxx:1652
 AliZDCv3.cxx:1653
 AliZDCv3.cxx:1654
 AliZDCv3.cxx:1655
 AliZDCv3.cxx:1656
 AliZDCv3.cxx:1657
 AliZDCv3.cxx:1658
 AliZDCv3.cxx:1659
 AliZDCv3.cxx:1660
 AliZDCv3.cxx:1661
 AliZDCv3.cxx:1662
 AliZDCv3.cxx:1663
 AliZDCv3.cxx:1664
 AliZDCv3.cxx:1665
 AliZDCv3.cxx:1666
 AliZDCv3.cxx:1667
 AliZDCv3.cxx:1668
 AliZDCv3.cxx:1669
 AliZDCv3.cxx:1670
 AliZDCv3.cxx:1671
 AliZDCv3.cxx:1672
 AliZDCv3.cxx:1673
 AliZDCv3.cxx:1674
 AliZDCv3.cxx:1675
 AliZDCv3.cxx:1676
 AliZDCv3.cxx:1677
 AliZDCv3.cxx:1678
 AliZDCv3.cxx:1679
 AliZDCv3.cxx:1680
 AliZDCv3.cxx:1681
 AliZDCv3.cxx:1682
 AliZDCv3.cxx:1683
 AliZDCv3.cxx:1684
 AliZDCv3.cxx:1685
 AliZDCv3.cxx:1686
 AliZDCv3.cxx:1687
 AliZDCv3.cxx:1688
 AliZDCv3.cxx:1689
 AliZDCv3.cxx:1690
 AliZDCv3.cxx:1691
 AliZDCv3.cxx:1692
 AliZDCv3.cxx:1693
 AliZDCv3.cxx:1694
 AliZDCv3.cxx:1695
 AliZDCv3.cxx:1696
 AliZDCv3.cxx:1697
 AliZDCv3.cxx:1698
 AliZDCv3.cxx:1699
 AliZDCv3.cxx:1700
 AliZDCv3.cxx:1701
 AliZDCv3.cxx:1702
 AliZDCv3.cxx:1703
 AliZDCv3.cxx:1704
 AliZDCv3.cxx:1705
 AliZDCv3.cxx:1706
 AliZDCv3.cxx:1707
 AliZDCv3.cxx:1708
 AliZDCv3.cxx:1709
 AliZDCv3.cxx:1710
 AliZDCv3.cxx:1711
 AliZDCv3.cxx:1712
 AliZDCv3.cxx:1713
 AliZDCv3.cxx:1714
 AliZDCv3.cxx:1715
 AliZDCv3.cxx:1716
 AliZDCv3.cxx:1717
 AliZDCv3.cxx:1718
 AliZDCv3.cxx:1719
 AliZDCv3.cxx:1720
 AliZDCv3.cxx:1721
 AliZDCv3.cxx:1722
 AliZDCv3.cxx:1723
 AliZDCv3.cxx:1724
 AliZDCv3.cxx:1725
 AliZDCv3.cxx:1726
 AliZDCv3.cxx:1727
 AliZDCv3.cxx:1728
 AliZDCv3.cxx:1729
 AliZDCv3.cxx:1730
 AliZDCv3.cxx:1731
 AliZDCv3.cxx:1732
 AliZDCv3.cxx:1733
 AliZDCv3.cxx:1734
 AliZDCv3.cxx:1735
 AliZDCv3.cxx:1736
 AliZDCv3.cxx:1737
 AliZDCv3.cxx:1738
 AliZDCv3.cxx:1739
 AliZDCv3.cxx:1740
 AliZDCv3.cxx:1741
 AliZDCv3.cxx:1742
 AliZDCv3.cxx:1743
 AliZDCv3.cxx:1744
 AliZDCv3.cxx:1745
 AliZDCv3.cxx:1746
 AliZDCv3.cxx:1747
 AliZDCv3.cxx:1748
 AliZDCv3.cxx:1749
 AliZDCv3.cxx:1750
 AliZDCv3.cxx:1751
 AliZDCv3.cxx:1752
 AliZDCv3.cxx:1753
 AliZDCv3.cxx:1754
 AliZDCv3.cxx:1755
 AliZDCv3.cxx:1756
 AliZDCv3.cxx:1757
 AliZDCv3.cxx:1758
 AliZDCv3.cxx:1759
 AliZDCv3.cxx:1760
 AliZDCv3.cxx:1761
 AliZDCv3.cxx:1762
 AliZDCv3.cxx:1763
 AliZDCv3.cxx:1764
 AliZDCv3.cxx:1765
 AliZDCv3.cxx:1766
 AliZDCv3.cxx:1767
 AliZDCv3.cxx:1768
 AliZDCv3.cxx:1769
 AliZDCv3.cxx:1770
 AliZDCv3.cxx:1771
 AliZDCv3.cxx:1772
 AliZDCv3.cxx:1773
 AliZDCv3.cxx:1774
 AliZDCv3.cxx:1775
 AliZDCv3.cxx:1776
 AliZDCv3.cxx:1777
 AliZDCv3.cxx:1778
 AliZDCv3.cxx:1779
 AliZDCv3.cxx:1780
 AliZDCv3.cxx:1781
 AliZDCv3.cxx:1782
 AliZDCv3.cxx:1783
 AliZDCv3.cxx:1784
 AliZDCv3.cxx:1785
 AliZDCv3.cxx:1786
 AliZDCv3.cxx:1787
 AliZDCv3.cxx:1788
 AliZDCv3.cxx:1789
 AliZDCv3.cxx:1790
 AliZDCv3.cxx:1791
 AliZDCv3.cxx:1792
 AliZDCv3.cxx:1793
 AliZDCv3.cxx:1794
 AliZDCv3.cxx:1795
 AliZDCv3.cxx:1796
 AliZDCv3.cxx:1797
 AliZDCv3.cxx:1798
 AliZDCv3.cxx:1799
 AliZDCv3.cxx:1800
 AliZDCv3.cxx:1801
 AliZDCv3.cxx:1802
 AliZDCv3.cxx:1803
 AliZDCv3.cxx:1804
 AliZDCv3.cxx:1805
 AliZDCv3.cxx:1806
 AliZDCv3.cxx:1807
 AliZDCv3.cxx:1808
 AliZDCv3.cxx:1809
 AliZDCv3.cxx:1810
 AliZDCv3.cxx:1811
 AliZDCv3.cxx:1812
 AliZDCv3.cxx:1813
 AliZDCv3.cxx:1814
 AliZDCv3.cxx:1815
 AliZDCv3.cxx:1816
 AliZDCv3.cxx:1817
 AliZDCv3.cxx:1818
 AliZDCv3.cxx:1819
 AliZDCv3.cxx:1820
 AliZDCv3.cxx:1821
 AliZDCv3.cxx:1822
 AliZDCv3.cxx:1823
 AliZDCv3.cxx:1824
 AliZDCv3.cxx:1825
 AliZDCv3.cxx:1826
 AliZDCv3.cxx:1827
 AliZDCv3.cxx:1828
 AliZDCv3.cxx:1829
 AliZDCv3.cxx:1830
 AliZDCv3.cxx:1831
 AliZDCv3.cxx:1832
 AliZDCv3.cxx:1833
 AliZDCv3.cxx:1834
 AliZDCv3.cxx:1835
 AliZDCv3.cxx:1836
 AliZDCv3.cxx:1837
 AliZDCv3.cxx:1838
 AliZDCv3.cxx:1839
 AliZDCv3.cxx:1840
 AliZDCv3.cxx:1841
 AliZDCv3.cxx:1842
 AliZDCv3.cxx:1843
 AliZDCv3.cxx:1844
 AliZDCv3.cxx:1845
 AliZDCv3.cxx:1846
 AliZDCv3.cxx:1847
 AliZDCv3.cxx:1848
 AliZDCv3.cxx:1849
 AliZDCv3.cxx:1850
 AliZDCv3.cxx:1851
 AliZDCv3.cxx:1852
 AliZDCv3.cxx:1853
 AliZDCv3.cxx:1854
 AliZDCv3.cxx:1855
 AliZDCv3.cxx:1856
 AliZDCv3.cxx:1857
 AliZDCv3.cxx:1858
 AliZDCv3.cxx:1859
 AliZDCv3.cxx:1860
 AliZDCv3.cxx:1861
 AliZDCv3.cxx:1862
 AliZDCv3.cxx:1863
 AliZDCv3.cxx:1864
 AliZDCv3.cxx:1865
 AliZDCv3.cxx:1866
 AliZDCv3.cxx:1867
 AliZDCv3.cxx:1868
 AliZDCv3.cxx:1869
 AliZDCv3.cxx:1870
 AliZDCv3.cxx:1871
 AliZDCv3.cxx:1872
 AliZDCv3.cxx:1873
 AliZDCv3.cxx:1874
 AliZDCv3.cxx:1875
 AliZDCv3.cxx:1876
 AliZDCv3.cxx:1877
 AliZDCv3.cxx:1878
 AliZDCv3.cxx:1879
 AliZDCv3.cxx:1880
 AliZDCv3.cxx:1881
 AliZDCv3.cxx:1882
 AliZDCv3.cxx:1883
 AliZDCv3.cxx:1884
 AliZDCv3.cxx:1885
 AliZDCv3.cxx:1886
 AliZDCv3.cxx:1887
 AliZDCv3.cxx:1888
 AliZDCv3.cxx:1889
 AliZDCv3.cxx:1890
 AliZDCv3.cxx:1891
 AliZDCv3.cxx:1892
 AliZDCv3.cxx:1893
 AliZDCv3.cxx:1894
 AliZDCv3.cxx:1895
 AliZDCv3.cxx:1896
 AliZDCv3.cxx:1897
 AliZDCv3.cxx:1898
 AliZDCv3.cxx:1899
 AliZDCv3.cxx:1900
 AliZDCv3.cxx:1901
 AliZDCv3.cxx:1902
 AliZDCv3.cxx:1903
 AliZDCv3.cxx:1904
 AliZDCv3.cxx:1905
 AliZDCv3.cxx:1906
 AliZDCv3.cxx:1907
 AliZDCv3.cxx:1908
 AliZDCv3.cxx:1909
 AliZDCv3.cxx:1910
 AliZDCv3.cxx:1911
 AliZDCv3.cxx:1912
 AliZDCv3.cxx:1913
 AliZDCv3.cxx:1914
 AliZDCv3.cxx:1915
 AliZDCv3.cxx:1916
 AliZDCv3.cxx:1917
 AliZDCv3.cxx:1918
 AliZDCv3.cxx:1919
 AliZDCv3.cxx:1920
 AliZDCv3.cxx:1921
 AliZDCv3.cxx:1922
 AliZDCv3.cxx:1923
 AliZDCv3.cxx:1924
 AliZDCv3.cxx:1925
 AliZDCv3.cxx:1926
 AliZDCv3.cxx:1927
 AliZDCv3.cxx:1928
 AliZDCv3.cxx:1929
 AliZDCv3.cxx:1930
 AliZDCv3.cxx:1931
 AliZDCv3.cxx:1932
 AliZDCv3.cxx:1933
 AliZDCv3.cxx:1934
 AliZDCv3.cxx:1935
 AliZDCv3.cxx:1936
 AliZDCv3.cxx:1937
 AliZDCv3.cxx:1938
 AliZDCv3.cxx:1939
 AliZDCv3.cxx:1940
 AliZDCv3.cxx:1941
 AliZDCv3.cxx:1942
 AliZDCv3.cxx:1943
 AliZDCv3.cxx:1944
 AliZDCv3.cxx:1945
 AliZDCv3.cxx:1946
 AliZDCv3.cxx:1947
 AliZDCv3.cxx:1948
 AliZDCv3.cxx:1949
 AliZDCv3.cxx:1950
 AliZDCv3.cxx:1951
 AliZDCv3.cxx:1952
 AliZDCv3.cxx:1953
 AliZDCv3.cxx:1954
 AliZDCv3.cxx:1955
 AliZDCv3.cxx:1956
 AliZDCv3.cxx:1957
 AliZDCv3.cxx:1958
 AliZDCv3.cxx:1959
 AliZDCv3.cxx:1960
 AliZDCv3.cxx:1961
 AliZDCv3.cxx:1962
 AliZDCv3.cxx:1963
 AliZDCv3.cxx:1964
 AliZDCv3.cxx:1965
 AliZDCv3.cxx:1966
 AliZDCv3.cxx:1967
 AliZDCv3.cxx:1968
 AliZDCv3.cxx:1969
 AliZDCv3.cxx:1970
 AliZDCv3.cxx:1971
 AliZDCv3.cxx:1972
 AliZDCv3.cxx:1973
 AliZDCv3.cxx:1974
 AliZDCv3.cxx:1975
 AliZDCv3.cxx:1976
 AliZDCv3.cxx:1977
 AliZDCv3.cxx:1978
 AliZDCv3.cxx:1979
 AliZDCv3.cxx:1980
 AliZDCv3.cxx:1981
 AliZDCv3.cxx:1982
 AliZDCv3.cxx:1983
 AliZDCv3.cxx:1984
 AliZDCv3.cxx:1985
 AliZDCv3.cxx:1986
 AliZDCv3.cxx:1987
 AliZDCv3.cxx:1988
 AliZDCv3.cxx:1989
 AliZDCv3.cxx:1990
 AliZDCv3.cxx:1991
 AliZDCv3.cxx:1992
 AliZDCv3.cxx:1993
 AliZDCv3.cxx:1994
 AliZDCv3.cxx:1995
 AliZDCv3.cxx:1996
 AliZDCv3.cxx:1997
 AliZDCv3.cxx:1998
 AliZDCv3.cxx:1999
 AliZDCv3.cxx:2000
 AliZDCv3.cxx:2001
 AliZDCv3.cxx:2002
 AliZDCv3.cxx:2003
 AliZDCv3.cxx:2004
 AliZDCv3.cxx:2005
 AliZDCv3.cxx:2006
 AliZDCv3.cxx:2007
 AliZDCv3.cxx:2008
 AliZDCv3.cxx:2009
 AliZDCv3.cxx:2010
 AliZDCv3.cxx:2011
 AliZDCv3.cxx:2012
 AliZDCv3.cxx:2013
 AliZDCv3.cxx:2014
 AliZDCv3.cxx:2015
 AliZDCv3.cxx:2016
 AliZDCv3.cxx:2017
 AliZDCv3.cxx:2018
 AliZDCv3.cxx:2019
 AliZDCv3.cxx:2020
 AliZDCv3.cxx:2021
 AliZDCv3.cxx:2022
 AliZDCv3.cxx:2023
 AliZDCv3.cxx:2024
 AliZDCv3.cxx:2025
 AliZDCv3.cxx:2026
 AliZDCv3.cxx:2027
 AliZDCv3.cxx:2028
 AliZDCv3.cxx:2029
 AliZDCv3.cxx:2030
 AliZDCv3.cxx:2031
 AliZDCv3.cxx:2032
 AliZDCv3.cxx:2033
 AliZDCv3.cxx:2034
 AliZDCv3.cxx:2035
 AliZDCv3.cxx:2036
 AliZDCv3.cxx:2037
 AliZDCv3.cxx:2038
 AliZDCv3.cxx:2039
 AliZDCv3.cxx:2040
 AliZDCv3.cxx:2041
 AliZDCv3.cxx:2042
 AliZDCv3.cxx:2043
 AliZDCv3.cxx:2044
 AliZDCv3.cxx:2045
 AliZDCv3.cxx:2046
 AliZDCv3.cxx:2047
 AliZDCv3.cxx:2048
 AliZDCv3.cxx:2049
 AliZDCv3.cxx:2050
 AliZDCv3.cxx:2051
 AliZDCv3.cxx:2052
 AliZDCv3.cxx:2053
 AliZDCv3.cxx:2054
 AliZDCv3.cxx:2055
 AliZDCv3.cxx:2056
 AliZDCv3.cxx:2057
 AliZDCv3.cxx:2058
 AliZDCv3.cxx:2059
 AliZDCv3.cxx:2060
 AliZDCv3.cxx:2061
 AliZDCv3.cxx:2062
 AliZDCv3.cxx:2063
 AliZDCv3.cxx:2064
 AliZDCv3.cxx:2065
 AliZDCv3.cxx:2066
 AliZDCv3.cxx:2067
 AliZDCv3.cxx:2068
 AliZDCv3.cxx:2069
 AliZDCv3.cxx:2070
 AliZDCv3.cxx:2071
 AliZDCv3.cxx:2072
 AliZDCv3.cxx:2073
 AliZDCv3.cxx:2074
 AliZDCv3.cxx:2075
 AliZDCv3.cxx:2076
 AliZDCv3.cxx:2077
 AliZDCv3.cxx:2078
 AliZDCv3.cxx:2079
 AliZDCv3.cxx:2080
 AliZDCv3.cxx:2081
 AliZDCv3.cxx:2082
 AliZDCv3.cxx:2083
 AliZDCv3.cxx:2084
 AliZDCv3.cxx:2085
 AliZDCv3.cxx:2086
 AliZDCv3.cxx:2087
 AliZDCv3.cxx:2088
 AliZDCv3.cxx:2089
 AliZDCv3.cxx:2090
 AliZDCv3.cxx:2091
 AliZDCv3.cxx:2092
 AliZDCv3.cxx:2093
 AliZDCv3.cxx:2094
 AliZDCv3.cxx:2095
 AliZDCv3.cxx:2096
 AliZDCv3.cxx:2097
 AliZDCv3.cxx:2098
 AliZDCv3.cxx:2099
 AliZDCv3.cxx:2100
 AliZDCv3.cxx:2101
 AliZDCv3.cxx:2102
 AliZDCv3.cxx:2103
 AliZDCv3.cxx:2104
 AliZDCv3.cxx:2105
 AliZDCv3.cxx:2106
 AliZDCv3.cxx:2107
 AliZDCv3.cxx:2108
 AliZDCv3.cxx:2109
 AliZDCv3.cxx:2110
 AliZDCv3.cxx:2111
 AliZDCv3.cxx:2112
 AliZDCv3.cxx:2113
 AliZDCv3.cxx:2114
 AliZDCv3.cxx:2115
 AliZDCv3.cxx:2116
 AliZDCv3.cxx:2117
 AliZDCv3.cxx:2118
 AliZDCv3.cxx:2119
 AliZDCv3.cxx:2120
 AliZDCv3.cxx:2121
 AliZDCv3.cxx:2122
 AliZDCv3.cxx:2123
 AliZDCv3.cxx:2124
 AliZDCv3.cxx:2125
 AliZDCv3.cxx:2126
 AliZDCv3.cxx:2127
 AliZDCv3.cxx:2128
 AliZDCv3.cxx:2129
 AliZDCv3.cxx:2130
 AliZDCv3.cxx:2131
 AliZDCv3.cxx:2132
 AliZDCv3.cxx:2133
 AliZDCv3.cxx:2134
 AliZDCv3.cxx:2135
 AliZDCv3.cxx:2136
 AliZDCv3.cxx:2137
 AliZDCv3.cxx:2138
 AliZDCv3.cxx:2139
 AliZDCv3.cxx:2140
 AliZDCv3.cxx:2141
 AliZDCv3.cxx:2142
 AliZDCv3.cxx:2143
 AliZDCv3.cxx:2144
 AliZDCv3.cxx:2145
 AliZDCv3.cxx:2146
 AliZDCv3.cxx:2147
 AliZDCv3.cxx:2148
 AliZDCv3.cxx:2149
 AliZDCv3.cxx:2150
 AliZDCv3.cxx:2151
 AliZDCv3.cxx:2152
 AliZDCv3.cxx:2153
 AliZDCv3.cxx:2154
 AliZDCv3.cxx:2155
 AliZDCv3.cxx:2156
 AliZDCv3.cxx:2157
 AliZDCv3.cxx:2158
 AliZDCv3.cxx:2159
 AliZDCv3.cxx:2160
 AliZDCv3.cxx:2161
 AliZDCv3.cxx:2162
 AliZDCv3.cxx:2163
 AliZDCv3.cxx:2164
 AliZDCv3.cxx:2165
 AliZDCv3.cxx:2166
 AliZDCv3.cxx:2167
 AliZDCv3.cxx:2168
 AliZDCv3.cxx:2169
 AliZDCv3.cxx:2170
 AliZDCv3.cxx:2171
 AliZDCv3.cxx:2172
 AliZDCv3.cxx:2173
 AliZDCv3.cxx:2174
 AliZDCv3.cxx:2175
 AliZDCv3.cxx:2176
 AliZDCv3.cxx:2177
 AliZDCv3.cxx:2178
 AliZDCv3.cxx:2179
 AliZDCv3.cxx:2180
 AliZDCv3.cxx:2181
 AliZDCv3.cxx:2182
 AliZDCv3.cxx:2183
 AliZDCv3.cxx:2184
 AliZDCv3.cxx:2185
 AliZDCv3.cxx:2186
 AliZDCv3.cxx:2187
 AliZDCv3.cxx:2188
 AliZDCv3.cxx:2189
 AliZDCv3.cxx:2190
 AliZDCv3.cxx:2191
 AliZDCv3.cxx:2192
 AliZDCv3.cxx:2193
 AliZDCv3.cxx:2194
 AliZDCv3.cxx:2195
 AliZDCv3.cxx:2196
 AliZDCv3.cxx:2197
 AliZDCv3.cxx:2198
 AliZDCv3.cxx:2199
 AliZDCv3.cxx:2200
 AliZDCv3.cxx:2201
 AliZDCv3.cxx:2202
 AliZDCv3.cxx:2203
 AliZDCv3.cxx:2204
 AliZDCv3.cxx:2205
 AliZDCv3.cxx:2206
 AliZDCv3.cxx:2207
 AliZDCv3.cxx:2208
 AliZDCv3.cxx:2209
 AliZDCv3.cxx:2210
 AliZDCv3.cxx:2211
 AliZDCv3.cxx:2212
 AliZDCv3.cxx:2213
 AliZDCv3.cxx:2214
 AliZDCv3.cxx:2215
 AliZDCv3.cxx:2216
 AliZDCv3.cxx:2217
 AliZDCv3.cxx:2218
 AliZDCv3.cxx:2219
 AliZDCv3.cxx:2220
 AliZDCv3.cxx:2221
 AliZDCv3.cxx:2222
 AliZDCv3.cxx:2223
 AliZDCv3.cxx:2224
 AliZDCv3.cxx:2225
 AliZDCv3.cxx:2226
 AliZDCv3.cxx:2227
 AliZDCv3.cxx:2228
 AliZDCv3.cxx:2229
 AliZDCv3.cxx:2230
 AliZDCv3.cxx:2231
 AliZDCv3.cxx:2232
 AliZDCv3.cxx:2233
 AliZDCv3.cxx:2234
 AliZDCv3.cxx:2235
 AliZDCv3.cxx:2236
 AliZDCv3.cxx:2237
 AliZDCv3.cxx:2238
 AliZDCv3.cxx:2239
 AliZDCv3.cxx:2240
 AliZDCv3.cxx:2241
 AliZDCv3.cxx:2242
 AliZDCv3.cxx:2243
 AliZDCv3.cxx:2244
 AliZDCv3.cxx:2245
 AliZDCv3.cxx:2246
 AliZDCv3.cxx:2247
 AliZDCv3.cxx:2248
 AliZDCv3.cxx:2249
 AliZDCv3.cxx:2250
 AliZDCv3.cxx:2251
 AliZDCv3.cxx:2252
 AliZDCv3.cxx:2253
 AliZDCv3.cxx:2254
 AliZDCv3.cxx:2255
 AliZDCv3.cxx:2256
 AliZDCv3.cxx:2257
 AliZDCv3.cxx:2258
 AliZDCv3.cxx:2259
 AliZDCv3.cxx:2260
 AliZDCv3.cxx:2261
 AliZDCv3.cxx:2262
 AliZDCv3.cxx:2263
 AliZDCv3.cxx:2264
 AliZDCv3.cxx:2265
 AliZDCv3.cxx:2266
 AliZDCv3.cxx:2267
 AliZDCv3.cxx:2268
 AliZDCv3.cxx:2269
 AliZDCv3.cxx:2270
 AliZDCv3.cxx:2271
 AliZDCv3.cxx:2272
 AliZDCv3.cxx:2273
 AliZDCv3.cxx:2274
 AliZDCv3.cxx:2275
 AliZDCv3.cxx:2276
 AliZDCv3.cxx:2277
 AliZDCv3.cxx:2278
 AliZDCv3.cxx:2279
 AliZDCv3.cxx:2280
 AliZDCv3.cxx:2281
 AliZDCv3.cxx:2282
 AliZDCv3.cxx:2283
 AliZDCv3.cxx:2284
 AliZDCv3.cxx:2285
 AliZDCv3.cxx:2286
 AliZDCv3.cxx:2287
 AliZDCv3.cxx:2288
 AliZDCv3.cxx:2289
 AliZDCv3.cxx:2290
 AliZDCv3.cxx:2291
 AliZDCv3.cxx:2292
 AliZDCv3.cxx:2293
 AliZDCv3.cxx:2294
 AliZDCv3.cxx:2295
 AliZDCv3.cxx:2296
 AliZDCv3.cxx:2297
 AliZDCv3.cxx:2298
 AliZDCv3.cxx:2299
 AliZDCv3.cxx:2300
 AliZDCv3.cxx:2301
 AliZDCv3.cxx:2302
 AliZDCv3.cxx:2303
 AliZDCv3.cxx:2304
 AliZDCv3.cxx:2305
 AliZDCv3.cxx:2306
 AliZDCv3.cxx:2307
 AliZDCv3.cxx:2308
 AliZDCv3.cxx:2309
 AliZDCv3.cxx:2310
 AliZDCv3.cxx:2311
 AliZDCv3.cxx:2312
 AliZDCv3.cxx:2313
 AliZDCv3.cxx:2314
 AliZDCv3.cxx:2315
 AliZDCv3.cxx:2316
 AliZDCv3.cxx:2317
 AliZDCv3.cxx:2318
 AliZDCv3.cxx:2319
 AliZDCv3.cxx:2320
 AliZDCv3.cxx:2321
 AliZDCv3.cxx:2322
 AliZDCv3.cxx:2323
 AliZDCv3.cxx:2324
 AliZDCv3.cxx:2325
 AliZDCv3.cxx:2326
 AliZDCv3.cxx:2327
 AliZDCv3.cxx:2328
 AliZDCv3.cxx:2329
 AliZDCv3.cxx:2330
 AliZDCv3.cxx:2331
 AliZDCv3.cxx:2332
 AliZDCv3.cxx:2333
 AliZDCv3.cxx:2334
 AliZDCv3.cxx:2335
 AliZDCv3.cxx:2336
 AliZDCv3.cxx:2337
 AliZDCv3.cxx:2338
 AliZDCv3.cxx:2339
 AliZDCv3.cxx:2340
 AliZDCv3.cxx:2341
 AliZDCv3.cxx:2342
 AliZDCv3.cxx:2343
 AliZDCv3.cxx:2344
 AliZDCv3.cxx:2345
 AliZDCv3.cxx:2346
 AliZDCv3.cxx:2347
 AliZDCv3.cxx:2348
 AliZDCv3.cxx:2349
 AliZDCv3.cxx:2350
 AliZDCv3.cxx:2351
 AliZDCv3.cxx:2352
 AliZDCv3.cxx:2353
 AliZDCv3.cxx:2354
 AliZDCv3.cxx:2355
 AliZDCv3.cxx:2356
 AliZDCv3.cxx:2357
 AliZDCv3.cxx:2358
 AliZDCv3.cxx:2359
 AliZDCv3.cxx:2360
 AliZDCv3.cxx:2361
 AliZDCv3.cxx:2362
 AliZDCv3.cxx:2363
 AliZDCv3.cxx:2364
 AliZDCv3.cxx:2365
 AliZDCv3.cxx:2366
 AliZDCv3.cxx:2367
 AliZDCv3.cxx:2368
 AliZDCv3.cxx:2369
 AliZDCv3.cxx:2370
 AliZDCv3.cxx:2371
 AliZDCv3.cxx:2372
 AliZDCv3.cxx:2373
 AliZDCv3.cxx:2374
 AliZDCv3.cxx:2375
 AliZDCv3.cxx:2376
 AliZDCv3.cxx:2377
 AliZDCv3.cxx:2378
 AliZDCv3.cxx:2379
 AliZDCv3.cxx:2380
 AliZDCv3.cxx:2381
 AliZDCv3.cxx:2382
 AliZDCv3.cxx:2383
 AliZDCv3.cxx:2384
 AliZDCv3.cxx:2385
 AliZDCv3.cxx:2386
 AliZDCv3.cxx:2387
 AliZDCv3.cxx:2388
 AliZDCv3.cxx:2389
 AliZDCv3.cxx:2390
 AliZDCv3.cxx:2391
 AliZDCv3.cxx:2392
 AliZDCv3.cxx:2393
 AliZDCv3.cxx:2394
 AliZDCv3.cxx:2395
 AliZDCv3.cxx:2396
 AliZDCv3.cxx:2397
 AliZDCv3.cxx:2398
 AliZDCv3.cxx:2399
 AliZDCv3.cxx:2400
 AliZDCv3.cxx:2401
 AliZDCv3.cxx:2402
 AliZDCv3.cxx:2403
 AliZDCv3.cxx:2404
 AliZDCv3.cxx:2405
 AliZDCv3.cxx:2406
 AliZDCv3.cxx:2407
 AliZDCv3.cxx:2408
 AliZDCv3.cxx:2409
 AliZDCv3.cxx:2410
 AliZDCv3.cxx:2411
 AliZDCv3.cxx:2412
 AliZDCv3.cxx:2413
 AliZDCv3.cxx:2414
 AliZDCv3.cxx:2415
 AliZDCv3.cxx:2416
 AliZDCv3.cxx:2417
 AliZDCv3.cxx:2418
 AliZDCv3.cxx:2419
 AliZDCv3.cxx:2420
 AliZDCv3.cxx:2421
 AliZDCv3.cxx:2422
 AliZDCv3.cxx:2423
 AliZDCv3.cxx:2424
 AliZDCv3.cxx:2425
 AliZDCv3.cxx:2426
 AliZDCv3.cxx:2427
 AliZDCv3.cxx:2428
 AliZDCv3.cxx:2429
 AliZDCv3.cxx:2430
 AliZDCv3.cxx:2431
 AliZDCv3.cxx:2432
 AliZDCv3.cxx:2433
 AliZDCv3.cxx:2434
 AliZDCv3.cxx:2435
 AliZDCv3.cxx:2436
 AliZDCv3.cxx:2437
 AliZDCv3.cxx:2438
 AliZDCv3.cxx:2439
 AliZDCv3.cxx:2440
 AliZDCv3.cxx:2441
 AliZDCv3.cxx:2442
 AliZDCv3.cxx:2443
 AliZDCv3.cxx:2444
 AliZDCv3.cxx:2445
 AliZDCv3.cxx:2446
 AliZDCv3.cxx:2447
 AliZDCv3.cxx:2448
 AliZDCv3.cxx:2449
 AliZDCv3.cxx:2450
 AliZDCv3.cxx:2451
 AliZDCv3.cxx:2452
 AliZDCv3.cxx:2453
 AliZDCv3.cxx:2454
 AliZDCv3.cxx:2455
 AliZDCv3.cxx:2456
 AliZDCv3.cxx:2457
 AliZDCv3.cxx:2458
 AliZDCv3.cxx:2459
 AliZDCv3.cxx:2460
 AliZDCv3.cxx:2461
 AliZDCv3.cxx:2462
 AliZDCv3.cxx:2463
 AliZDCv3.cxx:2464
 AliZDCv3.cxx:2465
 AliZDCv3.cxx:2466
 AliZDCv3.cxx:2467
 AliZDCv3.cxx:2468
 AliZDCv3.cxx:2469
 AliZDCv3.cxx:2470
 AliZDCv3.cxx:2471
 AliZDCv3.cxx:2472
 AliZDCv3.cxx:2473
 AliZDCv3.cxx:2474
 AliZDCv3.cxx:2475
 AliZDCv3.cxx:2476
 AliZDCv3.cxx:2477
 AliZDCv3.cxx:2478
 AliZDCv3.cxx:2479
 AliZDCv3.cxx:2480
 AliZDCv3.cxx:2481
 AliZDCv3.cxx:2482
 AliZDCv3.cxx:2483
 AliZDCv3.cxx:2484
 AliZDCv3.cxx:2485
 AliZDCv3.cxx:2486
 AliZDCv3.cxx:2487
 AliZDCv3.cxx:2488
 AliZDCv3.cxx:2489
 AliZDCv3.cxx:2490
 AliZDCv3.cxx:2491
 AliZDCv3.cxx:2492
 AliZDCv3.cxx:2493
 AliZDCv3.cxx:2494
 AliZDCv3.cxx:2495
 AliZDCv3.cxx:2496
 AliZDCv3.cxx:2497
 AliZDCv3.cxx:2498
 AliZDCv3.cxx:2499
 AliZDCv3.cxx:2500
 AliZDCv3.cxx:2501
 AliZDCv3.cxx:2502
 AliZDCv3.cxx:2503
 AliZDCv3.cxx:2504
 AliZDCv3.cxx:2505
 AliZDCv3.cxx:2506
 AliZDCv3.cxx:2507
 AliZDCv3.cxx:2508
 AliZDCv3.cxx:2509
 AliZDCv3.cxx:2510
 AliZDCv3.cxx:2511
 AliZDCv3.cxx:2512
 AliZDCv3.cxx:2513
 AliZDCv3.cxx:2514
 AliZDCv3.cxx:2515
 AliZDCv3.cxx:2516
 AliZDCv3.cxx:2517
 AliZDCv3.cxx:2518
 AliZDCv3.cxx:2519
 AliZDCv3.cxx:2520
 AliZDCv3.cxx:2521
 AliZDCv3.cxx:2522
 AliZDCv3.cxx:2523
 AliZDCv3.cxx:2524
 AliZDCv3.cxx:2525
 AliZDCv3.cxx:2526
 AliZDCv3.cxx:2527
 AliZDCv3.cxx:2528
 AliZDCv3.cxx:2529
 AliZDCv3.cxx:2530
 AliZDCv3.cxx:2531
 AliZDCv3.cxx:2532
 AliZDCv3.cxx:2533
 AliZDCv3.cxx:2534
 AliZDCv3.cxx:2535
 AliZDCv3.cxx:2536
 AliZDCv3.cxx:2537
 AliZDCv3.cxx:2538
 AliZDCv3.cxx:2539
 AliZDCv3.cxx:2540
 AliZDCv3.cxx:2541
 AliZDCv3.cxx:2542
 AliZDCv3.cxx:2543
 AliZDCv3.cxx:2544
 AliZDCv3.cxx:2545
 AliZDCv3.cxx:2546
 AliZDCv3.cxx:2547
 AliZDCv3.cxx:2548
 AliZDCv3.cxx:2549
 AliZDCv3.cxx:2550
 AliZDCv3.cxx:2551
 AliZDCv3.cxx:2552
 AliZDCv3.cxx:2553
 AliZDCv3.cxx:2554
 AliZDCv3.cxx:2555
 AliZDCv3.cxx:2556
 AliZDCv3.cxx:2557
 AliZDCv3.cxx:2558
 AliZDCv3.cxx:2559
 AliZDCv3.cxx:2560
 AliZDCv3.cxx:2561
 AliZDCv3.cxx:2562
 AliZDCv3.cxx:2563
 AliZDCv3.cxx:2564
 AliZDCv3.cxx:2565
 AliZDCv3.cxx:2566
 AliZDCv3.cxx:2567
 AliZDCv3.cxx:2568
 AliZDCv3.cxx:2569
 AliZDCv3.cxx:2570
 AliZDCv3.cxx:2571
 AliZDCv3.cxx:2572
 AliZDCv3.cxx:2573
 AliZDCv3.cxx:2574
 AliZDCv3.cxx:2575
 AliZDCv3.cxx:2576
 AliZDCv3.cxx:2577
 AliZDCv3.cxx:2578
 AliZDCv3.cxx:2579
 AliZDCv3.cxx:2580
 AliZDCv3.cxx:2581
 AliZDCv3.cxx:2582
 AliZDCv3.cxx:2583
 AliZDCv3.cxx:2584
 AliZDCv3.cxx:2585
 AliZDCv3.cxx:2586
 AliZDCv3.cxx:2587
 AliZDCv3.cxx:2588
 AliZDCv3.cxx:2589
 AliZDCv3.cxx:2590
 AliZDCv3.cxx:2591
 AliZDCv3.cxx:2592
 AliZDCv3.cxx:2593
 AliZDCv3.cxx:2594
 AliZDCv3.cxx:2595
 AliZDCv3.cxx:2596
 AliZDCv3.cxx:2597
 AliZDCv3.cxx:2598
 AliZDCv3.cxx:2599
 AliZDCv3.cxx:2600
 AliZDCv3.cxx:2601
 AliZDCv3.cxx:2602
 AliZDCv3.cxx:2603
 AliZDCv3.cxx:2604
 AliZDCv3.cxx:2605
 AliZDCv3.cxx:2606
 AliZDCv3.cxx:2607
 AliZDCv3.cxx:2608
 AliZDCv3.cxx:2609
 AliZDCv3.cxx:2610
 AliZDCv3.cxx:2611
 AliZDCv3.cxx:2612
 AliZDCv3.cxx:2613
 AliZDCv3.cxx:2614
 AliZDCv3.cxx:2615
 AliZDCv3.cxx:2616
 AliZDCv3.cxx:2617
 AliZDCv3.cxx:2618
 AliZDCv3.cxx:2619
 AliZDCv3.cxx:2620
 AliZDCv3.cxx:2621
 AliZDCv3.cxx:2622
 AliZDCv3.cxx:2623
 AliZDCv3.cxx:2624
 AliZDCv3.cxx:2625
 AliZDCv3.cxx:2626
 AliZDCv3.cxx:2627
 AliZDCv3.cxx:2628
 AliZDCv3.cxx:2629
 AliZDCv3.cxx:2630