#include <TDatabasePDG.h>
#include <TPDGCode.h>
#include <TH2F.h>
#include <TH1F.h>
#include <TF1.h>
#include <TCanvas.h>
#include <TParticle.h>
#include "AliConst.h"
#include "AliCollisionGeometry.h"
#include "AliStack.h"
#include "AliRun.h"
#include "AliMC.h"
#include "AliGenSlowNucleons.h"
#include "AliSlowNucleonModel.h"
ClassImp(AliGenSlowNucleons)
AliGenSlowNucleons::AliGenSlowNucleons()
:AliGenerator(-1),
fCMS(0.),
fMomentum(0.),
fBeta(0.),
fPmax (0.),
fCharge(0),
fProtonDirection(1.),
fTemperatureG(0.),
fBetaSourceG(0.),
fTemperatureB(0.),
fBetaSourceB(0.),
fNgp(0),
fNgn(0),
fNbp(0),
fNbn(0),
fDebug(0),
fDebugHist1(0),
fDebugHist2(0),
fThetaDistribution(),
fCosThetaGrayHist(),
fCosTheta(),
fBeamCrossingAngle(0.),
fBeamDivergence(0.),
fBeamDivEvent(0.),
fSmearMode(2),
fSlowNucleonModel(0)
{
fCollisionGeometry = 0;
}
AliGenSlowNucleons::AliGenSlowNucleons(Int_t npart)
:AliGenerator(npart),
fCMS(14000.),
fMomentum(0.),
fBeta(0.),
fPmax (10.),
fCharge(1),
fProtonDirection(1.),
fTemperatureG(0.05),
fBetaSourceG(0.05),
fTemperatureB(0.005),
fBetaSourceB(0.),
fNgp(0),
fNgn(0),
fNbp(0),
fNbn(0),
fDebug(0),
fDebugHist1(0),
fDebugHist2(0),
fThetaDistribution(),
fCosThetaGrayHist(),
fCosTheta(),
fBeamCrossingAngle(0.),
fBeamDivergence(0.),
fBeamDivEvent(0.),
fSmearMode(2),
fSlowNucleonModel(new AliSlowNucleonModel())
{
fName = "SlowNucleons";
fTitle = "Generator for gray particles in pA collisions";
fCollisionGeometry = 0;
}
AliGenSlowNucleons::~AliGenSlowNucleons()
{
delete fSlowNucleonModel;
}
void AliGenSlowNucleons::SetProtonDirection(Float_t dir) {
fProtonDirection = dir / TMath::Abs(dir);
}
void AliGenSlowNucleons::Init()
{
Double_t kMass = TDatabasePDG::Instance()->GetParticle(kProton)->Mass();
fMomentum = fCMS/2. * Float_t(fZTarget) / Float_t(fATarget);
fBeta = fMomentum / TMath::Sqrt(kMass * kMass + fMomentum * fMomentum);
if (fDebug) {
fDebugHist1 = new TH2F("DebugHist1", "nu vs N_slow", 100, 0., 100., 20, 0., 20.);
fDebugHist2 = new TH2F("DebugHist2", "b vs N_slow", 100, 0., 100., 15, 0., 15.);
fCosThetaGrayHist = new TH1F("fCosThetaGrayHist", "Gray particles angle", 100, -1., 1.);
}
if(fThetaDistribution != 0) {
fCosTheta = new TF1("fCosTheta",
"(2./3.14159265358979312)/(exp(2./3.14159265358979312)-exp(-2./3.14159265358979312))*exp(2.*x/3.14159265358979312)",
-1., 1.);
}
printf("\n AliGenSlowNucleons: applying crossing angle %f mrad to slow nucleons\n",fBeamCrossingAngle*1000.);
}
void AliGenSlowNucleons::FinishRun()
{
if (fDebug) {
TCanvas *c = new TCanvas("c","Canvas 1",400,10,600,700);
c->Divide(2,1);
c->cd(1);
fDebugHist1->Draw("colz");
c->cd(2);
fDebugHist2->Draw();
c->cd(3);
fCosThetaGrayHist->Draw();
}
}
void AliGenSlowNucleons::Generate()
{
if (fCollisionGeometry) {
Float_t b = fCollisionGeometry->ImpactParameter();
if(fSmearMode==0) fSlowNucleonModel->GetNumberOfSlowNucleons(fCollisionGeometry, fNgp, fNgn, fNbp, fNbn);
else if(fSmearMode==1) fSlowNucleonModel->GetNumberOfSlowNucleons2(fCollisionGeometry, fNgp, fNgn, fNbp, fNbn);
else if(fSmearMode==2) fSlowNucleonModel->GetNumberOfSlowNucleons2s(fCollisionGeometry, fNgp, fNgn, fNbp, fNbn);
if (fDebug) {
printf("Slow nucleons: %d grayp %d grayn %d blackp %d blackn \n", fNgp, fNgn, fNbp, fNbn);
fDebugHist1->Fill(Float_t(fNgp + fNgn + fNbp + fNbn), fCollisionGeometry->NNw(), 1.);
fDebugHist2->Fill(Float_t(fNgp + fNgn + fNbp + fNbn), b, 1.);
}
}
Float_t p[3] = {0., 0., 0.}, theta=0;
Float_t origin[3] = {0., 0., 0.};
Float_t time = 0.;
Float_t polar [3] = {0., 0., 0.};
Int_t nt, i, j;
Int_t kf;
Double_t rvec = gRandom->Gaus(0.0, 1.0);
fBeamDivEvent = fBeamDivergence * TMath::Abs(rvec);
printf("\n AliGenSlowNucleons: applying beam divergence %f mrad to slow nucleons\n",fBeamDivEvent*1000.);
if(fVertexSmear == kPerEvent) {
Vertex();
for (j=0; j < 3; j++) origin[j] = fVertex[j];
time = fTime;
}
fCharge = 1;
kf = kProton;
for(i = 0; i < fNgp; i++) {
GenerateSlow(fCharge, fTemperatureG, fBetaSourceG, p, theta);
if (fDebug) fCosThetaGrayHist->Fill(TMath::Cos(theta));
PushTrack(fTrackIt, -1, kf, p, origin, polar,
time, kPNoProcess, nt, 1.,-2);
KeepTrack(nt);
SetProcessID(nt,kGrayProcess);
}
fCharge = 0;
kf = kNeutron;
for(i = 0; i < fNgn; i++) {
GenerateSlow(fCharge, fTemperatureG, fBetaSourceG, p, theta);
if (fDebug) fCosThetaGrayHist->Fill(TMath::Cos(theta));
PushTrack(fTrackIt, -1, kf, p, origin, polar,
time, kPNoProcess, nt, 1.,-2);
KeepTrack(nt);
SetProcessID(nt,kGrayProcess);
}
fCharge = 1;
kf = kProton;
for(i = 0; i < fNbp; i++) {
GenerateSlow(fCharge, fTemperatureB, fBetaSourceB, p, theta);
PushTrack(fTrackIt, -1, kf, p, origin, polar,
time, kPNoProcess, nt, 1.,-1);
KeepTrack(nt);
SetProcessID(nt,kBlackProcess);
}
fCharge = 0;
kf = kNeutron;
for(i = 0; i < fNbn; i++) {
GenerateSlow(fCharge, fTemperatureB, fBetaSourceB, p, theta);
PushTrack(fTrackIt, -1, kf, p, origin, polar,
time, kPNoProcess, nt, 1.,-1);
KeepTrack(nt);
SetProcessID(nt,kBlackProcess);
}
}
void AliGenSlowNucleons::GenerateSlow(Int_t charge, Double_t T,
Double_t beta, Float_t* q, Float_t &theta)
{
Double_t m, pmax, p, f, phi;
TDatabasePDG * pdg = TDatabasePDG::Instance();
const Double_t kMassProton = pdg->GetParticle(kProton) ->Mass();
const Double_t kMassNeutron = pdg->GetParticle(kNeutron)->Mass();
if(charge == 0) m = kMassNeutron;
else m = kMassProton;
pmax = TMath::Sqrt(2*T*(T+TMath::Sqrt(T*T+m*m)));
do
{
p = Rndm() * fPmax;
f = Maxwell(m, p, T) / Maxwell(m , pmax, T);
}
while(f < Rndm());
if(beta==0 || fThetaDistribution==0) theta = TMath::ACos(2. * Rndm() - 1.);
else if(fThetaDistribution!=0){
Double_t costheta = fCosTheta->GetRandom();
theta = TMath::ACos(costheta);
}
phi = 2. * TMath::Pi() * Rndm();
q[0] = p * TMath::Sin(theta) * TMath::Cos(phi);
q[1] = p * TMath::Sin(theta) * TMath::Sin(phi);
q[2] = p * TMath::Cos(theta);
Lorentz(m, -beta, q);
Lorentz(m, fBeta, q);
q[2] *= fProtonDirection;
if(fDebug==1)printf("\n Momentum after LHC boost: p = (%f, %f, %f)\n",q[0],q[1],q[2]);
if(fBeamCrossingAngle>0.) BeamCrossDivergence(1, q);
if(fBeamDivergence>0.) BeamCrossDivergence(2, q);
}
Double_t AliGenSlowNucleons::Maxwell(Double_t m, Double_t p, Double_t T)
{
Double_t ekin;
ekin = TMath::Sqrt(p*p+m*m)-m;
return (p*p * exp(-ekin/T));
}
void AliGenSlowNucleons::Lorentz(Double_t m, Double_t beta, Float_t* q)
{
Double_t gamma = 1./TMath::Sqrt((1.-beta)*(1.+beta));
Double_t energy = TMath::Sqrt(m*m + q[0]*q[0] + q[1]*q[1] + q[2]*q[2]);
q[2] = gamma * (q[2] + beta*energy);
}
void AliGenSlowNucleons::BeamCrossDivergence(Int_t iwhat, Float_t *pLab)
{
Double_t pmod = TMath::Sqrt(pLab[0]*pLab[0]+pLab[1]*pLab[1]+pLab[2]*pLab[2]);
Double_t tetdiv = 0.;
Double_t fidiv = 0.;
if(iwhat==1){
tetdiv = fBeamCrossingAngle;
fidiv = k2PI/4.;
}
else if(iwhat==2){
tetdiv = fBeamDivEvent;
fidiv = (gRandom->Rndm())*k2PI;
}
Double_t tetpart = TMath::ATan2(TMath::Sqrt(pLab[0]*pLab[0]+pLab[1]*pLab[1]), pLab[2]);
Double_t fipart=0.;
if(TMath::Abs(pLab[1])>0. || TMath::Abs(pLab[0])>0.) fipart = TMath::ATan2(pLab[1], pLab[0]);
if(fipart<0.) {fipart = fipart+k2PI;}
tetdiv = tetdiv*kRaddeg;
fidiv = fidiv*kRaddeg;
tetpart = tetpart*kRaddeg;
fipart = fipart*kRaddeg;
Double_t angleSum[2]={0., 0.};
AddAngle(tetpart,fipart,tetdiv,fidiv,angleSum);
Double_t tetsum = angleSum[0];
Double_t fisum = angleSum[1];
tetsum = tetsum*kDegrad;
fisum = fisum*kDegrad;
pLab[0] = pmod*TMath::Sin(tetsum)*TMath::Cos(fisum);
pLab[1] = pmod*TMath::Sin(tetsum)*TMath::Sin(fisum);
pLab[2] = pmod*TMath::Cos(tetsum);
if(fDebug==1){
if(iwhat==1) printf(" Beam crossing angle %f mrad ", fBeamCrossingAngle*1000.);
else if(iwhat==2) printf(" Beam divergence %f mrad ", fBeamDivEvent*1000.);
printf(" p = (%f, %f, %f)\n",pLab[0],pLab[1],pLab[2]);
}
}
void AliGenSlowNucleons::AddAngle(Double_t theta1, Double_t phi1,
Double_t theta2, Double_t phi2, Double_t *angleSum)
{
Double_t temp = -1.;
Double_t conv = 180./TMath::ACos(temp);
Double_t ct1 = TMath::Cos(theta1/conv);
Double_t st1 = TMath::Sin(theta1/conv);
Double_t cp1 = TMath::Cos(phi1/conv);
Double_t sp1 = TMath::Sin(phi1/conv);
Double_t ct2 = TMath::Cos(theta2/conv);
Double_t st2 = TMath::Sin(theta2/conv);
Double_t cp2 = TMath::Cos(phi2/conv);
Double_t sp2 = TMath::Sin(phi2/conv);
Double_t cx = ct1*cp1*st2*cp2+st1*cp1*ct2-sp1*st2*sp2;
Double_t cy = ct1*sp1*st2*cp2+st1*sp1*ct2+cp1*st2*sp2;
Double_t cz = ct1*ct2-st1*st2*cp2;
Double_t rtetsum = TMath::ACos(cz);
Double_t tetsum = conv*rtetsum;
if(TMath::Abs(tetsum)<1e-4 || tetsum==180.) return;
temp = cx/TMath::Sin(rtetsum);
if(temp>1.) temp=1.;
if(temp<-1.) temp=-1.;
Double_t fisum = conv*TMath::ACos(temp);
if(cy<0) {fisum = 360.-fisum;}
angleSum[0] = tetsum;
angleSum[1] = fisum;
}
void AliGenSlowNucleons::SetProcessID(Int_t nt, UInt_t process)
{
if (fStack)
fStack->Particle(nt)->SetUniqueID(process);
else
gAlice->GetMCApp()->Particle(nt)->SetUniqueID(process);
}
AliGenSlowNucleons.cxx:10 AliGenSlowNucleons.cxx:11 AliGenSlowNucleons.cxx:12 AliGenSlowNucleons.cxx:13 AliGenSlowNucleons.cxx:14 AliGenSlowNucleons.cxx:15 AliGenSlowNucleons.cxx:16 AliGenSlowNucleons.cxx:17 AliGenSlowNucleons.cxx:18 AliGenSlowNucleons.cxx:19 AliGenSlowNucleons.cxx:20 AliGenSlowNucleons.cxx:21 AliGenSlowNucleons.cxx:22 AliGenSlowNucleons.cxx:23 AliGenSlowNucleons.cxx:24 AliGenSlowNucleons.cxx:25 AliGenSlowNucleons.cxx:26 AliGenSlowNucleons.cxx:27 AliGenSlowNucleons.cxx:28 AliGenSlowNucleons.cxx:29 AliGenSlowNucleons.cxx:30 AliGenSlowNucleons.cxx:31 AliGenSlowNucleons.cxx:32 AliGenSlowNucleons.cxx:33 AliGenSlowNucleons.cxx:34 AliGenSlowNucleons.cxx:35 AliGenSlowNucleons.cxx:36 AliGenSlowNucleons.cxx:37 AliGenSlowNucleons.cxx:38 AliGenSlowNucleons.cxx:39 AliGenSlowNucleons.cxx:40 AliGenSlowNucleons.cxx:41 AliGenSlowNucleons.cxx:42 AliGenSlowNucleons.cxx:43 AliGenSlowNucleons.cxx:44 AliGenSlowNucleons.cxx:45 AliGenSlowNucleons.cxx:46 AliGenSlowNucleons.cxx:47 AliGenSlowNucleons.cxx:48 AliGenSlowNucleons.cxx:49 AliGenSlowNucleons.cxx:50 AliGenSlowNucleons.cxx:51 AliGenSlowNucleons.cxx:52 AliGenSlowNucleons.cxx:53 AliGenSlowNucleons.cxx:54 AliGenSlowNucleons.cxx:55 AliGenSlowNucleons.cxx:56 AliGenSlowNucleons.cxx:57 AliGenSlowNucleons.cxx:58 AliGenSlowNucleons.cxx:59 AliGenSlowNucleons.cxx:60 AliGenSlowNucleons.cxx:61 AliGenSlowNucleons.cxx:62 AliGenSlowNucleons.cxx:63 AliGenSlowNucleons.cxx:64 AliGenSlowNucleons.cxx:65 AliGenSlowNucleons.cxx:66 AliGenSlowNucleons.cxx:67 AliGenSlowNucleons.cxx:68 AliGenSlowNucleons.cxx:69 AliGenSlowNucleons.cxx:70 AliGenSlowNucleons.cxx:71 AliGenSlowNucleons.cxx:72 AliGenSlowNucleons.cxx:73 AliGenSlowNucleons.cxx:74 AliGenSlowNucleons.cxx:75 AliGenSlowNucleons.cxx:76 AliGenSlowNucleons.cxx:77 AliGenSlowNucleons.cxx:78 AliGenSlowNucleons.cxx:79 AliGenSlowNucleons.cxx:80 AliGenSlowNucleons.cxx:81 AliGenSlowNucleons.cxx:82 AliGenSlowNucleons.cxx:83 AliGenSlowNucleons.cxx:84 AliGenSlowNucleons.cxx:85 AliGenSlowNucleons.cxx:86 AliGenSlowNucleons.cxx:87 AliGenSlowNucleons.cxx:88 AliGenSlowNucleons.cxx:89 AliGenSlowNucleons.cxx:90 AliGenSlowNucleons.cxx:91 AliGenSlowNucleons.cxx:92 AliGenSlowNucleons.cxx:93 AliGenSlowNucleons.cxx:94 AliGenSlowNucleons.cxx:95 AliGenSlowNucleons.cxx:96 AliGenSlowNucleons.cxx:97 AliGenSlowNucleons.cxx:98 AliGenSlowNucleons.cxx:99 AliGenSlowNucleons.cxx:100 AliGenSlowNucleons.cxx:101 AliGenSlowNucleons.cxx:102 AliGenSlowNucleons.cxx:103 AliGenSlowNucleons.cxx:104 AliGenSlowNucleons.cxx:105 AliGenSlowNucleons.cxx:106 AliGenSlowNucleons.cxx:107 AliGenSlowNucleons.cxx:108 AliGenSlowNucleons.cxx:109 AliGenSlowNucleons.cxx:110 AliGenSlowNucleons.cxx:111 AliGenSlowNucleons.cxx:112 AliGenSlowNucleons.cxx:113 AliGenSlowNucleons.cxx:114 AliGenSlowNucleons.cxx:115 AliGenSlowNucleons.cxx:116 AliGenSlowNucleons.cxx:117 AliGenSlowNucleons.cxx:118 AliGenSlowNucleons.cxx:119 AliGenSlowNucleons.cxx:120 AliGenSlowNucleons.cxx:121 AliGenSlowNucleons.cxx:122 AliGenSlowNucleons.cxx:123 AliGenSlowNucleons.cxx:124 AliGenSlowNucleons.cxx:125 AliGenSlowNucleons.cxx:126 AliGenSlowNucleons.cxx:127 AliGenSlowNucleons.cxx:128 AliGenSlowNucleons.cxx:129 AliGenSlowNucleons.cxx:130 AliGenSlowNucleons.cxx:131 AliGenSlowNucleons.cxx:132 AliGenSlowNucleons.cxx:133 AliGenSlowNucleons.cxx:134 AliGenSlowNucleons.cxx:135 AliGenSlowNucleons.cxx:136 AliGenSlowNucleons.cxx:137 AliGenSlowNucleons.cxx:138 AliGenSlowNucleons.cxx:139 AliGenSlowNucleons.cxx:140 AliGenSlowNucleons.cxx:141 AliGenSlowNucleons.cxx:142 AliGenSlowNucleons.cxx:143 AliGenSlowNucleons.cxx:144 AliGenSlowNucleons.cxx:145 AliGenSlowNucleons.cxx:146 AliGenSlowNucleons.cxx:147 AliGenSlowNucleons.cxx:148 AliGenSlowNucleons.cxx:149 AliGenSlowNucleons.cxx:150 AliGenSlowNucleons.cxx:151 AliGenSlowNucleons.cxx:152 AliGenSlowNucleons.cxx:153 AliGenSlowNucleons.cxx:154 AliGenSlowNucleons.cxx:155 AliGenSlowNucleons.cxx:156 AliGenSlowNucleons.cxx:157 AliGenSlowNucleons.cxx:158 AliGenSlowNucleons.cxx:159 AliGenSlowNucleons.cxx:160 AliGenSlowNucleons.cxx:161 AliGenSlowNucleons.cxx:162 AliGenSlowNucleons.cxx:163 AliGenSlowNucleons.cxx:164 AliGenSlowNucleons.cxx:165 AliGenSlowNucleons.cxx:166 AliGenSlowNucleons.cxx:167 AliGenSlowNucleons.cxx:168 AliGenSlowNucleons.cxx:169 AliGenSlowNucleons.cxx:170 AliGenSlowNucleons.cxx:171 AliGenSlowNucleons.cxx:172 AliGenSlowNucleons.cxx:173 AliGenSlowNucleons.cxx:174 AliGenSlowNucleons.cxx:175 AliGenSlowNucleons.cxx:176 AliGenSlowNucleons.cxx:177 AliGenSlowNucleons.cxx:178 AliGenSlowNucleons.cxx:179 AliGenSlowNucleons.cxx:180 AliGenSlowNucleons.cxx:181 AliGenSlowNucleons.cxx:182 AliGenSlowNucleons.cxx:183 AliGenSlowNucleons.cxx:184 AliGenSlowNucleons.cxx:185 AliGenSlowNucleons.cxx:186 AliGenSlowNucleons.cxx:187 AliGenSlowNucleons.cxx:188 AliGenSlowNucleons.cxx:189 AliGenSlowNucleons.cxx:190 AliGenSlowNucleons.cxx:191 AliGenSlowNucleons.cxx:192 AliGenSlowNucleons.cxx:193 AliGenSlowNucleons.cxx:194 AliGenSlowNucleons.cxx:195 AliGenSlowNucleons.cxx:196 AliGenSlowNucleons.cxx:197 AliGenSlowNucleons.cxx:198 AliGenSlowNucleons.cxx:199 AliGenSlowNucleons.cxx:200 AliGenSlowNucleons.cxx:201 AliGenSlowNucleons.cxx:202 AliGenSlowNucleons.cxx:203 AliGenSlowNucleons.cxx:204 AliGenSlowNucleons.cxx:205 AliGenSlowNucleons.cxx:206 AliGenSlowNucleons.cxx:207 AliGenSlowNucleons.cxx:208 AliGenSlowNucleons.cxx:209 AliGenSlowNucleons.cxx:210 AliGenSlowNucleons.cxx:211 AliGenSlowNucleons.cxx:212 AliGenSlowNucleons.cxx:213 AliGenSlowNucleons.cxx:214 AliGenSlowNucleons.cxx:215 AliGenSlowNucleons.cxx:216 AliGenSlowNucleons.cxx:217 AliGenSlowNucleons.cxx:218 AliGenSlowNucleons.cxx:219 AliGenSlowNucleons.cxx:220 AliGenSlowNucleons.cxx:221 AliGenSlowNucleons.cxx:222 AliGenSlowNucleons.cxx:223 AliGenSlowNucleons.cxx:224 AliGenSlowNucleons.cxx:225 AliGenSlowNucleons.cxx:226 AliGenSlowNucleons.cxx:227 AliGenSlowNucleons.cxx:228 AliGenSlowNucleons.cxx:229 AliGenSlowNucleons.cxx:230 AliGenSlowNucleons.cxx:231 AliGenSlowNucleons.cxx:232 AliGenSlowNucleons.cxx:233 AliGenSlowNucleons.cxx:234 AliGenSlowNucleons.cxx:235 AliGenSlowNucleons.cxx:236 AliGenSlowNucleons.cxx:237 AliGenSlowNucleons.cxx:238 AliGenSlowNucleons.cxx:239 AliGenSlowNucleons.cxx:240 AliGenSlowNucleons.cxx:241 AliGenSlowNucleons.cxx:242 AliGenSlowNucleons.cxx:243 AliGenSlowNucleons.cxx:244 AliGenSlowNucleons.cxx:245 AliGenSlowNucleons.cxx:246 AliGenSlowNucleons.cxx:247 AliGenSlowNucleons.cxx:248 AliGenSlowNucleons.cxx:249 AliGenSlowNucleons.cxx:250 AliGenSlowNucleons.cxx:251 AliGenSlowNucleons.cxx:252 AliGenSlowNucleons.cxx:253 AliGenSlowNucleons.cxx:254 AliGenSlowNucleons.cxx:255 AliGenSlowNucleons.cxx:256 AliGenSlowNucleons.cxx:257 AliGenSlowNucleons.cxx:258 AliGenSlowNucleons.cxx:259 AliGenSlowNucleons.cxx:260 AliGenSlowNucleons.cxx:261 AliGenSlowNucleons.cxx:262 AliGenSlowNucleons.cxx:263 AliGenSlowNucleons.cxx:264 AliGenSlowNucleons.cxx:265 AliGenSlowNucleons.cxx:266 AliGenSlowNucleons.cxx:267 AliGenSlowNucleons.cxx:268 AliGenSlowNucleons.cxx:269 AliGenSlowNucleons.cxx:270 AliGenSlowNucleons.cxx:271 AliGenSlowNucleons.cxx:272 AliGenSlowNucleons.cxx:273 AliGenSlowNucleons.cxx:274 AliGenSlowNucleons.cxx:275 AliGenSlowNucleons.cxx:276 AliGenSlowNucleons.cxx:277 AliGenSlowNucleons.cxx:278 AliGenSlowNucleons.cxx:279 AliGenSlowNucleons.cxx:280 AliGenSlowNucleons.cxx:281 AliGenSlowNucleons.cxx:282 AliGenSlowNucleons.cxx:283 AliGenSlowNucleons.cxx:284 AliGenSlowNucleons.cxx:285 AliGenSlowNucleons.cxx:286 AliGenSlowNucleons.cxx:287 AliGenSlowNucleons.cxx:288 AliGenSlowNucleons.cxx:289 AliGenSlowNucleons.cxx:290 AliGenSlowNucleons.cxx:291 AliGenSlowNucleons.cxx:292 AliGenSlowNucleons.cxx:293 AliGenSlowNucleons.cxx:294 AliGenSlowNucleons.cxx:295 AliGenSlowNucleons.cxx:296 AliGenSlowNucleons.cxx:297 AliGenSlowNucleons.cxx:298 AliGenSlowNucleons.cxx:299 AliGenSlowNucleons.cxx:300 AliGenSlowNucleons.cxx:301 AliGenSlowNucleons.cxx:302 AliGenSlowNucleons.cxx:303 AliGenSlowNucleons.cxx:304 AliGenSlowNucleons.cxx:305 AliGenSlowNucleons.cxx:306 AliGenSlowNucleons.cxx:307 AliGenSlowNucleons.cxx:308 AliGenSlowNucleons.cxx:309 AliGenSlowNucleons.cxx:310 AliGenSlowNucleons.cxx:311 AliGenSlowNucleons.cxx:312 AliGenSlowNucleons.cxx:313 AliGenSlowNucleons.cxx:314 AliGenSlowNucleons.cxx:315 AliGenSlowNucleons.cxx:316 AliGenSlowNucleons.cxx:317 AliGenSlowNucleons.cxx:318 AliGenSlowNucleons.cxx:319 AliGenSlowNucleons.cxx:320 AliGenSlowNucleons.cxx:321 AliGenSlowNucleons.cxx:322 AliGenSlowNucleons.cxx:323 AliGenSlowNucleons.cxx:324 AliGenSlowNucleons.cxx:325 AliGenSlowNucleons.cxx:326 AliGenSlowNucleons.cxx:327 AliGenSlowNucleons.cxx:328 AliGenSlowNucleons.cxx:329 AliGenSlowNucleons.cxx:330 AliGenSlowNucleons.cxx:331 AliGenSlowNucleons.cxx:332 AliGenSlowNucleons.cxx:333 AliGenSlowNucleons.cxx:334 AliGenSlowNucleons.cxx:335 AliGenSlowNucleons.cxx:336 AliGenSlowNucleons.cxx:337 AliGenSlowNucleons.cxx:338 AliGenSlowNucleons.cxx:339 AliGenSlowNucleons.cxx:340 AliGenSlowNucleons.cxx:341 AliGenSlowNucleons.cxx:342 AliGenSlowNucleons.cxx:343 AliGenSlowNucleons.cxx:344 AliGenSlowNucleons.cxx:345 AliGenSlowNucleons.cxx:346 AliGenSlowNucleons.cxx:347 AliGenSlowNucleons.cxx:348 AliGenSlowNucleons.cxx:349 AliGenSlowNucleons.cxx:350 AliGenSlowNucleons.cxx:351 AliGenSlowNucleons.cxx:352 AliGenSlowNucleons.cxx:353 AliGenSlowNucleons.cxx:354 AliGenSlowNucleons.cxx:355 AliGenSlowNucleons.cxx:356 AliGenSlowNucleons.cxx:357 AliGenSlowNucleons.cxx:358 AliGenSlowNucleons.cxx:359 AliGenSlowNucleons.cxx:360 AliGenSlowNucleons.cxx:361 AliGenSlowNucleons.cxx:362 AliGenSlowNucleons.cxx:363 AliGenSlowNucleons.cxx:364 AliGenSlowNucleons.cxx:365 AliGenSlowNucleons.cxx:366 AliGenSlowNucleons.cxx:367 AliGenSlowNucleons.cxx:368 AliGenSlowNucleons.cxx:369 AliGenSlowNucleons.cxx:370 AliGenSlowNucleons.cxx:371 AliGenSlowNucleons.cxx:372 AliGenSlowNucleons.cxx:373 AliGenSlowNucleons.cxx:374 AliGenSlowNucleons.cxx:375 AliGenSlowNucleons.cxx:376 AliGenSlowNucleons.cxx:377 AliGenSlowNucleons.cxx:378 AliGenSlowNucleons.cxx:379 AliGenSlowNucleons.cxx:380 AliGenSlowNucleons.cxx:381 AliGenSlowNucleons.cxx:382 AliGenSlowNucleons.cxx:383 AliGenSlowNucleons.cxx:384 AliGenSlowNucleons.cxx:385 AliGenSlowNucleons.cxx:386 AliGenSlowNucleons.cxx:387 AliGenSlowNucleons.cxx:388 AliGenSlowNucleons.cxx:389 AliGenSlowNucleons.cxx:390 AliGenSlowNucleons.cxx:391 AliGenSlowNucleons.cxx:392 AliGenSlowNucleons.cxx:393 AliGenSlowNucleons.cxx:394 AliGenSlowNucleons.cxx:395 AliGenSlowNucleons.cxx:396 AliGenSlowNucleons.cxx:397 AliGenSlowNucleons.cxx:398 AliGenSlowNucleons.cxx:399 AliGenSlowNucleons.cxx:400 AliGenSlowNucleons.cxx:401 AliGenSlowNucleons.cxx:402 AliGenSlowNucleons.cxx:403 AliGenSlowNucleons.cxx:404 AliGenSlowNucleons.cxx:405 AliGenSlowNucleons.cxx:406 AliGenSlowNucleons.cxx:407 AliGenSlowNucleons.cxx:408 AliGenSlowNucleons.cxx:409 AliGenSlowNucleons.cxx:410 AliGenSlowNucleons.cxx:411 AliGenSlowNucleons.cxx:412 AliGenSlowNucleons.cxx:413 AliGenSlowNucleons.cxx:414 AliGenSlowNucleons.cxx:415 AliGenSlowNucleons.cxx:416 AliGenSlowNucleons.cxx:417 AliGenSlowNucleons.cxx:418 AliGenSlowNucleons.cxx:419 AliGenSlowNucleons.cxx:420 AliGenSlowNucleons.cxx:421 AliGenSlowNucleons.cxx:422 AliGenSlowNucleons.cxx:423 AliGenSlowNucleons.cxx:424 AliGenSlowNucleons.cxx:425 AliGenSlowNucleons.cxx:426 AliGenSlowNucleons.cxx:427 AliGenSlowNucleons.cxx:428 AliGenSlowNucleons.cxx:429 AliGenSlowNucleons.cxx:430 AliGenSlowNucleons.cxx:431 AliGenSlowNucleons.cxx:432 AliGenSlowNucleons.cxx:433 AliGenSlowNucleons.cxx:434 AliGenSlowNucleons.cxx:435 AliGenSlowNucleons.cxx:436 AliGenSlowNucleons.cxx:437 AliGenSlowNucleons.cxx:438 AliGenSlowNucleons.cxx:439 AliGenSlowNucleons.cxx:440 AliGenSlowNucleons.cxx:441 AliGenSlowNucleons.cxx:442 AliGenSlowNucleons.cxx:443 AliGenSlowNucleons.cxx:444 AliGenSlowNucleons.cxx:445 AliGenSlowNucleons.cxx:446 AliGenSlowNucleons.cxx:447 AliGenSlowNucleons.cxx:448 AliGenSlowNucleons.cxx:449 AliGenSlowNucleons.cxx:450