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.                  *
 **************************************************************************/

/* $Id$ */


// Implementation of the class to calculate the parton energy loss
// Based on the "BDMPS" quenching weights by C.A.Salgado and U.A.Wiedemann
// References:
// C.A.Salgado and U.A.Wiedemann, Phys.Rev.D68 (2003) 014008 [hep-ph/0302184]
// A.Dainese, Eur.Phys.J.C, in press, [nucl-ex/0312005]             
//
//
//            Origin:  C. Loizides   constantinos.loizides@cern.ch
//                     A. Dainese    andrea.dainese@pd.infn.it            
//
//=================== Added by C. Loizides 27/03/04 ===========================
//
// Added support for k-Quenching, where wc=I1*k and R=2I1^2/I0*k
// (see the AliFastGlauber class for definition of I0/I1)
//-----------------------------------------------------------------------------

#include <Riostream.h>
#include <TF1.h>
#include <TH1F.h>
#include <TH2F.h>
#include <TCanvas.h>
#include <TGraph.h>
#include <TROOT.h>
#include <TSystem.h>
#include <TString.h>
#include <TLegend.h>
#include "AliQuenchingWeights.h"

using std::fstream;
using std::ios;
ClassImp(AliQuenchingWeights)

// conversion from fm to GeV^-1: 1 fm = fmGeV GeV^-1
const Double_t AliQuenchingWeights::fgkConvFmToInvGeV = 1./0.197; 

// maximum value of R
const Double_t AliQuenchingWeights::fgkRMax = 1.e6; 

// hist binning
const Int_t AliQuenchingWeights::fgkBins = 1300; 
const Double_t AliQuenchingWeights::fgkMaxBin = 1.3; 

// counter for histogram labels
Int_t AliQuenchingWeights::fgCounter = 0; 


AliQuenchingWeights::AliQuenchingWeights() 
    : TObject(),
      fInstanceNumber(fgCounter++),
      fMultSoft(kTRUE), 
      fECMethod(kDefault),
      fQTransport(1.),
      fMu(1.),
      fK(4.e5),
      fLengthMax(20),
      fLengthMaxOld(0),
      fHistos(0),
      fHisto(0),
      fTablesLoaded(kFALSE)
{
  //default constructor 

}

AliQuenchingWeights::AliQuenchingWeights(const AliQuenchingWeights& a) 
    : TObject(),
      fInstanceNumber(fgCounter++),
      fMultSoft(kTRUE), 
      fECMethod(kDefault),
      fQTransport(1.),
      fMu(1.),
      fK(4.e5),
      fLengthMax(20),
      fLengthMaxOld(0),
      fHistos(0),
      fHisto(0),
      fTablesLoaded(kFALSE)
{
  // copy constructor 

  fTablesLoaded=kFALSE;
  fHistos=0;
  fLengthMaxOld=0;
  fMultSoft=a.GetMultSoft();; 
  fMu=a.GetMu();
  fK=a.GetK();
  fQTransport=a.GetQTransport();
  fECMethod=(kECMethod)a.GetECMethod();
  fLengthMax=a.GetLengthMax();
  fInstanceNumber=fgCounter++;
  Char_t name[100];
  snprintf(name,100, "hhistoqw_%d",fInstanceNumber);
  fHisto = new TH1F(name,"",fgkBins,0.,fgkMaxBin);
  for(Int_t bin=1;bin<=fgkBins;bin++) 
      fHisto->SetBinContent(bin,0.);

  //Missing in the class is the pathname
  //to the tables, can be added if needed
}

AliQuenchingWeights::~AliQuenchingWeights()
{
  Reset();
  delete fHisto;
}

void AliQuenchingWeights::Init()
{
//    Initialization
    if (fHisto) return;
    fHisto = new TH1F(Form("hhistoqw_%d",fInstanceNumber),"",fgkBins,0.,fgkMaxBin);
    for(Int_t bin=1;bin<=fgkBins;bin++) 
	fHisto->SetBinContent(bin,0.);
}

void AliQuenchingWeights::Reset()
{
  //reset tables if there were used

  if(!fHistos) return;
  for(Int_t l=0;l<4*fLengthMaxOld;l++){
    delete fHistos[0][l];
    delete fHistos[1][l];
  }
  delete[] fHistos;
  fHistos=0;
  fLengthMaxOld=0;
}

void AliQuenchingWeights::SetECMethod(kECMethod type)
{
  //set energy constraint method

  fECMethod=type;
  if(fECMethod==kDefault)
    Info("SetECMethod","Energy Constraint Method set to DEFAULT:\nIf (sampled energy loss > parton energy) then sampled energy loss = parton energy.");
  else if(fECMethod==kReweight)
    Info("SetECMethod","Energy Constraint Method set to REWEIGHT:\nRequire sampled energy loss <= parton energy.");
  else Info("SetECMethod","Energy Constraint Method set to REWEIGHTCONT:\nRequire sampled energy loss <= parton energy (only implemented for FAST method.");
}

Int_t AliQuenchingWeights::InitMult(const Char_t *contall,const Char_t *discall) 
{
  // read in tables for multiple scattering approximation
  // path to continuum and to discrete part

  fTablesLoaded = kFALSE;
  fMultSoft=kTRUE;
  
  Char_t fname[1024];
  snprintf(fname,1024, "%s",gSystem->ExpandPathName(contall));
  //PH  ifstream fincont(fname);
  fstream fincont(fname,ios::in);
#if defined(__HP_aCC) || defined(__DECCXX)
  if(!fincont.rdbuf()->is_open()) return -1;
#else
  if(!fincont.is_open()) return -1;
#endif

  Int_t nn=0; //quarks
  while(fincont>>fxx[nn]>>fcaq[0][nn]>>fcaq[1][nn]>>fcaq[2][nn]>>fcaq[3][nn]>>
	fcaq[4][nn]>>fcaq[5][nn]>>fcaq[6][nn]>>fcaq[7][nn]>>fcaq[8][nn]>>
	fcaq[9][nn]>>fcaq[10][nn]>>fcaq[11][nn]>>fcaq[12][nn]>>fcaq[13][nn]>>
	fcaq[14][nn]>>fcaq[15][nn]>>fcaq[16][nn]>>fcaq[17][nn]>>fcaq[18][nn]>>
	fcaq[19][nn]>>fcaq[20][nn]>>fcaq[21][nn]>>fcaq[22][nn]>>fcaq[23][nn]>>
	fcaq[24][nn]>>fcaq[25][nn]>>fcaq[26][nn]>>fcaq[27][nn]>>fcaq[28][nn]>>
	fcaq[29][nn]>>fcaq[30][nn]>>fcaq[31][nn]>>fcaq[32][nn]>>fcaq[33][nn]) 
    {
      nn++;
      if(nn==261) break;
    }

  nn=0;       //gluons
  while(fincont>>fxxg[nn]>>fcag[0][nn]>>fcag[1][nn]>>fcag[2][nn]>>fcag[3][nn]>>
	fcag[4][nn]>>fcag[5][nn]>>fcag[6][nn]>>fcag[7][nn]>>fcag[8][nn]>>
	fcag[9][nn]>>fcag[10][nn]>>fcag[11][nn]>>fcag[12][nn]>>fcag[13][nn]>>
        fcag[14][nn]>>fcag[15][nn]>>fcag[16][nn]>>fcag[17][nn]>>fcag[18][nn]>>
	fcag[19][nn]>>fcag[20][nn]>>fcag[21][nn]>>fcag[22][nn]>>fcag[23][nn]>>
	fcag[24][nn]>>fcag[25][nn]>>fcag[26][nn]>>fcag[27][nn]>>fcag[28][nn]>>
	fcag[29][nn]>>fcag[30][nn]>>fcag[31][nn]>>fcag[32][nn]>>fcag[33][nn]) 
  {
    nn++;
    if(nn==261) break;
  }
  fincont.close();

  snprintf(fname,1024, "%s",gSystem->ExpandPathName(discall));
  //PH  ifstream findisc(fname); 
  fstream findisc(fname,ios::in); 
#if defined(__HP_aCC) || defined(__DECCXX)
  if(!findisc.rdbuf()->is_open()) return -1;
#else
  if(!findisc.is_open()) return -1;
#endif

  nn=0; //quarks
  while(findisc>>frrr[nn]>>fdaq[nn]) {
    nn++;
    if(nn==34) break;
  }
  nn=0; //gluons
  while(findisc>>frrrg[nn]>>fdag[nn]) {
    nn++;
    if(nn==34) break;
  }
  findisc.close();
  fTablesLoaded = kTRUE;
  return 0;
}

/*
C***************************************************************************
C	Quenching Weights for Multiple Soft Scattering
C		February 10, 2003
C
C	Refs:
C
C  Carlos A. Salgado and Urs A. Wiedemann, hep-ph/0302184.                 
C
C  Carlos A. Salgado and Urs A. Wiedemann Phys.Rev.Lett.89:092303,2002.
C 
C
C   This package contains quenching weights for gluon radiation in the
C   multiple soft scattering approximation.
C
C   swqmult returns the quenching weight for a quark (ipart=1) or 
C   a gluon (ipart=2) traversing a medium with transport coeficient q and
C   length L. The input values are rrrr=0.5*q*L^3 and xxxx=w/wc, where
C   wc=0.5*q*L^2 and w is the energy radiated. The output values are
C   the continuous and discrete (prefactor of the delta function) parts
C   of the quenching weights.
C	
C   In order to use this routine, the files cont.all and disc.all need to be
C   in the working directory. 
C
C   An initialization of the tables is needed by doing call initmult before
C   using swqmult.
C
C   Please, send us any comment:
C
C	urs.wiedemann@cern.ch
C	carlos.salgado@cern.ch
C
C
C-------------------------------------------------------------------

      SUBROUTINE swqmult(ipart,rrrr,xxxx,continuous,discrete)
*
      REAL*8           xx(400), daq(34), caq(34,261), rrr(34)
      COMMON /dataqua/    xx, daq, caq, rrr
*
      REAL*8           xxg(400), dag(34), cag(34,261), rrrg(34)
      COMMON /dataglu/    xxg, dag, cag, rrrg

      REAL*8           rrrr,xxxx, continuous, discrete
      REAL*8           rrin, xxin
      INTEGER          nrlow, nrhigh, nxlow, nxhigh
      REAL*8           rrhigh, rrlow, rfraclow, rfrachigh
      REAL*8           xfraclow, xfrachigh
      REAL*8           clow, chigh
*

      continuous=0.d0
      discrete=0.d0

      rrin = rrrr
      xxin = xxxx
*
      do 666, nr=1,34
         if (rrin.lt.rrr(nr)) then
            rrhigh = rrr(nr)
         else
            rrhigh = rrr(nr-1)
            rrlow = rrr(nr)
            nrlow = nr
            nrhigh = nr-1
            goto 665
         endif
 666     enddo
 665     continue
*
      rfraclow = (rrhigh-rrin)/(rrhigh-rrlow)
      rfrachigh = (rrin-rrlow)/(rrhigh-rrlow)
      if (rrin.gt.10000d0) then
         rfraclow = dlog(rrhigh/rrin)/dlog(rrhigh/rrlow)
         rfrachigh = dlog(rrin/rrlow)/dlog(rrhigh/rrlow)
      endif
*
      if (ipart.eq.1.and.rrin.ge.rrr(1)) then
         nrlow=1
         nrhigh=1
         rfraclow=1
         rfrachigh=0
      endif

      if (ipart.ne.1.and.rrin.ge.rrrg(1)) then
         nrlow=1
         nrhigh=1
         rfraclow=1
         rfrachigh=0
      endif

      if (xxxx.ge.xx(261)) go to 245

      nxlow = int(xxin/0.01) + 1
      nxhigh = nxlow + 1
      xfraclow = (xx(nxhigh)-xxin)/0.01
      xfrachigh = (xxin - xx(nxlow))/0.01
*
      if(ipart.eq.1) then
      clow = xfraclow*caq(nrlow,nxlow)+xfrachigh*caq(nrlow,nxhigh)
      chigh = xfraclow*caq(nrhigh,nxlow)+xfrachigh*caq(nrhigh,nxhigh)
      else
      clow = xfraclow*cag(nrlow,nxlow)+xfrachigh*cag(nrlow,nxhigh)
      chigh = xfraclow*cag(nrhigh,nxlow)+xfrachigh*cag(nrhigh,nxhigh)
      endif

      continuous = rfraclow*clow + rfrachigh*chigh

245   continue

      if(ipart.eq.1) then
      discrete = rfraclow*daq(nrlow) + rfrachigh*daq(nrhigh)
      else
      discrete = rfraclow*dag(nrlow) + rfrachigh*dag(nrhigh)
      endif
*
      END

      subroutine initmult
      REAL*8           xxq(400), daq(34), caq(34,261), rrr(34)
      COMMON /dataqua/    xxq, daq, caq, rrr
*
      REAL*8           xxg(400), dag(34), cag(34,261), rrrg(34)
      COMMON /dataglu/    xxg, dag, cag, rrrg
*
      OPEN(UNIT=20,FILE='contnew.all',STATUS='OLD',ERR=90)
      do 110 nn=1,261
      read (20,*) xxq(nn), caq(1,nn), caq(2,nn), caq(3,nn),
     +     caq(4,nn), caq(5,nn), caq(6,nn), caq(7,nn), caq(8,nn),
     +     caq(9,nn), caq(10,nn), caq(11,nn), caq(12,nn), 
     +     caq(13,nn),
     +     caq(14,nn), caq(15,nn), caq(16,nn), caq(17,nn), 
     +     caq(18,nn),
     +     caq(19,nn), caq(20,nn), caq(21,nn), caq(22,nn), 
     +     caq(23,nn),
     +     caq(24,nn), caq(25,nn), caq(26,nn), caq(27,nn), 
     +     caq(28,nn),
     +     caq(29,nn), caq(30,nn), caq(31,nn), caq(32,nn), 
     +     caq(33,nn), caq(34,nn)
 110     continue
      do 111 nn=1,261
      read (20,*) xxg(nn), cag(1,nn), cag(2,nn), cag(3,nn),
     +     cag(4,nn), cag(5,nn), cag(6,nn), cag(7,nn), cag(8,nn),
     +     cag(9,nn), cag(10,nn), cag(11,nn), cag(12,nn), 
     +     cag(13,nn),
     +     cag(14,nn), cag(15,nn), cag(16,nn), cag(17,nn), 
     +     cag(18,nn),
     +     cag(19,nn), cag(20,nn), cag(21,nn), cag(22,nn), 
     +     cag(23,nn),
     +     cag(24,nn), cag(25,nn), cag(26,nn), cag(27,nn), 
     +     cag(28,nn),
     +     cag(29,nn), cag(30,nn), cag(31,nn), cag(32,nn), 
     +     cag(33,nn), cag(34,nn)
 111     continue
      close(20)
*
      OPEN(UNIT=21,FILE='discnew.all',STATUS='OLD',ERR=91)
      do 112 nn=1,34
      read (21,*) rrr(nn), daq(nn)
 112     continue
      do 113 nn=1,34
      read (21,*) rrrg(nn), dag(nn)
 113     continue
      close(21)
*
      goto 888
 90   PRINT*, 'input - output error' 
 91   PRINT*, 'input - output error #2' 
 888  continue

      end


=======================================================================

   Adapted to ROOT macro by A. Dainese - 13/07/2003
   Ported to class by C. Loizides - 12/02/2004
   New version for extended R values added - 06/03/2004 
*/

Int_t AliQuenchingWeights::CalcMult(Int_t ipart, Double_t rrrr,Double_t xxxx,
                              Double_t &continuous,Double_t &discrete) const
{
  // Calculate Multiple Scattering approx. 
  // weights for given parton type, 
  // rrrr=0.5*q*L^3 and xxxx=w/wc, wc=0.5*q*L^2

  //set result to zero
  continuous=0.;
  discrete=0.;

  //read-in data before first call
  if(!fTablesLoaded){
    Error("CalcMult","Tables are not loaded.");
    return -1;
  }
  if(!fMultSoft){
    Error("CalcMult","Tables are not loaded for Multiple Scattering.");
    return -1;
  }

  Double_t rrin = rrrr;
  Double_t xxin = xxxx;

  if(xxin>fxx[260]) return -1;
  Int_t nxlow     = (Int_t)(xxin/0.01) + 1;
  Int_t nxhigh    = nxlow + 1;
  Double_t xfraclow  = (fxx[nxhigh-1]-xxin)/0.01;
  Double_t xfrachigh = (xxin - fxx[nxlow-1])/0.01;

  //why this?
  if(rrin<=frrr[33]) rrin = 1.05*frrr[33]; // AD
  if(rrin>=frrr[0])  rrin = 0.95*frrr[0];  // AD

  Int_t nrlow=0,nrhigh=0;
  Double_t rrhigh=0,rrlow=0;
  for(Int_t nr=1; nr<=34; nr++) {
    if(rrin<frrr[nr-1]) {
      rrhigh = frrr[nr-1];
    } else {
      rrhigh = frrr[nr-1-1];
      rrlow  = frrr[nr-1];
      nrlow  = nr;
      nrhigh = nr-1;
      break;
    }
  }

  rrin = rrrr; // AD

  Double_t rfraclow  = (rrhigh-rrin)/(rrhigh-rrlow);
  Double_t rfrachigh = (rrin-rrlow)/(rrhigh-rrlow);

  if(rrin>1.e4){
    rfraclow = TMath::Log2(rrhigh/rrin)/TMath::Log2(rrhigh/rrlow);    
    rfrachigh = TMath::Log2(rrin/rrlow)/TMath::Log2(rrhigh/rrlow);
  }
  if((ipart==1) && (rrin>=frrr[0]))
  {
    nrlow=1;
    nrhigh=1;
    rfraclow=1.;
    rfrachigh=0.;
  }
  if((ipart==2) && (rrin>=frrrg[0]))
  {
    nrlow=1;
    nrhigh=1;
    rfraclow=1.;
    rfrachigh=0.;
  }

  //printf("R = %f,\nRlow = %f, Rhigh = %f,\nRfraclow = %f, Rfrachigh = %f\n",rrin,rrlow,rrhigh,rfraclow,rfrachigh); // AD

  Double_t clow=0,chigh=0;
  if(ipart==1) {
    clow  = xfraclow*fcaq[nrlow-1][nxlow-1]+xfrachigh*fcaq[nrlow-1][nxhigh-1];
    chigh = xfraclow*fcaq[nrhigh-1][nxlow-1]+xfrachigh*fcaq[nrhigh-1][nxhigh-1];
  } else {
    clow  = xfraclow*fcag[nrlow-1][nxlow-1]+xfrachigh*fcag[nrlow-1][nxhigh-1];
    chigh = xfraclow*fcag[nrhigh-1][nxlow-1]+xfrachigh*fcag[nrhigh-1][nxhigh-1];
  }

  continuous = rfraclow*clow + rfrachigh*chigh;
  //printf("rfraclow %f, clow %f, rfrachigh %f, chigh %f,\n continuous %f\n",
  //rfraclow,clow,rfrachigh,chigh,continuous);

  if(ipart==1) {
    discrete = rfraclow*fdaq[nrlow-1] + rfrachigh*fdaq[nrhigh-1];
  } else {
    discrete = rfraclow*fdag[nrlow-1] + rfrachigh*fdag[nrhigh-1];
  }

  return 0;
}

Int_t AliQuenchingWeights::InitSingleHard(const Char_t *contall,const Char_t *discall) 
{
  // read in tables for Single Hard Approx.
  // path to continuum and to discrete part

  fTablesLoaded = kFALSE;
  fMultSoft=kFALSE;
  
  Char_t fname[1024];
  snprintf(fname, 1024, "%s",gSystem->ExpandPathName(contall));
  //PH  ifstream fincont(fname);
  fstream fincont(fname,ios::in);
#if defined(__HP_aCC) || defined(__DECCXX)
  if(!fincont.rdbuf()->is_open()) return -1;
#else
  if(!fincont.is_open()) return -1;
#endif

  Int_t nn=0; //quarks
  while(fincont>>fxx[nn]>>fcaq[0][nn]>>fcaq[1][nn]>>fcaq[2][nn]>>fcaq[3][nn]>>
	fcaq[4][nn]>>fcaq[5][nn]>>fcaq[6][nn]>>fcaq[7][nn]>>fcaq[8][nn]>>
	fcaq[9][nn]>>fcaq[10][nn]>>fcaq[11][nn]>>fcaq[12][nn]>>
	fcaq[13][nn]>>
	fcaq[14][nn]>>fcaq[15][nn]>>fcaq[16][nn]>>fcaq[17][nn]>>
	fcaq[18][nn]>>
	fcaq[19][nn]>>fcaq[20][nn]>>fcaq[21][nn]>>fcaq[22][nn]>>
	fcaq[23][nn]>>
	fcaq[24][nn]>>fcaq[25][nn]>>fcaq[26][nn]>>fcaq[27][nn]>>
	fcaq[28][nn]>>
	fcaq[29][nn]) 
    {
      nn++;
      if(nn==261) break;
    }

  nn=0;       //gluons
  while(fincont>>fxxg[nn]>>fcag[0][nn]>>fcag[1][nn]>>fcag[2][nn]>>fcag[3][nn]>>
	fcag[4][nn]>>fcag[5][nn]>>fcag[6][nn]>>fcag[7][nn]>>fcag[8][nn]>>
	fcag[9][nn]>>fcag[10][nn]>>fcag[11][nn]>>fcag[12][nn]>>
	fcag[13][nn]>>
	fcag[14][nn]>>fcag[15][nn]>>fcag[16][nn]>>fcag[17][nn]>>
	fcag[18][nn]>>
	fcag[19][nn]>>fcag[20][nn]>>fcag[21][nn]>>fcag[22][nn]>>
	fcag[23][nn]>>
	fcag[24][nn]>>fcag[25][nn]>>fcag[26][nn]>>fcag[27][nn]>>
	fcag[28][nn]>>
	fcag[29][nn]) {
    nn++;
    if(nn==261) break;
  }
  fincont.close();

  snprintf(fname, 1024, "%s",gSystem->ExpandPathName(discall));
  //PH  ifstream findisc(fname); 
  fstream findisc(fname,ios::in); 
#if defined(__HP_aCC) || defined(__DECCXX)
  if(!findisc.rdbuf()->is_open()) return -1;
#else
  if(!findisc.is_open()) return -1;
#endif

  nn=0; //quarks
  while(findisc>>frrr[nn]>>fdaq[nn]) {
    nn++;
    if(nn==30) break;
  }
  nn=0; //gluons
  while(findisc>>frrrg[nn]>>fdag[nn]) {
    nn++;
    if(nn==30) break;
  }
  findisc.close();

  fTablesLoaded = kTRUE;
  return 0;
}

