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: AliEMCALPIDUtils.cxx 33808 2009-07-15 09:48:08Z gconesab $ */

//   Compute PID weights for all the clusters that are in AliESDs.root file
//   the AliESDs.root have to be in the same directory as the class
//
//   and do:    
//   AliEMCALPIDUtils *pid = new AliEMCALPIDUtils();
//   pid->SetPrintInfo(kTRUE);
//   pid->SetHighFluxParam(); //   pid->SetLowFluxParam(); 
//   
//   then in cluster loop do
//   pid->ComputePID(energy, lambda0);
//  	  
//        Compute PID Weight for all clusters in AliESDs.root file
//	  keep this function for the moment for a simple verification, could be removed
//
//   pid->GetPIDFinal(idx) gives the probabilities
//
//   Double_t PIDFinal[AliPID::kSPECIESCN]  is the standard PID for :
//
//	kElectron :  fPIDFinal[0]
//	kMuon     :  fPIDFinal[1]
//	kPion	    :  fPIDFinal[2]
//	kKaon	    :  fPIDFinal[3]
//	kProton   :  fPIDFinal[4]
//	kPhoton   :  fPIDFinal[5]
//	kPi0	    :  fPIDFinal[6]
//	kNeutron  :  fPIDFinal[7]
//	kKaon0	  :  fPIDFinal[8]
//	kEleCon   :  fPIDFinal[9]
//	kUnknown  :  fPIDFinal[10]
//
//
//    PID[3] is a simple PID for
//      Electron & Photon  PID[0]
//	              Pi0  PID[1]
//		   Hadron  PID[2]
//
// Author: Genole Bourdaud 2007 (SUBATECH)
//         Marie Germain 07/2009 (SUBATECH), new parametrization for low and high flux environment
//         Gustavo Conesa 08/2009 (LNF), divide class in AliEMCALPID and AliEMCALPIDUtils, PIDUtils belong to library EMCALUtils 
// --- standard c ---

// standard C++ includes
//#include <Riostream.h>

// ROOT includes
#include "TMath.h"
#include "TArrayD.h"

// STEER includes
#include "AliEMCALPIDUtils.h"
#include "AliLog.h"
  
ClassImp(AliEMCALPIDUtils)
  
//______________________________________________
  AliEMCALPIDUtils::AliEMCALPIDUtils():
    fPrintInfo(kFALSE), fProbGamma(0.),fProbPiZero(0.),fProbHadron(0.), fWeightHadronEnergy(1.), fWeightGammaEnergy(1.),fWeightPiZeroEnergy(1.)
{
  //
  // Constructor.
  // Initialize all constant values which have to be used
  // during PID algorithm execution
  //
  
  InitParameters(); 
  
  
}

//__________________________________________________________
void AliEMCALPIDUtils::ComputePID(Double_t energy, Double_t lambda0)
{
//
// This is the main command, which uses the distributions computed and parametrised, 
// and gives the PID by the bayesian method.
//
  
  Double_t weightGammaEnergy  = DistEnergy(energy, 1);
  Double_t weightPiZeroEnergy = DistEnergy(energy, 2);
  Double_t weightHadronEnergy = DistEnergy(energy, 3);
    
  Double_t energyhadron=energy;
  if(energyhadron<1.)energyhadron=1.; // no energy dependance of  parametrisation for hadrons below 1 GeV
  if (energy<2){energy =2;} // no energy dependance of parametrisation for gamma and pi0 below 2 GeV
  
  if (energy>55){
    energy =55.;
    energyhadron=55.;
  } // same parametrisation for gamma and hadrons above 55 GeV 
  //   for the pi0 above 55GeV the 2 gammas supperposed no way to distinguish from real gamma  PIDWeight[1]=0
  
  TArrayD paramDistribGamma  = DistLambda0(energy, 1);
  TArrayD paramDistribPiZero = DistLambda0(energy, 2);
  TArrayD paramDistribHadron = DistLambda0(energyhadron, 3);
  
  Bool_t norm = kFALSE;
  
  
  fProbGamma   = TMath::Gaus(lambda0, paramDistribGamma[1], paramDistribGamma[2], norm) * paramDistribGamma[0];
  fProbGamma  += TMath::Landau(((1-paramDistribGamma[4])-lambda0),paramDistribGamma[4],paramDistribGamma[5],norm)* paramDistribGamma[3];
  if(fProbGamma<0.)fProbGamma=0.;
  
  fProbGamma = fProbGamma*weightGammaEnergy;
  
  if(energy>10. || energy < 55.){
    fProbPiZero  = TMath::Gaus(lambda0, paramDistribPiZero[1], paramDistribPiZero[2], norm) * paramDistribPiZero[0];
    fProbPiZero += TMath::Landau(lambda0, paramDistribPiZero[4], paramDistribPiZero[5], norm) * paramDistribPiZero[3];
    if(fProbPiZero<0. || energy<5.)fProbPiZero=0.;
    fProbPiZero = fProbPiZero*weightPiZeroEnergy;
  }
  else {
    fProbPiZero = 0.;
  }
  
  fProbHadron  = TMath::Gaus(lambda0, paramDistribHadron[1], paramDistribHadron[2], norm) * paramDistribHadron[0];
  fProbHadron += TMath::Landau(lambda0, paramDistribHadron[4], paramDistribHadron[5], norm) * paramDistribHadron[3];
  if(fProbHadron<0.)fProbHadron=0.;
  fProbHadron = fProbHadron*weightHadronEnergy; // to take into account the probability for a hadron to have a given reconstructed energy 
  
  // compute PID Weight
  if( (fProbGamma + fProbPiZero + fProbHadron)>0.){
    fPIDWeight[0] = fProbGamma / (fProbGamma + fProbPiZero + fProbHadron);
    fPIDWeight[1] = fProbPiZero / (fProbGamma+fProbPiZero+fProbHadron);
    fPIDWeight[2] = fProbHadron / (fProbGamma+fProbPiZero+fProbHadron);
  }
  else{   
// cases where  energy and lambda0 large,  probably du to 2 clusters folded the clusters PID not assigned to hadron nor Pi0 nor gammas
    fPIDWeight[0] = 0.;
    fPIDWeight[1] = 0.;
    fPIDWeight[2] = 0.;
  }
  
  
  // cout << " PID[0] "<<  fPIDWeight[0] <<  " PID[1] "<<  fPIDWeight[1] <<  " PID[2] "<<  fPIDWeight[2] << endl;
  
  SetPID(fPIDWeight[0], 0);
  SetPID(fPIDWeight[1], 1);
  SetPID(fPIDWeight[2], 2);
  
  // print  pid Weight only for control 
  if (fPrintInfo) {
    AliInfo(Form( "Energy in loop = %f", energy) );
    AliInfo(Form( "Lambda0 in loop = %f", lambda0) );
    AliInfo(Form( "fProbGamma in loop = %f", fProbGamma) );
    AliInfo(Form( "fProbaPiZero = %f", fProbPiZero ));
    AliInfo(Form( "fProbaHadron = %f", fProbHadron) );
    AliInfo(Form( "PIDWeight in loop = %f ||| %f ||| %f",  fPIDWeight[0] , fPIDWeight[1], fPIDWeight[2]) );
    AliInfo("********************************************************" );
  }

  //default particles
  fPIDFinal[AliPID::kElectron]  = fPIDWeight[0]/2; // photon
  fPIDFinal[AliPID::kMuon]      = fPIDWeight[2]/8;
  fPIDFinal[AliPID::kPion]      = fPIDWeight[2]/8;
  fPIDFinal[AliPID::kKaon]      = fPIDWeight[2]/8;
  fPIDFinal[AliPID::kProton]    = fPIDWeight[2]/8;
  //light nuclei
  fPIDFinal[AliPID::kDeuteron]  = 0;
  fPIDFinal[AliPID::kTriton]    = 0;
  fPIDFinal[AliPID::kHe3]       = 0;
  fPIDFinal[AliPID::kAlpha]     = 0;
  //neutral particles
  fPIDFinal[AliPID::kPhoton]    = fPIDWeight[0]/2; // electron
  fPIDFinal[AliPID::kPi0]       = fPIDWeight[1]  ; // Pi0
  fPIDFinal[AliPID::kNeutron]   = fPIDWeight[2]/8;
  fPIDFinal[AliPID::kKaon0]     = fPIDWeight[2]/8;
  fPIDFinal[AliPID::kEleCon]    = fPIDWeight[2]/8;
  //
  fPIDFinal[AliPID::kUnknown]   = fPIDWeight[2]/8;
  
}




