/*
<img src="picts/AliGeneratorClass.gif">
</pre>
<br clear=left>
<font size=+2 color=red>
<p>The responsible person for this module is
<a href="mailto:andreas.morsch@cern.ch">Andreas Morsch</a>.
</font>
<pre>
*/
//End_Html
#include <TArrayF.h>
#include <TF1.h>
#include <TF2.h>
#include <TH1F.h>
#include "AliConst.h"
#include "AliGenEventHeader.h"
#include "AliGenThermalPhotons.h"
#include "AliLog.h"
#include "AliRun.h"
ClassImp(AliGenThermalPhotons)
static Double_t rateQGP(const Double_t *x, const Double_t *par) {
Double_t tau=x[0],yprime=x[1];
Double_t pT=par[0],y=par[1],tau0=par[2],t0=par[3],tc=par[4];
Int_t iProcQGP=Int_t(par[5]), nFl=3;
Double_t e=pT*TMath::CosH(yprime-y),t=t0*TMath::Power(tau0/tau,1./3.);
const Double_t alpha=1./137.;
const Double_t factor=659.921;
Double_t alphaS=3.*TMath::TwoPi()/((33.-2.*nFl)*TMath::Log(8.*t/tc));
const Double_t abc[3]={0.0338, 0.0281, 0.0135} ;
Double_t rate=1.;
switch (iProcQGP) {
case 0:
rate=factor*abc[iProcQGP]*alpha*alphaS*TMath::Exp(-e/t)*t*t*TMath::Log(0.2317*e/alphaS/t);
break ;
case 1:
rate=factor*abc[iProcQGP]*alpha*alphaS*TMath::Exp(-e/t)*t*t;
break ;
case 2:
rate=factor*abc[iProcQGP]*alpha*alphaS*TMath::Exp(-e/t)*t*e;
break ;
default:
printf("NO iProcQGP=%i \n",iProcQGP);
}
return tau*rate;
}
static Double_t fromQGP(const Double_t *x, const Double_t *par) {
Double_t pT=x[0];
Double_t tau0=par[0],t0=par[1],tauCQGP=par[2],yNucl=par[3],tc=par[4],y=par[5];
Int_t iProcQGP=Int_t(par[6]);
TF2 frateQGP("frateQGP",&rateQGP,tau0,tauCQGP,-yNucl,yNucl,6);
frateQGP.SetParameters(pT,y,tau0,t0,tc,iProcQGP);
frateQGP.SetParNames("transverse momentum","rapidity","initial time","initial temperature","critical temperature","process number");
return TMath::TwoPi()*pT*frateQGP.Integral(tau0,tauCQGP,-yNucl,yNucl,1e-6);
}
static Double_t rateMixQ(const Double_t *x, const Double_t *par) {
Double_t yprime=x[0];
Double_t pT=par[0],y=par[1],tc=par[2];
Int_t iProcQGP=Int_t(par[3]),nFl=3;
Double_t e=pT*TMath::CosH(yprime-y),t=tc;
const Double_t alpha=1./137.;
const Double_t factor=659.921;
Double_t alphaS=3.*TMath::TwoPi()/((33.-2.*nFl)*TMath::Log(8.*t/tc));
const Double_t abc[3]={0.0338, 0.0281, 0.0135};
Double_t rate=1.;
switch (iProcQGP) {
case 0:
rate=factor*abc[iProcQGP]*alpha*alphaS*TMath::Exp(-e/t)*t*t*TMath::Log(0.2317*e/alphaS/t);
break ;
case 1:
rate=factor*abc[iProcQGP]*alpha*alphaS*TMath::Exp(-e/t)*t*t;
break ;
case 2:
rate=factor*abc[iProcQGP]*alpha*alphaS*TMath::Exp(-e/t)*t*e;
break ;
default:
printf("NO iProcQGP=%i \n",iProcQGP);
}
return rate;
}
static Double_t fromMixQ(const Double_t *x, const Double_t *par) {
Double_t pT=x[0];
Double_t lamQGP=par[0],yNucl=par[1],tc=par[2],y=par[3];
Int_t iProcQGP=Int_t(par[4]);
TF1 frateMixQ("frateMixQ",&rateMixQ,-yNucl,yNucl,4);
frateMixQ.SetParameters(pT,y,tc,iProcQGP);
frateMixQ.SetParNames("transverse momentum","rapidity","critical temperature","process number");
return TMath::TwoPi()*pT*lamQGP*frateMixQ.Integral(-yNucl,yNucl);
}
static Double_t rateMixH(const Double_t *x, const Double_t *par) {
Double_t yprime=x[0];
Double_t pT=par[0],y=par[1],tc=par[2];
Int_t iProcHHG=Int_t(par[3]);
Double_t e=pT*TMath::CosH(yprime-y),t=tc;
const Double_t mPi=0.135;
Double_t xx=t/mPi,yy=e/mPi;
Double_t f,rate=1.,emin,factor;
const Double_t mOm=0.783,width=0.00844,br=0.085,e0=0.379,pi=TMath::Pi();
const Double_t hc=0.197,hc4=hc*hc*hc*hc;
switch (iProcHHG) {
case 0:
f=-2.447+0.796*xx+(0.0338+0.0528*xx)*yy+(-21.447+8.2179*xx)/yy+(1.52436-0.38562*xx)/(yy*yy);
rate=t*t*TMath::Exp(-e/t+f);
break ;
case 1:
f=-12.055+4.387*xx+(0.3755+0.00826*xx)*yy+(-0.00777+0.000279*xx)*yy*yy+(5.7869-1.0258*xx)/yy+(-1.979+0.58*xx)/(yy*yy);
rate=t*t*TMath::Exp(-e/t+f);
break ;
case 2:
f=-6.295+1.6459*xx+(-0.4015+0.089*xx)*yy+(-0.954+2.05777*xx)/yy;
rate=t*t*TMath::Exp(-e/t+f);
break ;
case 3:
emin=mOm*(e*e+e0*e0)/(2.*e*e0);
factor=(3.*mOm*width*br)/(16.*pi*pi*pi*e0);
rate=factor*t*(emin+t)*TMath::Exp(-emin/t)/e/hc4;
break ;
default:
printf("NO iProcHHG=%i \n",iProcHHG);
}
return rate;
}
static Double_t fromMixH(const Double_t *x, const Double_t *par) {
Double_t pT=x[0];
Double_t lamHHG=par[0],yNucl=par[1],tc=par[2],y=par[3];
Int_t iProcHHG=Int_t(par[4]);
TF1 frateMixH("frateMixH",&rateMixH,-yNucl,yNucl,4);
frateMixH.SetParameters(pT,y,tc,iProcHHG);
frateMixH.SetParNames("transverse momentum","rapidity","critical temperature","process number");
return TMath::TwoPi()*pT*lamHHG*frateMixH.Integral(-yNucl,yNucl);
}
static Double_t rateHHG(const Double_t *x, const Double_t *par) {
Double_t tau=x[0],yprime=x[1];
Double_t pT=par[0],y=par[1],tauCHHG=par[2],tc=par[3];
Int_t iProcHHG=Int_t(par[4]);
Double_t e=pT*TMath::CosH(yprime-y),t=tc*TMath::Power(tauCHHG/tau,1./3.);
const Double_t mPi=0.135;
Double_t xx=t/mPi,yy=e/mPi;
Double_t f,rate=1.,emin,factor;
const Double_t mOm=0.783,width=0.00844,br=0.085,e0=0.379,pi=TMath::Pi();
const Double_t hc=0.197,hc4=hc*hc*hc*hc;
switch (iProcHHG) {
case 0:
f=-2.447+0.796*xx+(0.0338+0.0528*xx)*yy+(-21.447+8.2179*xx)/yy+(1.52436-0.38562*xx)/(yy*yy);
rate=t*t*TMath::Exp(-e/t+f);
break ;
case 1:
f=-12.055+4.387*xx+(0.3755+0.00826*xx)*yy+(-0.00777+0.000279*xx)*yy*yy+(5.7869-1.0258*xx)/yy+(-1.979+0.58*xx)/(yy*yy);
rate=t*t*TMath::Exp(-e/t+f);
break ;
case 2:
f=-6.295+1.6459*xx+(-0.4015+0.089*xx)*yy+(-0.954+2.05777*xx)/yy;
rate=t*t*TMath::Exp(-e/t+f);
break ;
case 3:
emin=mOm*(e*e+e0*e0)/(2.*e*e0);
factor=(3.*mOm*width*br)/(16.*pi*pi*pi*e0);
rate=factor*t*(emin+t)*TMath::Exp(-emin/t)/e/hc4;
break ;
default:
printf("NO iProcHHG=%i \n",iProcHHG);
}
return tau*rate;
}
static Double_t fromHHG(const Double_t *x, const Double_t *par) {
Double_t pT=x[0];
Double_t tauCHHG=par[0],tauF=par[1],yNucl=par[2],tc=par[3],y=par[4],iProcHHG=par[5];
TF2 frateHHG("frateHHG",&rateHHG,tauCHHG,tauF,-yNucl,yNucl,5);
frateHHG.SetParameters(pT,y,tauCHHG,tc,iProcHHG);
frateHHG.SetParNames("transverse momentum","rapidity","start of HHG","criti temperature","process number");
return TMath::TwoPi()*pT*frateHHG.Integral(tauCHHG,tauF,-yNucl,yNucl,1e-6);
}
static Double_t fOverlapAB(const Double_t *x, const Double_t *par)
{
Double_t b=x[0], ra=par[0], rb=par[1];
if(rb>ra) {ra=par[1]; rb=par[0];}
if(b>(ra+rb)) {
return 0.;
}
if(b<=(ra-rb)) {
return TMath::Pi()*rb*rb;
}
Double_t p=0.5*(b+ra+rb), S=TMath::Sqrt(p*(p-b)*(p-ra)*(p-rb)), h=2.*S/b;
Double_t sA=ra*ra*TMath::ASin(h/ra)-h*TMath::Sqrt(ra*ra-h*h);
Double_t sB=rb*rb*TMath::ASin(h/rb)-h*TMath::Sqrt(rb*rb-h*h);
if(ra>rb && b*b<ra*ra-rb*rb) sB=TMath::Pi()*rb*rb-sB;
return sA+sB;
}
AliGenThermalPhotons::AliGenThermalPhotons()
:AliGenerator(-1),
fMinImpactParam(0.),
fMaxImpactParam(0.),
fTau0(0.),
fT0(0.),
fTc(0.),
fTf(0.),
fGhhg(0),
fSumPt()
{
SetCutVertexZ();
SetPtRange();
SetYRange();
fAProjectile = 208;
fATarget = 208;
fEnergyCMS = 5500.;
}
AliGenThermalPhotons::AliGenThermalPhotons(Int_t npart)
:AliGenerator(npart),
fMinImpactParam(0.),
fMaxImpactParam(0.),
fTau0(0.1),
fT0(0.650),
fTc(0.170),
fTf(0.100),
fGhhg(8),
fSumPt()
{
fName="ThermalPhotons";
fTitle="Direct thermal photons in 1+1 Bjorken hydrodynamics";
SetCutVertexZ();
SetPtRange();
SetYRange();
fAProjectile = 208;
fATarget = 208;
fEnergyCMS = 5500.;
}
AliGenThermalPhotons::~AliGenThermalPhotons()
{
delete fSumPt;
}
void AliGenThermalPhotons::Init()
{
const Double_t step=0.1;
Int_t nPt=Int_t((fPtMax-fPtMin)/step);
fSumPt = new TH1F("fSumPt","thermal #gamma from QGP",nPt,fPtMin,fPtMax);
Double_t yRap=0.;
const Int_t nCo=3,nFl=3;
Double_t gQGP=2.*(nCo*nCo-1.)+(7./8.)*4.*nCo*nFl;
Double_t yNucl=TMath::ACosH(fEnergyCMS/2.);
Double_t tauCQGP=TMath::Power(fT0/fTc,3.)*fTau0,tauCHHG=gQGP*tauCQGP/fGhhg,tauF=tauCHHG*TMath::Power(fTc/fTf,3.);
Double_t lambda1=tauCQGP*(gQGP/(gQGP-fGhhg)),lambda2=-fGhhg/(gQGP-fGhhg);
Double_t lamQGP=(tauCHHG-tauCQGP)*(lambda1+0.5*lambda2*(tauCHHG+tauCQGP)),lamHHG=0.5*(tauCHHG-tauCQGP)*(tauCHHG+tauCQGP)-lamQGP;
Double_t pt,w;
for(Int_t j=0; j<3; j++) {
TF1 func("func",&fromQGP,fPtMin,fPtMax,7);
func.SetParameters(fTau0,fT0,tauCQGP,yNucl,fTc,yRap,j);
func.SetParNames("nuclear radius","initial time","initial temperature","end of pure QGP","rapidity of projectile nucleus","critical temperature","photon rapidity","process number");
for(Int_t i=0; i<nPt; i++) {
pt=fPtMin+(i+0.5)*step;
w=func.Eval(pt);
fSumPt->AddBinContent(i+1,w);
}
}
for(Int_t j=0; j<3; j++) {
TF1 func("func",&fromMixQ,fPtMin,fPtMax,5);
func.SetParameters(lamQGP,yNucl,fTc,yRap,j);
func.SetParNames("lamQGP","rapidity of projectile nucleus","critical temperature","photon rapidity","process number");
for(Int_t i=0; i<nPt; i++) {
pt=fPtMin+(i+0.5)*step;
w=func.Eval(pt);
fSumPt->AddBinContent(i+1,w);
}
}
for(Int_t j=0; j<4; j++) {
TF1 func("func",&fromMixH,fPtMin,fPtMax,5);
func.SetParameters(lamHHG,yNucl,fTc,yRap,j);
func.SetParNames("lamQGP","rapidity of projectile nucleus","critical temperature","photon rapidity","process number");
for(Int_t i=0; i<nPt; i++) {
pt=fPtMin+(i+0.5)*step;
w=func.Eval(pt);
fSumPt->AddBinContent(i+1,w);
}
}
for(Int_t j=0; j<4; j++) {
TF1 func("func",&fromHHG,fPtMin,fPtMax,6);
func.SetParameters(tauCHHG,tauF,yNucl,fTc,yRap,j);
func.SetParNames("nuclear radius","start HHG","freeze-out proper time","rapidity of projectile nucleus","critical temperature","photon rapidity","process number");
for(Int_t i=0; i<nPt; i++) {
pt=fPtMin+(i+0.5)*step;
w=func.Eval(pt);
fSumPt->AddBinContent(i+1,w);
}
}
}
void AliGenThermalPhotons::Generate()
{
Float_t polar[3]= {0,0,0};
Float_t origin[3];
Float_t time;
Float_t p[3];
Float_t random[6];
Int_t nt;
for (Int_t j=0;j<3;j++) origin[j]=fOrigin[j];
time = fTimeOrigin;
TArrayF eventVertex;
eventVertex.Set(3);
eventVertex[0] = origin[0];
eventVertex[1] = origin[1];
eventVertex[2] = origin[2];
Float_t eventTime = time;
Int_t nGam;
Float_t impPar,area,pt,rapidity,phi,ww;
Float_t r0=1.3,ra=r0*TMath::Power(fAProjectile,1./3.),rb=r0*TMath::Power(fATarget,1./3.);
TF1 *funcOL = new TF1("funcOL",fOverlapAB,fMinImpactParam,fMaxImpactParam,2);
funcOL->SetParameters(ra,rb);
funcOL->SetParNames("radiusA","radiusB");
impPar=TMath::Sqrt(fMinImpactParam*fMinImpactParam+(fMaxImpactParam*fMaxImpactParam-fMinImpactParam*fMinImpactParam)*gRandom->Rndm());
area=funcOL->Eval(impPar);
ww=area*(fYMax-fYMin)*fSumPt->GetBinWidth(1)*fSumPt->GetSumOfWeights();
nGam=Int_t(ww);
if(gRandom->Rndm() < (ww-(Float_t)nGam)) nGam++;
if(nGam) {
for(Int_t i=0; i<nGam; i++) {
pt=fSumPt->GetRandom();
Rndm(random,2);
rapidity=(fYMax-fYMin)*random[0]+fYMin;
phi=2.*TMath::Pi()*random[1];
p[0]=pt*TMath::Cos(phi);
p[1]=pt*TMath::Sin(phi);
p[2]=pt*TMath::SinH(rapidity);
if(fVertexSmear==kPerTrack) {
Rndm(random,6);
for (Int_t j=0;j<3;j++) {
origin[j]=fOrigin[j]+fOsigma[j]*TMath::Cos(2*random[2*j]*TMath::Pi())*
TMath::Sqrt(-2*TMath::Log(random[2*j+1]));
}
Rndm(random,2);
time = fTimeOrigin + fOsigma[2]/TMath::Ccgs()*
TMath::Cos(2*random[0]*TMath::Pi())*
TMath::Sqrt(-2*TMath::Log(random[1]));
}
PushTrack(fTrackIt,-1,22,p,origin,polar,time,kPPrimary,nt,1.);
}
}
delete funcOL;
AliGenEventHeader* header = new AliGenEventHeader("ThermalPhotons");
header->SetPrimaryVertex(eventVertex);
header->SetInteractionTime(eventTime);
header->SetNProduced(fNpart);
gAlice->SetGenEventHeader(header);
}
void AliGenThermalPhotons::SetPtRange(Float_t ptmin, Float_t ptmax) {
AliGenerator::SetPtRange(ptmin, ptmax);
}
void AliGenThermalPhotons::SetYRange(Float_t ymin, Float_t ymax) {
AliGenerator::SetYRange(ymin, ymax);
}
AliGenThermalPhotons.cxx:1 AliGenThermalPhotons.cxx:2 AliGenThermalPhotons.cxx:3 AliGenThermalPhotons.cxx:4 AliGenThermalPhotons.cxx:5 AliGenThermalPhotons.cxx:6 AliGenThermalPhotons.cxx:7 AliGenThermalPhotons.cxx:8 AliGenThermalPhotons.cxx:9 AliGenThermalPhotons.cxx:10 AliGenThermalPhotons.cxx:11 AliGenThermalPhotons.cxx:12 AliGenThermalPhotons.cxx:13 AliGenThermalPhotons.cxx:14 AliGenThermalPhotons.cxx:15 AliGenThermalPhotons.cxx:16 AliGenThermalPhotons.cxx:17 AliGenThermalPhotons.cxx:18 AliGenThermalPhotons.cxx:19 AliGenThermalPhotons.cxx:20 AliGenThermalPhotons.cxx:21 AliGenThermalPhotons.cxx:22 AliGenThermalPhotons.cxx:23 AliGenThermalPhotons.cxx:24 AliGenThermalPhotons.cxx:25 AliGenThermalPhotons.cxx:26 AliGenThermalPhotons.cxx:27 AliGenThermalPhotons.cxx:28 AliGenThermalPhotons.cxx:29 AliGenThermalPhotons.cxx:30 AliGenThermalPhotons.cxx:31 AliGenThermalPhotons.cxx:32 AliGenThermalPhotons.cxx:33 AliGenThermalPhotons.cxx:34 AliGenThermalPhotons.cxx:35 AliGenThermalPhotons.cxx:36 AliGenThermalPhotons.cxx:37 AliGenThermalPhotons.cxx:38 AliGenThermalPhotons.cxx:39 AliGenThermalPhotons.cxx:40 AliGenThermalPhotons.cxx:41 AliGenThermalPhotons.cxx:42 AliGenThermalPhotons.cxx:43 AliGenThermalPhotons.cxx:44 AliGenThermalPhotons.cxx:45 AliGenThermalPhotons.cxx:46 AliGenThermalPhotons.cxx:47 AliGenThermalPhotons.cxx:48 AliGenThermalPhotons.cxx:49 AliGenThermalPhotons.cxx:50 AliGenThermalPhotons.cxx:51 AliGenThermalPhotons.cxx:52 AliGenThermalPhotons.cxx:53 AliGenThermalPhotons.cxx:54 AliGenThermalPhotons.cxx:55 AliGenThermalPhotons.cxx:56 AliGenThermalPhotons.cxx:57 AliGenThermalPhotons.cxx:58 AliGenThermalPhotons.cxx:59 AliGenThermalPhotons.cxx:60 AliGenThermalPhotons.cxx:61 AliGenThermalPhotons.cxx:62 AliGenThermalPhotons.cxx:63 AliGenThermalPhotons.cxx:64 AliGenThermalPhotons.cxx:65 AliGenThermalPhotons.cxx:66 AliGenThermalPhotons.cxx:67 AliGenThermalPhotons.cxx:68 AliGenThermalPhotons.cxx:69 AliGenThermalPhotons.cxx:70 AliGenThermalPhotons.cxx:71 AliGenThermalPhotons.cxx:72 AliGenThermalPhotons.cxx:73 AliGenThermalPhotons.cxx:74 AliGenThermalPhotons.cxx:75 AliGenThermalPhotons.cxx:76 AliGenThermalPhotons.cxx:77 AliGenThermalPhotons.cxx:78 AliGenThermalPhotons.cxx:79 AliGenThermalPhotons.cxx:80 AliGenThermalPhotons.cxx:81 AliGenThermalPhotons.cxx:82 AliGenThermalPhotons.cxx:83 AliGenThermalPhotons.cxx:84 AliGenThermalPhotons.cxx:85 AliGenThermalPhotons.cxx:86 AliGenThermalPhotons.cxx:87 AliGenThermalPhotons.cxx:88 AliGenThermalPhotons.cxx:89 AliGenThermalPhotons.cxx:90 AliGenThermalPhotons.cxx:91 AliGenThermalPhotons.cxx:92 AliGenThermalPhotons.cxx:93 AliGenThermalPhotons.cxx:94 AliGenThermalPhotons.cxx:95 AliGenThermalPhotons.cxx:96 AliGenThermalPhotons.cxx:97 AliGenThermalPhotons.cxx:98 AliGenThermalPhotons.cxx:99 AliGenThermalPhotons.cxx:100 AliGenThermalPhotons.cxx:101 AliGenThermalPhotons.cxx:102 AliGenThermalPhotons.cxx:103 AliGenThermalPhotons.cxx:104 AliGenThermalPhotons.cxx:105 AliGenThermalPhotons.cxx:106 AliGenThermalPhotons.cxx:107 AliGenThermalPhotons.cxx:108 AliGenThermalPhotons.cxx:109 AliGenThermalPhotons.cxx:110 AliGenThermalPhotons.cxx:111 AliGenThermalPhotons.cxx:112 AliGenThermalPhotons.cxx:113 AliGenThermalPhotons.cxx:114 AliGenThermalPhotons.cxx:115 AliGenThermalPhotons.cxx:116 AliGenThermalPhotons.cxx:117 AliGenThermalPhotons.cxx:118 AliGenThermalPhotons.cxx:119 AliGenThermalPhotons.cxx:120 AliGenThermalPhotons.cxx:121 AliGenThermalPhotons.cxx:122 AliGenThermalPhotons.cxx:123 AliGenThermalPhotons.cxx:124 AliGenThermalPhotons.cxx:125 AliGenThermalPhotons.cxx:126 AliGenThermalPhotons.cxx:127 AliGenThermalPhotons.cxx:128 AliGenThermalPhotons.cxx:129 AliGenThermalPhotons.cxx:130 AliGenThermalPhotons.cxx:131 AliGenThermalPhotons.cxx:132 AliGenThermalPhotons.cxx:133 AliGenThermalPhotons.cxx:134 AliGenThermalPhotons.cxx:135 AliGenThermalPhotons.cxx:136 AliGenThermalPhotons.cxx:137 AliGenThermalPhotons.cxx:138 AliGenThermalPhotons.cxx:139 AliGenThermalPhotons.cxx:140 AliGenThermalPhotons.cxx:141 AliGenThermalPhotons.cxx:142 AliGenThermalPhotons.cxx:143 AliGenThermalPhotons.cxx:144 AliGenThermalPhotons.cxx:145 AliGenThermalPhotons.cxx:146 AliGenThermalPhotons.cxx:147 AliGenThermalPhotons.cxx:148 AliGenThermalPhotons.cxx:149 AliGenThermalPhotons.cxx:150 AliGenThermalPhotons.cxx:151 AliGenThermalPhotons.cxx:152 AliGenThermalPhotons.cxx:153 AliGenThermalPhotons.cxx:154 AliGenThermalPhotons.cxx:155 AliGenThermalPhotons.cxx:156 AliGenThermalPhotons.cxx:157 AliGenThermalPhotons.cxx:158 AliGenThermalPhotons.cxx:159 AliGenThermalPhotons.cxx:160 AliGenThermalPhotons.cxx:161 AliGenThermalPhotons.cxx:162 AliGenThermalPhotons.cxx:163 AliGenThermalPhotons.cxx:164 AliGenThermalPhotons.cxx:165 AliGenThermalPhotons.cxx:166 AliGenThermalPhotons.cxx:167 AliGenThermalPhotons.cxx:168 AliGenThermalPhotons.cxx:169 AliGenThermalPhotons.cxx:170 AliGenThermalPhotons.cxx:171 AliGenThermalPhotons.cxx:172 AliGenThermalPhotons.cxx:173 AliGenThermalPhotons.cxx:174 AliGenThermalPhotons.cxx:175 AliGenThermalPhotons.cxx:176 AliGenThermalPhotons.cxx:177 AliGenThermalPhotons.cxx:178 AliGenThermalPhotons.cxx:179 AliGenThermalPhotons.cxx:180 AliGenThermalPhotons.cxx:181 AliGenThermalPhotons.cxx:182 AliGenThermalPhotons.cxx:183 AliGenThermalPhotons.cxx:184 AliGenThermalPhotons.cxx:185 AliGenThermalPhotons.cxx:186 AliGenThermalPhotons.cxx:187 AliGenThermalPhotons.cxx:188 AliGenThermalPhotons.cxx:189 AliGenThermalPhotons.cxx:190 AliGenThermalPhotons.cxx:191 AliGenThermalPhotons.cxx:192 AliGenThermalPhotons.cxx:193 AliGenThermalPhotons.cxx:194 AliGenThermalPhotons.cxx:195 AliGenThermalPhotons.cxx:196 AliGenThermalPhotons.cxx:197 AliGenThermalPhotons.cxx:198 AliGenThermalPhotons.cxx:199 AliGenThermalPhotons.cxx:200 AliGenThermalPhotons.cxx:201 AliGenThermalPhotons.cxx:202 AliGenThermalPhotons.cxx:203 AliGenThermalPhotons.cxx:204 AliGenThermalPhotons.cxx:205 AliGenThermalPhotons.cxx:206 AliGenThermalPhotons.cxx:207 AliGenThermalPhotons.cxx:208 AliGenThermalPhotons.cxx:209 AliGenThermalPhotons.cxx:210 AliGenThermalPhotons.cxx:211 AliGenThermalPhotons.cxx:212 AliGenThermalPhotons.cxx:213 AliGenThermalPhotons.cxx:214 AliGenThermalPhotons.cxx:215 AliGenThermalPhotons.cxx:216 AliGenThermalPhotons.cxx:217 AliGenThermalPhotons.cxx:218 AliGenThermalPhotons.cxx:219 AliGenThermalPhotons.cxx:220 AliGenThermalPhotons.cxx:221 AliGenThermalPhotons.cxx:222 AliGenThermalPhotons.cxx:223 AliGenThermalPhotons.cxx:224 AliGenThermalPhotons.cxx:225 AliGenThermalPhotons.cxx:226 AliGenThermalPhotons.cxx:227 AliGenThermalPhotons.cxx:228 AliGenThermalPhotons.cxx:229 AliGenThermalPhotons.cxx:230 AliGenThermalPhotons.cxx:231 AliGenThermalPhotons.cxx:232 AliGenThermalPhotons.cxx:233 AliGenThermalPhotons.cxx:234 AliGenThermalPhotons.cxx:235 AliGenThermalPhotons.cxx:236 AliGenThermalPhotons.cxx:237 AliGenThermalPhotons.cxx:238 AliGenThermalPhotons.cxx:239 AliGenThermalPhotons.cxx:240 AliGenThermalPhotons.cxx:241 AliGenThermalPhotons.cxx:242 AliGenThermalPhotons.cxx:243 AliGenThermalPhotons.cxx:244 AliGenThermalPhotons.cxx:245 AliGenThermalPhotons.cxx:246 AliGenThermalPhotons.cxx:247 AliGenThermalPhotons.cxx:248 AliGenThermalPhotons.cxx:249 AliGenThermalPhotons.cxx:250 AliGenThermalPhotons.cxx:251 AliGenThermalPhotons.cxx:252 AliGenThermalPhotons.cxx:253 AliGenThermalPhotons.cxx:254 AliGenThermalPhotons.cxx:255 AliGenThermalPhotons.cxx:256 AliGenThermalPhotons.cxx:257 AliGenThermalPhotons.cxx:258 AliGenThermalPhotons.cxx:259 AliGenThermalPhotons.cxx:260 AliGenThermalPhotons.cxx:261 AliGenThermalPhotons.cxx:262 AliGenThermalPhotons.cxx:263 AliGenThermalPhotons.cxx:264 AliGenThermalPhotons.cxx:265 AliGenThermalPhotons.cxx:266 AliGenThermalPhotons.cxx:267 AliGenThermalPhotons.cxx:268 AliGenThermalPhotons.cxx:269 AliGenThermalPhotons.cxx:270 AliGenThermalPhotons.cxx:271 AliGenThermalPhotons.cxx:272 AliGenThermalPhotons.cxx:273 AliGenThermalPhotons.cxx:274 AliGenThermalPhotons.cxx:275 AliGenThermalPhotons.cxx:276 AliGenThermalPhotons.cxx:277 AliGenThermalPhotons.cxx:278 AliGenThermalPhotons.cxx:279 AliGenThermalPhotons.cxx:280 AliGenThermalPhotons.cxx:281 AliGenThermalPhotons.cxx:282 AliGenThermalPhotons.cxx:283 AliGenThermalPhotons.cxx:284 AliGenThermalPhotons.cxx:285 AliGenThermalPhotons.cxx:286 AliGenThermalPhotons.cxx:287 AliGenThermalPhotons.cxx:288 AliGenThermalPhotons.cxx:289 AliGenThermalPhotons.cxx:290 AliGenThermalPhotons.cxx:291 AliGenThermalPhotons.cxx:292 AliGenThermalPhotons.cxx:293 AliGenThermalPhotons.cxx:294 AliGenThermalPhotons.cxx:295 AliGenThermalPhotons.cxx:296 AliGenThermalPhotons.cxx:297 AliGenThermalPhotons.cxx:298 AliGenThermalPhotons.cxx:299 AliGenThermalPhotons.cxx:300 AliGenThermalPhotons.cxx:301 AliGenThermalPhotons.cxx:302 AliGenThermalPhotons.cxx:303 AliGenThermalPhotons.cxx:304 AliGenThermalPhotons.cxx:305 AliGenThermalPhotons.cxx:306 AliGenThermalPhotons.cxx:307 AliGenThermalPhotons.cxx:308 AliGenThermalPhotons.cxx:309 AliGenThermalPhotons.cxx:310 AliGenThermalPhotons.cxx:311 AliGenThermalPhotons.cxx:312 AliGenThermalPhotons.cxx:313 AliGenThermalPhotons.cxx:314 AliGenThermalPhotons.cxx:315 AliGenThermalPhotons.cxx:316 AliGenThermalPhotons.cxx:317 AliGenThermalPhotons.cxx:318 AliGenThermalPhotons.cxx:319 AliGenThermalPhotons.cxx:320 AliGenThermalPhotons.cxx:321 AliGenThermalPhotons.cxx:322 AliGenThermalPhotons.cxx:323 AliGenThermalPhotons.cxx:324 AliGenThermalPhotons.cxx:325 AliGenThermalPhotons.cxx:326 AliGenThermalPhotons.cxx:327 AliGenThermalPhotons.cxx:328 AliGenThermalPhotons.cxx:329 AliGenThermalPhotons.cxx:330 AliGenThermalPhotons.cxx:331 AliGenThermalPhotons.cxx:332 AliGenThermalPhotons.cxx:333 AliGenThermalPhotons.cxx:334 AliGenThermalPhotons.cxx:335 AliGenThermalPhotons.cxx:336 AliGenThermalPhotons.cxx:337 AliGenThermalPhotons.cxx:338 AliGenThermalPhotons.cxx:339 AliGenThermalPhotons.cxx:340 AliGenThermalPhotons.cxx:341 AliGenThermalPhotons.cxx:342 AliGenThermalPhotons.cxx:343 AliGenThermalPhotons.cxx:344 AliGenThermalPhotons.cxx:345 AliGenThermalPhotons.cxx:346 AliGenThermalPhotons.cxx:347 AliGenThermalPhotons.cxx:348 AliGenThermalPhotons.cxx:349 AliGenThermalPhotons.cxx:350 AliGenThermalPhotons.cxx:351 AliGenThermalPhotons.cxx:352 AliGenThermalPhotons.cxx:353 AliGenThermalPhotons.cxx:354 AliGenThermalPhotons.cxx:355 AliGenThermalPhotons.cxx:356 AliGenThermalPhotons.cxx:357 AliGenThermalPhotons.cxx:358 AliGenThermalPhotons.cxx:359 AliGenThermalPhotons.cxx:360 AliGenThermalPhotons.cxx:361 AliGenThermalPhotons.cxx:362 AliGenThermalPhotons.cxx:363 AliGenThermalPhotons.cxx:364 AliGenThermalPhotons.cxx:365 AliGenThermalPhotons.cxx:366 AliGenThermalPhotons.cxx:367 AliGenThermalPhotons.cxx:368 AliGenThermalPhotons.cxx:369 AliGenThermalPhotons.cxx:370 AliGenThermalPhotons.cxx:371 AliGenThermalPhotons.cxx:372 AliGenThermalPhotons.cxx:373 AliGenThermalPhotons.cxx:374 AliGenThermalPhotons.cxx:375 AliGenThermalPhotons.cxx:376 AliGenThermalPhotons.cxx:377 AliGenThermalPhotons.cxx:378 AliGenThermalPhotons.cxx:379 AliGenThermalPhotons.cxx:380 AliGenThermalPhotons.cxx:381 AliGenThermalPhotons.cxx:382 AliGenThermalPhotons.cxx:383 AliGenThermalPhotons.cxx:384 AliGenThermalPhotons.cxx:385 AliGenThermalPhotons.cxx:386 AliGenThermalPhotons.cxx:387 AliGenThermalPhotons.cxx:388 AliGenThermalPhotons.cxx:389 AliGenThermalPhotons.cxx:390 AliGenThermalPhotons.cxx:391 AliGenThermalPhotons.cxx:392 AliGenThermalPhotons.cxx:393 AliGenThermalPhotons.cxx:394 AliGenThermalPhotons.cxx:395 AliGenThermalPhotons.cxx:396 AliGenThermalPhotons.cxx:397 AliGenThermalPhotons.cxx:398 AliGenThermalPhotons.cxx:399 AliGenThermalPhotons.cxx:400 AliGenThermalPhotons.cxx:401 AliGenThermalPhotons.cxx:402 AliGenThermalPhotons.cxx:403 AliGenThermalPhotons.cxx:404 AliGenThermalPhotons.cxx:405 AliGenThermalPhotons.cxx:406 AliGenThermalPhotons.cxx:407 AliGenThermalPhotons.cxx:408 AliGenThermalPhotons.cxx:409 AliGenThermalPhotons.cxx:410 AliGenThermalPhotons.cxx:411 AliGenThermalPhotons.cxx:412 AliGenThermalPhotons.cxx:413 AliGenThermalPhotons.cxx:414 AliGenThermalPhotons.cxx:415 AliGenThermalPhotons.cxx:416 AliGenThermalPhotons.cxx:417 AliGenThermalPhotons.cxx:418 AliGenThermalPhotons.cxx:419 AliGenThermalPhotons.cxx:420 AliGenThermalPhotons.cxx:421 AliGenThermalPhotons.cxx:422 AliGenThermalPhotons.cxx:423 AliGenThermalPhotons.cxx:424 AliGenThermalPhotons.cxx:425 AliGenThermalPhotons.cxx:426 AliGenThermalPhotons.cxx:427 AliGenThermalPhotons.cxx:428 AliGenThermalPhotons.cxx:429 AliGenThermalPhotons.cxx:430 AliGenThermalPhotons.cxx:431 AliGenThermalPhotons.cxx:432 AliGenThermalPhotons.cxx:433 AliGenThermalPhotons.cxx:434 AliGenThermalPhotons.cxx:435 AliGenThermalPhotons.cxx:436 AliGenThermalPhotons.cxx:437 AliGenThermalPhotons.cxx:438 AliGenThermalPhotons.cxx:439 AliGenThermalPhotons.cxx:440 AliGenThermalPhotons.cxx:441 AliGenThermalPhotons.cxx:442 AliGenThermalPhotons.cxx:443 AliGenThermalPhotons.cxx:444 AliGenThermalPhotons.cxx:445 AliGenThermalPhotons.cxx:446 AliGenThermalPhotons.cxx:447 AliGenThermalPhotons.cxx:448 AliGenThermalPhotons.cxx:449 AliGenThermalPhotons.cxx:450 AliGenThermalPhotons.cxx:451 AliGenThermalPhotons.cxx:452 AliGenThermalPhotons.cxx:453 AliGenThermalPhotons.cxx:454 AliGenThermalPhotons.cxx:455 AliGenThermalPhotons.cxx:456 AliGenThermalPhotons.cxx:457 AliGenThermalPhotons.cxx:458 AliGenThermalPhotons.cxx:459 AliGenThermalPhotons.cxx:460 AliGenThermalPhotons.cxx:461 AliGenThermalPhotons.cxx:462 AliGenThermalPhotons.cxx:463 AliGenThermalPhotons.cxx:464 AliGenThermalPhotons.cxx:465 AliGenThermalPhotons.cxx:466 AliGenThermalPhotons.cxx:467 AliGenThermalPhotons.cxx:468 AliGenThermalPhotons.cxx:469 AliGenThermalPhotons.cxx:470 AliGenThermalPhotons.cxx:471 AliGenThermalPhotons.cxx:472 AliGenThermalPhotons.cxx:473 AliGenThermalPhotons.cxx:474 AliGenThermalPhotons.cxx:475 AliGenThermalPhotons.cxx:476 AliGenThermalPhotons.cxx:477 AliGenThermalPhotons.cxx:478 AliGenThermalPhotons.cxx:479 AliGenThermalPhotons.cxx:480 AliGenThermalPhotons.cxx:481 AliGenThermalPhotons.cxx:482 AliGenThermalPhotons.cxx:483 AliGenThermalPhotons.cxx:484 AliGenThermalPhotons.cxx:485 AliGenThermalPhotons.cxx:486 AliGenThermalPhotons.cxx:487 AliGenThermalPhotons.cxx:488 AliGenThermalPhotons.cxx:489 AliGenThermalPhotons.cxx:490 AliGenThermalPhotons.cxx:491 AliGenThermalPhotons.cxx:492 AliGenThermalPhotons.cxx:493 AliGenThermalPhotons.cxx:494 AliGenThermalPhotons.cxx:495 AliGenThermalPhotons.cxx:496 AliGenThermalPhotons.cxx:497 AliGenThermalPhotons.cxx:498 AliGenThermalPhotons.cxx:499 AliGenThermalPhotons.cxx:500 AliGenThermalPhotons.cxx:501 AliGenThermalPhotons.cxx:502 AliGenThermalPhotons.cxx:503 AliGenThermalPhotons.cxx:504 AliGenThermalPhotons.cxx:505 AliGenThermalPhotons.cxx:506 AliGenThermalPhotons.cxx:507 AliGenThermalPhotons.cxx:508 AliGenThermalPhotons.cxx:509 AliGenThermalPhotons.cxx:510 AliGenThermalPhotons.cxx:511 AliGenThermalPhotons.cxx:512 AliGenThermalPhotons.cxx:513 AliGenThermalPhotons.cxx:514 AliGenThermalPhotons.cxx:515 AliGenThermalPhotons.cxx:516 AliGenThermalPhotons.cxx:517 AliGenThermalPhotons.cxx:518 AliGenThermalPhotons.cxx:519 AliGenThermalPhotons.cxx:520 AliGenThermalPhotons.cxx:521 AliGenThermalPhotons.cxx:522 AliGenThermalPhotons.cxx:523 AliGenThermalPhotons.cxx:524 AliGenThermalPhotons.cxx:525 AliGenThermalPhotons.cxx:526 AliGenThermalPhotons.cxx:527 AliGenThermalPhotons.cxx:528 AliGenThermalPhotons.cxx:529 AliGenThermalPhotons.cxx:530 AliGenThermalPhotons.cxx:531 AliGenThermalPhotons.cxx:532 AliGenThermalPhotons.cxx:533 AliGenThermalPhotons.cxx:534 AliGenThermalPhotons.cxx:535 AliGenThermalPhotons.cxx:536 AliGenThermalPhotons.cxx:537 AliGenThermalPhotons.cxx:538 AliGenThermalPhotons.cxx:539 AliGenThermalPhotons.cxx:540 AliGenThermalPhotons.cxx:541 AliGenThermalPhotons.cxx:542 AliGenThermalPhotons.cxx:543 AliGenThermalPhotons.cxx:544 AliGenThermalPhotons.cxx:545 AliGenThermalPhotons.cxx:546 AliGenThermalPhotons.cxx:547 AliGenThermalPhotons.cxx:548 AliGenThermalPhotons.cxx:549 AliGenThermalPhotons.cxx:550 AliGenThermalPhotons.cxx:551 AliGenThermalPhotons.cxx:552 AliGenThermalPhotons.cxx:553 AliGenThermalPhotons.cxx:554 AliGenThermalPhotons.cxx:555 AliGenThermalPhotons.cxx:556 AliGenThermalPhotons.cxx:557 AliGenThermalPhotons.cxx:558 AliGenThermalPhotons.cxx:559 AliGenThermalPhotons.cxx:560 AliGenThermalPhotons.cxx:561 AliGenThermalPhotons.cxx:562 AliGenThermalPhotons.cxx:563 AliGenThermalPhotons.cxx:564 AliGenThermalPhotons.cxx:565 AliGenThermalPhotons.cxx:566 AliGenThermalPhotons.cxx:567 AliGenThermalPhotons.cxx:568 AliGenThermalPhotons.cxx:569 AliGenThermalPhotons.cxx:570 AliGenThermalPhotons.cxx:571 AliGenThermalPhotons.cxx:572 AliGenThermalPhotons.cxx:573 AliGenThermalPhotons.cxx:574 AliGenThermalPhotons.cxx:575 AliGenThermalPhotons.cxx:576 AliGenThermalPhotons.cxx:577 AliGenThermalPhotons.cxx:578 AliGenThermalPhotons.cxx:579 AliGenThermalPhotons.cxx:580 AliGenThermalPhotons.cxx:581 AliGenThermalPhotons.cxx:582 AliGenThermalPhotons.cxx:583 AliGenThermalPhotons.cxx:584 AliGenThermalPhotons.cxx:585 AliGenThermalPhotons.cxx:586 AliGenThermalPhotons.cxx:587 AliGenThermalPhotons.cxx:588 AliGenThermalPhotons.cxx:589 AliGenThermalPhotons.cxx:590 AliGenThermalPhotons.cxx:591 AliGenThermalPhotons.cxx:592 AliGenThermalPhotons.cxx:593 AliGenThermalPhotons.cxx:594 AliGenThermalPhotons.cxx:595 AliGenThermalPhotons.cxx:596 AliGenThermalPhotons.cxx:597 AliGenThermalPhotons.cxx:598 AliGenThermalPhotons.cxx:599 AliGenThermalPhotons.cxx:600 AliGenThermalPhotons.cxx:601 AliGenThermalPhotons.cxx:602 AliGenThermalPhotons.cxx:603 AliGenThermalPhotons.cxx:604 AliGenThermalPhotons.cxx:605 AliGenThermalPhotons.cxx:606 AliGenThermalPhotons.cxx:607 AliGenThermalPhotons.cxx:608 AliGenThermalPhotons.cxx:609 AliGenThermalPhotons.cxx:610 AliGenThermalPhotons.cxx:611 AliGenThermalPhotons.cxx:612 AliGenThermalPhotons.cxx:613 AliGenThermalPhotons.cxx:614 AliGenThermalPhotons.cxx:615 AliGenThermalPhotons.cxx:616 AliGenThermalPhotons.cxx:617 AliGenThermalPhotons.cxx:618 AliGenThermalPhotons.cxx:619 AliGenThermalPhotons.cxx:620 AliGenThermalPhotons.cxx:621 AliGenThermalPhotons.cxx:622 AliGenThermalPhotons.cxx:623 AliGenThermalPhotons.cxx:624 AliGenThermalPhotons.cxx:625 AliGenThermalPhotons.cxx:626 AliGenThermalPhotons.cxx:627 AliGenThermalPhotons.cxx:628 AliGenThermalPhotons.cxx:629 AliGenThermalPhotons.cxx:630 AliGenThermalPhotons.cxx:631 AliGenThermalPhotons.cxx:632 AliGenThermalPhotons.cxx:633 AliGenThermalPhotons.cxx:634 AliGenThermalPhotons.cxx:635 AliGenThermalPhotons.cxx:636 AliGenThermalPhotons.cxx:637 AliGenThermalPhotons.cxx:638 AliGenThermalPhotons.cxx:639 AliGenThermalPhotons.cxx:640 AliGenThermalPhotons.cxx:641 AliGenThermalPhotons.cxx:642 AliGenThermalPhotons.cxx:643 AliGenThermalPhotons.cxx:644 AliGenThermalPhotons.cxx:645 AliGenThermalPhotons.cxx:646 AliGenThermalPhotons.cxx:647 AliGenThermalPhotons.cxx:648 AliGenThermalPhotons.cxx:649 AliGenThermalPhotons.cxx:650 AliGenThermalPhotons.cxx:651 AliGenThermalPhotons.cxx:652 AliGenThermalPhotons.cxx:653 AliGenThermalPhotons.cxx:654 AliGenThermalPhotons.cxx:655