/*
C***************************************************************************
C       Quenching Weights for Single Hard Scattering
C               February 20, 2003
C
C       Refs:
C
C  Carlos A. Salgado and Urs A. Wiedemann, hep-ph/0302184. 
C
C  Carlos A. Salgado and Urs A. Wiedemann Phys.Rev.Lett.89:092303,2002.
C  
C
C   This package contains quenching weights for gluon radiation in the
C   single hard scattering approximation.
C
C   swqlin returns the quenching weight for a quark (ipart=1) or
C   a gluon (ipart=2) traversing a medium with Debye screening mass mu and
C   length L. The input values are rrrr=0.5*mu^2*L^2 and xxxx=w/wc, where
C   wc=0.5*mu^2*L and w is the energy radiated. The output values are
C   the continuous and discrete (prefactor of the delta function) parts
C   of the quenching weights.
C
C   In order to use this routine, the files contlin.all and disclin.all 
C   need to be in the working directory.
C
C   An initialization of the tables is needed by doing call initlin before
C   using swqlin.
C
C   Please, send us any comment:
C
C       urs.wiedemann@cern.ch
C       carlos.salgado@cern.ch
C
C
C-------------------------------------------------------------------


      SUBROUTINE swqlin(ipart,rrrr,xxxx,continuous,discrete)
*
      REAL*8           xx(400), dalq(30), calq(30,261), rrr(30)
      COMMON /datalinqua/    xx, dalq, calq, rrr
*
      REAL*8           xxlg(400), dalg(30), calg(30,261), rrrlg(30)
      COMMON /datalinglu/    xxlg, dalg, calg, rrrlg

      REAL*8           rrrr,xxxx, continuous, discrete
      REAL*8           rrin, xxin
      INTEGER          nrlow, nrhigh, nxlow, nxhigh
      REAL*8           rrhigh, rrlow, rfraclow, rfrachigh
      REAL*8           xfraclow, xfrachigh
      REAL*8           clow, chigh
*
      rrin = rrrr
      xxin = xxxx
*
      nxlow = int(xxin/0.038) + 1
      nxhigh = nxlow + 1
      xfraclow = (xx(nxhigh)-xxin)/0.038
      xfrachigh = (xxin - xx(nxlow))/0.038
*
      do 666, nr=1,30
         if (rrin.lt.rrr(nr)) then
            rrhigh = rrr(nr)
         else
            rrhigh = rrr(nr-1)
            rrlow = rrr(nr)
            nrlow = nr
            nrhigh = nr-1
            goto 665
         endif
 666     enddo
 665     continue
*
      rfraclow = (rrhigh-rrin)/(rrhigh-rrlow)
      rfrachigh = (rrin-rrlow)/(rrhigh-rrlow)
*
      if(ipart.eq.1) then
      clow = xfraclow*calq(nrlow,nxlow)+xfrachigh*calq(nrlow,nxhigh)
      chigh = xfraclow*calq(nrhigh,nxlow)+xfrachigh*calq(nrhigh,nxhigh)
      else
      clow = xfraclow*calg(nrlow,nxlow)+xfrachigh*calg(nrlow,nxhigh)
      chigh = xfraclow*calg(nrhigh,nxlow)+xfrachigh*calg(nrhigh,nxhigh)
      endif

      continuous = rfraclow*clow + rfrachigh*chigh

      if(ipart.eq.1) then
      discrete = rfraclow*dalq(nrlow) + rfrachigh*dalq(nrhigh)
      else
      discrete = rfraclow*dalg(nrlow) + rfrachigh*dalg(nrhigh)
      endif
*
      END

      subroutine initlin
      REAL*8           xxlq(400), dalq(30), calq(30,261), rrr(30)
      COMMON /datalinqua/    xxlq, dalq, calq, rrr
*
      REAL*8           xxlg(400), dalg(30), calg(30,261), rrrlg(30)
      COMMON /datalinglu/    xxlg, dalg, calg, rrrlg
*
      OPEN(UNIT=20,FILE='contlin.all',STATUS='OLD',ERR=90)
      do 110 nn=1,261
      read (20,*) xxlq(nn), calq(1,nn), calq(2,nn), calq(3,nn),
     +     calq(4,nn), calq(5,nn), calq(6,nn), calq(7,nn), calq(8,nn),
     +     calq(9,nn), calq(10,nn), calq(11,nn), calq(12,nn), 
     +     calq(13,nn),
     +     calq(14,nn), calq(15,nn), calq(16,nn), calq(17,nn), 
     +     calq(18,nn),
     +     calq(19,nn), calq(20,nn), calq(21,nn), calq(22,nn), 
     +     calq(23,nn),
     +     calq(24,nn), calq(25,nn), calq(26,nn), calq(27,nn), 
     +     calq(28,nn),
     +     calq(29,nn), calq(30,nn)
 110     continue
      do 111 nn=1,261
      read (20,*) xxlg(nn), calg(1,nn), calg(2,nn), calg(3,nn),
     +     calg(4,nn), calg(5,nn), calg(6,nn), calg(7,nn), calg(8,nn),
     +     calg(9,nn), calg(10,nn), calg(11,nn), calg(12,nn), 
     +     calg(13,nn),
     +     calg(14,nn), calg(15,nn), calg(16,nn), calg(17,nn), 
     +     calg(18,nn),
     +     calg(19,nn), calg(20,nn), calg(21,nn), calg(22,nn), 
     +     calg(23,nn),
     +     calg(24,nn), calg(25,nn), calg(26,nn), calg(27,nn), 
     +     calg(28,nn),
     +     calg(29,nn), calg(30,nn)
 111     continue
      close(20)
*
      OPEN(UNIT=21,FILE='disclin.all',STATUS='OLD',ERR=91)
      do 112 nn=1,30
      read (21,*) rrr(nn), dalq(nn)
 112     continue
      do 113 nn=1,30
      read (21,*) rrrlg(nn), dalg(nn)
 113     continue
      close(21)
*
      goto 888
 90   PRINT*, 'input - output error' 
 91   PRINT*, 'input - output error #2' 
 888  continue

      end

=======================================================================

   Ported to class by C. Loizides - 17/02/2004

*/

Int_t AliQuenchingWeights::CalcSingleHard(Int_t ipart, Double_t rrrr,Double_t xxxx,
                                    Double_t &continuous,Double_t &discrete) const
{
  // calculate Single Hard approx. 
  // weights for given parton type, 
  // rrrr=0.5*mu^2*L^2 and xxxx=w/wc, wc=0.5*mu^2*L

  // read-in data before first call
  if(!fTablesLoaded){
    Error("CalcSingleHard","Tables are not loaded.");
    return -1;
  }
  if(fMultSoft){
    Error("CalcSingleHard","Tables are not loaded for Single Hard Scattering.");
    return -1;
  }

  Double_t rrin = rrrr;
  Double_t xxin = xxxx;

  Int_t nxlow     = (Int_t)(xxin/0.038) + 1;
  Int_t nxhigh    = nxlow + 1;
  Double_t xfraclow  = (fxx[nxhigh-1]-xxin)/0.038;
  Double_t xfrachigh = (xxin - fxx[nxlow-1])/0.038;

  //why this?
  if(rrin<=frrr[29]) rrin = 1.05*frrr[29]; // AD
  if(rrin>=frrr[0])  rrin = 0.95*frrr[0];  // AD

  Int_t nrlow=0,nrhigh=0;
  Double_t rrhigh=0,rrlow=0;
  for(Int_t nr=1; nr<=30; nr++) {
    if(rrin<frrr[nr-1]) {
      rrhigh = frrr[nr-1];
    } else {
      rrhigh = frrr[nr-1-1];
      rrlow  = frrr[nr-1];
      nrlow  = nr;
      nrhigh = nr-1;
      break;
    }
  }

  rrin = rrrr; // AD

  Double_t rfraclow  = (rrhigh-rrin)/(rrhigh-rrlow);
  Double_t rfrachigh = (rrin-rrlow)/(rrhigh-rrlow);

  //printf("R = %f,\nRlow = %f, Rhigh = %f,\nRfraclow = %f, Rfrachigh = %f\n",rrin,rrlow,rrhigh,rfraclow,rfrachigh); // AD

  Double_t clow=0,chigh=0;
  if(ipart==1) {
    clow  = xfraclow*fcaq[nrlow-1][nxlow-1]+xfrachigh*fcaq[nrlow-1][nxhigh-1];
    chigh = xfraclow*fcaq[nrhigh-1][nxlow-1]+xfrachigh*fcaq[nrhigh-1][nxhigh-1];
  } else {
    clow  = xfraclow*fcag[nrlow-1][nxlow-1]+xfrachigh*fcag[nrlow-1][nxhigh-1];
    chigh = xfraclow*fcag[nrhigh-1][nxlow-1]+xfrachigh*fcag[nrhigh-1][nxhigh-1];
  }

  continuous = rfraclow*clow + rfrachigh*chigh;
  //printf("rfraclow %f, clow %f, rfrachigh %f, chigh %f,\n continuous %f\n",
  //	 rfraclow,clow,rfrachigh,chigh,continuous);

  if(ipart==1) {
    discrete = rfraclow*fdaq[nrlow-1] + rfrachigh*fdaq[nrhigh-1];
  } else {
    discrete = rfraclow*fdag[nrlow-1] + rfrachigh*fdag[nrhigh-1];
  }

  return 0;
}

Int_t AliQuenchingWeights::CalcMult(Int_t ipart, 
                              Double_t w,Double_t qtransp,Double_t length,
                              Double_t &continuous,Double_t &discrete) const
{
  // Calculate Multiple Scattering approx. 
  // weights for given parton type, 
  // rrrr=0.5*q*L^3 and xxxx=w/wc, wc=0.5*q*L^2

  Double_t wc=CalcWC(qtransp,length);
  Double_t rrrr=CalcR(wc,length);
  Double_t xxxx=w/wc;
  return CalcMult(ipart,rrrr,xxxx,continuous,discrete);
}

Int_t AliQuenchingWeights::CalcSingleHard(Int_t ipart, 
                                    Double_t w,Double_t mu,Double_t length,
                                    Double_t &continuous,Double_t &discrete) const
{
  // calculate Single Hard approx. 
  // weights for given parton type, 
  // rrrr=0.5*mu^2*L^2 and xxxx=w/wc, wc=0.5*mu^2*L

  Double_t wcbar=CalcWCbar(mu,length);
  Double_t rrrr=CalcR(wcbar,length);
  Double_t xxxx=w/wcbar;
  return CalcSingleHard(ipart,rrrr,xxxx,continuous,discrete);
}

Double_t AliQuenchingWeights::CalcR(Double_t wc, Double_t l) const 
{ 
  //calculate r value and 
  //check if it is less then maximum

  Double_t r = wc*l*fgkConvFmToInvGeV;
  if(r >= fgkRMax) {
    Warning("CalcR","Value of r = %.2f; should be less than %.2f", r, fgkRMax);
    return fgkRMax-1;
  }  
  return r;
}

Double_t AliQuenchingWeights::CalcRk(Double_t k, Double_t I0, Double_t I1) const
{ 
  //calculate R value and 
  //check if it is less then maximum

  Double_t r = fgkRMax-1;
  if(I0>0)
    r = 2*I1*I1/I0*k;
  if(r>=fgkRMax) {
    Warning("CalcRk","Value of r = %.2f; should be less than %.2f",r,fgkRMax);
    return fgkRMax-1;
  }  
  return r;
}

Double_t AliQuenchingWeights::GetELossRandom(Int_t ipart, Double_t length, Double_t e) const
{
  // return DeltaE for MS or SH scattering
  // for given parton type, length and energy
  // Dependant on ECM (energy constraint method)
  // e is used to determine where to set bins to zero.

  if(!fHistos){
    Fatal("GetELossRandom","Call SampleEnergyLoss method before!");
    return -1000.;
  }
  if((ipart<1) || (ipart>2)) {
    Fatal("GetELossRandom","ipart =%d; but has to be 1 (quark) or 2 (gluon)",ipart);
    return -1000.;
  }

  Int_t l=GetIndex(length);
  if(l<=0) return 0.;

  if(fECMethod==kReweight){
    Double_t ret = 2.*e;
    Int_t ws=0;
    while(ret>e){
      ret=fHistos[ipart-1][l-1]->GetRandom(); 
      if(++ws==1e6){
	Warning("GetELossRandom",
                "Stopping reweighting; maximum loss assigned after 1e6 trials.");
	return e;
      }
    }
    return ret;
  }
  //kDefault
  Double_t ret=fHistos[ipart-1][l-1]->GetRandom();
  if(ret>e) return e;
  return ret;
}

Double_t AliQuenchingWeights::CalcQuenchedEnergy(Int_t ipart, Double_t length, Double_t e) const
{
  //return quenched parton energy
  //for given parton type, length and energy

  Double_t loss=GetELossRandom(ipart,length,e);
  return e-loss;
}

Double_t AliQuenchingWeights::GetELossRandom(Int_t ipart, TH1F *hell, Double_t e) const
{
  // return DeltaE for MS or SH scattering
  // for given parton type, length distribution and energy
  // Dependant on ECM (energy constraint method)
  // e is used to determine where to set bins to zero.

  if(!hell){
    Warning("GetELossRandom","Pointer to length distribution is NULL.");
    return 0.;
  }
  Double_t ell=hell->GetRandom();
  return GetELossRandom(ipart,ell,e);
}

Double_t AliQuenchingWeights::CalcQuenchedEnergy(Int_t ipart, TH1F *hell, Double_t e)  const
{
  //return quenched parton energy
  //for given parton type, length distribution and energy

  Double_t loss=GetELossRandom(ipart,hell,e);
  return e-loss;
}

Double_t AliQuenchingWeights::GetELossRandomK(Int_t ipart, Double_t I0, Double_t I1, Double_t e)
{
  // return DeltaE for new dynamic version
  // for given parton type, I0 and I1 value and energy
  // Dependant on ECM (energy constraint method)
  // e is used to determine where to set bins to zero.

  // read-in data before first call
  if(!fTablesLoaded){
    Fatal("GetELossRandomK","Tables are not loaded.");
    return -1000.;
  }
  if((ipart<1) || (ipart>2)) {
    Fatal("GetELossRandomK","ipart =%d; but has to be 1 (quark) or 2 (gluon)",ipart);
    return -1000.;
  }

  Double_t r=CalcRk(I0,I1);
  if(r<0.){
    Fatal("GetELossRandomK","R should not be negative");
    return -1000.;
  }
  Double_t wc=CalcWCk(I1);
  if(wc<=0.){
    Fatal("GetELossRandomK","wc should be greater than zero");
    return -1000.;
  }
  if(SampleEnergyLoss(ipart,r)!=0){
    Fatal("GetELossRandomK","Could not sample energy loss");
    return -1000.;
  }

  if(fECMethod==kReweight){
    Double_t ret = 2.*e;
    Int_t ws=0;
    while(ret>e){
      ret=fHisto->GetRandom(); 
      if(++ws==1e6){
	Warning("GetELossRandomK",
                "Stopping reweighting; maximum loss assigned after 1e6 trials.");
	return e;
      }
    }
    return ret;
  }

  //kDefault
  Double_t ret=fHisto->GetRandom()*wc;
  if(ret>e) return e;
  return ret;
}

Double_t AliQuenchingWeights::CalcQuenchedEnergyK(Int_t ipart, Double_t I0, Double_t I1, Double_t e)
{
  //return quenched parton energy
  //for given parton type, I0 and I1 value and energy

  Double_t loss=GetELossRandomK(ipart,I0,I1,e);
  return e-loss;
}

Double_t AliQuenchingWeights::GetELossRandomKFast(Int_t ipart, Double_t I0, Double_t I1, Double_t e)
{
  // return DeltaE for new dynamic version
  // for given parton type, I0 and I1 value and energy
  // Dependant on ECM (energy constraint method)
  // e is used to determine where to set bins to zero.
  // method is optimized and should only be used if 
  // all parameters are well within the bounds.
  // read-in data tables before first call 

  Double_t r=CalcRk(I0,I1);
  if(r<=0.){
    return 0.;
  }

  Double_t wc=CalcWCk(I1);
  if(wc<=0.){
    return 0.;
  }

  return GetELossRandomKFastR(ipart,r,wc,e);
}

Double_t AliQuenchingWeights::GetELossRandomKFastR(Int_t ipart, Double_t r, Double_t wc, Double_t e)
{
  // return DeltaE for new dynamic version
  // for given parton type, R and wc value and energy
  // Dependant on ECM (energy constraint method)
  // e is used to determine where to set bins to zero.
  // method is optimized and should only be used if 
  // all parameters are well within the bounds.
  // read-in data tables before first call 

  if(r>=fgkRMax) {
    r=fgkRMax-1;
  }  
  
  Double_t discrete=0.;
  Double_t continuous=0.;
  Int_t bin=1;
  Double_t xxxx = fHisto->GetBinCenter(bin);
  if(fMultSoft)
    CalcMult(ipart,r,xxxx,continuous,discrete);
  else
    CalcSingleHard(ipart,r,xxxx,continuous,discrete);

  if(discrete>=1.0) {
    return 0.; //no energy loss
  }
  if (!fHisto) Init();
  
  fHisto->SetBinContent(bin,continuous);
  Int_t kbinmax=fHisto->FindBin(e/wc);
  if(kbinmax>=fgkBins) kbinmax=fgkBins-1;
  if(kbinmax==1) return e; //maximum energy loss

  if(fMultSoft) {
    for(bin=2; bin<=kbinmax; bin++) {
      xxxx = fHisto->GetBinCenter(bin);
      CalcMult(ipart,r,xxxx,continuous,discrete);
      fHisto->SetBinContent(bin,continuous);
    }
  } else {
    for(bin=2; bin<=kbinmax; bin++) {
      xxxx = fHisto->GetBinCenter(bin);
      CalcSingleHard(ipart,r,xxxx,continuous,discrete);
      fHisto->SetBinContent(bin,continuous);
    }
  }

  if(fECMethod==kReweight){
    fHisto->SetBinContent(kbinmax+1,0);
    fHisto->Fill(0.,discrete*fgkBins/fgkMaxBin);
  } else if (fECMethod==kReweightCont) {
    fHisto->SetBinContent(kbinmax+1,0);
    const Double_t kdelta=fHisto->Integral(1,kbinmax);
    fHisto->Scale(1./kdelta*(1-discrete));
    fHisto->Fill(0.,discrete);
  } else {
    const Double_t kdelta=fHisto->Integral(1,kbinmax);
    Double_t val=discrete*fgkBins/fgkMaxBin;
    fHisto->Fill(0.,val);
    fHisto->SetBinContent(kbinmax+1,(1-discrete)*fgkBins/fgkMaxBin-kdelta);
  }
  for(bin=kbinmax+2; bin<=fgkBins; bin++) {
    fHisto->SetBinContent(bin,0);
  }
  //cout << kbinmax << " " << discrete << " " << fHisto->Integral() << endl;
  Double_t ret=fHisto->GetRandom()*wc;
  if(ret>e) return e;
  return ret;
}

Double_t AliQuenchingWeights::CalcQuenchedEnergyKFast(Int_t ipart, Double_t I0, Double_t I1, Double_t e)
{
  //return quenched parton energy (fast method)
  //for given parton type, I0 and I1 value and energy

  Double_t loss=GetELossRandomKFast(ipart,I0,I1,e);
  return e-loss;
}

Double_t AliQuenchingWeights::GetDiscreteWeight(Int_t ipart, Double_t I0, Double_t I1)
{
  // return discrete weight

  Double_t r=CalcRk(I0,I1);
  if(r<=0.){
    return 1.;
  }
  return GetDiscreteWeightR(ipart,r);
}

Double_t AliQuenchingWeights::GetDiscreteWeightR(Int_t ipart, Double_t r)
{
  // return discrete weight

  if(r>=fgkRMax) {
    r=fgkRMax-1;
  }  

  Double_t discrete=0.;
  Double_t continuous=0.;
  Int_t bin=1;
  Double_t xxxx = fHisto->GetBinCenter(bin);
  if(fMultSoft)
    CalcMult(ipart,r,xxxx,continuous,discrete);
  else
    CalcSingleHard(ipart,r,xxxx,continuous,discrete);
  return discrete;
}

void AliQuenchingWeights::GetZeroLossProb(Double_t &p,Double_t &prw,Double_t &prwcont,
					  Int_t ipart,Double_t I0,Double_t I1,Double_t e)
{
  //calculate the probabilty that there is no energy
  //loss for different ways of energy constraint
  p=1.;prw=1.;prwcont=1.;
  Double_t r=CalcRk(I0,I1);
  if(r<=0.){
    return;
  }
  Double_t wc=CalcWCk(I1);
  if(wc<=0.){
    return;
  }
  GetZeroLossProbR(p,prw,prwcont,ipart,r,wc,e);
}

void AliQuenchingWeights::GetZeroLossProbR(Double_t &p,Double_t &prw,Double_t &prwcont,
					   Int_t ipart, Double_t r,Double_t wc,Double_t e)
{
  //calculate the probabilty that there is no energy
  //loss for different ways of energy constraint
  if(r>=fgkRMax) {
    r=fgkRMax-1;
  }  

  Double_t discrete=0.;
  Double_t continuous=0.;
  if (!fHisto) Init();
  Int_t kbinmax=fHisto->FindBin(e/wc);
  if(kbinmax>=fgkBins) kbinmax=fgkBins-1;
  if(fMultSoft) {
    for(Int_t bin=1; bin<=kbinmax; bin++) {
      Double_t xxxx = fHisto->GetBinCenter(bin);
      CalcMult(ipart,r,xxxx,continuous,discrete);
      fHisto->SetBinContent(bin,continuous);
    }
  } else {
    for(Int_t bin=1; bin<=kbinmax; bin++) {
      Double_t xxxx = fHisto->GetBinCenter(bin);
      CalcSingleHard(ipart,r,xxxx,continuous,discrete);
      fHisto->SetBinContent(bin,continuous);
    }
  }

  //non-reweighted P(Delta E = 0)
  const Double_t kdelta=fHisto->Integral(1,kbinmax);
  Double_t val=discrete*fgkBins/fgkMaxBin;
  fHisto->Fill(0.,val);
  fHisto->SetBinContent(kbinmax+1,(1-discrete)*fgkBins/fgkMaxBin-kdelta);
  Double_t hint=fHisto->Integral(1,kbinmax+1);
  p=fHisto->GetBinContent(1)/hint;

  // reweighted
  hint=fHisto->Integral(1,kbinmax);
  prw=fHisto->GetBinContent(1)/hint;

  Double_t xxxx = fHisto->GetBinCenter(1);
  CalcMult(ipart,r,xxxx,continuous,discrete);
  fHisto->SetBinContent(1,continuous);
  hint=fHisto->Integral(1,kbinmax);
  fHisto->Scale(1./hint*(1-discrete));
  fHisto->Fill(0.,discrete);
  prwcont=fHisto->GetBinContent(1);
}

