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: AliGenEMlib.cxx 30052 2008-11-25 14:54:18Z morsch $ */

/////////////////////////////////////////////////////////////////////////////
//                                                                         //
// Implementation of AliGenEMlib for electron, di-electron, and photon     //
// cocktail calculations.                                                  //
// It is based on AliGenGSIlib.                                            //
//                                                                         //
// Responsible: R.Averbeck@gsi.de                                          //
//                                                                         //
/////////////////////////////////////////////////////////////////////////////


#include <Riostream.h>
#include "TMath.h"
#include "TRandom.h"
#include "TString.h"
#include "AliGenEMlib.h"


ClassImp(AliGenEMlib)

//Initializers for static members
Int_t AliGenEMlib::fgSelectedCollisionsSystem=AliGenEMlib::kpp7TeV; 
Int_t AliGenEMlib::fgSelectedPtParamPi0=AliGenEMlib::kPizeroParam; 
Int_t AliGenEMlib::fgSelectedPtParamEta=AliGenEMlib::kEtaParamRatiopp; 
Int_t AliGenEMlib::fgSelectedPtParamOmega=AliGenEMlib::kOmegaParampp; 
Int_t AliGenEMlib::fgSelectedPtParamPhi=AliGenEMlib::kPhiParampp;
Int_t AliGenEMlib::fgSelectedCentrality=AliGenEMlib::kpp; 
Int_t AliGenEMlib::fgSelectedV2Systematic=AliGenEMlib::kNoV2Sys;

Double_t AliGenEMlib::CrossOverLc(double a, double b, double x){
	if(x<b-a/2) return 1.0;
	else if(x>b+a/2) return 0.0;
	else return cos(((x-b)/a+0.5)*TMath::Pi())/2+0.5;
}
Double_t AliGenEMlib::CrossOverRc(double a, double b, double x){
	return 1-CrossOverLc(a,b,x);
}

const Double_t AliGenEMlib::fgkV2param[kCentralities][16] = {
  // charged pion                                                                                                                        cent, based on: https://twiki.cern.ch/twiki/bin/viewauth/ALICE/FlowPAGQM2012talkIdentified
  {  0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000, 0.0000000000, 2.0000000000, 0.0000000000, 1.0000000000, 0, 1, 0.0000000000, 1.0000000000, 10 }  // pp no V2
  ,{ 6.554571e-02, 1.436915e+00, 4.610598e-02, 2.554090e+00, 1.300948e+00, 2.970850e-02, 4.767877e+00, 4.228885e+00, 6.025959e-02, 1.570851e-03, 1.108941e+00, 0, 1, 1.715434e-03, 4.088070e-01, 25 }  // 0-5
  ,{ 1.171348e-01, 1.333067e+00, 4.537086e-02, 3.046348e+00, 3.903416e+00, 4.407152e-02, 9.123846e-01, 4.834531e+00, 1.186227e-01, 2.259463e-03, 8.916458e-01, 0, 1, 2.300647e-03, 4.531172e-01, 25 }  // 5-10
  ,{ 1.748434e-01, 1.285199e+00, 4.219881e-02, 4.018858e+00, 4.255082e+00, 7.955896e-03, 1.183264e-01,-9.329627e+00, 5.826570e-01, 3.368057e-03, 5.437668e-01, 0, 1, 3.178663e-03, 3.617552e-01, 25 }  // 10-20
  ,{ 2.149526e-01, 1.408792e+00, 5.062101e-02, 3.206279e+00, 3.988517e+00, 3.724655e-02, 1.995791e-01,-1.571536e+01, 6.494227e+00, 4.957874e-03, 4.903140e-01, 0, 1, 4.214626e-03, 3.457922e-01, 25 }  // 20-30
  ,{ 2.408942e-01, 1.477541e+00, 5.768983e-02, 3.333347e+00, 3.648508e+00,-2.044309e-02, 1.004145e-01,-2.386625e+01, 3.301913e+00, 5.666750e-03, 5.118686e-01, 0, 1, 4.626802e-03, 3.188974e-01, 25 }  // 30-40
  ,{ 2.495109e-01, 1.543680e+00, 6.217835e-02, 3.518863e+00, 4.557145e+00, 6.014553e-02, 1.491814e-01,-5.443647e+00, 5.403300e-01, 6.217285e-03, 5.580218e-01, 0, 1, 4.620486e-03, 3.792879e-01, 25 }  // 40-50
  ,{ 2.166399e-01, 1.931033e+00, 8.195390e-02, 2.226640e+00, 3.106649e+00, 1.058755e-01, 8.557791e-01, 4.006501e+00, 2.476449e-01, 6.720714e-03, 6.342966e-01, 0, 1, 4.449839e-03, 4.968750e-01, 25 }  // 50-60
  ,{ 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000, 0.0000000000, 2.0000000000, 0.0000000000, 1.0000000000, 0, 1, 0.0000000000, 1.0000000000, 10 }  // 0-10 
  ,{ 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000, 0.0000000000, 2.0000000000, 0.0000000000, 1.0000000000, 0, 1, 0.0000000000, 1.0000000000, 10 }  // 20-40
  ,{ 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000, 0.0000000000, 2.0000000000, 0.0000000000, 1.0000000000, 0, 1, 0.0000000000, 1.0000000000, 10 }  // 40-60
  ,{ 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000, 0.0000000000, 2.0000000000, 0.0000000000, 1.0000000000, 0, 1, 0.0000000000, 1.0000000000, 10 }  // 60-80
  ,{ 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000, 0.0000000000, 2.0000000000, 0.0000000000, 1.0000000000, 0, 1, 0.0000000000, 1.0000000000, 10 }  // 0-20 
  ,{ 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000, 0.0000000000, 2.0000000000, 0.0000000000, 1.0000000000, 0, 1, 0.0000000000, 1.0000000000, 10 }  // 0-40 
  ,{ 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000, 0.0000000000, 2.0000000000, 0.0000000000, 1.0000000000, 0, 1, 0.0000000000, 1.0000000000, 10 }  // 20-80
  ,{ 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000, 0.0000000000, 2.0000000000, 0.0000000000, 1.0000000000, 0, 1, 0.0000000000, 1.0000000000, 10 }  // 40-80
};

const Double_t AliGenEMlib::fgkRawPtOfV2Param[kCentralities][10] = {
  {  0.0000000000, 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000 } // pp no V2
  ,{ 2.181446e+08, 9.412925e-01, 1.158774e-01, 3.020303e+01, 6.790828e+00, 9.999996e+01, 2.616827e+00, 3.980492e+00, 1.225169e+07, 5.575243e+00 } // 0-5
  ,{ 3.006215e+08, 9.511881e-01, 1.192788e-01, 2.981931e+01, 5.068175e+01, 9.999993e+01, 2.650635e+00, 4.073982e+00, 2.508045e+07, 5.621039e+00 } // 5-10
  ,{ 1.643438e+09, 9.604242e-01, 1.218512e-01, 2.912684e+01, 1.164242e+00, 9.999709e+01, 2.662326e+00, 4.027795e+00, 7.020810e+07, 5.696860e+00 } // 10-20
  ,{ 8.109985e+08, 9.421935e-01, 1.328020e-01, 2.655910e+01, 1.053677e+00, 9.999812e+01, 2.722949e+00, 3.964547e+00, 6.104096e+07, 5.694703e+00 } // 20-30
  ,{ 5.219789e+08, 9.417339e-01, 1.417541e-01, 2.518080e+01, 7.430803e-02, 9.303295e+01, 2.780227e+00, 3.909570e+00, 4.723116e+07, 5.778375e+00 } // 30-40
  ,{ 2.547159e+08, 9.481459e-01, 2.364858e-01, 1.689288e+01, 3.858883e+00, 6.352619e+00, 2.742270e+00, 3.855226e+00, 3.120535e+07, 5.878677e+00 } // 40-50
  ,{ 9.396097e+07, 9.304491e-01, 3.244940e-01, 1.291696e+01, 2.854367e+00, 6.325908e+00, 2.828258e+00, 4.133699e+00, 1.302739e+07, 5.977896e+00 } // 50-60
  ,{ 0.0000000000, 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000 } // 0-10 
  ,{ 0.0000000000, 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000 } // 20-40
  ,{ 0.0000000000, 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000 } // 40-60
  ,{ 0.0000000000, 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000 } // 60-80
  ,{ 0.0000000000, 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000 } // 0-20 
  ,{ 0.0000000000, 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000 } // 0-40 
  ,{ 0.0000000000, 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000 } // 20-80
  ,{ 0.0000000000, 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000 } // 40-80
};

const Double_t AliGenEMlib::fgkPtParam[kCentralities][10] = {
  {  0.0000000000, 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000 } // pp no V2
  ,{ 7.641493e+01, 7.203468e-01, 3.651383e-01, 1.047542e+01, 3.494331e+00, 5.129019e+00, 3.081716e+00, 5.154525e+00, 3.065719e+01, 5.823718e+00 } // 0-5  
  ,{ 1.704676e+02, 7.852682e-01, 4.177172e-01, 1.014652e+01, 3.324409e+00, 4.825894e+00, 2.889738e+00, 4.772249e+00, 3.502627e+01, 5.938773e+00 } // 5-10 
  ,{ 1.823377e+02, 8.144309e-01, 4.291562e-01, 1.022767e+01, 3.585469e+00, 5.275078e+00, 3.144351e+00, 5.259097e+00, 2.675708e+01, 5.892506e+00 } // 10-20
  ,{ 4.851407e+02, 9.341151e-01, 4.716673e-01, 1.058090e+01, 4.681218e+00, 7.261284e+00, 3.883227e+00, 6.638627e+00, 1.562806e+01, 5.772127e+00 } // 20-30
  ,{ 3.157060e+01, 6.849451e-01, 4.868669e-01, 8.394558e+00, 3.539142e+00, 5.495280e+00, 4.102638e+00, 3.722991e+00, 1.638622e+01, 5.935963e+00 } // 30-40
  ,{ 1.069397e+01, 5.816587e-01, 6.542961e-01, 6.472858e+00, 2.643870e+00, 3.929020e+00, 3.339224e+00, 2.410371e+00, 9.606748e+00, 6.116685e+00 } // 40-50
  ,{ 1.857919e+01, 6.185989e-01, 5.878869e-01, 7.035064e+00, 2.892415e+00, 4.339383e+00, 3.549679e+00, 2.821061e+00, 1.529318e+01, 6.091388e+00} // 50-60
  ,{ 0.0000000000, 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000 } // 0-10 
  ,{ 1.271594e+02, 7.790165e-01, 5.793214e-01, 8.050008e+00, 3.211312e+00, 4.825258e+00, 3.840509e+00, 3.046231e+00, 2.172177e+01, 5.983496e+00 } // 20-40
  ,{ 0.0000000000, 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000 } // 40-60
  ,{ 0.0000000000, 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000 } // 60-80
  ,{ 0.0000000000, 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000 } // 0-20 
  ,{ 0.0000000000, 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000 } // 0-40 
  ,{ 0.0000000000, 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000 } // 20-80
  ,{ 0.0000000000, 0.0000000000, 0.0000000000, 0.0000000000,-1.0000000000, 1.0000000000,-1.0000000000, 1.0000000000, 0.0000000000, 0.0000000000 } // 40-80
};

