ROOT logo
#ifndef ALIGENEMLIB_H
#define ALIGENEMLIB_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id: AliGenEMlib.h 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 "AliGenLib.h"
class TRandom;

class AliGenEMlib :public AliGenLib {
	public:

		enum Particle_t{kPizero=0x0, kEta=0x1, kRho0=0x2, kOmega=0x3, kEtaprime=0x4, kPhi=0x5, kJpsi=0x6, kSigma0=0x7, kK0s=0x8, kDeltaPlPl=0x9, kDeltaPl=0xA, kDeltaMi=0xB, kDeltaZero=0xC, kRhoPl = 0xD, kRhoMi = 0xE, kK0star = 0xF,  kDirectRealGamma=0x10, kDirectVirtGamma=0x11  };
		enum Centrality_t{ kpp = 0x0, 
						   k0005=0x1, k0510=0x2, k1020=0x3, k2030=0x4, k3040=0x5, k4050=0x6, k5060=0x7, k0010=0x8, k2040=0x9, k4060=0xA, k6080=0xB, k0020=0xC, k0040=0xD, k2080=0xE, k4080=0xF, kCentralities=0x10};
		enum CollisionSystem_t {kpp900GeV=0x0, kpp2760GeV=0x1, kpp7TeV=0x2, kpPb=0x3, kPbPb=0x4};
		enum PtParamSetPi0_t{kPizeroParam=0x0, kPizeroParamlow=0x1, kPizeroParamhigh=0x2, 
							kPichargedParam=0x3, kPichargedParamlow=0x4, kPichargedParamhigh=0x5, 
							kPizeroParamAlter=0x6, kPizeroParamAlterlow=0x7, kPizeroParamAlterhigh=0x8,
							kNPi0Param=0x9
		};
		enum PtParamSetEta_t{kEtaParampp=0x0, kEtaParampplow=0x1, kEtaParampphigh=0x2,
							 kEtaParamRatiopp=0x3, kEtaParamRatiopplow=0x4, kEtaParamRatiopphigh=0x5,
							 kEtaParamPbPb=0x6,
							 kEtaParamPPb=0x7
		};
		enum PtParamSetOmega_t{kOmegaParampp=0x0, kOmegaParampplow=0x1, kOmegaParampphigh=0x2,
							   kOmegaParamRatiopp=0x3, kOmegaParamRatiopplow=0x4, kOmegaParamRatiopphigh=0x5,
							 kOmegaParamPbPb=0x6,
							 kOmegaParamPPb=0x7
		};
		enum PtParamSetPhi_t{kPhiParampp=0x0, kPhiParampplow=0x1, kPhiParampphigh=0x2,
							 kPhiParamPbPb=0x3,
							 kPhiParamPPb=0x4
		};
		
		
		enum v2Sys_t{kLoV2Sys=-1, kNoV2Sys=0, kUpV2Sys=+1};
	
		AliGenEMlib() { } ;

		static void SelectParams( Int_t collisionSystem,
								  Int_t ptSelectPi0, 
								  Int_t ptSelectEta, 
								  Int_t ptSelectOmega,
								  Int_t ptSelectPhi, 
							      Int_t centSelect=kpp, 
							      Int_t v2sys=kNoV2Sys) { 	
			fgSelectedCollisionsSystem = collisionSystem;
			fgSelectedPtParamPi0=ptSelectPi0; 
			fgSelectedPtParamEta=ptSelectEta; 
			fgSelectedPtParamOmega=ptSelectOmega; 
			fgSelectedPtParamPhi=ptSelectPhi; 
			fgSelectedCentrality=centSelect; 
			fgSelectedV2Systematic=v2sys; 
									  
		}

		GenFunc   GetPt(Int_t param, const char * tname=0) const;
		GenFunc   GetY(Int_t param, const char * tname=0) const;
		GenFuncIp GetIp(Int_t param, const char * tname=0) const;    
		GenFunc   GetV2(Int_t param, const char * tname=0) const;

	//private:

	// General functions

