Possibility to set the nuclear pdf added (EKS98 or EPS08)
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 15 Oct 2008 12:24:28 +0000 (12:24 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 15 Oct 2008 12:24:28 +0000 (12:24 +0000)
PYTHIA6/AliGenPythia.cxx
PYTHIA6/AliGenPythia.h
PYTHIA6/AliPythia.cxx
PYTHIA6/AliPythia.h
PYTHIA6/pdf_alice.F

index 80335bd..e8fc993 100644 (file)
@@ -105,6 +105,7 @@ AliGenPythia::AliGenPythia():
     fSetNuclei(kFALSE),
     fNewMIS(kFALSE),   
     fHFoff(kFALSE),    
+    fNucPdf(0),
     fTriggerParticle(0),
     fTriggerEta(0.9),     
     fTriggerMultiplicity(0),
@@ -194,6 +195,7 @@ AliGenPythia::AliGenPythia(Int_t npart)
      fSetNuclei(kFALSE),
      fNewMIS(kFALSE),   
      fHFoff(kFALSE),    
+     fNucPdf(0),
      fTriggerParticle(0),
      fTriggerEta(0.9),     
      fTriggerMultiplicity(0),
@@ -328,7 +330,7 @@ void AliGenPythia::Init()
     fPythia->SetCKIN(7,fYHardMin);
     fPythia->SetCKIN(8,fYHardMax);
     
-    if (fAProjectile > 0 && fATarget > 0) fPythia->SetNuclei(fAProjectile, fATarget);  
+    if (fAProjectile > 0 && fATarget > 0) fPythia->SetNuclei(fAProjectile, fATarget, fNucPdf);  
     // Fragmentation?
     if (fFragmentation) {
       fPythia->SetMSTP(111,1);
@@ -570,11 +572,15 @@ void AliGenPythia::Generate()
 //
 // Switch hadronisation on
 //
-       fPythia->SetMSTJ(1, 1);
+       if (fHadronisation) {
+           fPythia->SetMSTJ(1, 1);
 //
 // .. and perform hadronisation
 //     printf("Calling hadronisation %d\n", fPythia->GetN());
-       fPythia->Pyexec();      
+           fPythia->Pyexec();  
+       }
+       
+               
        fTrials++;
        fPythia->ImportParticles(&fParticles,"All");
        Boost();
@@ -1093,12 +1099,13 @@ void AliGenPythia::AdjustWeights() const
     }
 }
     
-void AliGenPythia::SetNuclei(Int_t a1, Int_t a2)
+void AliGenPythia::SetNuclei(Int_t a1, Int_t a2, Int_t pdfset)
 {
 // Treat protons as inside nuclei with mass numbers a1 and a2  
 
     fAProjectile = a1;
     fATarget     = a2;
+    fNucPdf      = pdfset;  // 0 EKS98 1 EPS08
     fSetNuclei   = kTRUE;
 }
 
index 26d0782..8dde2b1 100644 (file)
@@ -43,6 +43,7 @@ class AliGenPythia : public AliGenMC
     virtual void    SetEventListRange(Int_t eventFirst=-1, Int_t eventLast=-1);
     // Select process type
     virtual void    SetProcess(Process_t proc = kPyCharm) {fProcess = proc;}
+
     // Select structure function
     virtual void    SetStrucFunc(StrucFunc_t func =  kCTEQ5L) {fStrucFunc = func;}
     // Select pt of hard scattering 
@@ -64,7 +65,7 @@ class AliGenPythia : public AliGenMC
     // Set centre of mass energy
     virtual void    SetEnergyCMS(Float_t energy = 5500) {fEnergyCMS = energy;}
     // Treat protons as inside nuclei with mass numbers a1 and a2
-    virtual void    SetNuclei(Int_t a1, Int_t a2);
+    virtual void    SetNuclei(Int_t a1, Int_t a2, Int_t pdfset = 0);
     //
     // Trigger options
     //
@@ -243,6 +244,7 @@ class AliGenPythia : public AliGenMC
     Bool_t  fSetNuclei;             // Flag indicating that SetNuclei has been called
     Bool_t  fNewMIS;                // Flag for the new multipple interactions scenario
     Bool_t  fHFoff;                 // Flag for switching heafy flavor production off
+    Int_t   fNucPdf;                // Nuclear pdf 0: EKS98 1: EPS08
     Int_t   fTriggerParticle;       // Trigger on this particle ...
     Float_t fTriggerEta;            // .. within |eta| < fTriggerEta
     Int_t       fTriggerMultiplicity;    // Trigger on events with a minimum charged multiplicity
index 2fa643e..900757d 100644 (file)
@@ -563,7 +563,7 @@ Int_t AliPythia::CheckedLuComp(Int_t kf)
     return kc;
 }
 
-void AliPythia::SetNuclei(Int_t a1, Int_t a2)
+void AliPythia::SetNuclei(Int_t a1, Int_t a2, Int_t pdf)
 {
 // Treat protons as inside nuclei with mass numbers a1 and a2  
 //    The MSTP array in the PYPARS common block is used to enable and 
@@ -574,9 +574,11 @@ void AliPythia::SetNuclei(Int_t a1, Int_t a2)
 //    If the following mass number both not equal zero, nuclear corrections of the stf are used.
 //    MSTP(192) : Mass number of nucleus side 1
 //    MSTP(193) : Mass number of nucleus side 2
+//    MSTP(194) : Nuclear structure function: 0: EKS98 1:EPS08
     SetMSTP(52,2);
     SetMSTP(192, a1);
-    SetMSTP(193, a2);  
+    SetMSTP(193, a2); 
+    SetMSTP(194, pdf);
 }
        
 
index 818f3d3..e590892 100644 (file)
@@ -24,7 +24,7 @@ class AliPythia : public TPythia6, public AliRndm
     virtual void ProcInit
        (Process_t process, Float_t energy, StrucFunc_t strucfunc);
     // treat protons as inside nuclei
-    virtual void  SetNuclei(Int_t a1, Int_t a2);
+    virtual void  SetNuclei(Int_t a1, Int_t a2, Int_t pdf);
     // Print particle properties
     virtual void PrintParticles();
     virtual void ResetDecayTable();
index 2c5a155..ca1ca70 100644 (file)
@@ -46,6 +46,11 @@ C...
      >        MSTU(11),MSTP(51),MSTP(53),MSTP(55),
      >        QCDL4,QCDL5,
      >        XMIN,XMAX,Q2MIN,Q2MAX)
+         IF (MSTP(194) .EQ. 0) THEN 
+            CALL SETLHAPARM("EKS98")
+         ELSE
+            CALL SETLHAPARM("EPS08")
+         ENDIF
       ELSE 
          write(6,*) "-> pdfset"
          CALL PDFSET(PARM,VALUE,