#include "AliConst.h"
#include "AliCollisionGeometry.h"
#include "AliStack.h"
+#include "AliRun.h"
+#include "AliMC.h"
#include "AliGenSlowNucleons.h"
#include "AliSlowNucleonModel.h"
fBeamCrossingAngle(0.),
fBeamDivergence(0.),
fBeamDivEvent(0.),
+ fSmearMode(2),
fSlowNucleonModel(0)
{
// Default constructor
fBeamCrossingAngle(0.),
fBeamDivergence(0.),
fBeamDivEvent(0.),
+ fSmearMode(2),
fSlowNucleonModel(new AliSlowNucleonModel())
{
// Int_t nnw = fCollisionGeometry->NNw();
// Int_t nwnw = fCollisionGeometry->NwNw();
- //fSlowNucleonModel->GetNumberOfSlowNucleons(fCollisionGeometry, fNgp, fNgn, fNbp, fNbn);
- fSlowNucleonModel->GetNumberOfSlowNucleons2(fCollisionGeometry, fNgp, fNgn, fNbp, fNbn);
+ // (1) Sikler' model
+ if(fSmearMode==0) fSlowNucleonModel->GetNumberOfSlowNucleons(fCollisionGeometry, fNgp, fNgn, fNbp, fNbn);
+ // (2) Model inspired on exp. data at lower energy (Gallio-Oppedisano)
+ // --- smearing the Ncoll fron generator used as input
+ else if(fSmearMode==1) fSlowNucleonModel->GetNumberOfSlowNucleons2(fCollisionGeometry, fNgp, fNgn, fNbp, fNbn);
+ // --- smearing directly Nslow
+ else if(fSmearMode==2) fSlowNucleonModel->GetNumberOfSlowNucleons2s(fCollisionGeometry, fNgp, fNgn, fNbp, fNbn);
if (fDebug) {
//printf("Collision Geometry %f %d %d %d %d\n", b, nn, nwn, nnw, nwnw);
printf("Slow nucleons: %d grayp %d grayn %d blackp %d blackn \n", fNgp, fNgn, fNbp, fNbn);
PushTrack(fTrackIt, -1, kf, p, origin, polar,
time, kPNoProcess, nt, 1.,-2);
KeepTrack(nt);
- GetStack()->Particle(nt)->SetUniqueID(kGrayProcess);
+ SetProcessID(nt,kGrayProcess);
}
//
// Gray neutrons
PushTrack(fTrackIt, -1, kf, p, origin, polar,
time, kPNoProcess, nt, 1.,-2);
KeepTrack(nt);
- GetStack()->Particle(nt)->SetUniqueID(kGrayProcess);
+ SetProcessID(nt,kGrayProcess);
}
//
// Black protons
PushTrack(fTrackIt, -1, kf, p, origin, polar,
time, kPNoProcess, nt, 1.,-1);
KeepTrack(nt);
- GetStack()->Particle(nt)->SetUniqueID(kBlackProcess);
+ SetProcessID(nt,kBlackProcess);
}
//
// Black neutrons
PushTrack(fTrackIt, -1, kf, p, origin, polar,
time, kPNoProcess, nt, 1.,-1);
KeepTrack(nt);
- GetStack()->Particle(nt)->SetUniqueID(kBlackProcess);
+ SetProcessID(nt,kBlackProcess);
}
}
angleSum[1] = fisum;
}
+//_____________________________________________________________________________
+void AliGenSlowNucleons::SetProcessID(Int_t nt, UInt_t process)
+{
+ // Tag the particle as
+ // gray or black
+ if (fStack)
+ fStack->Particle(nt)->SetUniqueID(process);
+ else
+ gAlice->GetMCApp()->Particle(nt)->SetUniqueID(process);
+}