//________________________________________________________
TArrayD AliEMCALPIDUtils::DistLambda0(const Double_t energy, const Int_t type) 
{
  //
  // Compute the values of the parametrised distributions using the data initialised before.
  //
  Double_t constGauss = 0., meanGauss = 0., sigmaGauss = 0.;
  Double_t constLandau=0., mpvLandau=0., sigmaLandau=0.;
  TArrayD  distributionParam(6);
  
  switch (type) {
    
  case 1:
    
    constGauss  = PolynomialMixed2(energy, fGamma[0]);
    meanGauss   = PolynomialMixed2(energy, fGamma[1]);
    sigmaGauss  = PolynomialMixed2(energy, fGamma[2]);
    constLandau = PolynomialMixed2(energy, fGamma[3]);
    mpvLandau   = PolynomialMixed2(energy, fGamma[4]);
    sigmaLandau = PolynomialMixed2(energy, fGamma[5]);
   break;

  case 2:

    constGauss  = PolynomialMixed2(energy, fPiZero[0]);
    meanGauss   = PolynomialMixed2(energy, fPiZero[1]);
    sigmaGauss  = PolynomialMixed2(energy, fPiZero[2]);
    constLandau = PolynomialMixed2(energy, fPiZero[3]);
    mpvLandau   = PolynomialMixed2(energy, fPiZero[4]);
    sigmaLandau = PolynomialMixed2(energy, fPiZero[5]);
    
    break;
  case 3:
    
    constGauss  = PolynomialMixed2(energy, fHadron[0]);
    meanGauss   = PolynomialMixed2(energy, fHadron[1]);
    sigmaGauss  = PolynomialMixed2(energy, fHadron[2]);
    constLandau = PolynomialMixed2(energy, fHadron[3]);
    mpvLandau   = PolynomialMixed2(energy, fHadron[4]);
    sigmaLandau = PolynomialMixed2(energy, fHadron[5]);

    break;
  }
  
  distributionParam[0] = constGauss;
  distributionParam[1] = meanGauss;
  distributionParam[2] = sigmaGauss;
  distributionParam[3] = constLandau;
  distributionParam[4] = mpvLandau;
  distributionParam[5] = sigmaLandau;
  
  return distributionParam;
}

//________________________________________________________
Double_t AliEMCALPIDUtils::DistEnergy(const Double_t energy, const Int_t type) 
{
  //
  // Compute the values of the weigh for a given energy the parametrised distribution using the data initialised before.
  //
  Double_t constante = 0.;
  
  switch (type) {
    
  case 1:  
    constante  = 1.;    
    break;
  case 2:
    constante  = 1.;
    break;
  case 3:
    constante  = PowerExp(energy, fHadronEnergyProb);
    break;
  }
  
  //   cout << "Weight   " << constante << " for energy  "<< energy<< " GeV "<<  endl;
  
  return constante;
}


//_______________________________________________________
Double_t AliEMCALPIDUtils::Polynomial(const Double_t x, const Double_t *params) const
{
  //
  // Compute a polynomial for a given value of 'x'
  // with the array of parameters passed as the second arg
  //
  
  Double_t y  = params[0];
  y += params[1] * x;
  y += params[2] * x * x;
  y += params[3] * x * x * x;
  y += params[4] * x * x * x * x;
  y += params[5] * x * x * x * x * x;
  
  return y;
}
//_______________________________________________________
Double_t AliEMCALPIDUtils::Polynomial0(const Double_t *params) const 
{
  //
  // Compute a polynomial for a given value of 'x'
  // with the array of parameters passed as the second arg
  //
  
  Double_t y  = params[0];
  return y;
}

//_______________________________________________________
Double_t AliEMCALPIDUtils::Polynomialinv(const Double_t x, const Double_t *params) const
{
  //
  // Compute a polynomial for a given value of 'x'
  // with the array of parameters passed as the second arg
  //
  
  Double_t y=0.;
  
  if(x>0){
    y  = params[0];
    y += params[1] / x;
    y += params[2] / (x * x);
    y += params[3] / (x * x * x);
    y += params[4] / (x * x * x * x);
    y += params[5] / (x * x * x * x * x);
  }  
  
  return y;
  
}
//_______________________________________________________
Double_t AliEMCALPIDUtils::PolynomialMixed1(const Double_t x, const Double_t *params) const 
{
  //
  // Compute a polynomial for a given value of 'x'
  // with the array of parameters passed as the second arg
  //
  
  Double_t y=0.;
  if(x>0){
    y  = params[0] / x;
    y += params[1] ;
    y += params[2] * x ;
    //   y += params[3] * 0.;
    //   y += params[4] * 0.;
    //   y += params[5] * 0.;
  }  

  
  return y;
  
}

//_______________________________________________________
Double_t AliEMCALPIDUtils::PolynomialMixed2(const Double_t x, const Double_t *params) const 
{
  //
  // Compute a polynomial for a given value of 'x'
  // with the array of parameters passed as the second arg
  //
  
  Double_t y=0.;
  if(x>0){
    y  = params[0] / ( x * x);
    y += params[1] / x;
    y += params[2] ;
    y += params[3] * x ;
    y += params[4] * x * x ;
    //   y += params[5] * 0.;
  }  

  return y;
  
}

//_______________________________________________________
Double_t AliEMCALPIDUtils::PowerExp(const Double_t x, const Double_t *params) const 
{
  //
  // Compute a polynomial for a given value of 'x'
  // with the array of parameters passed as the second arg
  // par[0]*TMath::Power(x[0],par[1])
  // par[0]*TMath::Exp((x[0]-par[1])*par[2]);
  
  Double_t y = params[0] *TMath::Power( x,params[1]);
  y         += params[2] *TMath::Exp((x-params[3])*params[4]);
  
  return y;
  
}


//_______________________________________________________
void AliEMCALPIDUtils::InitParameters()
{
  // Initialize PID parameters, depending on the use or not of the reconstructor
  // and the kind of event type if the reconstructor is not used.
  //  fWeightHadronEnergy=0.;
  //  fWeightPiZeroEnergy=0.;
  //  fWeightGammaEnergy=0.;
  
  fPIDWeight[0] = -1;
  fPIDWeight[1] = -1;
  fPIDWeight[2] = -1;
  
  for(Int_t i=0; i<AliPID::kSPECIESCN+1; i++)
    fPIDFinal[i]= 0;
  
  //   init the parameters here instead of from loading from recparam
  //   default parameters are PbPb parameters.
  SetHighFluxParam();
  
}


