From 20e47f089a4a32c9e1f311ff3ea7c5d42e734392 Mon Sep 17 00:00:00 2001 From: morsch Date: Wed, 15 Oct 2008 12:24:28 +0000 Subject: [PATCH] Possibility to set the nuclear pdf added (EKS98 or EPS08) --- PYTHIA6/AliGenPythia.cxx | 15 +++++++++++---- PYTHIA6/AliGenPythia.h | 4 +++- PYTHIA6/AliPythia.cxx | 6 ++++-- PYTHIA6/AliPythia.h | 2 +- PYTHIA6/pdf_alice.F | 5 +++++ 5 files changed, 24 insertions(+), 8 deletions(-) diff --git a/PYTHIA6/AliGenPythia.cxx b/PYTHIA6/AliGenPythia.cxx index 80335bdf29c..e8fc9937087 100644 --- a/PYTHIA6/AliGenPythia.cxx +++ b/PYTHIA6/AliGenPythia.cxx @@ -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; } diff --git a/PYTHIA6/AliGenPythia.h b/PYTHIA6/AliGenPythia.h index 26d0782dc2f..8dde2b1d3f2 100644 --- a/PYTHIA6/AliGenPythia.h +++ b/PYTHIA6/AliGenPythia.h @@ -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 diff --git a/PYTHIA6/AliPythia.cxx b/PYTHIA6/AliPythia.cxx index 2fa643e816e..900757de155 100644 --- a/PYTHIA6/AliPythia.cxx +++ b/PYTHIA6/AliPythia.cxx @@ -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); } diff --git a/PYTHIA6/AliPythia.h b/PYTHIA6/AliPythia.h index 818f3d34a63..e59089279e8 100644 --- a/PYTHIA6/AliPythia.h +++ b/PYTHIA6/AliPythia.h @@ -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(); diff --git a/PYTHIA6/pdf_alice.F b/PYTHIA6/pdf_alice.F index 2c5a155b1c2..ca1ca70bff2 100644 --- a/PYTHIA6/pdf_alice.F +++ b/PYTHIA6/pdf_alice.F @@ -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, -- 2.43.0