		// General functions
		static Int_t fgSelectedCollisionsSystem; // selected pT parameter
		static Int_t fgSelectedPtParamPi0; // selected pT parameter
		static Int_t fgSelectedPtParamEta; // selected pT parameter
		static Int_t fgSelectedPtParamOmega; // selected pT parameter
		static Int_t fgSelectedPtParamPhi; // selected pT parameter
		static Int_t fgSelectedCentrality; // selected Centrality
		static Int_t fgSelectedV2Systematic; // selected v2 systematics, usefully values: -1,0,1


		static Double_t PtModifiedHagedornThermal(Double_t pt, 
								Double_t c, 
								Double_t p0, 
								Double_t p1, 
								Double_t n,
								Double_t cT,
								Double_t T);


		
		static Double_t PtModifiedHagedornExp(Double_t pt,
							Double_t c,
							Double_t p0,
							Double_t p1,
							Double_t p2,
							Double_t n); 


		static Double_t 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);


		static Double_t PtTsallis(Double_t pt,
						Double_t m,
						Double_t c,
						Double_t T,
						Double_t n);

		static Double_t 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);
		
		static Double_t PtXQCD(	Double_t pt,
                                Double_t a,
                                Double_t b,
                                Double_t c,
                                Double_t d,
								Double_t e,
								Double_t f);
		
		static Double_t 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);
		
		static Double_t PtQCD(	Double_t pt,
                                Double_t a,
                                Double_t b,
                                Double_t c,
                                Double_t d,
							    Double_t e);

		static Double_t PtExponential(const Double_t *pt, const Double_t *param);
		static Double_t PtModifiedHagedornPowerlaw(const Double_t *pt, const Double_t *param);
		static Double_t PtDoublePowerlaw(const Double_t *pt, const Double_t *param);
		static Double_t IntegratedKrollWada(const Double_t *mh, const Double_t *);

		// direct gamma
		static Double_t PtPromptRealGamma(const Double_t *px, const Double_t *dummy);
		static Double_t PtPromptVirtGamma(const Double_t *px, const Double_t *dummy);
		static Double_t PtThermalRealGamma(const Double_t *px, const Double_t *dummy);
		static Double_t PtThermalVirtGamma(const Double_t *px, const Double_t *dummy);

		static Int_t    IpDirectRealGamma(TRandom *ran);
		static Double_t PtDirectRealGamma(const Double_t *px, const Double_t *dummy);
		static Double_t YDirectRealGamma(const Double_t *py, const Double_t *dummy);
		static Double_t V2DirectRealGamma(const Double_t *px, const Double_t *dummy);

		static Int_t    IpDirectVirtGamma(TRandom *ran);
		static Double_t PtDirectVirtGamma(const Double_t *px, const Double_t *dummy);
		static Double_t YDirectVirtGamma(const Double_t *py, const Double_t *dummy);
		static Double_t V2DirectVirtGamma(const Double_t *px, const Double_t *dummy);

		// Pizero
		static Int_t    IpPizero(TRandom *ran);
		static Double_t PtPizero(const Double_t *px, const Double_t *dummy);
		static Double_t YPizero(const Double_t *py, const Double_t *dummy);
		static Double_t V2Pizero(const Double_t *px, const Double_t *dummy);

		// Eta
		static Int_t    IpEta(TRandom *ran);
		static Double_t PtEta(const Double_t *px, const Double_t *dummy);
		static Double_t YEta(const Double_t *py, const Double_t *dummy);
		static Double_t V2Eta(const Double_t *px, const Double_t *dummy);

		// Rho
		static Int_t    IpRho0(TRandom *ran);
		static Double_t PtRho0(const Double_t *px, const Double_t *dummy);
		static Double_t YRho0(const Double_t *py, const Double_t *dummy);
		static Double_t V2Rho0(const Double_t *py, const Double_t *dummy);


		// Omega
		static Int_t    IpOmega(TRandom *ran);
		static Double_t PtOmega(const Double_t *px, const Double_t *dummy);
		static Double_t YOmega(const Double_t *py, const Double_t *dummy);
		static Double_t V2Omega(const Double_t *py, const Double_t *dummy);

		// Etaprime
		static Int_t    IpEtaprime(TRandom *ran);
		static Double_t PtEtaprime(const Double_t *px, const Double_t *dummy);
		static Double_t YEtaprime(const Double_t *py, const Double_t *dummy);
		static Double_t V2Etaprime(const Double_t *py, const Double_t *dummy);

		// Phi
		static Int_t    IpPhi(TRandom *ran);
		static Double_t PtPhi(const Double_t *px, const Double_t *dummy);
		static Double_t YPhi(const Double_t *py, const Double_t *dummy);
		static Double_t V2Phi(const Double_t *py, const Double_t *dummy);

		// Jpsi
		static Int_t    IpJpsi(TRandom *ran);
		static Double_t PtJpsi(const Double_t *px, const Double_t *dummy);
		static Double_t YJpsi(const Double_t *py, const Double_t *dummy);
		static Double_t V2Jpsi(const Double_t *py, const Double_t *dummy);

		// Sigma
		static Int_t    IpSigma(TRandom *ran);
		static Double_t PtSigma( const Double_t *px, const Double_t *dummy );
		static Double_t YSigma(const Double_t *py, const Double_t *dummy);
		static Double_t V2Sigma0( const Double_t *px, const Double_t *dummy );
		
		// K0short
		static Int_t    IpK0short(TRandom *ran);
		static Double_t PtK0short( const Double_t *px, const Double_t *dummy );
		static Double_t YK0short(const Double_t *py, const Double_t *dummy);
		static Double_t V2K0sshort( const Double_t *px, const Double_t *dummy );

		// Delta++
		static Int_t    IpDeltaPlPl(TRandom *ran);
		static Double_t PtDeltaPlPl( const Double_t *px, const Double_t *dummy );
		static Double_t YDeltaPlPl(const Double_t *py, const Double_t *dummy);
		static Double_t V2DeltaPlPl( const Double_t *px, const Double_t *dummy );
		
		// Delta+
		static Int_t    IpDeltaPl(TRandom *ran);
		static Double_t PtDeltaPl( const Double_t *px, const Double_t *dummy );
		static Double_t YDeltaPl(const Double_t *py, const Double_t *dummy);
		static Double_t V2DeltaPl( const Double_t *px, const Double_t *dummy );
		
		// Delta-
		static Int_t    IpDeltaMi(TRandom *ran);
		static Double_t PtDeltaMi( const Double_t *px, const Double_t *dummy );
		static Double_t YDeltaMi(const Double_t *py, const Double_t *dummy);
		static Double_t V2DeltaMi( const Double_t *px, const Double_t *dummy );
		
		// Delta0
		static Int_t    IpDeltaZero(TRandom *ran);
		static Double_t PtDeltaZero( const Double_t *px, const Double_t *dummy );
		static Double_t YDeltaZero(const Double_t *py, const Double_t *dummy);
		static Double_t V2DeltaZero( const Double_t *px, const Double_t *dummy );

		// Rho+
		static Int_t    IpRhoPl(TRandom *ran);
		static Double_t PtRhoPl( const Double_t *px, const Double_t *dummy );
		static Double_t YRhoPl(const Double_t *py, const Double_t *dummy);
		static Double_t V2RhoPl( const Double_t *px, const Double_t *dummy );

		// Rho-
		static Int_t    IpRhoMi(TRandom *ran);
		static Double_t PtRhoMi( const Double_t *px, const Double_t *dummy );
		static Double_t YRhoMi(const Double_t *py, const Double_t *dummy);
		static Double_t V2RhoMi( const Double_t *px, const Double_t *dummy );

		// K0*
		static Int_t    IpK0star(TRandom *ran);
		static Double_t PtK0star( const Double_t *px, const Double_t *dummy );
		static Double_t YK0star(const Double_t *py, const Double_t *dummy);
		static Double_t V2K0star( const Double_t *px, const Double_t *dummy );
		

		// General
		//static Double_t PtFlat(const Double_t *px, const Double_t *dummy);
			static Double_t YFlat(Double_t y);
		static Double_t MtScal(Double_t pt, Int_t np);
		static Double_t V2Param(const Double_t *px, const Double_t *param);
		static Double_t V2Flat(const Double_t *px, const Double_t *param);
		static Double_t KEtScal(Double_t pt, Int_t np);
		static Double_t GetTAA(Int_t cent);

		static Double_t CrossOverLc(double a, double b, double x);
		static Double_t CrossOverRc(double a, double b, double x);

		static const Double_t fgkPtParam[kCentralities][10];          				// parameters of pi pt spectrum
		static const Double_t fgkModTsallisParamPi0PbPb[kCentralities][7]; 	  		// parameters for ModTsallis function for pi0 in PbPb 
		static const Double_t fgkModTsallisParamPiChargedPbPb[kCentralities][7];	// parameters for ModTsallis function for pi+- in PbPb 
		static const Double_t fgkV2param[kCentralities][16];          				// parameters of pi v2
		static const Double_t fgkRawPtOfV2Param[kCentralities][10];  				// parameters of the raw pt spectrum of v2 analysys
		static const Double_t fgkThermPtParam[kCentralities][2];					// parameters of thermal gamma pt
		static const Double_t fgkHM[16];											// particle masses
		static const Double_t fgkMtFactor[3][16];									// mt scaling factor
		static const Double_t fgkParamSetPi07TeV[kNPi0Param][7];					// parameters for pi0 in 7 TeV
		static const Double_t fgkParamSetPi02760GeV[kNPi0Param][7];					// parameters for pi0 in 2.76 TeV
		static const Double_t fgkParamSetPi0900GeV[kNPi0Param][7];					// parameters for pi0 in 0.9 TeV

		ClassDef(AliGenEMlib,1)

};