//_______________________________________________________
void AliEMCALPIDUtils::SetLowFluxParam()
{
  
  // as a first step, all array elements are initialized to 0.0
  Int_t i=0, j=0;
  
  for (i = 0; i < 6; i++) {
    for (j = 0; j < 6; j++) {
      fGamma[i][j]      = fHadron[i][j] =  fPiZero[i][j] = 0.;
      fGamma1to10[i][j] = fHadron1to10[i][j] = 0.;
    }
       //Why we had the next 3 lines?
       //fGammaEnergyProb[i]  =  fGammaEnergyProb[i];
       //fPiZeroEnergyProb[i] = fPiZeroEnergyProb[i];
       //fHadronEnergyProb[i] = fHadronEnergyProb[i];
  }
  
  // New parameterization for lambda0^2 (=x): f(x) = normLandau*TMath::Landau(x,mpvLandau,widthLandau)+normgaus*TMath::Gaus(x,meangaus,sigmagaus)
  // See AliEMCALPid (index j) refers to the polynomial parameters of the fit of each parameter vs energy
  // pp

  // paramtype[0][j] = norm gauss
  // paramtype[1][j] = mean gaus
  // paramtype[2][j] = sigma gaus
  // paramtype[3][j] = norm landau
  // paramtype[4][j] = mpv landau
  // paramtype[5][j] = sigma landau

  fGamma[0][0] = -7.656908e-01; 
  fGamma[0][1] =  2.352536e-01; 
  fGamma[0][2] =  1.555996e-02;
  fGamma[0][3] =  2.243525e-04;
  fGamma[0][4] = -2.560087e-06;
  
  fGamma[1][0] =  6.500216e+00;
  fGamma[1][1] = -2.564958e-01;
  fGamma[1][2] =  1.967894e-01;
  fGamma[1][3] = -3.982273e-04;
  fGamma[1][4] =  2.797737e-06;

  fGamma[2][0] =  2.416489e+00;
  fGamma[2][1] = -1.601258e-01;
  fGamma[2][2] =  3.126839e-02;
  fGamma[2][3] =  3.387532e-04;
  fGamma[2][4] = -4.089145e-06;

  fGamma[3][0] =  0.;
  fGamma[3][1] = -2.696008e+00;
  fGamma[3][2] =  6.920305e-01;
  fGamma[3][3] = -2.281122e-03;
  fGamma[3][4] =  0.;

  fGamma[4][0] =  2.281564e-01;
  fGamma[4][1] = -7.575040e-02;
  fGamma[4][2] =  3.813423e-01;
  fGamma[4][3] = -1.243854e-04;
  fGamma[4][4] =  1.232045e-06;

  fGamma[5][0] = -3.290107e-01;
  fGamma[5][1] =  3.707545e-02;
  fGamma[5][2] =  2.917397e-03;
  fGamma[5][3] =  4.695306e-05;
  fGamma[5][4] = -3.572981e-07;

  fHadron[0][0] = 9.482243e-01; 
  fHadron[0][1] =  -2.780896e-01; 
  fHadron[0][2] =  2.223507e-02;
  fHadron[0][3] =  7.294263e-04; 
  fHadron[0][4] =  -5.665872e-06;

  fHadron[1][0] = 0.;
  fHadron[1][1] = 0.;
  fHadron[1][2] = 2.483298e-01;
  fHadron[1][3] = 0.;
  fHadron[1][4] = 0.;

  fHadron[2][0] = -5.601199e+00; 
  fHadron[2][1] =  2.097382e+00; 
  fHadron[2][2] = -2.307965e-01;
  fHadron[2][3] =  9.206871e-03;
  fHadron[2][4] = -8.887548e-05;
 
  fHadron[3][0] =  6.543101e+00;
  fHadron[3][1] =  -2.305203e+00;
  fHadron[3][2] =  2.761673e-01; 
  fHadron[3][3] = -5.465855e-03;
  fHadron[3][4] =  2.784329e-05;
 
  fHadron[4][0] = -2.443530e+01;
  fHadron[4][1] =  8.902578e+00 ;
  fHadron[4][2] = -5.265901e-01;
  fHadron[4][3] = 2.549111e-02;
  fHadron[4][4] =  -2.196801e-04; 

  fHadron[5][0] = 2.102007e-01;
  fHadron[5][1] =  -3.844418e-02;
  fHadron[5][2] =  1.234682e-01;
  fHadron[5][3] = -3.866733e-03;
  fHadron[5][4] = 3.362719e-05 ;

  fPiZero[0][0] =  5.072157e-01;
  fPiZero[0][1] = -5.352747e-01;
  fPiZero[0][2] =  8.499259e-02;
  fPiZero[0][3] = -3.687401e-03;
  fPiZero[0][4] =  5.482280e-05;

  fPiZero[1][0] =  4.590137e+02; 
  fPiZero[1][1] = -7.079341e+01;
  fPiZero[1][2] =  4.990735e+00;
  fPiZero[1][3] = -1.241302e-01;
  fPiZero[1][4] =  1.065772e-03;

  fPiZero[2][0] =  1.376415e+02;
  fPiZero[2][1] = -3.031577e+01;
  fPiZero[2][2] =  2.474338e+00;
  fPiZero[2][3] = -6.903410e-02;
  fPiZero[2][4] =  6.244089e-04;

  fPiZero[3][0] = 0.;
  fPiZero[3][1] =  1.145983e+00;
  fPiZero[3][2] = -2.476052e-01;
  fPiZero[3][3] =  1.367373e-02;
  fPiZero[3][4] = 0.;

  fPiZero[4][0] = -2.097586e+02;
  fPiZero[4][1] =  6.300800e+01;
  fPiZero[4][2] = -4.038906e+00;
  fPiZero[4][3] =  1.088543e-01;
  fPiZero[4][4] = -9.362485e-04;

  fPiZero[5][0] = -1.671477e+01; 
  fPiZero[5][1] =  2.995415e+00;
  fPiZero[5][2] = -6.040360e-02;
  fPiZero[5][3] = -6.137459e-04;
  fPiZero[5][4] =  1.847328e-05;
  
  fHadronEnergyProb[0] = 4.767543e-02;
  fHadronEnergyProb[1] = -1.537523e+00;
  fHadronEnergyProb[2] = 2.956727e-01;
  fHadronEnergyProb[3] = -3.051022e+01;
  fHadronEnergyProb[4] =-6.036931e-02;

//  Int_t ii= 0;
//  Int_t jj= 3;
//  AliDebug(1,Form("PID parameters (%d, %d): fGamma=%.3f, fPi=%.3f, fHadron=%.3f",
// 			ii,jj, fGamma[ii][jj],fPiZero[ii][jj],fHadron[ii][jj] ));
   
  // end for proton-proton  

}