const Double_t AliGenEMlib::fgkThermPtParam[kCentralities][2] = {
  {  0.0000000000, 0.0000000000 } // pp no V2
  ,{ 0.0000000000, 0.0000000000 } // 0-5
  ,{ 0.0000000000, 0.0000000000 } // 5-10
  ,{ 3.335661e+01, 3.400585e+00 } // 10-20 //based on: https://aliceinfo.cern.ch/Notes/node/249
  ,{ 0.0000000000, 0.0000000000 } // 20-30
  ,{ 0.0000000000, 0.0000000000 } // 30-40
  ,{ 0.0000000000, 0.0000000000 } // 40-50
  ,{ 0.0000000000, 0.0000000000 } // 50-60
  ,{ 3.648327e+02, 4.477749e+00 } // 0-10  //based on: https://aliceinfo.cern.ch/Notes/node/249
  ,{ 1.696223e+00, 2.429660e+00 } // 20-40 //based on: https://twiki.cern.ch/twiki/pub/ALICE/ALICEDirectPhotonSpectrumPaper/directPbPb.pdf
  ,{ 0.0000000000, 0.0000000000 } // 40-60
  ,{ 0.0000000000, 0.0000000000 } // 60-80
  ,{ 1.492160e+01, 2.805213e+00 } // 0-20  //based on: https://twiki.cern.ch/twiki/pub/ALICE/ALICEDirectPhotonSpectrumPaper/directPbPb.pdf
  ,{ 4.215110e+01, 3.242719e+00 } // 0-40  //based on: https://aliceinfo.cern.ch/Figure/node/2866
  ,{ 0.0000000000, 0.0000000000 } // 20-80
  ,{ 0.0000000000, 0.0000000000 } // 40-80
};

const Double_t AliGenEMlib::fgkModTsallisParamPi0PbPb[kCentralities][7] = { 
	{0.,			0.,			0.,			0.,			0.,			0.,			0.			}, // pp
	{0.,			0.,			0.,			0.,			0.,			0.,			0.			}, // 0-5
	{0.,			0.,			0.,			0.,			0.,			0.,			0.			}, // 5-10
	{2.09114,		2.7482,		6.911,		51.1383,	-10.6896,	1.30818,	-1.59137	}, // 10-20
	{0.,			0.,			0.,			0.,			0.,			0.,			0.			}, // 20-30
	{0.,			0.,			0.,			0.,			0.,			0.,			0.			}, // 30-40
	{0.,			0.,			0.,			0.,			0.,			0.,			0.			}, // 40-50
	{0.,			0.,			0.,			0.,			0.,			0.,			0.			}, // 50-60
	{970.684,		0.46451,	5.52064,	21.7707,	-4.2495,	4.62292,	-3.47699	}, // 00-10
	{3.22534,		2.83717,	7.50505,	38.8015,	-8.93242,	0.9842,		-0.821508	}, // 20-40
	{0.,			0.,			0.,			0.,			0.,			0.,			0.			}, // 40-60
	{0.,			0.,			0.,			0.,			0.,			0.,			0.			}, // 60-80
	{44.3972,		1.0644,		5.92254,	40.9254,	-8.07759,	3.30333,	-2.25078	}, // 00-20
	{38.187,		1.58985,	6.81705,	31.2526,	-8.35251,	3.39482,	-1.56172	}, // 00-40
	{0.,			0.,			0.,			0.,			0.,			0.,			0.			}, // 20-80
	{89.2412,		0.150509,	4.97424,	112.986,	643.257,	3.41969,	-2.46034	}, // 40-80 
};

const Double_t AliGenEMlib::fgkModTsallisParamPiChargedPbPb[kCentralities][7] = { 
	{0.,			0.,			0.,			0.,			0.,			0.,			0.			}, // pp
	{0.,			0.,			0.,			0.,			0.,			0.,			0.			}, // 0-5
	{0.,			0.,			0.,			0.,			0.,			0.,			0.			}, // 5-10
	{117.693,		1.20567,	6.57362,	29.2275,	-7.71065,	4.50046,	-1.91093	}, // 10-20
	{0.,			0.,			0.,			0.,			0.,			0.,			0.			}, // 20-30
	{0.,			0.,			0.,			0.,			0.,			0.,			0.			}, // 30-40
	{0.,			0.,			0.,			0.,			0.,			0.,			0.			}, // 40-50
	{0.,			0.,			0.,			0.,			0.,			0.,			0.			}, // 50-60
	{229.035,		1.11283,	6.53404,	28.9739,	-8.15381,	5.05703,	-2.32825	}, // 00-10
	{45.5686,		1.39268,	6.72519,	29.4513,	-7.23335,	3.80987,	-1.18599	}, // 20-40
	{0.,			0.,			0.,			0.,			0.,			0.,			0.			}, // 40-60
	{0.,			0.,			0.,			0.,			0.,			0.,			0.			}, // 60-80
	{171.812,		1.14849,	6.54742,	29.0473,	-7.96679,	4.82915,	-2.15967	}, // 00-20
	{108.083,		1.21125,	6.59362,	28.9651,	-7.70072,	4.56583,	-1.89318	}, // 00-40
	{0.,			0.,			0.,			0.,			0.,			0.,			0.			}, // 20-80
	{3.14057,		0.329224,	4.8235,		491.145,	186.041,	2.91138,	-2.20281	}, // 40-80 
};

const Double_t AliGenEMlib::fgkParamSetPi07TeV[kNPi0Param][7] = { 
	{0.134977,		2.31335/(2*TMath::Pi()),	0.1433,			7.003,			0,			0,			0			}, //kPizeroParam
	{-0.0580977,	0.580804,					5.0964,			-669.913,		-160.2,		4.45906,	-0.465125	}, //kPizeroParamlow
	{-7.09454,		0.218554,					5.2278,			77.9877,		-359.457,	4.67862,	-0.996938	}, //kPizeroParamhigh
	{0.,			0.,							0.,				0.,				0.,			0.,			0.			}, //kPichargedParam
	{0.,			0.,							0.,				0.,				0.,			0.,			0.			}, //kPichargedParamlow
	{-0.000632204,	0.371249,					4.56778,		-111488,		-15573.4,	4.33064,	-1.5506		}, //kPichargedParamhigh
	{0.,			0.,							0.,				0.,				0.,			0.,			0.			}, //kPizeroParamAlter
	{0.,			0.,							0.,				0.,				0.,			0.,			0.			}, //kPizeroParamAlterlow
	{0.,			0.,							0.,				0.,				0.,			0.,			0.			}, //kPizeroParamAlterhigh
};

const Double_t AliGenEMlib::fgkParamSetPi02760GeV[kNPi0Param][7] = { 
	{0.134977,		1.7/(2*TMath::Pi()),		0.135,			7.1,			0,			0,			0			}, //kPizeroParam
	{-1.4583,		0.188108,					5.34499,		546.328,		-2142.93,	4.55572,	-1.82455	}, //kPizeroParamlow
	{-0.0648943,	0.231029,					4.39238,		-3705.4,		-35.9761,	4.87127,	-2.00983	}, //kPizeroParamhigh
	{0.755554,		0.20772,					5.24167,		11.8279,		1492.53,	3.93863,	-1.72404	}, //kPichargedParam
	{0.,			0.,							0.,				0.,				0.,			0.,			0.			}, //kPichargedParamlow
	{0.,			0.,							0.,				0.,				0.,			0.,			0.			}, //kPichargedParamhigh
	{0.0610774,		5.86289,					-7.83516,		1.29301,		2.62416,	0.,			0.			}, //kPizeroParamAlter
	{0.065338,		5.86705,					-9.05494,		1.38435,		3.58848,	0.,			0.			}, //kPizeroParamAlterlow
	{0.,			0.,							0.,				0.,				0.,			0.,			0.			}, //kPizeroParamAlterhigh
};

const Double_t AliGenEMlib::fgkParamSetPi0900GeV[kNPi0Param][7] = { 
	{0.134977,		1.5/(2*TMath::Pi()),		0.132,			7.8,			0,			0,			0			}, //kPizeroParam
	{0.,			0.,							0.,				0.,				0.,			0.,			0.			}, //kPizeroParamlow
	{0.,			0.,							0.,				0.,				0.,			0.,			0.			}, //kPizeroParamhigh
	{0.,			0.,							0.,				0.,				0.,			0.,			0.			}, //kPichargedParam
	{0.,			0.,							0.,				0.,				0.,			0.,			0.			}, //kPichargedParamlow
	{0.,			0.,							0.,				0.,				0.,			0.,			0.			}, //kPichargedParamhigh
	{0.0467285,		59.6495,					-212.865,		0.0584012,		2.83816,	0.,			0.			}, //kPizeroParamAlter
	{0.0468173,		66.9511,					-136.287,		0.0298099,		1.17147,	0.,			0.			}, //kPizeroParamAlterlow
	{0.,			0.,							0.,				0.,				0.,			0.,			0.			}, //kPizeroParamAlterhigh
};