Int_t AliQuenchingWeights::SampleEnergyLoss() 
{
  // Has to be called to fill the histograms
  //
  // For stored values fQTransport loop over 
  // particle type and length = 1 to fMaxLength (fm)
  // to fill energy loss histos
  //
  //    Take histogram of continuous weights 
  //    Take discrete_weight
  //    If discrete_weight > 1, put all channels to 0, except channel 1 
  //    Fill channel 1 with discrete_weight/(1-discrete_weight)*integral 

  // read-in data before first call
  if(!fTablesLoaded){
    Error("SampleEnergyLoss","Tables are not loaded.");
    return -1;
  }

  if(fMultSoft) {
    Int_t lmax=CalcLengthMax(fQTransport);
    if(fLengthMax>lmax){
      Info("SampleEnergyLoss","Maximum length changed from %d to %d;\nin order to have R < %.f",fLengthMax,lmax,fgkRMax);
      fLengthMax=lmax;
    }
  } else {
      Warning("SampleEnergyLoss","Maximum length not checked,\nbecause SingeHard is not yet tested.");
  }

  Reset();
  fHistos=new TH1F**[2];
  fHistos[0]=new TH1F*[4*fLengthMax];
  fHistos[1]=new TH1F*[4*fLengthMax];
  fLengthMaxOld=fLengthMax; //remember old value in case 
                            //user wants to reset

  Int_t medvalue=0;
  Char_t meddesc[100];
  if(fMultSoft) {
    medvalue=(Int_t)(fQTransport*1000.);
    snprintf(meddesc, 100, "MS");
  } else {
    medvalue=(Int_t)(fMu*1000.);
    snprintf(meddesc, 100, "SH");
  }

  for(Int_t ipart=1;ipart<=2;ipart++){
    for(Int_t l=1;l<=4*fLengthMax;l++){
      Char_t hname[100];
      snprintf(hname, 100, "hDisc-ContQW_%s_%d_%d_%d_%d",meddesc,fInstanceNumber,ipart,medvalue,l);
      Double_t len=l/4.;
      Double_t wc = CalcWC(len);
      fHistos[ipart-1][l-1] = new TH1F(hname,hname,fgkBins,0.,fgkMaxBin*wc);
      fHistos[ipart-1][l-1]->SetXTitle("#Delta E [GeV]");
      fHistos[ipart-1][l-1]->SetYTitle("p(#Delta E)");
      fHistos[ipart-1][l-1]->SetLineColor(4);

      Double_t rrrr = CalcR(wc,len);
      Double_t discrete=0.;
      // loop on histogram channels
      for(Int_t bin=1; bin<=fgkBins; bin++) {
	Double_t xxxx = fHistos[ipart-1][l-1]->GetBinCenter(bin)/wc;
	Double_t continuous;
	if(fMultSoft)
	  CalcMult(ipart,rrrr,xxxx,continuous,discrete);
	else
	  CalcSingleHard(ipart,rrrr,xxxx,continuous,discrete);
	fHistos[ipart-1][l-1]->SetBinContent(bin,continuous);
      }
      // add discrete part to distribution
      if(discrete>=1.)
	for(Int_t bin=2;bin<=fgkBins;bin++) 
	  fHistos[ipart-1][l-1]->SetBinContent(bin,0.);
      else {
	Double_t val=discrete/(1.-discrete)*fHistos[ipart-1][l-1]->Integral(1,fgkBins);
	fHistos[ipart-1][l-1]->Fill(0.,val);
      }
      Double_t hint=fHistos[ipart-1][l-1]->Integral(1,fgkBins);
      fHistos[ipart-1][l-1]->Scale(1./hint);
    }
  }
  return 0;
}

Int_t AliQuenchingWeights::SampleEnergyLoss(Int_t ipart, Double_t r)
{
  // Sample energy loss directly for one particle type
  // choses R (safe it and keep it until next call of function)

  // read-in data before first call
  if(!fTablesLoaded){
    Error("SampleEnergyLoss","Tables are not loaded.");
    return -1;
  }

  Double_t discrete=0.;
  Double_t continuous=0;;
  Int_t bin=1;
  if (!fHisto) Init();
  Double_t xxxx = fHisto->GetBinCenter(bin);
  if(fMultSoft)
    CalcMult(ipart,r,xxxx,continuous,discrete);
  else
    CalcSingleHard(ipart,r,xxxx,continuous,discrete);

  if(discrete>=1.) {
    fHisto->SetBinContent(1,1.);
    for(bin=2;bin<=fgkBins;bin++) 
      fHisto->SetBinContent(bin,0.);
    return 0;
  }

  fHisto->SetBinContent(bin,continuous);
  for(bin=2; bin<=fgkBins; bin++) {
    xxxx = fHisto->GetBinCenter(bin);
    if(fMultSoft)
      CalcMult(ipart,r,xxxx,continuous,discrete);
    else
      CalcSingleHard(ipart,r,xxxx,continuous,discrete);
    fHisto->SetBinContent(bin,continuous);
  }

  Double_t val=discrete/(1.-discrete)*fHisto->Integral(1,fgkBins);
  fHisto->Fill(0.,val);
  Double_t hint=fHisto->Integral(1,fgkBins);
  if(hint!=0)
    fHisto->Scale(1./hint);
  else {
    //cout << discrete << " " << hint << " " << continuous << endl;
    return -1;
  }
  return 0;
}

const TH1F* AliQuenchingWeights::GetHisto(Int_t ipart,Double_t length) const
{
  //return quenching histograms 
  //for ipart and length

  if(!fHistos){
    Fatal("GetELossRandom","Call SampleEnergyLoss method before!");
    return 0;
  }
  if((ipart<1) || (ipart>2)) {
    Fatal("GetELossRandom","ipart =%d; but has to be 1 (quark) or 2 (gluon)",ipart);
    return 0;
  }

  Int_t l=GetIndex(length);
  if(l<=0) return 0;
  return fHistos[ipart-1][l-1];
}

TH1F* AliQuenchingWeights::ComputeQWHisto(Int_t ipart,Double_t medval,Double_t length) const 
{
  // ipart = 1 for quark, 2 for gluon
  // medval a) qtransp = transport coefficient (GeV^2/fm)
  //        b) mu      = Debye mass (GeV)
  // length = path length in medium (fm)
  // Get from SW tables:
  // - continuous weight, as a function of dE/wc

  Double_t wc = 0;
  Char_t meddesc[100];
  if(fMultSoft) {
    wc=CalcWC(medval,length);
    snprintf(meddesc, 100, "MS");
  } else {
    wc=CalcWCbar(medval,length);
    snprintf(meddesc, 100, "SH");
  }

  Char_t hname[100];
  snprintf(hname, 100, "hContQWHisto_%s_%d_%d_%d",meddesc,ipart,
                (Int_t)(medval*1000.),(Int_t)length);

  TH1F *hist = new TH1F("hist",hname,fgkBins,0.,fgkMaxBin*wc);
  hist->SetXTitle("#Delta E [GeV]");
  hist->SetYTitle("p(#Delta E)");
  hist->SetLineColor(4);

  Double_t rrrr = CalcR(wc,length);
  //loop on histogram channels
  for(Int_t bin=1; bin<=fgkBins; bin++) {
    Double_t xxxx = hist->GetBinCenter(bin)/wc;
    Double_t continuous,discrete;
    Int_t ret=0;
    if(fMultSoft) ret=CalcMult(ipart,rrrr,xxxx,continuous,discrete);
    else ret=CalcSingleHard(ipart,rrrr,xxxx,continuous,discrete);
    if(ret!=0){
      delete hist;
      return 0;
    };
    hist->SetBinContent(bin,continuous);
  }
  return hist;
}

TH1F* AliQuenchingWeights::ComputeQWHistoX(Int_t ipart,Double_t medval,Double_t length) const 
{
  // ipart = 1 for quark, 2 for gluon
  // medval a) qtransp = transport coefficient (GeV^2/fm)
  //        b) mu      = Debye mass (GeV)
  // length = path length in medium (fm)
  // Get from SW tables:
  // - continuous weight, as a function of dE/wc

  Double_t wc = 0;
  Char_t meddesc[100];
  if(fMultSoft) {
    wc=CalcWC(medval,length);
    snprintf(meddesc, 100, "MS");
  } else {
    wc=CalcWCbar(medval,length);
    snprintf(meddesc, 100, "SH");
  }

  Char_t hname[100];
  snprintf(hname, 100, "hContQWHistox_%s_%d_%d_%d",meddesc,ipart,
                (Int_t)(medval*1000.),(Int_t)length);

  TH1F *histx = new TH1F("histx",hname,fgkBins,0.,fgkMaxBin);
  histx->SetXTitle("x = #Delta E/#omega_{c}");
  if(fMultSoft)
    histx->SetYTitle("p(#Delta E/#omega_{c})");
  else
    histx->SetYTitle("p(#Delta E/#bar#omega_{c})");
  histx->SetLineColor(4);

  Double_t rrrr = CalcR(wc,length);
  //loop on histogram channels
  for(Int_t bin=1; bin<=fgkBins; bin++) {
    Double_t xxxx = histx->GetBinCenter(bin);
    Double_t continuous,discrete;
    Int_t ret=0;
    if(fMultSoft) ret=CalcMult(ipart,rrrr,xxxx,continuous,discrete);
    else ret=CalcSingleHard(ipart,rrrr,xxxx,continuous,discrete);
    if(ret!=0){
      delete histx;
      return 0;
    };
    histx->SetBinContent(bin,continuous);
  }
  return histx;
}

TH1F* AliQuenchingWeights::ComputeQWHistoX(Int_t ipart,Double_t r) const 
{
  // compute P(E) distribution for
  // given ipart = 1 for quark, 2 for gluon 
  // and R

  Char_t meddesc[100];
  if(fMultSoft) {
    snprintf(meddesc, 100, "MS");
  } else {
    snprintf(meddesc, 100, "SH");
  }

  Char_t hname[100];
  snprintf(hname, 100, "hQWHistox_%s_%d_%.2f",meddesc,ipart,r);
  TH1F *histx = new TH1F("histx",hname,fgkBins,0.,fgkMaxBin);
  histx->SetXTitle("x = #Delta E/#omega_{c}");
  if(fMultSoft)
    histx->SetYTitle("p(#Delta E/#omega_{c})");
  else
    histx->SetYTitle("p(#Delta E/#bar#omega_{c})");
  histx->SetLineColor(4);

  Double_t rrrr = r;
  Double_t continuous=0.,discrete=0.;
  //loop on histogram channels
  for(Int_t bin=1; bin<=fgkBins; bin++) {
    Double_t xxxx = histx->GetBinCenter(bin);
    Int_t ret=0;
    if(fMultSoft) ret=CalcMult(ipart,rrrr,xxxx,continuous,discrete);
    else ret=CalcSingleHard(ipart,rrrr,xxxx,continuous,discrete);
    if(ret!=0){
      delete histx;
      return 0;
    };
    histx->SetBinContent(bin,continuous);
  }

  //add discrete part to distribution
  if(discrete>=1.)
    for(Int_t bin=2;bin<=fgkBins;bin++) 
      histx->SetBinContent(bin,0.);
  else {
    Double_t val=discrete/(1.-discrete)*histx->Integral(1,fgkBins);
    histx->Fill(0.,val);
  }
  Double_t hint=histx->Integral(1,fgkBins);
  if(hint!=0) histx->Scale(1./hint);

  return histx;
}

TH1F* AliQuenchingWeights::ComputeELossHisto(Int_t ipart,Double_t medval,Double_t l,Double_t e) const
{
  // compute energy loss histogram for 
  // parton type, medium value, length and energy

  AliQuenchingWeights *dummy=new AliQuenchingWeights(*this);
  if(fMultSoft){
    dummy->SetQTransport(medval);
    dummy->InitMult();
  } else {
    dummy->SetMu(medval);
    dummy->InitSingleHard();
  }
  dummy->SampleEnergyLoss();

  Char_t name[100];
  Char_t hname[100];
  if(ipart==1){
    snprintf(name, 100, "Energy Loss Distribution - Quarks;E_{loss} (GeV);#"); 
    snprintf(hname,100, "hLossQuarks"); 
  } else {
    snprintf(name, 100, "Energy Loss Distribution - Gluons;E_{loss} (GeV);#"); 
    snprintf(hname, 100, "hLossGluons"); 
  }

  TH1F *h = new TH1F(hname,name,250,0,250);
  for(Int_t i=0;i<100000;i++){
    //if(i % 1000 == 0) cout << "." << flush;
    Double_t loss=dummy->GetELossRandom(ipart,l,e);
    h->Fill(loss);
  }
  h->SetStats(kTRUE);
  delete dummy;
  return h;
}

TH1F* AliQuenchingWeights::ComputeELossHisto(Int_t ipart,Double_t medval,TH1F *hEll,Double_t e) const
{
  // compute energy loss histogram for 
  // parton type, medium value, 
  // length distribution and energy

  AliQuenchingWeights *dummy=new AliQuenchingWeights(*this);
  if(fMultSoft){
    dummy->SetQTransport(medval);
    dummy->InitMult();
  } else {
    dummy->SetMu(medval);
    dummy->InitSingleHard();
  }
  dummy->SampleEnergyLoss();

  Char_t name[100];
  Char_t hname[100];
  if(ipart==1){
    snprintf(name, 100, "Energy Loss Distribution - Quarks;E_{loss} (GeV);#"); 
    snprintf(hname,100, "hLossQuarks"); 
  } else {
    snprintf(name,100, "Energy Loss Distribution - Gluons;E_{loss} (GeV);#"); 
    snprintf(hname, 100, "hLossGluons"); 
  }

  TH1F *h = new TH1F(hname,name,250,0,250);
  for(Int_t i=0;i<100000;i++){
    //if(i % 1000 == 0) cout << "." << flush;
    Double_t loss=dummy->GetELossRandom(ipart,hEll,e);
    h->Fill(loss);
  }
  h->SetStats(kTRUE);
  delete dummy;
  return h;
}

TH1F* AliQuenchingWeights::ComputeELossHisto(Int_t ipart,Double_t r) const 
{
  // compute energy loss histogram for 
  // parton type and given R

  TH1F *dummy = ComputeQWHistoX(ipart,r);
  if(!dummy) return 0;

  Char_t hname[100];
  snprintf(hname, 100, "hELossHistox_%d_%.2f",ipart,r);
  TH1F *histx = new TH1F("histxr",hname,fgkBins,0.,fgkMaxBin);
  for(Int_t i=0;i<100000;i++){
    //if(i % 1000 == 0) cout << "." << flush;
    Double_t loss=dummy->GetRandom();
    histx->Fill(loss);
  }
  delete dummy;
  return histx;
}

Double_t AliQuenchingWeights::GetMeanELoss(Int_t ipart,Double_t medval,Double_t l) const
{
  // compute average energy loss for 
  // parton type, medium value, length and energy

  TH1F *dummy = ComputeELossHisto(ipart,medval,l);
  if(!dummy) return 0;
  Double_t ret=dummy->GetMean();
  delete dummy;
  return ret;
}

Double_t AliQuenchingWeights::GetMeanELoss(Int_t ipart,Double_t medval,TH1F *hEll) const
{
  // compute average energy loss for 
  // parton type, medium value, 
  // length distribution and energy

  TH1F *dummy = ComputeELossHisto(ipart,medval,hEll);
  if(!dummy) return 0;
  Double_t ret=dummy->GetMean();
  delete dummy;
  return ret;
}

Double_t  AliQuenchingWeights::GetMeanELoss(Int_t ipart,Double_t r) const 
{
  // compute average energy loss over wc 
  // for parton type and given R

  TH1F *dummy = ComputeELossHisto(ipart,r);
  if(!dummy) return 0;
  Double_t ret=dummy->GetMean();
  delete dummy;
  return ret;
}

void AliQuenchingWeights::PlotDiscreteWeights(Double_t len,Double_t qm) const
{
  // plot discrete weights for given length

  TCanvas *c; 
  if(fMultSoft) 
    c = new TCanvas("cdiscms","Discrete Weight for Multiple Scattering",0,0,500,400);
  else 
    c = new TCanvas("cdiscsh","Discrete Weight for Single Hard Scattering",0,0,500,400);
  c->cd();

  TH2F *hframe = new TH2F("hdisc","",2,0,qm+.1,2,0,1.25);
  hframe->SetStats(0);
  if(fMultSoft) 
    hframe->SetXTitle("#hat{q} [GeV^{2}/fm]");
  else
    hframe->SetXTitle("#mu [GeV]");
  //hframe->SetYTitle("Probability #Delta E = 0 , p_{0}");
  hframe->SetYTitle("p_{0} (discrete weight)");
  hframe->Draw();

  Int_t points=(Int_t)qm*4;
  TGraph *gq=new TGraph(points);
  Int_t i=0;
  if(fMultSoft) {
    for(Double_t q=0.05;q<=qm+.05;q+=0.25){
      Double_t disc,cont;
      CalcMult(1,1.0,q,len,cont,disc);
      gq->SetPoint(i,q,disc);i++;
    }
  } else {
    for(Double_t m=0.05;m<=qm+.05;m+=0.25){
      Double_t disc,cont;
      CalcSingleHard(1,1.0,m,len,cont, disc);
      gq->SetPoint(i,m,disc);i++;
    }
  }
  gq->SetMarkerStyle(20);
  gq->SetMarkerColor(1);
  gq->SetLineStyle(1);
  gq->SetLineColor(1);
  gq->Draw("l");

  TGraph *gg=new TGraph(points);
  i=0;
  if(fMultSoft){
    for(Double_t q=0.05;q<=qm+.05;q+=0.25){
      Double_t disc,cont;
      CalcMult(2,1.0,q,len,cont,disc);
      gg->SetPoint(i,q,disc);i++;
    }
  } else {
    for(Double_t m=0.05;m<=qm+.05;m+=0.25){
      Double_t disc,cont;
      CalcSingleHard(2,1.0,m,len,cont,disc);
      gg->SetPoint(i,m,disc);i++;
    }
  }
  gg->SetMarkerStyle(24);
  gg->SetMarkerColor(2);
  gg->SetLineStyle(2);
  gg->SetLineColor(2);
  gg->Draw("l");

  TLegend *l1a = new TLegend(0.5,0.6,.95,0.8);
  l1a->SetFillStyle(0);
  l1a->SetBorderSize(0);
  Char_t label[100];
  snprintf(label, 100, "L = %.1f fm",len);
  l1a->AddEntry(gq,label,"");
  l1a->AddEntry(gq,"quark projectile","l");
  l1a->AddEntry(gg,"gluon projectile","l");
  l1a->Draw();

  c->Update();
}

void AliQuenchingWeights::PlotContWeights(Int_t itype,Double_t ell) const
{
  // plot continous weights for 
  // given parton type and length

  Float_t medvals[3];
  Char_t title[1024];
  Char_t name[1024];
  if(fMultSoft) {
    if(itype==1)
      snprintf(title, 1024, "Cont. Weight for Multiple Scattering - Quarks");
    else if(itype==2)
      snprintf(title, 1024, "Cont. Weight for Multiple Scattering - Gluons");
    else return;
    medvals[0]=4;medvals[1]=1;medvals[2]=0.5;
    snprintf(name, 1024, "ccont-ms-%d",itype);
  } else {
    if(itype==1)
      snprintf(title, 1024, "Cont. Weight for Single Hard Scattering - Quarks");
    else if(itype==2)
      snprintf(title, 1024, "Cont. Weight for Single Hard Scattering - Gluons");
    else return;
    medvals[0]=2;medvals[1]=1;medvals[2]=0.5;
    snprintf(name, 1024, "ccont-ms-%d",itype);
  }

  TCanvas *c = new TCanvas(name,title,0,0,500,400);
  c->cd();
  TH1F *h1=ComputeQWHisto(itype,medvals[0],ell); 
  h1->SetName("h1");
  h1->SetTitle(title); 
  h1->SetStats(0);
  h1->SetLineColor(1);
  h1->DrawCopy();
  TH1F *h2=ComputeQWHisto(itype,medvals[1],ell); 
  h2->SetName("h2");
  h2->SetLineColor(2);
  h2->DrawCopy("SAME");
  TH1F *h3=ComputeQWHisto(itype,medvals[2],ell); 
  h3->SetName("h3");
  h3->SetLineColor(3);
  h3->DrawCopy("SAME");

  TLegend *l1a = new TLegend(0.5,0.6,.95,0.8);
  l1a->SetFillStyle(0);
  l1a->SetBorderSize(0);
  Char_t label[100];
  snprintf(label, 100, "L = %.1f fm",ell);
  l1a->AddEntry(h1,label,"");
  if(fMultSoft) {
    snprintf(label, 100, "#hat{q} = %.1f GeV^{2}/fm",medvals[0]);
    l1a->AddEntry(h1,label,"pl");
    snprintf(label, 100, "#hat{q} = %.1f GeV^{2}/fm",medvals[1]);
    l1a->AddEntry(h2,label,"pl");
    snprintf(label, 100, "#hat{q} = %.1f GeV^{2}/fm",medvals[2]);
    l1a->AddEntry(h3, label,"pl");
  } else {
    snprintf(label, 100, "#mu = %.1f GeV",medvals[0]);
    l1a->AddEntry(h1,label,"pl");
    snprintf(label, 100, "#mu = %.1f GeV",medvals[1]);
    l1a->AddEntry(h2,label,"pl");
    snprintf(label, 100, "#mu = %.1f GeV",medvals[2]);
    l1a->AddEntry(h3,label,"pl");
  }
  l1a->Draw();

  c->Update();
}

void AliQuenchingWeights::PlotContWeightsVsL(Int_t itype,Double_t medval) const
{
  // plot continous weights for 
  // given parton type and medium value

  Char_t title[1024];
  Char_t name[1024];
  if(fMultSoft) {
    if(itype==1)
      snprintf(title,1024, "Cont. Weight for Multiple Scattering - Quarks");
    else if(itype==2)
      snprintf(title,1024, "Cont. Weight for Multiple Scattering - Gluons");
    else return;
    snprintf(name,1024, "ccont2-ms-%d",itype);
  } else {
    if(itype==1)
      snprintf(title, 1024, "Cont. Weight for Single Hard Scattering - Quarks");
    else if(itype==2)
      snprintf(title, 1024, "Cont. Weight for Single Hard Scattering - Gluons");
    else return;
    snprintf(name, 1024, "ccont2-sh-%d",itype);
  }
  TCanvas *c = new TCanvas(name,title,0,0,500,400);
  c->cd();
  TH1F *h1=ComputeQWHisto(itype,medval,8); 
  h1->SetName("h1");
  h1->SetTitle(title); 
  h1->SetStats(0);
  h1->SetLineColor(1);
  h1->DrawCopy();
  TH1F *h2=ComputeQWHisto(itype,medval,5); 
  h2->SetName("h2");
  h2->SetLineColor(2);
  h2->DrawCopy("SAME");
  TH1F *h3=ComputeQWHisto(itype,medval,2); 
  h3->SetName("h3");
  h3->SetLineColor(3);
  h3->DrawCopy("SAME");

  TLegend *l1a = new TLegend(0.5,0.6,.95,0.8);
  l1a->SetFillStyle(0);
  l1a->SetBorderSize(0);
  Char_t label[100];
  if(fMultSoft)
    snprintf(label, 100, "#hat{q} = %.1f GeV^{2}/fm",medval);
  else
    snprintf(label, 100, "#mu = %.1f GeV",medval);

  l1a->AddEntry(h1,label,"");
  l1a->AddEntry(h1,"L = 8 fm","pl");
  l1a->AddEntry(h2,"L = 5 fm","pl");
  l1a->AddEntry(h3,"L = 2 fm","pl");
  l1a->Draw();

  c->Update();
}

