/*
$Log$
+Revision 1.1 2003/03/24 16:49:23 morsch
+Slow nucleon generator and model.
+
*/
/*
//
Int_t ngp, ngn, nbp, nbn;
- Float_t b = fCollisionGeometry->ImpactParameter();
- Int_t nn = fCollisionGeometry->NN();
- Int_t nwn = fCollisionGeometry->NwN();
- Int_t nnw = fCollisionGeometry->NNw();
- Int_t nwnw = fCollisionGeometry->NwNw();
-
- printf("AliGenSlowNucleons: Impact parameter from Collision Geometry %f %d %d %d %d\n",
- b, nn, nwn, nnw, nwnw);
-
- fSlowNucleonModel->GetNumberOfSlowNucleons(fCollisionGeometry, ngp, ngn, nbp, nbn);
-
- if (fDebug) {
- printf("nucleons %d %d %d %d \n", ngp, ngn, nbp, nbn);
-
- fDebugHist->Fill(Float_t(ngp + ngn + nbp + nbn), fCollisionGeometry->NwN(), 1.);
- }
-
+ if (fCollisionGeometry) {
+ Float_t b = fCollisionGeometry->ImpactParameter();
+ Int_t nn = fCollisionGeometry->NN();
+ Int_t nwn = fCollisionGeometry->NwN();
+ Int_t nnw = fCollisionGeometry->NNw();
+ Int_t nwnw = fCollisionGeometry->NwNw();
+
+ fSlowNucleonModel->GetNumberOfSlowNucleons(fCollisionGeometry, ngp, ngn, nbp, nbn);
+ if (fDebug) {
+ printf("Nucleons %d %d %d %d \n", fNgp, fNgn, fNbp, fNbn);
+ fDebugHist->Fill(Float_t(fNgp + fNgn + fNbp + fNbn), fCollisionGeometry->NwN(), 1.);
+ printf("AliGenSlowNucleons: Impact parameter from Collision Geometry %f %d %d %d %d\n",
+ b, nn, nwn, nnw, nwnw);
+ }
+ }
//
Float_t p[3];
//
fCharge = 1;
kf = kProton;
- for(i = 0; i < ngp; i++) {
+ for(i = 0; i < fNgp; i++) {
GenerateSlow(fCharge, fTemperatureG, fBetaSourceG, p);
SetTrack(fTrackIt, -1, kf, p, origin, polar,
0., kPNoProcess, nt, 1.);
//
fCharge = 0;
kf = kNeutron;
- for(i = 0; i < ngn; i++) {
+ for(i = 0; i < fNgn; i++) {
GenerateSlow(fCharge, fTemperatureG, fBetaSourceG, p);
SetTrack(fTrackIt, -1, kf, p, origin, polar,
0., kPNoProcess, nt, 1.);
//
fCharge = 1;
kf = kProton;
- for(i = 0; i < nbp; i++) {
+ for(i = 0; i < fNbp; i++) {
GenerateSlow(fCharge, fTemperatureB, fBetaSourceB, p);
SetTrack(fTrackIt, -1, kf, p, origin, polar,
0., kPNoProcess, nt, 1.);
//
fCharge = 0;
kf = kNeutron;
- for(i = 0; i < nbn; i++) {
+ for(i = 0; i < fNbn; i++) {
GenerateSlow(fCharge, fTemperatureB, fBetaSourceB, p);
SetTrack(fTrackIt, -1, kf, p, origin, polar,
0., kPNoProcess, nt, 1.);
virtual void SetCollisionGeometry(AliCollisionGeometry* geom)
{fCollisionGeometry = geom;}
virtual void SetDebug(Int_t flag = 0) {fDebug = flag;}
-
+ virtual void SetNumbersOfSlowNucleons(Int_t ngp, Int_t ngn, Int_t nbp, Int_t nbn)
+ {fNgp = ngp; fNgn = ngn; fNbp = nbp; fNbn = nbn;}
+
protected:
void GenerateSlow(Int_t charge, Double_t T, Double_t beta, Float_t* q);
Double_t Maxwell(Double_t m, Double_t p, Double_t t);
Float_t fBetaSourceG; // Source beta for gray nucleons
Float_t fTemperatureB; // Source Temperature for black nucleons
Float_t fBetaSourceB; // Source beta for black nucleons
+ Int_t fNgp; // Number of gray protons
+ Int_t fNgn; // Number of gray neutrons
+ Int_t fNbp; // Number of black protons
+ Int_t fNbn; // Number of black neutrons
Int_t fDebug; // Debug flag
TH2F* fDebugHist; // Histogram for debugging