#endif
 AliGenEMlib.h:1
 AliGenEMlib.h:2
 AliGenEMlib.h:3
 AliGenEMlib.h:4
 AliGenEMlib.h:5
 AliGenEMlib.h:6
 AliGenEMlib.h:7
 AliGenEMlib.h:8
 AliGenEMlib.h:9
 AliGenEMlib.h:10
 AliGenEMlib.h:11
 AliGenEMlib.h:12
 AliGenEMlib.h:13
 AliGenEMlib.h:14
 AliGenEMlib.h:15
 AliGenEMlib.h:16
 AliGenEMlib.h:17
 AliGenEMlib.h:18
 AliGenEMlib.h:19
 AliGenEMlib.h:20
 AliGenEMlib.h:21
 AliGenEMlib.h:22
 AliGenEMlib.h:23
 AliGenEMlib.h:24
 AliGenEMlib.h:25
 AliGenEMlib.h:26
 AliGenEMlib.h:27
 AliGenEMlib.h:28
 AliGenEMlib.h:29
 AliGenEMlib.h:30
 AliGenEMlib.h:31
 AliGenEMlib.h:32
 AliGenEMlib.h:33
 AliGenEMlib.h:34
 AliGenEMlib.h:35
 AliGenEMlib.h:36
 AliGenEMlib.h:37
 AliGenEMlib.h:38
 AliGenEMlib.h:39
 AliGenEMlib.h:40
 AliGenEMlib.h:41
 AliGenEMlib.h:42
 AliGenEMlib.h:43
 AliGenEMlib.h:44
 AliGenEMlib.h:45
 AliGenEMlib.h:46
 AliGenEMlib.h:47
 AliGenEMlib.h:48
 AliGenEMlib.h:49
 AliGenEMlib.h:50
 AliGenEMlib.h:51
 AliGenEMlib.h:52
 AliGenEMlib.h:53
 AliGenEMlib.h:54
 AliGenEMlib.h:55
 AliGenEMlib.h:56
 AliGenEMlib.h:57
 AliGenEMlib.h:58
 AliGenEMlib.h:59
 AliGenEMlib.h:60
 AliGenEMlib.h:61
 AliGenEMlib.h:62
 AliGenEMlib.h:63
 AliGenEMlib.h:64
 AliGenEMlib.h:65
 AliGenEMlib.h:66
 AliGenEMlib.h:67
 AliGenEMlib.h:68
 AliGenEMlib.h:69
 AliGenEMlib.h:70
 AliGenEMlib.h:71
 AliGenEMlib.h:72
 AliGenEMlib.h:73
 AliGenEMlib.h:74
 AliGenEMlib.h:75
 AliGenEMlib.h:76
 AliGenEMlib.h:77
 AliGenEMlib.h:78
 AliGenEMlib.h:79
 AliGenEMlib.h:80
 AliGenEMlib.h:81
 AliGenEMlib.h:82
 AliGenEMlib.h:83
 AliGenEMlib.h:84
 AliGenEMlib.h:85
 AliGenEMlib.h:86
 AliGenEMlib.h:87
 AliGenEMlib.h:88
 AliGenEMlib.h:89
 AliGenEMlib.h:90
 AliGenEMlib.h:91
 AliGenEMlib.h:92
 AliGenEMlib.h:93
 AliGenEMlib.h:94
 AliGenEMlib.h:95
 AliGenEMlib.h:96
 AliGenEMlib.h:97
 AliGenEMlib.h:98
 AliGenEMlib.h:99
 AliGenEMlib.h:100
 AliGenEMlib.h:101
 AliGenEMlib.h:102
 AliGenEMlib.h:103
 AliGenEMlib.h:104
 AliGenEMlib.h:105
 AliGenEMlib.h:106
 AliGenEMlib.h:107
 AliGenEMlib.h:108
 AliGenEMlib.h:109
 AliGenEMlib.h:110
 AliGenEMlib.h:111
 AliGenEMlib.h:112
 AliGenEMlib.h:113
 AliGenEMlib.h:114
 AliGenEMlib.h:115
 AliGenEMlib.h:116
 AliGenEMlib.h:117
 AliGenEMlib.h:118
 AliGenEMlib.h:119
 AliGenEMlib.h:120
 AliGenEMlib.h:121
 AliGenEMlib.h:122
 AliGenEMlib.h:123
 AliGenEMlib.h:124
 AliGenEMlib.h:125
 AliGenEMlib.h:126
 AliGenEMlib.h:127
 AliGenEMlib.h:128
 AliGenEMlib.h:129
 AliGenEMlib.h:130
 AliGenEMlib.h:131
 AliGenEMlib.h:132
 AliGenEMlib.h:133
 AliGenEMlib.h:134
 AliGenEMlib.h:135
 AliGenEMlib.h:136
 AliGenEMlib.h:137
 AliGenEMlib.h:138
 AliGenEMlib.h:139
 AliGenEMlib.h:140
 AliGenEMlib.h:141
 AliGenEMlib.h:142
 AliGenEMlib.h:143
 AliGenEMlib.h:144
 AliGenEMlib.h:145
 AliGenEMlib.h:146
 AliGenEMlib.h:147
 AliGenEMlib.h:148
 AliGenEMlib.h:149
 AliGenEMlib.h:150
 AliGenEMlib.h:151
 AliGenEMlib.h:152
 AliGenEMlib.h:153
 AliGenEMlib.h:154
 AliGenEMlib.h:155
 AliGenEMlib.h:156
 AliGenEMlib.h:157
 AliGenEMlib.h:158
 AliGenEMlib.h:159
 AliGenEMlib.h:160
 AliGenEMlib.h:161
 AliGenEMlib.h:162
 AliGenEMlib.h:163
 AliGenEMlib.h:164
 AliGenEMlib.h:165
 AliGenEMlib.h:166
 AliGenEMlib.h:167
 AliGenEMlib.h:168
 AliGenEMlib.h:169
 AliGenEMlib.h:170
 AliGenEMlib.h:171
 AliGenEMlib.h:172
 AliGenEMlib.h:173
 AliGenEMlib.h:174
 AliGenEMlib.h:175
 AliGenEMlib.h:176
 AliGenEMlib.h:177
 AliGenEMlib.h:178
 AliGenEMlib.h:179
 AliGenEMlib.h:180
 AliGenEMlib.h:181
 AliGenEMlib.h:182
 AliGenEMlib.h:183
 AliGenEMlib.h:184
 AliGenEMlib.h:185
 AliGenEMlib.h:186
 AliGenEMlib.h:187
 AliGenEMlib.h:188
 AliGenEMlib.h:189
 AliGenEMlib.h:190
 AliGenEMlib.h:191
 AliGenEMlib.h:192
 AliGenEMlib.h:193
 AliGenEMlib.h:194
 AliGenEMlib.h:195
 AliGenEMlib.h:196
 AliGenEMlib.h:197
 AliGenEMlib.h:198
 AliGenEMlib.h:199
 AliGenEMlib.h:200
 AliGenEMlib.h:201
 AliGenEMlib.h:202
 AliGenEMlib.h:203
 AliGenEMlib.h:204
 AliGenEMlib.h:205
 AliGenEMlib.h:206
 AliGenEMlib.h:207
 AliGenEMlib.h:208
 AliGenEMlib.h:209
 AliGenEMlib.h:210
 AliGenEMlib.h:211
 AliGenEMlib.h:212
 AliGenEMlib.h:213
 AliGenEMlib.h:214
 AliGenEMlib.h:215
 AliGenEMlib.h:216
 AliGenEMlib.h:217
 AliGenEMlib.h:218
 AliGenEMlib.h:219
 AliGenEMlib.h:220
 AliGenEMlib.h:221
 AliGenEMlib.h:222
 AliGenEMlib.h:223
 AliGenEMlib.h:224
 AliGenEMlib.h:225
 AliGenEMlib.h:226
 AliGenEMlib.h:227
 AliGenEMlib.h:228
 AliGenEMlib.h:229
 AliGenEMlib.h:230
 AliGenEMlib.h:231
 AliGenEMlib.h:232
 AliGenEMlib.h:233
 AliGenEMlib.h:234
 AliGenEMlib.h:235
 AliGenEMlib.h:236
 AliGenEMlib.h:237
 AliGenEMlib.h:238
 AliGenEMlib.h:239
 AliGenEMlib.h:240
 AliGenEMlib.h:241
 AliGenEMlib.h:242
 AliGenEMlib.h:243
 AliGenEMlib.h:244
 AliGenEMlib.h:245
 AliGenEMlib.h:246
 AliGenEMlib.h:247
 AliGenEMlib.h:248
 AliGenEMlib.h:249
 AliGenEMlib.h:250
 AliGenEMlib.h:251
 AliGenEMlib.h:252
 AliGenEMlib.h:253
 AliGenEMlib.h:254
 AliGenEMlib.h:255
 AliGenEMlib.h:256
 AliGenEMlib.h:257
 AliGenEMlib.h:258
 AliGenEMlib.h:259
 AliGenEMlib.h:260
 AliGenEMlib.h:261
 AliGenEMlib.h:262
 AliGenEMlib.h:263
 AliGenEMlib.h:264
 AliGenEMlib.h:265
 AliGenEMlib.h:266
 AliGenEMlib.h:267
 AliGenEMlib.h:268
 AliGenEMlib.h:269
 AliGenEMlib.h:270
 AliGenEMlib.h:271
 AliGenEMlib.h:272
 AliGenEMlib.h:273
 AliGenEMlib.h:274
 AliGenEMlib.h:275
 AliGenEMlib.h:276
 AliGenEMlib.h:277
 AliGenEMlib.h:278
 AliGenEMlib.h:279
 AliGenEMlib.h:280
 AliGenEMlib.h:281
 AliGenEMlib.h:282
 AliGenEMlib.h:283
 AliGenEMlib.h:284
 AliGenEMlib.h:285
 AliGenEMlib.h:286
 AliGenEMlib.h:287
 AliGenEMlib.h:288
 AliGenEMlib.h:289
 AliGenEMlib.h:290
 AliGenEMlib.h:291
 AliGenEMlib.h:292
 AliGenEMlib.h:293
 AliGenEMlib.h:294
 AliGenEMlib.h:295
 AliGenEMlib.h:296
 AliGenEMlib.h:297
 AliGenEMlib.h:298
 AliGenEMlib.h:299
 AliGenEMlib.h:300
 AliGenEMlib.h:301
 AliGenEMlib.h:302
 AliGenEMlib.h:303
 AliGenEMlib.h:304
 AliGenEMlib.h:305