void AliQuenchingWeights::PlotAvgELoss(Double_t len,Double_t qm,Double_t e) const
{
  // plot average energy loss for given length
  // and parton energy 

  if(!fTablesLoaded){
    Error("PlotAvgELoss","Tables are not loaded.");
    return;
  }

  Char_t title[1024];
  Char_t name[1024];
  if(fMultSoft){ 
    snprintf(title, 1024, "Average Energy Loss for Multiple Scattering");
    snprintf(name, 1024, "cavgelossms");
  } else {
    snprintf(title, 1024, "Average Energy Loss for Single Hard Scattering");
    snprintf(name, 1024, "cavgelosssh");
  }

  TCanvas *c = new TCanvas(name,title,0,0,500,400);
  c->cd();
  TH2F *hframe = new TH2F("avgloss","",2,0,qm+.1,2,0,100);
  hframe->SetStats(0);
  if(fMultSoft) 
    hframe->SetXTitle("#hat{q} [GeV^{2}/fm]");
  else
    hframe->SetXTitle("#mu [GeV]");
  hframe->SetYTitle("<E_{loss}> [GeV]");
  hframe->Draw();

  TGraph *gq=new TGraph(20);
  Int_t i=0;
  for(Double_t v=0.05;v<=qm+.05;v+=0.25){
    TH1F *dummy=ComputeELossHisto(1,v,len,e);
    Double_t avgloss=dummy->GetMean();
    gq->SetPoint(i,v,avgloss);i++;
    delete dummy;
  }
  gq->SetMarkerStyle(21);
  gq->Draw("pl");

  Int_t points=(Int_t)qm*4;
  TGraph *gg=new TGraph(points);
  i=0;
  for(Double_t v=0.05;v<=qm+.05;v+=0.25){
    TH1F *dummy=ComputeELossHisto(2,v,len,e);
    Double_t avgloss=dummy->GetMean();
    gg->SetPoint(i,v,avgloss);i++;
    delete dummy;
  }
  gg->SetMarkerStyle(20);
  gg->SetMarkerColor(2);
  gg->Draw("pl");

  TGraph *gratio=new TGraph(points);
  for(i=0;i<points;i++){
    Double_t x,y,x2,y2;
    gg->GetPoint(i,x,y);
    gq->GetPoint(i,x2,y2);
    if(y2>0)
      gratio->SetPoint(i,x,y/y2*10/2.25);
    else gratio->SetPoint(i,x,0);
  }
  gratio->SetLineStyle(4);
  gratio->Draw();
  TLegend *l1a = new TLegend(0.15,0.60,0.50,0.90);
  l1a->SetFillStyle(0);
  l1a->SetBorderSize(0);
  Char_t label[100];
  snprintf(label, 100, "L = %.1f fm",len);
  l1a->AddEntry(gq,label,"");
  l1a->AddEntry(gq,"quark projectile","pl");
  l1a->AddEntry(gg,"gluon projectile","pl");
  l1a->AddEntry(gratio,"gluon/quark/2.25*10","pl");
  l1a->Draw();

  c->Update();
}

void AliQuenchingWeights::PlotAvgELoss(TH1F *hEll,Double_t e) const
{
  // plot average energy loss for given
  // length distribution and parton energy

  if(!fTablesLoaded){
    Error("PlotAvgELossVs","Tables are not loaded.");
    return;
  }

  Char_t title[1024];
  Char_t name[1024];
  if(fMultSoft){ 
    snprintf(title, 1024, "Average Energy Loss for Multiple Scattering");
    snprintf(name, 1024, "cavgelossms2");
  } else {
    snprintf(title, 1024, "Average Energy Loss for Single Hard Scattering");
    snprintf(name, 1024, "cavgelosssh2");
  }

  TCanvas *c = new TCanvas(name,title,0,0,500,400);
  c->cd();
  TH2F *hframe = new TH2F("havgloss",title,2,0,5.1,2,0,100);
  hframe->SetStats(0);
  if(fMultSoft) 
    hframe->SetXTitle("#hat{q} [GeV^{2}/fm]");
  else
    hframe->SetXTitle("#mu [GeV]");
  hframe->SetYTitle("<E_{loss}> [GeV]");
  hframe->Draw();

  TGraph *gq=new TGraph(20);
  Int_t i=0;
  for(Double_t v=0.05;v<=5.05;v+=0.25){
    TH1F *dummy=ComputeELossHisto(1,v,hEll,e);
    Double_t avgloss=dummy->GetMean();
    gq->SetPoint(i,v,avgloss);i++;
    delete dummy;
  }
  gq->SetMarkerStyle(20);
  gq->Draw("pl");

  TGraph *gg=new TGraph(20);
  i=0;
  for(Double_t v=0.05;v<=5.05;v+=0.25){
    TH1F *dummy=ComputeELossHisto(2,v,hEll,e);
    Double_t avgloss=dummy->GetMean();
    gg->SetPoint(i,v,avgloss);i++;
    delete dummy;
  }
  gg->SetMarkerStyle(24);
  gg->Draw("pl");

  TGraph *gratio=new TGraph(20);
  for(i=0;i<20;i++){
    Double_t x,y,x2,y2;
    gg->GetPoint(i,x,y);
    gq->GetPoint(i,x2,y2);
    if(y2>0)
      gratio->SetPoint(i,x,y/y2*10/2.25);
    else gratio->SetPoint(i,x,0);
  }
  gratio->SetLineStyle(4);
  //gratio->Draw();

  TLegend *l1a = new TLegend(0.5,0.6,.95,0.8);
  l1a->SetFillStyle(0);
  l1a->SetBorderSize(0);
  Char_t label[100];
  snprintf(label, 100, "<L> = %.2f fm",hEll->GetMean());
  l1a->AddEntry(gq,label,"");
  l1a->AddEntry(gq,"quark","pl");
  l1a->AddEntry(gg,"gluon","pl");
  //l1a->AddEntry(gratio,"gluon/quark/2.25*10","pl");
  l1a->Draw();

  c->Update();
}

void AliQuenchingWeights::PlotAvgELossVsL(Double_t e)  const
{
  // plot average energy loss versus ell

  if(!fTablesLoaded){
    Error("PlotAvgELossVsEll","Tables are not loaded.");
    return;
  }

  Char_t title[1024];
  Char_t name[1024];
  Float_t medval;
  if(fMultSoft){ 
    snprintf(title, 1024, "Average Energy Loss for Multiple Scattering");
    snprintf(name, 1024,  "cavgelosslms");
    medval=fQTransport;
  } else {
    snprintf(title, 1024, "Average Energy Loss for Single Hard Scattering");
    snprintf(name, 1024,  "cavgelosslsh");
    medval=fMu;
  }

  TCanvas *c = new TCanvas(name,title,0,0,600,400);
  c->cd();
  TH2F *hframe = new TH2F("avglossell",title,2,0,fLengthMax,2,0,250);
  hframe->SetStats(0);
  hframe->SetXTitle("length [fm]");
  hframe->SetYTitle("<E_{loss}> [GeV]");
  hframe->Draw();

  TGraph *gq=new TGraph((Int_t)fLengthMax*4);
  Int_t i=0;
  for(Double_t v=0.25;v<=fLengthMax;v+=0.25){
    TH1F *dummy=ComputeELossHisto(1,medval,v,e);
    Double_t avgloss=dummy->GetMean();
    gq->SetPoint(i,v,avgloss);i++;
    delete dummy;
  }
  gq->SetMarkerStyle(20);
  gq->Draw("pl");

  TGraph *gg=new TGraph((Int_t)fLengthMax*4);
  i=0;
  for(Double_t v=0.25;v<=fLengthMax;v+=0.25){
    TH1F *dummy=ComputeELossHisto(2,medval,v,e);
    Double_t avgloss=dummy->GetMean();
    gg->SetPoint(i,v,avgloss);i++;
    delete dummy;
  }
  gg->SetMarkerStyle(24);
  gg->Draw("pl");

  TGraph *gratio=new TGraph((Int_t)fLengthMax*4);
  for(i=0;i<=(Int_t)fLengthMax*4;i++){
    Double_t x,y,x2,y2;
    gg->GetPoint(i,x,y);
    gq->GetPoint(i,x2,y2);
    if(y2>0)
      gratio->SetPoint(i,x,y/y2*100/2.25);
    else gratio->SetPoint(i,x,0);
  }
  gratio->SetLineStyle(1);
  gratio->SetLineWidth(2);
  gratio->Draw();
  TLegend *l1a = new TLegend(0.15,0.65,.60,0.85);
  l1a->SetFillStyle(0);
  l1a->SetBorderSize(0);
  Char_t label[100];
  if(fMultSoft) 
    snprintf(label, 100, "#hat{q} = %.2f GeV^{2}/fm",medval);
  else
    snprintf(label, 100, "#mu = %.2f GeV",medval);
  l1a->AddEntry(gq,label,"");
  l1a->AddEntry(gq,"quark","pl");
  l1a->AddEntry(gg,"gluon","pl");
  l1a->AddEntry(gratio,"gluon/quark/2.25*100","pl");
  l1a->Draw();

  TF1 *f=new TF1("f","100",0,fLengthMax);
  f->SetLineStyle(4);
  f->SetLineWidth(1);
  f->Draw("same");
  c->Update();
}

void AliQuenchingWeights::PlotAvgELossVsPt(Double_t medval,Double_t len) const
{
  // plot relative energy loss for given
  // length and parton energy versus pt

  if(!fTablesLoaded){
    Error("PlotAvgELossVsPt","Tables are not loaded.");
    return;
  }

  Char_t title[1024];
  Char_t name[1024];
  if(fMultSoft){
    snprintf(title, 1024, "Relative Energy Loss for Multiple Scattering");
    snprintf(name, 1024, "cavgelossvsptms");
  } else {
    snprintf(title, 1024, "Relative Energy Loss for Single Hard Scattering");
    snprintf(name, 1024, "cavgelossvsptsh");
  }

  TCanvas *c = new TCanvas(name,title,0,0,500,400);
  c->cd();
  TH2F *hframe = new TH2F("havglossvspt",title,2,0,100,2,0,1);
  hframe->SetStats(0);
  hframe->SetXTitle("p_{T} [GeV]");
  hframe->SetYTitle("<E_{loss}>/p_{T} [GeV]");
  hframe->Draw();

  TGraph *gq=new TGraph(40);
  Int_t i=0;
  for(Double_t pt=2.5;pt<=100.05;pt+=2.5){
    TH1F *dummy=ComputeELossHisto(1,medval,len,pt);
    Double_t avgloss=dummy->GetMean();
    gq->SetPoint(i,pt,avgloss/pt);i++;
    delete dummy;
  }
  gq->SetMarkerStyle(20);
  gq->Draw("pl");

  TGraph *gg=new TGraph(40);
  i=0;
  for(Double_t pt=2.5;pt<=100.05;pt+=2.5){
    TH1F *dummy=ComputeELossHisto(2,medval,len,pt);
    Double_t avgloss=dummy->GetMean();
    gg->SetPoint(i,pt,avgloss/pt);i++;
    delete dummy;
  }
  gg->SetMarkerStyle(24);
  gg->Draw("pl");

  TLegend *l1a = new TLegend(0.5,0.6,.95,0.8);
  l1a->SetFillStyle(0);
  l1a->SetBorderSize(0);
  Char_t label[100];
  snprintf(label, 100, "L = %.1f fm",len);
  l1a->AddEntry(gq,label,"");
  l1a->AddEntry(gq,"quark","pl");
  l1a->AddEntry(gg,"gluon","pl");
  l1a->Draw();

  c->Update();
}

void AliQuenchingWeights::PlotAvgELossVsPt(Double_t medval,TH1F *hEll) const
{
  // plot relative energy loss for given
  // length distribution and parton energy versus pt

  if(!fTablesLoaded){
    Error("PlotAvgELossVsPt","Tables are not loaded.");
    return;
  }

  Char_t title[1024];
  Char_t name[1024];
  if(fMultSoft){
    snprintf(title, 1024, "Relative Energy Loss for Multiple Scattering");
    snprintf(name,  1024, "cavgelossvsptms2");
  } else {
    snprintf(title, 1024, "Relative Energy Loss for Single Hard Scattering");
    snprintf(name,  1024, "cavgelossvsptsh2");
  }
  TCanvas *c = new TCanvas(name,title,0,0,500,400);
  c->cd();
  TH2F *hframe = new TH2F("havglossvspt",title,2,0,100,2,0,1);
  hframe->SetStats(0);
  hframe->SetXTitle("p_{T} [GeV]");
  hframe->SetYTitle("<E_{loss}>/p_{T} [GeV]");
  hframe->Draw();

  TGraph *gq=new TGraph(40);
  Int_t i=0;
  for(Double_t pt=2.5;pt<=100.05;pt+=2.5){
    TH1F *dummy=ComputeELossHisto(1,medval,hEll,pt);
    Double_t avgloss=dummy->GetMean();
    gq->SetPoint(i,pt,avgloss/pt);i++;
    delete dummy;
  }
  gq->SetMarkerStyle(20);
  gq->Draw("pl");

  TGraph *gg=new TGraph(40);
  i=0;
  for(Double_t pt=2.5;pt<=100.05;pt+=2.5){
    TH1F *dummy=ComputeELossHisto(2,medval,hEll,pt);
    Double_t avgloss=dummy->GetMean();
    gg->SetPoint(i,pt,avgloss/pt);i++;
    delete dummy;
  }
  gg->SetMarkerStyle(24);
  gg->Draw("pl");

  TLegend *l1a = new TLegend(0.5,0.6,.95,0.8);
  l1a->SetFillStyle(0);
  l1a->SetBorderSize(0);
  Char_t label[100];
  snprintf(label, 100, "<L> = %.2f fm",hEll->GetMean());
  l1a->AddEntry(gq,label,"");
  l1a->AddEntry(gq,"quark","pl");
  l1a->AddEntry(gg,"gluon","pl");
  l1a->Draw();

  c->Update();
}