// MASS   0=>PIZERO, 1=>ETA, 2=>RHO0, 3=>OMEGA, 4=>ETAPRIME, 5=>PHI, 6=>JPSI, 7=>SIGMA, 8=>K0s, 9=>DELTA++, 10=>DELTA+, 11=>DELTA-, 12=>DELTA0, 13=>Rho+, 14=>Rho-, 15=>K0*
const Double_t AliGenEMlib::fgkHM[16] = {0.1349766, 0.547853, 0.77549, 0.78265, 0.95778, 1.019455, 3.096916, 1.192642, 0.497614, 1.2311, 1.2349, 1.2349, 1.23340, 0.77549, 0.77549, 0.896};

const Double_t AliGenEMlib::fgkMtFactor[3][16] = { 
	// {1.0, 0.5, 1.0, 0.9, 0.4, 0.23, 0.054},  // factor for pp from arXiv:1110.3929
	// {1.0, 0.55, 1.0, 0.9, 0.4, 0.25, 0.004}    // factor for PbPb from arXiv:1110.3929
	//{1., 0.48, 1.0, 0.9, 0.25, 0.4}, (old values)
	//{1., 0.48, 1.0, 0.9, 0.4, 0.25}, (nlo values)
	//{1., 0.48, 1.0, 0.8, 0.4, 0.2, 0.06} (combination of nlo and LHC measurements)
	//https://aliceinfo.cern.ch/Figure/node/2634
	//https://aliceinfo.cern.ch/Figure/node/2788
	//https://aliceinfo.cern.ch/Figure/node/4403
	//https://aliceinfo.cern.ch/Notes/node/87
	/*best guess:
		- pp values for eta/pi0 [arXiv:1205.5724], omega/pi0 [arXiv:1210.5749], phi/(pi+/-) [arXiv:1208.5717] from measured 7 Tev data
	*/
	{1., 0.476, 1.0, 0.85, 0.4, 0.13, 1., 0.49, 0.575, 1, 1, 1, 1, 1.0, 1.0, 1.0}, //pp
	{1., 0.476, 1.0, 0.85, 0.4, 0.25, 1., 0.49, 0.575, 1, 1, 1, 1, 1.0, 1.0, 1.0}, //pPb
	{1., 0.476, 1.0, 0.85, 0.4, 0.25, 1., 0.49, 0.575, 1, 1, 1, 1, 1.0, 1.0, 1.0}  //PbPb
};

//==========================================================================
//
//              Definition of Particle Distributions
//                    
//==========================================================================

//--------------------------------------------------------------------------
//
//                              General functions
//
//--------------------------------------------------------------------------
Double_t AliGenEMlib::PtModifiedHagedornThermal(Double_t pt,
                                                Double_t c,
                                                Double_t p0,
                                                Double_t p1,
                                                Double_t n,
                                                Double_t cT,
                                                Double_t T)
{
	// Modified Hagedorn Thermal fit to Picharged for PbPb:
	Double_t invYield;
	invYield = c/TMath::Power(p0+pt/p1,n) + cT*exp(-1.0*pt/T);

	return invYield*(2*TMath::Pi()*pt);
}



Double_t AliGenEMlib::PtModifiedHagedornExp(Double_t pt,
					    Double_t c,
					    Double_t p1,
					    Double_t p2,
					    Double_t p0,
					    Double_t n)
{
	// Modified Hagedorn exponentiel fit to Pizero for PbPb:
	Double_t invYield;
	invYield = c*TMath::Power(exp(-1*(p1*pt-p2*pt*pt))+pt/p0,-n);

	return invYield*(2*TMath::Pi()*pt);
}


Double_t AliGenEMlib::PtModifiedHagedornExp2(Double_t pt,
                                             Double_t c,
                                             Double_t a,
                                             Double_t b,
                                             Double_t p0,
                                             Double_t p1,
                                             Double_t d,
                                             Double_t n)
{
	// Modified Hagedorn exponential fit to charged pions for pPb:
	Double_t invYield;
	invYield = c*TMath::Power(exp(-a*pt-b*pt*pt)+pt/p0+TMath::Power(pt/p1,d),-n);

	return invYield*(2*TMath::Pi()*pt);
}

Double_t AliGenEMlib::PtTsallis(Double_t pt,
                                Double_t m,
                                Double_t c,
                                Double_t T,
                                Double_t n)
{
	// Tsallis fit to Pizero for pp:
	Double_t mt;
	Double_t invYield;
	
	mt = sqrt(m*m + pt*pt);
	invYield = c*((n-1.)*(n-2.))/(n*T*(n*T+m*(n-2.)))*pow(1.+(mt-m)/(n*T),-n);

	return invYield*(2*TMath::Pi()*pt);
}


Double_t AliGenEMlib::PtXQCD(	Double_t pt,
                                Double_t a,
                                Double_t b,
                                Double_t c,
                                Double_t d,
							    Double_t e,
								Double_t f)
{
	// QCD inspired function by Martin Wilde
	// DISCLAIMER: Please be careful outside of the measured pT range
	Double_t invYield = 0;
	if(pt>0.05){
		invYield = a*pow(pt,-1*(b+c/(pow(pt,d)+e*pow(pt,f))));
	} else invYield = 100;
	return invYield*(2*TMath::Pi()*pt);
}

Double_t AliGenEMlib::PtQCD(	Double_t pt,
                                Double_t a,
                                Double_t b,
                                Double_t c,
                                Double_t d,
							    Double_t e)
{
	// QCD inspired function by Martin Wilde
	// DISCLAIMER: Please be careful outside of the measured pT range
	Double_t invYield = 0;
	if(pt>0.05){
		invYield = a*pow(pt,-1*(b+c/(pow(pt,d)+e)));
	} else invYield = 100;
	return invYield*(2*TMath::Pi()*pt);
}

Double_t AliGenEMlib::PtModTsallis(	Double_t pt,
                                Double_t a,
                                Double_t b,
                                Double_t c,
                                Double_t d,
							    Double_t e,
								Double_t f,
								Double_t g,
							 	Double_t mass)
{

	Double_t invYield = 0;
	Double_t mt = sqrt(mass*mass + pt*pt);
	Double_t pt2 = pt*pt;
	if(pt>0.05){
		invYield = a*TMath::Power((1.+(mt-mass)/(b)),-c)*(d+e*pt+pt2)/(f+g*pt+pt2);
	} else invYield = 100;
	return invYield*(2*TMath::Pi()*pt);
}

Double_t AliGenEMlib::PtParticleRatiopp(Double_t pt,
										Double_t m1,
										Double_t m2,
										Double_t c1,
										Double_t c2,
										Double_t T1,
										Double_t T2,
										Double_t n)
{
	
	Double_t ratio = 0;
	if (PtTsallis (pt, m2, c2, T2, n)>0) ratio = PtTsallis (pt, m1, c1, T1, n)/ PtTsallis (pt, m2, c2, T2, n);
	return ratio;
}										


// Exponential
Double_t AliGenEMlib::PtExponential(const Double_t *px, const Double_t *c){
	const double &pt=px[0];
	Double_t invYield = c[0]*exp(-pt*c[1]);
	
	return invYield*(2*TMath::Pi()*pt);
}

// Hagedorn with additional Powerlaw
Double_t AliGenEMlib::PtModifiedHagedornPowerlaw(const Double_t *px, const Double_t *c){
	const double &pt=px[0];
	Double_t invYield = c[0]*pow(c[1]+pt*c[2],-c[3])*CrossOverLc(c[5],c[4],pt)+CrossOverRc(c[7],c[6],pt)*c[8]*pow(pt+0.001,-c[9]); //pt+0.001: prevent powerlaw from exploding for pt->0
	
	return invYield*(2*TMath::Pi()*pt+0.001); //pt+0.001: be sure to be > 0
}

// double powerlaw for J/Psi yield
Double_t AliGenEMlib::PtDoublePowerlaw(const Double_t *px, const Double_t *c){
	const double &pt=px[0];
	Double_t yield = c[0]*pt*pow(1+pow(pt*c[1],2),-c[2]);
	
	return yield;
}

// integral over krollwada with S=1^2*(1-mee^2/mh^2)^3 from mee=0 up to mee=mh
// approximation is perfect for mh>20MeV
Double_t AliGenEMlib::IntegratedKrollWada(const Double_t *mh, const Double_t *){
	if(*mh<0.002941) return 0;
	return 2*log(*mh/0.000511/exp(1.75))/411.11/TMath::Pi();
}

//--------------------------------------------------------------------------
//
//                             DirectRealGamma
//
//--------------------------------------------------------------------------
Double_t AliGenEMlib::PtPromptRealGamma( const Double_t *px, const Double_t */*dummy*/ )
{
	const static Double_t promptGammaPtParam[10] = { 8.715017e-02, 4.439243e-01, 1.011650e+00, 5.193789e+00, 2.194442e+01, 1.062124e+01, 2.469876e+01, 6.052479e-02, 5.611410e-02, 5.169743e+00 };
 
	return PtModifiedHagedornPowerlaw(px,promptGammaPtParam)*GetTAA(fgSelectedCentrality);
}

Double_t AliGenEMlib::PtThermalRealGamma( const Double_t *px, const Double_t */*dummy*/ )
{
	return PtExponential(px,fgkThermPtParam[fgSelectedCentrality]);
}

Double_t AliGenEMlib::PtDirectRealGamma( const Double_t *px, const Double_t */*dummy*/ )
{
	return PtPromptRealGamma(px,px)+PtThermalRealGamma(px,px);
}

Int_t AliGenEMlib::IpDirectRealGamma(TRandom *)
{
	return 22;
}

Double_t AliGenEMlib::YDirectRealGamma( const Double_t *px, const Double_t */*dummy*/ )
{
	return YFlat(*px);
}

