diff --git a/Generators/Pythia8B_i/CMakeLists.txt b/Generators/Pythia8B_i/CMakeLists.txt index d55fb351f1f758f360cc2c241b0aa48fb2e26475..22fda1c198dfcbba2a763b51ae8a11ef6fbb8ce4 100644 --- a/Generators/Pythia8B_i/CMakeLists.txt +++ b/Generators/Pythia8B_i/CMakeLists.txt @@ -31,5 +31,5 @@ atlas_add_component( Pythia8B_i LINK_LIBRARIES ${Boost_LIBRARIES} ${PYTHIA8_LIBRARIES} ${LHAPDF_LIBRARIES} ${CLHEP_LIBRARIES} AtlasHepMCLib AthenaBaseComps GaudiKernel Pythia8_iLib GeneratorObjects Pythia8B_iLib ) # Install files from the package: -atlas_install_joboptions( share/*.py ) +atlas_install_joboptions( share/common/*.py ) diff --git a/Generators/Pythia8B_i/share/BPDGCodes.py b/Generators/Pythia8B_i/share/common/BPDGCodes.py similarity index 100% rename from Generators/Pythia8B_i/share/BPDGCodes.py rename to Generators/Pythia8B_i/share/common/BPDGCodes.py diff --git a/Generators/Pythia8B_i/share/BsToJpsimu0mu0phi.py b/Generators/Pythia8B_i/share/common/BsToJpsimu0mu0phi.py similarity index 100% rename from Generators/Pythia8B_i/share/BsToJpsimu0mu0phi.py rename to Generators/Pythia8B_i/share/common/BsToJpsimu0mu0phi.py diff --git a/Generators/Pythia8B_i/share/BuJpsiK_EvtGen.py b/Generators/Pythia8B_i/share/common/BuJpsiK_EvtGen.py similarity index 100% rename from Generators/Pythia8B_i/share/BuJpsiK_EvtGen.py rename to Generators/Pythia8B_i/share/common/BuJpsiK_EvtGen.py diff --git a/Generators/Pythia8B_i/share/CloseAntiBDecays.py b/Generators/Pythia8B_i/share/common/CloseAntiBDecays.py similarity index 100% rename from Generators/Pythia8B_i/share/CloseAntiBDecays.py rename to Generators/Pythia8B_i/share/common/CloseAntiBDecays.py diff --git a/Generators/Pythia8B_i/share/CloseBDecays.py b/Generators/Pythia8B_i/share/common/CloseBDecays.py similarity index 100% rename from Generators/Pythia8B_i/share/CloseBDecays.py rename to Generators/Pythia8B_i/share/common/CloseBDecays.py diff --git a/Generators/Pythia8B_i/share/OpenBJpsiDecays.py b/Generators/Pythia8B_i/share/common/OpenBJpsiDecays.py similarity index 100% rename from Generators/Pythia8B_i/share/OpenBJpsiDecays.py rename to Generators/Pythia8B_i/share/common/OpenBJpsiDecays.py diff --git a/Generators/Pythia8B_i/share/common/Pythia8B_A14_CTEQ6L1_Common.py b/Generators/Pythia8B_i/share/common/Pythia8B_A14_CTEQ6L1_Common.py new file mode 100644 index 0000000000000000000000000000000000000000..082c3923884e83e707dc03e70deabefac2abaa96 --- /dev/null +++ b/Generators/Pythia8B_i/share/common/Pythia8B_A14_CTEQ6L1_Common.py @@ -0,0 +1,40 @@ +## Config for Py8B tune A14 with CTEQ6L1 +include("Pythia8B_i/Pythia8B_Base_Fragment.py") + +ver = os.popen("cmt show versions External/Pythia8").read() +print "Pythia8 version: " + ver +if 'Pythia8-01' in ver[:50]: + genSeq.Pythia8B.Commands += [ + "Tune:ee = 7", + "Tune:pp = 14", + "PDF:useLHAPDF = on", + "PDF:LHAPDFset = cteq6ll", + "SpaceShower:rapidityOrder = on", + "SigmaProcess:alphaSvalue = 0.144", + "SpaceShower:pT0Ref = 1.30", + "SpaceShower:pTmaxFudge = 0.95", + "SpaceShower:pTdampFudge = 1.21", + "SpaceShower:alphaSvalue = 0.125", + "TimeShower:alphaSvalue = 0.126", + "BeamRemnants:primordialKThard = 1.72", + "MultipartonInteractions:pT0Ref = 1.98", + "MultipartonInteractions:alphaSvalue = 0.118", + "BeamRemnants:reconnectRange = 2.08"] +else: + genSeq.Pythia8B.Commands += [ + "Tune:ee = 7", + "Tune:pp = 14", + "PDF:pSet=LHAPDF6:cteq6l1", + "SpaceShower:rapidityOrder = on", + "SigmaProcess:alphaSvalue = 0.144", + "SpaceShower:pT0Ref = 1.30", + "SpaceShower:pTmaxFudge = 0.95", + "SpaceShower:pTdampFudge = 1.21", + "SpaceShower:alphaSvalue = 0.125", + "TimeShower:alphaSvalue = 0.126", + "BeamRemnants:primordialKThard = 1.72", + "MultipartonInteractions:pT0Ref = 1.98", + "MultipartonInteractions:alphaSvalue = 0.118", + "ColourReconnection:range = 2.08"] + +evgenConfig.tune = "A14 CTEQ6L1" diff --git a/Generators/Pythia8B_i/share/common/Pythia8B_A14_CTEQ6L1_EvtGen_Common.py b/Generators/Pythia8B_i/share/common/Pythia8B_A14_CTEQ6L1_EvtGen_Common.py new file mode 100644 index 0000000000000000000000000000000000000000..b30ef3775b63921c816c5f1c44f148f9ece1bff7 --- /dev/null +++ b/Generators/Pythia8B_i/share/common/Pythia8B_A14_CTEQ6L1_EvtGen_Common.py @@ -0,0 +1,9 @@ +## Config for Py8B tune A14 with CTEQ6L1 +## The default version of this tune fragment include EvtGen for standardised b fragmentation + +# Reference the non-standard version without EvtGen +include("Pythia8B_i/Pythia8B_A14_CTEQ6L1_Common.py") + +# Add EvtGen for b fragmentation as default. No EvtGen is available in "nonStandard" +include("Pythia8B_i/Pythia8B_EvtGen.py") + diff --git a/Generators/Pythia8B_i/share/common/Pythia8B_A14_NNPDF23LO_Common.py b/Generators/Pythia8B_i/share/common/Pythia8B_A14_NNPDF23LO_Common.py new file mode 100644 index 0000000000000000000000000000000000000000..f46bd11440b282c9c391251bd1ad0ceca9406bf2 --- /dev/null +++ b/Generators/Pythia8B_i/share/common/Pythia8B_A14_NNPDF23LO_Common.py @@ -0,0 +1,44 @@ +## Config for Py8B tune A14 with NNPDF23LO +## This is the version without EvtGen, and as such is not the standard. +## The default version is available in common/Pythia8B/Pythia8B_A14_NNPDF23LO_EvtGen_Common.py + +include("Pythia8B_i/Pythia8B_Base_Fragment.py") + +# todo - replace BeamRemnants with new ColourReconnection syntax once Pythia 8.201 is in place +ver = os.popen("cmt show versions External/Pythia8").read() +print "Pythia8 version: " + ver +if 'Pythia8-01' in ver[:50]: + genSeq.Pythia8B.Commands += [ + "Tune:ee = 7", + "Tune:pp = 14", + "PDF:useLHAPDF = on", + "PDF:LHAPDFset = NNPDF23_lo_as_0130_qed", + "SpaceShower:rapidityOrder = on", + "SigmaProcess:alphaSvalue = 0.140", + "SpaceShower:pT0Ref = 1.56", + "SpaceShower:pTmaxFudge = 0.91", + "SpaceShower:pTdampFudge = 1.05", + "SpaceShower:alphaSvalue = 0.127", + "TimeShower:alphaSvalue = 0.127", + "BeamRemnants:primordialKThard = 1.88", + "MultipartonInteractions:pT0Ref = 2.09", + "MultipartonInteractions:alphaSvalue = 0.126", + "BeamRemnants:reconnectRange = 1.71"] +else: + genSeq.Pythia8B.Commands += [ + "Tune:ee = 7", + "Tune:pp = 14", + "PDF:pSet=LHAPDF6:NNPDF23_lo_as_0130_qed", + "SpaceShower:rapidityOrder = on", + "SigmaProcess:alphaSvalue = 0.140", + "SpaceShower:pT0Ref = 1.56", + "SpaceShower:pTmaxFudge = 0.91", + "SpaceShower:pTdampFudge = 1.05", + "SpaceShower:alphaSvalue = 0.127", + "TimeShower:alphaSvalue = 0.127", + "BeamRemnants:primordialKThard = 1.88", + "MultipartonInteractions:pT0Ref = 2.09", + "MultipartonInteractions:alphaSvalue = 0.126", + "ColourReconnection:range = 1.71"] + +evgenConfig.tune = "A14 NNPDF23LO" diff --git a/Generators/Pythia8B_i/share/common/Pythia8B_A14_NNPDF23LO_EvtGen_Common.py b/Generators/Pythia8B_i/share/common/Pythia8B_A14_NNPDF23LO_EvtGen_Common.py new file mode 100644 index 0000000000000000000000000000000000000000..3c8d517564e10591a0ecabaf51fdce1b1846e6a0 --- /dev/null +++ b/Generators/Pythia8B_i/share/common/Pythia8B_A14_NNPDF23LO_EvtGen_Common.py @@ -0,0 +1,9 @@ +## Config for Py8B tune A14 with NNPDF23LO +## The default version of this tune fragment include EvtGen for standardised b fragmentation + +# Reference the non-standard version without EvtGen +include("Pythia8B_i/Pythia8B_A14_NNPDF23LO_Common.py") + +# Add EvtGen for b fragmentation as default. No EvtGen is available in "nonStandard" +include("Pythia8B_i/Pythia8B_EvtGen.py") + diff --git a/Generators/Pythia8B_i/share/common/Pythia8B_BPDGCodes.py b/Generators/Pythia8B_i/share/common/Pythia8B_BPDGCodes.py new file mode 100644 index 0000000000000000000000000000000000000000..85d5c2ae444064c4096548c41e6a44113320ce93 --- /dev/null +++ b/Generators/Pythia8B_i/share/common/Pythia8B_BPDGCodes.py @@ -0,0 +1,6 @@ +###################################################### +# BPDGCodes.py +# List of B-species PDG codes +###################################################### + +genSeq.Pythia8B.BPDGCodes = [511,521,531,541,5122,5132,5232,5332,-511,-521,-531,-541,-5122,-5132,-5232,-5332] diff --git a/Generators/Pythia8B_i/share/common/Pythia8B_Base_Fragment.py b/Generators/Pythia8B_i/share/common/Pythia8B_Base_Fragment.py new file mode 100644 index 0000000000000000000000000000000000000000..10a79d0df97abfb9b9ec653342045cc580cc29a0 --- /dev/null +++ b/Generators/Pythia8B_i/share/common/Pythia8B_Base_Fragment.py @@ -0,0 +1,16 @@ +## Base config for Pythia8B +from Pythia8B_i.Pythia8B_iConf import Pythia8B_i +genSeq += Pythia8B_i("Pythia8B") +evgenConfig.generators += ["Pythia8B"] + +genSeq.Pythia8B.Commands += [ + "Main:timesAllowErrors = 500", + "6:m0 = 172.5", + "23:m0 = 91.1876", + "23:mWidth = 2.4952", + "24:m0 = 80.399", + "24:mWidth = 2.085", + "StandardModel:sin2thetaW = 0.23113", + "StandardModel:sin2thetaWbar = 0.23146", + "ParticleDecays:limitTau0 = on", + "ParticleDecays:tau0Max = 10.0"] diff --git a/Generators/Pythia8B_i/share/common/Pythia8B_Bottomonium_Common.py b/Generators/Pythia8B_i/share/common/Pythia8B_Bottomonium_Common.py new file mode 100644 index 0000000000000000000000000000000000000000..758eea0c2e92ea48a04cffddb892c17b75663a8f --- /dev/null +++ b/Generators/Pythia8B_i/share/common/Pythia8B_Bottomonium_Common.py @@ -0,0 +1,29 @@ +############################################################## +# Pythia8B_Bottomonium_Common.py +# +# Common job options for direct bottomonium production using +# Pythia8B. +############################################################## + +# Hard process +genSeq.Pythia8B.Commands += ['PhaseSpace:pTHatMin = 1.'] # Equivalent of CKIN3 +genSeq.Pythia8B.Commands += ['ParticleDecays:mixB = off'] +genSeq.Pythia8B.Commands += ['HadronLevel:all = off'] + +# Quarkonia production mode +genSeq.Pythia8B.Commands += ['Bottomonium:all = on'] +genSeq.Pythia8B.Commands += ['PhaseSpace:pTHatMinDiverge = 0.5'] +genSeq.Pythia8B.SuppressSmallPT = True +genSeq.Pythia8B.pT0timesMPI = 1. +genSeq.Pythia8B.numberAlphaS = 3. +genSeq.Pythia8B.useSameAlphaSasMPI = False +genSeq.Pythia8B.SelectBQuarks = False +genSeq.Pythia8B.SelectCQuarks = False +genSeq.Pythia8B.VetoDoubleBEvents = False +genSeq.Pythia8B.VetoDoubleCEvents = False + +# Number of repeat-hadronization loops +genSeq.Pythia8B.NHadronizationLoops = 1 + +# List of B-species - for counting purposes (no effect on generation) +include("Pythia8B_i/Pythia8B_BPDGCodes.py") diff --git a/Generators/Pythia8B_i/share/common/Pythia8B_Charmonium_Common.py b/Generators/Pythia8B_i/share/common/Pythia8B_Charmonium_Common.py new file mode 100644 index 0000000000000000000000000000000000000000..963bdb364719f4c88d17f24c44d653de324dffd5 --- /dev/null +++ b/Generators/Pythia8B_i/share/common/Pythia8B_Charmonium_Common.py @@ -0,0 +1,27 @@ +############################################################## +# Common job options for direct Pythia8B charmonium production +############################################################## + +# Hard process +genSeq.Pythia8B.Commands += ['PhaseSpace:pTHatMin = 1.'] # Equivalent of CKIN3 +genSeq.Pythia8B.Commands += ['ParticleDecays:mixB = off'] +genSeq.Pythia8B.Commands += ['HadronLevel:all = off'] + +# Quarkonia production mode +genSeq.Pythia8B.Commands += ['Charmonium:all = on'] +genSeq.Pythia8B.Commands += ['PhaseSpace:pTHatMinDiverge = 0.5'] +genSeq.Pythia8B.SuppressSmallPT = True +genSeq.Pythia8B.pT0timesMPI = 1. +genSeq.Pythia8B.numberAlphaS = 3. +genSeq.Pythia8B.useSameAlphaSasMPI = False +genSeq.Pythia8B.SelectBQuarks = False +genSeq.Pythia8B.SelectCQuarks = False +genSeq.Pythia8B.VetoDoubleBEvents = False +genSeq.Pythia8B.VetoDoubleCEvents = False + +# Number of repeat-hadronization loops +genSeq.Pythia8B.NHadronizationLoops = 1 + +# List of B-species - for counting purposes (no effect on generation) +#include("Pythia8B_i/BPDGCodes.py") NB: Not working in MC15, is it a problem?? + diff --git a/Generators/Pythia8B_i/share/common/Pythia8B_CloseAntiBDecays.py b/Generators/Pythia8B_i/share/common/Pythia8B_CloseAntiBDecays.py new file mode 100644 index 0000000000000000000000000000000000000000..6b44faf0fd72f0f17dbcd72653e145d5319f243c --- /dev/null +++ b/Generators/Pythia8B_i/share/common/Pythia8B_CloseAntiBDecays.py @@ -0,0 +1,15 @@ +###################################################### +# CloseAntiBDecays.py +# Pythia8_i commands to switch off decays of B +# Should be used when exclusive decays are needed from +# the anti-B-hadron but not the B-hadron +###################################################### + +genSeq.Pythia8B.Commands += ['511:onMode = 2'] +genSeq.Pythia8B.Commands += ['521:onMode = 2'] +genSeq.Pythia8B.Commands += ['531:onMode = 2'] +genSeq.Pythia8B.Commands += ['541:onMode = 2'] +genSeq.Pythia8B.Commands += ['5122:onMode = 3'] +genSeq.Pythia8B.Commands += ['5132:onMode = 3'] +genSeq.Pythia8B.Commands += ['5232:onMode = 3'] +genSeq.Pythia8B.Commands += ['5332:onMode = 3'] diff --git a/Generators/Pythia8B_i/share/common/Pythia8B_CloseBDecays.py b/Generators/Pythia8B_i/share/common/Pythia8B_CloseBDecays.py new file mode 100644 index 0000000000000000000000000000000000000000..12755677141b5c7055f7dc989893cb0bd176a701 --- /dev/null +++ b/Generators/Pythia8B_i/share/common/Pythia8B_CloseBDecays.py @@ -0,0 +1,15 @@ +###################################################### +# CloseBDecays.py +# Pythia8_i commands to switch off decays of anti-B +# Should be used when exclusive decays are needed from +# the B-hadron but not the anti-B-hadron +###################################################### + +genSeq.Pythia8B.Commands += ['511:onMode = 3'] +genSeq.Pythia8B.Commands += ['521:onMode = 3'] +genSeq.Pythia8B.Commands += ['531:onMode = 3'] +genSeq.Pythia8B.Commands += ['541:onMode = 3'] +genSeq.Pythia8B.Commands += ['5122:onMode = 2'] +genSeq.Pythia8B.Commands += ['5132:onMode = 2'] +genSeq.Pythia8B.Commands += ['5232:onMode = 2'] +genSeq.Pythia8B.Commands += ['5332:onMode = 2'] diff --git a/Generators/Pythia8B_i/share/common/Pythia8B_EvtGen.py b/Generators/Pythia8B_i/share/common/Pythia8B_EvtGen.py new file mode 100644 index 0000000000000000000000000000000000000000..9122b249421a24c04db998c22055e20172d42bf2 --- /dev/null +++ b/Generators/Pythia8B_i/share/common/Pythia8B_EvtGen.py @@ -0,0 +1,11 @@ +## Run EvtGen afterburner on top of Pythia 8B +assert hasattr(genSeq, "Pythia8B") +include("EvtGen_i/EvtGen_Fragment.py") +evgenConfig.auxfiles += ['inclusiveP8DsDPlus.pdt'] +#genSeq.EvtInclusiveDecay.pdtFile = "inclusiveP8.pdt" +genSeq.EvtInclusiveDecay.pdtFile = "inclusiveP8DsDPlus.pdt" + +# FHerwig has problems with omega b* (5334), so not present in the base EvtGen fragment. Add it here. +genSeq.EvtInclusiveDecay.whiteList+=[-5334, 5334] + + diff --git a/Generators/Pythia8B_i/share/common/Pythia8B_OpenBJpsiDecays.py b/Generators/Pythia8B_i/share/common/Pythia8B_OpenBJpsiDecays.py new file mode 100644 index 0000000000000000000000000000000000000000..f52a9a48211936f5bf315f99f989106fa07dc0bd --- /dev/null +++ b/Generators/Pythia8B_i/share/common/Pythia8B_OpenBJpsiDecays.py @@ -0,0 +1,62 @@ +######################################################## +# OpenBJpsiDecays.py +# Opens all B->charmonium decays +# i.e. B->J/psi, psi(2S), chi_c0,1,2,h_c +######################################################## + +# B0 +genSeq.Pythia8B.Commands += ['511:onIfAny = 443'] +genSeq.Pythia8B.Commands += ['511:onIfAny = 100443'] +genSeq.Pythia8B.Commands += ['511:onIfAny = 445'] +genSeq.Pythia8B.Commands += ['511:onIfAny = 10441'] +genSeq.Pythia8B.Commands += ['511:onIfAny = 10443'] +genSeq.Pythia8B.Commands += ['511:onIfAny = 20443'] +# B+/- +genSeq.Pythia8B.Commands += ['521:onIfAny = 443'] +genSeq.Pythia8B.Commands += ['521:onIfAny = 100443'] +genSeq.Pythia8B.Commands += ['521:onIfAny = 445'] +genSeq.Pythia8B.Commands += ['521:onIfAny = 10441'] +genSeq.Pythia8B.Commands += ['521:onIfAny = 10443'] +genSeq.Pythia8B.Commands += ['521:onIfAny = 20443'] +# Bs +genSeq.Pythia8B.Commands += ['531:onIfAny = 443'] +genSeq.Pythia8B.Commands += ['531:onIfAny = 100443'] +genSeq.Pythia8B.Commands += ['531:onIfAny = 445'] +genSeq.Pythia8B.Commands += ['531:onIfAny = 10441'] +genSeq.Pythia8B.Commands += ['531:onIfAny = 10443'] +genSeq.Pythia8B.Commands += ['531:onIfAny = 20443'] +# Bc +genSeq.Pythia8B.Commands += ['541:onIfAny = 443'] +genSeq.Pythia8B.Commands += ['541:onIfAny = 100443'] +genSeq.Pythia8B.Commands += ['541:onIfAny = 445'] +genSeq.Pythia8B.Commands += ['541:onIfAny = 10441'] +genSeq.Pythia8B.Commands += ['541:onIfAny = 10443'] +genSeq.Pythia8B.Commands += ['541:onIfAny = 20443'] +# LambdaB +genSeq.Pythia8B.Commands += ['5122:onIfAny = 443'] +genSeq.Pythia8B.Commands += ['5122:onIfAny = 100443'] +genSeq.Pythia8B.Commands += ['5122:onIfAny = 445'] +genSeq.Pythia8B.Commands += ['5122:onIfAny = 10441'] +genSeq.Pythia8B.Commands += ['5122:onIfAny = 10443'] +genSeq.Pythia8B.Commands += ['5122:onIfAny = 20443'] +# Xb+/- +genSeq.Pythia8B.Commands += ['5132:onIfAny = 443'] +genSeq.Pythia8B.Commands += ['5132:onIfAny = 100443'] +genSeq.Pythia8B.Commands += ['5132:onIfAny = 445'] +genSeq.Pythia8B.Commands += ['5132:onIfAny = 10441'] +genSeq.Pythia8B.Commands += ['5132:onIfAny = 10443'] +genSeq.Pythia8B.Commands += ['5132:onIfAny = 20443'] +# Xb +genSeq.Pythia8B.Commands += ['5232:onIfAny = 443'] +genSeq.Pythia8B.Commands += ['5232:onIfAny = 100443'] +genSeq.Pythia8B.Commands += ['5232:onIfAny = 445'] +genSeq.Pythia8B.Commands += ['5232:onIfAny = 10441'] +genSeq.Pythia8B.Commands += ['5232:onIfAny = 10443'] +genSeq.Pythia8B.Commands += ['5232:onIfAny = 20443'] +# Omega_b+/- +genSeq.Pythia8B.Commands += ['5332:onIfAny = 443'] +genSeq.Pythia8B.Commands += ['5332:onIfAny = 100443'] +genSeq.Pythia8B.Commands += ['5332:onIfAny = 445'] +genSeq.Pythia8B.Commands += ['5332:onIfAny = 10441'] +genSeq.Pythia8B.Commands += ['5332:onIfAny = 10443'] +genSeq.Pythia8B.Commands += ['5332:onIfAny = 20443'] diff --git a/Generators/Pythia8B_i/share/common/Pythia8B_Photospp.py b/Generators/Pythia8B_i/share/common/Pythia8B_Photospp.py new file mode 100644 index 0000000000000000000000000000000000000000..7fbf6559656433771f1f7c1754f2d8922cde33fb --- /dev/null +++ b/Generators/Pythia8B_i/share/common/Pythia8B_Photospp.py @@ -0,0 +1,8 @@ +## Photos++ QED config for Pythia8B + +## Disable native QED FSR +assert hasattr(genSeq, "Pythia8B") +genSeq.Pythia8B.Commands += ["TimeShower:QEDshowerByL = off"] + +## Enable Photos++ +include("Photospp_i/Photospp_Fragment.py") diff --git a/Generators/Pythia8B_i/share/common/Pythia8B_exclusiveAntiB_Common.py b/Generators/Pythia8B_i/share/common/Pythia8B_exclusiveAntiB_Common.py new file mode 100644 index 0000000000000000000000000000000000000000..8bb1feb3d7cf600c5bd91d3dea4e99f7c19cbf69 --- /dev/null +++ b/Generators/Pythia8B_i/share/common/Pythia8B_exclusiveAntiB_Common.py @@ -0,0 +1,22 @@ +############################################################## +# Pythia8B_exclusiveAntiB_Common.py +# +# Common job options for exclusive bbar production using +# Pythia8B. +############################################################## + +# Hard process +genSeq.Pythia8B.Commands += ['HardQCD:all = on'] # Equivalent of MSEL1 +genSeq.Pythia8B.Commands += ['ParticleDecays:mixB = off'] +genSeq.Pythia8B.Commands += ['HadronLevel:all = off'] + +# Event selection +genSeq.Pythia8B.SelectBQuarks = True +genSeq.Pythia8B.SelectCQuarks = False +genSeq.Pythia8B.VetoDoubleBEvents = True + +# Close B decays and open antiB decays +include ("Pythia8B_i/Pythia8B_CloseAntiBDecays.py") + +# List of B-species +include("Pythia8B_i/Pythia8B_BPDGCodes.py") diff --git a/Generators/Pythia8B_i/share/common/Pythia8B_exclusiveB_Common.py b/Generators/Pythia8B_i/share/common/Pythia8B_exclusiveB_Common.py new file mode 100644 index 0000000000000000000000000000000000000000..1b70ccd5f842a65556ddf32adab4eeb806558892 --- /dev/null +++ b/Generators/Pythia8B_i/share/common/Pythia8B_exclusiveB_Common.py @@ -0,0 +1,22 @@ +############################################################## +# Pythia8B_exclusiveB_Common.py +# +# Common job options for exclusive b production using +# Pythia8B. +############################################################## + +# Hard process +genSeq.Pythia8B.Commands += ['HardQCD:all = on'] # Equivalent of MSEL1 +genSeq.Pythia8B.Commands += ['ParticleDecays:mixB = off'] +genSeq.Pythia8B.Commands += ['HadronLevel:all = off'] + +# Event selection +genSeq.Pythia8B.SelectBQuarks = True +genSeq.Pythia8B.SelectCQuarks = False +genSeq.Pythia8B.VetoDoubleBEvents = True + +# Close B decays and open antiB decays +include("Pythia8B_i/Pythia8B_CloseBDecays.py") + +# List of B-species +include("Pythia8B_i/Pythia8B_BPDGCodes.py") diff --git a/Generators/Pythia8B_i/share/common/Pythia8B_inclusiveAntiBJpsi_Common.py b/Generators/Pythia8B_i/share/common/Pythia8B_inclusiveAntiBJpsi_Common.py new file mode 100644 index 0000000000000000000000000000000000000000..7d0a6d97b98f8ef87a144ef7e20bbcba085ee521 --- /dev/null +++ b/Generators/Pythia8B_i/share/common/Pythia8B_inclusiveAntiBJpsi_Common.py @@ -0,0 +1,27 @@ +############################################################## +# Pythia8B_inclusiveAntiBJpsi_Common.py +# +# Common job options for inclusive anti-b->J/psi production using +# Pythia8B. +############################################################## + +# Hard process +genSeq.Pythia8B.Commands += ['HardQCD:all = on'] # Equivalent of MSEL1 +genSeq.Pythia8B.Commands += ['ParticleDecays:mixB = off'] +genSeq.Pythia8B.Commands += ['HadronLevel:all = off'] + +# Event selection +genSeq.Pythia8B.SelectBQuarks = True +genSeq.Pythia8B.SelectCQuarks = False +genSeq.Pythia8B.VetoDoubleBEvents = True +genSeq.Pythia8B.UserSelection = 'BJPSIINCLUSIVE' +genSeq.Pythia8B.UserSelectionVariables = [ -1 ] + +# Close B decays and open antiB decays +include ("Pythia8B_i/Pythia8B_CloseAntiBDecays.py") + +# Open inclusive B->J/psi decays +include ("Pythia8B_i/Pythia8B_OpenBJpsiDecays.py") + +# List of B-species +include("Pythia8B_i/Pythia8B_BPDGCodes.py") diff --git a/Generators/Pythia8B_i/share/common/Pythia8B_inclusiveBJpsi_Common.py b/Generators/Pythia8B_i/share/common/Pythia8B_inclusiveBJpsi_Common.py new file mode 100644 index 0000000000000000000000000000000000000000..bef29b03ef9733f6eb95a37f75efd336bc8fc68b --- /dev/null +++ b/Generators/Pythia8B_i/share/common/Pythia8B_inclusiveBJpsi_Common.py @@ -0,0 +1,26 @@ +############################################################## +# Pythia8B_inclusiveBJpsi_Common.py +# +# Common job options for inclusive b->J/psi production using +# Pythia8B. +############################################################## + +# Hard process +genSeq.Pythia8B.Commands += ['HardQCD:all = on'] # Equivalent of MSEL1 +genSeq.Pythia8B.Commands += ['ParticleDecays:mixB = off'] +genSeq.Pythia8B.Commands += ['HadronLevel:all = off'] + +# Event selection +genSeq.Pythia8B.SelectBQuarks = True +genSeq.Pythia8B.SelectCQuarks = False +genSeq.Pythia8B.VetoDoubleBEvents = True +genSeq.Pythia8B.UserSelection = 'BJPSIINCLUSIVE' + +# Close B decays and open antiB decays +include ("Pythia8B_i/Pythia8B_CloseBDecays.py") + +# Open inclusive B->J/psi decays +include ("Pythia8B_i/Pythia8B_OpenBJpsiDecays.py") + +# List of B-species +include("Pythia8B_i/Pythia8B_BPDGCodes.py") diff --git a/Generators/Pythia8B_i/share/TestPythia8B.py b/Generators/Pythia8B_i/share/common/TestPythia8B.py similarity index 100% rename from Generators/Pythia8B_i/share/TestPythia8B.py rename to Generators/Pythia8B_i/share/common/TestPythia8B.py diff --git a/Generators/Pythia8B_i/share/bbToJpsimu4mu4.py b/Generators/Pythia8B_i/share/common/bbToJpsimu4mu4.py similarity index 100% rename from Generators/Pythia8B_i/share/bbToJpsimu4mu4.py rename to Generators/Pythia8B_i/share/common/bbToJpsimu4mu4.py diff --git a/Generators/Pythia8B_i/share/bbTomu15mu0.py b/Generators/Pythia8B_i/share/common/bbTomu15mu0.py similarity index 100% rename from Generators/Pythia8B_i/share/bbTomu15mu0.py rename to Generators/Pythia8B_i/share/common/bbTomu15mu0.py diff --git a/Generators/Pythia8B_i/share/bbTomu4mu4.py b/Generators/Pythia8B_i/share/common/bbTomu4mu4.py similarity index 100% rename from Generators/Pythia8B_i/share/bbTomu4mu4.py rename to Generators/Pythia8B_i/share/common/bbTomu4mu4.py diff --git a/Generators/Pythia8B_i/share/ccTomu4mu4.py b/Generators/Pythia8B_i/share/common/ccTomu4mu4.py similarity index 100% rename from Generators/Pythia8B_i/share/ccTomu4mu4.py rename to Generators/Pythia8B_i/share/common/ccTomu4mu4.py diff --git a/Generators/Pythia8B_i/share/checkCloningFactor.py b/Generators/Pythia8B_i/share/common/checkCloningFactor.py similarity index 100% rename from Generators/Pythia8B_i/share/checkCloningFactor.py rename to Generators/Pythia8B_i/share/common/checkCloningFactor.py diff --git a/Generators/Pythia8B_i/share/ppToJpsimu0mu0.py b/Generators/Pythia8B_i/share/common/ppToJpsimu0mu0.py similarity index 100% rename from Generators/Pythia8B_i/share/ppToJpsimu0mu0.py rename to Generators/Pythia8B_i/share/common/ppToJpsimu0mu0.py diff --git a/Generators/Pythia8B_i/share/ppToJpsimu4mu4.py b/Generators/Pythia8B_i/share/common/ppToJpsimu4mu4.py similarity index 100% rename from Generators/Pythia8B_i/share/ppToJpsimu4mu4.py rename to Generators/Pythia8B_i/share/common/ppToJpsimu4mu4.py diff --git a/Generators/QGSJet_i/CMakeLists.txt b/Generators/QGSJet_i/CMakeLists.txt index 0f71dd037f340d1e4c28f96cebd3dcf4cd8b8773..428131090d84a702be1041cd867d5b003d7e6bba 100644 --- a/Generators/QGSJet_i/CMakeLists.txt +++ b/Generators/QGSJet_i/CMakeLists.txt @@ -29,7 +29,8 @@ atlas_add_component( QGSJet_i LINK_LIBRARIES ${CRMC_LIBRARIES} ${CLHEP_LIBRARIES} AtlasHepMCLib AtlasHepMCfioLib GeneratorModulesLib AthenaKernel GaudiKernel TruthUtils QGSJet_iLib ) # Install files from the package: -atlas_install_runtime( share/qgsjet_crmc.param ) +# atlas_install_joboptions( share/common/*.py ) +atlas_install_runtime( share/file/qgsjet_crmc.param ) atlas_install_runtime( ${CRMC_LCGROOT}/tabs/sectnu-II-04 ${CRMC_LCGROOT}/tabs/qgsdat-II-04.lzma ) diff --git a/Generators/QGSJet_i/QGSJet_i/QGSJet.h b/Generators/QGSJet_i/QGSJet_i/QGSJet.h index d15def94eeb422f1e01f837a08af7fd2fdfdba20..3f26ce899ef2351e709413acf5df2ef9b9c6b878 100644 --- a/Generators/QGSJet_i/QGSJet_i/QGSJet.h +++ b/Generators/QGSJet_i/QGSJet_i/QGSJet.h @@ -1,11 +1,12 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration */ #ifndef GENERATORMODULESQGSJET_H #define GENERATORMODULESQGSJET_H #include "GeneratorModules/GenModule.h" +#include "AtlasHepMC/HEPEVT_Wrapper.h" /** @class Epos @@ -51,9 +52,7 @@ protected: int m_ilheout; int m_nEvents; - // max number of particles MUST BE EQUAL TO THE NUMBER SET IN crmc-aaa.f! (it is max. number allowed by HepMC2.6 now) - static const size_t kMaxParticles = 10000; -// static const size_t kMaxParticles = HEPEVT_SIZE_REPLACE; + static const size_t kMaxParticles = HEPEVT_EntriesAllocation; int m_partID[ kMaxParticles ]; double m_partPx[ kMaxParticles ]; double m_partPy[ kMaxParticles ]; diff --git a/Generators/QGSJet_i/share/qgsjet_crmc.param b/Generators/QGSJet_i/share/file/qgsjet_crmc.param similarity index 100% rename from Generators/QGSJet_i/share/qgsjet_crmc.param rename to Generators/QGSJet_i/share/file/qgsjet_crmc.param diff --git a/Generators/QGSJet_i/src/QGSJet.cxx b/Generators/QGSJet_i/src/QGSJet.cxx index 5ebdae65e64ea997e6fbad075265fa38146d4055..03dcec3ae6573f547ce07f65f5761191aefaeeb0 100644 --- a/Generators/QGSJet_i/src/QGSJet.cxx +++ b/Generators/QGSJet_i/src/QGSJet.cxx @@ -1,5 +1,5 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration */ // ---------------------------------------------------------------------- @@ -19,7 +19,6 @@ #include "CLHEP/Random/RandFlat.h" #include "AthenaKernel/IAtRndmGenSvc.h" -#include "AtlasHepMC/HEPEVT_Wrapper.h" #include "AtlasHepMC/IO_HEPEVT.h" @@ -210,7 +209,9 @@ StatusCode QGSJet::genInitialize() std::cout << "parameters " << m_nEvents << " " << iSeed << " " << m_beamMomentum << " " << m_targetMomentum << " " << m_primaryParticle << " " << m_targetParticle << " " << m_model << " " << m_itab << " " << m_ilheout << " " << m_lheout.c_str()<< " " << m_paramFile.c_str() << std::endl; - crmc_set_f_(m_nEvents, iSeed, m_beamMomentum, m_targetMomentum, m_primaryParticle, m_targetParticle, m_model, m_itab, m_ilheout, m_paramFile.c_str() ); +// crmc_set_f_(m_nEvents, iSeed, m_beamMomentum, m_targetMomentum, m_primaryParticle, m_targetParticle, m_model, m_itab, m_ilheout, m_paramFile.c_str() ); + + crmc_set_f_(m_nEvents, iSeed, m_beamMomentum, m_targetMomentum, m_primaryParticle, m_targetParticle, m_model, m_itab, m_ilheout, (m_paramFile + " ").c_str() ); // initialize QGSJet // crmc_init_f_( iSeed, m_beamMomentum, m_targetMomentum, m_primaryParticle, m_targetParticle, m_model, m_paramFile.c_str() ); @@ -228,7 +229,7 @@ StatusCode QGSJet::genInitialize() #else HepMC::HEPEVT_Wrapper::set_sizeof_int(sizeof( int )); HepMC::HEPEVT_Wrapper::set_sizeof_real( 8 ); - HepMC::HEPEVT_Wrapper::set_max_number_entries(10000); // as used in crmc-aaa.f!!! + HepMC::HEPEVT_Wrapper::set_max_number_entries(kMaxParticles); #endif m_events = 0;