Int_t AliQuenchingWeights::GetIndex(Double_t len) const
{
  //get the index according to length
  if(len>fLengthMax) len=fLengthMax;

  Int_t l=Int_t(len/0.25);
  if((len-l*0.25)>0.125) l++;
  return l;
}

 AliQuenchingWeights.cxx:1
 AliQuenchingWeights.cxx:2
 AliQuenchingWeights.cxx:3
 AliQuenchingWeights.cxx:4
 AliQuenchingWeights.cxx:5
 AliQuenchingWeights.cxx:6
 AliQuenchingWeights.cxx:7
 AliQuenchingWeights.cxx:8
 AliQuenchingWeights.cxx:9
 AliQuenchingWeights.cxx:10
 AliQuenchingWeights.cxx:11
 AliQuenchingWeights.cxx:12
 AliQuenchingWeights.cxx:13
 AliQuenchingWeights.cxx:14
 AliQuenchingWeights.cxx:15
 AliQuenchingWeights.cxx:16
 AliQuenchingWeights.cxx:17
 AliQuenchingWeights.cxx:18
 AliQuenchingWeights.cxx:19
 AliQuenchingWeights.cxx:20
 AliQuenchingWeights.cxx:21
 AliQuenchingWeights.cxx:22
 AliQuenchingWeights.cxx:23
 AliQuenchingWeights.cxx:24
 AliQuenchingWeights.cxx:25
 AliQuenchingWeights.cxx:26
 AliQuenchingWeights.cxx:27
 AliQuenchingWeights.cxx:28
 AliQuenchingWeights.cxx:29
 AliQuenchingWeights.cxx:30
 AliQuenchingWeights.cxx:31
 AliQuenchingWeights.cxx:32
 AliQuenchingWeights.cxx:33
 AliQuenchingWeights.cxx:34
 AliQuenchingWeights.cxx:35
 AliQuenchingWeights.cxx:36
 AliQuenchingWeights.cxx:37
 AliQuenchingWeights.cxx:38
 AliQuenchingWeights.cxx:39
 AliQuenchingWeights.cxx:40
 AliQuenchingWeights.cxx:41
 AliQuenchingWeights.cxx:42
 AliQuenchingWeights.cxx:43
 AliQuenchingWeights.cxx:44
 AliQuenchingWeights.cxx:45
 AliQuenchingWeights.cxx:46
 AliQuenchingWeights.cxx:47
 AliQuenchingWeights.cxx:48
 AliQuenchingWeights.cxx:49
 AliQuenchingWeights.cxx:50
 AliQuenchingWeights.cxx:51
 AliQuenchingWeights.cxx:52
 AliQuenchingWeights.cxx:53
 AliQuenchingWeights.cxx:54
 AliQuenchingWeights.cxx:55
 AliQuenchingWeights.cxx:56
 AliQuenchingWeights.cxx:57
 AliQuenchingWeights.cxx:58
 AliQuenchingWeights.cxx:59
 AliQuenchingWeights.cxx:60
 AliQuenchingWeights.cxx:61
 AliQuenchingWeights.cxx:62
 AliQuenchingWeights.cxx:63
 AliQuenchingWeights.cxx:64
 AliQuenchingWeights.cxx:65
 AliQuenchingWeights.cxx:66
 AliQuenchingWeights.cxx:67
 AliQuenchingWeights.cxx:68
 AliQuenchingWeights.cxx:69
 AliQuenchingWeights.cxx:70
 AliQuenchingWeights.cxx:71
 AliQuenchingWeights.cxx:72
 AliQuenchingWeights.cxx:73
 AliQuenchingWeights.cxx:74
 AliQuenchingWeights.cxx:75
 AliQuenchingWeights.cxx:76
 AliQuenchingWeights.cxx:77
 AliQuenchingWeights.cxx:78
 AliQuenchingWeights.cxx:79
 AliQuenchingWeights.cxx:80
 AliQuenchingWeights.cxx:81
 AliQuenchingWeights.cxx:82
 AliQuenchingWeights.cxx:83
 AliQuenchingWeights.cxx:84
 AliQuenchingWeights.cxx:85
 AliQuenchingWeights.cxx:86
 AliQuenchingWeights.cxx:87
 AliQuenchingWeights.cxx:88
 AliQuenchingWeights.cxx:89
 AliQuenchingWeights.cxx:90
 AliQuenchingWeights.cxx:91
 AliQuenchingWeights.cxx:92
 AliQuenchingWeights.cxx:93
 AliQuenchingWeights.cxx:94
 AliQuenchingWeights.cxx:95
 AliQuenchingWeights.cxx:96
 AliQuenchingWeights.cxx:97
 AliQuenchingWeights.cxx:98
 AliQuenchingWeights.cxx:99
 AliQuenchingWeights.cxx:100
 AliQuenchingWeights.cxx:101
 AliQuenchingWeights.cxx:102
 AliQuenchingWeights.cxx:103
 AliQuenchingWeights.cxx:104
 AliQuenchingWeights.cxx:105
 AliQuenchingWeights.cxx:106
 AliQuenchingWeights.cxx:107
 AliQuenchingWeights.cxx:108
 AliQuenchingWeights.cxx:109
 AliQuenchingWeights.cxx:110
 AliQuenchingWeights.cxx:111
 AliQuenchingWeights.cxx:112
 AliQuenchingWeights.cxx:113
 AliQuenchingWeights.cxx:114
 AliQuenchingWeights.cxx:115
 AliQuenchingWeights.cxx:116
 AliQuenchingWeights.cxx:117
 AliQuenchingWeights.cxx:118
 AliQuenchingWeights.cxx:119
 AliQuenchingWeights.cxx:120
 AliQuenchingWeights.cxx:121
 AliQuenchingWeights.cxx:122
 AliQuenchingWeights.cxx:123
 AliQuenchingWeights.cxx:124
 AliQuenchingWeights.cxx:125
 AliQuenchingWeights.cxx:126
 AliQuenchingWeights.cxx:127
 AliQuenchingWeights.cxx:128
 AliQuenchingWeights.cxx:129
 AliQuenchingWeights.cxx:130
 AliQuenchingWeights.cxx:131
 AliQuenchingWeights.cxx:132
 AliQuenchingWeights.cxx:133
 AliQuenchingWeights.cxx:134
 AliQuenchingWeights.cxx:135
 AliQuenchingWeights.cxx:136
 AliQuenchingWeights.cxx:137
 AliQuenchingWeights.cxx:138
 AliQuenchingWeights.cxx:139
 AliQuenchingWeights.cxx:140
 AliQuenchingWeights.cxx:141
 AliQuenchingWeights.cxx:142
 AliQuenchingWeights.cxx:143
 AliQuenchingWeights.cxx:144
 AliQuenchingWeights.cxx:145
 AliQuenchingWeights.cxx:146
 AliQuenchingWeights.cxx:147
 AliQuenchingWeights.cxx:148
 AliQuenchingWeights.cxx:149
 AliQuenchingWeights.cxx:150
 AliQuenchingWeights.cxx:151
 AliQuenchingWeights.cxx:152
 AliQuenchingWeights.cxx:153
 AliQuenchingWeights.cxx:154
 AliQuenchingWeights.cxx:155
 AliQuenchingWeights.cxx:156
 AliQuenchingWeights.cxx:157
 AliQuenchingWeights.cxx:158
 AliQuenchingWeights.cxx:159
 AliQuenchingWeights.cxx:160
 AliQuenchingWeights.cxx:161
 AliQuenchingWeights.cxx:162
 AliQuenchingWeights.cxx:163
 AliQuenchingWeights.cxx:164
 AliQuenchingWeights.cxx:165
 AliQuenchingWeights.cxx:166
 AliQuenchingWeights.cxx:167
 AliQuenchingWeights.cxx:168
 AliQuenchingWeights.cxx:169
 AliQuenchingWeights.cxx:170
 AliQuenchingWeights.cxx:171
 AliQuenchingWeights.cxx:172
 AliQuenchingWeights.cxx:173
 AliQuenchingWeights.cxx:174
 AliQuenchingWeights.cxx:175
 AliQuenchingWeights.cxx:176
 AliQuenchingWeights.cxx:177
 AliQuenchingWeights.cxx:178
 AliQuenchingWeights.cxx:179
 AliQuenchingWeights.cxx:180
 AliQuenchingWeights.cxx:181
 AliQuenchingWeights.cxx:182
 AliQuenchingWeights.cxx:183
 AliQuenchingWeights.cxx:184
 AliQuenchingWeights.cxx:185
 AliQuenchingWeights.cxx:186
 AliQuenchingWeights.cxx:187
 AliQuenchingWeights.cxx:188
 AliQuenchingWeights.cxx:189
 AliQuenchingWeights.cxx:190
 AliQuenchingWeights.cxx:191
 AliQuenchingWeights.cxx:192
 AliQuenchingWeights.cxx:193
 AliQuenchingWeights.cxx:194
 AliQuenchingWeights.cxx:195
 AliQuenchingWeights.cxx:196
 AliQuenchingWeights.cxx:197
 AliQuenchingWeights.cxx:198
 AliQuenchingWeights.cxx:199
 AliQuenchingWeights.cxx:200
 AliQuenchingWeights.cxx:201
 AliQuenchingWeights.cxx:202
 AliQuenchingWeights.cxx:203
 AliQuenchingWeights.cxx:204
 AliQuenchingWeights.cxx:205
 AliQuenchingWeights.cxx:206
 AliQuenchingWeights.cxx:207
 AliQuenchingWeights.cxx:208
 AliQuenchingWeights.cxx:209
 AliQuenchingWeights.cxx:210
 AliQuenchingWeights.cxx:211
 AliQuenchingWeights.cxx:212
 AliQuenchingWeights.cxx:213
 AliQuenchingWeights.cxx:214
 AliQuenchingWeights.cxx:215
 AliQuenchingWeights.cxx:216
 AliQuenchingWeights.cxx:217
 AliQuenchingWeights.cxx:218
 AliQuenchingWeights.cxx:219
 AliQuenchingWeights.cxx:220
 AliQuenchingWeights.cxx:221
 AliQuenchingWeights.cxx:222
 AliQuenchingWeights.cxx:223
 AliQuenchingWeights.cxx:224
 AliQuenchingWeights.cxx:225
 AliQuenchingWeights.cxx:226
 AliQuenchingWeights.cxx:227
 AliQuenchingWeights.cxx:228
 AliQuenchingWeights.cxx:229
 AliQuenchingWeights.cxx:230
 AliQuenchingWeights.cxx:231
 AliQuenchingWeights.cxx:232
 AliQuenchingWeights.cxx:233
 AliQuenchingWeights.cxx:234
 AliQuenchingWeights.cxx:235
 AliQuenchingWeights.cxx:236
 AliQuenchingWeights.cxx:237
 AliQuenchingWeights.cxx:238
 AliQuenchingWeights.cxx:239
 AliQuenchingWeights.cxx:240
 AliQuenchingWeights.cxx:241
 AliQuenchingWeights.cxx:242
 AliQuenchingWeights.cxx:243
 AliQuenchingWeights.cxx:244
 AliQuenchingWeights.cxx:245
 AliQuenchingWeights.cxx:246
 AliQuenchingWeights.cxx:247
 AliQuenchingWeights.cxx:248
 AliQuenchingWeights.cxx:249
 AliQuenchingWeights.cxx:250
 AliQuenchingWeights.cxx:251
 AliQuenchingWeights.cxx:252
 AliQuenchingWeights.cxx:253
 AliQuenchingWeights.cxx:254
 AliQuenchingWeights.cxx:255
 AliQuenchingWeights.cxx:256
 AliQuenchingWeights.cxx:257
 AliQuenchingWeights.cxx:258
 AliQuenchingWeights.cxx:259
 AliQuenchingWeights.cxx:260
 AliQuenchingWeights.cxx:261
 AliQuenchingWeights.cxx:262
 AliQuenchingWeights.cxx:263
 AliQuenchingWeights.cxx:264
 AliQuenchingWeights.cxx:265
 AliQuenchingWeights.cxx:266
 AliQuenchingWeights.cxx:267
 AliQuenchingWeights.cxx:268
 AliQuenchingWeights.cxx:269
 AliQuenchingWeights.cxx:270
 AliQuenchingWeights.cxx:271
 AliQuenchingWeights.cxx:272
 AliQuenchingWeights.cxx:273
 AliQuenchingWeights.cxx:274
 AliQuenchingWeights.cxx:275
 AliQuenchingWeights.cxx:276
 AliQuenchingWeights.cxx:277
 AliQuenchingWeights.cxx:278
 AliQuenchingWeights.cxx:279
 AliQuenchingWeights.cxx:280
 AliQuenchingWeights.cxx:281
 AliQuenchingWeights.cxx:282
 AliQuenchingWeights.cxx:283
 AliQuenchingWeights.cxx:284
 AliQuenchingWeights.cxx:285
 AliQuenchingWeights.cxx:286
 AliQuenchingWeights.cxx:287
 AliQuenchingWeights.cxx:288
 AliQuenchingWeights.cxx:289
 AliQuenchingWeights.cxx:290
 AliQuenchingWeights.cxx:291
 AliQuenchingWeights.cxx:292
 AliQuenchingWeights.cxx:293
 AliQuenchingWeights.cxx:294
 AliQuenchingWeights.cxx:295
 AliQuenchingWeights.cxx:296
 AliQuenchingWeights.cxx:297
 AliQuenchingWeights.cxx:298
 AliQuenchingWeights.cxx:299
 AliQuenchingWeights.cxx:300
 AliQuenchingWeights.cxx:301
 AliQuenchingWeights.cxx:302
 AliQuenchingWeights.cxx:303
 AliQuenchingWeights.cxx:304
 AliQuenchingWeights.cxx:305
 AliQuenchingWeights.cxx:306
 AliQuenchingWeights.cxx:307
 AliQuenchingWeights.cxx:308
 AliQuenchingWeights.cxx:309
 AliQuenchingWeights.cxx:310
 AliQuenchingWeights.cxx:311
 AliQuenchingWeights.cxx:312
 AliQuenchingWeights.cxx:313
 AliQuenchingWeights.cxx:314
 AliQuenchingWeights.cxx:315
 AliQuenchingWeights.cxx:316
 AliQuenchingWeights.cxx:317
 AliQuenchingWeights.cxx:318
 AliQuenchingWeights.cxx:319
 AliQuenchingWeights.cxx:320
 AliQuenchingWeights.cxx:321
 AliQuenchingWeights.cxx:322
 AliQuenchingWeights.cxx:323
 AliQuenchingWeights.cxx:324
 AliQuenchingWeights.cxx:325
 AliQuenchingWeights.cxx:326
 AliQuenchingWeights.cxx:327
 AliQuenchingWeights.cxx:328
 AliQuenchingWeights.cxx:329
 AliQuenchingWeights.cxx:330
 AliQuenchingWeights.cxx:331
 AliQuenchingWeights.cxx:332
 AliQuenchingWeights.cxx:333
 AliQuenchingWeights.cxx:334
 AliQuenchingWeights.cxx:335
 AliQuenchingWeights.cxx:336
 AliQuenchingWeights.cxx:337
 AliQuenchingWeights.cxx:338
 AliQuenchingWeights.cxx:339
 AliQuenchingWeights.cxx:340
 AliQuenchingWeights.cxx:341
 AliQuenchingWeights.cxx:342
 AliQuenchingWeights.cxx:343
 AliQuenchingWeights.cxx:344
 AliQuenchingWeights.cxx:345
 AliQuenchingWeights.cxx:346
 AliQuenchingWeights.cxx:347
 AliQuenchingWeights.cxx:348
 AliQuenchingWeights.cxx:349
 AliQuenchingWeights.cxx:350
 AliQuenchingWeights.cxx:351
 AliQuenchingWeights.cxx:352
 AliQuenchingWeights.cxx:353
 AliQuenchingWeights.cxx:354
 AliQuenchingWeights.cxx:355
 AliQuenchingWeights.cxx:356
 AliQuenchingWeights.cxx:357
 AliQuenchingWeights.cxx:358
 AliQuenchingWeights.cxx:359
 AliQuenchingWeights.cxx:360
 AliQuenchingWeights.cxx:361
 AliQuenchingWeights.cxx:362
 AliQuenchingWeights.cxx:363
 AliQuenchingWeights.cxx:364
 AliQuenchingWeights.cxx:365
 AliQuenchingWeights.cxx:366
 AliQuenchingWeights.cxx:367
 AliQuenchingWeights.cxx:368
 AliQuenchingWeights.cxx:369
 AliQuenchingWeights.cxx:370
 AliQuenchingWeights.cxx:371
 AliQuenchingWeights.cxx:372
 AliQuenchingWeights.cxx:373
 AliQuenchingWeights.cxx:374
 AliQuenchingWeights.cxx:375
 AliQuenchingWeights.cxx:376
 AliQuenchingWeights.cxx:377
 AliQuenchingWeights.cxx:378
 AliQuenchingWeights.cxx:379
 AliQuenchingWeights.cxx:380
 AliQuenchingWeights.cxx:381
 AliQuenchingWeights.cxx:382
 AliQuenchingWeights.cxx:383
 AliQuenchingWeights.cxx:384
 AliQuenchingWeights.cxx:385
 AliQuenchingWeights.cxx:386
 AliQuenchingWeights.cxx:387
 AliQuenchingWeights.cxx:388
 AliQuenchingWeights.cxx:389
 AliQuenchingWeights.cxx:390
 AliQuenchingWeights.cxx:391
 AliQuenchingWeights.cxx:392
 AliQuenchingWeights.cxx:393
 AliQuenchingWeights.cxx:394
 AliQuenchingWeights.cxx:395
 AliQuenchingWeights.cxx:396
 AliQuenchingWeights.cxx:397
 AliQuenchingWeights.cxx:398
 AliQuenchingWeights.cxx:399
 AliQuenchingWeights.cxx:400
 AliQuenchingWeights.cxx:401
 AliQuenchingWeights.cxx:402
 AliQuenchingWeights.cxx:403
 AliQuenchingWeights.cxx:404
 AliQuenchingWeights.cxx:405
 AliQuenchingWeights.cxx:406
 AliQuenchingWeights.cxx:407
 AliQuenchingWeights.cxx:408
 AliQuenchingWeights.cxx:409
 AliQuenchingWeights.cxx:410
 AliQuenchingWeights.cxx:411
 AliQuenchingWeights.cxx:412
 AliQuenchingWeights.cxx:413
 AliQuenchingWeights.cxx:414
 AliQuenchingWeights.cxx:415
 AliQuenchingWeights.cxx:416
 AliQuenchingWeights.cxx:417
 AliQuenchingWeights.cxx:418
 AliQuenchingWeights.cxx:419
 AliQuenchingWeights.cxx:420
 AliQuenchingWeights.cxx:421
 AliQuenchingWeights.cxx:422
 AliQuenchingWeights.cxx:423
 AliQuenchingWeights.cxx:424
 AliQuenchingWeights.cxx:425
 AliQuenchingWeights.cxx:426
 AliQuenchingWeights.cxx:427
 AliQuenchingWeights.cxx:428
 AliQuenchingWeights.cxx:429
 AliQuenchingWeights.cxx:430
 AliQuenchingWeights.cxx:431
 AliQuenchingWeights.cxx:432
 AliQuenchingWeights.cxx:433
 AliQuenchingWeights.cxx:434
 AliQuenchingWeights.cxx:435
 AliQuenchingWeights.cxx:436
 AliQuenchingWeights.cxx:437
 AliQuenchingWeights.cxx:438
 AliQuenchingWeights.cxx:439
 AliQuenchingWeights.cxx:440
 AliQuenchingWeights.cxx:441
 AliQuenchingWeights.cxx:442
 AliQuenchingWeights.cxx:443
 AliQuenchingWeights.cxx:444
 AliQuenchingWeights.cxx:445
 AliQuenchingWeights.cxx:446
 AliQuenchingWeights.cxx:447
 AliQuenchingWeights.cxx:448
 AliQuenchingWeights.cxx:449
 AliQuenchingWeights.cxx:450
 AliQuenchingWeights.cxx:451
 AliQuenchingWeights.cxx:452
 AliQuenchingWeights.cxx:453
 AliQuenchingWeights.cxx:454
 AliQuenchingWeights.cxx:455
 AliQuenchingWeights.cxx:456
 AliQuenchingWeights.cxx:457
 AliQuenchingWeights.cxx:458
 AliQuenchingWeights.cxx:459
 AliQuenchingWeights.cxx:460
 AliQuenchingWeights.cxx:461
 AliQuenchingWeights.cxx:462
 AliQuenchingWeights.cxx:463
 AliQuenchingWeights.cxx:464
 AliQuenchingWeights.cxx:465
 AliQuenchingWeights.cxx:466
 AliQuenchingWeights.cxx:467
 AliQuenchingWeights.cxx:468
 AliQuenchingWeights.cxx:469
 AliQuenchingWeights.cxx:470
 AliQuenchingWeights.cxx:471
 AliQuenchingWeights.cxx:472
 AliQuenchingWeights.cxx:473
 AliQuenchingWeights.cxx:474
 AliQuenchingWeights.cxx:475
 AliQuenchingWeights.cxx:476
 AliQuenchingWeights.cxx:477
 AliQuenchingWeights.cxx:478
 AliQuenchingWeights.cxx:479
 AliQuenchingWeights.cxx:480
 AliQuenchingWeights.cxx:481
 AliQuenchingWeights.cxx:482
 AliQuenchingWeights.cxx:483
 AliQuenchingWeights.cxx:484
 AliQuenchingWeights.cxx:485
 AliQuenchingWeights.cxx:486
 AliQuenchingWeights.cxx:487
 AliQuenchingWeights.cxx:488
 AliQuenchingWeights.cxx:489
 AliQuenchingWeights.cxx:490
 AliQuenchingWeights.cxx:491
 AliQuenchingWeights.cxx:492
 AliQuenchingWeights.cxx:493
 AliQuenchingWeights.cxx:494
 AliQuenchingWeights.cxx:495
 AliQuenchingWeights.cxx:496
 AliQuenchingWeights.cxx:497
 AliQuenchingWeights.cxx:498
 AliQuenchingWeights.cxx:499
 AliQuenchingWeights.cxx:500
 AliQuenchingWeights.cxx:501
 AliQuenchingWeights.cxx:502
 AliQuenchingWeights.cxx:503
 AliQuenchingWeights.cxx:504
 AliQuenchingWeights.cxx:505
 AliQuenchingWeights.cxx:506
 AliQuenchingWeights.cxx:507
 AliQuenchingWeights.cxx:508
 AliQuenchingWeights.cxx:509
 AliQuenchingWeights.cxx:510
 AliQuenchingWeights.cxx:511
 AliQuenchingWeights.cxx:512
 AliQuenchingWeights.cxx:513
 AliQuenchingWeights.cxx:514
 AliQuenchingWeights.cxx:515
 AliQuenchingWeights.cxx:516
 AliQuenchingWeights.cxx:517
 AliQuenchingWeights.cxx:518
 AliQuenchingWeights.cxx:519
 AliQuenchingWeights.cxx:520
 AliQuenchingWeights.cxx:521
 AliQuenchingWeights.cxx:522
 AliQuenchingWeights.cxx:523
 AliQuenchingWeights.cxx:524
 AliQuenchingWeights.cxx:525
 AliQuenchingWeights.cxx:526
 AliQuenchingWeights.cxx:527
 AliQuenchingWeights.cxx:528
 AliQuenchingWeights.cxx:529
 AliQuenchingWeights.cxx:530
 AliQuenchingWeights.cxx:531
 AliQuenchingWeights.cxx:532
 AliQuenchingWeights.cxx:533
 AliQuenchingWeights.cxx:534
 AliQuenchingWeights.cxx:535
 AliQuenchingWeights.cxx:536
 AliQuenchingWeights.cxx:537
 AliQuenchingWeights.cxx:538
 AliQuenchingWeights.cxx:539
 AliQuenchingWeights.cxx:540
 AliQuenchingWeights.cxx:541
 AliQuenchingWeights.cxx:542
 AliQuenchingWeights.cxx:543
 AliQuenchingWeights.cxx:544
 AliQuenchingWeights.cxx:545
 AliQuenchingWeights.cxx:546
 AliQuenchingWeights.cxx:547
 AliQuenchingWeights.cxx:548
 AliQuenchingWeights.cxx:549
 AliQuenchingWeights.cxx:550
 AliQuenchingWeights.cxx:551
 AliQuenchingWeights.cxx:552
 AliQuenchingWeights.cxx:553
 AliQuenchingWeights.cxx:554
 AliQuenchingWeights.cxx:555
 AliQuenchingWeights.cxx:556
 AliQuenchingWeights.cxx:557
 AliQuenchingWeights.cxx:558
 AliQuenchingWeights.cxx:559
 AliQuenchingWeights.cxx:560
 AliQuenchingWeights.cxx:561
 AliQuenchingWeights.cxx:562
 AliQuenchingWeights.cxx:563
 AliQuenchingWeights.cxx:564
 AliQuenchingWeights.cxx:565
 AliQuenchingWeights.cxx:566
 AliQuenchingWeights.cxx:567
 AliQuenchingWeights.cxx:568
 AliQuenchingWeights.cxx:569
 AliQuenchingWeights.cxx:570
 AliQuenchingWeights.cxx:571
 AliQuenchingWeights.cxx:572
 AliQuenchingWeights.cxx:573
 AliQuenchingWeights.cxx:574
 AliQuenchingWeights.cxx:575
 AliQuenchingWeights.cxx:576
 AliQuenchingWeights.cxx:577
 AliQuenchingWeights.cxx:578
 AliQuenchingWeights.cxx:579
 AliQuenchingWeights.cxx:580
 AliQuenchingWeights.cxx:581
 AliQuenchingWeights.cxx:582
 AliQuenchingWeights.cxx:583
 AliQuenchingWeights.cxx:584
 AliQuenchingWeights.cxx:585
 AliQuenchingWeights.cxx:586
 AliQuenchingWeights.cxx:587
 AliQuenchingWeights.cxx:588
 AliQuenchingWeights.cxx:589
 AliQuenchingWeights.cxx:590
 AliQuenchingWeights.cxx:591
 AliQuenchingWeights.cxx:592
 AliQuenchingWeights.cxx:593
 AliQuenchingWeights.cxx:594
 AliQuenchingWeights.cxx:595
 AliQuenchingWeights.cxx:596
 AliQuenchingWeights.cxx:597
 AliQuenchingWeights.cxx:598
 AliQuenchingWeights.cxx:599
 AliQuenchingWeights.cxx:600
 AliQuenchingWeights.cxx:601
 AliQuenchingWeights.cxx:602
 AliQuenchingWeights.cxx:603
 AliQuenchingWeights.cxx:604
 AliQuenchingWeights.cxx:605
 AliQuenchingWeights.cxx:606
 AliQuenchingWeights.cxx:607
 AliQuenchingWeights.cxx:608
 AliQuenchingWeights.cxx:609
 AliQuenchingWeights.cxx:610
 AliQuenchingWeights.cxx:611
 AliQuenchingWeights.cxx:612
 AliQuenchingWeights.cxx:613
 AliQuenchingWeights.cxx:614
 AliQuenchingWeights.cxx:615
 AliQuenchingWeights.cxx:616
 AliQuenchingWeights.cxx:617
 AliQuenchingWeights.cxx:618
 AliQuenchingWeights.cxx:619
 AliQuenchingWeights.cxx:620
 AliQuenchingWeights.cxx:621
 AliQuenchingWeights.cxx:622
 AliQuenchingWeights.cxx:623
 AliQuenchingWeights.cxx:624
 AliQuenchingWeights.cxx:625
 AliQuenchingWeights.cxx:626
 AliQuenchingWeights.cxx:627
 AliQuenchingWeights.cxx:628
 AliQuenchingWeights.cxx:629
 AliQuenchingWeights.cxx:630
 AliQuenchingWeights.cxx:631
 AliQuenchingWeights.cxx:632
 AliQuenchingWeights.cxx:633
 AliQuenchingWeights.cxx:634
 AliQuenchingWeights.cxx:635
 AliQuenchingWeights.cxx:636
 AliQuenchingWeights.cxx:637
 AliQuenchingWeights.cxx:638
 AliQuenchingWeights.cxx:639
 AliQuenchingWeights.cxx:640
 AliQuenchingWeights.cxx:641
 AliQuenchingWeights.cxx:642
 AliQuenchingWeights.cxx:643
 AliQuenchingWeights.cxx:644
 AliQuenchingWeights.cxx:645
 AliQuenchingWeights.cxx:646
 AliQuenchingWeights.cxx:647
 AliQuenchingWeights.cxx:648
 AliQuenchingWeights.cxx:649
 AliQuenchingWeights.cxx:650
 AliQuenchingWeights.cxx:651
 AliQuenchingWeights.cxx:652
 AliQuenchingWeights.cxx:653
 AliQuenchingWeights.cxx:654
 AliQuenchingWeights.cxx:655
 AliQuenchingWeights.cxx:656
 AliQuenchingWeights.cxx:657
 AliQuenchingWeights.cxx:658
 AliQuenchingWeights.cxx:659
 AliQuenchingWeights.cxx:660
 AliQuenchingWeights.cxx:661
 AliQuenchingWeights.cxx:662
 AliQuenchingWeights.cxx:663
 AliQuenchingWeights.cxx:664
 AliQuenchingWeights.cxx:665
 AliQuenchingWeights.cxx:666
 AliQuenchingWeights.cxx:667
 AliQuenchingWeights.cxx:668
 AliQuenchingWeights.cxx:669
 AliQuenchingWeights.cxx:670
 AliQuenchingWeights.cxx:671
 AliQuenchingWeights.cxx:672
 AliQuenchingWeights.cxx:673
 AliQuenchingWeights.cxx:674
 AliQuenchingWeights.cxx:675
 AliQuenchingWeights.cxx:676
 AliQuenchingWeights.cxx:677
 AliQuenchingWeights.cxx:678
 AliQuenchingWeights.cxx:679
 AliQuenchingWeights.cxx:680
 AliQuenchingWeights.cxx:681
 AliQuenchingWeights.cxx:682
 AliQuenchingWeights.cxx:683
 AliQuenchingWeights.cxx:684
 AliQuenchingWeights.cxx:685
 AliQuenchingWeights.cxx:686
 AliQuenchingWeights.cxx:687
 AliQuenchingWeights.cxx:688
 AliQuenchingWeights.cxx:689
 AliQuenchingWeights.cxx:690
 AliQuenchingWeights.cxx:691
 AliQuenchingWeights.cxx:692
 AliQuenchingWeights.cxx:693
 AliQuenchingWeights.cxx:694
 AliQuenchingWeights.cxx:695
 AliQuenchingWeights.cxx:696
 AliQuenchingWeights.cxx:697
 AliQuenchingWeights.cxx:698
 AliQuenchingWeights.cxx:699
 AliQuenchingWeights.cxx:700
 AliQuenchingWeights.cxx:701
 AliQuenchingWeights.cxx:702
 AliQuenchingWeights.cxx:703
 AliQuenchingWeights.cxx:704
 AliQuenchingWeights.cxx:705
 AliQuenchingWeights.cxx:706
 AliQuenchingWeights.cxx:707
 AliQuenchingWeights.cxx:708
 AliQuenchingWeights.cxx:709
 AliQuenchingWeights.cxx:710
 AliQuenchingWeights.cxx:711
 AliQuenchingWeights.cxx:712
 AliQuenchingWeights.cxx:713
 AliQuenchingWeights.cxx:714
 AliQuenchingWeights.cxx:715
 AliQuenchingWeights.cxx:716
 AliQuenchingWeights.cxx:717
 AliQuenchingWeights.cxx:718
 AliQuenchingWeights.cxx:719
 AliQuenchingWeights.cxx:720
 AliQuenchingWeights.cxx:721
 AliQuenchingWeights.cxx:722
 AliQuenchingWeights.cxx:723
 AliQuenchingWeights.cxx:724
 AliQuenchingWeights.cxx:725
 AliQuenchingWeights.cxx:726
 AliQuenchingWeights.cxx:727
 AliQuenchingWeights.cxx:728
 AliQuenchingWeights.cxx:729
 AliQuenchingWeights.cxx:730
 AliQuenchingWeights.cxx:731
 AliQuenchingWeights.cxx:732
 AliQuenchingWeights.cxx:733
 AliQuenchingWeights.cxx:734
 AliQuenchingWeights.cxx:735
 AliQuenchingWeights.cxx:736
 AliQuenchingWeights.cxx:737
 AliQuenchingWeights.cxx:738
 AliQuenchingWeights.cxx:739
 AliQuenchingWeights.cxx:740
 AliQuenchingWeights.cxx:741
 AliQuenchingWeights.cxx:742
 AliQuenchingWeights.cxx:743
 AliQuenchingWeights.cxx:744
 AliQuenchingWeights.cxx:745
 AliQuenchingWeights.cxx:746
 AliQuenchingWeights.cxx:747
 AliQuenchingWeights.cxx:748
 AliQuenchingWeights.cxx:749
 AliQuenchingWeights.cxx:750
 AliQuenchingWeights.cxx:751
 AliQuenchingWeights.cxx:752
 AliQuenchingWeights.cxx:753
 AliQuenchingWeights.cxx:754
 AliQuenchingWeights.cxx:755
 AliQuenchingWeights.cxx:756
 AliQuenchingWeights.cxx:757
 AliQuenchingWeights.cxx:758
 AliQuenchingWeights.cxx:759
 AliQuenchingWeights.cxx:760
 AliQuenchingWeights.cxx:761
 AliQuenchingWeights.cxx:762
 AliQuenchingWeights.cxx:763
 AliQuenchingWeights.cxx:764
 AliQuenchingWeights.cxx:765
 AliQuenchingWeights.cxx:766
 AliQuenchingWeights.cxx:767
 AliQuenchingWeights.cxx:768
 AliQuenchingWeights.cxx:769
 AliQuenchingWeights.cxx:770
 AliQuenchingWeights.cxx:771
 AliQuenchingWeights.cxx:772
 AliQuenchingWeights.cxx:773
 AliQuenchingWeights.cxx:774
 AliQuenchingWeights.cxx:775
 AliQuenchingWeights.cxx:776
 AliQuenchingWeights.cxx:777
 AliQuenchingWeights.cxx:778
 AliQuenchingWeights.cxx:779
 AliQuenchingWeights.cxx:780
 AliQuenchingWeights.cxx:781
 AliQuenchingWeights.cxx:782
 AliQuenchingWeights.cxx:783
 AliQuenchingWeights.cxx:784
 AliQuenchingWeights.cxx:785
 AliQuenchingWeights.cxx:786
 AliQuenchingWeights.cxx:787
 AliQuenchingWeights.cxx:788
 AliQuenchingWeights.cxx:789
 AliQuenchingWeights.cxx:790
 AliQuenchingWeights.cxx:791
 AliQuenchingWeights.cxx:792
 AliQuenchingWeights.cxx:793
 AliQuenchingWeights.cxx:794
 AliQuenchingWeights.cxx:795
 AliQuenchingWeights.cxx:796
 AliQuenchingWeights.cxx:797
 AliQuenchingWeights.cxx:798
 AliQuenchingWeights.cxx:799
 AliQuenchingWeights.cxx:800
 AliQuenchingWeights.cxx:801
 AliQuenchingWeights.cxx:802
 AliQuenchingWeights.cxx:803
 AliQuenchingWeights.cxx:804
 AliQuenchingWeights.cxx:805
 AliQuenchingWeights.cxx:806
 AliQuenchingWeights.cxx:807
 AliQuenchingWeights.cxx:808
 AliQuenchingWeights.cxx:809
 AliQuenchingWeights.cxx:810
 AliQuenchingWeights.cxx:811
 AliQuenchingWeights.cxx:812
 AliQuenchingWeights.cxx:813
 AliQuenchingWeights.cxx:814
 AliQuenchingWeights.cxx:815
 AliQuenchingWeights.cxx:816
 AliQuenchingWeights.cxx:817
 AliQuenchingWeights.cxx:818
 AliQuenchingWeights.cxx:819
 AliQuenchingWeights.cxx:820
 AliQuenchingWeights.cxx:821
 AliQuenchingWeights.cxx:822
 AliQuenchingWeights.cxx:823
 AliQuenchingWeights.cxx:824
 AliQuenchingWeights.cxx:825
 AliQuenchingWeights.cxx:826
 AliQuenchingWeights.cxx:827
 AliQuenchingWeights.cxx:828
 AliQuenchingWeights.cxx:829
 AliQuenchingWeights.cxx:830
 AliQuenchingWeights.cxx:831
 AliQuenchingWeights.cxx:832
 AliQuenchingWeights.cxx:833
 AliQuenchingWeights.cxx:834
 AliQuenchingWeights.cxx:835
 AliQuenchingWeights.cxx:836
 AliQuenchingWeights.cxx:837
 AliQuenchingWeights.cxx:838
 AliQuenchingWeights.cxx:839
 AliQuenchingWeights.cxx:840
 AliQuenchingWeights.cxx:841
 AliQuenchingWeights.cxx:842
 AliQuenchingWeights.cxx:843
 AliQuenchingWeights.cxx:844
 AliQuenchingWeights.cxx:845
 AliQuenchingWeights.cxx:846
 AliQuenchingWeights.cxx:847
 AliQuenchingWeights.cxx:848
 AliQuenchingWeights.cxx:849
 AliQuenchingWeights.cxx:850
 AliQuenchingWeights.cxx:851
 AliQuenchingWeights.cxx:852
 AliQuenchingWeights.cxx:853
 AliQuenchingWeights.cxx:854
 AliQuenchingWeights.cxx:855
 AliQuenchingWeights.cxx:856
 AliQuenchingWeights.cxx:857
 AliQuenchingWeights.cxx:858
 AliQuenchingWeights.cxx:859
 AliQuenchingWeights.cxx:860
 AliQuenchingWeights.cxx:861
 AliQuenchingWeights.cxx:862
 AliQuenchingWeights.cxx:863
 AliQuenchingWeights.cxx:864
 AliQuenchingWeights.cxx:865
 AliQuenchingWeights.cxx:866
 AliQuenchingWeights.cxx:867
 AliQuenchingWeights.cxx:868
 AliQuenchingWeights.cxx:869
 AliQuenchingWeights.cxx:870
 AliQuenchingWeights.cxx:871
 AliQuenchingWeights.cxx:872
 AliQuenchingWeights.cxx:873
 AliQuenchingWeights.cxx:874
 AliQuenchingWeights.cxx:875
 AliQuenchingWeights.cxx:876
 AliQuenchingWeights.cxx:877
 AliQuenchingWeights.cxx:878
 AliQuenchingWeights.cxx:879
 AliQuenchingWeights.cxx:880
 AliQuenchingWeights.cxx:881
 AliQuenchingWeights.cxx:882
 AliQuenchingWeights.cxx:883
 AliQuenchingWeights.cxx:884
 AliQuenchingWeights.cxx:885
 AliQuenchingWeights.cxx:886
 AliQuenchingWeights.cxx:887
 AliQuenchingWeights.cxx:888
 AliQuenchingWeights.cxx:889
 AliQuenchingWeights.cxx:890
 AliQuenchingWeights.cxx:891
 AliQuenchingWeights.cxx:892
 AliQuenchingWeights.cxx:893
 AliQuenchingWeights.cxx:894
 AliQuenchingWeights.cxx:895
 AliQuenchingWeights.cxx:896
 AliQuenchingWeights.cxx:897
 AliQuenchingWeights.cxx:898
 AliQuenchingWeights.cxx:899
 AliQuenchingWeights.cxx:900
 AliQuenchingWeights.cxx:901
 AliQuenchingWeights.cxx:902
 AliQuenchingWeights.cxx:903
 AliQuenchingWeights.cxx:904
 AliQuenchingWeights.cxx:905
 AliQuenchingWeights.cxx:906
 AliQuenchingWeights.cxx:907
 AliQuenchingWeights.cxx:908
 AliQuenchingWeights.cxx:909
 AliQuenchingWeights.cxx:910
 AliQuenchingWeights.cxx:911
 AliQuenchingWeights.cxx:912
 AliQuenchingWeights.cxx:913
 AliQuenchingWeights.cxx:914
 AliQuenchingWeights.cxx:915
 AliQuenchingWeights.cxx:916
 AliQuenchingWeights.cxx:917
 AliQuenchingWeights.cxx:918
 AliQuenchingWeights.cxx:919
 AliQuenchingWeights.cxx:920
 AliQuenchingWeights.cxx:921
 AliQuenchingWeights.cxx:922
 AliQuenchingWeights.cxx:923
 AliQuenchingWeights.cxx:924
 AliQuenchingWeights.cxx:925
 AliQuenchingWeights.cxx:926
 AliQuenchingWeights.cxx:927
 AliQuenchingWeights.cxx:928
 AliQuenchingWeights.cxx:929
 AliQuenchingWeights.cxx:930
 AliQuenchingWeights.cxx:931
 AliQuenchingWeights.cxx:932
 AliQuenchingWeights.cxx:933
 AliQuenchingWeights.cxx:934
 AliQuenchingWeights.cxx:935
 AliQuenchingWeights.cxx:936
 AliQuenchingWeights.cxx:937
 AliQuenchingWeights.cxx:938
 AliQuenchingWeights.cxx:939
 AliQuenchingWeights.cxx:940
 AliQuenchingWeights.cxx:941
 AliQuenchingWeights.cxx:942
 AliQuenchingWeights.cxx:943
 AliQuenchingWeights.cxx:944
 AliQuenchingWeights.cxx:945
 AliQuenchingWeights.cxx:946
 AliQuenchingWeights.cxx:947
 AliQuenchingWeights.cxx:948
 AliQuenchingWeights.cxx:949
 AliQuenchingWeights.cxx:950
 AliQuenchingWeights.cxx:951
 AliQuenchingWeights.cxx:952
 AliQuenchingWeights.cxx:953
 AliQuenchingWeights.cxx:954
 AliQuenchingWeights.cxx:955
 AliQuenchingWeights.cxx:956
 AliQuenchingWeights.cxx:957
 AliQuenchingWeights.cxx:958
 AliQuenchingWeights.cxx:959
 AliQuenchingWeights.cxx:960
 AliQuenchingWeights.cxx:961
 AliQuenchingWeights.cxx:962
 AliQuenchingWeights.cxx:963
 AliQuenchingWeights.cxx:964
 AliQuenchingWeights.cxx:965
 AliQuenchingWeights.cxx:966
 AliQuenchingWeights.cxx:967
 AliQuenchingWeights.cxx:968
 AliQuenchingWeights.cxx:969
 AliQuenchingWeights.cxx:970
 AliQuenchingWeights.cxx:971
 AliQuenchingWeights.cxx:972
 AliQuenchingWeights.cxx:973
 AliQuenchingWeights.cxx:974
 AliQuenchingWeights.cxx:975
 AliQuenchingWeights.cxx:976
 AliQuenchingWeights.cxx:977
 AliQuenchingWeights.cxx:978
 AliQuenchingWeights.cxx:979
 AliQuenchingWeights.cxx:980
 AliQuenchingWeights.cxx:981
 AliQuenchingWeights.cxx:982
 AliQuenchingWeights.cxx:983
 AliQuenchingWeights.cxx:984
 AliQuenchingWeights.cxx:985
 AliQuenchingWeights.cxx:986
 AliQuenchingWeights.cxx:987
 AliQuenchingWeights.cxx:988
 AliQuenchingWeights.cxx:989
 AliQuenchingWeights.cxx:990
 AliQuenchingWeights.cxx:991
 AliQuenchingWeights.cxx:992
 AliQuenchingWeights.cxx:993
 AliQuenchingWeights.cxx:994
 AliQuenchingWeights.cxx:995
 AliQuenchingWeights.cxx:996
 AliQuenchingWeights.cxx:997
 AliQuenchingWeights.cxx:998
 AliQuenchingWeights.cxx:999
 AliQuenchingWeights.cxx:1000
 AliQuenchingWeights.cxx:1001
 AliQuenchingWeights.cxx:1002
 AliQuenchingWeights.cxx:1003
 AliQuenchingWeights.cxx:1004
 AliQuenchingWeights.cxx:1005
 AliQuenchingWeights.cxx:1006
 AliQuenchingWeights.cxx:1007
 AliQuenchingWeights.cxx:1008
 AliQuenchingWeights.cxx:1009
 AliQuenchingWeights.cxx:1010
 AliQuenchingWeights.cxx:1011
 AliQuenchingWeights.cxx:1012
 AliQuenchingWeights.cxx:1013
 AliQuenchingWeights.cxx:1014
 AliQuenchingWeights.cxx:1015
 AliQuenchingWeights.cxx:1016
 AliQuenchingWeights.cxx:1017
 AliQuenchingWeights.cxx:1018
 AliQuenchingWeights.cxx:1019
 AliQuenchingWeights.cxx:1020
 AliQuenchingWeights.cxx:1021
 AliQuenchingWeights.cxx:1022
 AliQuenchingWeights.cxx:1023
 AliQuenchingWeights.cxx:1024
 AliQuenchingWeights.cxx:1025
 AliQuenchingWeights.cxx:1026
 AliQuenchingWeights.cxx:1027
 AliQuenchingWeights.cxx:1028
 AliQuenchingWeights.cxx:1029
 AliQuenchingWeights.cxx:1030
 AliQuenchingWeights.cxx:1031
 AliQuenchingWeights.cxx:1032
 AliQuenchingWeights.cxx:1033
 AliQuenchingWeights.cxx:1034
 AliQuenchingWeights.cxx:1035
 AliQuenchingWeights.cxx:1036
 AliQuenchingWeights.cxx:1037
 AliQuenchingWeights.cxx:1038
 AliQuenchingWeights.cxx:1039
 AliQuenchingWeights.cxx:1040
 AliQuenchingWeights.cxx:1041
 AliQuenchingWeights.cxx:1042
 AliQuenchingWeights.cxx:1043
 AliQuenchingWeights.cxx:1044
 AliQuenchingWeights.cxx:1045
 AliQuenchingWeights.cxx:1046
 AliQuenchingWeights.cxx:1047
 AliQuenchingWeights.cxx:1048
 AliQuenchingWeights.cxx:1049
 AliQuenchingWeights.cxx:1050
 AliQuenchingWeights.cxx:1051
 AliQuenchingWeights.cxx:1052
 AliQuenchingWeights.cxx:1053
 AliQuenchingWeights.cxx:1054
 AliQuenchingWeights.cxx:1055
 AliQuenchingWeights.cxx:1056
 AliQuenchingWeights.cxx:1057
 AliQuenchingWeights.cxx:1058
 AliQuenchingWeights.cxx:1059
 AliQuenchingWeights.cxx:1060
 AliQuenchingWeights.cxx:1061
 AliQuenchingWeights.cxx:1062
 AliQuenchingWeights.cxx:1063
 AliQuenchingWeights.cxx:1064
 AliQuenchingWeights.cxx:1065
 AliQuenchingWeights.cxx:1066
 AliQuenchingWeights.cxx:1067
 AliQuenchingWeights.cxx:1068
 AliQuenchingWeights.cxx:1069
 AliQuenchingWeights.cxx:1070
 AliQuenchingWeights.cxx:1071
 AliQuenchingWeights.cxx:1072
 AliQuenchingWeights.cxx:1073
 AliQuenchingWeights.cxx:1074
 AliQuenchingWeights.cxx:1075
 AliQuenchingWeights.cxx:1076
 AliQuenchingWeights.cxx:1077
 AliQuenchingWeights.cxx:1078
 AliQuenchingWeights.cxx:1079
 AliQuenchingWeights.cxx:1080
 AliQuenchingWeights.cxx:1081
 AliQuenchingWeights.cxx:1082
 AliQuenchingWeights.cxx:1083
 AliQuenchingWeights.cxx:1084
 AliQuenchingWeights.cxx:1085
 AliQuenchingWeights.cxx:1086
 AliQuenchingWeights.cxx:1087
 AliQuenchingWeights.cxx:1088
 AliQuenchingWeights.cxx:1089
 AliQuenchingWeights.cxx:1090
 AliQuenchingWeights.cxx:1091
 AliQuenchingWeights.cxx:1092
 AliQuenchingWeights.cxx:1093
 AliQuenchingWeights.cxx:1094
 AliQuenchingWeights.cxx:1095
 AliQuenchingWeights.cxx:1096
 AliQuenchingWeights.cxx:1097
 AliQuenchingWeights.cxx:1098
 AliQuenchingWeights.cxx:1099
 AliQuenchingWeights.cxx:1100
 AliQuenchingWeights.cxx:1101
 AliQuenchingWeights.cxx:1102
 AliQuenchingWeights.cxx:1103
 AliQuenchingWeights.cxx:1104
 AliQuenchingWeights.cxx:1105
 AliQuenchingWeights.cxx:1106
 AliQuenchingWeights.cxx:1107
 AliQuenchingWeights.cxx:1108
 AliQuenchingWeights.cxx:1109
 AliQuenchingWeights.cxx:1110
 AliQuenchingWeights.cxx:1111
 AliQuenchingWeights.cxx:1112
 AliQuenchingWeights.cxx:1113
 AliQuenchingWeights.cxx:1114
 AliQuenchingWeights.cxx:1115
 AliQuenchingWeights.cxx:1116
 AliQuenchingWeights.cxx:1117
 AliQuenchingWeights.cxx:1118
 AliQuenchingWeights.cxx:1119
 AliQuenchingWeights.cxx:1120
 AliQuenchingWeights.cxx:1121
 AliQuenchingWeights.cxx:1122
 AliQuenchingWeights.cxx:1123
 AliQuenchingWeights.cxx:1124
 AliQuenchingWeights.cxx:1125
 AliQuenchingWeights.cxx:1126
 AliQuenchingWeights.cxx:1127
 AliQuenchingWeights.cxx:1128
 AliQuenchingWeights.cxx:1129
 AliQuenchingWeights.cxx:1130
 AliQuenchingWeights.cxx:1131
 AliQuenchingWeights.cxx:1132
 AliQuenchingWeights.cxx:1133
 AliQuenchingWeights.cxx:1134
 AliQuenchingWeights.cxx:1135
 AliQuenchingWeights.cxx:1136
 AliQuenchingWeights.cxx:1137
 AliQuenchingWeights.cxx:1138
 AliQuenchingWeights.cxx:1139
 AliQuenchingWeights.cxx:1140
 AliQuenchingWeights.cxx:1141
 AliQuenchingWeights.cxx:1142
 AliQuenchingWeights.cxx:1143
 AliQuenchingWeights.cxx:1144
 AliQuenchingWeights.cxx:1145
 AliQuenchingWeights.cxx:1146
 AliQuenchingWeights.cxx:1147
 AliQuenchingWeights.cxx:1148
 AliQuenchingWeights.cxx:1149
 AliQuenchingWeights.cxx:1150
 AliQuenchingWeights.cxx:1151
 AliQuenchingWeights.cxx:1152
 AliQuenchingWeights.cxx:1153
 AliQuenchingWeights.cxx:1154
 AliQuenchingWeights.cxx:1155
 AliQuenchingWeights.cxx:1156
 AliQuenchingWeights.cxx:1157
 AliQuenchingWeights.cxx:1158
 AliQuenchingWeights.cxx:1159
 AliQuenchingWeights.cxx:1160
 AliQuenchingWeights.cxx:1161
 AliQuenchingWeights.cxx:1162
 AliQuenchingWeights.cxx:1163
 AliQuenchingWeights.cxx:1164
 AliQuenchingWeights.cxx:1165
 AliQuenchingWeights.cxx:1166
 AliQuenchingWeights.cxx:1167
 AliQuenchingWeights.cxx:1168
 AliQuenchingWeights.cxx:1169
 AliQuenchingWeights.cxx:1170
 AliQuenchingWeights.cxx:1171
 AliQuenchingWeights.cxx:1172
 AliQuenchingWeights.cxx:1173
 AliQuenchingWeights.cxx:1174
 AliQuenchingWeights.cxx:1175
 AliQuenchingWeights.cxx:1176
 AliQuenchingWeights.cxx:1177
 AliQuenchingWeights.cxx:1178
 AliQuenchingWeights.cxx:1179
 AliQuenchingWeights.cxx:1180
 AliQuenchingWeights.cxx:1181
 AliQuenchingWeights.cxx:1182
 AliQuenchingWeights.cxx:1183
 AliQuenchingWeights.cxx:1184
 AliQuenchingWeights.cxx:1185
 AliQuenchingWeights.cxx:1186
 AliQuenchingWeights.cxx:1187
 AliQuenchingWeights.cxx:1188
 AliQuenchingWeights.cxx:1189
 AliQuenchingWeights.cxx:1190
 AliQuenchingWeights.cxx:1191
 AliQuenchingWeights.cxx:1192
 AliQuenchingWeights.cxx:1193
 AliQuenchingWeights.cxx:1194
 AliQuenchingWeights.cxx:1195
 AliQuenchingWeights.cxx:1196
 AliQuenchingWeights.cxx:1197
 AliQuenchingWeights.cxx:1198
 AliQuenchingWeights.cxx:1199
 AliQuenchingWeights.cxx:1200
 AliQuenchingWeights.cxx:1201
 AliQuenchingWeights.cxx:1202
 AliQuenchingWeights.cxx:1203
 AliQuenchingWeights.cxx:1204
 AliQuenchingWeights.cxx:1205
 AliQuenchingWeights.cxx:1206
 AliQuenchingWeights.cxx:1207
 AliQuenchingWeights.cxx:1208
 AliQuenchingWeights.cxx:1209
 AliQuenchingWeights.cxx:1210
 AliQuenchingWeights.cxx:1211
 AliQuenchingWeights.cxx:1212
 AliQuenchingWeights.cxx:1213
 AliQuenchingWeights.cxx:1214
 AliQuenchingWeights.cxx:1215
 AliQuenchingWeights.cxx:1216
 AliQuenchingWeights.cxx:1217
 AliQuenchingWeights.cxx:1218
 AliQuenchingWeights.cxx:1219
 AliQuenchingWeights.cxx:1220
 AliQuenchingWeights.cxx:1221
 AliQuenchingWeights.cxx:1222
 AliQuenchingWeights.cxx:1223
 AliQuenchingWeights.cxx:1224
 AliQuenchingWeights.cxx:1225
 AliQuenchingWeights.cxx:1226
 AliQuenchingWeights.cxx:1227
 AliQuenchingWeights.cxx:1228
 AliQuenchingWeights.cxx:1229
 AliQuenchingWeights.cxx:1230
 AliQuenchingWeights.cxx:1231
 AliQuenchingWeights.cxx:1232
 AliQuenchingWeights.cxx:1233
 AliQuenchingWeights.cxx:1234
 AliQuenchingWeights.cxx:1235
 AliQuenchingWeights.cxx:1236
 AliQuenchingWeights.cxx:1237
 AliQuenchingWeights.cxx:1238
 AliQuenchingWeights.cxx:1239
 AliQuenchingWeights.cxx:1240
 AliQuenchingWeights.cxx:1241
 AliQuenchingWeights.cxx:1242
 AliQuenchingWeights.cxx:1243
 AliQuenchingWeights.cxx:1244
 AliQuenchingWeights.cxx:1245
 AliQuenchingWeights.cxx:1246
 AliQuenchingWeights.cxx:1247
 AliQuenchingWeights.cxx:1248
 AliQuenchingWeights.cxx:1249
 AliQuenchingWeights.cxx:1250
 AliQuenchingWeights.cxx:1251
 AliQuenchingWeights.cxx:1252
 AliQuenchingWeights.cxx:1253
 AliQuenchingWeights.cxx:1254
 AliQuenchingWeights.cxx:1255
 AliQuenchingWeights.cxx:1256
 AliQuenchingWeights.cxx:1257
 AliQuenchingWeights.cxx:1258
 AliQuenchingWeights.cxx:1259
 AliQuenchingWeights.cxx:1260
 AliQuenchingWeights.cxx:1261
 AliQuenchingWeights.cxx:1262
 AliQuenchingWeights.cxx:1263
 AliQuenchingWeights.cxx:1264
 AliQuenchingWeights.cxx:1265
 AliQuenchingWeights.cxx:1266
 AliQuenchingWeights.cxx:1267
 AliQuenchingWeights.cxx:1268
 AliQuenchingWeights.cxx:1269
 AliQuenchingWeights.cxx:1270
 AliQuenchingWeights.cxx:1271
 AliQuenchingWeights.cxx:1272
 AliQuenchingWeights.cxx:1273
 AliQuenchingWeights.cxx:1274
 AliQuenchingWeights.cxx:1275
 AliQuenchingWeights.cxx:1276
 AliQuenchingWeights.cxx:1277
 AliQuenchingWeights.cxx:1278
 AliQuenchingWeights.cxx:1279
 AliQuenchingWeights.cxx:1280
 AliQuenchingWeights.cxx:1281
 AliQuenchingWeights.cxx:1282
 AliQuenchingWeights.cxx:1283
 AliQuenchingWeights.cxx:1284
 AliQuenchingWeights.cxx:1285
 AliQuenchingWeights.cxx:1286
 AliQuenchingWeights.cxx:1287
 AliQuenchingWeights.cxx:1288
 AliQuenchingWeights.cxx:1289
 AliQuenchingWeights.cxx:1290
 AliQuenchingWeights.cxx:1291
 AliQuenchingWeights.cxx:1292
 AliQuenchingWeights.cxx:1293
 AliQuenchingWeights.cxx:1294
 AliQuenchingWeights.cxx:1295
 AliQuenchingWeights.cxx:1296
 AliQuenchingWeights.cxx:1297
 AliQuenchingWeights.cxx:1298
 AliQuenchingWeights.cxx:1299
 AliQuenchingWeights.cxx:1300
 AliQuenchingWeights.cxx:1301
 AliQuenchingWeights.cxx:1302
 AliQuenchingWeights.cxx:1303
 AliQuenchingWeights.cxx:1304
 AliQuenchingWeights.cxx:1305
 AliQuenchingWeights.cxx:1306
 AliQuenchingWeights.cxx:1307
 AliQuenchingWeights.cxx:1308
 AliQuenchingWeights.cxx:1309
 AliQuenchingWeights.cxx:1310
 AliQuenchingWeights.cxx:1311
 AliQuenchingWeights.cxx:1312
 AliQuenchingWeights.cxx:1313
 AliQuenchingWeights.cxx:1314
 AliQuenchingWeights.cxx:1315
 AliQuenchingWeights.cxx:1316
 AliQuenchingWeights.cxx:1317
 AliQuenchingWeights.cxx:1318
 AliQuenchingWeights.cxx:1319
 AliQuenchingWeights.cxx:1320
 AliQuenchingWeights.cxx:1321
 AliQuenchingWeights.cxx:1322
 AliQuenchingWeights.cxx:1323
 AliQuenchingWeights.cxx:1324
 AliQuenchingWeights.cxx:1325
 AliQuenchingWeights.cxx:1326
 AliQuenchingWeights.cxx:1327
 AliQuenchingWeights.cxx:1328
 AliQuenchingWeights.cxx:1329
 AliQuenchingWeights.cxx:1330
 AliQuenchingWeights.cxx:1331
 AliQuenchingWeights.cxx:1332
 AliQuenchingWeights.cxx:1333
 AliQuenchingWeights.cxx:1334
 AliQuenchingWeights.cxx:1335
 AliQuenchingWeights.cxx:1336
 AliQuenchingWeights.cxx:1337
 AliQuenchingWeights.cxx:1338
 AliQuenchingWeights.cxx:1339
 AliQuenchingWeights.cxx:1340
 AliQuenchingWeights.cxx:1341
 AliQuenchingWeights.cxx:1342
 AliQuenchingWeights.cxx:1343
 AliQuenchingWeights.cxx:1344
 AliQuenchingWeights.cxx:1345
 AliQuenchingWeights.cxx:1346
 AliQuenchingWeights.cxx:1347
 AliQuenchingWeights.cxx:1348
 AliQuenchingWeights.cxx:1349
 AliQuenchingWeights.cxx:1350
 AliQuenchingWeights.cxx:1351
 AliQuenchingWeights.cxx:1352
 AliQuenchingWeights.cxx:1353
 AliQuenchingWeights.cxx:1354
 AliQuenchingWeights.cxx:1355
 AliQuenchingWeights.cxx:1356
 AliQuenchingWeights.cxx:1357
 AliQuenchingWeights.cxx:1358
 AliQuenchingWeights.cxx:1359
 AliQuenchingWeights.cxx:1360
 AliQuenchingWeights.cxx:1361
 AliQuenchingWeights.cxx:1362
 AliQuenchingWeights.cxx:1363
 AliQuenchingWeights.cxx:1364
 AliQuenchingWeights.cxx:1365
 AliQuenchingWeights.cxx:1366
 AliQuenchingWeights.cxx:1367
 AliQuenchingWeights.cxx:1368
 AliQuenchingWeights.cxx:1369
 AliQuenchingWeights.cxx:1370
 AliQuenchingWeights.cxx:1371
 AliQuenchingWeights.cxx:1372
 AliQuenchingWeights.cxx:1373
 AliQuenchingWeights.cxx:1374
 AliQuenchingWeights.cxx:1375
 AliQuenchingWeights.cxx:1376
 AliQuenchingWeights.cxx:1377
 AliQuenchingWeights.cxx:1378
 AliQuenchingWeights.cxx:1379
 AliQuenchingWeights.cxx:1380
 AliQuenchingWeights.cxx:1381
 AliQuenchingWeights.cxx:1382
 AliQuenchingWeights.cxx:1383
 AliQuenchingWeights.cxx:1384
 AliQuenchingWeights.cxx:1385
 AliQuenchingWeights.cxx:1386
 AliQuenchingWeights.cxx:1387
 AliQuenchingWeights.cxx:1388
 AliQuenchingWeights.cxx:1389
 AliQuenchingWeights.cxx:1390
 AliQuenchingWeights.cxx:1391
 AliQuenchingWeights.cxx:1392
 AliQuenchingWeights.cxx:1393
 AliQuenchingWeights.cxx:1394
 AliQuenchingWeights.cxx:1395
 AliQuenchingWeights.cxx:1396
 AliQuenchingWeights.cxx:1397
 AliQuenchingWeights.cxx:1398
 AliQuenchingWeights.cxx:1399
 AliQuenchingWeights.cxx:1400
 AliQuenchingWeights.cxx:1401
 AliQuenchingWeights.cxx:1402
 AliQuenchingWeights.cxx:1403
 AliQuenchingWeights.cxx:1404
 AliQuenchingWeights.cxx:1405
 AliQuenchingWeights.cxx:1406
 AliQuenchingWeights.cxx:1407
 AliQuenchingWeights.cxx:1408
 AliQuenchingWeights.cxx:1409
 AliQuenchingWeights.cxx:1410
 AliQuenchingWeights.cxx:1411
 AliQuenchingWeights.cxx:1412
 AliQuenchingWeights.cxx:1413
 AliQuenchingWeights.cxx:1414
 AliQuenchingWeights.cxx:1415
 AliQuenchingWeights.cxx:1416
 AliQuenchingWeights.cxx:1417
 AliQuenchingWeights.cxx:1418
 AliQuenchingWeights.cxx:1419
 AliQuenchingWeights.cxx:1420
 AliQuenchingWeights.cxx:1421
 AliQuenchingWeights.cxx:1422
 AliQuenchingWeights.cxx:1423
 AliQuenchingWeights.cxx:1424
 AliQuenchingWeights.cxx:1425
 AliQuenchingWeights.cxx:1426
 AliQuenchingWeights.cxx:1427
 AliQuenchingWeights.cxx:1428
 AliQuenchingWeights.cxx:1429
 AliQuenchingWeights.cxx:1430
 AliQuenchingWeights.cxx:1431
 AliQuenchingWeights.cxx:1432
 AliQuenchingWeights.cxx:1433
 AliQuenchingWeights.cxx:1434
 AliQuenchingWeights.cxx:1435
 AliQuenchingWeights.cxx:1436
 AliQuenchingWeights.cxx:1437
 AliQuenchingWeights.cxx:1438
 AliQuenchingWeights.cxx:1439
 AliQuenchingWeights.cxx:1440
 AliQuenchingWeights.cxx:1441
 AliQuenchingWeights.cxx:1442
 AliQuenchingWeights.cxx:1443
 AliQuenchingWeights.cxx:1444
 AliQuenchingWeights.cxx:1445
 AliQuenchingWeights.cxx:1446
 AliQuenchingWeights.cxx:1447
 AliQuenchingWeights.cxx:1448
 AliQuenchingWeights.cxx:1449
 AliQuenchingWeights.cxx:1450
 AliQuenchingWeights.cxx:1451
 AliQuenchingWeights.cxx:1452
 AliQuenchingWeights.cxx:1453
 AliQuenchingWeights.cxx:1454
 AliQuenchingWeights.cxx:1455
 AliQuenchingWeights.cxx:1456
 AliQuenchingWeights.cxx:1457
 AliQuenchingWeights.cxx:1458
 AliQuenchingWeights.cxx:1459
 AliQuenchingWeights.cxx:1460
 AliQuenchingWeights.cxx:1461
 AliQuenchingWeights.cxx:1462
 AliQuenchingWeights.cxx:1463
 AliQuenchingWeights.cxx:1464
 AliQuenchingWeights.cxx:1465
 AliQuenchingWeights.cxx:1466
 AliQuenchingWeights.cxx:1467
 AliQuenchingWeights.cxx:1468
 AliQuenchingWeights.cxx:1469
 AliQuenchingWeights.cxx:1470
 AliQuenchingWeights.cxx:1471
 AliQuenchingWeights.cxx:1472
 AliQuenchingWeights.cxx:1473
 AliQuenchingWeights.cxx:1474
 AliQuenchingWeights.cxx:1475
 AliQuenchingWeights.cxx:1476
 AliQuenchingWeights.cxx:1477
 AliQuenchingWeights.cxx:1478
 AliQuenchingWeights.cxx:1479
 AliQuenchingWeights.cxx:1480
 AliQuenchingWeights.cxx:1481
 AliQuenchingWeights.cxx:1482
 AliQuenchingWeights.cxx:1483
 AliQuenchingWeights.cxx:1484
 AliQuenchingWeights.cxx:1485
 AliQuenchingWeights.cxx:1486
 AliQuenchingWeights.cxx:1487
 AliQuenchingWeights.cxx:1488
 AliQuenchingWeights.cxx:1489
 AliQuenchingWeights.cxx:1490
 AliQuenchingWeights.cxx:1491
 AliQuenchingWeights.cxx:1492
 AliQuenchingWeights.cxx:1493
 AliQuenchingWeights.cxx:1494
 AliQuenchingWeights.cxx:1495
 AliQuenchingWeights.cxx:1496
 AliQuenchingWeights.cxx:1497
 AliQuenchingWeights.cxx:1498
 AliQuenchingWeights.cxx:1499
 AliQuenchingWeights.cxx:1500
 AliQuenchingWeights.cxx:1501
 AliQuenchingWeights.cxx:1502
 AliQuenchingWeights.cxx:1503
 AliQuenchingWeights.cxx:1504
 AliQuenchingWeights.cxx:1505
 AliQuenchingWeights.cxx:1506
 AliQuenchingWeights.cxx:1507
 AliQuenchingWeights.cxx:1508
 AliQuenchingWeights.cxx:1509
 AliQuenchingWeights.cxx:1510
 AliQuenchingWeights.cxx:1511
 AliQuenchingWeights.cxx:1512
 AliQuenchingWeights.cxx:1513
 AliQuenchingWeights.cxx:1514
 AliQuenchingWeights.cxx:1515
 AliQuenchingWeights.cxx:1516
 AliQuenchingWeights.cxx:1517
 AliQuenchingWeights.cxx:1518
 AliQuenchingWeights.cxx:1519
 AliQuenchingWeights.cxx:1520
 AliQuenchingWeights.cxx:1521
 AliQuenchingWeights.cxx:1522
 AliQuenchingWeights.cxx:1523
 AliQuenchingWeights.cxx:1524
 AliQuenchingWeights.cxx:1525
 AliQuenchingWeights.cxx:1526
 AliQuenchingWeights.cxx:1527
 AliQuenchingWeights.cxx:1528
 AliQuenchingWeights.cxx:1529
 AliQuenchingWeights.cxx:1530
 AliQuenchingWeights.cxx:1531
 AliQuenchingWeights.cxx:1532
 AliQuenchingWeights.cxx:1533
 AliQuenchingWeights.cxx:1534
 AliQuenchingWeights.cxx:1535
 AliQuenchingWeights.cxx:1536
 AliQuenchingWeights.cxx:1537
 AliQuenchingWeights.cxx:1538
 AliQuenchingWeights.cxx:1539
 AliQuenchingWeights.cxx:1540
 AliQuenchingWeights.cxx:1541
 AliQuenchingWeights.cxx:1542
 AliQuenchingWeights.cxx:1543
 AliQuenchingWeights.cxx:1544
 AliQuenchingWeights.cxx:1545
 AliQuenchingWeights.cxx:1546
 AliQuenchingWeights.cxx:1547
 AliQuenchingWeights.cxx:1548
 AliQuenchingWeights.cxx:1549
 AliQuenchingWeights.cxx:1550
 AliQuenchingWeights.cxx:1551
 AliQuenchingWeights.cxx:1552
 AliQuenchingWeights.cxx:1553
 AliQuenchingWeights.cxx:1554
 AliQuenchingWeights.cxx:1555
 AliQuenchingWeights.cxx:1556
 AliQuenchingWeights.cxx:1557
 AliQuenchingWeights.cxx:1558
 AliQuenchingWeights.cxx:1559
 AliQuenchingWeights.cxx:1560
 AliQuenchingWeights.cxx:1561
 AliQuenchingWeights.cxx:1562
 AliQuenchingWeights.cxx:1563
 AliQuenchingWeights.cxx:1564
 AliQuenchingWeights.cxx:1565
 AliQuenchingWeights.cxx:1566
 AliQuenchingWeights.cxx:1567
 AliQuenchingWeights.cxx:1568
 AliQuenchingWeights.cxx:1569
 AliQuenchingWeights.cxx:1570
 AliQuenchingWeights.cxx:1571
 AliQuenchingWeights.cxx:1572
 AliQuenchingWeights.cxx:1573
 AliQuenchingWeights.cxx:1574
 AliQuenchingWeights.cxx:1575
 AliQuenchingWeights.cxx:1576
 AliQuenchingWeights.cxx:1577
 AliQuenchingWeights.cxx:1578
 AliQuenchingWeights.cxx:1579
 AliQuenchingWeights.cxx:1580
 AliQuenchingWeights.cxx:1581
 AliQuenchingWeights.cxx:1582
 AliQuenchingWeights.cxx:1583
 AliQuenchingWeights.cxx:1584
 AliQuenchingWeights.cxx:1585
 AliQuenchingWeights.cxx:1586
 AliQuenchingWeights.cxx:1587
 AliQuenchingWeights.cxx:1588
 AliQuenchingWeights.cxx:1589
 AliQuenchingWeights.cxx:1590
 AliQuenchingWeights.cxx:1591
 AliQuenchingWeights.cxx:1592
 AliQuenchingWeights.cxx:1593
 AliQuenchingWeights.cxx:1594
 AliQuenchingWeights.cxx:1595
 AliQuenchingWeights.cxx:1596
 AliQuenchingWeights.cxx:1597
 AliQuenchingWeights.cxx:1598
 AliQuenchingWeights.cxx:1599
 AliQuenchingWeights.cxx:1600
 AliQuenchingWeights.cxx:1601
 AliQuenchingWeights.cxx:1602
 AliQuenchingWeights.cxx:1603
 AliQuenchingWeights.cxx:1604
 AliQuenchingWeights.cxx:1605
 AliQuenchingWeights.cxx:1606
 AliQuenchingWeights.cxx:1607
 AliQuenchingWeights.cxx:1608
 AliQuenchingWeights.cxx:1609
 AliQuenchingWeights.cxx:1610
 AliQuenchingWeights.cxx:1611
 AliQuenchingWeights.cxx:1612
 AliQuenchingWeights.cxx:1613
 AliQuenchingWeights.cxx:1614
 AliQuenchingWeights.cxx:1615
 AliQuenchingWeights.cxx:1616
 AliQuenchingWeights.cxx:1617
 AliQuenchingWeights.cxx:1618
 AliQuenchingWeights.cxx:1619
 AliQuenchingWeights.cxx:1620
 AliQuenchingWeights.cxx:1621
 AliQuenchingWeights.cxx:1622
 AliQuenchingWeights.cxx:1623
 AliQuenchingWeights.cxx:1624
 AliQuenchingWeights.cxx:1625
 AliQuenchingWeights.cxx:1626
 AliQuenchingWeights.cxx:1627
 AliQuenchingWeights.cxx:1628
 AliQuenchingWeights.cxx:1629
 AliQuenchingWeights.cxx:1630
 AliQuenchingWeights.cxx:1631
 AliQuenchingWeights.cxx:1632
 AliQuenchingWeights.cxx:1633
 AliQuenchingWeights.cxx:1634
 AliQuenchingWeights.cxx:1635
 AliQuenchingWeights.cxx:1636
 AliQuenchingWeights.cxx:1637
 AliQuenchingWeights.cxx:1638
 AliQuenchingWeights.cxx:1639
 AliQuenchingWeights.cxx:1640
 AliQuenchingWeights.cxx:1641
 AliQuenchingWeights.cxx:1642
 AliQuenchingWeights.cxx:1643
 AliQuenchingWeights.cxx:1644
 AliQuenchingWeights.cxx:1645
 AliQuenchingWeights.cxx:1646
 AliQuenchingWeights.cxx:1647
 AliQuenchingWeights.cxx:1648
 AliQuenchingWeights.cxx:1649
 AliQuenchingWeights.cxx:1650
 AliQuenchingWeights.cxx:1651
 AliQuenchingWeights.cxx:1652
 AliQuenchingWeights.cxx:1653
 AliQuenchingWeights.cxx:1654
 AliQuenchingWeights.cxx:1655
 AliQuenchingWeights.cxx:1656
 AliQuenchingWeights.cxx:1657
 AliQuenchingWeights.cxx:1658
 AliQuenchingWeights.cxx:1659
 AliQuenchingWeights.cxx:1660
 AliQuenchingWeights.cxx:1661
 AliQuenchingWeights.cxx:1662
 AliQuenchingWeights.cxx:1663
 AliQuenchingWeights.cxx:1664
 AliQuenchingWeights.cxx:1665
 AliQuenchingWeights.cxx:1666
 AliQuenchingWeights.cxx:1667
 AliQuenchingWeights.cxx:1668
 AliQuenchingWeights.cxx:1669
 AliQuenchingWeights.cxx:1670
 AliQuenchingWeights.cxx:1671
 AliQuenchingWeights.cxx:1672
 AliQuenchingWeights.cxx:1673
 AliQuenchingWeights.cxx:1674
 AliQuenchingWeights.cxx:1675
 AliQuenchingWeights.cxx:1676
 AliQuenchingWeights.cxx:1677
 AliQuenchingWeights.cxx:1678
 AliQuenchingWeights.cxx:1679
 AliQuenchingWeights.cxx:1680
 AliQuenchingWeights.cxx:1681
 AliQuenchingWeights.cxx:1682
 AliQuenchingWeights.cxx:1683
 AliQuenchingWeights.cxx:1684
 AliQuenchingWeights.cxx:1685
 AliQuenchingWeights.cxx:1686
 AliQuenchingWeights.cxx:1687
 AliQuenchingWeights.cxx:1688
 AliQuenchingWeights.cxx:1689
 AliQuenchingWeights.cxx:1690
 AliQuenchingWeights.cxx:1691
 AliQuenchingWeights.cxx:1692
 AliQuenchingWeights.cxx:1693
 AliQuenchingWeights.cxx:1694
 AliQuenchingWeights.cxx:1695
 AliQuenchingWeights.cxx:1696
 AliQuenchingWeights.cxx:1697
 AliQuenchingWeights.cxx:1698
 AliQuenchingWeights.cxx:1699
 AliQuenchingWeights.cxx:1700
 AliQuenchingWeights.cxx:1701
 AliQuenchingWeights.cxx:1702
 AliQuenchingWeights.cxx:1703
 AliQuenchingWeights.cxx:1704
 AliQuenchingWeights.cxx:1705
 AliQuenchingWeights.cxx:1706
 AliQuenchingWeights.cxx:1707
 AliQuenchingWeights.cxx:1708
 AliQuenchingWeights.cxx:1709
 AliQuenchingWeights.cxx:1710
 AliQuenchingWeights.cxx:1711
 AliQuenchingWeights.cxx:1712
 AliQuenchingWeights.cxx:1713
 AliQuenchingWeights.cxx:1714
 AliQuenchingWeights.cxx:1715
 AliQuenchingWeights.cxx:1716
 AliQuenchingWeights.cxx:1717
 AliQuenchingWeights.cxx:1718
 AliQuenchingWeights.cxx:1719
 AliQuenchingWeights.cxx:1720
 AliQuenchingWeights.cxx:1721
 AliQuenchingWeights.cxx:1722
 AliQuenchingWeights.cxx:1723
 AliQuenchingWeights.cxx:1724
 AliQuenchingWeights.cxx:1725
 AliQuenchingWeights.cxx:1726
 AliQuenchingWeights.cxx:1727
 AliQuenchingWeights.cxx:1728
 AliQuenchingWeights.cxx:1729
 AliQuenchingWeights.cxx:1730
 AliQuenchingWeights.cxx:1731
 AliQuenchingWeights.cxx:1732
 AliQuenchingWeights.cxx:1733
 AliQuenchingWeights.cxx:1734
 AliQuenchingWeights.cxx:1735
 AliQuenchingWeights.cxx:1736
 AliQuenchingWeights.cxx:1737
 AliQuenchingWeights.cxx:1738
 AliQuenchingWeights.cxx:1739
 AliQuenchingWeights.cxx:1740
 AliQuenchingWeights.cxx:1741
 AliQuenchingWeights.cxx:1742
 AliQuenchingWeights.cxx:1743
 AliQuenchingWeights.cxx:1744
 AliQuenchingWeights.cxx:1745
 AliQuenchingWeights.cxx:1746
 AliQuenchingWeights.cxx:1747
 AliQuenchingWeights.cxx:1748
 AliQuenchingWeights.cxx:1749
 AliQuenchingWeights.cxx:1750
 AliQuenchingWeights.cxx:1751
 AliQuenchingWeights.cxx:1752
 AliQuenchingWeights.cxx:1753
 AliQuenchingWeights.cxx:1754
 AliQuenchingWeights.cxx:1755
 AliQuenchingWeights.cxx:1756
 AliQuenchingWeights.cxx:1757
 AliQuenchingWeights.cxx:1758
 AliQuenchingWeights.cxx:1759
 AliQuenchingWeights.cxx:1760
 AliQuenchingWeights.cxx:1761
 AliQuenchingWeights.cxx:1762
 AliQuenchingWeights.cxx:1763
 AliQuenchingWeights.cxx:1764
 AliQuenchingWeights.cxx:1765
 AliQuenchingWeights.cxx:1766
 AliQuenchingWeights.cxx:1767
 AliQuenchingWeights.cxx:1768
 AliQuenchingWeights.cxx:1769
 AliQuenchingWeights.cxx:1770
 AliQuenchingWeights.cxx:1771
 AliQuenchingWeights.cxx:1772
 AliQuenchingWeights.cxx:1773
 AliQuenchingWeights.cxx:1774
 AliQuenchingWeights.cxx:1775
 AliQuenchingWeights.cxx:1776
 AliQuenchingWeights.cxx:1777
 AliQuenchingWeights.cxx:1778
 AliQuenchingWeights.cxx:1779
 AliQuenchingWeights.cxx:1780
 AliQuenchingWeights.cxx:1781
 AliQuenchingWeights.cxx:1782
 AliQuenchingWeights.cxx:1783
 AliQuenchingWeights.cxx:1784
 AliQuenchingWeights.cxx:1785
 AliQuenchingWeights.cxx:1786
 AliQuenchingWeights.cxx:1787
 AliQuenchingWeights.cxx:1788
 AliQuenchingWeights.cxx:1789
 AliQuenchingWeights.cxx:1790
 AliQuenchingWeights.cxx:1791
 AliQuenchingWeights.cxx:1792
 AliQuenchingWeights.cxx:1793
 AliQuenchingWeights.cxx:1794
 AliQuenchingWeights.cxx:1795
 AliQuenchingWeights.cxx:1796
 AliQuenchingWeights.cxx:1797
 AliQuenchingWeights.cxx:1798
 AliQuenchingWeights.cxx:1799
 AliQuenchingWeights.cxx:1800
 AliQuenchingWeights.cxx:1801
 AliQuenchingWeights.cxx:1802
 AliQuenchingWeights.cxx:1803
 AliQuenchingWeights.cxx:1804
 AliQuenchingWeights.cxx:1805
 AliQuenchingWeights.cxx:1806
 AliQuenchingWeights.cxx:1807
 AliQuenchingWeights.cxx:1808
 AliQuenchingWeights.cxx:1809
 AliQuenchingWeights.cxx:1810
 AliQuenchingWeights.cxx:1811
 AliQuenchingWeights.cxx:1812
 AliQuenchingWeights.cxx:1813
 AliQuenchingWeights.cxx:1814
 AliQuenchingWeights.cxx:1815
 AliQuenchingWeights.cxx:1816
 AliQuenchingWeights.cxx:1817
 AliQuenchingWeights.cxx:1818
 AliQuenchingWeights.cxx:1819
 AliQuenchingWeights.cxx:1820
 AliQuenchingWeights.cxx:1821
 AliQuenchingWeights.cxx:1822
 AliQuenchingWeights.cxx:1823
 AliQuenchingWeights.cxx:1824
 AliQuenchingWeights.cxx:1825
 AliQuenchingWeights.cxx:1826
 AliQuenchingWeights.cxx:1827
 AliQuenchingWeights.cxx:1828
 AliQuenchingWeights.cxx:1829
 AliQuenchingWeights.cxx:1830
 AliQuenchingWeights.cxx:1831
 AliQuenchingWeights.cxx:1832
 AliQuenchingWeights.cxx:1833
 AliQuenchingWeights.cxx:1834
 AliQuenchingWeights.cxx:1835
 AliQuenchingWeights.cxx:1836
 AliQuenchingWeights.cxx:1837
 AliQuenchingWeights.cxx:1838
 AliQuenchingWeights.cxx:1839
 AliQuenchingWeights.cxx:1840
 AliQuenchingWeights.cxx:1841
 AliQuenchingWeights.cxx:1842
 AliQuenchingWeights.cxx:1843
 AliQuenchingWeights.cxx:1844
 AliQuenchingWeights.cxx:1845
 AliQuenchingWeights.cxx:1846
 AliQuenchingWeights.cxx:1847
 AliQuenchingWeights.cxx:1848
 AliQuenchingWeights.cxx:1849
 AliQuenchingWeights.cxx:1850
 AliQuenchingWeights.cxx:1851
 AliQuenchingWeights.cxx:1852
 AliQuenchingWeights.cxx:1853
 AliQuenchingWeights.cxx:1854
 AliQuenchingWeights.cxx:1855
 AliQuenchingWeights.cxx:1856
 AliQuenchingWeights.cxx:1857
 AliQuenchingWeights.cxx:1858
 AliQuenchingWeights.cxx:1859
 AliQuenchingWeights.cxx:1860
 AliQuenchingWeights.cxx:1861
 AliQuenchingWeights.cxx:1862
 AliQuenchingWeights.cxx:1863
 AliQuenchingWeights.cxx:1864
 AliQuenchingWeights.cxx:1865
 AliQuenchingWeights.cxx:1866
 AliQuenchingWeights.cxx:1867
 AliQuenchingWeights.cxx:1868
 AliQuenchingWeights.cxx:1869
 AliQuenchingWeights.cxx:1870
 AliQuenchingWeights.cxx:1871
 AliQuenchingWeights.cxx:1872
 AliQuenchingWeights.cxx:1873
 AliQuenchingWeights.cxx:1874
 AliQuenchingWeights.cxx:1875
 AliQuenchingWeights.cxx:1876
 AliQuenchingWeights.cxx:1877
 AliQuenchingWeights.cxx:1878
 AliQuenchingWeights.cxx:1879
 AliQuenchingWeights.cxx:1880
 AliQuenchingWeights.cxx:1881
 AliQuenchingWeights.cxx:1882
 AliQuenchingWeights.cxx:1883
 AliQuenchingWeights.cxx:1884
 AliQuenchingWeights.cxx:1885
 AliQuenchingWeights.cxx:1886
 AliQuenchingWeights.cxx:1887
 AliQuenchingWeights.cxx:1888
 AliQuenchingWeights.cxx:1889
 AliQuenchingWeights.cxx:1890
 AliQuenchingWeights.cxx:1891
 AliQuenchingWeights.cxx:1892
 AliQuenchingWeights.cxx:1893
 AliQuenchingWeights.cxx:1894
 AliQuenchingWeights.cxx:1895
 AliQuenchingWeights.cxx:1896
 AliQuenchingWeights.cxx:1897
 AliQuenchingWeights.cxx:1898
 AliQuenchingWeights.cxx:1899
 AliQuenchingWeights.cxx:1900
 AliQuenchingWeights.cxx:1901
 AliQuenchingWeights.cxx:1902
 AliQuenchingWeights.cxx:1903
 AliQuenchingWeights.cxx:1904
 AliQuenchingWeights.cxx:1905
 AliQuenchingWeights.cxx:1906
 AliQuenchingWeights.cxx:1907
 AliQuenchingWeights.cxx:1908
 AliQuenchingWeights.cxx:1909
 AliQuenchingWeights.cxx:1910
 AliQuenchingWeights.cxx:1911
 AliQuenchingWeights.cxx:1912
 AliQuenchingWeights.cxx:1913
 AliQuenchingWeights.cxx:1914
 AliQuenchingWeights.cxx:1915
 AliQuenchingWeights.cxx:1916
 AliQuenchingWeights.cxx:1917
 AliQuenchingWeights.cxx:1918
 AliQuenchingWeights.cxx:1919
 AliQuenchingWeights.cxx:1920
 AliQuenchingWeights.cxx:1921
 AliQuenchingWeights.cxx:1922
 AliQuenchingWeights.cxx:1923
 AliQuenchingWeights.cxx:1924
 AliQuenchingWeights.cxx:1925
 AliQuenchingWeights.cxx:1926
 AliQuenchingWeights.cxx:1927
 AliQuenchingWeights.cxx:1928
 AliQuenchingWeights.cxx:1929
 AliQuenchingWeights.cxx:1930
 AliQuenchingWeights.cxx:1931
 AliQuenchingWeights.cxx:1932
 AliQuenchingWeights.cxx:1933
 AliQuenchingWeights.cxx:1934
 AliQuenchingWeights.cxx:1935
 AliQuenchingWeights.cxx:1936
 AliQuenchingWeights.cxx:1937
 AliQuenchingWeights.cxx:1938
 AliQuenchingWeights.cxx:1939
 AliQuenchingWeights.cxx:1940
 AliQuenchingWeights.cxx:1941
 AliQuenchingWeights.cxx:1942
 AliQuenchingWeights.cxx:1943
 AliQuenchingWeights.cxx:1944
 AliQuenchingWeights.cxx:1945
 AliQuenchingWeights.cxx:1946
 AliQuenchingWeights.cxx:1947
 AliQuenchingWeights.cxx:1948
 AliQuenchingWeights.cxx:1949
 AliQuenchingWeights.cxx:1950
 AliQuenchingWeights.cxx:1951
 AliQuenchingWeights.cxx:1952
 AliQuenchingWeights.cxx:1953
 AliQuenchingWeights.cxx:1954
 AliQuenchingWeights.cxx:1955
 AliQuenchingWeights.cxx:1956
 AliQuenchingWeights.cxx:1957
 AliQuenchingWeights.cxx:1958
 AliQuenchingWeights.cxx:1959
 AliQuenchingWeights.cxx:1960
 AliQuenchingWeights.cxx:1961
 AliQuenchingWeights.cxx:1962
 AliQuenchingWeights.cxx:1963
 AliQuenchingWeights.cxx:1964
 AliQuenchingWeights.cxx:1965
 AliQuenchingWeights.cxx:1966
 AliQuenchingWeights.cxx:1967
 AliQuenchingWeights.cxx:1968
 AliQuenchingWeights.cxx:1969
 AliQuenchingWeights.cxx:1970
 AliQuenchingWeights.cxx:1971
 AliQuenchingWeights.cxx:1972
 AliQuenchingWeights.cxx:1973
 AliQuenchingWeights.cxx:1974
 AliQuenchingWeights.cxx:1975
 AliQuenchingWeights.cxx:1976
 AliQuenchingWeights.cxx:1977
 AliQuenchingWeights.cxx:1978
 AliQuenchingWeights.cxx:1979
 AliQuenchingWeights.cxx:1980
 AliQuenchingWeights.cxx:1981
 AliQuenchingWeights.cxx:1982
 AliQuenchingWeights.cxx:1983
 AliQuenchingWeights.cxx:1984
 AliQuenchingWeights.cxx:1985
 AliQuenchingWeights.cxx:1986
 AliQuenchingWeights.cxx:1987
 AliQuenchingWeights.cxx:1988
 AliQuenchingWeights.cxx:1989
 AliQuenchingWeights.cxx:1990
 AliQuenchingWeights.cxx:1991
 AliQuenchingWeights.cxx:1992
 AliQuenchingWeights.cxx:1993
 AliQuenchingWeights.cxx:1994
 AliQuenchingWeights.cxx:1995
 AliQuenchingWeights.cxx:1996
 AliQuenchingWeights.cxx:1997
 AliQuenchingWeights.cxx:1998
 AliQuenchingWeights.cxx:1999
 AliQuenchingWeights.cxx:2000
 AliQuenchingWeights.cxx:2001
 AliQuenchingWeights.cxx:2002
 AliQuenchingWeights.cxx:2003
 AliQuenchingWeights.cxx:2004
 AliQuenchingWeights.cxx:2005
 AliQuenchingWeights.cxx:2006
 AliQuenchingWeights.cxx:2007
 AliQuenchingWeights.cxx:2008
 AliQuenchingWeights.cxx:2009
 AliQuenchingWeights.cxx:2010
 AliQuenchingWeights.cxx:2011
 AliQuenchingWeights.cxx:2012
 AliQuenchingWeights.cxx:2013
 AliQuenchingWeights.cxx:2014
 AliQuenchingWeights.cxx:2015
 AliQuenchingWeights.cxx:2016
 AliQuenchingWeights.cxx:2017
 AliQuenchingWeights.cxx:2018
 AliQuenchingWeights.cxx:2019
 AliQuenchingWeights.cxx:2020
 AliQuenchingWeights.cxx:2021
 AliQuenchingWeights.cxx:2022
 AliQuenchingWeights.cxx:2023
 AliQuenchingWeights.cxx:2024
 AliQuenchingWeights.cxx:2025
 AliQuenchingWeights.cxx:2026
 AliQuenchingWeights.cxx:2027
 AliQuenchingWeights.cxx:2028
 AliQuenchingWeights.cxx:2029
 AliQuenchingWeights.cxx:2030
 AliQuenchingWeights.cxx:2031
 AliQuenchingWeights.cxx:2032
 AliQuenchingWeights.cxx:2033
 AliQuenchingWeights.cxx:2034
 AliQuenchingWeights.cxx:2035
 AliQuenchingWeights.cxx:2036
 AliQuenchingWeights.cxx:2037
 AliQuenchingWeights.cxx:2038
 AliQuenchingWeights.cxx:2039
 AliQuenchingWeights.cxx:2040
 AliQuenchingWeights.cxx:2041
 AliQuenchingWeights.cxx:2042
 AliQuenchingWeights.cxx:2043
 AliQuenchingWeights.cxx:2044
 AliQuenchingWeights.cxx:2045
 AliQuenchingWeights.cxx:2046
 AliQuenchingWeights.cxx:2047
 AliQuenchingWeights.cxx:2048
 AliQuenchingWeights.cxx:2049
 AliQuenchingWeights.cxx:2050
 AliQuenchingWeights.cxx:2051
 AliQuenchingWeights.cxx:2052
 AliQuenchingWeights.cxx:2053
 AliQuenchingWeights.cxx:2054
 AliQuenchingWeights.cxx:2055
 AliQuenchingWeights.cxx:2056
 AliQuenchingWeights.cxx:2057
 AliQuenchingWeights.cxx:2058
 AliQuenchingWeights.cxx:2059
 AliQuenchingWeights.cxx:2060
 AliQuenchingWeights.cxx:2061
 AliQuenchingWeights.cxx:2062
 AliQuenchingWeights.cxx:2063
 AliQuenchingWeights.cxx:2064
 AliQuenchingWeights.cxx:2065
 AliQuenchingWeights.cxx:2066
 AliQuenchingWeights.cxx:2067
 AliQuenchingWeights.cxx:2068
 AliQuenchingWeights.cxx:2069
 AliQuenchingWeights.cxx:2070
 AliQuenchingWeights.cxx:2071
 AliQuenchingWeights.cxx:2072
 AliQuenchingWeights.cxx:2073
 AliQuenchingWeights.cxx:2074
 AliQuenchingWeights.cxx:2075
 AliQuenchingWeights.cxx:2076
 AliQuenchingWeights.cxx:2077
 AliQuenchingWeights.cxx:2078
 AliQuenchingWeights.cxx:2079
 AliQuenchingWeights.cxx:2080
 AliQuenchingWeights.cxx:2081
 AliQuenchingWeights.cxx:2082
 AliQuenchingWeights.cxx:2083
 AliQuenchingWeights.cxx:2084
 AliQuenchingWeights.cxx:2085
 AliQuenchingWeights.cxx:2086
 AliQuenchingWeights.cxx:2087
 AliQuenchingWeights.cxx:2088
 AliQuenchingWeights.cxx:2089
 AliQuenchingWeights.cxx:2090
 AliQuenchingWeights.cxx:2091
 AliQuenchingWeights.cxx:2092
 AliQuenchingWeights.cxx:2093
 AliQuenchingWeights.cxx:2094
 AliQuenchingWeights.cxx:2095
 AliQuenchingWeights.cxx:2096
 AliQuenchingWeights.cxx:2097
 AliQuenchingWeights.cxx:2098
 AliQuenchingWeights.cxx:2099
 AliQuenchingWeights.cxx:2100
 AliQuenchingWeights.cxx:2101
 AliQuenchingWeights.cxx:2102
 AliQuenchingWeights.cxx:2103
 AliQuenchingWeights.cxx:2104
 AliQuenchingWeights.cxx:2105
 AliQuenchingWeights.cxx:2106
 AliQuenchingWeights.cxx:2107
 AliQuenchingWeights.cxx:2108
 AliQuenchingWeights.cxx:2109
 AliQuenchingWeights.cxx:2110
 AliQuenchingWeights.cxx:2111
 AliQuenchingWeights.cxx:2112
 AliQuenchingWeights.cxx:2113
 AliQuenchingWeights.cxx:2114
 AliQuenchingWeights.cxx:2115
 AliQuenchingWeights.cxx:2116
 AliQuenchingWeights.cxx:2117
 AliQuenchingWeights.cxx:2118
 AliQuenchingWeights.cxx:2119
 AliQuenchingWeights.cxx:2120
 AliQuenchingWeights.cxx:2121
 AliQuenchingWeights.cxx:2122
 AliQuenchingWeights.cxx:2123
 AliQuenchingWeights.cxx:2124
 AliQuenchingWeights.cxx:2125
 AliQuenchingWeights.cxx:2126
 AliQuenchingWeights.cxx:2127
 AliQuenchingWeights.cxx:2128
 AliQuenchingWeights.cxx:2129
 AliQuenchingWeights.cxx:2130
 AliQuenchingWeights.cxx:2131
 AliQuenchingWeights.cxx:2132
 AliQuenchingWeights.cxx:2133
 AliQuenchingWeights.cxx:2134
 AliQuenchingWeights.cxx:2135
 AliQuenchingWeights.cxx:2136
 AliQuenchingWeights.cxx:2137
 AliQuenchingWeights.cxx:2138
 AliQuenchingWeights.cxx:2139
 AliQuenchingWeights.cxx:2140
 AliQuenchingWeights.cxx:2141
 AliQuenchingWeights.cxx:2142
 AliQuenchingWeights.cxx:2143
 AliQuenchingWeights.cxx:2144
 AliQuenchingWeights.cxx:2145
 AliQuenchingWeights.cxx:2146
 AliQuenchingWeights.cxx:2147
 AliQuenchingWeights.cxx:2148
 AliQuenchingWeights.cxx:2149
 AliQuenchingWeights.cxx:2150
 AliQuenchingWeights.cxx:2151
 AliQuenchingWeights.cxx:2152
 AliQuenchingWeights.cxx:2153
 AliQuenchingWeights.cxx:2154
 AliQuenchingWeights.cxx:2155
 AliQuenchingWeights.cxx:2156
 AliQuenchingWeights.cxx:2157
 AliQuenchingWeights.cxx:2158
 AliQuenchingWeights.cxx:2159
 AliQuenchingWeights.cxx:2160
 AliQuenchingWeights.cxx:2161
 AliQuenchingWeights.cxx:2162
 AliQuenchingWeights.cxx:2163
 AliQuenchingWeights.cxx:2164
 AliQuenchingWeights.cxx:2165
 AliQuenchingWeights.cxx:2166
 AliQuenchingWeights.cxx:2167
 AliQuenchingWeights.cxx:2168
 AliQuenchingWeights.cxx:2169
 AliQuenchingWeights.cxx:2170
 AliQuenchingWeights.cxx:2171
 AliQuenchingWeights.cxx:2172
 AliQuenchingWeights.cxx:2173
 AliQuenchingWeights.cxx:2174
 AliQuenchingWeights.cxx:2175
 AliQuenchingWeights.cxx:2176
 AliQuenchingWeights.cxx:2177
 AliQuenchingWeights.cxx:2178
 AliQuenchingWeights.cxx:2179
 AliQuenchingWeights.cxx:2180
 AliQuenchingWeights.cxx:2181
 AliQuenchingWeights.cxx:2182
 AliQuenchingWeights.cxx:2183
 AliQuenchingWeights.cxx:2184
 AliQuenchingWeights.cxx:2185
 AliQuenchingWeights.cxx:2186
 AliQuenchingWeights.cxx:2187
 AliQuenchingWeights.cxx:2188
 AliQuenchingWeights.cxx:2189
 AliQuenchingWeights.cxx:2190
 AliQuenchingWeights.cxx:2191
 AliQuenchingWeights.cxx:2192
 AliQuenchingWeights.cxx:2193
 AliQuenchingWeights.cxx:2194
 AliQuenchingWeights.cxx:2195
 AliQuenchingWeights.cxx:2196
 AliQuenchingWeights.cxx:2197
 AliQuenchingWeights.cxx:2198
 AliQuenchingWeights.cxx:2199
 AliQuenchingWeights.cxx:2200
 AliQuenchingWeights.cxx:2201
 AliQuenchingWeights.cxx:2202