Saturation added.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 6 Jun 2012 13:25:25 +0000 (13:25 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 6 Jun 2012 13:25:25 +0000 (13:25 +0000)
Chiara Oppedisano <Chiara.Oppedisano@to.infn.it>

EVGEN/AliGenSlowNucleons.cxx
EVGEN/AliGenSlowNucleons.h
EVGEN/AliSlowNucleonModelExp.cxx
EVGEN/AliSlowNucleonModelExp.h

index 494dfbe..037054b 100644 (file)
@@ -74,9 +74,9 @@ AliGenSlowNucleons::AliGenSlowNucleons(Int_t npart)
      fPmax (10.),
      fCharge(1),
      fProtonDirection(1.),
-     fTemperatureG(0.04), 
+     fTemperatureG(0.05), 
      fBetaSourceG(0.05),
-     fTemperatureB(0.004),
+     fTemperatureB(0.005),
      fBetaSourceB(0.),
      fNgp(0),
      fNgn(0),
@@ -158,18 +158,17 @@ void AliGenSlowNucleons::Generate()
   // 
     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();
+       //      Int_t  nn   = fCollisionGeometry->NN();
+       //      Int_t  nwn  = fCollisionGeometry->NwN();
+       //      Int_t  nnw  = fCollisionGeometry->NNw();
+       //      Int_t  nwnw = fCollisionGeometry->NwNw();
 
        fSlowNucleonModel->GetNumberOfSlowNucleons(fCollisionGeometry, fNgp, fNgn, fNbp, fNbn);
        if (fDebug) {
-           printf("Nucleons %d %d %d %d \n", fNgp, fNgn, fNbp, fNbn);
+           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->NwN(), 1.);
            fDebugHist2->Fill(Float_t(fNgp + fNgn + fNbp + fNbn), b, 1.);
-           printf("AliGenSlowNucleons: Impact parameter from Collision Geometry %f %d %d %d %d\n", 
-                  b, nn, nwn, nnw, nwnw);
+           //printf("AliGenSlowNucleons: Impact parameter from Collision Geometry %f %d %d %d %d\n", b, nn, nwn, nnw, nwnw);
        }
     }     
 
@@ -247,6 +246,8 @@ void AliGenSlowNucleons::GenerateSlow(Int_t charge, Double_t T,
    Three-momentum [GeV/c] is given back in q[3]    
 */
 
+ //printf("Generating slow nuc. with: charge %d. temp. %1.3f, beta %1.2f\n",charge,T,beta);
  Double_t m, pmax, p, f, phi;
  TDatabasePDG * pdg = TDatabasePDG::Instance();
  const Double_t kMassProton  = pdg->GetParticle(kProton) ->Mass();
@@ -312,3 +313,4 @@ void AliGenSlowNucleons::Lorentz(Double_t m, Double_t beta, Float_t* q)
     Double_t energy = sqrt(m*m + q[0]*q[0] + q[1]*q[1] + q[2]*q[2]);
     q[2] = gamma * (q[2] + beta*energy);
 }
+
index 73835cf..24c3820 100644 (file)
@@ -47,6 +47,11 @@ public:
     //
     // Added by Chiara to take into account angular distribution 4 gray tracks
     virtual void   SetThetaDist(Int_t flag=0) {fThetaDistribution = flag;}
+    //
+    virtual Int_t  GetNGrayProtons()   {return fNgp;}
+    virtual Int_t  GetNGrayNeutrons()  {return fNgn;}
+    virtual Int_t  GetNBlackProtons()  {return fNbp;}
+    virtual Int_t  GetNBlackNeutrons() {return fNbn;}    
     
  protected:
     void     GenerateSlow(Int_t charge, Double_t T, Double_t beta, Float_t* q, Float_t &theta);
@@ -91,3 +96,4 @@ public:
 
 
 
+
index f61cdf1..d597893 100644 (file)
@@ -34,7 +34,10 @@ AliSlowNucleonModelExp::AliSlowNucleonModelExp():
     fP(82),
     fN (208 - 82),
     fAlphaGray(2.),
-    fAlphaBlack(4.)
+    fAlphaBlack(4.),
+    fApplySaturation(kTRUE),
+    fnGraySaturation(15),
+    fnBlackSaturation(28)
 {
   //
   // Default constructor
@@ -59,7 +62,9 @@ void AliSlowNucleonModelExp::GetNumberOfSlowNucleons(AliCollisionGeometry* geo,
     Float_t nGrayProtons  = nGray - nGrayNeutrons;
 
 // Mean number of black nucleons 
-    Float_t nBlack         = fAlphaBlack * nu;
+    Float_t nBlack  = 0.;
+    if(!fApplySaturation || (fApplySaturation && nGray<fnGraySaturation)) nBlack = fAlphaBlack * nu;
+    else if(fApplySaturation && nGray>=fnGraySaturation) nBlack = fnBlackSaturation;
     Float_t nBlackNeutrons = nBlack * fN / (fN + fP);
     Float_t nBlackProtons  = nBlack - nBlackNeutrons;
 
@@ -90,3 +95,4 @@ void AliSlowNucleonModelExp::SetParameters(Float_t alpha1, Float_t alpha2)
     fAlphaGray  = alpha1;
     fAlphaBlack = alpha2;
 }
+
index d94f79a..d49e0ae 100644 (file)
@@ -23,14 +23,20 @@ class AliSlowNucleonModelExp : public AliSlowNucleonModel
     virtual void GetNumberOfSlowNucleons(AliCollisionGeometry* geo,
                                         Int_t& ngp, Int_t& ngn, Int_t& nbp, Int_t& nbn) const;
     virtual void SetParameters(Float_t alpha1, Float_t alpha2);
+    virtual void SetSaturation(Bool_t saturation) {fApplySaturation = saturation;}
+    virtual void SetSaturationParams(Float_t ngray=15, Float_t nblack=28) 
+               {fnGraySaturation=ngray; fnBlackSaturation=nblack;}
     
  protected:
     Float_t  fP;          // Number of protons  in the target 
     Float_t  fN;          // Number of neutrons in the target
     Float_t  fAlphaGray;  // Proportionality between gray   particles and number of collisions
     Float_t  fAlphaBlack; // Proportionality between black  particles and number of collisions
+    Bool_t   fApplySaturation;  // If true apply satoration to N_black vs. N_gray
+    Int_t    fnGraySaturation;  // N_gray value for N_black saturation
+    Int_t    fnBlackSaturation; // N_black saturation value
     
-  ClassDef(AliSlowNucleonModelExp,1) // Gray Particle Model (Experiment inspired)
+  ClassDef(AliSlowNucleonModelExp,2) // Gray Particle Model (Experiment inspired)
 };
 #endif
 
@@ -39,3 +45,4 @@ class AliSlowNucleonModelExp : public AliSlowNucleonModel
 
 
 
+