Double_t AliGenEMlib::V2DirectRealGamma( const Double_t *px, const Double_t */*dummy*/ )
{
	const static Double_t v2Param[3][16] = {
		{ 1.004245e-01, 1.057645e+00, 0.000000e+00, 2.836492e+00, 2.819767e+00, -6.231529e-02, 1.173054e+00, 2.836492e+00, 1.881590e-01, 1.183293e-02, 1.252249e+00, 0, 1, 4.876263e-03, 1.518526e+00, 4.5 } // 00-20, based on: https://aliceinfo.cern.ch/Notes/node/249
		,{ 1.619000e-01, 1.868201e+00, 6.983303e-15, 2.242170e+00, 4.484339e+00, -1.695734e-02, 2.301359e+00, 2.871469e+00, 1.619000e-01, 2.264320e-02, 1.028641e+00, 0, 1, 8.172203e-03, 1.271637e+00, 4.5 } // 20-40
		,{ 1.335000e-01, 1.076916e+00, 1.462605e-08, 2.785732e+00, 5.571464e+00, -2.356156e-02, 2.745437e+00, 2.785732e+00, 1.335000e-01, 1.571589e-02, 1.001131e+00, 0, 1, 5.179715e-03, 1.329344e+00, 4.5 } // 00-40
	};
	switch(fgSelectedCentrality){
		case k0020: return V2Param(px,v2Param[0]); break;
		case k2040: return V2Param(px,v2Param[1]); break;
		case k0040: return V2Param(px,v2Param[2]); break;
		// case k0010: return 0.43*V2Param(px,v2Param[1]); break;  //V2Pizero(0010)/V2Pizero(2040)=0.43 +-0.025
		// case k1020: return 0.75*V2Param(px,v2Param[1]); break;  //V2Pizero(1020)/V2Pizero(2040)=0.75 +-0.04
		case k0010: return 0.53*V2Param(px,v2Param[2]); break;  //V2Pizero(0010)/V2Pizero(0040)=0.53 +-0.03
		case k1020: return 0.91*V2Param(px,v2Param[2]); break;  //V2Pizero(1020)/V2Pizero(0040)=0.91 +-0.04
	}
	return 0;
}


//--------------------------------------------------------------------------
//
//                             DirectVirtGamma
//
//--------------------------------------------------------------------------
Double_t AliGenEMlib::PtPromptVirtGamma( const Double_t *px, const Double_t */*dummy*/ )
{
  return IntegratedKrollWada(px,px)*PtPromptRealGamma(px,px);
}

Double_t AliGenEMlib::PtThermalVirtGamma( const Double_t *px, const Double_t */*dummy*/ )
{
	return IntegratedKrollWada(px,px)*PtThermalRealGamma(px,px);
}

Double_t AliGenEMlib::PtDirectVirtGamma( const Double_t *px, const Double_t */*dummy*/ )
{
	return IntegratedKrollWada(px,px)*PtDirectRealGamma(px,px);
}

Int_t AliGenEMlib::IpDirectVirtGamma(TRandom *)
{
	return 220000;
}

Double_t AliGenEMlib::YDirectVirtGamma( const Double_t *px, const Double_t */*dummy*/ )
{
	return YFlat(*px);
}

Double_t AliGenEMlib::V2DirectVirtGamma( const Double_t *px, const Double_t */*dummy*/ )
{
	return V2DirectRealGamma(px,px);
}

//--------------------------------------------------------------------------
//
//                              Pizero
//
//--------------------------------------------------------------------------
Int_t AliGenEMlib::IpPizero(TRandom *)
{
  // Return pizero pdg code
	return 111;     
}

Double_t AliGenEMlib::PtPizero( const Double_t *px, const Double_t */*dummy*/ )
{
	// double pigammacorr=1; //misuse pion for direct gammas, tuned for 0040, iteration 0
	// pigammacorr*=2.258900e-01*log(*px+0.001)+1.591291e+00;  //iteration 1
	// pigammacorr*=6.601943e-03*log(*px+0.001)+9.593698e-01;  //iteration 2
	// pigammacorr*=4.019933e-03*log(*px+0.001)+9.843412e-01;  //iteration 3
	// pigammacorr*=-4.543991e-03*log(*px+0.001)+1.010886e+00; //iteration 4
	// return pigammacorr*PtPromptRealGamma(px,px); //now the gammas from the pi->gg decay have the pt spectrum of prompt real gammas
	
	// fit functions and corresponding parameter of Pizero pT for pp @ 2.76 TeV and @ 7 TeV and for PbPb @ 2.76 TeV 

	Double_t kc=0.;
	Double_t kn=0.;
	Double_t kcT=0.;
	Double_t kT=0.;
	Double_t kp0=0.;
	Double_t kp1=0.;
	Double_t ka=0.;
	Double_t kb=0.;
	Double_t kd=0.;

	switch(fgSelectedCollisionsSystem) {
		case kPbPb:
			switch (fgSelectedPtParamPi0){
				case kPichargedParam:
					// fit to pi charged v1
					// charged pion from ToF, unidentified hadrons scaled with pion from TPC
					// for Pb-Pb @ 2.76 TeV
					switch (fgSelectedCentrality){
						case k0005:
							kc=1347.5; kp0=0.9393; kp1=2.254; kn=11.294; kcT=0.002537; kT=2.414;
							return PtModifiedHagedornThermal(*px,kc,kp0,kp1,kn,kcT,kT);	
							break;
						case k0510:
							break;
							kc=1256.1; kp0=0.9545; kp1=2.248; kn=11.291; kcT=0.002662; kT=2.326;
							return PtModifiedHagedornThermal(*px,kc,kp0,kp1,kn,kcT,kT);
							break;
						case k2030:
							kc=7421.6; kp0=1.2059; kp1=1.520; kn=10.220; kcT=0.002150; kT=2.196;
							return PtModifiedHagedornThermal(*px,kc,kp0,kp1,kn,kcT,kT);
							break;
						case k3040:
							kc=1183.2; kp0=1.0478; kp1=1.623; kn=9.8073; kcT=0.00198333; kT=2.073;
							return PtModifiedHagedornThermal(*px,kc,kp0,kp1,kn,kcT,kT);
							break;
							// the following is what went into the Pb-Pb preliminary approval (0-10%)
						case k0010:
							return PtModTsallis(	*px,
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][0],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][1],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][2],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][3],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][4],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][5],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][6],
									0.135);
							break;
						case k1020:
							return PtModTsallis(	*px,
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][0],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][1],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][2],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][3],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][4],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][5],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][6],
									0.135);
							break;
						case k2040:
							return PtModTsallis(	*px,
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][0],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][1],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][2],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][3],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][4],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][5],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][6],
									0.135);
							break;
						case k4050:
							kc=6220.0; kp0=1.322; kp1=1.224; kn=9.378; kcT=0.000595; kT=2.383;
							return PtModifiedHagedornThermal(*px,kc,kp0,kp1,kn,kcT,kT);
							break;
						case k5060:
							kc=2319.0; kp0=1.267; kp1=1.188; kn=9.044; kcT=0.000437; kT=2.276;
							return PtModifiedHagedornThermal(*px,kc,kp0,kp1,kn,kcT,kT);
							break;
						case k4060:
							kc=4724.0; kp0=1.319; kp1=1.195; kn=9.255; kcT=0.000511; kT=2.344;
							return PtModifiedHagedornThermal(*px,kc,kp0,kp1,kn,kcT,kT);
							break;
						case k6080:
							kc=2842.0; kp0=1.465; kp1=0.8324; kn=8.167; kcT=0.0001049; kT=2.29;
							return PtModifiedHagedornThermal(*px,kc,kp0,kp1,kn,kcT,kT);
							break;
						case k0020:
							return PtModTsallis(	*px,
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][0],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][1],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][2],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][3],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][4],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][5],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][6],
									0.135);
							break;
						case k0040:
							return PtModTsallis(	*px,
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][0],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][1],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][2],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][3],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][4],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][5],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][6],
									0.135);
							break;
						case k4080:
							return PtModTsallis(	*px,
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][0],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][1],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][2],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][3],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][4],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][5],
									fgkModTsallisParamPiChargedPbPb[fgSelectedCentrality][6],
									0.135);
							break;
						default:
							return 0;							
					}
				case kPizeroParam:	
					return PtModTsallis(	*px,
									fgkModTsallisParamPi0PbPb[fgSelectedCentrality][0],
									fgkModTsallisParamPi0PbPb[fgSelectedCentrality][1],
									fgkModTsallisParamPi0PbPb[fgSelectedCentrality][2],
									fgkModTsallisParamPi0PbPb[fgSelectedCentrality][3],
									fgkModTsallisParamPi0PbPb[fgSelectedCentrality][4],
									fgkModTsallisParamPi0PbPb[fgSelectedCentrality][5],
									fgkModTsallisParamPi0PbPb[fgSelectedCentrality][6],
									0.135);
				default:
					return 0;
				
			}
		case kpPb:
			// fit to charged pions for p-Pb @ 5.02TeV     
			switch (fgSelectedPtParamPi0){
				case kPichargedParam:
					kc=235.5; ka=0.6903; kb=0.06864; kp0=2.289; kp1=0.5872; kd=0.6474; kn=7.842; 
					return PtModifiedHagedornExp2(*px,kc,ka,kb,kp0,kp1,kd,kn);
					break;
				default:
					return 0;
	
			}
		case kpp7TeV:
			switch (fgSelectedPtParamPi0){
				// Tsallis fit to final pizero (PHOS+PCM) -> used for publication
				// for pp @ 7 TeV				
				case kPizeroParam: // fit to combined spectrum with stat errors only
					return PtTsallis(*px,fgkParamSetPi07TeV[kPizeroParam][0],fgkParamSetPi07TeV[kPizeroParam][1],fgkParamSetPi07TeV[kPizeroParam][2],fgkParamSetPi07TeV[kPizeroParam][3]);
					break;	  
				case kPizeroParamlow:
					return PtModTsallis( 	  *px, 
											  fgkParamSetPi07TeV[kPizeroParamlow][0],
											  fgkParamSetPi07TeV[kPizeroParamlow][1],
											  fgkParamSetPi07TeV[kPizeroParamlow][2],
											  fgkParamSetPi07TeV[kPizeroParamlow][3],
											  fgkParamSetPi07TeV[kPizeroParamlow][4],
											  fgkParamSetPi07TeV[kPizeroParamlow][5],
											  fgkParamSetPi07TeV[kPizeroParamlow][6],
											  0.135);
					break;
				case kPizeroParamhigh:
					return PtModTsallis( 	  *px, 
											  fgkParamSetPi07TeV[kPizeroParamhigh][0],
											  fgkParamSetPi07TeV[kPizeroParamhigh][1],
											  fgkParamSetPi07TeV[kPizeroParamhigh][2],
											  fgkParamSetPi07TeV[kPizeroParamhigh][3],
											  fgkParamSetPi07TeV[kPizeroParamhigh][4],
											  fgkParamSetPi07TeV[kPizeroParamhigh][5],
											  fgkParamSetPi07TeV[kPizeroParamhigh][6],
											  0.135);
					break;
				case kPichargedParamhigh:	
					return PtModTsallis( 	  *px, 
											  fgkParamSetPi07TeV[kPichargedParamhigh][0],
											  fgkParamSetPi07TeV[kPichargedParamhigh][1],
											  fgkParamSetPi07TeV[kPichargedParamhigh][2],
											  fgkParamSetPi07TeV[kPichargedParamhigh][3],
											  fgkParamSetPi07TeV[kPichargedParamhigh][4],
											  fgkParamSetPi07TeV[kPichargedParamhigh][5],
											  fgkParamSetPi07TeV[kPichargedParamhigh][6],
											  0.135);
					break;
					
				default:
					return 0;
			}

				
		case kpp2760GeV:
			switch (fgSelectedPtParamPi0){
				// Tsallis fit to pizero: published pi0
				// for pp @ 2.76 TeV
				case kPizeroParam: //published fit parameters
					return PtTsallis(*px,fgkParamSetPi02760GeV[kPizeroParam][0],fgkParamSetPi02760GeV[kPizeroParam][1],fgkParamSetPi02760GeV[kPizeroParam][2],fgkParamSetPi02760GeV[kPizeroParam][3]);
					break;
				case kPizeroParamlow:
					return PtModTsallis( 	*px, 
											fgkParamSetPi02760GeV[kPizeroParamlow][0], 
											fgkParamSetPi02760GeV[kPizeroParamlow][1], 
											fgkParamSetPi02760GeV[kPizeroParamlow][2], 
											fgkParamSetPi02760GeV[kPizeroParamlow][3], 
											fgkParamSetPi02760GeV[kPizeroParamlow][4], 
											fgkParamSetPi02760GeV[kPizeroParamlow][5], 
											fgkParamSetPi02760GeV[kPizeroParamlow][6], 
											0.135);
					break;
				case kPizeroParamhigh:
					return PtModTsallis( 	*px, 
											fgkParamSetPi02760GeV[kPizeroParamhigh][0], 
											fgkParamSetPi02760GeV[kPizeroParamhigh][1], 
											fgkParamSetPi02760GeV[kPizeroParamhigh][2], 
											fgkParamSetPi02760GeV[kPizeroParamhigh][3], 
											fgkParamSetPi02760GeV[kPizeroParamhigh][4], 
											fgkParamSetPi02760GeV[kPizeroParamhigh][5], 
											fgkParamSetPi02760GeV[kPizeroParamhigh][6], 
											0.135);
					break;
				case kPichargedParam:	
					return PtModTsallis( 	  *px, 
											  fgkParamSetPi02760GeV[kPichargedParam][0],
											  fgkParamSetPi02760GeV[kPichargedParam][1],
											  fgkParamSetPi02760GeV[kPichargedParam][2],
											  fgkParamSetPi02760GeV[kPichargedParam][3],
											  fgkParamSetPi02760GeV[kPichargedParam][4],
											  fgkParamSetPi02760GeV[kPichargedParam][5],
											  fgkParamSetPi02760GeV[kPichargedParam][6],
											  0.135);
					break;
				case kPizeroParamAlter: 
					return PtQCD( 	*px, 
									fgkParamSetPi02760GeV[kPizeroParamAlter][0], 
									fgkParamSetPi02760GeV[kPizeroParamAlter][1], 
									fgkParamSetPi02760GeV[kPizeroParamAlter][2], 
									fgkParamSetPi02760GeV[kPizeroParamAlter][3], 
									fgkParamSetPi02760GeV[kPizeroParamAlter][4]);
					break;
				case kPizeroParamAlterlow:
					return PtQCD( 	*px, 
									fgkParamSetPi02760GeV[kPizeroParamAlter][0], 
									fgkParamSetPi02760GeV[kPizeroParamAlter][1], 
									fgkParamSetPi02760GeV[kPizeroParamAlter][2], 
									fgkParamSetPi02760GeV[kPizeroParamAlter][3],
									fgkParamSetPi02760GeV[kPizeroParamAlter][4]);
					break;
				default:
					return 0;			
			}		
		case kpp900GeV:
			switch (fgSelectedPtParamPi0){
				// Tsallis fit to pizero: published pi0
				// for pp @ 0.9 TeV
				case kPizeroParam: //published fit parameters
					return PtTsallis(	*px,
										fgkParamSetPi0900GeV[kPizeroParam][0],
										fgkParamSetPi0900GeV[kPizeroParam][1],
										fgkParamSetPi0900GeV[kPizeroParam][2],
										fgkParamSetPi0900GeV[kPizeroParam][3]);
					break;
				case kPizeroParamAlter:
					return PtQCD( 	*px, 
									fgkParamSetPi0900GeV[kPizeroParamAlter][0], 
									fgkParamSetPi0900GeV[kPizeroParamAlter][1], 
									fgkParamSetPi0900GeV[kPizeroParamAlter][2], 
									fgkParamSetPi0900GeV[kPizeroParamAlter][3], 
									fgkParamSetPi0900GeV[kPizeroParamAlter][4]);
					break;
				case kPizeroParamhigh:
					return PtQCD( 	*px, 
									fgkParamSetPi0900GeV[kPizeroParamAlterlow][0], 
									fgkParamSetPi0900GeV[kPizeroParamAlterlow][1], 
									fgkParamSetPi0900GeV[kPizeroParamAlterlow][2], 
									fgkParamSetPi0900GeV[kPizeroParamAlterlow][3], 
									fgkParamSetPi0900GeV[kPizeroParamAlterlow][4]);
					break;
				default:
					return 0;			
			}		
			
		default:
			return 0;
	}

}

