Adding setter in order to steer the generator from Config.C (Chiara)
authorcvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 20 Jun 2013 09:07:54 +0000 (09:07 +0000)
committercvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 20 Jun 2013 09:07:54 +0000 (09:07 +0000)
EVGEN/AliSlowNucleonModelExp.cxx
EVGEN/AliSlowNucleonModelExp.h

index 5b73473..cf67684 100644 (file)
@@ -38,15 +38,20 @@ AliSlowNucleonModelExp::AliSlowNucleonModelExp():
     fAlphaBlack(3.6),
     fApplySaturation(kTRUE),
     fnGraySaturation(15),
-    fnBlackSaturation(28)
+    fnBlackSaturation(28),
+    fLCPparam(0.585)
 {
   //
   // Default constructor
   //
   //
-  printf("\n\nInitializing slow nucleon model with parameters:\n");
+  fSlownparam[0] = 60.;
+  fSlownparam[1] = 469.2;
+  fSlownparam[2] = 8.762;
+  printf("\n\n ******** Initializing slow nucleon model with parameters:\n");
   printf(" \t alpha_{gray} %1.2f  alpha_{black} %1.2f\n",fAlphaGray, fAlphaBlack);
-  //printf(" \t SATURATION %d w. %d (gray) %d (black) \n\n",fApplySaturation,fnGraySaturation,fnBlackSaturation);
+  printf(" \t SATURATION %d w. %d (gray) %d (black) \n\n",fApplySaturation,fnGraySaturation,fnBlackSaturation);
+  printf(" \t LCP parameter %f   Slown parameters = {%f, %f, %f}\n\n",fLCPparam,fSlownparam[0],fSlownparam[1],fSlownparam[2]); 
 }
 
 
@@ -134,20 +139,21 @@ void AliSlowNucleonModelExp::GetNumberOfSlowNucleons2(AliCollisionGeometry* geo,
       nBlackp  = blackovergray*nGrayp; 
     }
     
+    //printf(" \t Using LCP parameter %f   Slown parameters = {%f, %f, %f}\n\n",fLCPparam,fSlownparam[0],fSlownparam[1],fSlownparam[2]); 
     Float_t nGrayNeutrons = 0.;
     Float_t nBlackNeutrons = 0.;
-    Float_t cp = (nGrayp+nBlackp)/0.24;
+    Float_t cp = (nGrayp+nBlackp)/fLCPparam;
     
     if(cp>0.){
-      Float_t nSlow  = 51.5+469.2/(-8.762-cp);
-      //if(cp<2.5) nSlow = 1+(9.9-1)/(2.5-0)*(cp-0);
-      if(cp<3.) nSlow = 0.+(11.6-0.)/(3.-0.)*(cp-0.);
+      Float_t nSlow      = fSlownparam[0]+fSlownparam[1]/(-fSlownparam[2]-cp);
+      Float_t paramRetta = fSlownparam[0]+fSlownparam[1]/(-fSlownparam[2]-3);
+      if(cp<3.) nSlow = 0.+(paramRetta-0.)/(3.-0.)*(cp-0.);
     
       nGrayNeutrons = nSlow * 0.1; 
       nBlackNeutrons = nSlow - nGrayNeutrons;
     }
     else{
-      // Sikler "pasturato"
+      // Sikler "pasturato" (qui non entra mai!!!!)
       nGrayNeutrons = 0.47 * fAlphaGray *  nu; 
       nBlackNeutrons = 0.88 * fAlphaBlack * nu;      
       printf("nslowp=0 -> ncoll = %1.0f -> ngrayn = %1.0f  nblackn = %1.0f \n", nu, nGrayNeutrons, nBlackNeutrons);
index 4755e44..27f74c3 100644 (file)
@@ -24,10 +24,15 @@ class AliSlowNucleonModelExp : public AliSlowNucleonModel
                                         Int_t& ngp, Int_t& ngn, Int_t& nbp, Int_t& nbn) const;
     virtual void GetNumberOfSlowNucleons2(AliCollisionGeometry* geo,
                                         Int_t& ngp, Int_t& ngn, Int_t& nbp, Int_t& nbn) const;
+    // 1st model
     virtual void SetParameters(Float_t alpha1, Float_t alpha2);
     virtual void SetSaturation(Bool_t saturation) {fApplySaturation = saturation;}
     virtual void SetSaturationParams(Int_t ngray=15, Int_t nblack=28) 
                {fnGraySaturation=ngray; fnBlackSaturation=nblack;}
+    // 2nd model
+    virtual void SetLCPparam(Float_t al) {fLCPparam=al;}
+    virtual void SetNslowParams(Float_t a, Float_t b, Float_t c) 
+                {fSlownparam[0]=a; fSlownparam[1]=b; fSlownparam[2]=c;}
     
  protected:
     Float_t  fP;          // Number of protons  in the target 
@@ -37,8 +42,13 @@ class AliSlowNucleonModelExp : public AliSlowNucleonModel
     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
+    //
+    // Adding parameters for 2nd model that can be tuned during config
+    Float_t  fLCPparam;                // parameter to calculate LCP from <Nslow p>
+    Float_t  fSlownparam[3];   // parameters to calculate <Nslow n> from LCP
     
-  ClassDef(AliSlowNucleonModelExp,2) // Gray Particle Model (Experiment inspired)
+    
+  ClassDef(AliSlowNucleonModelExp,3) // Gray Particle Model (Experiment inspired)
 };
 #endif