//_______________________________________________________
void AliEMCALPIDUtils::SetHighFluxParam()
{
  
  // as a first step, all array elements are initialized to 0.0
  Int_t i=0, j=0;
  for (i = 0; i < 6; i++) {
    for (j = 0; j < 6; j++) {
      fGamma[i][j]      = fHadron[i][j] = fPiZero[i][j] = 0.;
      fGamma1to10[i][j] = fHadron1to10[i][j] = 0.;
    }
    fGammaEnergyProb[i]  = 0.;
    fPiZeroEnergyProb[i] = 0.;
    fHadronEnergyProb[i] = 0.;
  }
  
  // Pb Pb  this goes with inverted landau + gaussian for gammas, landau+gaussian for Pi0 and hadrons
  
  fGamma[0][0] = -7.656908e-01; 
  fGamma[0][1] =  2.352536e-01; 
  fGamma[0][2] =  1.555996e-02;
  fGamma[0][3] =  2.243525e-04;
  fGamma[0][4] = -2.560087e-06;
  
  fGamma[1][0] =  6.500216e+00;
  fGamma[1][1] = -2.564958e-01;
  fGamma[1][2] =  1.967894e-01;
  fGamma[1][3] = -3.982273e-04;
  fGamma[1][4] =  2.797737e-06;

  fGamma[2][0] =  2.416489e+00;
  fGamma[2][1] = -1.601258e-01;
  fGamma[2][2] =  3.126839e-02;
  fGamma[2][3] =  3.387532e-04;
  fGamma[2][4] = -4.089145e-06;
 
  fGamma[3][0] =  0.;
  fGamma[3][1] = -2.696008e+00;
  fGamma[3][2] =  6.920305e-01;
  fGamma[3][3] = -2.281122e-03;
  fGamma[3][4] =  0.;

  fGamma[4][0] =  2.281564e-01;
  fGamma[4][1] = -7.575040e-02;
  fGamma[4][2] =  3.813423e-01;
  fGamma[4][3] = -1.243854e-04;
  fGamma[4][4] =  1.232045e-06;

  fGamma[5][0] = -3.290107e-01;
  fGamma[5][1] =  3.707545e-02;
  fGamma[5][2] =  2.917397e-03;
  fGamma[5][3] =  4.695306e-05;
  fGamma[5][4] = -3.572981e-07;
   
  fHadron[0][0] =   1.519112e-01;
  fHadron[0][1] = -8.267603e-02;
  fHadron[0][2] =  1.914574e-02;
  fHadron[0][3] = -2.677921e-04;
  fHadron[0][4] =  5.447939e-06;

  fHadron[1][0] = 0.;
  fHadron[1][1] = -7.549870e-02; 
  fHadron[1][2] = 3.930087e-01;
  fHadron[1][3] = -2.368500e-03; 
  fHadron[1][4] = 0.;

  fHadron[2][0] = 0.;
  fHadron[2][1] =  -2.463152e-02;
  fHadron[2][2] = 1.349257e-01;
  fHadron[2][3] = -1.089440e-03;
  fHadron[2][4] = 0.;

  fHadron[3][0] = 0.;
  fHadron[3][1] = 5.101560e-01;
  fHadron[3][2] = 1.458679e-01;
  fHadron[3][3] = 4.903068e-04;
  fHadron[3][4] = 0.;

  fHadron[4][0] = 0.;
  fHadron[4][1] = -6.693943e-03; 
  fHadron[4][2] =  2.444753e-01;
  fHadron[4][3] = -5.553749e-05;
  fHadron[4][4] = 0.;

  fHadron[5][0] = -4.414030e-01;
  fHadron[5][1] = 2.292277e-01;
  fHadron[5][2] = -2.433737e-02;
  fHadron[5][3] =  1.758422e-03;
  fHadron[5][4] = -3.001493e-05;
  
  fPiZero[0][0] =  5.072157e-01;
  fPiZero[0][1] = -5.352747e-01;
  fPiZero[0][2] =  8.499259e-02;
  fPiZero[0][3] = -3.687401e-03;
  fPiZero[0][4] =  5.482280e-05;
  
  fPiZero[1][0] =  4.590137e+02; 
  fPiZero[1][1] = -7.079341e+01;
  fPiZero[1][2] =  4.990735e+00;
  fPiZero[1][3] = -1.241302e-01;
  fPiZero[1][4] =  1.065772e-03;
  
  fPiZero[2][0] =  1.376415e+02;
  fPiZero[2][1] = -3.031577e+01;
  fPiZero[2][2] =  2.474338e+00;
  fPiZero[2][3] = -6.903410e-02;
  fPiZero[2][4] =  6.244089e-04;

  fPiZero[3][0] = 0.;
  fPiZero[3][1] =  1.145983e+00;
  fPiZero[3][2] = -2.476052e-01;
  fPiZero[3][3] =  1.367373e-02;
  fPiZero[3][4] = 0.;

  fPiZero[4][0] = -2.097586e+02;
  fPiZero[4][1] =  6.300800e+01;
  fPiZero[4][2] = -4.038906e+00;
  fPiZero[4][3] =  1.088543e-01;
  fPiZero[4][4] = -9.362485e-04;

  fPiZero[5][0] = -1.671477e+01; 
  fPiZero[5][1] =  2.995415e+00;
  fPiZero[5][2] = -6.040360e-02;
  fPiZero[5][3] = -6.137459e-04;
  fPiZero[5][4] =  1.847328e-05;

  // those are the High Flux PbPb ones
  fHadronEnergyProb[0] = 0.;
  fHadronEnergyProb[1] = 0.;
  fHadronEnergyProb[2] =  6.188452e-02;
  fHadronEnergyProb[3] =  2.030230e+00;
  fHadronEnergyProb[4] = -6.402242e-02;

// Int_t ii= 0;
// Int_t jj= 3;
// AliDebug(1,Form("PID parameters (%d, %d): fGamma=%.3f, fPi=%.3f, fHadron=%.3f",
// 			ii,jj, fGamma[ii][jj],fPiZero[ii][jj],fHadron[ii][jj] ));
   
}
 AliEMCALPIDUtils.cxx:1
 AliEMCALPIDUtils.cxx:2
 AliEMCALPIDUtils.cxx:3
 AliEMCALPIDUtils.cxx:4
 AliEMCALPIDUtils.cxx:5
 AliEMCALPIDUtils.cxx:6
 AliEMCALPIDUtils.cxx:7
 AliEMCALPIDUtils.cxx:8
 AliEMCALPIDUtils.cxx:9
 AliEMCALPIDUtils.cxx:10
 AliEMCALPIDUtils.cxx:11
 AliEMCALPIDUtils.cxx:12
 AliEMCALPIDUtils.cxx:13
 AliEMCALPIDUtils.cxx:14
 AliEMCALPIDUtils.cxx:15
 AliEMCALPIDUtils.cxx:16
 AliEMCALPIDUtils.cxx:17
 AliEMCALPIDUtils.cxx:18
 AliEMCALPIDUtils.cxx:19
 AliEMCALPIDUtils.cxx:20
 AliEMCALPIDUtils.cxx:21
 AliEMCALPIDUtils.cxx:22
 AliEMCALPIDUtils.cxx:23
 AliEMCALPIDUtils.cxx:24
 AliEMCALPIDUtils.cxx:25
 AliEMCALPIDUtils.cxx:26
 AliEMCALPIDUtils.cxx:27
 AliEMCALPIDUtils.cxx:28
 AliEMCALPIDUtils.cxx:29
 AliEMCALPIDUtils.cxx:30
 AliEMCALPIDUtils.cxx:31
 AliEMCALPIDUtils.cxx:32
 AliEMCALPIDUtils.cxx:33
 AliEMCALPIDUtils.cxx:34
 AliEMCALPIDUtils.cxx:35
 AliEMCALPIDUtils.cxx:36
 AliEMCALPIDUtils.cxx:37
 AliEMCALPIDUtils.cxx:38
 AliEMCALPIDUtils.cxx:39
 AliEMCALPIDUtils.cxx:40
 AliEMCALPIDUtils.cxx:41
 AliEMCALPIDUtils.cxx:42
 AliEMCALPIDUtils.cxx:43
 AliEMCALPIDUtils.cxx:44
 AliEMCALPIDUtils.cxx:45
 AliEMCALPIDUtils.cxx:46
 AliEMCALPIDUtils.cxx:47
 AliEMCALPIDUtils.cxx:48
 AliEMCALPIDUtils.cxx:49
 AliEMCALPIDUtils.cxx:50
 AliEMCALPIDUtils.cxx:51
 AliEMCALPIDUtils.cxx:52
 AliEMCALPIDUtils.cxx:53
 AliEMCALPIDUtils.cxx:54
 AliEMCALPIDUtils.cxx:55
 AliEMCALPIDUtils.cxx:56
 AliEMCALPIDUtils.cxx:57
 AliEMCALPIDUtils.cxx:58
 AliEMCALPIDUtils.cxx:59
 AliEMCALPIDUtils.cxx:60
 AliEMCALPIDUtils.cxx:61
 AliEMCALPIDUtils.cxx:62
 AliEMCALPIDUtils.cxx:63
 AliEMCALPIDUtils.cxx:64
 AliEMCALPIDUtils.cxx:65
 AliEMCALPIDUtils.cxx:66
 AliEMCALPIDUtils.cxx:67
 AliEMCALPIDUtils.cxx:68
 AliEMCALPIDUtils.cxx:69
 AliEMCALPIDUtils.cxx:70
 AliEMCALPIDUtils.cxx:71
 AliEMCALPIDUtils.cxx:72
 AliEMCALPIDUtils.cxx:73
 AliEMCALPIDUtils.cxx:74
 AliEMCALPIDUtils.cxx:75
 AliEMCALPIDUtils.cxx:76
 AliEMCALPIDUtils.cxx:77
 AliEMCALPIDUtils.cxx:78
 AliEMCALPIDUtils.cxx:79
 AliEMCALPIDUtils.cxx:80
 AliEMCALPIDUtils.cxx:81
 AliEMCALPIDUtils.cxx:82
 AliEMCALPIDUtils.cxx:83
 AliEMCALPIDUtils.cxx:84
 AliEMCALPIDUtils.cxx:85
 AliEMCALPIDUtils.cxx:86
 AliEMCALPIDUtils.cxx:87
 AliEMCALPIDUtils.cxx:88
 AliEMCALPIDUtils.cxx:89
 AliEMCALPIDUtils.cxx:90
 AliEMCALPIDUtils.cxx:91
 AliEMCALPIDUtils.cxx:92
 AliEMCALPIDUtils.cxx:93
 AliEMCALPIDUtils.cxx:94
 AliEMCALPIDUtils.cxx:95
 AliEMCALPIDUtils.cxx:96
 AliEMCALPIDUtils.cxx:97
 AliEMCALPIDUtils.cxx:98
 AliEMCALPIDUtils.cxx:99
 AliEMCALPIDUtils.cxx:100
 AliEMCALPIDUtils.cxx:101
 AliEMCALPIDUtils.cxx:102
 AliEMCALPIDUtils.cxx:103
 AliEMCALPIDUtils.cxx:104
 AliEMCALPIDUtils.cxx:105
 AliEMCALPIDUtils.cxx:106
 AliEMCALPIDUtils.cxx:107
 AliEMCALPIDUtils.cxx:108
 AliEMCALPIDUtils.cxx:109
 AliEMCALPIDUtils.cxx:110
 AliEMCALPIDUtils.cxx:111
 AliEMCALPIDUtils.cxx:112
 AliEMCALPIDUtils.cxx:113
 AliEMCALPIDUtils.cxx:114
 AliEMCALPIDUtils.cxx:115
 AliEMCALPIDUtils.cxx:116
 AliEMCALPIDUtils.cxx:117
 AliEMCALPIDUtils.cxx:118
 AliEMCALPIDUtils.cxx:119
 AliEMCALPIDUtils.cxx:120
 AliEMCALPIDUtils.cxx:121
 AliEMCALPIDUtils.cxx:122
 AliEMCALPIDUtils.cxx:123
 AliEMCALPIDUtils.cxx:124
 AliEMCALPIDUtils.cxx:125
 AliEMCALPIDUtils.cxx:126
 AliEMCALPIDUtils.cxx:127
 AliEMCALPIDUtils.cxx:128
 AliEMCALPIDUtils.cxx:129
 AliEMCALPIDUtils.cxx:130
 AliEMCALPIDUtils.cxx:131
 AliEMCALPIDUtils.cxx:132
 AliEMCALPIDUtils.cxx:133
 AliEMCALPIDUtils.cxx:134
 AliEMCALPIDUtils.cxx:135
 AliEMCALPIDUtils.cxx:136
 AliEMCALPIDUtils.cxx:137
 AliEMCALPIDUtils.cxx:138
 AliEMCALPIDUtils.cxx:139
 AliEMCALPIDUtils.cxx:140
 AliEMCALPIDUtils.cxx:141
 AliEMCALPIDUtils.cxx:142
 AliEMCALPIDUtils.cxx:143
 AliEMCALPIDUtils.cxx:144
 AliEMCALPIDUtils.cxx:145
 AliEMCALPIDUtils.cxx:146
 AliEMCALPIDUtils.cxx:147
 AliEMCALPIDUtils.cxx:148
 AliEMCALPIDUtils.cxx:149
 AliEMCALPIDUtils.cxx:150
 AliEMCALPIDUtils.cxx:151
 AliEMCALPIDUtils.cxx:152
 AliEMCALPIDUtils.cxx:153
 AliEMCALPIDUtils.cxx:154
 AliEMCALPIDUtils.cxx:155
 AliEMCALPIDUtils.cxx:156
 AliEMCALPIDUtils.cxx:157
 AliEMCALPIDUtils.cxx:158
 AliEMCALPIDUtils.cxx:159
 AliEMCALPIDUtils.cxx:160
 AliEMCALPIDUtils.cxx:161
 AliEMCALPIDUtils.cxx:162
 AliEMCALPIDUtils.cxx:163
 AliEMCALPIDUtils.cxx:164
 AliEMCALPIDUtils.cxx:165
 AliEMCALPIDUtils.cxx:166
 AliEMCALPIDUtils.cxx:167
 AliEMCALPIDUtils.cxx:168
 AliEMCALPIDUtils.cxx:169
 AliEMCALPIDUtils.cxx:170
 AliEMCALPIDUtils.cxx:171
 AliEMCALPIDUtils.cxx:172
 AliEMCALPIDUtils.cxx:173
 AliEMCALPIDUtils.cxx:174
 AliEMCALPIDUtils.cxx:175
 AliEMCALPIDUtils.cxx:176
 AliEMCALPIDUtils.cxx:177
 AliEMCALPIDUtils.cxx:178
 AliEMCALPIDUtils.cxx:179
 AliEMCALPIDUtils.cxx:180
 AliEMCALPIDUtils.cxx:181
 AliEMCALPIDUtils.cxx:182
 AliEMCALPIDUtils.cxx:183
 AliEMCALPIDUtils.cxx:184
 AliEMCALPIDUtils.cxx:185
 AliEMCALPIDUtils.cxx:186
 AliEMCALPIDUtils.cxx:187
 AliEMCALPIDUtils.cxx:188
 AliEMCALPIDUtils.cxx:189
 AliEMCALPIDUtils.cxx:190
 AliEMCALPIDUtils.cxx:191
 AliEMCALPIDUtils.cxx:192
 AliEMCALPIDUtils.cxx:193
 AliEMCALPIDUtils.cxx:194
 AliEMCALPIDUtils.cxx:195
 AliEMCALPIDUtils.cxx:196
 AliEMCALPIDUtils.cxx:197
 AliEMCALPIDUtils.cxx:198
 AliEMCALPIDUtils.cxx:199
 AliEMCALPIDUtils.cxx:200
 AliEMCALPIDUtils.cxx:201
 AliEMCALPIDUtils.cxx:202
 AliEMCALPIDUtils.cxx:203
 AliEMCALPIDUtils.cxx:204
 AliEMCALPIDUtils.cxx:205
 AliEMCALPIDUtils.cxx:206
 AliEMCALPIDUtils.cxx:207
 AliEMCALPIDUtils.cxx:208
 AliEMCALPIDUtils.cxx:209
 AliEMCALPIDUtils.cxx:210
 AliEMCALPIDUtils.cxx:211
 AliEMCALPIDUtils.cxx:212
 AliEMCALPIDUtils.cxx:213
 AliEMCALPIDUtils.cxx:214
 AliEMCALPIDUtils.cxx:215
 AliEMCALPIDUtils.cxx:216
 AliEMCALPIDUtils.cxx:217
 AliEMCALPIDUtils.cxx:218
 AliEMCALPIDUtils.cxx:219
 AliEMCALPIDUtils.cxx:220
 AliEMCALPIDUtils.cxx:221
 AliEMCALPIDUtils.cxx:222
 AliEMCALPIDUtils.cxx:223
 AliEMCALPIDUtils.cxx:224
 AliEMCALPIDUtils.cxx:225
 AliEMCALPIDUtils.cxx:226
 AliEMCALPIDUtils.cxx:227
 AliEMCALPIDUtils.cxx:228
 AliEMCALPIDUtils.cxx:229
 AliEMCALPIDUtils.cxx:230
 AliEMCALPIDUtils.cxx:231
 AliEMCALPIDUtils.cxx:232
 AliEMCALPIDUtils.cxx:233
 AliEMCALPIDUtils.cxx:234
 AliEMCALPIDUtils.cxx:235
 AliEMCALPIDUtils.cxx:236
 AliEMCALPIDUtils.cxx:237
 AliEMCALPIDUtils.cxx:238
 AliEMCALPIDUtils.cxx:239
 AliEMCALPIDUtils.cxx:240
 AliEMCALPIDUtils.cxx:241
 AliEMCALPIDUtils.cxx:242
 AliEMCALPIDUtils.cxx:243
 AliEMCALPIDUtils.cxx:244
 AliEMCALPIDUtils.cxx:245
 AliEMCALPIDUtils.cxx:246
 AliEMCALPIDUtils.cxx:247
 AliEMCALPIDUtils.cxx:248
 AliEMCALPIDUtils.cxx:249
 AliEMCALPIDUtils.cxx:250
 AliEMCALPIDUtils.cxx:251
 AliEMCALPIDUtils.cxx:252
 AliEMCALPIDUtils.cxx:253
 AliEMCALPIDUtils.cxx:254
 AliEMCALPIDUtils.cxx:255
 AliEMCALPIDUtils.cxx:256
 AliEMCALPIDUtils.cxx:257
 AliEMCALPIDUtils.cxx:258
 AliEMCALPIDUtils.cxx:259
 AliEMCALPIDUtils.cxx:260
 AliEMCALPIDUtils.cxx:261
 AliEMCALPIDUtils.cxx:262
 AliEMCALPIDUtils.cxx:263
 AliEMCALPIDUtils.cxx:264
 AliEMCALPIDUtils.cxx:265
 AliEMCALPIDUtils.cxx:266
 AliEMCALPIDUtils.cxx:267
 AliEMCALPIDUtils.cxx:268
 AliEMCALPIDUtils.cxx:269
 AliEMCALPIDUtils.cxx:270
 AliEMCALPIDUtils.cxx:271
 AliEMCALPIDUtils.cxx:272
 AliEMCALPIDUtils.cxx:273
 AliEMCALPIDUtils.cxx:274
 AliEMCALPIDUtils.cxx:275
 AliEMCALPIDUtils.cxx:276
 AliEMCALPIDUtils.cxx:277
 AliEMCALPIDUtils.cxx:278
 AliEMCALPIDUtils.cxx:279
 AliEMCALPIDUtils.cxx:280
 AliEMCALPIDUtils.cxx:281
 AliEMCALPIDUtils.cxx:282
 AliEMCALPIDUtils.cxx:283
 AliEMCALPIDUtils.cxx:284
 AliEMCALPIDUtils.cxx:285
 AliEMCALPIDUtils.cxx:286
 AliEMCALPIDUtils.cxx:287
 AliEMCALPIDUtils.cxx:288
 AliEMCALPIDUtils.cxx:289
 AliEMCALPIDUtils.cxx:290
 AliEMCALPIDUtils.cxx:291
 AliEMCALPIDUtils.cxx:292
 AliEMCALPIDUtils.cxx:293
 AliEMCALPIDUtils.cxx:294
 AliEMCALPIDUtils.cxx:295
 AliEMCALPIDUtils.cxx:296
 AliEMCALPIDUtils.cxx:297
 AliEMCALPIDUtils.cxx:298
 AliEMCALPIDUtils.cxx:299
 AliEMCALPIDUtils.cxx:300
 AliEMCALPIDUtils.cxx:301
 AliEMCALPIDUtils.cxx:302
 AliEMCALPIDUtils.cxx:303
 AliEMCALPIDUtils.cxx:304
 AliEMCALPIDUtils.cxx:305
 AliEMCALPIDUtils.cxx:306
 AliEMCALPIDUtils.cxx:307
 AliEMCALPIDUtils.cxx:308
 AliEMCALPIDUtils.cxx:309
 AliEMCALPIDUtils.cxx:310
 AliEMCALPIDUtils.cxx:311
 AliEMCALPIDUtils.cxx:312
 AliEMCALPIDUtils.cxx:313
 AliEMCALPIDUtils.cxx:314
 AliEMCALPIDUtils.cxx:315
 AliEMCALPIDUtils.cxx:316
 AliEMCALPIDUtils.cxx:317
 AliEMCALPIDUtils.cxx:318
 AliEMCALPIDUtils.cxx:319
 AliEMCALPIDUtils.cxx:320
 AliEMCALPIDUtils.cxx:321
 AliEMCALPIDUtils.cxx:322
 AliEMCALPIDUtils.cxx:323
 AliEMCALPIDUtils.cxx:324
 AliEMCALPIDUtils.cxx:325
 AliEMCALPIDUtils.cxx:326
 AliEMCALPIDUtils.cxx:327
 AliEMCALPIDUtils.cxx:328
 AliEMCALPIDUtils.cxx:329
 AliEMCALPIDUtils.cxx:330
 AliEMCALPIDUtils.cxx:331
 AliEMCALPIDUtils.cxx:332
 AliEMCALPIDUtils.cxx:333
 AliEMCALPIDUtils.cxx:334
 AliEMCALPIDUtils.cxx:335
 AliEMCALPIDUtils.cxx:336
 AliEMCALPIDUtils.cxx:337
 AliEMCALPIDUtils.cxx:338
 AliEMCALPIDUtils.cxx:339
 AliEMCALPIDUtils.cxx:340
 AliEMCALPIDUtils.cxx:341
 AliEMCALPIDUtils.cxx:342
 AliEMCALPIDUtils.cxx:343
 AliEMCALPIDUtils.cxx:344
 AliEMCALPIDUtils.cxx:345
 AliEMCALPIDUtils.cxx:346
 AliEMCALPIDUtils.cxx:347
 AliEMCALPIDUtils.cxx:348
 AliEMCALPIDUtils.cxx:349
 AliEMCALPIDUtils.cxx:350
 AliEMCALPIDUtils.cxx:351
 AliEMCALPIDUtils.cxx:352
 AliEMCALPIDUtils.cxx:353
 AliEMCALPIDUtils.cxx:354
 AliEMCALPIDUtils.cxx:355
 AliEMCALPIDUtils.cxx:356
 AliEMCALPIDUtils.cxx:357
 AliEMCALPIDUtils.cxx:358
 AliEMCALPIDUtils.cxx:359
 AliEMCALPIDUtils.cxx:360
 AliEMCALPIDUtils.cxx:361
 AliEMCALPIDUtils.cxx:362
 AliEMCALPIDUtils.cxx:363
 AliEMCALPIDUtils.cxx:364
 AliEMCALPIDUtils.cxx:365
 AliEMCALPIDUtils.cxx:366
 AliEMCALPIDUtils.cxx:367
 AliEMCALPIDUtils.cxx:368
 AliEMCALPIDUtils.cxx:369
 AliEMCALPIDUtils.cxx:370
 AliEMCALPIDUtils.cxx:371
 AliEMCALPIDUtils.cxx:372
 AliEMCALPIDUtils.cxx:373
 AliEMCALPIDUtils.cxx:374
 AliEMCALPIDUtils.cxx:375
 AliEMCALPIDUtils.cxx:376
 AliEMCALPIDUtils.cxx:377
 AliEMCALPIDUtils.cxx:378
 AliEMCALPIDUtils.cxx:379
 AliEMCALPIDUtils.cxx:380
 AliEMCALPIDUtils.cxx:381
 AliEMCALPIDUtils.cxx:382
 AliEMCALPIDUtils.cxx:383
 AliEMCALPIDUtils.cxx:384
 AliEMCALPIDUtils.cxx:385
 AliEMCALPIDUtils.cxx:386
 AliEMCALPIDUtils.cxx:387
 AliEMCALPIDUtils.cxx:388
 AliEMCALPIDUtils.cxx:389
 AliEMCALPIDUtils.cxx:390
 AliEMCALPIDUtils.cxx:391
 AliEMCALPIDUtils.cxx:392
 AliEMCALPIDUtils.cxx:393
 AliEMCALPIDUtils.cxx:394
 AliEMCALPIDUtils.cxx:395
 AliEMCALPIDUtils.cxx:396
 AliEMCALPIDUtils.cxx:397
 AliEMCALPIDUtils.cxx:398
 AliEMCALPIDUtils.cxx:399
 AliEMCALPIDUtils.cxx:400
 AliEMCALPIDUtils.cxx:401
 AliEMCALPIDUtils.cxx:402
 AliEMCALPIDUtils.cxx:403
 AliEMCALPIDUtils.cxx:404
 AliEMCALPIDUtils.cxx:405
 AliEMCALPIDUtils.cxx:406
 AliEMCALPIDUtils.cxx:407
 AliEMCALPIDUtils.cxx:408
 AliEMCALPIDUtils.cxx:409
 AliEMCALPIDUtils.cxx:410
 AliEMCALPIDUtils.cxx:411
 AliEMCALPIDUtils.cxx:412
 AliEMCALPIDUtils.cxx:413
 AliEMCALPIDUtils.cxx:414
 AliEMCALPIDUtils.cxx:415
 AliEMCALPIDUtils.cxx:416
 AliEMCALPIDUtils.cxx:417
 AliEMCALPIDUtils.cxx:418
 AliEMCALPIDUtils.cxx:419
 AliEMCALPIDUtils.cxx:420
 AliEMCALPIDUtils.cxx:421
 AliEMCALPIDUtils.cxx:422
 AliEMCALPIDUtils.cxx:423
 AliEMCALPIDUtils.cxx:424
 AliEMCALPIDUtils.cxx:425
 AliEMCALPIDUtils.cxx:426
 AliEMCALPIDUtils.cxx:427
 AliEMCALPIDUtils.cxx:428
 AliEMCALPIDUtils.cxx:429
 AliEMCALPIDUtils.cxx:430
 AliEMCALPIDUtils.cxx:431
 AliEMCALPIDUtils.cxx:432
 AliEMCALPIDUtils.cxx:433
 AliEMCALPIDUtils.cxx:434
 AliEMCALPIDUtils.cxx:435
 AliEMCALPIDUtils.cxx:436
 AliEMCALPIDUtils.cxx:437
 AliEMCALPIDUtils.cxx:438
 AliEMCALPIDUtils.cxx:439
 AliEMCALPIDUtils.cxx:440
 AliEMCALPIDUtils.cxx:441
 AliEMCALPIDUtils.cxx:442
 AliEMCALPIDUtils.cxx:443
 AliEMCALPIDUtils.cxx:444
 AliEMCALPIDUtils.cxx:445
 AliEMCALPIDUtils.cxx:446
 AliEMCALPIDUtils.cxx:447
 AliEMCALPIDUtils.cxx:448
 AliEMCALPIDUtils.cxx:449
 AliEMCALPIDUtils.cxx:450
 AliEMCALPIDUtils.cxx:451
 AliEMCALPIDUtils.cxx:452
 AliEMCALPIDUtils.cxx:453
 AliEMCALPIDUtils.cxx:454
 AliEMCALPIDUtils.cxx:455
 AliEMCALPIDUtils.cxx:456
 AliEMCALPIDUtils.cxx:457
 AliEMCALPIDUtils.cxx:458
 AliEMCALPIDUtils.cxx:459
 AliEMCALPIDUtils.cxx:460
 AliEMCALPIDUtils.cxx:461
 AliEMCALPIDUtils.cxx:462
 AliEMCALPIDUtils.cxx:463
 AliEMCALPIDUtils.cxx:464
 AliEMCALPIDUtils.cxx:465
 AliEMCALPIDUtils.cxx:466
 AliEMCALPIDUtils.cxx:467
 AliEMCALPIDUtils.cxx:468
 AliEMCALPIDUtils.cxx:469
 AliEMCALPIDUtils.cxx:470
 AliEMCALPIDUtils.cxx:471
 AliEMCALPIDUtils.cxx:472
 AliEMCALPIDUtils.cxx:473
 AliEMCALPIDUtils.cxx:474
 AliEMCALPIDUtils.cxx:475
 AliEMCALPIDUtils.cxx:476
 AliEMCALPIDUtils.cxx:477
 AliEMCALPIDUtils.cxx:478
 AliEMCALPIDUtils.cxx:479
 AliEMCALPIDUtils.cxx:480
 AliEMCALPIDUtils.cxx:481
 AliEMCALPIDUtils.cxx:482
 AliEMCALPIDUtils.cxx:483
 AliEMCALPIDUtils.cxx:484
 AliEMCALPIDUtils.cxx:485
 AliEMCALPIDUtils.cxx:486
 AliEMCALPIDUtils.cxx:487
 AliEMCALPIDUtils.cxx:488
 AliEMCALPIDUtils.cxx:489
 AliEMCALPIDUtils.cxx:490
 AliEMCALPIDUtils.cxx:491
 AliEMCALPIDUtils.cxx:492
 AliEMCALPIDUtils.cxx:493
 AliEMCALPIDUtils.cxx:494
 AliEMCALPIDUtils.cxx:495
 AliEMCALPIDUtils.cxx:496
 AliEMCALPIDUtils.cxx:497
 AliEMCALPIDUtils.cxx:498
 AliEMCALPIDUtils.cxx:499
 AliEMCALPIDUtils.cxx:500
 AliEMCALPIDUtils.cxx:501
 AliEMCALPIDUtils.cxx:502
 AliEMCALPIDUtils.cxx:503
 AliEMCALPIDUtils.cxx:504
 AliEMCALPIDUtils.cxx:505
 AliEMCALPIDUtils.cxx:506
 AliEMCALPIDUtils.cxx:507
 AliEMCALPIDUtils.cxx:508
 AliEMCALPIDUtils.cxx:509
 AliEMCALPIDUtils.cxx:510
 AliEMCALPIDUtils.cxx:511
 AliEMCALPIDUtils.cxx:512
 AliEMCALPIDUtils.cxx:513
 AliEMCALPIDUtils.cxx:514
 AliEMCALPIDUtils.cxx:515
 AliEMCALPIDUtils.cxx:516
 AliEMCALPIDUtils.cxx:517
 AliEMCALPIDUtils.cxx:518
 AliEMCALPIDUtils.cxx:519
 AliEMCALPIDUtils.cxx:520
 AliEMCALPIDUtils.cxx:521
 AliEMCALPIDUtils.cxx:522
 AliEMCALPIDUtils.cxx:523
 AliEMCALPIDUtils.cxx:524
 AliEMCALPIDUtils.cxx:525
 AliEMCALPIDUtils.cxx:526
 AliEMCALPIDUtils.cxx:527
 AliEMCALPIDUtils.cxx:528
 AliEMCALPIDUtils.cxx:529
 AliEMCALPIDUtils.cxx:530
 AliEMCALPIDUtils.cxx:531
 AliEMCALPIDUtils.cxx:532
 AliEMCALPIDUtils.cxx:533
 AliEMCALPIDUtils.cxx:534
 AliEMCALPIDUtils.cxx:535
 AliEMCALPIDUtils.cxx:536
 AliEMCALPIDUtils.cxx:537
 AliEMCALPIDUtils.cxx:538
 AliEMCALPIDUtils.cxx:539
 AliEMCALPIDUtils.cxx:540
 AliEMCALPIDUtils.cxx:541
 AliEMCALPIDUtils.cxx:542
 AliEMCALPIDUtils.cxx:543
 AliEMCALPIDUtils.cxx:544
 AliEMCALPIDUtils.cxx:545
 AliEMCALPIDUtils.cxx:546
 AliEMCALPIDUtils.cxx:547
 AliEMCALPIDUtils.cxx:548
 AliEMCALPIDUtils.cxx:549
 AliEMCALPIDUtils.cxx:550
 AliEMCALPIDUtils.cxx:551
 AliEMCALPIDUtils.cxx:552
 AliEMCALPIDUtils.cxx:553
 AliEMCALPIDUtils.cxx:554
 AliEMCALPIDUtils.cxx:555
 AliEMCALPIDUtils.cxx:556
 AliEMCALPIDUtils.cxx:557
 AliEMCALPIDUtils.cxx:558
 AliEMCALPIDUtils.cxx:559
 AliEMCALPIDUtils.cxx:560
 AliEMCALPIDUtils.cxx:561
 AliEMCALPIDUtils.cxx:562
 AliEMCALPIDUtils.cxx:563
 AliEMCALPIDUtils.cxx:564
 AliEMCALPIDUtils.cxx:565
 AliEMCALPIDUtils.cxx:566
 AliEMCALPIDUtils.cxx:567
 AliEMCALPIDUtils.cxx:568
 AliEMCALPIDUtils.cxx:569
 AliEMCALPIDUtils.cxx:570
 AliEMCALPIDUtils.cxx:571
 AliEMCALPIDUtils.cxx:572
 AliEMCALPIDUtils.cxx:573
 AliEMCALPIDUtils.cxx:574
 AliEMCALPIDUtils.cxx:575
 AliEMCALPIDUtils.cxx:576
 AliEMCALPIDUtils.cxx:577
 AliEMCALPIDUtils.cxx:578
 AliEMCALPIDUtils.cxx:579
 AliEMCALPIDUtils.cxx:580
 AliEMCALPIDUtils.cxx:581
 AliEMCALPIDUtils.cxx:582
 AliEMCALPIDUtils.cxx:583
 AliEMCALPIDUtils.cxx:584
 AliEMCALPIDUtils.cxx:585
 AliEMCALPIDUtils.cxx:586
 AliEMCALPIDUtils.cxx:587
 AliEMCALPIDUtils.cxx:588
 AliEMCALPIDUtils.cxx:589
 AliEMCALPIDUtils.cxx:590
 AliEMCALPIDUtils.cxx:591
 AliEMCALPIDUtils.cxx:592
 AliEMCALPIDUtils.cxx:593
 AliEMCALPIDUtils.cxx:594
 AliEMCALPIDUtils.cxx:595
 AliEMCALPIDUtils.cxx:596
 AliEMCALPIDUtils.cxx:597
 AliEMCALPIDUtils.cxx:598
 AliEMCALPIDUtils.cxx:599
 AliEMCALPIDUtils.cxx:600
 AliEMCALPIDUtils.cxx:601
 AliEMCALPIDUtils.cxx:602
 AliEMCALPIDUtils.cxx:603
 AliEMCALPIDUtils.cxx:604
 AliEMCALPIDUtils.cxx:605
 AliEMCALPIDUtils.cxx:606
 AliEMCALPIDUtils.cxx:607
 AliEMCALPIDUtils.cxx:608
 AliEMCALPIDUtils.cxx:609
 AliEMCALPIDUtils.cxx:610
 AliEMCALPIDUtils.cxx:611
 AliEMCALPIDUtils.cxx:612
 AliEMCALPIDUtils.cxx:613
 AliEMCALPIDUtils.cxx:614
 AliEMCALPIDUtils.cxx:615
 AliEMCALPIDUtils.cxx:616
 AliEMCALPIDUtils.cxx:617
 AliEMCALPIDUtils.cxx:618
 AliEMCALPIDUtils.cxx:619
 AliEMCALPIDUtils.cxx:620
 AliEMCALPIDUtils.cxx:621
 AliEMCALPIDUtils.cxx:622
 AliEMCALPIDUtils.cxx:623
 AliEMCALPIDUtils.cxx:624
 AliEMCALPIDUtils.cxx:625
 AliEMCALPIDUtils.cxx:626
 AliEMCALPIDUtils.cxx:627
 AliEMCALPIDUtils.cxx:628
 AliEMCALPIDUtils.cxx:629
 AliEMCALPIDUtils.cxx:630
 AliEMCALPIDUtils.cxx:631
 AliEMCALPIDUtils.cxx:632
 AliEMCALPIDUtils.cxx:633
 AliEMCALPIDUtils.cxx:634
 AliEMCALPIDUtils.cxx:635
 AliEMCALPIDUtils.cxx:636
 AliEMCALPIDUtils.cxx:637
 AliEMCALPIDUtils.cxx:638
 AliEMCALPIDUtils.cxx:639
 AliEMCALPIDUtils.cxx:640
 AliEMCALPIDUtils.cxx:641
 AliEMCALPIDUtils.cxx:642
 AliEMCALPIDUtils.cxx:643
 AliEMCALPIDUtils.cxx:644
 AliEMCALPIDUtils.cxx:645
 AliEMCALPIDUtils.cxx:646
 AliEMCALPIDUtils.cxx:647
 AliEMCALPIDUtils.cxx:648
 AliEMCALPIDUtils.cxx:649
 AliEMCALPIDUtils.cxx:650
 AliEMCALPIDUtils.cxx:651
 AliEMCALPIDUtils.cxx:652
 AliEMCALPIDUtils.cxx:653
 AliEMCALPIDUtils.cxx:654
 AliEMCALPIDUtils.cxx:655
 AliEMCALPIDUtils.cxx:656
 AliEMCALPIDUtils.cxx:657
 AliEMCALPIDUtils.cxx:658
 AliEMCALPIDUtils.cxx:659
 AliEMCALPIDUtils.cxx:660
 AliEMCALPIDUtils.cxx:661
 AliEMCALPIDUtils.cxx:662
 AliEMCALPIDUtils.cxx:663
 AliEMCALPIDUtils.cxx:664
 AliEMCALPIDUtils.cxx:665
 AliEMCALPIDUtils.cxx:666
 AliEMCALPIDUtils.cxx:667
 AliEMCALPIDUtils.cxx:668
 AliEMCALPIDUtils.cxx:669
 AliEMCALPIDUtils.cxx:670
 AliEMCALPIDUtils.cxx:671
 AliEMCALPIDUtils.cxx:672
 AliEMCALPIDUtils.cxx:673
 AliEMCALPIDUtils.cxx:674
 AliEMCALPIDUtils.cxx:675
 AliEMCALPIDUtils.cxx:676
 AliEMCALPIDUtils.cxx:677
 AliEMCALPIDUtils.cxx:678
 AliEMCALPIDUtils.cxx:679
 AliEMCALPIDUtils.cxx:680
 AliEMCALPIDUtils.cxx:681
 AliEMCALPIDUtils.cxx:682
 AliEMCALPIDUtils.cxx:683
 AliEMCALPIDUtils.cxx:684
 AliEMCALPIDUtils.cxx:685
 AliEMCALPIDUtils.cxx:686
 AliEMCALPIDUtils.cxx:687
 AliEMCALPIDUtils.cxx:688
 AliEMCALPIDUtils.cxx:689
 AliEMCALPIDUtils.cxx:690
 AliEMCALPIDUtils.cxx:691
 AliEMCALPIDUtils.cxx:692
 AliEMCALPIDUtils.cxx:693
 AliEMCALPIDUtils.cxx:694
 AliEMCALPIDUtils.cxx:695
 AliEMCALPIDUtils.cxx:696
 AliEMCALPIDUtils.cxx:697
 AliEMCALPIDUtils.cxx:698
 AliEMCALPIDUtils.cxx:699
 AliEMCALPIDUtils.cxx:700