Option to switch on/off boost and nucl. pdf
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 14 Aug 2013 07:58:44 +0000 (07:58 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 14 Aug 2013 07:58:44 +0000 (07:58 +0000)
R. Haake

PYTHIA6/AliGenPythia.cxx
PYTHIA6/AliGenPythia.h

index 343869c..b4e7d66 100644 (file)
@@ -118,6 +118,8 @@ AliGenPythia::AliGenPythia():
     fFeedDownOpt(kTRUE),    
     fFragmentation(kTRUE),
     fSetNuclei(kFALSE),
+    fUseNuclearPDF(kFALSE),
+    fUseLorentzBoost(kTRUE),
     fNewMIS(kFALSE),   
     fHFoff(kFALSE),    
     fNucPdf(0),
@@ -232,6 +234,8 @@ AliGenPythia::AliGenPythia(Int_t npart)
      fFeedDownOpt(kTRUE),    
      fFragmentation(kTRUE),
      fSetNuclei(kFALSE),
+     fUseNuclearPDF(kFALSE),
+     fUseLorentzBoost(kTRUE),
      fNewMIS(kFALSE),   
      fHFoff(kFALSE),    
      fNucPdf(0),
@@ -383,9 +387,10 @@ void AliGenPythia::Init()
     fPythia->SetCKIN(7,fYHardMin);
     fPythia->SetCKIN(8,fYHardMax);
     
-    if (fAProjectile > 0 && fATarget > 0) fPythia->SetNuclei(fAProjectile, fATarget, fNucPdf);
     if (fProjectile != "p" || fTarget != "p") fPythia->SetCollisionSystem(fProjectile,fTarget);
   
+    if(fUseNuclearPDF)
+      fPythia->SetNuclei(fAProjectile, fATarget, fNucPdf);
     // Fragmentation?
     if (fFragmentation) {
       fPythia->SetMSTP(111,1);
@@ -554,14 +559,19 @@ void AliGenPythia::Init()
 //
 //
     AliGenMC::Init();
+
+    // Reset Lorentz boost if demanded
+    if(!fUseLorentzBoost) {
+      fDyBoost = 0;
+      Warning("Init","Demand to discard Lorentz boost.\n");
+    }
 //
 //
 //  
     if (fSetNuclei) {
-       fDyBoost = 0;
-       Warning("Init","SetNuclei used. Use SetProjectile + SetTarget instead. fDyBoost has been reset to 0\n");
+      fDyBoost = 0;
+      Warning("Init","Deprecated function SetNuclei() used (nPDFs + no boost). Use SetProjectile + SetTarget + SetUseNuclearPDF + SetUseLorentzBoost instead.\n");
     }
-    
     fPythia->SetPARJ(200, 0.0);
     fPythia->SetPARJ(199, 0.0);
     fPythia->SetPARJ(198, 0.0);
@@ -1197,10 +1207,11 @@ 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 9 EPS09LO 19 EPS09NLO
-    fSetNuclei   = kTRUE;
+    fAProjectile   = a1;
+    fATarget       = a2;
+    fNucPdf        = pdfset;  // 0 EKS98 9 EPS09LO 19 EPS09NLO
+    fUseNuclearPDF = kTRUE;
+    fSetNuclei     = kTRUE;
 }
 
 
index 95b6edf..0c82e8c 100644 (file)
@@ -71,6 +71,8 @@ class AliGenPythia : public AliGenMC
     // Set colliding nuclei ("p","n",...)
     virtual void    SetCollisionSystem(TString projectile, TString target) { fProjectile = projectile; fTarget = target; }
     virtual void    SetNuclearPDF(Int_t pdf) {fNucPdf = pdf;}
+    virtual void    SetUseNuclearPDF(Bool_t val) {fUseNuclearPDF = val;}
+    virtual void    SetUseLorentzBoost(Bool_t val) {fUseLorentzBoost = val;}
     //
     // Trigger options
     //
@@ -322,6 +324,8 @@ class AliGenPythia : public AliGenMC
                                     // quark families (e.g. b->c)
     Bool_t  fFragmentation;         // Option to activate fragmentation by Pythia
     Bool_t  fSetNuclei;             // Flag indicating that SetNuclei has been called
+    Bool_t  fUseNuclearPDF;         // flag if nuclear pdf should be applied
+    Bool_t  fUseLorentzBoost;       // flag if lorentz boost should be applied
     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