Numbers of slow nucleons either from model or user set.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 25 Mar 2003 09:55:24 +0000 (09:55 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 25 Mar 2003 09:55:24 +0000 (09:55 +0000)
EVGEN/AliGenSlowNucleons.cxx
EVGEN/AliGenSlowNucleons.h

index ba03885..137746d 100644 (file)
@@ -15,6 +15,9 @@
 
 /*
 $Log$
+Revision 1.1  2003/03/24 16:49:23  morsch
+Slow nucleon generator and model.
+
 */
 
 /*
@@ -96,23 +99,21 @@ void AliGenSlowNucleons::Generate()
   // 
     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];
@@ -125,7 +126,7 @@ void AliGenSlowNucleons::Generate()
 //
     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.);
@@ -136,7 +137,7 @@ void AliGenSlowNucleons::Generate()
 //
     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.);
@@ -147,7 +148,7 @@ void AliGenSlowNucleons::Generate()
 //
     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.);
@@ -158,7 +159,7 @@ void AliGenSlowNucleons::Generate()
 //
     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.);
index aa48c3e..9ba2c63 100644 (file)
@@ -34,7 +34,9 @@ public:
     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);
@@ -51,6 +53,10 @@ public:
     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