Double_t AliGenEMlib::YPizero( const Double_t *py, const Double_t */*dummy*/ )
{
	return YFlat(*py);

}

Double_t AliGenEMlib::V2Pizero( const Double_t *px, const Double_t */*dummy*/ )
{
	double n1,n2,n3,n4,n5;
	double v1,v2,v3,v4,v5;
	switch(fgSelectedCentrality) {
		case k0010:
			n1=PtModifiedHagedornPowerlaw(px,fgkRawPtOfV2Param[k0005]);
			v1=V2Param(px,fgkV2param[k0005]);
			n2=PtModifiedHagedornPowerlaw(px,fgkRawPtOfV2Param[k0510]);
			v2=V2Param(px,fgkV2param[k0510]);
			return (n1*v1+n2*v2)/(n1+n2);
			break;
		case k0020:
			n1=PtModifiedHagedornPowerlaw(px,fgkRawPtOfV2Param[k0005]);
			v1=V2Param(px,fgkV2param[k0005]);
			n2=PtModifiedHagedornPowerlaw(px,fgkRawPtOfV2Param[k0510]);
			v2=V2Param(px,fgkV2param[k0510]);
			n3=PtModifiedHagedornPowerlaw(px,fgkRawPtOfV2Param[k1020]);
			v3=V2Param(px,fgkV2param[k1020]);
			return (n1*v1+n2*v2+2*n3*v3)/(n1+n2+2*n3);
			break;
		case k2040:
			n1=PtModifiedHagedornPowerlaw(px,fgkRawPtOfV2Param[k2030]);
			v1=V2Param(px,fgkV2param[k2030]);
			n2=PtModifiedHagedornPowerlaw(px,fgkRawPtOfV2Param[k3040]);
			v2=V2Param(px,fgkV2param[k3040]);
			return (n1*v1+n2*v2)/(n1+n2);
			break;
		case k0040:
			n1=PtModifiedHagedornPowerlaw(px,fgkRawPtOfV2Param[k0005]);
			v1=V2Param(px,fgkV2param[k0005]);
			n2=PtModifiedHagedornPowerlaw(px,fgkRawPtOfV2Param[k0510]);
			v2=V2Param(px,fgkV2param[k0510]);
			n3=PtModifiedHagedornPowerlaw(px,fgkRawPtOfV2Param[k1020]);
			v3=V2Param(px,fgkV2param[k1020]);
			n4=PtModifiedHagedornPowerlaw(px,fgkRawPtOfV2Param[k2030]);
			v4=V2Param(px,fgkV2param[k2030]);
			n5=PtModifiedHagedornPowerlaw(px,fgkRawPtOfV2Param[k3040]);
			v5=V2Param(px,fgkV2param[k3040]);
			return (n1*v1+n2*v2+2*n3*v3+2*n4*v4+2*n5*v5)/(n1+n2+2*n3+2*n4+2*n5);
			break;

		default:
			return V2Param(px,fgkV2param[fgSelectedCentrality]);
	}
}

//--------------------------------------------------------------------------
//
//                              Eta
//
//--------------------------------------------------------------------------
Int_t AliGenEMlib::IpEta(TRandom *)
{
  // Return eta pdg code
	return 221;     
}

Double_t AliGenEMlib::PtEta( const Double_t *px, const Double_t */*dummy*/ )
{

  // fit functions and corresponding parameter of Eta pT for pp @ 2.76 TeV and @ 7 TeV
  // and mtscaled pT 

	// parameters for Tsallis fit to eta
	Double_t km = 0.;
	Double_t kc = 0.;
	Double_t kT = 0.;
	Double_t kn = 0.;

	// parameters for Tsallis fit to pi0
	Double_t kmPi0 = 0.;
	Double_t kcPi0 = 0.;
	Double_t kTPi0 = 0.;
	Double_t knPi0 = 0.;

	// parameters for fit to eta/pi0
	Double_t krm1 = 0.;
	Double_t krm2 = 0.;
	Double_t krc1 = 0.;
	Double_t krc2 = 0.;
	Double_t krT1 = 0.;
	Double_t krT2 = 0.;
	Double_t krn = 0.;
	
	switch(fgSelectedCollisionsSystem){
		case kpp7TeV:
			switch(fgSelectedPtParamEta){ 
				// Tsallis fit to final eta (PHOS+PCM) -> used stat errors only for final publication
				// for pp @ 7 TeV
				case kEtaParamRatiopp:
					krm1 = 0.547853; krm2 = 0.134977; krc1 = 1.44198e+11; krc2 = 2.06751e+12 ; krT1 = 0.154567 ; krT2 = 0.139634 ; krn=32.0715; 
					kmPi0=0.134977; kcPi0=2.31335/(2*TMath::Pi()); kTPi0=0.1433; knPi0=7.003;
					return PtParticleRatiopp(*px, krm1, krm2, krc1, krc2, krT1, krT2, krn) * PtTsallis(*px,kmPi0,kcPi0,kTPi0,knPi0);
					break;
				case kEtaParampp:
					km = 0.547853; kc = 0.290164/(2*TMath::Pi()); kT = 0.212; kn = 7.352;
					return PtTsallis(*px,km,kc,kT,kn);
					break;
				// NOTE: None of these parametrisations look right - no idea where they come from	
				case kEtaParampplow:
					km = 0.547853; kc = 1.970; kT = 0.253; kn = 7.591;
					return PtTsallis(*px,km,kc,kT,kn);
					break;
				case kEtaParampphigh:
					km = 0.547853; kc = 3.060; kT = 0.212; kn = 6.578;
					return PtTsallis(*px,km,kc,kT,kn);
					break;
				default:
				return MtScal(*px,kEta);
			}
		case kpp2760GeV:	
			switch(fgSelectedPtParamEta){ 
				// Tsallis fit to preliminary eta (QM'11)
				// for pp @ 2.76 TeV
				// NOTE: None of these parametrisations look right - no idea where they come from
				case kEtaParampp:
					km = 0.547853; kc = 1.971; kT = 0.188; kn = 6.308;
					return PtTsallis(*px,km,kc,kT,kn);
				case kEtaParampplow:
					km = 0.547853; kc = 1.228; kT = 0.220; kn = 7.030;
					return PtTsallis(*px,km,kc,kT,kn);
					break;
				case kEtaParampphigh:
					km = 0.547853; kc = 2.802; kT = 0.164; kn = 5.815;
					return PtTsallis(*px,km,kc,kT,kn);
					break;
				default:
					return MtScal(*px,kEta);
					break;
			}
		default:
			return MtScal(*px,kEta);
			break;	
	}
}

Double_t AliGenEMlib::YEta( const Double_t *py, const Double_t */*dummy*/ )
{
	return YFlat(*py);
}

Double_t AliGenEMlib::V2Eta( const Double_t *px, const Double_t */*dummy*/ )
{
	return KEtScal(*px,kEta); //V2Param(px,fgkV2param[1][fgSelectedV2Param]);
}

//--------------------------------------------------------------------------
//
//                              Rho
//
//--------------------------------------------------------------------------
Int_t AliGenEMlib::IpRho0(TRandom *)
{
	// Return rho pdg code
	return 113;     
}

Double_t AliGenEMlib::PtRho0( const Double_t *px, const Double_t */*dummy*/ )
{
	// Rho pT
	return MtScal(*px,kRho0);
}

Double_t AliGenEMlib::YRho0( const Double_t *py, const Double_t */*dummy*/ )
{
	return YFlat(*py);
}

Double_t AliGenEMlib::V2Rho0( const Double_t *px, const Double_t */*dummy*/ )
{
	return KEtScal(*px,kRho0);
}


//--------------------------------------------------------------------------
//
//                              Omega
//
//--------------------------------------------------------------------------
Int_t AliGenEMlib::IpOmega(TRandom *)
{
	// Return omega pdg code
	return 223;     
}

Double_t AliGenEMlib::PtOmega( const Double_t *px, const Double_t */*dummy*/ )
{
	// Omega pT
	// fit functions and corresponding parameter of Omega pT for preliminary pp @ 7 TeV data
	// and mtscaled pT 

	// parameters for Tsallis fit to omega
	Double_t km = 0.;
	Double_t kc = 0.;
	Double_t kT = 0.;
	Double_t kn = 0.;

	// parameters for Tsallis fit to pi0
	Double_t kmPi0 = 0.;
	Double_t kcPi0 = 0.;
	Double_t kTPi0 = 0.;
	Double_t knPi0 = 0.;

	// parameters for fit to omega/pi0
	Double_t krm1 = 0.;
	Double_t krm2 = 0.;
	Double_t krc1 = 0.;
	Double_t krc2 = 0.;
	Double_t krT1 = 0.;
	Double_t krT2 = 0.;
	Double_t krn = 0.;
	
	switch(fgSelectedCollisionsSystem){
		case kpp7TeV:
			switch(fgSelectedPtParamOmega){ 
				// Tsallis fit to final omega (PHOS) -> stat errors only, preliminary QM12
				// for pp @ 7 TeV
				case kOmegaParamRatiopp:
					krm1 = 0.78265; krm2 = 0.134977; krc1 = 21240028553.4600143433; krc2 = 168266377865.0805969238 ; krT1 = 0.21175 ; krT2 = 0.14328 ; krn=12.8831831756; 
					kmPi0=0.134977; kcPi0=2.31335/(2*TMath::Pi()); kTPi0=0.1433; knPi0=7.003;
					return PtParticleRatiopp(*px, krm1, krm2, krc1, krc2, krT1, krT2, krn) * PtTsallis(*px,kmPi0,kcPi0,kTPi0,knPi0);
					break;
				case kOmegaParampp:
					km = 0.78265; kc = 0.340051/(2*TMath::Pi()); kT = 0.206; kn = 6.31422;
					return PtTsallis(*px,km,kc,kT,kn);
					break;
				default:
				return MtScal(*px,kOmega);
			}
		default:
			return MtScal(*px,kOmega);
			break;	
	}
	
	return MtScal(*px,kOmega);

}

Double_t AliGenEMlib::YOmega( const Double_t *py, const Double_t */*dummy*/ )
{
	return YFlat(*py);
}

Double_t AliGenEMlib::V2Omega( const Double_t *px, const Double_t */*dummy*/ )
{
	return KEtScal(*px,kOmega);

}


//--------------------------------------------------------------------------
//
//                              Etaprime
//
//--------------------------------------------------------------------------
Int_t AliGenEMlib::IpEtaprime(TRandom *)
{
	// Return etaprime pdg code
	return 331;     
}

Double_t AliGenEMlib::PtEtaprime( const Double_t *px, const Double_t */*dummy*/ )
{
	// Eta pT
	return MtScal(*px,kEtaprime);
}

Double_t AliGenEMlib::YEtaprime( const Double_t *py, const Double_t */*dummy*/ )
{
	return YFlat(*py);

}

Double_t AliGenEMlib::V2Etaprime( const Double_t *px, const Double_t */*dummy*/ )
{
	return KEtScal(*px,kEtaprime);
}

//--------------------------------------------------------------------------
//
//                              Phi
//
//--------------------------------------------------------------------------
Int_t AliGenEMlib::IpPhi(TRandom *)
{
	// Return phi pdg code
	return 333;     
}

Double_t AliGenEMlib::PtPhi( const Double_t *px, const Double_t */*dummy*/ )
{
  // Phi pT
  // fit functions and corresponding parameter of Phi pT for preliminary pp @ 7 TeV data
	// and PbPb collisions
	// and mtscaled pT 

	// parameters for Tsallis fit to phi
	Double_t km = 0.;
	Double_t kc = 0.;
	Double_t kT = 0.;
	Double_t kn = 0.;

	
	switch(fgSelectedCollisionsSystem){
// 		case kPbPb:
// 			switch(fgSelectedCentrality){
// 				// Tsallis fit to final phi->K+K- (TPC, ITS) -> stat+syst
// 				case k0010:
// 					switch(fgSelectedPtParamPhi){ 
// 						case kPhiParamPbPb:
// 							km = 0.78265; kc = 0.340051/(2*TMath::Pi()); kT = 0.206; kn = 6.31422;
// 							return PtTsallis(*px,km,kc,kT,kn);
// 							break;
// 						default:
// 							return MtScal(*px,kPhi);
// 					}	
// 				default:
// 					return MtScal(*px,kPhi);
// 			}
		case kpp7TeV:
			switch(fgSelectedPtParamPhi){ 
				// Tsallis fit to final phi->K+K- (TPC, ITS) -> stat+syst
				// for pp @ 7 TeV
				case kPhiParampp:
					km = 1.01946; kc = 0.0269578/(2*TMath::Pi()); kT = 0.2718119311; kn = 6.6755739295;
					return PtTsallis(*px,km,kc,kT,kn);
					break;
				default:
				return MtScal(*px,kPhi);
			}
		default:
			return MtScal(*px,kPhi);
			break;	
	}
	return MtScal(*px,kPhi);

}

Double_t AliGenEMlib::YPhi( const Double_t *py, const Double_t */*dummy*/ )
{
	return YFlat(*py);
}

Double_t AliGenEMlib::V2Phi( const Double_t *px, const Double_t */*dummy*/ )
{
	return KEtScal(*px,kPhi);
}

//--------------------------------------------------------------------------
//
//                              Jpsi
//
//--------------------------------------------------------------------------
Int_t AliGenEMlib::IpJpsi(TRandom *)
{
	// Return phi pdg code
	return 443;
}

Double_t AliGenEMlib::PtJpsi( const Double_t *px, const Double_t */*dummy*/ )
{
	// Jpsi pT
	// based on: //https://aliceinfo.cern.ch/Notes/node/242, https://aliceinfo.cern.ch/Figure/node/3457, www.sciencedirect.com/science/article/pii/S0370269312011446
	const static Double_t jpsiPtParam[2][3] = {
		{  9.686337e-03, 2.629441e-01, 4.552044e+00 }
		,{ 3.403549e-03, 2.897061e-01, 3.644278e+00 }
	};
	const double pt=px[0]*2.28/2.613;
	switch(fgSelectedCentrality) {
		case k0020: return 2.405*PtDoublePowerlaw(&pt,jpsiPtParam[0]); break;
		case k2040: return 2.405*PtDoublePowerlaw(&pt,jpsiPtParam[1]); break;
		case k0040: return 0.5*2.405*(PtDoublePowerlaw(&pt,jpsiPtParam[0])+PtDoublePowerlaw(&pt,jpsiPtParam[1])); break;
		default:
			return MtScal(*px,kJpsi);

	}
	return 0;
}

Double_t AliGenEMlib::YJpsi( const Double_t *py, const Double_t */*dummy*/ )
{
	return YFlat(*py);
}

Double_t AliGenEMlib::V2Jpsi( const Double_t *px, const Double_t */*dummy*/ )
{
	const static Double_t v2Param[16] = { 1.156000e-01, 8.936854e-01, 0.000000e+00, 4.000000e+00, 6.222375e+00, -1.600314e-01, 8.766676e-01, 7.824143e+00, 1.156000e-01, 3.484503e-02, 4.413685e-01, 0, 1, 3.484503e-02, 4.413685e-01, 7.2 };
	switch(fgSelectedCentrality){
		case k2040: return V2Param(px,v2Param); break;
		case k0010: return 0.43*V2Param(px,v2Param); break;  //V2Pizero(0010)/V2Pizero(2040)=0.43 +-0.025
		case k1020: return 0.75*V2Param(px,v2Param); break;  //V2Pizero(1020)/V2Pizero(2040)=0.75 +-0.04
		case k0020: return 0.66*V2Param(px,v2Param); break;  //V2Pizero(0020)/V2Pizero(2040)=0.66 +-0.035
		case k0040: return 0.82*V2Param(px,v2Param); break;  //V2Pizero(0040)/V2Pizero(2040)=0.82 +-0.05
	}
	return 0;
}

//--------------------------------------------------------------------------
//
//                              Sigma
//
//--------------------------------------------------------------------------
Int_t AliGenEMlib::IpSigma(TRandom *)
{
	// Return Sigma pdg code
	return 3212;     
}

Double_t AliGenEMlib::PtSigma( const Double_t *px, const Double_t */*dummy*/ )
{
	// Sigma pT
	return MtScal(*px,kSigma0);
}

Double_t AliGenEMlib::YSigma( const Double_t *py, const Double_t */*dummy*/ )
{
	return YFlat(*py);

}

Double_t AliGenEMlib::V2Sigma0( const Double_t *px, const Double_t */*dummy*/ )
{
	return KEtScal(*px,kSigma0);
}


//--------------------------------------------------------------------------
//
//                              K0short
//
//--------------------------------------------------------------------------

Int_t AliGenEMlib::IpK0short(TRandom *)
{
	// Return kzeroshort pdg code
	return 310;
}

Double_t AliGenEMlib::PtK0short( const Double_t *px, const Double_t */*dummy*/ )
{
	// K0short pT

	Double_t ka = 0; 
	Double_t kb = 0; 
	Double_t kc = 0; 
	Double_t kd = 0; 
	Double_t ke = 0; 
	Double_t kf = 0;
		
	switch (fgSelectedCentrality){
		case k0010:
			ka =9.21859; kb=5.71299; kc=-3.34251; kd=0.48796; ke=0.0192272; kf=3.82224;
			return PtXQCD(	*px, ka, kb, kc, kd, ke, kf);
			break;
		case k1020:
			ka=6.2377; kb=5.6133; kc=-117.295; kd=3.51154; ke=36.3047; kf=0.456243;
			return PtXQCD(	*px, ka, kb, kc, kd, ke, kf);
			break;
		case k0020:
			ka=7.7278; kb=5.6686; kc=-3.29259; kd=0.475403; ke=0.0223951; kf=3.69326;
			return PtXQCD(	*px, ka, kb, kc, kd, ke, kf);
			break;
		case k2040:
			ka=3.38301; kb= 5.5323; kc=-96.078; kd=3.30782; ke=31.085; kf=0.466908;
			return PtXQCD(	*px, ka, kb, kc, kd, ke, kf);
			break;
		case k0040:
			ka=5.55478; kb=5.61919; kc=-125.635; kd=3.5637; ke=38.9668; kf=0.47068;
			return PtXQCD(	*px, ka, kb, kc, kd, ke, kf);
			break;
		case k4080:
			ka=0.731606; kb=5.49931; kc=-25.3106; kd=2.2439; ke=8.25063; kf= 0.289288;
			return PtXQCD(	*px, ka, kb, kc, kd, ke, kf);
			break;
		default:
			return MtScal(*px,kK0s);
			break;
					
	}
}
Double_t AliGenEMlib::YK0short( const Double_t *py, const Double_t */*dummy*/ )
{
	return YFlat(*py);

}

Double_t AliGenEMlib::V2K0sshort( const Double_t *px, const Double_t */*dummy*/ )
{
	return KEtScal(*px,kK0s);
}


//--------------------------------------------------------------------------
//
//                              Delta ++
//
//--------------------------------------------------------------------------
Int_t AliGenEMlib::IpDeltaPlPl(TRandom *)
{
	// Return Delta++ pdg code
	return 2224;     
}

Double_t AliGenEMlib::PtDeltaPlPl( const Double_t *px, const Double_t */*dummy*/ )
{
	// Delta++ pT
	return MtScal(*px,kDeltaPlPl);
}

Double_t AliGenEMlib::YDeltaPlPl( const Double_t *py, const Double_t */*dummy*/ )
{
	return YFlat(*py);

}

Double_t AliGenEMlib::V2DeltaPlPl( const Double_t *px, const Double_t */*dummy*/ )
{
	return KEtScal(*px,kDeltaPlPl);
}


//--------------------------------------------------------------------------
//
//                              Delta +
//
//--------------------------------------------------------------------------
Int_t AliGenEMlib::IpDeltaPl(TRandom *)
{
	// Return Delta+ pdg code
	return 2214;     
}

Double_t AliGenEMlib::PtDeltaPl( const Double_t *px, const Double_t */*dummy*/ )
{
	// Delta+ pT
	return MtScal(*px,kDeltaPl);
}

Double_t AliGenEMlib::YDeltaPl( const Double_t *py, const Double_t */*dummy*/ )
{
	return YFlat(*py);

}

Double_t AliGenEMlib::V2DeltaPl( const Double_t *px, const Double_t */*dummy*/ )
{
	return KEtScal(*px,kDeltaPl);
}


//--------------------------------------------------------------------------
//
//                              Delta -
//
//--------------------------------------------------------------------------
Int_t AliGenEMlib::IpDeltaMi(TRandom *)
{
	// Return Delta- pdg code
	return 1114;     
}

Double_t AliGenEMlib::PtDeltaMi( const Double_t *px, const Double_t */*dummy*/ )
{
	// Delta- pT
	return MtScal(*px,kDeltaMi);
}

Double_t AliGenEMlib::YDeltaMi( const Double_t *py, const Double_t */*dummy*/ )
{
	return YFlat(*py);

}

Double_t AliGenEMlib::V2DeltaMi( const Double_t *px, const Double_t */*dummy*/ )
{
	return KEtScal(*px,kDeltaMi);
}



//--------------------------------------------------------------------------
//
//                              Delta 0
//
//--------------------------------------------------------------------------
Int_t AliGenEMlib::IpDeltaZero(TRandom *)
{
	// Return Delta0 pdg code
	return 2114;     
}

Double_t AliGenEMlib::PtDeltaZero( const Double_t *px, const Double_t */*dummy*/ )
{
	// Delta0 pT
	return MtScal(*px,kDeltaZero);
}

Double_t AliGenEMlib::YDeltaZero( const Double_t *py, const Double_t */*dummy*/ )
{
	return YFlat(*py);

}

Double_t AliGenEMlib::V2DeltaZero( const Double_t *px, const Double_t */*dummy*/ )
{
	return KEtScal(*px,kDeltaZero);
}


//--------------------------------------------------------------------------
//
//                              rho +
//
//--------------------------------------------------------------------------
Int_t AliGenEMlib::IpRhoPl(TRandom *)
{
	// Return rho+ pdg code
	return 213;     
}

Double_t AliGenEMlib::PtRhoPl( const Double_t *px, const Double_t */*dummy*/ )
{
	// rho + pT
	return MtScal(*px,kRhoPl);
}

Double_t AliGenEMlib::YRhoPl( const Double_t *py, const Double_t */*dummy*/ )
{
	return YFlat(*py);

}

Double_t AliGenEMlib::V2RhoPl( const Double_t *px, const Double_t */*dummy*/ )
{
	return KEtScal(*px,kRhoPl);
}


//--------------------------------------------------------------------------
//
//                              rho -
//
//--------------------------------------------------------------------------
Int_t AliGenEMlib::IpRhoMi(TRandom *)
{
	// Return rho- pdg code
	return -213;     
}

Double_t AliGenEMlib::PtRhoMi( const Double_t *px, const Double_t */*dummy*/ )
{
	// rho- pT
	return MtScal(*px,kRhoMi);
}

Double_t AliGenEMlib::YRhoMi( const Double_t *py, const Double_t */*dummy*/ )
{
	return YFlat(*py);

}

Double_t AliGenEMlib::V2RhoMi( const Double_t *px, const Double_t */*dummy*/ )
{
	return KEtScal(*px,kRhoMi);
}


//--------------------------------------------------------------------------
//
//                             K0 *
//
//--------------------------------------------------------------------------
Int_t AliGenEMlib::IpK0star(TRandom *)
{
	// Return K0 * pdg code
	return 313;     
}

Double_t AliGenEMlib::PtK0star( const Double_t *px, const Double_t */*dummy*/ )
{
	// K0 * pT
	return MtScal(*px,kK0star);
}

Double_t AliGenEMlib::YK0star( const Double_t *py, const Double_t */*dummy*/ )
{
	return YFlat(*py);

}

Double_t AliGenEMlib::V2K0star( const Double_t *px, const Double_t */*dummy*/ )
{
	return KEtScal(*px,kK0star);
}



Double_t AliGenEMlib::YFlat(Double_t /*y*/)
{
	//--------------------------------------------------------------------------
	//
	//                    flat rapidity distribution 
	//
	//--------------------------------------------------------------------------

	Double_t dNdy = 1.;   

	return dNdy;

}


//============================================================= 
//
//                    Mt-scaling  
//
//============================================================= 
//
Double_t AliGenEMlib::MtScal(Double_t pt, Int_t np)
{
	// Function for the calculation of the Pt distribution for a 
	// given particle np, from the pizero Pt distribution using  
	// mt scaling. 

	Double_t scaledPt = sqrt(pt*pt + fgkHM[np]*fgkHM[np] - fgkHM[0]*fgkHM[0]);
	Double_t scaledYield = PtPizero(&scaledPt, (Double_t*) 0);

	//     VALUE MESON/PI AT 5 GeV/c
	Double_t NormPt = 5.;
	Double_t scaledNormPt = sqrt(NormPt*NormPt + fgkHM[np]*fgkHM[np] - fgkHM[0]*fgkHM[0]);

	Int_t selectedCol;
	switch (fgSelectedCollisionsSystem){
		case kpp900GeV:
			selectedCol=0;
			break;
		case kpp2760GeV:
			selectedCol=0;
			break;
		case kpp7TeV:
			selectedCol=0;
			break;
		case kpPb:
			selectedCol=1;
			break;
		case kPbPb:
			selectedCol=2;
			break;
		default:
			selectedCol=0;
			printf("<AliGenEMlib::MtScal> no collision system has been given\n");
	}
	
	Double_t norm = fgkMtFactor[selectedCol][np] * (PtPizero(&NormPt, (Double_t*) 0) / PtPizero(&scaledNormPt, (Double_t*) 0));

	return norm*(pt/scaledPt)*scaledYield;
}

Double_t AliGenEMlib::KEtScal(Double_t pt, Int_t np)
{
	const int nq=2; //number of quarks for particle np, here always 2
	Double_t scaledPt = sqrt(pow(2.0/nq*(sqrt(pt*pt+fgkHM[np]*fgkHM[np])-fgkHM[np])+fgkHM[0],2)-fgkHM[0]*fgkHM[0]);
	return V2Pizero(&scaledPt, (Double_t*) 0);
}

Double_t AliGenEMlib::V2Param(const Double_t *px, const Double_t *par)
{
	// Very general parametrization of the v2

	const double &pt=px[0];
	double val=CrossOverLc(par[4],par[3],pt)*(2*par[0]/(1+TMath::Exp(par[1]*(par[2]-pt)))-par[0])+CrossOverRc(par[4],par[3],pt)*((par[8]-par[5])/(1+TMath::Exp(par[6]*(pt-par[7])))+par[5]);
	double sys=0;
	if(fgSelectedV2Systematic){
		double syspt=pt>par[15]?par[15]:pt;
		sys=fgSelectedV2Systematic*par[11+fgSelectedV2Systematic*2]*pow(syspt,par[12+fgSelectedV2Systematic*2]);
	}
	return std::max(val+sys,0.0);
}

Double_t AliGenEMlib::V2Flat(const Double_t */*px*/, const Double_t */*param*/)
{
	// Flat v2

	return 0.0;
}

Double_t AliGenEMlib::GetTAA(Int_t cent){
	const static Double_t taa[16] = { 1.0,    // pp
						26.32,  // 0-5
						20.56,  // 5-10
						14.39,  // 10-20
						8.70,   // 20-30
						5.001,  // 30-40
						2.675,  // 40-50
						1.317,  // 50-60
						23.44,  // 0-10
						6.85,   // 20-40
						1.996,  // 40-60
						0.4174, // 60-80
						18.91,  // 0-20
						12.88,  // 0-40
						3.088,  // 20-80
						1.207}; // 40-80
	return taa[cent];  
}

//==========================================================================
//
//                     Set Getters 
//    
//==========================================================================

typedef Double_t (*GenFunc) (const Double_t*,  const Double_t*);

typedef Int_t (*GenFuncIp) (TRandom *);

GenFunc AliGenEMlib::GetPt(Int_t param, const char * tname) const
{
	// Return pointer to pT parameterisation
	GenFunc func=0;
	TString sname(tname);

	switch (param) {
		case kDirectRealGamma:
			func=PtDirectRealGamma;
			break;
		case kDirectVirtGamma:
			func=PtDirectVirtGamma;
			break;
		case kPizero:
			func=PtPizero;
			break;
		case kEta:
			func=PtEta;
			break;
		case kRho0:
			func=PtRho0;
			break;
		case kOmega:
			func=PtOmega;
			break;
		case kEtaprime:
			func=PtEtaprime;
			break;
		case kPhi:
			func=PtPhi;
			break;
		case kJpsi:
			func=PtJpsi;
			break;
		case kSigma0:
			func= PtSigma;
			break;
		case kK0s:
			func= PtK0short;
			break;
		case kDeltaPlPl:
			func= PtDeltaPlPl;
			break;
		case kDeltaPl:
			func= PtDeltaPlPl;
			break;
		case kDeltaMi:
			func= PtDeltaMi;
			break;
		case kDeltaZero:
			func= PtDeltaZero;
			break;
		case kRhoPl:
			func= PtRhoPl;
			break;
		case kRhoMi:
			func= PtRhoMi;
			break;
		case kK0star:
			func= PtK0star;
			break;
		default:
			func=0;
			printf("<AliGenEMlib::GetPt> unknown parametrisation\n");
    }
	return func;
}

GenFunc AliGenEMlib::GetY(Int_t param, const char * tname) const
{
	// Return pointer to y- parameterisation
	GenFunc func=0;
	TString sname(tname);

	switch (param) {
		case kDirectRealGamma:
			func=YDirectRealGamma;
			break;
		case kDirectVirtGamma:
			func=YDirectVirtGamma;
			break;
		case kPizero:
			func=YPizero;
			break;
		case kEta:
			func=YEta;
			break;
		case kRho0:
			func=YRho0;
			break;
		case kOmega:
			func=YOmega;
			break;
		case kEtaprime:
			func=YEtaprime;
			break;
		case kPhi:
			func=YPhi;
			break;
		case kJpsi:
			func=YJpsi;
			break;
		case kSigma0:
			func=YSigma;
			break;		 
		case kK0s:
			func=YK0short;
			break;
		case kDeltaPlPl:
			func=YDeltaPlPl;
			break;
		case kDeltaPl:
			func=YDeltaPl;
			break;
		case kDeltaMi:
			func=YDeltaMi;
			break;
		case kDeltaZero:
			func=YDeltaZero;
			break;
		case kRhoPl:
			func=YRhoPl;
			break;
		case kRhoMi:
			func=YRhoMi;
			break;
		case kK0star:
			func=YK0star;
			break;
		default:
			func=0;
			printf("<AliGenEMlib::GetY> unknown parametrisation\n");
	}
	return func;
}

GenFuncIp AliGenEMlib::GetIp(Int_t param, const char * tname) const
{
	// Return pointer to particle type parameterisation
	GenFuncIp func=0;
	TString sname(tname);

	switch (param) {
		case kDirectRealGamma:
			func=IpDirectRealGamma;
			break;
		case kDirectVirtGamma:
			func=IpDirectVirtGamma;
			break;
		case kPizero:
			func=IpPizero;
			break;
		case kEta:
			func=IpEta;
			break;
		case kRho0:
			func=IpRho0;
			break;
		case kOmega:
			func=IpOmega;
			break;
		case kEtaprime:
			func=IpEtaprime;
			break;
		case kPhi:
			func=IpPhi;
			break;
		case kJpsi:
			func=IpJpsi;
			break;
		case kSigma0:
			func=IpSigma;
			break; 
		case kK0s:
			func=IpK0short;
			break;
		case kDeltaPlPl:
			func=IpDeltaPlPl;
			break;
		case kDeltaPl:
			func=IpDeltaPl;
			break;
		case kDeltaMi:
			func=IpDeltaMi;
			break;
		case kDeltaZero:
			func=IpDeltaZero;
			break;
		case kRhoPl:
			func=IpRhoPl;
			break;
		case kRhoMi:
			func=IpRhoMi;
			break;
		case kK0star:
			func=IpK0star;
			break;
		default:
			func=0;
			printf("<AliGenEMlib::GetIp> unknown parametrisation\n");
	}
	return func;
}

GenFunc AliGenEMlib::GetV2(Int_t param, const char * tname) const
{
	// Return pointer to v2-parameterisation
	GenFunc func=0;
	TString sname(tname);

	switch (param) {
		case kDirectRealGamma:
			func=V2DirectRealGamma;
			break;
		case kDirectVirtGamma:
			func=V2DirectVirtGamma;
			break;
		case kPizero:
			func=V2Pizero;
			break;
		case kEta:
			func=V2Eta;
			break;
		case kRho0:
			func=V2Rho0;
			break;
		case kOmega:
			func=V2Omega;
			break;
		case kEtaprime:
			func=V2Etaprime;
			break;
		case kPhi:
			func=V2Phi;
			break;
		case kJpsi:
			func=V2Jpsi;
			break;
		case kSigma0:
			func=V2Sigma0;
			break;	  
		case kK0s:
			func=V2K0sshort;
			break;
		case kDeltaPlPl:
			func=V2DeltaPlPl;
			break;
		case kDeltaPl:
			func=V2DeltaPl;
			break;
		case kDeltaMi:
			func=V2DeltaMi;
			break;
		case kDeltaZero:
			func=V2DeltaZero;
			break;
		case kRhoPl:
			func=V2RhoPl;
			break;
		case kRhoMi:
			func=V2RhoMi;
			break;
		case kK0star:
			func=V2K0star;
			break;

		default:
			func=0;
			printf("<AliGenEMlib::GetV2> unknown parametrisation\n");
	}
	return func;
}

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