Update history
The update history for the code forms an integral part of the documentation, and is available in the HTML manuals for the full history of the ongoing major sub-version.
For convenience, the full update history for the PYTHIA 8.1, 8.2 and 8.3 series is collected here. Click the desired sub-version number to read the update note for that.
PYTHIA 8.3 series:
These update notes describe major updates relative to the PYTHIA 8.243 version, which was the starting point for PYTHIA 8.3. The step from 8.2 to 8.3 gave an occasion to break backwards compatibility. The main change is that C++11 is now assumed. The impact on existing used code should be mild, however.
8.312: 23 May 2024
- The Sample Main Programs in
the
examples
subdirectory have been completely reorganized. Over the years, an expansion of examples has been driven by the addition of new capabilities as well as by a strong user demand. As the old two-digitmainNN.cc
structure filled up, empty slots were used more-or-less at random, before eventually also three-digit codes were introduced. Now all examples have been regrouped by topic as three-digit codesmainNNN.cc
, with empty space within each group for future expansion. No program keeps its old code. Some new examples have been introduced and some existing ones have been modified. The matching and merging examples have seen a significant restructuring, wheremain162.cc
andmain164.cc
provide omnibus versions for several approaches. - Some related updates and cleanup in
examples/Makefile
. - The PYTHIA 8.3 Worksheet has been updated and expanded.
- The new more QCD based color reconnection model,
ColourReconnection:mode = 1
has been sped up by over a factor of two, thanks to Michal Kreps. - Variable energy beams have been added to Angantyr. See
main424.cc
for details. - New parameters
BeamRemnants:heavyQuarkEnhance
allows heavier quarks (s, c, b ) to take more beam-remnant momentum than the lighteru andd ones. The same parameters also makes it more likely for a heavier quark not to be kicked backwards in low-mass systems. Thanks to Manuel Masip and Ivan Rosario Bonastre for pointing out the issue. - Example of using Pythia as a custom shared library through
Python has been added in
main296.cc
andmain296.py
. - The option
--version
is now available forpythia8-config
which will return the Pythia version, thanks to Christopher Dilks for the suggestion. - A bug which caused popcorn destructive interference mechanism to not work has now been fixed.
- Added a new flag for neutrino PDFs to have them as unresolved particles by default as no other options currently exists. Minor related documentation update.
- Some bug fixes in less commonly used methods of the
Settings
andParticleData
classes. - Tiny correction in
configure
that fixes issue withpythia8-config
on some platforms, thanks to Gabriele Inghirami for reporting. - Protect against potential division by zero in the Thrust method.
- Fixed an issue where cross-sections could be reported incorrectly when running a second hard process when the first hard process comes from an LHE file.
- Protection was added to Vincia FSR for the case where the charm quark mass is set to zero.
8.311: 08 March 2024
- Javira Altmann joins the author team.
- Stefan Prestel leaves as an active author.
- Reweighting for a subset of hadronization parameters, both
kinematic and flavor related, is now available. See
main301
for an example and Hadronization Variations for details. - A number of changes have been made to the junction fragmentation procedure:
- Updated iterative procedure to find average junction rest frame that is more stable as it does not rely on convergence.
- Include special treatment of soft-leg cases (i.e. when the 120 degree junction rest frame does not exist), called pearl-on-a-string.
- Allow for fragmentation of pearl-on-a-string cases using a
gluon-approximation, controlled by
StringFragmentation:pearlFragmentation
andStringFragmentation:pearlProbFactor
. - Improvements in the hadronization of low-mass junction string systems, contributed by Harsh Shah. Low-mass junction systems now are handled by the ministring fragmentation code. This results in fewer discarded events when using the QCD-based colour reconnection model in scenarios where many junction systems are formed.
- A number of changes to the QCD-based colour reconnection model:
- Include a new string-length measure that better takes into consideration heavy quarks.
- Include additional seperate parameter
ColourReconnection:mPseudo
, which formally had a combined definition with parameterColourReconnection:m0
. - New option to limit the impact-parameter distance between
dipoles that are allowed to reconnect in the QCD-based colour
reconnection model, contributed by Harsh Shah. See
ColourReconnection:dipoleMaxDist
in Colour Reconnection for details. - The inverse formation times for a three-dipole junction system were not correctly being initialized, while their colours were. This bug has now been fixed, although its impact should be minimal. Thanks to Michal Kreps for the fix.
- A number of updates and extensions to the string "closepacking" model:
- Include close-packing mechanism for Gaussian string breaks
controlled by
ClosePacking:doClosePacking
,ClosePacking:tension
,ClosePacking:tensionRatio
and otherClosePacking
parameters. See further on Close-packing. - Include strangeness enhancement for string breaks next to a
junction, controlled by
StringFragmentation:strangeJunctions
andStringFragmentation:strangeJuncFactor
. - Include popcorn destructive interference via simple diquark
suppression controlled by
ClosePacking:qqFacQ
andClosePacking:qqFacP
. - A new sub collision model
(
Angantyr:CollisionModel=4,5
) has been added, wherein the projectile and target can fluctuate with different parameters, as one would expect in generic hadron-ion collisions. - Usage of
HeavyIon:SigFitDefPar
is changed. For the caseAngantyr:CollisionModel=1,2
, the order of the parameters has changed as well. This means that saved parameters from previous releases cannot be used, and a refitting of parameters is recommended. - The example
main200.cc
has had minor changes and cleanup. - A fifteen percent uncertainty has been included for the
b
slope parameter of theHeavyIon:SigFitErr
parameter vector used in fitting the cross sections for heavy ion collisions. This helps stabilize the fit at low collision energies. - When parameters or modes are configured by the user via
readString
orreadFile
with out-of-range values, Pythia will now abort upon initialization, similar to when invalid user settings or particle data are provided, rather than the previous behaviour where the value would be set to the limit. Out-of-range parameters can still be used by directly calling theforce
methods in theSettings
class. - Parton shower enhancements in the simple shower are now available
for the individual splittings
g → c + cbar andg → b + bbar . - Added capability to over sample emissions in combination with enhancing emissions so as to reduce large weight fluctuations.
- The documentation for POWHEG Matching has been updated with new recommendations and defaults.
- An option for suppressed power showers is now implemented also for
the Vincia shower model, via the
Vincia:pTdampMatch
parameter. Themain202
example updated to illustrate this for ttbar. - Entries in the event record may now be skipped when requesting matrix element corrections in the parton shower for a given event.
- Added new capability to disable matrix element corrections in the Timelike Shower for the first emission (only) of the hard process and/or resonance decays. The choice(s) of resonance(s) is customizable.
- Added example UserHook to modify the decay products in LHE files containing resonance decays.
- Updated RIVET examples to handle support for RIVET 4, while maintaining backwards compatibility.
- A new option for parallelism,
Parallel:doNext
, makes it possible for the user to run custom code before each event is generated, such as changing the energy on an event-by-event basis. For more information, see Parallelism ormain164
. - New Vincia example programs for EW showers,
main205.cc
-main207.cc
.main205
illustrates electroweak showers in Z decays to neutrinos (at very high Z mass).main206
illustrates EW showers for dijets at LHC and was previously namedmain203
.main207.cc
illustrates read-in of LHEF files for EW showering with Vincia. - New
main208
example program illustrates Vincia QED showering in photon-initiated processes, specificallyphoton-photon → mu+ mu- production at LHC. - Minor bug fix in Vincia's setup for helicity showers, to ignore beam particles when deciding whether helicity assignments need to be generated for the hard system. Thanks to M. di Mauro for help to identify this bug.
- Ensured that displaced-vertex information is propagated in the VINCIA QED and QCD FSR showers. This should correct a problem with displaced taus showing up with zero vertex information in HepMC events produced with VINCIA. Thanks to D. Hirscbuehl and S. Tuncay.
- Fixed issue where onia were showered with
pT2nextQCD
whenOniaShower:octetSplit
was set to0
(do not allow the octet states to radiate). Thanks to Jake Pfaller for reporting this issue. - Fixed issue where string systems were not updated when eliminating small string regions.
- Added protection when calling the
nTried
,nSelected
,nAccepted
,sigmaGen
,sigmaErr
, andnameProc
methods in theInfo
class to prevent exceptions when requesting an invalid process ID. - Fixed issue where if
Event::clear
is called before the particle database was initialized caused a segmentation fault. - When using
TauDecays:mode = 2
or3
the parameterTauDecays:tauPolarization
was being read in as an integer rather than a real number. This has now been fixed. Thanks to Florian Harz for reporting this. - When reading in external events without
SPINUP
information and withTauDecays:externalMode = 1
, the production matrix element for atau produced fromW orW' boson was being incorrectly set to that of of aZ
boson. This has now been fixed. Thanks to Florian Harz for reporting this. - The heavy ion information, provided by the
HIInfo
class and available through thehiInfo
member of theInfo
class, is now available by default in the simplified Python interface. - Introduced direct access to the particles of an event by the new
Event.particles()
method. Thanks to H. Dembinski for the sugggestion. - Fixed issue where the Python interface does not compile under 32-bit. Thanks to Mattias Ellert for reporting the issue.
- Introduced an experimental random number sequence debugging tool for advanced debugging usage.
- Some memory management issues were corrected in Vincia.
- Further minor updates in Vincia to streamline Pythia coding style and improve naming of antenna functions.
- When using subruns, each with a different spectrum from an SLHA file for each initialization, the mass for particles can be incorrectly generated. A fix for this has now been introduced.
- Fixed bug in the
SubCollisionModel
class, where the functionssigSDE()
,sigSDEP()
, andsigSDET()
, gave the wrong values. This will only affect the behaviour of Angantyr, in case theNaiveSubCollisionModel
class is used in the Glauber calculation (Angantyr:CollisionModel=0
). - A bug in the merging framework has been fixed that was introduced by the changes for aMC@NLO-Delta in 8.309. Thanks to Marjorie Shapiro for the report.
- The introduction of the new
BeamSetup
class broke parts of the photoproduction initialization, which has now been fixed. - Fixed memory leak in
main10
. - Fixed possible access of unitialized variables in
PhaseSpace::setupSampling123
.
8.310: 25 July 2023
- Naomi Cooke joins the author team.
- Production of quarkonia is now available via the simple timelike shower, see Onia Showers for details.
- Added a new feature that allows producing user-defined resonances in
hadronic rescattering. Newly added particles can be produced as resonances
if they set
varWidth = on
. Examples of this are shown inmain157
andmain158
. - A number of changes have been made to the heavy ion machinery.
- Variable energies can now be used in Angantyr. This is done by
setting
Beams:allowVariableEnergy = on
and using thePythia::setKinematics
methods. In addition Angantyr can now handle allBeams:frameType
options. - MPI initialization reuse has now been enabled for heavy ions. The
MultipartonInteractions:reuseInit
andMultipartonInteractions:initFile
parameters control whether the MBIAS Pythia object will reuse MPIs. In addition, theHeavyIon:SasdMpiReuseInit
andHeavyIon:SasdMpiInitFile
parameters do the same thing for the SASD Pythia object. - The parameters calculated from the evolutionary algorithm can also
be saved to file. This is controlled with the
HeavyIon:SigFitReuseInit
andHeavyIon:SigFitInitFile
settings. - The
HIUserHooks
source has been split intoHIInfo
,HINucleusModel
, andHISubCollisionModel
. - Some code is offloaded to new classes
Nucleus
andSubCollisionSet
, simplifyingHeavyIons.cc
. - Simplified the output for the Angantyr procedure for fitting nucleon cross sections.
- Included possibility to sample intermediate photon virtuality also for externally provided events using built-in photon flux for protons.
- Included possibility to generate DIS events with a (anti-)neutrino beam.
- The
TopRecoilHook
, formerly available separately, has now been integrated into theSimpleTimeShower
. See further the TimeShower:recoilStrategyRF switch, which replaces and extends the oldTimeShower:recoilToColoured
flag. In top decays the radiation pattern in the new option is reweighted to have top as recoiler in case the relevant colour line connects to it.
Pythia>
object for consistency.- The arguments to the
setSigmaPtr
method are now shared pointers. Additionally,addSigmaPtr
has been introduced with the previous behaviour ofsetSigmaPtr
, and the newsetSigmaPtr
overrides all previously added pointers. - A similar change has been made for the
setResonancePtr
method with the addition of theaddResonancePtr
method.
Logger
class now handles printing such as
initialization information and diagnostic messages. For more information
about this class, see the Logging page.BeamSetup
class has been introduced to handle the
beam configuration, including initializing and changing beam identities,
kinematics and parton distributions. This is a structural change that
simplifies the code in the Pythia
class, but does not
introduce any functional changes.LHAPDF6
to allow for
multi-threading. Thanks to Christopher Jones for the report.pybind11
version
2.10.4 which is compatible with Python 3.11. Thanks to Mattias Ellert
and David Runge for reporting the incompatibility and maintaining the
Fedora and Arch Linux packages. Note, this version is not compatible
with Python versions 3.5 and below, and so version 2.9.2 of
pybind11
is used automatically for these versions.gcc13
, thanks
to Dmitri Konstantinov.main162.py
from running correctly when passing a custom
function for initialization.Hist::getYMin
and Hist::getYMax
for a histogram that has not been
booked.BeamRemnants:unresolvedHadron
option that was
broken and had no effect since 8.307simple-template-id
s in
SusyLesHouches.h
to make compliant with
C++20
. Thanks to Jonas Hahnfeld.ColourReconnection
which resulted in an ordering that depended on the current memory
state of the program.Parallelism:balanceLoad
to
on
and updated the documentation. This ensures each
thread will always generate the same number of events.+=
notation for settings vectors, as well
as the include = fileName
directive, which allows for
additional settings files to be directly read in.8.309: 16 February 2023
- New functionality for aMC@NLO-Delta matching with a reduced number
of negative-weight events is introduced. This includes the possibility to
directly call shower Sudakov factors from a runtime interface to
Madgraph5_aMC@NLO. See documentation of new flag
Merging:runtimeAMCATNLOInterface
on Merging page for further info and references. - The
PowhegHooks
now work with all three shower models and automatically switch between the simple shower, Vincia, and Dire based on thePartonShowers:model
mode. In addition, the option to setPOWHEG:nFinal = -1
has been ported from 8.244 to allow the use of event files with a variable number of real emissions. - The Angantyr model for ion collisions has been updated with several possible nuclear geometries, suitable for light nuclei. It is now possible to select a harmonic oscillator shell model for nuclei with A <= 16, and a Hulthen potential for deuterons. It is also possible to read a nuclear configuration from an external file, format given in the manual.
- The documentation for ion collisions at Heavy Ions in the HTML manual has been extended.
- Allow scattered lepton to appear in different positions of the event record for remnant handling in externally generated DIS processes.
- Enable generation of externally generated hard processes for direct photoproduction.
- The Hidden Valley scenarios have now been updated with options
that allow a second- or third-order running coupling in the shower,
see further
Hidden Valley Processes.
A new
AlphaSUN
class implements the running for an arbitrary SU(N) gauge group, neglecting flavour thresholds. Thanks to Joshua Lockyer and Suchita Kulkarni for code contributions. - Equation (9.5) in the 2006 RPP Yao06 has erroneously
been taken as a second-order
alpha_strong expression, while actually it is a third-order one. This has been corrected, with separate second- and third-order options now available for matrix elements and showers. In practice the difference between second- and third-order running is minor, and furthermore first-order is default throughout. - Updated
fjcore
to versionv3.4.0 with minor modifications to remove compiler warnings. This version is compiled with limited thread safety, which is sufficient if "each thread is independently processing an event" and should have "essentially no speed overhead". For more details see the fjcore documentation. Thanks to Matteo Cacciari, Gavin Salam and Gregory Soyez. - The
PythiaParallel
framework can now be used in the Python interface, seemain162
. This required some small changes toPythiaParallel
, where callback functions now pass aPythia
instance by pointer rather than reference. - The Worksheet has been updated and somewhat expanded.
- Minor fix in the new color reconnection to protect against out-of-bounds memory access.
- Fixed a bug where changing beam energies with
Beams:frameType = 2
gives wrong energies. - A fix for overestimate of photon flux from nuclei when applying
PDF:beam2gammaApprox = 2 to make sure that the two applied approximations separated atPDF:gammaFluxApprox2xCut match. - Fixed a bug related to boosts for initial-final dipoles when performing parton showers.
- Fixed an issue with
tau decays interacting with the weak shower. Thanks to Mattia Di Mauro for reporting the issue. - A templated method to shuffle contents of a vector, called
shuffle
, has been added to the Random numbers machinery. - Small bug fix to avoid segmentation fault when parsing ALPGEN input.
- Tiny fix in
HepMC3
header to avoid compiler warnings with GCC 12.2.
8.308: 16 November 2022
- The
HIInfo
class now has information about the impact parameter angle between colliding nuclei in thephi()
function. In addition the impact parameter positions of the incoming nuclei are now set properly inParticle::vProd()
. - A new
PythiaCascade
wrapper class (ininclude/Pythia8Plugins
) implements the functionality to perform fixed-target hadron-nucleus collisions and decays, as useful for the tracking of cascades is the atmosphere or in solid materials. The code in this class now is set up to handle any target nucleus. The newmain184.cc
example shows how to usePythiaCascade
to track an atmospheric cascade, equivalent to the standalonemain183.cc
. An even simpler new example is found inmain185.cc
. - The option to completely forbid popcorn baryon production from the
beam remnant has been replaced by the possibility of a continuous
suppression, see
BeamRemnants:dampPopcorn
. - A new option for Pomeron flux has been added to provide more flexibility to modify the shape of the flux.
- Modified handling for resolved-lepton remnants so that also lepton-lepton collisions with unequal masses are correctly dealt with.
- Explicit bookkeeping of Hidden Valley (HV) colours in SU(N)
scenarios has been introduced. These colours can be accessed in the
event record, but are not shown by default. This allows for a more
robust tracking of HV colours in showers. Notably a Higgs decay to a
pair of HV gluons can now be handled, which used to be impossible.
The functionality of the
TimeShower:recoilToColoured
switch is extended also to apply to the HV colours. - Update to decay method of
ParticleDecays
class allows for proper showering of leptons produced in Hidden Valley particle decays. - A simple example of Hidden Valley production mechanisms introduced
with
main171.cc
. - Fixed a bug that could block the radiation of HV photons in a
broken U(1) scenario, i.e. where the HV photons acquire mass.
Affected was radiation in the decay of
Fv states, i.e. states with a charge both in the normal and in the HV sector. - Two new ROOT-based example programs,
main94.cc
andmain95.cc
, illustrating how to visualize events and jets, respectively, in(y, phi) -space. Thanks to D. Gillberg for contributing these examples. - Added handling of statistical uncertainties to the
Hist
class, with error propagation in the various histogram operations and friend methods, for both unweighted and weighted events. UpdatedHist
compatibility for current Matplotlib. - Updated JetMatching to support improved treatment of non-enhanced jets in FxFx merging, see Jet Merging for more details. The updated treatment also fixes a bug that led to an asymmetric treatment of heavy quarks and the corresponding anti-quarks. Thanks to Rikkert Frederix.
- Vincia's tune initialisation has been changed to not override initialization, event-generation, statistics, and main-program settings.
- Included particle ID code in error message when a workable decay
channel cannot be found in
ParticleDecays::decay()
. Thanks to K. Pedro for suggesting this. - Added additional protection for Pythia initialization.
- Fixed an issue in the
tau decays which caused segmentation faults when atau nu final state is present in the event record without a motherW . Thanks to S. Jeon for reporting the problem. - Corrected several typos in
antiName
andchargeType
properties for particle ID codes for diffractive states (e.g., 9904230) inParticleData.xml
; thanks to A. Verbytskyi, G. Panizzo, and D. Konstantinov. - Updated default top quark mass to 173 GeV (up from 171 GeV) in line with current PDG average (rounded to nearest GeV). Added particle data for a few more nuclei.
- Corrected a bug that affected the read-in of RPV couplings via SLHA files. In the erroneous version, a coupling for the third generation in the first index (i.e. 3,i,j) could not be set.
- Fixed bug preventing the generation of Python bindings in MacOS. Also fixed external library issue with Makefiles for MacOS.
- Updated
WeightsBase::getWeightNames
to provide RIVET compatible names. - Updating HTML manual and program banner with new manual reference.
- Updating affiliation for Christian Bierlich.
8.307: 25 February 2022
- New option with interpolation between the low-energy hadronic
cross sections, used for rescattering, and the more traditional
SaS/DL cross sections, used at high energies. The latter framework
has also been extended to include many more colliding hadron
pairs. The
Pythia::getSigmaTotal
andPythia::getSigmaPartial
methods give the user direct access to these cross sections. These extend and replace thePythia::getLowEnergySigma
methods. See further on Total Cross Sections. - New "SU21" PDFs for some 20 mesons and baryons, to be used e.g.
in the MPI scenarios in hadron-hadron collisions, e.g. in a cascade
in the atmosphere. The
pi+ default PDF has been upgraded from GRV92 LO to GRS99 LO. The GJR07 LO set has been included as an option for the proton. The default value ofBeamRemnants:maxValQuark
has been updated to allow also charm and bottom hadrons as incoming beam particles. - The framework for changing the beam kinematics between subsequent
Pythia::next
calls when using variable collision energies has been expanded. ThePythia::setKinematics
methods mirror the frame type options for the beams. See further on Program Flow and Beam Parameters. - As a further extension of the above, a new option exists wherein
the first beam particle is initialized so it can be switched
event-by-event between essentially any incoming hadron, while the
second beam is restricted to be a proton or neutron. Again only
SoftQCD
andLowEnergyQCD
processes are possible. To handle this feature, the code has been extended so that some 20 different PDFs are initialized, each with a corresponding MPI initialization and storage of required coefficients. See further Beam Parameters. - Extended and improved handling of the Hidden Valley (HV) scenario.
- Improved tracing of hidden-valley colours through a hidden-valley shower evolution history, thereby avoiding problems for some topologies.
- Introduced the possibility to bookkeep individual HV hadron types, in particular HV-mesons, and thereby manage masses and decay properties. The default remains the simpler scheme, where only a smaller set of HV-hadron properties need to be defined. The detailed scenario also involves a mass-dependent handling of the joining of hadronization chains, or the collapse into a single hadron.
- The list of Zv decays has been expanded to include further HV-quarks. Some default masses have been modified.
- It is possible to set different production rates for HV-quarks during hadronization, and for HV-diquarks leading to HV-baryon production.
- Introduced an option to suppress production of one flavour-diagonal
pseudoscalar state, representing the
eta_1 flavour singlet. - The
HiddenValley:spinFv
default value has been changed from 1 to 0, to make it transparent that HV-quarks have spin 1/2 by default. - Expanded the list of invisible particles accordingly.
- A few minor bug fixes.
- A significantly expanded description in Hidden Valley Processes.
- Added a new class
PythiaParallel
for easily making runs in parallel. See main161, main162 and main163 for usage examples. NOTE: this is an experimental feature. Feedback and bug reports should be sent to authors@pythia.org. - New option introduced, where MPI initialization data can be stored
on file and reused in a later run, to save time. See further on
MultipartonInteractions:reuseInit
andMultipartonInteractions:initFile
. Also option to symmetrize the MPI rate between e.g.pi^+ p andpi^- p , seeMultipartonInteractions:setAntiSame
. - New options allow a harder fragmentation function for a
beam-remnant diquark, by a separate choice of the
a andb parameters, and also forbid the popcorn mechanism for it. See further Beam Remnants. - New diffractive states introduced, to cover all five-flavour
mesonic states, and all baryonic ones with at most one
c orb quarks. Furthermore, nitrogen and oxygen have been added to the set of nuclei - New processes
SoftQCD:singleDiffractiveXB
andSoftQCD:singleDiffractiveAX
allow to set single diffraction to occur only byA B → X B or only byA B → A X . - Reorganised and consolidated the interface to external matrix element
generators. Renamed
ShowerMEs
toExternalMEs
andShowerMEsMadgraph
toExternalMEsMadgraph
. Introduced newHelicitySampler
class to sample helicities using external matrix elements. - New options to get and set the state of the random number generator,
Rndm::getState
andRndm::setState
, as a direct-transfer option to the file-baseddumpState/readState
methods. - New methods
Hist::fillTable
to read back in a table of histogram data, specifically as written by theHist::table
methods. - Some minor rearrangements in
HadronLevel
to better structure the interleaving of hadronic rescattering and particle decays. New methodPythia::moreDecays(int i)
to perform the decay of a single specified particle. - Switched tunes to by default prefer LHAPDF 6 PDFs over LHAPDF 5
ones, via the setting
Tune:preferLHAPDF
. - New
LHAPDF:xSymmetric
parameters allow the user to choose to use symmetric PDFs fors ,c , andb quarks when using LHAPDF for a performance boost. By default,c andb are taken as symmetric (this matches the previous behaviour). Info::pTnow()
can now also be used for showers during resonance decays, and when using theshower()
method. The latter so far only for the Simple and Vincia shower models.- Corrected a bug that mainly affects beam-remnant fragmentation in
the QCD CR model. Previously, diquark-antidiquark systems with
invariant masses below the threshold for baryon-antibaryon production
would be combined into tetraquark-like states that do not exist in
PYTHIA, resulting in errors with unknown particle codes and charge
non-conservation. Now,
MiniStringFragmentation::ministring2two()
instead reconnects such topologies into two mesons, noting that this is consistent with the colour structure. Further motivation comes from studies of low-mass junction-antijunction systems in Sjo03. - Introduced fix to prevent the central description of Les Houches events showered with global recoil from shifting when shower variations are enabled.
- Fixed a few issues in Vincia's sector merging. Specifically, while the merging itself still only handles QCD corrections, Vincia's QED showers can now be left on during merging. Also corrected a bug leading to incomplete histories replacing complete ones with smaller probability, and fixed an inconsistent treatment of trial showers in systems with coloured resonances.
- When running Angantyr at very low energies, initialization would abort due to an incorrect initialization of the high-mass diffraction MPI machinery. Logic has been introduced to prevent this initializatoin.
- Fixed memory leaks in the
ColourReconnection
class. - Fixed some recent compiler warnings and errors; thanks to Mattias Ellert.
- Removed the deprecated
SubCollisionModel
calledMultiRadial
from the heavy ion machinery. - Added an abort in Pythia initialization to prevent using a low energy process with a hard process. Thanks to Jenna Bacon.
- Broke a circular shared pointer reference in
ResonanceWidths
andParticleDataEntry
which caused a small memory leak. Thanks to Gabriele Inghirami. - Minor fix to avoid unnecessary (attempted) MPI initialization.
- Fixed issue with Dire getting stuck when showering soft QCD events. Note, Dire has not been validated for these types of events. Thanks to Giancarlo Panizzo and Marvin Flores for reporting the issue.
8.306: 28 June 2021
- Introduced ability to write intermediate output with RIVET, as
demonstrated in the updated
main93.cc
. - Fixed the incorrect scale being set when applying the POWHEG veto,
i.e.
main31.cc
. Note that the number of emissions is correct in 8.303, but is incorrect in 8.304 and 8.305. Thanks to Mikhail Kirsanov. - Fixed repeated initialization causing an ever expanding physics
pointer list in the main
Pythia
class. - Fixed issue for HepMC output from Vincia, which would previously issue warnings about inconsistent mother/daughter relationships, caused by Vincia's antenna-style bookkeeping by which emitted partons have two mothers instead of one. For status codes 43, 51, and 53, the HepMC interface now ignores the second parent, always using just the first one to define the vertex structure. Minor modifications to Vincia's QCD shower to ensure that the first mother is the one that changed colour and hence would be identified with the "radiator" in a collinear context. Analogous modifications in the QED module so the most collinear parent is the first mother.
- Removed
assert
statements from Angantyr. - Shortened Pythia constructor header.
8.305: 03 May 2021
- Fixed issue that otherwise caused the weights of the Dire parton shower to be erroneously discarded. The fix will impact the results produced with the Dire parton shower model. The results of the previous version should be considered incorrect.
- Fixed potential for segfault in
Weights.cc
ifweightsShowerPtr == nullptr
. - A number of fixes related to Vincia have been included.
- Bug fixes in Vincia's merging, addressing the issue that occasionally incomplete histories were accepted while a complete one was available.
- Fixed some small bugs in Vincia's QED shower that could cause issues when running at very high energies.
- Minor namespace fixes. Moved
using namespace VinciaConstants
from headers to source files and movedenum antFunType
inside the Pythia8 namespace. - Added default initialisers for data members in several Vincia classes, to avoid potentially undefined behaviour. Thanks to V. Zecca.
- Fixed unintentional initial-state radiation from unresolved hadron
beams when set with option
BeamRemnants:unresolvedHadron
which would break up the beam. Minor fix also for cases where two unresolved hadrons. - Added threshold check on low energy cross sections. This fixes a small bug reported by Vittorio Zecca.
- Corrected bug in normalization of histograms in
main07.cc
. Thanks to M. Baker and A. Thamm.
8.304: 09 April 2021
- Christian Preuss and Rob Verheyen join the author team.
- Christine O. Rasmussen leaves as an active author.
- New "sector" antenna showers implemented and made default for the Vincia antenna shower model.
- Minor changes to a few of the default Vincia hadronization parameters, reflecting the move to sector showers as default.
- New dedicated LO merging scheme for the Vincia sector antenna showers. The scheme is similar to CKKWL in spirit but exploits the bijective nature of the sector shower to vastly reduce the number of histories that need to be taken into account.
- New full-fledged electroweak shower option implemented for the Vincia shower model. The splitting kernels are based on collinear limits of corresponding helicity matrix elements so this EW shower model requires Born partons with assigned helicities. Currently these must either be input via LHEF or (for experts) runtime via Vincia's interface to MG5 matrix elements.
- Introduced tools to automatically generate MadGraph plugin libraries.
- New options for interleaved resonance decays implemented for both Pythia's default (simple) shower model, and for Vincia's antenna-shower model. Made default for the Vincia shower model, while Pythia's shower keeps its previous (non-interleaved) default setting.
- Revised internal handling of shower variations and splitting enhancements, both for regular and trial emissions. Enhancements of rare shower splittings are now steered by settings instead of UserHooks, and the necessary weights are automatically included in the shower and merging weights.
- A number of updates have been made to sophisticated
tau decays.- External SPINUP is now always interpreted as a helicity state in
the lab frame to ensure consistent treatment between
tau decays and helicity showers. - The default external mode for tau decays has been changed to handle helicity showers.
gamma gamma → tau^+ tau^- processes are now handled.- Helicity states for initial beams can be specified and used in
tau decays.
- External SPINUP is now always interpreted as a helicity state in
the lab frame to ensure consistent treatment between
- Added HDF5 support.
- Added support for lepton-photon initiated hard processes generated internally or externally. Thanks to Liu Yao-Bei.
- Minor code changes to allow hadronic rescattering in nuclear collisions (remove limit on number of rescatterings, increase maximum transverse vertex location).
- Double quarkonia production, if enabled, is now also included in both MPI and second hard processes.
- Added some new functionality to the
Hist
class. - Moved the event information in Info class to an appropriate
diffractive system for hard diffraction. This way also the
hard-process scale is properly propagated for primordial
kT sampling. - The
stopMassNow
inStringFragmentation.cc
is made to increase faster for charm and bottom end quarks, to allow an increased few-body fraction further above threshold. Thanks to Andy Buckley. - Added
ResonanceDecayFilterHook
and examplemain103.cc
to demonstrate how to select specific final states from resonance decays. - Fixed vertex smearing in heavy ion events.
- Fixed remnant handling for e+e- collisions for photon-initiated processes, thanks to Murat Köksal.
- Several (mostly minor) optimisations in Vincia, thanks to D. Konstantinov.
- Minor fixes in xml/html QCD process links and text.
- Several small bug fixes based on error reports by Vittorio Zecca.
- Fixed a bug where some elastic cross sections for pi K at low energies were set equal to the total ones.
- Protect against too high constituent masses inside a hadron in
LowEnergyProcess.cc
, already at an earlier stage of the process. - Protect against
exp(-infinity) inHadronLevel.cc
. - Two fixes for first step in the trial emissions in
StringFragmentation.cc
, used primarily in the thermal model option. - Properly set the photon-in-lepton PDF to vanish at very large
x , rather than give unphysical values there. - Better protection against weird results for the
rap
andeta
methods inBasics.h
, andy
inEvent.cc
. - Fixed pointer logic in Dire
getXPDF
. - Migrated from
log(1 + x)
tolog1p(x)
for numerical stability.
- Several small fixes in response to a static code analysis,
provided by Dmitri Konstantinov.
- Fix inconsistency in the usage of the third argument of the
dsigmaEl
method in the classes derived fromSigmaTotAux
. - Flawed and unused
LowEnergySigma::sigmaPartial
method removed. - Fix inconsistent type for
varWidthIn
inParticleDataEntry
class. - Introduce minor changes, e.g. to protect against out-of-bounds addressing or insert missing initializer, even though there is no evidence that it is needed.
- Small speedup of the
Vec4
[]
operator usingswitch()
instead ofif
to find element to be returned.
- Fix inconsistency in the usage of the third argument of the
- Bug fixed in the new possibility to let particles with narrow widths (such as onia states) obtain a simple Breit-Wigner distribution, specifically for MPIs, introduced in 8.240. This bug led to excessive rejection of low-invariant-mass interactions. Thanks to Albert De Roeck.
- Default event record checks switched off for
main21.cc
, to avoid issues with junction mother-daughter relations not being fully set. Also change so that showers are not called twice. Now all available cases are looped over, but easy to change back to study only one.
8.303: 01 September 2020
- Marius Utheim and Leif Gellersen join the author team.
- A new framework for
Hadronic Rescattering
has been developed. To enable rescattering, use
HadronLevel:Rescatter = on
, or see example programsmain151.cc
throughmain156.cc
for use examples. Note that while the framework is ready to use, it is still being actively developed, and changes are likely in the near future. The older and much simpler rescattering models have been removed, including the relatedpp tunes 33 and 34, and there has been some file reorganization in code and documentation. - A new class HadronWidths has been added to handle hadrons with mass-dependent widths. This has been done primarily because of its importance in resonance formation in rescattering, but the class is also used for decays of hadrons produced in other processes.
- A new class
LowEnergySigma
has been added to calculate cross sections of hadron-hadron interactions at low energies. These are used in rescattering and when performing primary collisions at low energies. Cross sections can be accessed usingPythia::getLowEnergySigma
. - Several changes in the
LowEnergyProcess
andMiniStringFragmentation
frameworks, in particular with several new approaches to produce nondiffractive inelastic events as close as possible to the kinematical threshold. New methodStringFlav::combineToLightest
attempts to form the lightest hadron for a given flavour content. Also new possibility to disable popcorn baryon production, for use in small systems. - The "decay"/mixing time of
K^0/K^0bar → K^0_S/K^0_L has been changed from 1e-15 to 1e-6 mm, such that it only happens after hadronic rescattering, but still well beforeK^0_S/K^0_L decays. - The Parton Vertex impact-parameter-plane assignment machinery has been completely rewritten and expanded with new options and capabilities. The default proton radius has been change from 0.7 to 0.85 fm.
- Limit the amount by which transverse smearing of the space-time
quark-antiquark string breakup vertices can give large shifts, see
further the new
HadronVertex:maxSmear
parameter. The newHadronVertex:maxTau
gives the possibility to reject hadrons of suspected misreconstructed systems and try again. The introduction of MPI impact parameters is compensated by a reduced transverse hadronization smearing. Also some other related changes. - The internal generation of photon-induced processes in hadronic
collisions has been extended. This can be enabled with the new options
PDF:beamA2gamma
andPDF:beamB2gamma
, which supersede the previousPDF:leptonA2gamma
option. Some minor updates also for other related options, see PDF Selection for details. - New photon fluxes from hadrons implemented, see PDF Selection for details.
- New example main program
main78.cc
to generate elastic, single- and double-dissociative photon-induced processes in proton-proton collisions, using optionsPDF:beamA2gamma
andPDF:beamB2gamma
. Also the sample programsmain69.cc
andmain70.cc
have been updated to use the new options. - For asymmetric beams (e.g. electron-proton collisions) in Les Houches event files, a boost to the event CM frame is now defined and applied for outgoing particles, as required for succesful event processing.
- The problem of "dangling" gluons causing changing color flows in
SimpleTimeShower
for top decays is now fixed. The fix is not fully validated for RPV. - For LHE processes, the width of the primordial kT distribution is
now set solely by the
BeamRemnants:primordialKThard
parameter, ignorningBeamRemnants:primordialKTsoft
. This change is so that LHE events with low-pT extra jets (e.g., in the context of POWHEG-style merging) are given the same primordial kT as their Born-level counterparts. - Improved HepMC3 multiweight output.
- Added automated renormalization scale variations in CKKW-L type merging schemes.
- Added UNLOPS merging scheme variations.
- Added warning messages in UNLOPS merging.
- Added flexible runtime plugin loading for Dire and Vincia matrix
element corrections from Madgraph. These corrections can be enabled
with the
--enable-mg5mes
flag during configuration and with theDire:MEplugin
andVincia:MEplugin
settings. - Introduced common runtime plugin loading and unloading structure.
- Removed PDF set tracking for LHAPDF6 which breaks thread safety. In some cases this might cause a small penalty in memory.
- Removed
SLHA:keepSM
as it duplicates the functionality provided bySLHA:minMassSM
. - Some new methods in the
Hist
andHistPlot
classes.Hist::plotFunc
creates a histogram from the function provided as first argument, by evaluating its value in the middle of each histogram bin.Hist::normalize
can rescale a histogram to an intended sum of bin contents. Methods to getx limits and lowest and highesty value.Hist::smallestAbsValue
renamedHist::getYAbsMin
for consistency.HistPlot::addFile
can add a file of data points, with or without errors, on to an existing histogram, for comparison purposes. A new variant ofHistPlot::plot
can set the frame borders. - New
LinearInterpolator
class inMathTools
. - New
RotBstMatrix
methodstoSameVframe
andfromSameVframe
sets up transformation to/from a frame where two particles move towards each other with equal-size velocities along the+-z direction. - Some new functionality accessible via
PythiaStdlib.h
. - It is now possible to use range-based for loops to iterate over
particles in an event, e.g.
for (Particle& p : pythia.event)
. Similarly, the particle data table can be iterated over, with each entry being apair<int, ParticleDataEntry&>
. - New possibility to redirect particle data listing output.
- A configure option
--obj-common='FLAGS'
to add additional compiler flags to object (.o
) compilation (i.e. no effect on linking). - Compilation flag
-DGCCFPDEBUG
enables floating point exceptions on a gcc compiler. - New
index()
method in thePy8Particle
class of the Fastjet3 interface ensures that the location of the particle in the PYTHIA event record is returned correctly. Thanks to Gavin Salam and Priyotosh Bandyopadhyay. - A minor fix for kinematics of zero-virtuality photons to retain physical kinematics.
- Protect against diffractive masses exceeding phase space bounds for hard diffraction.
- A bug for propagation of space-like partons in string shoving. Thanks to Dong Jo Kim.
- Several indexing bugs for the "guess" option used in CKKW-L merging have been fixed. However, this does not yet mean that "guess" is guaranteed to be stable for any BSM process.
- Several fixes for problems discovered in a static code analysis, including one bug fix in LowEnergyProcess.cc. Thanks to Dmitri Konstantinov.
- Mixup of
ASecondHardProcess
andSecondHardProcess
labels resolved. Thanks to Anton Karneyeu. - Number of weights in
info
reset to 1 for each newinit
call. - Fixed issue where the dark matter mass was reset even after
explicitly being set by the user,
e.g. 57:m0 = X
. This affects particle IDs 57 (DM+ ), 58 (DM2 ), and 59 (DM++ ). - An indexing bug for the scattering lepton in DIS events with photon radiation allowed has been fixed.
- The redefinition of
dlsym
for plugin loading has now been removed as this is no longer required by modern compilers. Thanks to Chris Burr. - Several small bug fixes based on error reports by Vittorio Zecca.
- In
ProcessContainer.cc
the error calculation for Les Houches strategy +-3 should not be renewed for each file when the event sample is split across several files. - In
ProcessContainer::trialProcess()
a call tophaseSpacePtr->rescaleMomenta( sHatNew);
should not be done since the momenta have not been set yet. - In the CT14qed PDF grid (and others?) the first two
x grid values coincide, so one must not divide by their difference. - Default initialization of
hasOwnEventAttributes
inInfo.h
is necessary. - Protected against explicit evaluation of alphaS(LambdaQCD) in
VinciaISR
. Also added explicit member-variable initialisations for theQEDemitElemental
class inVinciaQED
. - Protected against floating point exceptions caused by dividing by
zero in
PhaseSpace
for zero-width resonances. - Corrected a floating point exception in
Ropewalk.cc
. - Protected against out of range renormalization scale access for diffractive systems.
- In
- Some further replacements of
fabs
byabs
. - Fix missing-pointer bug when colour reconnection is switched off for diffraction. Thanks to Valentina Zaccolo.
8.302: 24 April 2020
- A HepMC 3 interface is now included in
Pythia8Plugins/HepMC3.h
. All HepMC examples have been migrated from using the HepMC 2 interface to HepMC 3, excludingmain44.cc
andmain93.cc
which are kept for legacy purposes. - Bug fix to correct units for automated shower uncertainty weights
for
lhaStrategy = ±4
. In addition, the combination of weight variations, within the context of uncertainty bands, was not previously well documented and was therefore prone to misunderstandings. Now, all methods related to cross sections and weights are documented together on a single page, Cross Sections and Weights, the documentation on shower Variations has been improved, and the behaviour ofInfo::getGroupWeight()
has been made more transparent. Themain121.cc
example has been modified accordingly. Note that the bug fix forlhaStrategy = ±4
parallels an analogous one made in Pythia 8.244 which had not been previously carried over to Pythia 8.3. - Fix for subscripting issue for photon beams, courtesy of Vittorio Zecca.
- New particle property directive
tauCalc
allows for a particle's proper lifetime to be set independently of its width. This is useful for studying the effect of lifetime for a particle when the particle width is otherwise negligible. - Significant speedup of parton distribution handling, and
thereby of the whole PYTHIA execution, since PDF is such a major
part of the total execution time. This has been achieved by
careful work by Dmitri Konstantinov and Grigory Latyshev.
In detail, the main changes are:
- In the LHAPDF6 interface the evaluation of the
x andQ^2 limits is extremely slow, such that a caching of these numbers increases execution speed by about a factor of 2 when LHAPDF is used. - A caching of info on the amount of
x already used up helps speed up MPI, ISR and FSR execution times, giving gains of order 20%. Main changes are in theBeamParticle
class. - Optimization of array handling in
LHAGrid1
give a speedup by about 5%. This is the internal PYTHIA implementation of interpolation in LHAPDF6 grids which, still after the LHAPDF6 improvements reported above, runs more than 50% faster than using the same PDF evaluated by LHAPDF6. This streamlining is made at the cost of not offering facilities like PDF error bands. - Also the special internal routines for the NNPDF 2.3 series
could be speeded up, but would still be slower than an equivalent
LHAGrid1
implementation. The NNPDF 2.3 sets therefore have been moved to the latter framework.
- In the LHAPDF6 interface the evaluation of the
- New base class
ShowerModel
introduced, as a top-level handler of parton-shower models, interfaced via a shared pointer inPythia.cc
. Changes to Pythia's default showers and to the Vincia and Dire shower models to inherit fromShowerModel
. New public methodPythia::getShowerModelPtr()
intended to provide a way to access public ShowerModel methods for diagnostics purposes. - Extra protection against unexpected input in
e+e- Les Houches events, specifically wherex >= 1 by roundoff errors. Thanks to Alexander Belyaev, Alexander Pukhov and Marco Zaro. - Bug fix in
SusyLesHouches::checkSpectrum()
, to ensure uniform error handling when one or more spectrum self-consistency checks fails. - Replaced use of
fabs()
byabs()
in several places. Although default C++abs()
only takes integer arguments,PythiaStdLib.h
contains the declarationusing std::abs
(via thecmath
header), which is suitably overloaded and obviates the need for separate methods. - Improvements to Vincia's handling of error messages;
now issued via
Info::errorMsg()
. - Removed
share/Pythia8/tunes
directory, with Vincia reverting to the same (in-code) way of setting tune presets as Dire and Pythia.
8.301: 30 October 2019
- Compilation is done with a new
-std=c++11
flag. - The Vincia and Dire parton-shower programs, which previously have
been available as free-standing add-ons to Pythia, are now fully
integrated into Pythia, and will henceforth be distributed as part of
this package. This has significant implications for code and
documentation. The new master switch
PartonShowers:model
allows a simple choice of which to use, with 1 being the simple old internal one, 2 being Vincia and 3 being Dire. Note that Dire always comes with weighted events, while the other two by default have unit weight events, so analysis strategies must be adjusted accordingly. - MadGraph-generated plugins for matrix element corrections to the
Vincia and Dire parton-shower programs are now available. A new
plugins directory has been created, where MadGraph5 matrix elements
can be stored. Note that this implementation still is preliminary,
with further improvements to come. To build the available plugins,
--enable-mg5mes
should be specified. - Four new main programs have been introduced in the context of
illustrating the Vincia and Dire shower models. Two of them also serve
as examples of multithreading if Pythia is configured to link to
OpenMP.
main200.cc
provides a simple test of final-state shower components, in a LEP-like setup.main201.cc
compares two different shower models on dijet events. The two runs are executed in parallel if Pythia has been configured to link to OpenMP.main202.cc
measures the running time for ttbar events and outputs a few test distributions.main300.cc
can be linked against both HepMC2 and OpenMP, if Pythia has been configured correspondingly. It is capable of command-line instructions. - A new plugin header,
Visualisation
is available and used in the example programmain300.cc
. Events can now be visualized via output that can be passed through GraphViz to produce a postscript file. - Introduced a compromise for the treatment of lifetime and width,
so that these can be set separately in some situations. If an
SLHA
file is used to set particle properties, thenSLHA:allowUserOverride = true
allows the lifetime to be set using a command file/string. Otherwise, lifetime is calculated from particle width. The ability to have the width and lifetime as independent properties is convenient for studies of new physics. - The HTML and XML versions of the manual have been significantly reordered, with contents grouped in an increased set of main headings, each with an expandable index of subheadings. There are several new sections, notably for the Vincia and Dire showers. Among other changes, the example main programs have been classified by keywords, and are listed and searchable by these, see here.
- The PHP version of the manual has been discontinued, since it
would be difficult to maintain in conjuction with the ongoing expansion
of the html manual. The
include/Pythia8/phpdoc
directory has been removed. - The Python interface has been completely redesigned to handle
C++11
by migrating from aSWIG
generated interface to aPyBind11
one. It is now possible for users to generate their own interface. Full details are given on the Python Interface page. - The field
Pythia::info
of typeInfo
has been made a constant reference, so that it cannot be externally manipulated outside of the internal classes. This constant reference points back toPythia::infoPrivate
instance, which is for internal use only. This instance now also contains pointers to several other commonly used classes. - A new base class
PhysicsBase
has been created, from which several of the "physics" classes derive. This class standardizes the setup of pointers to commonly used classes, via theInfo
class. It has new methods that are called at the beginning and end of the generation of each event, and at the printout of final statistics. A new enumStatus
is provided in the method at the end of each event, to provide information on the reason for error exits. The access of the most commonly usedSettings
methods is streamlined. - Most of the pointers in the
Pythia
class are now shared pointers, such that there is no need forPythia
to keep track ofnew
anddelete
obligations. New headerSharedPointers.h
. - The
CoupSM
andCoupSUSY
couplings classes are now separated, rather than the latter being derived from the former. This avoids the problem of the oldCouplings
pointer potentially changing address, and some pointer casting. - Mathematical functions and methods have been extracted from the
PythiaStdlib.h/.cc
files and put in newMathTools.h/.cc
files. TherebyPythiaStdlib
is more clearly reserved for declarations related to the Stdlib library, to some simple inline expressions (nowconstexpr
where feasible) and to an expanded list of conversion constants. - A new method
Rndm::phaseSpace2
has been added, and can be used to sample two-body phase space. - The heavy ion machinery has been fixed so that particle vertex information in the event record is stored in units of mm rather than fm, while internal calculations still are in fm. Thanks to Christopher Plumberg.
- The data files related to parton distributions have been moved to
a new
share/pythia8/pdfdata
directory, and code has been changed accordingly. - Iterators are made available to simplify the study of the particles in the event record.
- A bug in the XML-to-HTML conversion has led to the indiscriminate
removal of "more" from the HTML manual, notably in
Pythia::moreDecays()
. - New class
LowEnergyProcess
for the hadronization of low-energy collisions between two hadrons. By default there is a smooh transition between this simple nonperturbative model and the full MPI-based framework at higher energies. To be used e.g. within the modelling of hadronic rescattering in the final state of high-energy collisions. This framework is still under development. - New
StringInteractions
base class to provide common administrative framework for string shoving, rope hadronization, swing, (some) colour reconnection models, and more. - The headers in
include/Pythia8Plugins
have been updated to no longer containusing namespace Pythia8
. Thanks to Axel Naumann for pointing out inconsistent usage of scope. - The build system has been updated to handle external package configuration scripts.
- The
ProMC
example and configuration option has been dropped. - Optional package configurations for
RIVET
andYODA
have been added. - Support for
BOOST
has been dropped and onlyLHAPDF6
with versions greater than6.2
are supported. - The flag
--openmp
has been added. Currently, OpenMP is used in some of the examples mentioned above, and inDireWeightContainer.cc
. - Bug fix so the option
UncertaintyBands:ISRpTmin2Fac
is correctly used inSimpleSpaceShower.cc
. - Bug fix stopping growth of number weights when multiple
init
calls are made inInfo
. - Bug fix for
SusyWidthFunctions.cc
incorrectly callingintegrateGauss
, resulting in a width of zero. - Bug fix to prevent overwriting of dark matter masses from unused model selections.
- Bug fix where instead of counting all PDG ids less than 100 as the Standard Model, masses of BSM Higges and dark matter are allowed to be set without changing minMassSM.
- All 2 to 2 SUSY processes now inherit from Sigma2SUSY.
- Bug fix for Les Houches Event File input without specified beams, such that multiparton decays of a resonance can be combined with showers, although with proper care needed so as not to doublecount emissions.
- Clarify that Q2 scale has to be set by hand for DIS processes, if so desired.
PYTHIA 8.2 series:
These update notes describe major updates relative to the PYTHIA 8.186 version, which was the last 8.1 release. The step from 8.1 to 8.2 gave an occasion to break backwards compatibility, but this should only affect a small part of the user code.
8.245: 29 October 2020
- Significant speedup of parton distribution handling, and
thereby of the whole PYTHIA execution, since PDF is such a major
part of the total execution time. This has been achieved by
careful work by Dmitri Konstantinov and Grigory Latyshev.
In detail, the main changes are.
- In the LHAPDF6 interface the evaluation of the
x andQ^2 limits is extremely slow, such that a caching of these numbers increases execution speed by about a factor of 2 when LHAPDF is used. - A caching of info on the amount of
x already used up helps speed up MPI, ISR and FSR execution times, giving gains of order 20%. Main changes are in theBeamParticle
class. - Optimization of array handling in
LHAGrid1
give a speedup by about 5%. This is the internal PYTHIA implementation of interpolation in LHAPDF6 grids which, still after the LHAPDF6 improvements reported above, runs more than 50% faster than using the same PDF evaluated by LHAPDF6. This streamlining is made at the cost of not offering facilities like PDF error bands. - Also the special internal routines for the NNPDF 2.3 series has been speeded up by more than 10%, by optimized interpolation routines.
- In the LHAPDF6 interface the evaluation of the
- Several fixes to avoid out-of-bound evaluation of vectors in the merging code.
- Several fixes to correctly handle CKKW-L merging of EWkino- and higgsino-processes have been included.
- Include the functionality for MC@NLO-Delta matching with aMC@NLO.
This requires runtime interfacing of Pythia and aMC@NLO, and can not
be employed by other users. New functionalities
include new PDF treatments in the parton shower (see new
TimeShower:pdfMode
andSpaceShower:pdfMode
settings), a new way to access shower no-emission probabilties for external codes by exposing the newMerging::generateSingleSudakov
method, and a new way to retrieve shower-specific kinematic variables for aMC@NLO (see new settingMerging:runtimeAMCATNLOInterface
and the new methodsMerging:runtimeAMCATNLOInterface Merging::getStoppingInfo
andMerging::getDeadzones
). - Further bug fixes for the hard process name handling for weak-boson-fusion-like processes, that led to an incorrect counting of additional emissions.
- Small fixes to history construction in the presence of multiple resonances.
- The primordial kT for LHE files is now set by the
BeamRemnants:primordialKThard
average value, rather than the LHEscale
, since the latter may be quite low e.g. in the POWHEG approach. - The problem of "dangling" gluons causing changing color flows in
SimpleTimeShower
for top decays is now fixed. The fix is not fully validated for RPV. - Extra check added to
SimpleSpaceShower
for the case where a small daughter PDF value can lead to an infinite loop if PDF variations are switched on. - Bug fixed in the new possibility to let particles with narrow widths (such as onia states) obtain a simple Breit-Wigner distribution, specifically for MPIs, introduced in 8.240. This bug led to excessive rejection of low-invariant-mass interactions. Thanks to Albert De Roeck.
- An indexing bug, for the scattering lepton in DIS events with photon radiation allowed, has been fixed.
- Added a few copy constructors to match corresponding assignment operators, to avoid warnings for some compilers.
- Small fix in cross section calculation of
main89.cc
. - Fixes in
configure
andexamples/Makefile
to have ROOT examples work again. main.cmnd
, = 81-84, 87-88 have been slightly modified such that linking to LHAPDF6 is not required by default.- A bug in the XML-to-HTML conversion has led to the indiscriminate
removal of "more" from the HTML manual, notably in
Pythia::moreDecays()
.
8.244: 20 December 2019
- The combination of weight variations, within the context of
uncertainty bands, has not been well documented and therefore prone
to misunderstandings. Now the behaviour of
Info::getGroupWeight()
has been made more transparent, and the documentation in Variations has been improved. Themain121.cc
example has been modified accordingly. - Restore the capability to set width and lifetime of a resonance
separately (see change in 8.240). Now the lifetime is set from the
width only if the
allowCalc()
method of the resonance class returns true. - Updated handling of Powheg files, such that files with
multiple/variable number of real emissions can be handled. The default
value of the
POWHEG:nFinal
parameter has been changed to -1, see the POWHEG Merging documentation. - Limit the amount by which transverse smearing of the space-time
quark-antiquark string breakup vertices can give large shifts,
which may translate into unreasonably long invariant times being
assigned to primary hadron production vertices. This is regulated by
the new
HadronVertex:maxSmear
parameter. Even so, large hadron production invariant times may still occur occasionally by imperfections in the reconstruction around multiple gluon corners, soHadronVertex:maxTau
gives the possibility to reject the hadrons of such a parton system and try again. Also some other related changes. - Fixes for consistent storage of production vertices in units of mm. Thanks to Christopher Plumberg.
- Number of weights in
info
reset to 1 for each newinit
call.
8.243: 4 July 2019
- Bug fix in the Les Houches reader, where the introduction of
the optional
#scaleShowers
tag in 8.242 meant that parton showers were killed if that tag was not present. Should not affect LHE3-compliant files. Thanks to Helen Brooks. - The Python interface in
include/Pythia8Plugins/PythonWrapper.h
has been updated. - Obsolete method declaration in
ProcessContainer.cc
removed. main29.cc
has been updated with safer handling of a pointer. Address tiny issue of possibly uninitialized variable inColourReconnectionHooks.h
. Thanks to Leif Gellersen.
8.242: 1 July 2019
- A bug fix in 8.240, for an issue with colour vs. anticolour assignment
of dipole ends in baryon-number-violating decays, unfortunately introduced
a bug of its own. Specifically, in cases where the recoiler of a final-state
radiation is in the initial state, the recoiler colour type should
be negated relative to a final-state recoiler. In addition, the new
code has been extended to apply for all colour (anti)triplets, including
(anti)squarks. The bug has meant that high-
pT jets in some flavour combinations have acquired a larger multiplicity than they should, at very highpT by up to 10%. Physics at lowerpT scales appear unaffected, as is e.g. top,W ,Z andH decays. Thanks to Patrick Komiske and Jesse Thaler. - New particle decay codes 93 and 94 for singlet particle decaying to a
q qbar pair plus a new singlet. Thanks to Philippe Mermod. - Fix cases where
scale()
andscaleSecond()
return values were not stored in the event record, by allowing new#scaleShowers
tag in Les Houches events. Thanks to Oleh Fedkevych. - Bug fixes to the LHEF3 file reader. An issue previously led to some tags being skipped, if the line before the tag was commented by a hash/pound sign (#).
- Protect against potential square root of negative number in Dark Matter resonance handling. Thanks to Peter Richardson.
- The implementation of the indexing operator
event[i]
has been changed from straight vector indexing to using theat(i)
method, giving some safety against out-of-bounds indexing with little to no cost in execution time. Thanks to Helen Brooks. - The new method
Event::free()
empties the event record, likeEvent::clear()
,but also frees up the memory of theParticle
vector. - Fix that PDF set 22 was unreachable, since a range check had not been updated.
- Static code analysis by Dmitri Konstantinov and colleagues revealed
four errors, now fixed.
- The
H^+ contribution was missed in BSM Higgs width calculation for thegamma + Z^0 channel. - Typo in the expression for the slepton/sneutrino partial width to a chargino plus a neutrino/lepton.
- Typo in the merging machinery for SUSY pair production.
- Possibility of incorrect kinematics when photoproduction involves off-shell photons.
- The
- Fixed faulty behaviour in PartonVertex asssignment, where parton
shower would boost vertices to unphysical spatial points. To this end
the event and particle
rotbst
methods have been endowed with a second optional argument not to boost production vertices. - Bug fixes to the "guess" option for defining hard process name for
multijet merging. An issue previously led to the hard process name being
only corrected once for the first event, and then no longer adjusted
automatically.The
main89.cc
program has been modified as a consequence. - Bug fixes for the hard process name handling for weak-boson-fusion-like processes that led to an incorrect counting of additional emissions. In multijet merging, this led to incorrect no-emission probabilities being applied to such processes.
- A winner-takes-it-all strategy for choosing parton shower histories
has been added in multijet merging. This is an unfortunate necessity for
extremely high multiplicity merging, to avoid excessive memory usage.
Other memory usage tweaks have been included in the
History
class. - Corrections and extensions to the VMD framework for photon beams,
including improved kinematics and minor corrections for the production
of VMD states. It is now possible to generate the
J/Psi as one of the VMD states. - Process
g gamma → t tbar has been enabled, see Top Processes for details. - Fixed cross section for heavy-quark pair production in gamma+gluon and gamma+gamma fusion processes. Thanks to Javier Alberto Murillo Quijada.
- Bug fix for hard diffraction and resolved photons, wherein kinematics is not recalculated when previous steps already failed.
- Bug fix in the check that energy-momentum is preserved, without which
DIS events e.g. generated with
main36.cc
are falsely rejected. - New setting
Beams:allowVariableEnergy
allow incoming beam energies or momenta to be set event-by event, by further arguments to thepythia.next
call. This is achieved by initializing the MPI machinery at a grid of CM energies, and then interpolating as needed. Thus only processes belonging to theSoftQCD
family for inclusive hadron-hadron collisions can be simulated. This is unlike theBeams:allowMomentumSpread
, which can be used for any process, but only in a narrow energy range around the nominal one. The selection of grid energies for diffraction and photon beams has been unified with the new one above. See further in the "Variable collision energy" section of the Beam Parameters description. - Some simple methods have been added to the
Event
class, to return the final-state multiplicity, or the rapidity/angular separation between two particles in the event record. - A simple method has been added to the
Settings
class, to check whether onlySoftQCD
processes are switched on. - A new check at initialization to warn if
SoftQCD
processes are mixed with other kinds of processes, since this can lead to doublecounting and/or low efficiency. - New
main77.cc
example how double parton scattering events can be reweighted according to a different model than default in Pythia. Contributed by Boris Blok and Paolo Gunnellini. - The examples
main10.cc
andmain62.cc
have been rewritten to avoid having histograms in global scope. - Fix minor typo in the
I_0 andI_1 Bessel functions. - Various other minor typo corrections.
- Year updated to 2019.
8.240: 20 December 2018
- Nadine Fischer leaves the PYTHIA collaboration. New affiliations for Nishita Desai, Ilkka Helenius and Stefan Prestel.
- All soft QCD processes, including elastic and diffractive, are now
implemented for photoproduction in connection with lepton beams. These
can also be applied to ultra-peripheral collisions by providing an approriate
photon flux. This involved some restructuring of related code, mainly between
PhaseSpace.cc
andGammaKinematics.cc
. - A modified coalescence model for (anti)deuteron production
out of (anti)protons and (anti)neutrons has been implemented.
The model and its parameters are further described on the new
Deuteron Production page. The
model is enabled by
HadronLevel:DeuteronProduction = on
. New status code 121 for particles produced in this step. - A major restructuring of the parton shower code has begun,
with the objective that the Vincia and Dire parton showers should
be distributed as part of the Pythia package, to allow simple
switching and comparison between showers. So far, the
TimeShower
andSpaceShower
classes have been reduced to base classes for other showers. Therefore only the header files remain, while the.cc
files are removed. The existing shower algorithms have been moved to the new derived classesSimpleTimeShower
andSimpleSpaceShower
, located in correspondingly-named.h
and.cc
files. Finally, both class and filesWeakShowerMEs
have been renamedSimpleWeakShowerMEs
. Existing shower settings retain their names, for backwards compatibility. See further here. - Two new proton PDF sets, NNPDF3.1sx+LHCb (N)NLO+NLLx LUXQED,
have been introduced. Since they include small-
x resummation they offer a more reasonable small-x behaviour for use in a LO context. The old set 21 has been removed and replaced by the new NLO/NNLO ones as sets 21 and 22. Thanks to J. Rojo. - The GKG18 Pomeron PDF sets have been updated to the final version. In addition both LO and NLO fits are now provided for Fit A and Fit B, in each case for the central member.
- The Dark Matter setup has
been extended with some new processes, for
f fbar → Z' H andq qbar → Drell-Yan production of charged co-annihilation partners of several different kinds. As a consequence also some new particles are introduced in the DM scenario. - The html/php documentation has been extended with an index on the top of (almost) all pages, with links to the main subsections. The level of headers has been adjusted for consistency in some places.
- A new switch
StringFragmentation:TraceColours
allows fictitious colour and anticolour indices to be set for the primary hadrons, according to the colour indices of the endpoint partons of the string region(s) in which each hadron is produced. - The
configure
file has been made more verbose, both on choices made and on any problems encountered. - Some improvements of the merging machinery for high-multiplicity merging, in particular correcting an inconvenient choice in the organization of the construction of all paths that slowed down the code significantly. Added new functionality to info pointer to set auxiliary event attributes. Updated UNLOPS merging to allow user-defined merging scale definition.
- Improved handling of beams to allow more straightforward handling of neutrino scattering. Allow the PDFs of both beams to be set independently, such that one can be used to emulate the varying neutrino flux.
- Improvements to the beam handling to allow QED radiation in DIS events.
- The User Hooks machinery for modified hadronization parameters has been extended with a few more arguments and methods.
- The
HistPlot::add()
method has been extended so the input histogram could be a temporary one, e.g. a rescaled histogram or the sum or ratio of two. - The
PartonSystems
class has been extended to also store the location of a single resonance mother of a system, not only incoming beam partons (where relevant) and outgoing ones. Consequently some methods have been added or modified. - A new base class method
TimeShower::showerQEDafterRemnants
has been added, and is called at the very end of the parton-level step. - Correct sign and phase of the Coulomb term in the ABMST and RPP
elastic
pp/ppbar cross sections, owing to typos in the respective articles. - A new overestimate for photon flux optimized for the flux from
heavy ions. Related parameters are listed on the
PDF Selection page, and usage is
demonstrated in the
main70.cc
sample main program. This should reduce the generation time roughly by a factor of six. - A switch to select for which side the hard-diffractive selection is done is introduced, see Diffraction.
- A small correction for photoproduction kinematics with a massive photon emitter.
- Removed resetting the
pT0Ref inmain69.cc
forgamma + gamma case, since the new retuned default parametrization is sufficient. A similar setting forgamma + proton is introduced, however. - Bug fix in
A^0 → H^+- W^-+ decays: coupling parameter name was misspelt. - Fixed missing possibility of secondary vertices in some shower branchings, notably in the Hidden Valley shower. Thanks to Malte Buschmann.
- Bug fix in the lower
Q^2 limit of the equivalent photon flux around a proton. Mainly affects the shape at largex values. - The initializer list of all class constructors has been extended such that all class variables are initialized to the default value of the respective data type, when not explicitly initialized to something else.
- Forgotten initialization of
isDiff
inProcessContainer.cc
fixed. May affect soft diffraction with photon beams. Thanks to Vittorio Zecca.isDiff
made obsolete by subsequent change. - Reset cross sections after choice of photon VMD state. Corrects
bug that could give incorrect
gamma-p andgamma-gamma cross sections. Thanks to Celine Degrande. - Initialize some variables that are not otherwise initialized
when using
TimeShower::showerQED
. Thanks to Kevin Pedro. - Minor change in
BeamParticle
for more flexibility in resolving beam remnants. Thanks to Laurent Forthomme. - Fix incorrect combination of a displaced vertex in the hard process
and a displaced beam vertex. Introduce a new method
Particle::vProdAdd
to shift an existing vertex. Thanks to Felipe Rojas. - Fix forgotten initialization of particle data
hasChangedMMinSave
andhasChangedMMaxSave
. Thanks to Vittorio Zecca. - Fix so that
Info::isVMDstateA()
andInfo::isVMDstateB()
by default return false. Thanks to Axel Naumann. - Do not set
p3weak
andp4weak
in timelike showers when not used. Thanks to Vittorio Zecca. - Fix so that the SKI and SKII colour reconnection scenarios are called in the relevant configurations, as now described in the manual. Thanks to Marina Beguin.
- Speed up the TimeShower when global recoil is switched on. Too much time was spent determining whether a dipole was from the hard process, which is now solved by storing whether a system is the hard one or not.
- Check and correct for incorrect colour vs. anticolour assignments of dipole ends in baryon-number-violating decays. Also do more extensive search to find moved/new colour dipole recoil ends.
- Note that in 8.235 update, the SaS/DL description of elastic
scattering was upgraded by the addition of a
1 + rho^2 factor. Although a small effect, it lead to an undocumented decrease in the default nondiffractive cross section. Thanks to Rick Field. - The SLHA interface has been updated to parse non-integer entries in the QNUMBERS block, to allow for definitions of millicharged particles. Note that such charges will still be rounded to zero internally in PYTHIA, since bremsstrahlung corrections are negligible. Thanks to A. Pukhov for pointing to this issue.
- Add possibility to preload calibration files in Rivet analyses. Added methods for analysis options and ignore beam configurations.
- Include option with black-disc Glauber for nuclear collisions.
- Some minor bug fixes in the AA machinery.
- Added methods to iterate over nucleons; useful for Glauber analyses.
- In
main93.cc
Rivet analysis options are set from the.cmnd
file, and heavy ion information is added to the HepMC file. - Bug fix to ensure that
Tune:pp = 0
does nothing. - Extra safety check for inconsistent input to the SLHA interface.
- New possibility to let particles with narrow widths (such as onia
states) obtain a simple Breit-Wigner distribution, both in hard
processes and in MPIs, assuming their widths are above the new
PhaseSpace:minWidthNarrowBW
parameter value, but still not so large that they merit a completely dynamical mass generation. - New
ParticleData::isOnium()
to identify onia states. - The
ResonanceWidths:minWidth
default value has been changed from 1e-20 to 1.97e-19, meaning that resenances with a lifetime of above 1 km are set stable. - For unstable resonances the width is translated into a lifetime
(
tau_0 ) at setup. TheParticleData::setTau0
method has been extended with a second optional argument so that this does not have to count as changed particle data. - The
ResonanceDecays::MSAFETY
mass margin has been changed from 0.1 to 0.01 GeV to allow for longer-lived particles. - Fix for gluino R-hadrons, which before got a too large, by about half a GeV, and variable mass.
- Minor extra safety check for the setting of space-time production vertices.
- Several new methods for the
RotBstMatrix
class, to obtain an inverse without overwriting the original, to perform vector and matrix multiplication by an overloaded * operator, and to provide variants of thetoCMframe
andfromCMframe
methods. - Minor modification so that
ProcessLevel:all = off
does not give any hadronization/decay activity at all if alsoHadronLevel:all = off
. - Introduce a safety check that exits when no dipoles are found for the new colour reconnection scenario.
- Improve reweighting scheme when a second hard process is generated,
by symmetrization of PDF weights, better bookkeeping of weights above
unity, and possibility to reduce the number of above-unity weight events
by the new parameter
SecondHard:maxPDFreweight
. - New possibility to input (and output) Double Parton Scattering parton configurations by an extension of the Les Houches Accord standard, although with some restrictions.
- Minor modification in the parsing of settings vectors input as strings enclosed in braces.
- Change the default value of
ResonanceWidths::MASSMIN
from 0.4 to 0.1 GeV by ATLAS request.
8.235: 27 March 2018
- Up until now, PYTHIA has been licenced under GNU GPL v2 or later. This is extended so that alternatively any later version can be used, specifically version 3. The MCnet GUIDELINES are updated accordingly, as are many file headers. Thanks to Christophe Delaere.
- The machinery for total, elastic and diffractive cross sections
has been rewritten and expanded.
- The ABMST model App16 has been introduced, and extended from total, elastic and single diffraction to also include double and central diffraction.
- The RPP 2016 parametrization Pat16 for total and elastic cross sections has been introduced.
- The set-it-yourself machinery has been extended and systematized.
- The descriptions on the TotalCrossSections and the Diffraction webpages have been regrouped. The former now describes both integrated and differential cross sections of all scenarios, whereas the latter describes parameters related to the hadronization of diffractive systems, and additionally the machinery for hard diffraction.
- In the process of this regrouping, several
Diffraction:xxx
parameters have been renamedSigmaDiffractive:xxx
. The most prominent example isPomFlux
, but the largest group is the MBR parameters set. - The phase space generation machinery has been rewritten to allow for the extended set of models, to be more general (at the expense of speed). Also the cross section code itself has been restructured.
- A scenario for hard diffraction with
gamma beams has been introduced, applicable for bothgamma + gamma andgamma + p processes. Only a resolved photon, currently always associated with a virtualrho state, is assumed to contain a Pomeron flux. See further in the Diffraction description. The framework can be applied also for photoproduction with lepton beams. - A new machinery has been introduced to handle soft diffraction in
gamma-p andgamma-gamma collisions, based on VMD (Vector Meson Dominance) states assumed present in a photon beams. In detail, diffractive cross sections forgamma + p andgamma + gamma have been introduced, and thus the parameterPhoton:sigmaNDfrac
has been removed. VMD states have been introduced as possible beam particles inside a photon beam. The standard beam machinery has been extended to pick VMD states when required. New methods inInfo.h
give access to the current character of such states. Possibility to rescale the pion PDF has been implemented, e.g. when used to represent a VMD state. - It is now possible to obtain space-time production points for hadrons as predicted within the string fragmentation model, see further the "Hadron Production Vertices" section of the Hadron Scattering description. Physics and code developed by Silvia Ferreres-Solé, article in preparation.
- The Angantyr model for Heavy Ion Collisions
has been updated with a few extra options and new defaults. To recover old
results one needs to set
Angantyr:SASDmode = 1
,Angantyr:impactMode = 0
, andHIPDF:PomHixSupp = 4.
. - It is now possible to specify a given impact parameter when generating minimum bias events using a new functions in the UserHooks.
- The flavour part of the rope hadronization implementation has been updated. The option to always go to the highest possible SU(3) multiplet, relevant when junction CR is used in addition to ropes, has been added. The possibility of a simpler impact parameter model à la Buffons needle Bie16c has also been added.
- An option is introduced to have a logarithmic parametrization for
the energy dependence of
pT0 , used for the cross section regularization in the MPI framework. This is used as a default forgamma-gamma collisions, with new default parameters listed in the Photoproduction description. - A new parameter
ContactInteractions:etaRL
is introduced into the differential cross section forq qbar → ell+ ell- to distinguish a right-left contact interaction between quarks and leptons. Previously, the same parameter was used for left-right and right-left contact interactions. Results from prior versions of the code can be reproduced only ifetaLR
andetaRL
are set equal. - A new Dark Matter production process
f fbar → Z' H has been added, withZ' decaying to a DM pair. Some other DM processes have been modified. - It is now possible to specify the
a and<z> values of the Lund fragentation function, as an alternative to the conventionala andb selection, see further in the Fragmentation description. - The shower variations have been extended so that the calculation can be made for an individual member of a PDF family, instead of calculating the effect when averaged over all members.
- Possibility to enhance rate of gluon branchings to charm and bottom
independently from light flavours. New splitting names
isr:G2QQ:cc
andisr:G2QQ:bb
are introduced for initial-state showers, andfsr:G2QQ:cc
andfsr:G2QQ:bb
for final-state ones. See further the User Hooks documentation. - A new nuclear PDF set, EPPS16, is added.
- The GKG-DPDF Fit A and Fit B (central member) diffractive PDF sets have been added.
- The central NNPDF 3.1 QCD NLO and NNLO fits at
alpha_s = 0.118 ,PDF:pSet = 19
and20
, have been replaced by the more recent corresponding NNPDF 3.1 QCD + QED (luxqed) fits. - Updates for non-diffractive photoproduction with externally provided photon flux, to fix the normalization and to solve issue with process initialization when using a heavy-ion specific flux.
- Updated remnant kinematics for
2 →1 processes with direct photons from leptons. - A Docker container for PYTHIA 8 and DIRE can be obtained from http://dire.gitlab.io/Docker/. You will there also find some Jupyter notebooks and notes e.g. how to use Rivet analyses.
- An example, main93, is added, which provides an updated ROOT interface, as well as options to run RIVET and output HepMC files, all steered from run cards and the command line.
- Updated
main89.cc
to allow use also without employing matching or merging. This allows to use this main program as an option to read from LHE file input and write HepMC file output. Furthermore,main89.cc
has been updated to also allow Pythia to guess the hard process used for merging through theMerging:process = guess
setting. More details can be found in the discussion of merging and hard process definitions under CKKW-L Merging in the manual. - A new class
HistPlot
is introduced to generate PDF plots from the histograms of theHist
class. More specifically, the histogram contents are written on files and Python code is generated that contains appropriate Matplotlib/Pyplot commands, that can then be run to produce the plots. Themain03.cc
,main07.cc
andmain51.cc
programs have been modified to illustrate the new setup. Histograms can now also be booked with a logarithmicx scale. Thanks to Johannes Bellm. - New simple facility introduced in
PythiaStdlib
for integrating a function by Gaussian quadrature or findig its roots. In part lifted out fromSusyWidhtFunctions
. - When a particle is read in by the SLHA interface, the minimal and maximal allowed masses for the Breit-Wigner distribution can be set by the user but, if not, the maximal deviation from the nominal mass is now set to be the smaller of five times the width and half the mass.
- A bug was found in
PhaseSpace2to2diffractive::trialKin
wherebys3
ands4
were not correctly reset for the non-default case ofBeams:allowMomentumSpread = on
. It led to non-thread-safe execution. Thanks to Dominik Mueller. This bug is not fixed per se, since the diffractive phase space machinery was rewritten anyway, so that the same issue never arises. - A bug was fixed in the Hidden Valley model to allow copies of the hidden valley quark to properly shower and hadronize.
- A bug fix in the
q g → Leptoquark l process, whereby the role oftHat anduHat was incorrectly swapped. Thanks to Yiming Zhong and Martin Schmaltz. - A bug fix in the
q g → onium q processes in the MPI machinery, whereby it was not correctly symmetrized. Thanks to Steffen Webber. - Minor updates for the print format in MPI initialization.
- Corrected issue in timelike and spacelike showers that meant that the inclusive cross section was changed slightly when enabling shower variation.
- Ensure that all matrix-element corrections in timelike showers are switched off when that option is set.
- Fixed beam-remnant kinematics of scattered leptons when using
PDF:lepton=on
with lepton beams. - Bug fix in the Alpgen interface for parton shower matching of non-QCD partons. Previously the matching would hang when encountering a resonance.
- A modification in the strategy to get or set particle data saves having to search a map twice. New methods introduced to return an iterator of an entry to the map as part of this.
- New method
PartonSystems::popBackOut(iSys)
helps to remove the most recently added outgoing parton of a given parton system. - Handling of multiple PDFs via the LHAPDF6 interface is rewritten for more flexibility. For instance, not all members of a set are loaded unless uncertainty variation studies need them. A destructor problem is also solved for the case that a Pythia object is made global. Thanks to Florian Herrmann.
- Fix for PDF setup when second incoming hadron is a pion or other meson.
- Les Houches events with incoming top quarks are skipped, since the ISR and beam-remnant machineries are not set up to handle top.
partonSystems
vector cleared in beginning ofPythia::forceTimeShower
.- Modification in the parsing of a
wvec
, to avoid the removal of the first=
sign in the first entry. - Updated
examples/Makefile
to address recent problem that libz is not properly linked if the GZIP flags do not appear at the end of the compile command, experienced with recent gcc versions on Ubuntu. - Fix typo in
bin/pythia8-config
. - Remove obsolete
--with-lhapdf6-plugin
option in theconfigure
script. Thanks to James Monk. - Minor per-nucleon mass update in
main70.cc
. - Minor fix to avoid division by zero in resonance mass selection.
- New xml tags introduced to group parameters visually in conversion
to html, by omitting the paragraph break before a tag that contains
more
, e.g.parmmore
. - Year has been updated to 2018.
8.230: 6 October 2017
- Christian Bierlich joins as co-author. Philip Ilten has new affiliation.
- New dipole-shower option for initial-state radiation
contributed by Baptiste Cabouat, see
SpaceShower:dipoleRecoil
. More specifically, a unified description of initial-final and final-initial dipole ends is introduced, as described in Cab17. This allows a description of showers in Deeply Inelastic Scattering, illustrated bymain36.cc
. - A new Heavy Ions machinery has been
added, that allows PYTHIA to generate pA and AA collisions within a
simple model. This entails significant additions to the PYTHIA code,
and some changes. Some of the key points are:
- A new
HeavyIons
base class is introduced, which exists insidePythia
but itself can contain severalPythia
instances to handle different subcollision types. - A new derived class
Angantyr
provides the default heavy-ion description. It is inspired by the oldFritiof
model And86 with recent improvements Bie16a. - A number of utilities that are used by
Angantyr
, but could also be used by an external Heavy ion generator, such as the nucleon distribution inside a nucleus. - Particle data have been introduced for a few heavy ions, notably 208Pb, code 1000822080.
- A new
PomHISASD
pomeron PDF that is actually a rescaled copy of the default proton PDF. New code inserted to keep track of pomeron momentum fractions for such rescaling. - The new capabilities are illustrated in
main111.cc
,main112.cc
andmain113.cc
, for pp, pPb and PbPb collisions, respectively.
- A new
- New Rope Hadronization framework made available. This introduces the possibility to enable string shoving as described in Bie16b and flavour ropes as described in Bie14. Both models attempt to model collective effects at a microscopic level, with inspiration from lattice QCD and the dual superconductor picture. These methods are still being actively developed, and users should expect changes in coming versions of Pythia. User feedback is encouraged.
- New framework for setting partonic production vertices in MPI,
FSR and ISR, see further here.
Still at a primitive stage, and currenly only used for the
rope hadronization framework. It replaces a previous setup with
UserHooks. The
main65.cc
example has been removed. - New search function introduced in the
html
documentation. You can type a word or phrase in the new "Search" box near the top of the left-hand index field, and immediately get up a list of links to places where it occurs. - New processes for
3S1 charmonium or bottomonium production in association with a photon, accessible through the new switchesCharmonium:gg2ccbar(3S1)[3S1(1)]gm
andBottomonium:gg2ccbar(3S1)[3S1(1)]gm
. - In
configure
the plugin option for LHAPDF6 is removed, such that now LHAPDF5 uses LHAPDF5.h and LHAPDF6 always uses LHAPDF6.h. Previously LHAPDF6 used the LHAPDF5.h Fortran wrapper by default. Since LHAPDF 6.2 no longer requires BOOST this dependency has been removed. People using earlier LHAPDF versions must now explicitly enable BOOST. The "-std=c++98" flag has been removed to simplify compilation together with programs using later C++ standards. An "--enable-optdebug" alternative has been added for debug with optimization allowed. Makefile
is updated to handle the removal of the LHAPDF plugin option, slightly improved for better compatibility across platforms, and an old shared library will be removed also when a compilation only generates a new static library.- Fix up the extrapolation procedure of external PDFs, notably the
ones accessed by the LHAPDF5 interface (previously also available for
LHAPDF6). PDFs are now explicitly frozen at borders, except that
PDF:extrapolate
can be switched on to allow extrapolation to lowx . Note that, as a consequence, results can change if you have used external PDFs for the MPI description. The native LHAPDF6 interface already froze at borders, but now optionally allows low-x extrapolation. Thanks to Radek Zlebcik. - Implementation of nuclear PDFs for hard processes. See
PDF Selection
for more details. - A new proton PDF added, which sets out to combine a NNLO behaviour
at high
x values with a sensible LO low-x one, seePDF Selection
for more details. - The
main51.cc
,main52.cc
andmain53.cc
PDF examples have been modified to use LHAPDF6 by default rather than LHAPDF5. - A new method to provide an external photon flux to study
photoproduction with different fluxes. Still optimized for lepton beams,
but also other fluxes can be studied. See new sample main program
main70.cc
for examples. - The machinery for
Automated Shower Variations
has been extended to also take into account the PDF variations
inside a PDF family, using the LHAPDF6 machinery for this.
It is now also possible to stop variation uncertainty evaluation
below some scale, so as to better correlate the event weighting
with the harder part of the event evolution. The new
main121.cc
example illustrates how to set up the variations. - The MixMax random number generator Sav15,Sav16 is made
available as a plugin distributed with PYTHIA, in the new
include/Pythia8Plugin/MixMax.h
file, see the Random Numbers description. Some minor modifications are needed for linking, seeexamples/Makefile
and themain23.cc
example. The latter has been updated to include a comparison of execution time between the default and the MixMax generator. - Improved junction colour tracing to fix some problems e.g. in
processes with Baryon Number Violation (BNV). Specifically, it is ensured
that in- and out-colours are labelled differently for a particle
with a BNV vertex both in production and at decay, to avoid colour
lines being shortcut. Further examples have been added to
main25.lhe
. Thanks to A. Monteyx, M. Buckley and F. Jimenez. - Further processes have been added for Dark Matter production,
either by a scalar or by a vector
s -channel mediator, see the Dark Matter Processes description. Also a newmain75.cc
example. - Fix minor (order 5%) normalization error of the impact-parameter
enhancement factor for two preselected hard processes in the MPI
framework, see
Info::enhanceMPIavg()
. Thanks to Jonathan Gaunt. - Minor fix in
pythia8-config
to solve some parsing issues. Thanks to Gavin Salam, Dmitry Konstantinov and Emanuel Hoogeveen. - Fix typo in reweighting machinery in
SpaceShower.cc
. - Several minor fixes to protect from rare occasions of division by zero. Thanks to Steffen Weber.
- New option in the single-particle gun in
main21.cc
, to allow the input particle have a lifetime and thus decay some distance away from the origin. Thanks to Graham W. Wilson. - Maximal number of histogram bins increased to 10000 and a warning is printed if this limit is exceeded. Thanks to Roberto Franceschini.
- Ensure that the "thermal string fragmentation" is not inadvertently used for Hidden Valley fragmentation.
- Correct so that the
TimeShower:MEafterFirst
option takes effect ing → q qbar branchings. Does not change the default behaviour. Thanks to Keith Hamilton. - New particle methods
y( double mCut)
andy(double mCut, RotBstMatrix& M)
to calculate rapidity assuming a minimum mass, and optionally after a rotation/boost operation. - A minor bug fix to set up correctly the internal indices for the initiators from emitted photons. Thanks to Aaron Angerami.
- A new interface simplifying the usage of
Rivet
is found ininclude/Pythia8Plugins/Pythia8Rivet.h
and its usage illustrated in themain111.cc
example, see here. - A new utility to keep track of progress and time remaining in a run,
see
include/Pythia8Plugins/ProgressLog.h
, and an example inmain111.cc
. - New method
RotBstMatrix::value(int i, int j)
returns the value stored in the(i,j) element of the matrix. - Dummy class added in
Streams.h
and.cc
to avoid harmless warning message. - One more digit for PDG identity codes in event listings, at the expense of a shorter separation to the particle name.
- The bibliography now comes with anchor points for each article, and is directed to these from the text references.
- PYTHIA author list rearranged alphabetically.
- Several minor updates and improvements of the documentation.
8.226: 26 April 2017
- Implementation of
gamma-hadron collisions and photoproduction inlepton-hadron ones. Section Photon-photon Interactions renamed to Photoproduction to cover alsogamma-hadron documentation. ModifiedGammaKinematics
class to sample photon kinematics also with one photon. Added casegamma-hadron toSigmaTotal
. - Automatic mixing of resolved and unresolved photon-photon interactions.
Implemented by introducing resolved and unresolved PDF pointers for a
BeamParticle
, and calling the relevant one once the process has been selected. In case of one direct photon the correct number of photon-initiated processes (PhotonParton
) is set byProcessContainer
. A new methodInfo::photonMode()
to output the type of the process. Updated sample programmain69.cc
. - Check if there is room left for photon-beam remnants also in case of softQCD processes. Very rarely fails.
- A new partonic subprocess
q gamma → q gamma , mainly to study photon production inlepton → gamma - hadron collisions. - Modified kinematics methods for DIS and photoproduction physics, to take beam particle masses into account where important. For DIS, e.g., the incoming lepton is kept massive, which leads to slight changes only visible at very low energies.
- Redesigned the merging machinery to allow users to define their own ME+PS merging plugin, which can then be used by Pythia. This change does not affect the physics of Pythia's internal merging schemes. For further details see the new section on "Implementing an external ME+PS combination scheme and interfacing this plugin with Pythia" on the Matching and Merging page.
- Added some new (optional) virtual functions to the timelike and
spacelike showers, to ease ME+PS merging with shower plugin codes. The
change does not impair the compatibility of existing shower plugin codes.
See the description on how to
Implement New Showers,
the new methods
allowedSplitting(...)
andgetRecoilers(...)
, and the modifiedgetSplittingName(...)
ones. - New method
Pythia::addUserHooksPtr(...)
allows the simultaneous use of several User Hooks. When several hooks are applicable for a given task the net effect is multiplicative, in weights or in veto survival. It is up to the user to ensure that such combinations are the intended ones. - New User Hooks added to set the
space-time vertices for the ISR, FSR and MPI evolution process.
New
main65.cc
example illustrates how to set it up. Thanks to Christian Bierlich. - Bug fix in the user hooks machinery for setting fragmentation parameters, and an extension of this framework also to junction topologies.
- Four central members from the NNPDF 3.1 sets are made available,
as
PDF:pSet
(and equivalent) codes 17 - 20: the LO ones withalpha_s = 0.130 and0.118 , and the NLO and NNLO ones with the latteralpha_s . Note that these are rather different from the default NNPDF 2.3 ones; in particular the small-x behaviour is completely changed. Therefore MPI cross sections are appreciably modified for current parameter values, and retunes will be necessary before using NNPDF 3.1 in production. Thanks to Juan Rojo. - Construct
pi^+- PDFs so thatdbar = u andd = ubar , shortcutting the returnedd, dbar values since these are not always constructed correctly in LHAPDF. Thanks to Vincent Andrieux. - Upgrade from fjcore version 3.0.5 to 3.2.1. This removes the
usage of the deprecated
std::auto_ptr
C++ feature. Thanks to Ivan Razumov. - Fix a number of harmless but annoying warnings issued in some
versions of GCC 6.x, where the
-Wmisleading-indentation
flag appears to be on by default. Thanks to Ivan Razumov. - Bug fix the calculation of enhancement factor for the machinery
with two hard processes. By mistake statistics was added once with
the correct value for each event (accessible with
Info::enhanceMPI()
), and once with unity, leading to a dilution of the effect. The average enhancement factor is now also calculated at initialization, seeInfo::enhanceMPIavg()
andInfo::enhanceMPIoldavg()
. - Bug fix in
SusyLesHouches.cc
, in which the unitary checks of SLHA mixing matrices previously ignored imaginary components, leading to failures when reading in spectra with explicit CP violation. Thanks to M. Noormandipur for pointing to this bug. Mixing-matrix output simultaneously updated so that the magnitudes, rather than the real parts, of mixing-matrix elements are printed. - A new approach has been introduced to force settings values
outside their allowed range, either by using the keyword
FORCE
after the key (= parameter name) in anreadString()
orreadFile()
command line, or by using a new optional third argumentforce = true
(which isfalse
by default) in theSettings
methods used to change values. The latter methods also will add a new key to the database if not already there whenforce = true
is set. The old specialforce
methods are now redundant and will be removed in the next major release. - New methods
Settings::getReadHistory
andParticleData::getReadHistory
return a vector with all strings that have been read in by theSettings::readString()
andParticleData::readString()
methods, respectively, and thereby also the information set by thePythia::readString()
andPythia::readFile()
commands. - Introduce possibility to make phase space cuts on the DIS
Q^2 variable. - Add options to use the DIS
Q^2 variable as factorization and/or renormalization scale. - Introduce some freedom to modify the default shape of the low-mass part of diffractive cross sections, and thereby also the integrated value.
- The new
LHAupHelaconia
class ininclude/Pythia8Plugins/LHAHelaconia.h
provides an interface to the HelacOnia Sha15 package for onium production, see further the new HelacOnia Processes page. The newmain35.cc
example shows how to use the interface, and how to compare with corresponding internal Pythia results. - Modified
configure
andMakefile
s fixes an issue with linking shared libraries on a Mac, and automatizes the selection of whether to link static or shared libraries to the example main programs. - Two new
Vec4
methods introduced:cross4
for cross product of three four-vectors, andgetTwoPerpendicular
to create to four-vectors perpendicular to two given ones. - New
main74.cc
illustrates how the modified Mass Drop Tagger code in FastJet can be used to improve mass reconstruction of a resonance. - When using the
PhaseSpace:bias2Selection
to reweight high-pT events thePhaseSpace:pTHatMinDiverge
value is now used as ultimate fail-safe to avoidpT = 0 . - Bug fix in the
TimeShower::findMEtype(...)
for a few rare cases. - Bug fixes for the squark-gluino and gluino-chargino processes. The charge-conjugate processes were not handled correctly, since the PDF factors are different, and have now been separated.
- Minor addition to
Streams.cc
includes to avoid problems on one platform. Thanks to Joshua Ellis. - Bug fix in
HVStringFlav
, which otherwise left some Hidden Valley particles massless. Thanks to Colleen Treado. - A few minor fixes when Dark Matter is used as incoming beams in Les Houches input. Thanks to Roberto Ruiz.
- Minor bug fix where the process container for resonance decays
(only) from LHE input is not initialized. This can lead to the problem
where particle input without lifetimes are not corrected, even when
the
LesHouches:setLifetime
mode is non-zero. - Bug fix in
LED/Unparticle + Z^0 production: correct cross section for allowedZ^0 decay channels. Thanks to Andreas Albert. - Fixed memory leak in
TimeShower
, for the case when the ProcessLevel is off. Thanks to Ryosuke Sato. - Fix that the MPI machinery did not work for the (infrequently used)
MultipartonInteractions:bProfile = 0
option. - Minor division-by-zero bug fix in statistics calculation and
harmless uninitialized
bool
s inCoupSUSY
. Thanks to Vittorio Zecca. - Minor numerical precision improvements in gamma-gamma kinematics
and in
tHat anduHat construction.
8.223: 5 January 2017
- Nadine Fischer and Leif Lönnblad join as co-authors, while Jesper Roy Christiansen leaves. Nishista Desai, Ilkka Helenius and Stefan Prestel have new affiliations.
- The machinery for resolved γγ collisions has been extended,
such that now soft processes and MPIs can be simulated, also when
embedded in
l^+l^- collisions. (But not yet diffraction.) Also some further improvements have been introduced, see the Photon-photon Interactions description. This implies several changes in different parts of the code, mainly related to beam remnants and beam particles. -
Also direct-resolved and direct-direct processes are included for
γγ interactions, with photon beams and within lepton beams.
This involves new subprocesses where one initiator is a photon and the
other a parton. A new sample main program (
main69.cc
) illustrates how the different classes of γγ interactions are combined. - The kinematics of γγ have been revised to include all
mass corrections and to handle also non-equal leptons. A new class
GammaKinematics
is introduced to handle the sampling of the kinematics. A fix for theProcessLevel::roomForRemnants()
function, which rejected a bit too many processes when photon-photon collisions were generated within lepton beams. - New cuts for the kinematics of γγ interactions in
l^+l^- collisions are introduced, for details see Photon-photon Interactions. Matching new kinematics output methods, see Event Information. - A PDF for point-like photon is included. In case of lepton PDFs, the
photon contribution has now restricted virtuality and also more accurate
lower limit for the virtuality. A new option to use separate PDFs for
hard processes, with photon PDFs obtained from LHAPDF5. CJKL PDFs are
modified so that, instead of freezing the scale below its minimum,
the scale evolution is approximated with
log(Q^2) . - A new alternative "thermal hadronization" option is introduced,
wherein an exponential
exp(-pT / T) hadronic transverse momentum spectrum replaces the default Gaussian one, with a "temperature"T as free parameter. Given thispT , the next hadron (consistent with local flavour conservation) is picked among the possibilities with anexp(-mT / T) weight. This option is accessed withStringPT:thermalModel = on
. See further the Fragmentation and Flavour Selection descriptions and the article Fis16. - A new option
StringPT:closePacking = on
allows to enhance thepT width in regions where there is a high density of partly overlapping strings. This works both for the default Gaussian and the alternative exponential (see above)pT description; in the latter case it will also enhance the rate of heavier-particle production. See further the Fragmentation description and the article Fis16. - A new simple model for hadronic rescattering is introduced,
with two variants, as described in Fis16. A new master
switch
HadronLevel:HadronScatter
, by default off, andHadronScatter:mode
to pick among them and the old one. See the Hadron Scattering page for further details and parameters. New status codes 111 and 112 introduced for rescattered hadrons. - A first process for Dark Matter production, for the pair production
of new Dirac DM particles through an
s -channel vector-like mediator. - New mode
BeamRemnants:unresolvedHadron
can be used to let original hadron remain as beam remnant, e.g. for coherent emission of photons. - New option with running coupling in Hidden Valley scenarios. Some other small fixes in it.
- Fixed a check in the construction of all shower histories for the merging, which meant that not all histories were produced for squarks+jets. Included rudimentary facilities to guess the process for merging.
- Added functionality to write Pythia events to a LHEF3-style string, e.g. for use in an external Pythia caller.
- Improved safety checks for the presence of LHE files.
- New status codes 49 and 59 introduced for ISR and FSR partons,
respectively, to represent special states in the evolution where
E^2 - p^2 = m^2 is not fulfilled. - New behaviour of
Event::remove
, where mother and daughter indices now are updated by default. - Fix in the setup of tunes with
SpaceShower:rapidityOrder = off
. The new (in 8.219)SpaceShower:rapidityOrderMPI
then also ought to have been set off, but this was missed, giving small inconsistencies (around 2% reduction of the charged multiplicity). Thanks to James Monk. - New method
string Hist::getTitle()
to get the title of a histogram, whilevoid Hist::title(string )
sets it. Thanks to Roberto Franceschini. - Corrected behaviour for
R -hadrons produced in sequential resonance decays (for example a squark decaying to a gluino with the latter forming anR -hadron). Thanks to Jinmian Li for alerting us. - Minor updates so that
main91
andmain92
examples work also with ROOT 6, in addition to the existing ROOT 5 support. Thanks to Li Huang. - Include correct mass suppression for excited fermion three-body
decays
F^* → F Fbar f , primarily forF = t . Thanks to Olya Igonkina and Oleg Zenin. - Two new
Hist::rivetTable
methods allow histograms to be written on file in a format that Rivet understands. - New particle data method
nQuarksInCode(int idQ)
counts how many copies of the requested quark codeidQ
that a quark, diquark, meson or baryon code contains. - Bring the
FJcore
package inside thePythia8
namespace to avoid potential name clashes with user code. Thanks to Andy Buckley. - Fixed
flat_namespace
issue for macOS. Thanks to Juergen Reuter. - Ensure that bash shell is used in
Makefile
s. Thanks to Inga Strumke. - New
#define PYTHIA_VERSION_INTEGER 82xx
inPythia.h
matches already existing#define PYTHIA_VERSION 8.2xx
, for more convenient matching using integers. Thanks to Andrii Verbytskyi. - The handling of the
meMode
ranges 52 - 60 and 62 - 70 were incorrect, insofar as checks or not against duplication of existing channels go, and have now been set straight. Thanks to Christopher West. - Minor bug fix in the
TimeShower
machinery to optionally enhance the rate of some shower branchings. - A minor fix for
BeamParticle::popBack()
method to reset companion choice also ifiComp = 0
. - Cleanup of unmatched xml tags and other xml inconsistencies.
- Two minor particle data fixes.
- Small fix in the parsing code of
LHEF3.h
. - Year updated to 2017.
- Small clarifications in the documentation.
8.219: 10 May 2016
- An interface to the Python programming language has been introduced, see A Python Interface for details. Various minor changes in the C++ code have been done in order to permit the automatic generation of the interface.
- Included a new framework for automated parton-shower uncertainty bands. Variations of the QCD renormalisation scale for both initial- and final-state showers can now be computed by Pythia on the fly, and are provided as a list of alternative weights for each event, representing the probability that the given event would have occurred under different shower assumptions. So-called "nonsingular terms" can also be added to the splitting kernels to estimate the possible effect of missing matrix-element corrections. Full documentation is found on the Automated Shower Variations page, and a paper is due to appear on arXiv shortly.
- When a final-state
g → g g branching happens with a massive recoiler, radiation in the recoiler direction is now by default further suppressed to respect the "dead cone" effect, see new switchTimeShower:recoilDeadCone
. Furthermore a new switch,TimeShower:MEextended
, on by defaults, attempts to guess the most relevant ME correction when the correct choice is not known or implemented. Thanks to Jesse Thaler, Michele Selvaggi and Fabio Maltoni. - The
gamma-gamma hard-process machinery has been extended to convolute the partonic PDFs in a photon with the flux of photons inside a lepton. The description is intended for the region of quasireal photons, but full kinematics is implemented. - New constructors that take streams rather than files as input. Thus the contents of a file can be read and then broadcast to multiple instances of Pythia, eliminating the inefficiency of multiple jobs reading from the same initialization files. This facilitates running with MPIs (Message Process Interfaces). Affected areas are settings, particle data and PDF grids.
- Small additions and fixes to the LHEF3 framework, to keep track of weight keys, and improve parsing.
- A new class allows PDF data files in the lhagrid1 format,
with some restrictions, to be read and used. This does not replace
all that you can do with a complete LHAPDF6 installation, but at
least permits some simple studies without LHAPDF6 + Boost.
New example
main55.cc
illustrates this, and event properties for an intermediate spinless resonance inγ + γ → γ + γ at 750 GeV. - Four Pomeron PDF sets from the ACTW study Alv99 now implemented.
- The three Pomeron H1 Jets PDF data files have been joined to one.
- The external decays interface has been extended by a new method that allows sequential decays to be done in one call.
- Increased possibilities to set the
epsilon andalpha' parameters of the Pomeron trajectory for hard-diffraction Pomeron fluxes. - Extrapolation of PDFs to small
x values whenPDF:extrapolate = on
now extended to more cases. - New flag
TimeShower:QEDshowerByOther
allows charged resonances, like theW^+- , to radiate photons. - The jet matching algorithm in
JetMatching.h
has been extended to better handle heavy quarks, heavy colored particles (such as squarks) and "other" partons (coloured but produced from an Electroweak vertex). - Added a new option
SpaceShower:rapidityOrderMPI
, which will enforce an ordering in rapidity for emissions off secondary scattering systems. This will be enabled by default, ensuring backwards compatibility. The oldSpaceShower:rapidityOrder
now only refers to the hard(est) subprocess. - Changes to the cross section handling in the presence of user
vetoes/weights, containing three changes:
1. Counter of selected eventpythia.info.nSelected()
is now updated immediately after the hard process generation.
2. More fine-grained input settings to enforce that Pythia generates (or reads) exactly a fixed number of hard process events.
3. The Pythia "internal cross section"pythia.info.sigmaGen()
and the event weightpythia.info.weight()
now directly include the effect of event vetoes and event reweighting that are applied by the leading-order ME+PS merging prescriptions. - Changes to the merging classes to allow for a postponed CKKW-L event veto. (See end of CKKW-L Merging page for details.)
- Small changes to virtual parton shower functions, and to the merging classes, to prepare ME+PS merging with the Vincia parton shower.
- The HepMC interface has been
modified such that the detection of unhadronized quarks or gluons
leads to an exception being thrown, so that the user can decide what
action to take. See further new/renamed
free_parton_exception
switch. The usage of exceptions for this specific task is by request from ATLAS, and does not represent a general change of programming style. Thanks to James Monk. - A class
WVec
has been introduced to store vectors of strings. The delimiters { } are introduced to provide input with embedded blanks, and broken up across several lines. See further the Settings Scheme description. - The
Settings::toLower
method used to convert a string to lowercase, and also trim it from initial or trailing blanks and special characters, now moved toPythiaStdlib.h
so it can be used more generally. Other code changes accordingly. - Remove many rarely (if ever) used
ostream& os = cout
optional arguments in favour of hardcodedcout
in the code. Eliminates some redundancy of methods. - Rename
...print(...
methods to...list(...
to favour a more regular naming pattern. - Minor
configure
andMakefile
updates, to address potential linking problems on some platforms for boost, gzip and promc. Thanks to Dmitri Konstantinov. - New
--config
option ofpythia8-config
echoes the arguments passed toconfigure
. - The description of
POWHEG:vetoCount = 0
has been corrected. Thanks to Florian Koenig. - Allow for lightest neutralino not to decay as a resonance.
- Do not switch off the Breit-Wigner width treatment of a resonance as easily as previously, but only if the width is below 1e-6 GeV.
- Make some
SlowJet
methods virtual to allow derived classes with modified properties. - Moved some misplaced info on parton-level choice of MPIs.
- Corrected typos where some bottomonium long-distance matrix element had been set larger than normally assumed.
- Fixed typo potentially giving incorrect colour flow in resonance decays.
- Fixed an out-of-bounds array access in HelicityMatrixElements. Thanks to Vittorio Zecca.
- Fixes in
main80.cc
andmain89.cc
. - Fixed problem with the SLHAinterface not being zeroed-out when using repeated subruns.
- Minor fix for beam particles, that no default was set as to whether they are gammas or not.
- Cleaned up error printout for the PDF classes.
- Change a few true/false to on/off in the documentation to make the php version of the manual recognize them.
- Some trivial code, manual and bibliography updates.
8.215: 4 January 2016
- Ilkka Helenius joins as new PYTHIA co-author.
- A new machinery for
gamma-gamma collisions is now available, see Photon-photon Interactions. So far only hard processes can be generated, along with parton showers and hadronization, but without multiparton interactions. The CJKL parton distributions of the photon have been implemented and are used. - Double production of charmonium and bottomonium
3S1 states is now available, but with only the colour-singlet processes included, see Onia Processes for details. - Weak merging implemented, i.e.
W gauge bosons can be produced either as part of the hard matrix element or in the parton shower, and a proper treatment merges these two possibilities consistently. See the CKKW-L page for details. - Running
alpha_em in merging description. - Improved interface to external parton showers, such as VINCIA and DIRE, so that these now also can use the various matching and merging frameworks implemented in Pythia.
- New options in the jet matching framework, such that expert users can use their own veto code for Madgraph-style jet matching.
- New convenient possibility to run Madgraph5_aMC@NLO from within
Pythia, by wrapping the Madgraph5_aMC@NLO executable inside a new
LHAupMadgraph
class that derives from the PythiaLHAup
base class. See MadGraph5 Processes for a brief overview, andexamples/main34.cc
for an example how to use it. Still at an experimental stage, and only tested for Madgraph5_aMC@NLO v2.3.3. - By default the program will now assign the PYTHIA mass for
massless
c andb quarks in Les Houches input, seeLesHouches:setQuarkMass
. Usually a logical recoiler is found that can transfer the needed four-momentum to the quark. The already existing machinery for giving masses to massless leptons has been expanded to use the more sophisticated algorithm now in place. - Significant bug found in timelike and spacelike showers, whereby
the azimuthal anisotropy from gluon polarization in the past has been
overestimated. This does not affect multijet rates, but can influence
distributions sensitive to angular correlations, although checks have
not revealed any appreciable effects. New switches
TimeShower:phiPolAsymHard
andSpaceShower:phiPolAsymHard
regulate whether the first branching after/before the hard process can correlate with the hard-process event plane. Thanks to Radek Zlebcik. - Some further new options and minor additions in the machinery for
hard diffraction. This includes three options for setting the impact
parameter for the
Pomeron p subcollision, a possibility to access both it and the impact parameter both for the originalp p , and options to rescale the Pomeron flux, including one that uses the MBR renormalization. Some default values changed, notably that now MPI is checked. - A new constructor for the
Pythia
class takes references to aSettings
and aParticleData
object as inputs. In cases where multiplePythia
copies are created this allows thexmldoc
files to be read only once. Updatedexamples/main19.cc
illustrates. - New method
Particle::daughterListRecursive()
that uses thedaughterList()
method to trace consecutive generations of decay products. - New
Vec4
friend methodpShift(...)
to transfer four-momentum between two four-vectors so as to bring them to have specified new masses. - New particle method
intPol()
returns the polarization as an integer if the stored double-precision number is very close to 0, +-1, +-2 or 9, and else -9. - Initialize the random number generator earlier, so a non-default seed choice also could benefit early external initialization making use of it.
- Minor fix in interface to zlib.
- Changed default setting in
main89mlm.cmnd
, to better agree with common practice. - Minor improvements and fixes in the weighting facilities for initial- and final-state showers.
- Minor update in the beam-remnant handling for DIS.
- Minor improvements in the handling of resonance mass selection.
- The GetDJR function of the
JetMatchingMadgraph
class has been renamedgetDJR
to adhere to standard naming conventions. A pointer in the same class is explicitly nulled. - Bug fix in the selection of masses in resonance decays. In rare situations this could give wrong masses for particles. Thanks to Are Raklev and Anders Kvellestad.
- The
StringFlav::combine( int, int bool)
method is renamedcombineId
to avoid a potential incorrect method overloading. Thanks to James Monk. - Bug fix: copy vertex information when a long-lived particle decays to three quarks (typically with baryon number violation), whereof two have such a small invariant mass that they collapse to a diquark. Thanks to Cristiano Alpigiani.
- Bug fix for excited quarks
q^ and leptonsl^ , that if new decay channels were introduced they could incorrectly make use of the matrix element expressions for the existing decay modes. Thanks to Simone Amoroso. - Bug fix in the kinematics of four or more resonance decay products when kinematics is redone owing to matrix-element corrections. Thanks to Simone Amoroso.
- Changed off-shell behaviour for squark pair production.
- Minor fix for random number start-up in the PowhegBox interface, and inserted warning that using LHAPDF5 in both Pythia and PowhegBox can be dangerous.
- Correct two misspelt endtags for LHEF3 output from Pythia. Minor technical changes in the LHEF3 machinery.
- Bug fix for information on the pdf value chosen for the hardest MPI, which was reported a factor 9/4 too large for an incoming gluon. Does not affect the event generation itself.
- Correct
BeamRemnants:primordialKThard
from 2.0 to 1.71 for ATLAS tune AZ. Thanks to Christian Bauer. - Introduce protection against (close-to-)zero-energy partons in string length calculations, and against topologies with extremely small angles between two junction legs. Thanks to Jan Fiete Grosse-Oetringhaus.
- Check by trial whether a given LHAPDF5 set contains photons or not, therey avoiding explicit enumeration of such sets.
- When the ARCH environment variable does not have a valid value it is set to LINUX in configure. Thanks to Alessandro Degano.
- Make the BOOST include directory available when the LHAPDF6 plugin is used.
- Minor corrections for the LHAPDF6 description in README. Thanks to Radek Zlebcik.
- Fix harmless name overloading in
ProcessContainer.cc
. - Updated address for Philip Ilten.
- A few bibliography updates.
- Year updated to 2016.
8.212: 23 September 2015
- Included new weighting facilities in initial- and final-state showers.
This allows to consistently enhance rare shower branchings without
impairing the no-emission probabilities, see
User Hooks. A new
main63.cc
, together withmain63.cmnd
, illustrates this feature. - Added new functionality to time- and spacelike showers to streamline merging with external shower plugins, see Implement New Showers.
- New possibility to access hadronization parameters in each step of the hadronization process, and to veto individual hadrons, see User Hooks. Thanks to Christian Bierlich.
- The EvtGen interface has been expanded with the possibility to force a rare decay of some of the particle species handled by EvtGen, with an event weight compensating for this bias. New status codes 95 or 96 single out particles from a forced decay, without or with oscillation. Documentation has been expanded.
- New option
MultipartonInteractions:pTmaxMatch = 3
introduced to allow better matching for multiparton final states. Thanks to Paolo Gunnellini. - Added possibility to write Les Houches Event Files abiding to the
latest (v. 3) standard,see
Les Houches Accord. The new
main64.cc
illustrates how to use the LHEF3 writer. - Fixes in the merging machinery, related to the scales associated with final-state splittings with an initial-state recoiler. The evolution scales and energy sharing values associated with this configuration were not calculated correctly, as an incorrect recoiler momentum was used, leading to a numerical small deviation from the actual result. This issue has now been corrected. Some additional matching and merging changes, mostly to make the reclustering in the merging numerically more stable, and to make UN2LOPS possible.
- Fix bug for the
Beams:newLHEFsameInit = on
option, whereby several LHE files can be read in without new initialization for each. When the gzip support was improved in 8.209 the filenames were no longer reset properly, and so no files beyond the first one were read. Thanks to Roberto Franceschini. - Bug fix in the junction handling for the case of gluinos.
- Avoid segmentation fault for some rare junction topologies. Thanks to Gabriel Magill.
- Minor fix for the path to the PowhegBox plugin, as used in the
Makefile
. - Minor fix for the
configure
script, for the case of building a shared library on Mac OS X. Thanks to Mikhail Kirsanov. - Several minor changes in the hard diffractive machinery.
- PDG codes 51 - 60 have been reserved for Dark Matter (DM) particles.
51, 52 and 53 are intended for spin 0, 1/2 and 1 stable DM particles,
respectively. 54 and 55 are for spin 0 and 1 unstable mediators of
s-channel DM pair creation or annihilation. The rest can be used freely,
say in models with several DM particles. Masses should be set
appropriately. Particles 54 and 55 come equipped with a fictitious mix
of potential decay modes, to be modified according to the specific model.
By default all have separate antiparticles, with negative codes.
These can be removed by setting the antiparticle name to be "void". The
ParticleData::antiName(...)
method has been fixed to accept this, just likeParticleData::names(...)
already did. - Several processes have been set up with wrong process codes, and are now fixed. The corrections are 4003 → 4203, 4004 → 4204, 4005 → 4205, 961 → 1061, 3124 → 3123, 3126 → 3124, 3144 → 3143, and 3146 → 3144.
- For
tau decay spin correlations thef fbar → V → f fbar matrix element,V = gamma/Z^0 orW^+- , is now only used when the incoming fermion pair has no other daughters. Else the simplerV → f fbar matrix element is used. - Minor technical changes, to allow for external
pT -unordered parton showers. No effect for the internal showers. - The SLHA reading operation has become significantly less verbose: where previously identical warning messages could be issued for many particle codes, now these codes are collected into a single list that is written once.
- Bug fix in the input of SLHA decay tables. Previously, the first DECAY entry could be ignored under certain conditions, so that the internal SUSY machinery was used to calculate decay properties. This was the case, in particular, when internal SUSY processes were invoked to generate events.
- Minor correction in the cross section for
f fbar → G* for extra-dimensional processes. main85.cc
has been updated so it can handle weighted events.main89mlm.cmnd
contained misleading instructions which are now changed.- Protect against rare but disastrous negative mass-squared by numerical roundoff in string fragmentation.
- Introduce protection against numerical instability of companion quark
distribution in
x → 1 limit. - Use the
PythiaStdlib.h
header rather than accessing Stdlib directly inSusyLesHouches.h
. - Output to
cerr
replaced by ditto tocout
. Excepted is the examples main programs, where it serves a pedagogical function, while a separatecerr
is less relevant for big batch runs. (Also FJcore
code is excepted). - Give final-state showers used for decays access to the beams; not needed for PYTHIA itself but for some plugin showers.
- Fix minor typo in
README
, in instruction for enabling 64 bit compilation. - Insert two missing
std::
inPythia8Plugins/GeneratorInputs.h
. - Minor update in histogram overflow handling.
- Add to the documentation that
TimeShower:weightGluonToQuark = 1
is required for consistent aMC@NLO merging. - Clarify documentation on which particles are stable by default.
8.210: 29 June 2015
- Bug fix in CKKW-L merging for LHE files, such that the factorization
and renormalization scales are set by the
SCALUP
value if themuf2
andmur2
LHEF3 attributes have not been set, and the user has not set any explicit values. This change restores the PYTHIA 8.1 behaviour. - Various technical improvements in the machinery for hard diffraction.
- Correct quark flavour selection when a string spanned directly between two junctions is split up.
- Check that SK-I and SK-II colour reconnection machineries only are called for event topologies they are set up to handle.
- Bug fixes in partial widths of the
W' boson. Results are correct when theW' is a simply rescaled copy of theW , but not for more general couplings. Thanks to Mihail Chizhov. - Minor fix in default location of PDF data files in the constructors. No practical consequence since correct non-default values are used.
- Tiny fix in the
configure
script, so that CXX options containing an equal sign are parsed correctly.
8.209: 25 May 2015
- The "An Introduction to PYTHIA 8.2", arXiv:1410.3012 [hep-ph], has now been published in Comput. Phys.Commun. 191 (2015) 159.
- The new QCD-based colour reconnection machinery has been expanded with checks whether reconnecting dipoles are causally connected. This cannot be defined exactly, and therefore several different options are available. Also some other minor changes in this part of the code, including updates of parameter default values.
- New options for
ColourReconnection:flipMode
allows to sidestep the gluon-move handling but still retain the final flip step. - New
ColourReconnection:forceResonance
switch allows an additional colour reconnection step after late resonance decays. This is especially relevant forH^0 → W^+ W^- / Z^0 Z^0 → q_1 qbar_2 q_3 qbar_4 , since the Higgs is so long-lived that its decay is well separated from the rest of the event. - The old SK I and SK II colour reconnection models are now available.
These are specially aimed at the processes
e^+ e^- → W^+ W^- / Z^0 Z^0 , but are also relevant forH^0 → W^+ W^- / Z^0 Z^0 . - Colour reconnection also made possible, optionally, for the
forceHadronLevel
method. - A new switch
POWHEG:QEDveto
has been introduced to steer the treatment of non-QCD radiation in the POWHEG implementation ofinclude/Pythia8Plugins/PowhegHooks.h
. - The need to link to the Boost library to read gzipped files
has been eliminated by including iostream classes wrapping the zlib
compression library, see new files
Streams.h
andStreams.cc
. - Linkage to LHAPDF6 so far has been based on the LHAPDF5 compatibility
mode, which requires no Boost headers. The new configure option
--with-lhapdf6-plugin=LHAPDF6.h
uses native mode, and then requires Boost headers. - The LHAPDF6 PDF values are frozen at the respective
x andQ^2 boundary if the(x, Q^2) pair falls outside the fit region. - New functions to extract the fit boundaries, the current
alpha_s value, and the quark masses from LHADPF6. - New option in the HepMC interface, whereby PYTHIA particles can be appended to an existing HepMC event. Thanks to Mikhail Kirsanov.
- A new runtime interface to the POWHEGBOX matrix element programs,
bypassing the need for intermediate LHE files. The new files
include/Pythia8Plugins/LHAPowheg.h
andinclude/Pythia8Plugins/PowhegProcs.h
contain the LHAup class wrapper used to build the POWHEG plugin libraries and the simple class that facilitates loading the POWHEG plugins, respectively. The newexamples/main33.cc
demonstrates how to use these plugins, andexamples/main33.cmnd
contains the commands needed for POWHEGBOX to run the example. - When reading in particle data from the SLHA interface, changes done
by the user takes precedence over the SLHA input ones. To be more
specific, particle data changes by the
Pythia::readString
andreadFile
methods are buffered and repeated after the SLHA initialization. - New
#define PYTHIA_VERSION 8.2xx
inPythia.h
allows user-code preprecessors to make version-specific choices, and allows thePythia
class constructor to check that the header-file version number matches those of the source code and the XML files. Thanks to Pere Mato. - User-defined semi-internal processes can now be accompanied by
user-defined phase-space generators, via a second optional argument to
Pythia::setSigmaPtr(SigmaProcess, PhaseSpace = 0)
. Default is the old behaviour, with PYTHIA selecting the phase-space generator itself, based on the process type. Alternatively, the user may provide a pointer to an instance of an object inheriting from thePhaseSpace
class. Sufficiently well-tested and general such generators could be communicated to the PYTHIA authors for possible inclusion in a future release. - Updated initialization of LHEF files in
LesHouches.cc
to ignore file contents enclosed in comment tags,<!-- .. -->
and/or the special CDATA statement,<![CDATA[ .. ]]>
. The latter occurs, e.g., in LHEF files produced by CalcHep. (It is generally used to store content that contains XML-illegal characters like "<" or "&", such as JavaScript source.) Thanks to A. Belyaev and A. Pukhov for help with this update. - New flag
LesHouches:matchInOut
, by default on, to recalculate the energies and longitudinal momenta of the incoming particles from the outgoing ones for Les Houches input. Reduces effect of numerical inconsistencies in input. - Updated EvtGen interface, to allow a pointer to an FSR engine to be passed. Thanks to Torben Ferber.
- Spin information for
tau leptons now also set up forZ' andW' decays. - New method
AlphaStrong::setThresholds(...)
allows to set the charm, bottom and top flavour-threshold masses used for the running ofalpha_strong . - New option for the
Event::list()
methods allows to show momenta with more decimal digits. - New
Particle::isFinalPartonLevel()
method to tell whether a particle belonged to the final state on the parton level of generation or not. Newmain73.cc
example illustrates usefulness. - The
[]
operator is implemented for theVec4
class to return its components by index. - New method
string Settings::output(string key)
returns the value of a variable as a string. InPythia::readString()
orreadFile()
calls this can now be used to print a current setting value by the commandkey = ?
. - The role of the
pythia.forceTimeShower(...)
method is better explained in the hadron-level standalone documentation, andmain21.cc
has been extended with an example. - The
TimeShower::enhancePTmax()
method is made virtual. - The
iTopCopyId()
andiBotCopyId()
methods now scan all mothers/daughters, rather than only the first and last, when searching for a unique flavour match. - New example
main62.cc
illustrates how a user hook can steer the selection of angles in a resonance decay. - Minor correction in the treatment of the highest multiplicity in FxFx jet matching.
- Minor correction in the interface to aMC@NLO for dijet and photon+jet processes.
- Inserted missing endtag that corrupted the
Tunes.php
page. Thanks to Tim Martin. - Minor fix for polarization sign when the
tau polarization is forced. - The meaning of the
HiggsXX:parity
options for CP mixing has been slightly modified and is better described. - Clarification in the documentation that impact-parameter-enhancement
factor calculation for two hard processes does not work for the
x -dependent impact-parameter profile option. - Fixed a factor
sqrt(2) error in couplings for chargino + squark pair production. Thanks to Michihisa Takeuchi. - Some minor bug fixes in the SUSY code, and some speed optimization suggested by Martin White.
- Fixed incorrect indexing in the SLHA interface.
- Removed misleading flavour setup for unused Pomeron.
- Fixed possible unwarranted destruction of pointer to external timelike
shower by the
Pythia
destructor. - Initialized pointers to NULL in the
Info
class, to avoid some problems. Thanks to Keno Fischer. - Minor
Makefile
improvements for LHAPDF linking. - Minor improvement to the
main89.cc
example program. - Mildly modified warning/error messages when junction splitting fails.
- Minor fixes in
LHAFortran.h
, which is also moved toinclude/Pythia8Plugins
to better reflect its peripheral role. - New machinery for hard diffraction now in place. Still being debugged and tested, so not yet ready for public usage.
8.205: 23 January 2015
- Unfortunate tiny typo made the new A14 tunes inaccessible. Now fixed.
- Resolved an inconsistency between MLM and FxFx merging that was introduced in 8.201 upon answering a user request. The effect should be minimal. Thanks to Josh Bendavid for bringing this to our attention.
- Amended the automated reading of the (optional) "TimeShower:nPartonsInBorn" setting from Les Houches Event files produced with aMC@NLO. Heavy coloured objects are now handled correctly when the information in the Les Houches event does not include heavy partons of the lowest-multiplicity state into its counting (as is conventional). Thanks to Josh Bendavid for pointing this out.
8.204: 22 January 2015
- The
examples
directory has been moved back from theshare/Pythia8/
subdirectory to the main directory, as was the case in PYTHIA 8.1, to make it more visible to newcomers. The optionalmake install
step will create a copy ofexamples
inshare/Pythia8/
. The rarely usedexamples/outref
subdirectory is moved toshare/Pythia8/outref
. - Fifteen new tunes have been added,
the MonashStar tune from CMS and fourteen A14 tunes from ATLAS
ATL14a. The latter correspond to central tunes for
four different PDF sets and ten variations in five (approximate)
eigenvector directions. Furthermore, now the chosen
Tune:pp
implies theTune:ee
value to which it is related, and thus the latter need not be set separately. - Default settings values have been updated to agree with the Monash 2013 tune. Thus typically the list of changed settings is significantly reduced. Thanks to Mikhail Kirsanov for suggestion.
- The compositeness section has been expanded with six further
processes, describing the pair production of excited leptons or
neutrinos. Three-body contact-interaction decay modes of these
excited states have been introduced. A bug has been fixed that
gave the wrong helicity in decays for excited quarks, leptons and
neutrinos. Further, the
gamma^*/Z^0/Z'^0 can decay to a pair of excited fermions provided that the channels are added to the list of allowed ones. Based on code provided by Olga Igonkina. - A new interface to the EvtGen decay package, primarily intended
for bottom and charm decays, has been implemented. It is available
in
include/Pythia8Plugins/EvtGen.h
and an example how to set it up is found inmain48
. - Several minor changes in the
examples
subdirectory. This includes theREADME
,Makefile
anrunmains
files. Themain61
example program has been removed, since now LHAPDF can be loaded dynamically formain42
, so that the two become equivalent. Furthermain62
has been renamedmain43
, to gather HepMC-related examples, andtestlhef3.lhe
has been renamedwbj_lhef3.lhe
. - A new example
main30
how to create a tailormade copy of the ordinary event record, here with a history tracing of the hard process closer to the PYTHIA 6 conventions. - The ProMC input-output file format
is now implemented among the libraries that can be
configure
d to run with PYTHIA. An examples is provided inmain46.cc
. Thanks to Sergei Chekanov. - Change in the setup of final-state-shower colour dipoles for the
non-default case of no interleaving, whereby it becomes less likely
to pick a colourless final-state particle as recoiler. New option
TimeShower:allowMPIdipole
gives more flexibility. Thanks to Mihoko Nojiri and Bryan Webber. - New options 3 and 4 for
TimeShower:pTdampMatch
andSpaceShower:pTdampMatch
, with new default 3 for the latter. The main effect is that, by default,t tbar production (as a2 → 2 process) obtains damped radiation above the process scale. Thanks to Andy Buckley for suggestion. - Initialization will now abort if a mode has been chosen with a
non-allowed value. This applies to those modes that have been
defined with the
modepick
ormodefix
labels in thexmldoc/*.xml
files and, for the former, where maximal and minimal values have been specified. The former label is used to represent a discrete set of options, and so any value outside the allowed range is just plain wrong. Thanks to James Monk for suggestion. - Added
getChannels()
inSusyResonanceWidths
to dynamically create the decay table for SUSY particles and thereby to remove duplication in the XML file. - New file
SusyWidthfunctions
. Added new classWidthFunction
to handle calculation of three- and four-body decay widths. - In
main24.cc
the example spectrum file format has been updated from SLHA1 to SLHA2, obtained from SoftSusy 3.5.1. The two newslha1-example.spc
andslha2-example.spc
files replace the oldercmssm.spc
,snowmass2.spc
andsoftsusy.spc
ones. - In
LesHouches.cc
the read-in of LHEF headers containing tags that open and close on the same line (e.g., a single line containing<tag>blabla</tag>
) has been enabled. This could previously lead to improper initialization and crashes. Also implemented a check for forgotten close-tag statements, with a warning issued to the user. Thanks to Alexander Belyaev and Alexander Pukhov. - Bug fix in the conversion from the
xml
settings files to theirphp
radio-button equivalents, whereby the text describing some options was not set properly. (Typically the text of the previous option was repeated.) Thanks to Radek Zlebcik. - Minor fixes in the LHEF version 3 reader. Introduce a new matching writer of LHEF version 1 or 3 files.
- Introduction of a new mode
LesHouches:setLeptonMass
, such that by default final-state charged leptons acquire sensible masses, even when the matrix-element calculations have been performed with massless leptons. This and other energy-momentum adjustments, e.g. for limited-precision storage, are now located inProcessContainer::constructProcess
. http://home.thep.lu.se/Pythia
has been introduced as a simpler but (hopefully) equivalent address tohttp://home.thep.lu.se/~torbjorn/Pythia.html
, and various documentation has been updated accordingly. Thanks to Leif Lönnblad.- New file
include/Pythia8Plugins/execinfo.h
contains trivial copies of three backtrace methods needed to be able to compile PYTHIA under Cygwin. TheREADME
file and the worksheet updated with brief information on three (non-supported) ways of working with PYTHIA under Windows. Thanks to and Theo Hughes and Gordon Watts. - Bug fix in check for colour sextets and transfer of such colour information. Thanks to Alexander Belyaev and Alexander Pukhov.
- Improved handling of stray characters in the SUSY Les Houches code. The check on the consistency of decay tables has been removed. Improved warning/error printing in the SLHA interface.
- Bug fix in new beam remnant model, so that it basically
operates like the old one for
e^+e^- annihilation. - Two bug fixes in the new colour reconnection model, one for diquarks at the ends of junction strings, and another to check that coloured resonances are processes with early resonance decays option.
- Bug fix for multiple
Pythia::init()
calls, where beam contents were not properly reset. Thanks to Josh Bendavid. - Bug fix such that the valence content of a
pi^0 ,K^0_S ,K^0_L and Pomeron is reselected for each new event. Thanks to Radek Zlebcik. - Fix typo in constants of the
tau → 3 pi current for the amplitudes of therho ,rho(1450) , andf2 . Thanks to Ian Nugent. - Small bug fixes for string and ministring fragmentation, for the case when a low-mass (order 2 GeV) system contains at least three partons, which fail to define a unique direction for the final string region.
- New parameter
BeamRemnants:reducedKTatHighY
introduced to reduce technical problems with low-mass MPIs produced at high rapidities when primordialkT is introduced. - Small bug fix in the global-recoil option for timelike showers.
- Update year to 2015, remove tabs and superfluous blanks, break long lines where meaningful, and some further minor changes.
8.201: 14 October 2014
- The Introduction to PYTHIA 8.2 has now been assigned the arXiv:1410.3012 [hep-ph] identifier, which has been introduced in code and text.
- The
enable-shared
by mistake was not listed among allowed configure options. - Corrected a few tiny documentation typos.
8.200: 11 October 2014
- A new
share/Pythia8
directory collects all documentation and example code. Theexamples
,htmldoc
,phpdoc
andxmldoc
directories have been moved here. The main-directory filesAUTHORS
,COPYING
,GUIDELINE
andREADME
are also copied here during installation. - A new
share/Pythia8/pdfdoc
directory collects pdf documents that are linked from thehtmldoc
andphpdoc
directories. Over time it will provide more in-depth descriptions of various physics aspects than offered in the html/php-formatted documentation. In addition to the official main publication and the worksheet, currently notes on LO vs. NLO PDFs and on theg → q qbar branching kernel are included. - A new
include/Pythia8Plugins
directory collects code that does not form part of the core PYTHIA functionality but still has a general usefulness. Code in this directory will not be compiled as part of the Pythia library, but can be linked where needed. This new directory contains- the jet matching classes in
CombineMatchingInput.h
,GeneratorInput.h
andJetMatching.h
, moved from theexamples
directory; - the
PowhegHooks
user hook, to veto shower emissions above the POWHEG scale, formerly found inexamples/main31.cc
; - the
Pythia8ToHepMC
interface for output of PYTHIA events into the HepMC format, combining the code previously ininclude/Pythia8ToHepMC.h
andpythia8tohepmc/Pythia8ToHepMC.cc
into a newHepMC2.h
file; - the
FastJet3.h
interface of PYTHIA particles to the FastJet 3 library of jet finders, formerly found ininclude/FastJet3.h
; and - the
LHAPDF5.h
andLHAPDF6.h
files for interfaces to the LHAPDF library (see further below).
- the jet matching classes in
- The configure/make structure has been considerably rewritten.
Now all external libraries to be linked are specified in the
main-directory
configure
step, along with other options, so there is no longer anexamples/configure
. Themake
step will, as before, compile and install libraries inside the current directory, such that the main programs in theexamples
directory can be run. One small difference is that also the archive libraries are installed inlib
and not inlib/archive
.
A new optionalmake install
step allows you to copy files to more convenient locations. The default option, with no directories specified in theconfigure
step, requires you to have superuser privileges. Then files will be copied to standard locations as follows:lib/ → /usr/lib/ include/ → /usr/include/ share/ → /usr/share/ pythia-config → /usr/bin/ -
The
pythia8-config.in
script has been replaced by a newbin/pythia8-config
script. See the README file for details. Themake install
step by default will put a copy of it in/usr/bin
. - The interface to LHAPDF is now dynamically loaded when requested,
and can be either to version 5 or 6 of the library. The dummy code
previously in
lhapdfdummy/LHAPDFDummy.cc
, to be linked when LHAPDF is not, is no longer required. The two new filesLHAPDF5.h
andLHAPDF6.h
in theinclude/Pythia8Plugins
directory contain the necessary interface code. The selection of PDF sets, notably for the proton, has been extended to simplify mixing of internal and external PDF sets, and it is now possible to specify different PDFs for the two incoming protons at the LHC, see the PDF Selection description. - The new
LHEF3.h
file contains a generic interface for reading Les Houches Event Files of versions 1.0, 2.0 and 3.0. This allows more information to be read and studied by the author. Currently PYTHIA itself makes little use of the information beyond the one in 1.0, but it is available among the Event Information. Examples are found inmain37.cc
andmain38.cc
. - The new
Beams:strictLHEFscale
switch can be used to restrict parton showers in resonance decays to be below the input Les Houches scale, not only the hard process itself. The newBeams:setProductionScalesFromLHEF
switch can be used to restrict the emission off each separate parton to be below its specific scale. - The
rootexamples
directory has been removed, and the two programsexamples/main91
andexamples/main92
now illustrate how ROOT can be used in conjunction with PYTHIA. - The executable built from
examples/mainxx.cc
is now namedexamples/mainxx
, while previously it was namedexamples/mainxx.exe
. - The rudimentary support for compilation on Windows platforms, present in PYTHIA 8.1, has not yet been updated for 8.2 and so is omitted. Also the README.HepMC file is omitted for now.
- The ProMC interface is broken, and has been removed for now.
- Several methods have been removed from the
Event
class since the properties now instead can be accessed from the individualParticle
instance, if this particle belongs to an event. These includeiTopCopy
,iBotCopy
,iTopCopyId
,iBotCopyId
,motherList
,daughterList
,sisterList
,sisterListTopBot
,isAncestor
,statusHepMC
andundoDecay
. - A number of deprecated
Pythia::init(...)
methods with varying arguments have been removed. Instead callinit()
without any arguments and use Beam Parameters settings to specify beams and energies in different ways. - The deprecated
Pythia::statistics(...)
method has been removed; instead usePythia::stat(...)
. - Several settings in the
Main:
series have been removed. Most of these have already found replacements in theInit:
,Next:
andStat:
ones, and have been marked as deprecated. Four further ones were deemed so peripheral that they were removed altogether, but of course the underlying functionality remains. - A few aliases for (parts of) settings names have been removed. Previously "Multiple" was mapped to "Multiparton", "MI" to "MPI" and "minBias" to "nonDiffractive" if a settings name was not found for the original input string.
- The default tune has been changed from 4C to Monash 2013, meaning
Tune:ee = 7
andTune:pp = 14
. The old 4C tune that was default in 8.1 can be recovered withTune:ee = 3
andTune:pp = 5
. Also most other older tunes are based onTune:ee = 3
. - Two new CMS underlying-event tunes CMS14 and the ATLAS AZ tune ATL14 have been added as options.
- The default handling of the
g → q qbar splitting kernel has been changed, affecting in particular heavy-flavour production.TimeShower:weightGluonToQuark
has been changed from 1 to 4 to do this. All old tunes are with the 1 value but, since the tunes are not probing the detailedg → q qbar behaviour, this is not set as part of the tune options. - Christine O. Rasmussen joins as new PYTHIA collaboration member.
- A new model for the handling of beam new model for the handling of
beam remnants as an option to the old one, which remains as default for now. - Two new models for colour o new models for
colour reconnection , one quite sophisticated and one simpler. This involves several new classes and files. It also includes some changes in the hadronization framework, notably for the handling of junctions. The old model remains as default for now. TheBeamRemnants:reconnectColours
flag to switch on/off reconnection has been renamedColourReconnection:reconnect
, the main parameterBeamRemnants:reconnectRange
of the old model has been renamedColourReconnection:range
, and several new settings have been introduced, notablyColourReconnection:mode
to switch among the three models. - A new
include/Pythia8Plugins/ColourReconnectionHooks.h
makes available an even larger selection of toy colour reconnection models, via user hooks. Some of them are only intended for top decays, for top mass uncertainty studies, whereas others can be used more generally. Theexamples/main29.cc
program illustrates how the different options should be set up. - Several new features and improvements in the matching/merging
machinery. Notably the aMC@NLO matching scheme has been implemented,
see the aMC@NLO Matching
description. To this end the global-recoil option of timelike showers
has been improved, and security checks have been introduced for
inaccurate LHEF input. A new
main89.cc
example has been introduced, where different.cmnd
files show how to set up either CKKW-L, FxFx, MLM, UMEPS or UNLOPS merging. - Improved capability for the
LHAup
Les Houches interface to read SLHA information embedded in the input file or stream. - The
Makefile
s have been updated to take into account the changed structure of the HepMC interface. - The
Z' production process has been updated to optionally allow decay to a fourth generation of fermions, with universal or non-universal couplings. - Introduction of a new Higgs CP-mixing parametrization via a mixing
angle
phi as described in Higgsphi as described inHiggs Processes . The choice of the Higgs CP-mixing parametrization now also affects the distributions of thetau decay products from the processesH^0 → tau^+ tau^- . - Bug fix in
H^0 → W^+ W^- → 4 f matrix element for mixed CP-state case. - Various improvements and finer grain control for the determination
of
tau decay correlations andtau polarizations. By default the decays oftau pairs from known resonance decays in Les Houches input are now correlated. TheParticleDecays:sophisticatedTau
mode in Particle Decays has been renamedTauDecays:mode
, as well as alltau -relatedParticleDecay
options, with two new options of using only the internal machinery to determine correlations and polarizations, and only using the provided SPINUP digit from Les Houches input. The optionTauDecays:externalMode
has been introduced to control the interpretation of the SPINUP digit. - For Les Houches Event input the energy of a particle is recalculated from its three-momentum and mass, in order to limit mismatches from limited numerical precision in the input values.
- Bug fix in the two-loop running
alpha_s , for the matching to six flavours at the top mass. - Eliminate harmless compiler warnings for
FJcore
. - Updated Introduction (= the official 8.2 article) and Worksheet.
PYTHIA 8.1 series:
These update notes describe major updates relative to the baseline PYTHIA 8.100 version. However, they are less extensive than the corresponding update notes for PYTHIA 6. On the other hand, whereas the PYTHIA 6 manual is a static document, the PYTHIA 8 html/php pages are kept up to date for each subversion.
Important note:version 8.160 does introduce some elements of backwards incompatibility. Specifically, "multiple interactions", abbreviated MI, has been renamed "multiparton interactions", MPI. This affects many parts of the code and documentation. Also some features are deprecated, although remaining until the end of the 8.1xx version series.
8.105: 24 February 2008
- New option to initialize with arbitrary beam directions
pythia.init( idA, idB, pxA, pyA, pzA, pxB, pyB, pzB)
- Added capability to set
beam energy spread and beam vertex .
Warning: as a consequence, the oldBeams
group of settings has been moved toBeamRemnants
, andBeams
is now instead used for machine beam parameters. Therefore also someMain
settings of this character have been regrouped, as follows:8.100 setting has been moved to Main:idA
Beams:idA
Main:idB
Beams:idB
Main:inCMframe
( Beams:frameType
)Main:eCM
Beams:eCM
Main:eA
Beams:eA
Main:eB
Beams:eB
Main:LHEF
Beams:LHEF
- The
forceHadronLevel()
method introduced for standalone hadronization. main15.cc
illustrated how either full hadronization or only decays of some particles can be looped over for the rest of the event retained.- The
LHAevnt
andLHAinit
classes have been joined into a newLHAup
one, with new options that allow the writing of a Les Houches Event File. - The
SusyLesHouches
class updated to handle SLHA version 2. - Updated HepMC conversion routine.
- The static
ErrorMsg
class has been removed and its functionality moved into the non-staticInfo
class, in the renamed Info file. - Further reduction of the use of static, with related code changes.
This should allow to have several almost independent
Pythia
instances. Some static classes still remain, however, notably for random number generation and particle properties. - Limited capability to use two different
Pythia
instances for signal + pileup event generation, seemain19.cc
for an example. - In the
Event
class the=
and=+
methods have been overloaded to allow the copying or appending of event records. Illustrated inmain19.cc
. - The html and php page formatting improved with cascading style sheets.
- Several minor improvements and new options, including updated configure scripts.
8.108: 1 May 2008
- Correction in the event record, so that the beam particles in line
1 and 2 do not have any mother according to the
motherList
method. Previously the "system" entry in line 0 was counted as their mother, which gave rise to an unexpected extra vertex in the conversion to the HepMC format. - Support for HepMC version 1 is removed, to simplify the code and reflect the evolution of the field.
- Status codes are stored in HepMC only as 1 for existing and 2 for decayed or fragmented particles (whereas previously the original PYTHIA codes were used for the latter).
- Parton densities are stored in HepMC as
xf(x,Q^2) rather than thef(x,Q^2) used in (some) previous versions. - The SusyLesHouches class has been updated so that reading is fully compatible with the SLHA2 standard.
- Improved handling of the Higgs width, relevant for massive and thereby broad resonance shapes.
- The matrix elements for neutralino pair production have now been completed and checked.
- Ensure that
alpha_strong does not blow up, by introducing a minimal scale somewhat aboveLambda_3 (roughly wherealpha_strong = 10 ). - New methods
isValence1()
andisValence2()
in theInfo
class. - Protection against division by zero in calculation of decay vertex (for zero-mass gluons with zero lifetime, where there should be no displacement).
- A new compilation option
-Wshadow
is introduced and code is rewritten at all places where this option gave warnings. - Minor library correction to allow compilation with gcc 4.3.0.
8.114: 22 October 2008
- New rescattering description operational (but still experimental) for the case that FSR is not interleaved, but saved until after MPI, ISR and beam remnants have been handled. This involves much new code in several classes.
- A new class
PartonSystems
is introduced to keep track of which partons in the event record belong to which subcollision system, plus some further information on each subsystem. It takes over functionality previously found as part of theEvent
class, but leaves room for future growth. - Add optional model, wherein an increased
pT0 turnoff scale for MPI and ISR is used for above-average active events, i.e. events that already have several MPI's or ISR emissions. - Freeze GRV 94L distribution at small
Q^2 to avoid blowup. - The
pythia.readFile(...)
method can now alternatively take anistream
as argument instead of afilename
. - Minor bug correction in
PartonLevel.cc
; the bug could (rarely) give a segmentation fault.
8.120: 10 March 2009
- New rescattering description further developed, but not yet recommended for normal usage.
- Include new processes for Large Extra Dimensions and Unparticles,
contributed by Stefan Ask. New test program
main28.cc
illustrates. - Include further SUSY processes: neutralino-chargino and chargino-chargino pairs. The processes should be valid also in the case of non-minimal flavour violation and/or CP violation. Expanded machinery to keep track of SUSY parameters.
- Include backwards evolution of incoming photon as part of the
SpaceShower
initial-state radiation description. This allows you to simulate hard collisions where one of the incoming partons is a photon. New test programmain43.cc
illustrates. - Allow separate mass and transverse momentum cuts when two hard subprocesses are generated in the same event.
- The default value for the border between short- and long-lived
particles has been changed from 1 mm to 10 mm, to better conform with
LHC standards, see
here . The default is still to let all unstable particles decay. - New ISR matrix-element correction to
f → f gamma in singleW production. - New method
Event::statusHepMC
returns the status code according to the HepMC conventions agreed in February 2009. The interface to HepMC now writes out status according to this convention. - Add capability to link to FastJet, with expanded configure script
and Makefile, and with
main61.cc
as new example. - Update of
Makefile.msc
, with added support for latest Visual C++ Express edition and use of regexp to check nmake version. - Update of
LHAFortran.h
andPythia6Interface.h
, to make the interface to Fortran routines work also under Windows. (Thanks to Anton Karneyeu.) - Updated and expanded worksheet.
- The manual pages in the
xmldoc
directory, and thereby also those of thehtmldoc
andphpdoc
directories, have been significantly updated and expanded. In particular, in many places the class of each method is explicitly shown, as well as the type of the return value and of the arguments. This upgrade is not yet completed, but already covers the more relevant sections. - The unary minus operator in the
Vec4()
returns a reference to a four-vector with all components negated, but leaves the original four-vector unchanged. Previously the four-vector itself was flipped. - The
pPlus()
andpMinus()
methods of a four-vector and an event-record particle are renamedpPos()
andpNeg()
, respectively. - Include a further loop in
ProcessLevel
, so that a new process is generated in case of failures of a less severe nature. - Introduce warning message for unexpected
meMode
inResonanceWidths
. - Les Houches event reading framework has been rearranged for
more flexibility. Some bugs corrected. Specifically, when scale
is not set (
scale = -1.
in the Les Houches standard), PYTHIA did not attempt to set this scale itself, which typically lead to there not being any ISR or FSR. Now therules for normal 1-, 2- and 3-body final states are applied, with a trivial extension of the 3-body rules for higher multiplicities. - Correct bug in the handling of parton densities, whereby it was not possible to switch to a new set, once a first initialization had been done.
- Correct bugs when several
Pythia::init
initialization calls are made in the same run, specifically in the case that pointers to external processes have been handed in. - Changes in
main03.cmnd
andmain04.cmnd
so that some nonstandard options are commented out rather than active. Related comments inserted also in some other.cmnd
files, but there without any change in program execution. - A few further minor bug fixes.
- Update year to 2009.
8.125: 16 June 2009
- Hadronization and timelike-shower parameter default values updated according to a tune to LEP1 data by Hendrik Hoeth, using the Rivet + Professor framework.
- Many further SUSY production processes. SLHA readin expanded to cover
also masses and decay modes. Example
main22.cc
updated, whilemain33.cc
now superfluous and removed. - Also further processes for extra dimensions.
- Stefan Ask joins as coauthor.
- The
TimeShower::shower(...)
method has gained a new argument, that forces the shower evolution to stop after a given number of branchings. A new methodTimeShower::pTLastInShower()
permits the last evolutionpT to be read out. These extensions can be useful for matching studies. - New optional argument
isInterleaved
added toTimeShower::branch(...)
. Is false by default, but true when called from the parton level for interleaved evolution of several parton systems, optionally also with ISR and MPI. - New methods
UserHooks::canSetResonanceScale()
andUserHooks:scaleResonance(...)
allows an optional user choice of the maximum shower scale in resonance decays. - A new method
SpaceShower::doRestart()
has been added, to help distinguish cases when aSpaceShower::branch(...)
failure forces a complete restart of the evolution from ones where only the intended current branching has been vetoed. - When multiparton interactions are initialized, it is now
possible to reduce both
pT0 andpTmin if necessary to find a valid solution wheresigma_jet > sigma_nondiffractive . Previously only the former would be reduced, which could lead to infinite loops if too large apTmin was used. Thanks to Sami Kama for pointing out the problem. - The rescattering machinery is now essentially completed, and can be used also by others than the authors. For now, however, it can only be recommended for dedicated studies, not e.g. for generic tunes.
- Timelike and spacelike showers, and beam remnant handling,
are modified to handle rescattering partons. Specifically, a new machinery
is introduced to trace the recoils from the combination of rescattering
with showers and primordial
kT . Can assign space- or timelike virtualities to intermediate particles to have energy and momentum conserved locally. This affects thePartonLevel
,MultipartonInteractions
,TimeShower
,SpaceShowe
r andBeamRemnants
classes. Further details to appear in the upcoming article on rescattering. (Another change is a reversal to pre-8.114 order for non-interleaved FSR, wherein also FSR is treated before beam remnants are attached.) - Four new status codes introduced, as part of the rescattering
description:
45 : incoming rescattered parton, with changed kinematics owing to ISR in the mother system (cf. status 34);
46 : incoming copy of recoiler when this is a rescattered parton (cf. status 42);
54 : copy of a recoiler, when in the initial state of a different system from the radiator;
55 : copy of a recoiler, when in the final state of a different system from the radiator. - New method
Info::tooLowPTmin()
can tell whether thepTmin scales for showers or multiparton interactions are too low. - Pion beams allowed, both
pi^+ ,pi^- andpi^0 . New machinery for the latter, where the valence flavour content is chosen to be eitherd dbar oru ubar for each new event. One internal pion PDF implemented, with others from LHAPDF. - Treatment of Pomeron-proton collisions begun.
- Phase-space handling of hard processes and multiparton interactions slightly expanded to better allow for harder PDF's than proton ones, e.g. for Pomerons.
- The program documentation has been expanded with an
alphabetical index of all methods that are described on the
webpages, see the
Program Methods page. Also other sections of the documentation have been updated and expanded, including the worksheet. - Several
list
methods have been madeconst
. For the listing of events two new methods have been added,Event::list()
andEvent::list(bool showScaleAndVertex, bool showMothersAndDaughters = false)
, that correspond to special cases of the general method. - A new method
Pythia::LHAeventSkip(int nSkip)
permits a skip-ahead of the reading of external Les Houches Events, without the necessity to generate the interveningnSkip
events in full. Makes use of the newLHAup::skipEvent(int nSkip)
method to perform the operations. Mainly intended for debug purposes. - The
ClusterJet
jet finder now saves the last five clustering scales. Also a minor bug fix. Thanks to Nils Lavesson for this contribution. - The
Particle::m2()
method now returns a negative number when the stored massm is negative, as used to indicate spacelike virtualities. Also theParticle::eCalc()
,Particle::mT()
andParticle::mT2()
methods have been modified. - The
<<
method to print our a four-vector has been expanded with a fifth number, the invariant length, with a minus sign for spacelike vectors, and provided within brackets to allow a simple visual distinction. - New methods
Rndm::dumpState(string fileName)
andRndm::readState(string fileName)
allows to write or read the state of the random number generator to or from a binary file. - New method
double GammaReal(double x)
returns the value of theGamma function for arbitrary real argument. Some cross sections for extra-dimensional processes rewritten to make use of it. - New example program
main29.cc
shows how to set up a fictitious process of a heavy system decaying to two particles or partons, with decays traced to stable particles, as relevant for astroparticle applications. - Main programs that illustrate the HepMC interface have been updated to use version 2.04, including units and excluding deprecated output formats.
- The
main32.cc
example extended also to handle Les Houches Event Files. - The Makefile has been modified so that "make clean" only removes the current compilation and library files, while "make distclean" gives a more extensive reset and cleanup. Thanks to Nils Lavesson for this contribution. Some other minor Makefile corrections.
- Several main programs that use the
Main:timesToShow
mode have been corrected so as not to crash if this is set to zero. Also some other cosmetics changes in main programs that do not affect the running. - Bug correction, in that previously a veto with user hooks was not propagated from parton showers inside resonance decays.
- Minor bug fix in
TimeShower
for kinematics with unequal beam-particle masses. - Bug fix so that
PartonLevel:MPI = off
also works for minimum-bias events. - Minor bug fix in the impact-parameter selection of multiparton interactions. Thanks to Sami Kama for pointing it out.
- String fragmentation for junction topology protected against numerical instability in boost.
- Bug correction in the handling of particle decays to partons, where the scale of the partons was set before the partons had been added to some arrays, leading to indexation out of bounds. Thanks to Vladislav Burylov for discovering this bug.
- Bug correction in the handling of particles with inhibited decay, where the decay vertex would be too far displaced, which could lead to infinite loop. Thanks to Sami Kama for debugging this.
- Check to avoid infinite loop in matrix-element handling of two-body decays.
- Bug correction to avoid infinite loops in Dalitz decay treatment. Some changes in the decay handling logic to allow a new try when the decay of a particle fails.
- Minor correction, so the pointer to the
Info
class is set also for user-written classes derived fromLHAup
. - Correction for typo in the matrix element of the
Sigma3ff2HchgchgfftWW
class, for doubly charged Higgs production. Thanks to Merlin Kole for spotting it. - Updated colour bookkeeping in junction-antijunction annihilation
avoids later problems in
Pythia::check()
. - Minor updates of the
Makefile.msc
file to work with Visual Studio 2008. Thanks to David Bailey for these modifications. - Ensure that
nInit
in theBeamParticle
class is set also for unresolved lepton beams. - The
VetoEvolution
class, derived fromUserHooks
, is obsolete and has been removed.
8.130: 15 September 2009
- New machinery that allows multiparton interactions inside diffractive
systems. Also new optional Pomeron flux factors and Pomeron PDFs.
New page on
diffraction added, where further details are collected. Still not tuned, so to be used with caution. - Make Peter Skands' "Tune 1" parameters for ISR and MPI default.
The older simpler tune is still available as an option, see
.Tune:pp - New possible choices for a second hard process: charmonium, bottomonium, top pair and single top.
- New code for pair production of generic colour-triplet scalar, fermion or vector. Largely written by Johan Bijnens, partly recycling existing code.
- Add user hooks possibility to veto event after a given number of multiparton interactions.
- Add instructions how PYTHIA 8 can be used from inside ROOT. Thanks to Andreas Morsch for providing the text and Rene Brun for a simple example.
- The
main21.cc
example extended with an option for a single-particle gun. - Improvements and bug fixes in rescattering framework.
- New method
Hist::table(string fileName)
provides a more direct way to print a two-column table of histogram contents into a file than the currentHist::table(ostream& os = cout)
. - Modify reading of external files so that a line only consisting of
control characters counts as empty, the same way as a line only consisting
of blanks already did. This includes carriage return, tabs and a few more,
the ones represented by
\n \t \v \b \r \f \a
. Applies to Les Houches Event files, settings files and particle data files. - Fix it so that the read-in of a Les Houches Event File for the hardest process can be combined with the facility to select a specified second hard process.
- New empty base class method
LHAup::fileFound()
allows the derived classLHAupLHEF
to signal more clearly that a failed initialization is caused by a failure to open the desired file. - Check that a pointer to an
LHAup
object has been set inPythia::LHAeventList()
andPythia::LHAeventSkip(...)
calls. - Updated configure and Makefile, e.g. to build shared libraries on Mac OS X.
- The options with a direct link to hard-process generation
in PYTHIA 6 has been removed. It is hardly ever used but
complicates the build structure. (Owing to its usefulness for some
debug work, it was reinstated in a limited form in version 8.135.
Thus
main51.cc
now contains the complete interface, previously in separate files, and commented-out lines inexamples/Makefile
suggest how PYTHIA 6 could be linked.) - New argument to
Info::errorMsg(...)
allows to show all error messages of a specific kind rather than only the first one, e.g. for initialization. - Correction in decay table of righthanded Majorana neutrinos. Thanks to Arnaud Ferrari and Vladimir Savinov.
- Correction in expressions in the manual for
H^+- couplings to anh^0 ,H^0 orA^0 and aW^+- . Thanks to Rikard Enberg. - Fix for accessing uninitialized memory, caused by accessing the daughters of the incoming beams before these daughters actually existed. Thanks to David Bailey and Sami Kama.
- Uninitialized photon PDF inside the proton could give crazy results for processes with incoming photons. Thanks to Adam Davison.
- Bug fix such that finite lifetimes can be set also for particles
produced in the hard process. To exemplify, the bug affected
tau leptons produced inZ^0 andW^+- decays. Thanks to Troels Petersen. - Bug fix in
TimeShower
, thatbeamOffset
could remain uninitialized. Thanks to Sami Kama. - Minor correction to resonance decays: fail if the allowed mass range of a Breit-Wigner resonance is a small fraction of the total area under the resonance curve.
- Correction when all three valence quarks were kicked out from a proton and could give false messages that beam momentum had been used up.
- Clarify status codes needed for hadron-level standalone runs in
order to avoid error messages, and modify the
main21.cc
example accordingly. - Minor corrections in the processes for extra dimensions.
- Some other minor additions to existing facilities and minor bug fixes.
8.135: 10 January 2010
- All usage of static member methods inside Pythia8 has now been
eliminated. This simplifies for you to have several simultaneous
Pythia
instances that are run with different conditions. The three main classes affected by this are theSettings
andParticleData
databases and theRndm
random-number generator. You can no longer address the methods of these classes directly, but have to address them via thesettings
,particleData
andrndm
instances in the respectivePythia
object. Also some other smaller pieces of code are affected, e.g. Standard Model and SUSY couplings (the latter in new files).Note 1 : The documentation has been updated accordingly on these webpages, but the "A Brief Introduction to PYTHIA 8.1" still refers to the old behaviour of version 8.100.Note 2 : the interface to the external LHAPDF library remains static, since LHAPDF is written in Fortran and thus by definition static.Note 3: if you want to have momentum smearing inCellJet
you now need to send in a pointer to a random-number generator. - Ten new proton PDF sets are made available internally:
MRST LO (2007), MRST LO* (2008), MSTW 2008 LO (central member),
MSTW 2008 NLO (central member), CTEQ6L, CTEQ6L1, CTEQ6.6 (NLO,
central member), CT09MC1, CT09MC2, and CT09MCS, see
PDF Selection . The Pomeron PDF data files have been renamed for consistency. Thanks to Tomas Kasemets for help with this Kas10. - New parameters
TimeShower:pTmaxFudgeMPI
andSpaceShower:pTmaxFudgeMPI
introduced, to give the same functionality for multiparton interactions thatTimeShower:pTmaxFudge
andSpaceShower:pTmaxFudge
do for the hardest. - A few extensions of the
UserHooks
framework. New methodsUserHooks:canVetoISREmission()
andUserHooks::doVetoISREmission(...)
allows the latest initial-state emission to be studied before being finalized, with the possibility to veto it. SimilarlyUserhooks:canVetoFSREmission()
andUserHooks::doVetoFSREmission(...)
can be used to veto the latest final-state emission. - A number of loop counters have been introduced in the
Info
class, that offers some further information on the progress of the event generation, for use e.g. in conjunction with theUserHooks
facility. - The
Pythia::initTunes(...)
method is made public, so that it can be called before the normal call fromPythia::init(...)
. That way it is possible to start out from a given tune and change a few of the parameters. - Bug corrected in
LHAFortran.h
for hard-process input from Fortran commonblock. This did not work properly when the input was used in combination with a second hard process generated internally. Thanks to Mikhail Kirsanov and Roberto Chierici. - Insertion of missing initialization of
isInit
in theSettings
andParticleData
constructors, andnInit
forBeamParticle
. Thanks to Leif Lönnblad. - Updated
Makefile.msc
for Windows users. - Fix of some non-optimal use of booleans, that give warnings on a Windows compiler. Thanks to Anton Karneyeu.
- New options for the
SUSY Les Houches Accord such that, by default, particle and decay data are not overwritten for known Standard Model particles (includingZ^0 ,W^+- andt , but excluding the Higgs). - Bug fix in
SusyLesHouches
, where the reading of SLHA information embedded in an LHEF would not stop at the end of the header section. - Bug correction for undefined secondary widths where decay products
together are heavier than the mother. Also unit default secondary width
values in the
DecayChannel
constructor. - Documentation updated, including change of current year to 2010.
8.140: 16 July 2010
- Four new draft
tunes available. - Introduction of a new scenario for production of Hidden-Valley
particles, and interleaved showering in the QCD and HV sectors, see
the new
Hidden Valleys description. A longer physics writeup is available Car10. - Implementation of
2 → 3 phase space selection intended for QCD processes with massless partons. A new set of matchingphase space cut parameters . Theten different QCD have been implemented making use of this new possibility, so far without a complete handling of possible colour flows, however.2 → 3 processes - New processes have been added for
contact interactions inq q → q q andq qbar → q qbar scattering. - A process has been added for TeV^-1 Sized
Extra Dimensions , which involves the electroweak KK gauge bosons, i.e.gamma_{KK}/Z_{KK} , in one TeV^-1 sized extra dimension; seemain30.cc
for an example. This scenario is described in Bel10. Thanks to Noam Hod and coworkers for contributing this code. - In the Randall-Sundrum extra-dimensional scenario a new option has
been added where SM fields can exist in the bulk rather than only on
a brane. (Still under development.) Furthermore production of a
Kaluza-Klein gluon state has been added, and the
main28.cc
test program extended. - The scenario for monojets in Large Extra Dimensions has been expanded with an alternative for scalar graviton exchange instead of tensor one.
- New parameters for maximum scale of
timelike showers ,TimeShower:pTmaxMatch
, and the dampening of hard radiation,TimeShower:pTdampMatch
andTimeShower:pTdampFudge
, by analogy with corresponding ones for spacelike showers. Also new methodTimeShower:limitPTmax(...)
to implement alternative procedures. For dipoles stretched to the beam the new switchTimeShower:dampenBeamRecoil
allows to dampen radiation close to the beam direction, with a changed default behaviour. - Azimuthal anisotropies from coherence arguments have been introduced
for the spacelike parton showers, see
SpaceShower:phiIntAsym
andSpaceShower:strengthIntAsym
. Also azimuthal anisotropies from gluon polarization have been introduced for the spacelike parton showers, seeSpaceShower:phiPolAsym
, and updated for timelike parton showers, seeTimeShower:phiPolAsym
. - Improvements for the matching to POWHEG LHEF-style input illustrated
by the new
main71.cc
example. See also Cor10. - A set of new processes
gamma gamma → f fbar , withf quarks or leptons. Code for equivalent photon flux around an unresolved proton, with more to come. Thanks to Oystein Alvestad. - A new option has been included to dampen the growth of the diffractive
cross sections, see
Total Cross Sections . - A new method
virtual int SigmaProcess::idSChannel()
has been introduced. If overloaded to return a nonzero value then a2 → n process will appear listed as a2 → 1 → n one. That is, an intermediate resonance with the requested identity will be inserted in the event record, even without appearing in the calculation of the matrix element proper. Thanks to Noam Hod for idea and code. - A new method
SigmaProcess::convertM2()
has been introduced to optionally allow theSigmaProcess::sigmaHat()
to return the squared matrix element rather thand(sigmaHat)/d(tHat) for2 → 2 processes. Furthermore kinematics is stored in the newmME
andpME
vectors for alternative cross section encodings. - Different encoding of the
f fbar → Z W cross section, contributed by Merlin Kole, based on the cross section of Brown, Sahdev and Mikaelian. Gives a distinctly different cross section than the previous based on EHLQ (including their bug fix). In particular the problem with negative cross sections is now fixed. - Minor updates: pass
xmlPath
to new MSTW and CTEQ PDFs; reset beams earlier to give cleaner documentation. - The H1 Fit B LO parametrization to the Pomeron PDF has been included, and made new default for Pomerons. Thanks to Paul Newman for providing the data files.
- Three changes, in principle unrelated, but with the common objective
to make the generation of a given event depend only on the values
determined during the initialization stage and on the state of the
random-number generator when the event is begun. The new default
should ensure a reproducible stop-and-restart behaviour, convenient
for debug purposes. Thanks to Michael Schmelling for stressing the
desire for such a behaviour.
(i) Introduction of a new option
that allows to switch between two strategies for handling the (hopefully rare) cases when the assumed maximum of the cross section function is exceeded during the event generation, with a changed default behaviour. In the old default the maximum could be increased if it was exceeded during the run, thereby introducing a memory of the previously generated events.PhaseSpace:increaseMaximum
(ii) Updated handling of random numbers with Gaussian distributions. Thegauss()
method now only generates one value at a time. Instead the newgauss2()
method returns a pair of Gauss numbers, with related time savings. In the old approach one Gaussian number could be buffered, which introduced a memory.
(iii) Minor bug fix inMiniStringFragmentation
, where the popcorn baryon state was not reset for each new system, again giving a (flawed) memory. - New directory
rootexample
with a simple code example how to use ROOT for histogramming in PYTHIA runs. SeeROOT Usage for details. Thanks to Rene Brun. - In the
HepMCinterface
the checks for unhadronized quarks and gluons are not performed if hadronization has been switched off. - The
UserHooks::initPtr(...)
has been expanded so that pointers to more classes (beam particles, random number, couplings, etc.) are sent in, thereby increasing the scope of possible user-written code. Also, theUserHooks::doVetoProcessLevel(Event& process)
now allows theprocess
event record to be modified, even if it is not recommended. The newInfo::pTnow()
method returns the currentpT scale of the combined MPI, ISR and FSR evolution, which can be useful for some user hooks decisions. - Histograms of the
Hist
class can now be booked with up to 1000 bins, instead of the previous maximum 100. All bins can be written to file, but the line-printer style printing will join nearby bins so at most 100 are printed, as before. - Updated
configure
andMakefile
to allow 64-bit compilation and more options. Thanks to Mikhail Kirsanov, Rene Brun and Fons Rademakers. - Bug fix in
ProcessLevel
for colour flow checks of junctions. Enables the decay of a neutralino to three quarks, e.g. Thanks to Nils-Erik Bomark. - Bug fixes in
TimeShower
, where recoil partners in resonance decays of coloured particles, and recoil partners in QED dipoles when beams are not allowed to take a recoil, might not be correctly identified. - Bug fix in
SpaceShower
: when used with a fixedalpha_strong , the threshold enhancement factor ofg → Q Qbar became undefined. Thanks to Stefan Prestel. - Bug fix in initialization of resonance widths, where the
minWidth
parameter could be used uninitialized, occasionally resulting in strange initialization problems when kinematics needs to force at least one resonance to be off-shell. - Minor updates of
main06.cc
,main10.cc
andmain23.cc
. - Bug fix in mother pointer of multiparton interactions in diffractive systems.
8.142: 15 August 2010
- The strategy for setting up tune values has been changed.
Previously the
Tune:ee
andTune:pp
settings were only interpreted during thePythia::init(...)
stage. Now they are interpreted as soon as they are read. Specifically this means that it is possible to override any of the tune parameters by putting new commands belowTune:ee
andTune:pp
in thePythia::readFile(...)
configuration file or in the list ofPythia::readString(...)
commands.
As a consequence of this change, the publicPythia::initTunes(...)
method has been replaced by two privateSettings::initTuneEE(...)
andSettings::initTunePP(...)
methods.
IfTune:ee
orTune:pp
are nonvanishing by default, then the corresponding tune variables are set also from thePythia
constructor, before any user changes are possible. Currently this is not relevant. - Bug fix in the setup of the
Tune:pp = 5
and= 6
options, which meant that diffractive cross sections were not reduced as advertised. - The default value of
MultipartonInteractions:pT0Ref
has been slightly reduced so as to give a somewhat improved default description. It is not intended as a replacement for the specific tunes, however. - Some comparisons between tunes and data, obtained with the Rivet package, have been posted on http://home.thep.lu.se/~richard/pythia81/. Further improvements can be expected from future Professor-based tunes. The current set of 2C, 2M, 3C and 3M "draft tunes" have deliberately been chosen different also to explore a range of possibilities. One not visible in the plots is the fraction of single and double diffractive events in the inelastic cross section. This is 32% in 2C and 2M, while it was reduced to 21% in 3C and 3M, and a recent ATLAS study (ATLAS-CONF-2010-048) would suggest 28+-4%.
- Minor changes in
TimeShower
andSpaceShower
, as protection if thec orb masses are set small. - Bug fix in
SpaceShower
, for case whenphi angle selection is biased to take into account interference effects. - The
SigmaProcess::convertM2()
method now has been implemented also for2 → 1 processes, so that it is possible to provide the squared matrix element instead ofsigmaHat for semi-internal processes. A fixed-width Breit-Wigner is also inserted, since the matrix element is supposed not to include it. - New method
SigmaProcess::setupForME()
does an extended conversion from the internal kinematics to an almost equivalent one, better adapted to the mass conventions of matrix-element calculation programs, such as massive incomingb quarks. New flags allow to determine whether thec ,b ,mu andtau should be considered massless or not in the calculations. - Two new friend methods
table
of theHist
class allow to print a table with three columns, the first for the (common!)x values and the other two for the respective histogram values. A new methodtakeSqrt
for the square root of histogram bin contents.
8.145: 10 November 2010
Couplings
is defined inStandardModel.h
as a derived class ofcoupSM
and has only one extra flag:isSUSY
to check presence of extra couplings.Changed all pointersCoupSM
toCouplings
and removed explicit references toCoupSUSY*
. ThecoupSUSY
object is only initialised if SUSY couplings are present. The new pointercouplingsPtr
points either to only SM couplings or SM+SUSY couplings based on SLHA data.- New files
SusyResonanceWidths.h/cc
contains theSusyResonanceWidths
class, which inherits fromResonanceWidths
but typecasts thecouplingsPtr
to(CoupSUSY*) coupSUSYPtr
. This is the base class for all SUSY resonances. It contains theResonanceSquark
class for all squark decays. A new flagSLHA:useDecayTable
to check if internal widths should be overwritten by those read in via SLHA. - Added new functionality to
SusyLesHouches
for read-in of generic user blocks in the SLHA format, along with methods to extract parameters from them with typecasting controlled by the user. Intended for use with user-written semi-internal processes. - Added
Sigma1qq2antisquark
cross section. - Some new flags and modes in the
SUSY
andSLHA
series offer further functionality. - Several further changes as a consequence of the upgrade of the SUSY machinery.
- Bug/typo fixes in rotation matrices for SUSY couplings and for the
processes
qqbar2squarkantisquark
,qq2squarksquark
and more. - Improved handling of colour junctions. Added new example program
main72.cc
, to illustrate read-in of color junction structures via LHEF (main72.lhe
). The example used is SUSY with RPV. - New Tune 4C introduced as
Tune:pp = 5
. The more crude (non-)tunes 3C and 3M are removed. - New methods
Settings::getFlagMap(...)
,Settings::getModeMap(...)
,Settings::getParmMap(...)
andSettings::getWordMap(...)
allows to return a map of all settings of the respective type that contain a specific string in its name. - Improved description of excited
g^/KK-gluon^ production in theSigma1qqbar2KKgluonStar
andResonanceKKgluon
classes. - Possibility added to let Hidden-Valley
gamma_v have a nonzero mass and decay by mixing with the ordinary photon. Still experimental. - Minor bug fix in handling of three-body phase space.
- Minor correction in
Sigma2ffbar2TEVffbar
class. - Bug fix for decays of
W' to a pair of heavy fermions whengV != gA . Thanks to M. Chizhov, see arXiv:0705.3944. - Restore the older EHLQ-based encoding of the
f fbar → Z W cross section, which was changed in version 8.140, since comparisons with Madgraph gives much better agreement with it than with the expression of Brown, Sahdev and Mikaelian. - The
HepMCInterface
now also stores colour flow information for coloured particles. - Pointer to
Couplings
made available for particle decays. - Minor update in
main61.cc
for more elegant usage of FastJet, as suggested by Gregory Soyez.
8.150: 20 April 2011
- Tune 4C is made default. It is based on first comparisons with LHC data Cor10a, and has also been checked independently Buc11 to give reasonable agreement with many distributions.
- The description of
tau lepton decays has been significantly enhanced, to include helicity information related to the production process and hadronic currents fitted to data. A complete writeup is in preparation, while a summary can be found in Ilt12. A new flag is introduced to revert to the old behaviour, for cross-checks, seeParticle Decays . The new tau decay machinery is on by default. - A new option
MultipartonInteractions:bProfile = 4
has been introduced for the impact-parameter profile of protons in theMultiparton Interactions framework, wherein low-x partons are spread over a larger area than high-x ones, see Cor11. A new methodInfo::eMPI(i)
gives back the enhancement factor related to thei
'th interaction. The impact-parameter profile can now be selected separately fordiffraction , but without abProfile = 4
option. - The possibility of "hadronization" in the
Hidden Valley sector has been added as a new optionHiddenValley:fragment = on
. This is based on a copy of the standard string fragmentation framework, but with the option of a completely separate "flavour" sector, and separately tunable longitudinal fragmentation functions and transverse momenta. For now only a simple flavour scenario is provided, where flavour-diagonal mesons can decay back into the normal visible sector while off-diagonal ones remain hidden. A writeup of the model is in preparation Car11. Also some further Hidden Valley options have been added. - Included possibility in
TimeShower
for QCD dipoles to have an adjustable normalization factor, via the newbool isFlexible
anddouble flexFactor
properties ofclass TimeDipoleEnd
. This flexibility is used to treat radiation off colour topologies with epsilon tensors, in particular colour junctions which have all their partons in the final state. (An example is the BNV-SUSY decay ~chi0→uds.) For such topologies, the new treatment in PYTHIA 8 is that a half-strength dipole is spanned between all combinations of final-state quarks. For junctions with an incoming (anti)colour line (such as in the BNV-SUSY decay ~t*→cb), a full-strength dipole is instead spanned between the two daughters, with no radiation from the decaying object (in its CM). As will be described in a forthcoming paper with N. Desai, this should give the closest possible correspondence to the radiation patterns exhibited by higher-order matrix elements for this type of process. - Corrected harmless bugs in
ProcessLevel::findJunctions
which caused junctions of types 3 and 4 (i.e., junctions with 1 incoming color tag) to sometimes be incorrectly classified as types 1 and 2 (with all color tags outgoing), respectively. Since the parity (even/odd) of the junction kind was still correct, however, this did not cause any problems at the hadronization stage. - The junction-finder in
ProcessLevel::findJunctions
has been made more stable, and the following ordering of the color tags returned byEvent::endColJunction(iJun, iLeg)
is now enforced: for junction kinds 3 and 4 (one tag incoming),iLeg = 0
will return the incoming tag, while for kinds 5 and 6 (two tags incoming),iLeg = 0
andiLeg = 1
will return the incoming tags. Apart from this ordering, the color tags are ordered in ascending color tag number. - Declarations of friend functions moved to sit outside the class it befriends. Thanks to Axel Naumann for pointing out the incorrect previous construction.
- The
rootexample
subdirectory becomesrootexamples
as the old example is split into two, with improved documentation to clarify usage. Thanks to Axel Naumann and Bernhard Meirose for the new code. - In the Les Houches Event File machinery, input type has been
changed from
ifstream
toistream
for more flexibility. - R-hadron handling is largely implemented, see the
R-hadrons page, although some aspects still need polishing. A new classRHadrons
takes care of the hadronization and decay. Particle data have been added for R-hadrons containing a gluino, stop or sbottom, but could alternatively be used for other long-lived coloured particles. Thanks to Bernhard Meirose for support. - Calculations of SUSY decay widths included by
N. Desai, contained in the new source
files
SusyResonanceWidth.cc
and .h. Validation and addition of more modes is still in progress, so this implementation should be considered preliminary for now. For a list of available modes, see theSUSY Processes page. - A first implementation of the SLHA-based QNUMBERS interface for
defining new exotic particles has been
included. See Alw07 and
the
SUSY Les Houches Accord page. - Read-in of LHEF events containing Baryon Number Violating vertices
has been included, using colour junctions, see
the
Event Record page. The advanced shower model taking into account the full colour structure of such events, developed by N. Desai and described above, is turned on by default in such events. Several test cases were used to validate this implementation, but it is possible that problems could still exist for some cases. Feedback is welcome. Thanks to the MadGraph authors for providing several test cases. - Some first steps taken to allow events containing colour sextets,
e.g., from semi-internal processes or LHEF interfaces, and/or from
SLHA
DECAY
tables. NewcolType
codes 3 and -3 are introduced to describe sextets and antisextets, respectively. The state of the current implementation is that hard processes containing such states can be read in and decays generated (viaDECAY
tables). Parton showers can be added, but the sextets themselves do not, as yet, shower, and any undecayed sextets remaining at the hadronization stage would lead to unpredictable problems if hadronization is switched on. Thanks to J. Alwall for help with testing this implementation. - The functionality of the SLHA SUSY/BSM interface (see
the
SUSY Les Houches page) has been extended so that copies of allBLOCK
s are now stored internally as strings, regardless of whether they correspond to "official" SLHA blocks or not. Their contents can subsequently be queried by a set of new templated member functions of the classSusyLesHouches
. Available query functions so far includetemplate <class T> bool getEntry(string, T&);
,template <class T> bool getEntry(string, int, T&);
,template <class T> bool getEntry(string, int, int, T&);
, andtemplate <class T> bool getEntry(string, int, int, int, T&);
,
where the type of the argument used in the call determines how to read the block entries. Thus, if an LHEF, SLHA, or other card file is read in by PYTHIA, the contents of anyBLOCK
in that file can subsequently be queried run-time using these functions. This is used, e.g., in the new interface between MADGRAPH 5 and PYTHIA 8. Thanks to the MADGRAPH team, and to J. Alwall in particular, for help and debug on this new implementation.
8.153: 10 August 2011
- The setup of tunes has been modified, see the
Tunes page for details. Specifically theTune:ee
andTune:pp
modes have acquired a new option-1
for a forced restore to the default values of all settings used in the respective kind of tunes. - The code for handling multiparton interactions in the scenario with
an
x -dependent width of the Gaussian matter profile Cor11, has been improved and updated. Tune 4Cx, which is based on this option, has been added as a further tune option. - A possibility to bias the phase-space selection has been added,
whereby some phase space regions can be oversampled, which is
compensated by assigning a weight to each event.
A new set of methods have been added to the
UserHooks
class to allow users to program how to bias the selection. - New options added so that matrix-element corrections can be switched off after the first branching in ISR or FSR.
- Some new
Info
methods have been added to store information on latest ISR branching. TheSpaceShower
class has also been corrected so that the latestz = 1/2 when not defined by history. This avoids undefined values for azimuthal asymmetries. Thanks to Stefan Prestel for finding and sorting out this problem. - The
Pythia::forceHadronLevel()
method now takes an argument that optionally means that existing junction information is not overwritten. Thanks to Leif Lönnblad for pointing out the usefulness of this. - For particle decays to a varying number of hadrons the multiplicity
increase with mass has been somewhat reduced, and especially for
meMode = 23
a separate even slower increase has been introduced. - New possibility to force the tau polarization.
- Bug fix for the special case in which events containing SUSY particles are generated without proper initialization of SUSY decays. This can happen, e.g., if events containing SUSY particles are read in via external LHEF files, if those files do not contain readable SLHA spectra in their headers. In this case, a failed attempt to generate sparticle decays with ill-defined couplings previously led to crashes. The program now reverts to the old behaviour, based on static decay tables, in such cases, with the default being to decay all sparticles to gravitino + particle. An error message stating that the full SUSY treatment has been switched off and why is also issued. Thanks to N. Desai for this fix.
- The R-hadron machinery has been completed.
- Minor change in timelike showers: gluons which fall below the
pTmin cutoff by the correction for mass effects are now eliminated, while previously they were kept. This reduces the number of gluons somewhat, but has no significant effects on the hadronic final state. (Prompted by R-hadron studies, where big mass effects else give bothersome low-energy gluons.) - Corrected typos in two of the Upsilon wave function matrix
elements,
Bottomonium:OUpsilon3P08
andBottomonium:Ochib03P01
. Thanks to Beate Heinemann for pointing it out. - Implemented
f decay angle inf f → f f processes, and fixed some bugs for the same process. Thanks to Piyali Banerjee for tests. - Introduce possibility to separate production channels for TeV-sized extra dimensions, and a small code correction. Thanks to Noam Hod for code contribution.
- Bug fix for neutrino beams: since neutrinos are always lefthanded
there should be a factor 2 in the cross section, relative to charged
leptons, from the non-need to average over incoming spin states. This
is now fixed by introducing a new PDF class
NeutrinoPoint
for (unresolved) neutrinos, with normalization 2 rather than 1 for charged leptons. Thanks to Ryosuke Sato. - Bug fix for some (rarely used) particle settings, which could not be changed by users because they were read too early. Thanks to Andrew Altheimer and Gustaaf Brooijmans.
- Bug fix in handling of
tau
decays, where setting of decay vertices could write outside memory. Thanks to Steven Schramm. - Minor expansion of the
BeamParticle
constructor. - Minor bug fix in CTEQ 6L for uninitialized variables.
- Minor bug fix in fragmentation flavour combination to hadron.
- Some updates of the documentation, including new pages on MadGraph 5 as a generator for semi-internal processes (thanks to Johan Alwall) and on RIVET interfacing.
- Minor improvements of ROOT- and HepMC-related code and documentation.
- Some cleanup of code.
8.157: 10 November 2011
- Merging capabilities according to the CKKW-L scheme Lon11
have been added, see the new
Matrix Element Merging page. It involves new classes to reconstruct and select how a matrix-element-generated partonic configuration could have been obtained by the PYTHIA evolution, and to perform trial showers (using a new copy of the normal parton-level machinery) that introduce the appropriate Sudakov suppression factors. New examples to illustrate various common tasks are found inmain81.cc
,main82.cc
,main83.cc
andmain84.cc
. - The
main71.cc
program is now generalised for reading in arbitrary POWHEG LHE files, to implement a smooth matching between NLO matrix elements and the PYTHIA parton showers. Cuts are made on both ISR and FSR emissions, while previously only ISR was covered. The key assumptions are thepT definitions used for ISR and FSR, but several further options are available, as documented in themain71.cmnd
file. Work is still ongoing to pick the best default options. - Several expansions of the
UserHooks
class. For bothdoVetoFSREmission
anddoVetoISREmission
a new argumentiSys
labels the system within which the radiation occurs. FordoVetoFSREmission
a further argumentinResonance
distinguishes FSR in resonance decays from that in the hard process itself. New methodscanVetoMPIEmission
anddoVetoMPIEmission
have been added to veto multiparton interactions in the same way as FSR and ISR. InbiasSelectionBy
at times incorrect values forinEvent
has been corrected. Also some systematization of the use ofconst
. - A new model for hadron scattering is introduced, still at an early
stage and therefore more intended for internal development than for the
normal user. The basic idea is that a high-energy
pp collision involves the fragmentation of multiparton strings that overlap in space (and time). Also the produced hadrons therefore initially overlap, and there is a strong likelihood that hadrons can scatter against each other until the system has expanded sufficiently. This can e.g. increase the transverse momentum of heavier hadrons at the expense of lighter ones. - A new jet finder
SlowJet
offers simple access to the inclusivekT , anti-kT , and Cambridge/Aachen algorithms in a cylindrical coordinate frame. The jet reconstruction is then based on sequential recombination with progressive removal, using theE recombination scheme. The minimalisticSlowJet
code is much slower thanFastJet
Cac06, and contains less options, but reconstructs the same jets if run under identical conditions. For details see theEvent Analysis page. - Starting in gcc 4.6, it is possible to switch off specific warnings
around specific blocks of code. Although version 4.6 is some way off
from being commonly found, this option has now been introduced to switch
off
-Wshadow
warnings inHepMCInterface.cc
. For other compilers, or earlier versions of gcc, the old behaviour is retained. - Support for reading in gzipped LHEFs has been added in the
LesHouches
andSusyLesHouches
classes. This also affectsconfigure
andMakefile
s. Unless explicitly enabled, it should not affect anything. If enabled, it relies on the Boost and zlib libraries to function, so paths to these must be set appropriately, see theREADME
file for details. The Boost header files can give very many shadow warnings, so-Wshadow
is disabled if gzip support is enabled, as described above. - Introduce use of the
HEPMC_HAS_UNITS
environment variable in theHepMCInterface.cc
andmain32.cc
codes to automatically check whether GeV and mm can be set as relevant units. If yes, then it is set inmain32.cc
. If no, a conversion from GeV to MeV is done explicitly inHepMCInterface.cc
. Note that, for early HepMC versions, this means a change of behaviour. Thanks to Andy Buckley. - A new method
Info::lhaStrategy()
returns the Les Houches event weighting strategy where relevant, and 0 where not. For the strategies+-4 the event weight and sum,Info::weight()
andInfo::weightSum()
, is now in units of pb at output, as it should be at input. (While internally mb is used.) - New flag
Check:abortIfVeto
allows the user to resume control over execution in case of a veto in the event generation process. - New method
Event::at(i)
returns reference toi
'th particle in the event record. - Introduce the Fermi constant as one of the Standard Model parameters.
- Included automatic pre-initialization of SLHA blocks MASS and SMINPUTS using PYTHIA's SM parameters and particle data table values.
- SUSY: added sleptons (and sneutrinos) as resonances. Corrected 2-body decay widths of gluinos, squarks and gauginos. Added sleptonic decay modes to gaugino decays. Implemented 2-body decays of sleptons (and sneutrinos) into sleptons/leptons/gauginos. Corrected slepton couplings (they now look exactly like squark couplings, using a 6x6 slepton mixing matrix).
- New parameter
Diffraction:probMaxPert
introduce to give more flexibility in transition from a nonperturbative to a perturbative description of a diffractive system. - Bug corrected in
SigmaEW.cc
, for the processWeakSingleBoson:ffbar2ffbar(s:gm)
. Previously, all outgoing quark flavours in this process were erroneously assigned ID code 5 (b quarks). This has now been corrected so the proper ratios are obtained, withu : c : d : s : b = 4 : 4 : 1 : 1 : 1 , according to the squared quark charges. - Changes in
FragmentationSystems
andStringFragmentation
to reject systems with three or more interconnected junctions. This may happen in baryon-number-violating scenarios in pp collisions, if both of the beam baryon junctions are resolved and get connected via an antijunction created by a hard-process BNV vertex. In principle, this could be addressed by an extension of the existing junction fragmentation framework. However, since it happens rarely, for the time being an error message is printed and the fragmentation restarted. - Change in
Event::copy
to safeguard against attempting to copy out-of-range entries. An attempt to copy a non-existing entry will now return -1. - Bug fix in the machinery for the user to force the setting of tau polarization.
- Bug fix in the initial search for a maximum of the process cross section (only affecting rare cases).
- Corrected angular decay distributions for two compositeness
processes,
Sigma2qq2qStarq
andSigma2qqbar2lStarlbar
. - Extra check in
HiddenValleyFragmentation
to make sure that pointers which have not been assigned withnew
are not deleted. - Some further minor changes.
8.160: 23 January 2012
- The older term "multiple interactions" has been replaced by the
new standard "multiparton interactions" one, and correspondingly the
abbreviation MI by MPI. This affects everything: settings, class and
method names, documentation, etc. It therefore becomes necessary to
rewrite user code. However, so as to keep the immediate effort at a
reasonable level, the old settings names are kept as aliases. Thus
PartonLevel:MI
andPartonLevel:MPI
are equivalent, and similarlyMultipleInteractions:pT0Ref
andMultipartonInteractions:pT0Ref
. Should you be using methods such asdouble Info::pTMI(int i)
you need to edit the code, however. All theexample/main*
files have been updated accordingly. - A new option
Beams:frameType = 5
has been added for the case where an external generator should provide LHA process information. The newPythia::setLHAupPtr(...)
method should then be used to link in this generator. The new switchBeams:newLHEFsameInit
can be used to tell that a new LHEF should be used, but without the need for a new initialization. With these two changes, all the different ways of initializing can be covered by thePythia::init()
call with no arguments. The variousinit(...)
options with arguments are deprecated and will be removed for PYTHIA 8.2. - The
Pythia::stat()
method, with no arguments, replacesPythia::statistics(...)
, although the latter remains as a deprecated alternative. - New settings
Init:...
,Next:...
, andStat:...
can be used to steer some details of the operation of thePythia::init()
,Pythia::next()
andPythia::stat()
, respectively. In particular it affects the amount of printout at the various stages of operation. Seehere for further details. This change involves several code changes, but in documentation rather than physics. Most of theMain:...
settings are deprecated as a consequence. - The sample main programs in the
examples
subdirectory have been updated. This includes a change to the new favoured methods and settings outlined above, plus some update of the physics contents. Some of the examples have been combined, some others have been added (e.g. for R-hadrons), and as a consequence some renumbering has been made. See the modified list ofsample main programs for the new status. In particular note that (the new)main61.cc
allows streamlined input and output in HepMC, likemain42.cc
(previouslymain32.cc
), but additionally links to LHAPDF. - The
examples/configure
script has new optional argument--with-pythia8
. It can be used to set the newPYTHIA8LOCATION
environment variable, which then is used inexamples/Makefile
to give the path to the PYTHIA library. Thereby it becomes possible to relocate (parts of) theexamples
directory and still obtain the correct path. Thanks to Mikhail Kirsanov. - Polarization information has been included as a new
Particle
property, that can be set byvoid pol(double polIn)
and obtained bydouble pol()
. Default value is9.
, in agreement with the Les Houches standard. Event listings have been expanded to optionally display this information. Currently polarization is not used internally. - The matrix element merging machinery has been modified as follows.
- Improved handling of the hard process, so that MadGraph5-produced LHE files do not produce problems (sometimes, the choices of MG4 on what to put into a LHEF have changed in MG5).
- Improved handling of colour for easier handling of states with many quarks (the code has been tested for states with up to 5q qbar pairs and some gluons).
- Improved checking which clusterings are allowed. Now, clusterings should immediately be rejected if they lead to unphysical states, without the need to explicitly construct these states. This was needed to gett tbar production, VBF and some simple SUSY processes running with reasonable generality.
- Improved handling of incomplete histories. Now there is an additional switch allowing code to try to swap some colours when fewer clusterings than requested have been found. - Updates in the handling of graviton resonances in scenarios with
extra dimensions.
- Now all G decays have correct angular distribution, which was not the case before for W/Z decays.
- Added the possibility for G to only couple to longitudinal W/Z bosons, which affects both the width and angular distributions.
- Added decays to Higgs pairs,G → hh . - Bug fix in the
findJunctions()
function inProcessLevel.cc
. Changes introduced in version 8.145 (to allow for junctions in baryon-number-violating processes) did not correctly handle the remapping of color tags that can be applied when adding beam remnants to events with multiparton interactions. A simpler and more stable algorithm is now applied for the simplest cases, with the more complex one only invoked for cases such as BNV, which are normally considered before remnants are added, hence avoiding this particular problem. Also some other changes in the handling of junction, including a safeguard to reject systems with three or more interconnected junctions. - Bug fix and updates to the SLHA interface. Possibility of infinite
loop during
ProcessLevel::initSLHA
corrected. Modifications toSusyLesHouches
to allow interpretation of SLHA1 spectra with R-parity violation. Rather than reject spectra that do not conform fully to the SLHA2 standard for RPV, the interface will now first look for SLHA1 mixing matrices and attempt to translate those into SLHA2 ones if possible. In this case, warnings that the expected SLHA2 blocks were not found will be printed. It is up to the user to check that the derived SLHA2 information is correct. Corresponding additions toSusyCouplings.cc
to extract mixing-matrix information from the relevant SLHA2 RPV blocks when RPV is switched on. - Updated SLHA example
main24.cmnd
to use new example spectrum,cmssm.spc
, corresponding to CMSSM point 10.1.1, obtained with SOFTSUSY 3.3.0. Thanks to B. Allanach for providing the new spectrum file. - A new
include/FastJet3.h
header file simplifies interfacing of FastJet to Pythia. For details see documentation in the file itself. Thanks to Gavin Salam for this contribution. - The handling of diffraction has been made more flexible. Specifically the "total" Pomeron-proton cross section can now be made to depend on the mass of the diffractive system. This does not affect the diffractive cross section in pp collisions, which is set separately, but is used in the MPI machinery to affect the average number of interactions per Pomeron-proton collision. Furthermore, the allowed range for some parameters has been expanded. Thanks to Robert Ciesielski.
- New method
Pythia::forceTimeShower(...)
can be used to generate a single final-state cascade from a set of partons, without any knowledge of prior history. This is mainly intended for toy studies. The meaning of theProcessLevel:all
switch has been modified so that this parton-level function is available, but not any others at this level. - ATLAS tune A2 now included. Thanks to Deepak Kar for providing it.
- Change in the handling of recoils of timelike showers in resonance
decays, in cases of coloured resonances such as
t → b W . In the first step theW always acts as recoiler to theb , but in subsequent step previously theW remained as recoiler to one dipole, while now all QCD-radiating partons recoil against another coloured parton. The old behaviour could give a (small) unphysical spike of radiation collinear with the colourless recoiler in the subsequent emissions (while the pattern of the first was and remains correct). The old behaviour can be recovered for checks, seeTimeShower:recoilToColoured
. Thanks to Yevgeny Kats for pointing out this issue (previously noted for Pythia 6 by several persons). - Bug fixes for
rootexamples/Makefile
and restoration of some deleted information inrootexamples/README
. Thanks to Axel Naumann and Bernhard Meirose. - Bug fix, so that displaced vertices are possible in resonance decay chains. Thanks to Daniel Blackburn and Andy Buckley for pointing this out.
- Bug fix for
Info
counter 2. - Bug fix so that sextet quarks now are read in correctly from Les Houches Event files; previously the (anti)colours were set to 0.
- Year updated to 2012 in copyright statements etc.
- Reformatting to reduce the number of code lines with more than 79 characters.
Pythia::initSLHA()
moved frompublic
toprivate
.- Remove warning message when tau polarization is set by hand.
- Several minor changes to reduce the number of warnings issued by the clang compiler. The origin of some warnings remains unclear so those remain to track down (could also be compiler bugs; note that we discuss warnings, not errors). Thanks to Randy MacLeod for bringing this up.
- The worksheet has been updated to be in step with Pythia 8.160.
- Several other minor corrections in the code and documentation.
8.162: 12 March 2012
- A new option allows for several partons to share the recoil in
final-state radiation, see
Timelike Showers . It is mainly intended to be used in the context of matching to matrix elements, and so only to be used in the first few branchings. - Several new processes for LED dijet production, see
Extra Dimensions . - Small update of the
Sigma2ffbar2LEDllbar
andSigma2ffbar2LEDgammagamma
LED processes. - New
Sigma2QCffbar2llbar
contact interaction process. - Inclusion of a new method in the
matrix-element merging framework to influence the construction of histories, e.g. to already in the construction of histories disallow paths that fail the2 → 2 cuts. - Further minor updates of the matrix-element merging code, mainly for improved clarity.
- Minor bug fix in the handling of beam and event information fed
in from an
LHAup
instance. - Minor bug fix for potential crashes from uninitialized variables for the merging machinery when merging is not used.
- Updated History class for matrix element merging, also avoiding some compiler warnings.
- Bug fixes in the handling of correlated mass choices in resonance
decays, such as
H → Z^0 Z^0 . - Bug fix when the process-level execution is switched off,
where
Info::isResolved()
could be called before its value was initialized. Thanks to Christian Pulvermacher for finding this. - Corrected matrix-element expression for mass selection in
A^0 → Z^0 Z^0 andA^0 → W^+ W^- . - SM Higgs mass updated to 125 GeV and default width and branching ratios modified accordingly. Minor technical improvements of width calculation.
- The usage of nested classes has been removed from
SusyLesHouches
, since it could give compilation errors on some platforms. The new class names begin withLH
and all classes have been put inside thePythia8
namespace. - Minor Makefile updates. Thanks to Mikhail Kirsanov.
- Minor changes to avoid some clang compiler warnings on the Mac OS X platform.
8.163: 27 March 2012
- New methods in the
class,Info
id1pdf()
,id2pdf()
,x1pdf()
andx2pdf()
, to denote the partons for which parton distribution values have been defined. Previously this was assumed to agree with the incoming partons to the hard process, the same methods without thepdf
qualifier. However, now the POWHEG approach offers a counterexample. Also the reading and handling of Les Houches (and other) events, and the interface to HepMC, has been modified accordingly. - The decay of Higgs and top resonances read in from Les Houches
Event files is now performed with angular correlations as for
internal processes. LHE files should normally contain all process-specific
resonance decay chains and, if not, decays are made isotropic.
The
H → WW/ZZ → f fbar f' fbar' andt → b W → b f fbar correlations are process-independent, however, and thus can be handled internally. If part of the decay chain has already been set, e.g.H → WW/Z> ort → b W , then the subsequent decays are still isotropic. - Updated instructions how to link to HepMC,
in
README.HepMC
. - Bug fix in the turn-on of resolved diffraction for low CM energies. Thanks to Erwin Visser.
- Bug fix in the handling of string junctions at very high energies, caused by numerical errors. Thanks to Erwin Visser.
- Some other small changes, mainly aesthetics.
8.165: 8 May 2012
- The MBR (Minimum Bias Rockefeller) model for single, double and
central diffraction Cie12 is included as new option
. It is specifically intended forDiffraction:PomFlux = 5
p p andpbar p interactions, and is currently the only option that also supports central diffraction. Thus the basic machinery for Central Diffraction (a.k.a. Double Pomeron Exchange) has now been implemented. Seeexamples/main04.cc
for an example. Thanks to Robert Ciesielski for contributing the new code. - For a
tau lepton in an external process, by default the SPINUP number in the Les Houches Accord now is interpreted as giving thetau helicity, and is used for its decay. - A
tau coming from aW now defaults to being purely lefthanded when neither of the existing matrix elements apply. - Decay mode
t → H+ b included as an option. - Four ATLAS tunes have been implemented as options for
Tune:pp
: A2-minbias-mstw2008lo, AU2-cteq6l1, AU2-mstw2008lo, and AU2-ct10. The new flagTune:preferLHAPDF
can be used to switch between the LHAPDF and the internal implementation of a PDF set, in cases where both are available. - Reorder libraries in
examples/Makefile
, specifically moveLIBGZIP
so that it is properly linked when used. Thanks to Erik Schnetter. - Minor modification so that LHAPDF can be used for PDFs in the hard process, with one of the built-in PDFs for the rest, even if LHAPDF is compiled so as to handle only one concurrent PDF set.
- Bug fix, that
ParticleDecays:mixB = off
did not switch offB0 - B0bar andBs0 - Bs0bar mixing. Thanks to James Catmore. - Bug fix for the handling of gluon polarization of initial-state
radiation, where an anisotropic azimuthal distribution was inadvertently
generated in some
2 → 1 processes. The update also includes always setting the second daughter zero for the two partons coming in to a hard2 → 1 process. Thanks to Antonio Policicchio. - Bug fix, that the setting of the number of user hooks MPI steps did
not use
UserHooks::canVetoMPIStep()
properly. - Some other small changes, mainly documentation and aesthetics.
8.170: 21 September 2012
- Streamline default behaviour and options for choice of GeV or MeV
for output to the HepMC event format, see
HepMC Interface . Also set the mass of HepMC particles explicitly, rather than having it calculated implicitly. Thanks to James Monk and Andy Buckley. - The
tau decay machinery has been further augmented with matrix elements and form factors for a variety of decay modes, such that all modes with a branching ratio above 0.1% are fully modeled. Several new classes and methods have been added to this end, Also, atau pair coming from aZ^0 decay is now handled by assuming theZ^0 to be unpolarized when neither of the existing matrix elements apply. Taus coming from B baryons are handed as for B mesons. - Flavour violating decays have been added to the squark, gluino, neutralino and chargino decay tables.
- Extend the
UserHooks::subEvent(...)
method so that it also works passably at the process level. Also new option forUserHooks::omitResonanceDecays(...)
. - New methods
UserHooks::canVetoPartonLevelEarly()
andUserHooks::doVetoPartonLevelEarly( const Event&)
are intended to be used the same way as the existing ones withoutEarly
in their names, but allow veto right after the ISR + FSR + MPI evolution, before beam remnants are added and resonance decays are considered. - Central diffraction now available for all
options, not only the MBR model. This has been constructed by analogy with the respective assumptions made for single diffraction, but includes some arbitrariness. Therefore the cross section is left easily rescaleable and, for backwards compatibility with tunes that does not contain it, easily possible to switch off, see thePomFlux relevant section . - Reading of ALPGEN parameter and event files has been added,
see
ALPGEN and MLM Merging . - MLM matching has been added, as a first step for ALPGEN events,
see
ALPGEN and MLM Merging . - The CKKW-L merging machinery has been upgraded in a number of respects.
- More thorough treatment ofpp>bb~e+e-veve~
with additionalb -jets.
- Corrected hardmu_r andmu_f choices for dijet and prompt photon.
- More ways to define a hard process, e.g. with the LEPTONS and NEUTRINO tags. The merging will understand LHE files for mixed processes (e.g.W+ andW- production together).
- More merging scale definitions.
- More freedom to generate all possible histories.
- Internal check (and cut) on Les Houches events inPythia::mergeProcess
if merging scale value of the events is below the value given to Pythia by settingMerging::TMS
. - It now works to have R-parity violating decays of R-hadrons, i.e. baryon number violation in a vertex displaced from the primary one.
- The documentation of diffractive processes by the
methods has been expanded and corrected. This also include theInfo list()
method. - Particle masses and widths have been updated to agree with the 2012 RPP values Ber12. Thanks to Piotr Zyla for data file and James Catmore for program to update the PYTHIA tables from this input.
- New methods
jetAssignment
andremoveJet
added to theSlowJet
class. - Introduce angular correlation in decay chain
H → gamma Z0 → gamma f fbar . Thanks to Tim Barklow and Michael Peskin. - Introduce simple way to bias the selection of
2 → 2 processes towards largerpT values, with a compensatingly decreasing event weight, seePhase Space Cuts . Only offers a subset of the possibilities allowed byUserHooks
, but simpler to use. Themain08.cc
program has been expanded to illustrate this possibility, and also expanded to include low-pT subsamples. - The two remaining non-NLO tunes from ATL12 are now included.
- The
methodsInfo nTried, nSelected, nAccepted, sigmaGen
andSigmaErr
now takes the code of an individual process as an optional argument. - It is now possible to generate resonance decays, followed by
showers and hadronization, without having them associated with any
specific process. This is part of an expanded
Hadron-Level Standalone machinery, as before triggered byProcessLevel = off
, but additionally requiringStandalone:allowResDec = on
. Input can either be directly into theevent
event record or via a (simplified) Les Houches Event File. - New
configure
script options--installdir
,--prefix
and--datadir
can be used to set the location(s) to which the library, header and data directories will be copied by amake install
subsequent to themake
. Thanks to Mikhail Kirsanov. - Fix charge in antiparticle name when particle read in from SLHA file. Thanks to Johan Alwall.
- Pointers now only compared with == and != (not e.g. > 0), to avoid warnings in gcc 4.7.
- New check that version number of the code matches that of the XML files. If not, no events can be generated. Thanks to James Monk for suggestion.
- New check that mother and daughter indices have been set to give
a consistent event history. Can be switched on/off with the new
Check:history
flag. - A new method
LHAup::newEventFile
has been added to switch to reading in events from another LHE file without having to reinitialize the whole class. Lower-level routines likeopenFile
andcloseFile
have been added to handle correct order of operations also when an intermediate gzip decompression step is involved. LHAup::eventLHEF()
can now be called with an optional argumentfalse
, to make event files somewhat smaller by reducing the amount of blanks.- A new mode
Beams:nSkipLHEFatInit
introduced to skip ahead the first few events in a Les Houches Event File (cf. theLHAup::skipEvent(nSkip)
method). - Introduce a new pair of user hooks that can be used to reject the sequence of hard-process resonance decays, without rejecting the production of the primary resonances.
- The possibility of separate multiplicative prefactors to the
renormalization and factorization default
pT^2 scale has been introduced for both timelike and spacelike showers. - Bug fixes in history information for R-hadron production, which also fixes HepMC conversion in this case.
- Bug corrected in
SigmaSusy.cc
, for chargino+neutralino production. Indexing error for incoming quark states in the processSigma2qqbar2charchi0
, resulted in incorrect CKM factors. - Corrected a bug in
SusyLesHouches.cc
, for NMSSM spectra. The unitarity check on the neutralino mixing matrix was faulty, leading to erroneous messages about unitarity violations and SUSY being switched off. - Bug fixes in the handling of resolved and unresolved diffractive events. Thanks to Robert Ciesielski for debug.
- Do not set up FSR dipoles for
2 → 1 processes. - Check that some channel open for resonance decays. Also further check whether resonance decay treatment should be invoked.
- Bug fix in reading of particle names from SLHA input.
- Change mass, width and decay mode(s) of D*_s(10431). Thanks to Michal Petran.
- Bug fix in leptoquark production (lepton sign in
q g → LQ l ). - New argument added to
SpaceShower::reassignBeamPtrs
for diffractive event processing, as already available forTimeShower
. - Do not write warnings in
SpaceShower
for weights above unity if the evolution scale is below 1 GeV^2. - Add default values for member variables in some constructors,
and some related changes for
AlphaStrong
code. - Warn if negative-energy parton in hadronization.
- The MPI
pT values assumed in the beam remnant setting of primordialkT and colour reconnection probability were incorrect for diffractive events. - The arrays with MPI information were not reset when parton or hadron level fails and a new try is made. Only affected few events.
- MPI statistics can not yet be accumulated for diffractive events, and therefore the relevant routine is no longer called.
- Bug fix in the double parton scattering suppression from energy-momentum conservation.
- Outgoing proton masses were not set in the event record for elastic scattering (but kinematics handling was correct).
- Bug fixes in the identification and documentation of junctions, previously leading to some unnecessarily rejected events. Also other improvements leading to fewer errors.
- Slightly increased values for FragmentationSystems:mJoin and StringFragmentation::FACSTOPMASS to reduce failure rate, without noticeably affecting event properties.
- The Les Houches cross section error is now taken into account
in the final Pythia error for strategies +-3. New methods
LHAup::xSecSum()
andLHAup::xErrSum()
provide the necessary information. - When a tau pair comes from a massless photon, in dipole shower evolution, for the decay description the mother photon is reassigned to have the sum of the tau momenta.
- Minor change in initialization sequence for user hooks, to allow for more flexibility.
- Do not print warnings when multiparton interaction weights are only slightly above unity.
- Do not write warnings for three known particles that are so close to threshold that widths are switched off to avoid trouble.
- Some minor typographical changes.
8.175: 18 February 2013
- Richard Corke and Stefan Ask leave as active authors, and have new e-mail addresses.
- Jesper Roy Christiansen and Philip Ilten join as new authors.
- A severe bug found and corrected in the handling of junction
fragmentation. For some string topologies it could lead to parts of
partonic systems mainly aligned along the beam axis to obtain an
effective tilt, thereby giving rise to a pair of opposing jets that
should not be there. The bug was an unfortunate side consequence
of the improvement of junction handling introduced in version 8.170,
and do not affect versions prior to that. To the largest extent
possible, it is recommended to avoid this version. Potential errors
are likely to be most relevant for processes at low
pT , whereas processes that already have a large scale proportionately are less affected. Sincere apologies, and thanks to Hannes Jung for discovering it. - The initialization is aborted when the user tries to change the value of a non-existing variable in the Settings or ParticleData databases, and it becomes impossible to generate events. This may be rather brutal, as opposed to the former policy of ignoring such commands (except for a warning), but avoids that the user wastes time on a run that is likely not to give the wanted results. Thanks to Gavin Salam for stressing this point.
- Major updates of the merging code. CKKW-L code is made more flexible,
and now includes additional options to facilitate merging of additional
jets in MSSM processes. Unitarised ME+PS merging (UMEPS) is introduced
as a new merging scheme for tree-level input. An example main program
for UMEPS is added. UMEPS is documented in the new section
UMEPS Merging . NLO merging methods are now functional. Two NLO merging schemes are implemented: NL3 and unitarised NLO+PS merging (UNLOPS), both of which are illustrated with example main programs. NLO merging is documented inNLO Merging . - The machinery for the MLM-style matching of jets has been
expanded to cover input either from ALPGEN, as before, or from
Madgraph (or other LHEF input), and expanded to cover either a
matching algorithm based on the one in ALPGEN or the one in Madgraph.
See
Jet Matching for details. - Neutrons and antineutrons are now allowed as incoming beam particles. The neutron PDF is derived from the chosen proton PDF by simple isospin conjugation, and total/elastic/diffractive cross sections are assumed the same as for protons.
- Update in
Pythia.cc
, to allow user to override SLHA mass values by hand, controlled by the new flagSLHA:allowUserOverride
. This was motivated by people wanting to be able to read in a base SLHA spectrum and then quickly scan over particular mass values manually. Corresponding documentation update inSUSYLesHouchesAccord.xml
. - Updates to the
ResonanceWidths
andSUSYResonanceWidths
classes, to merge common initialization steps into the base class. Corresponding documentation update inSemiInternalResonances.xml
. Also some cosmetic changes inSUSYResonanceWidths
to improve conformity withCODINGSTYLE
rules. - The
SlowJet
jet finder is updated with an option for an alternativeR separation based oncosh(Delta y)-cos(Delta phi) . - Statistics information on the separate subprocesses among the Les Houches external input is improved.
- The sophisticated tau decay machinery has been expanded so that
it can also handle production of taus in hypothetical
lepton-number-violating processes, such as
H0 → tau+ mu- . - Branching ratios for most light hadrons, and the tau lepton, have been updated to agree with the 2012 Review of Particle Physics Ber12, by Anil Pratap Singh.
- Photon radiation can now be included in leptonic two-body decays
of hadrons by setting the new switch
ParticleDecays:allowPhotonRadiation = on
. The lower shower cutoffTimeShower:pTminChgL
has been reduced so as to let the simulated photon spectrum extend to lower energies. - A new switch
MultipartonInteractions:bSelScale
has been introduced, to determine the relevant mass orpT scale of an event for the selection of impact parameter in the MPI framework. In spite of a changed default behaviour (the old being option 3), practical consequences are small for most processes. - The new
UserHooks::retryPartonLevel()
method can be overloaded, so that the same hard process is reused for a new try on the parton level, rather than being rejected completely. Thanks to Christian Bauer for suggestion. - A new method
Event::undoDecay(int i)
can be used to remove the daughters of a particle, and further descendents. Does not work for removing the daughters of a parton. - The interface to
HepMC
has been updated. In particular the support for old version has been removed, thereby allowing significant simplifications. The list of methods to set and get the behaviour of the conversion routine has also been updated. Theset_event_scale
method now stores the renormalization scale (rather than thepT stored previously). The examplesmain41
,main42
,main61
,main62
andmain84
have been updated accordingly. - Four new methods to interrogate the default values of the four different kinds of settings.
- The
Vec4
class has been expanded with methods to return true rapidity or pseudorapidity, and theR distance in(y, phi) or(eta, phi) cylindrical coordinates. Thanks to Andy Buckley. - The copy and = constructors of the
Pythia
class are made private so that compilers will block use of them. Thanks to Andy Buckley. - New option of the
Pythia
constructor, to omit the banner printout where necessary. Also new master switchPrint:quiet
to switch off most runtime program messages. Thanks to Andy Buckley. - Updates in the machinery that restores all affected values to their defaults before setting a new tune.
- A new
Vect
class has been introduced for theSettings database. It can be used to store a vector of double-precision real values. - Three new groupings of existing QCD processes:
SoftQCD:inelastic
,HardQCD:hardccbar
andHardQCD:hardbbbar
. - New possibility to set the
a andb parameters of the Lund fragmentation function separately for heavy flavour. Especially theb is expected to be universal, but Aurelien Martens and Eli Ben-Haim have found improved fits by relaxing this condition, so we formalize this possibility without recommeding it. - Method
Pythia::getPDFPtr
is made public so it can be used also outside thePythia
class to access PDF sets. Internally the PDF bookkeeping is modified to allow for the simultaneous handling of several PDF sets. Thanks to Mathias Ritzmann for providing code changes. - It is now possible to read the separate scale values of all outgoing particles, if this info is stored as a single line in an LHEF, begun by a single hashtag character. This is currently nonstandard and may evolve.
- Some improvements to the install targets code in the
Makefile
and error detection inexamples/configure
. Thanks to Mikhail Kirsanov. - The CC and FC global environment variables can be set to specify
the C++ and Fortran 77/90 compilers, otherwise set in
configure
andexamples/configure
. Thanks to Mikhail Kirsanov. - Check of shell choice in
configure
removed. Thanks to Andy Buckley. - Minor modifications in the Makefile and text for Root examples, relevant if shared libraries are used.
- Previously the whole
std
namespace has been made available inPythiaStdlib.h
. Now this behaviour has been replaced by the already-existing alternative, where only a part ofstd
is made available, and only inside thePythia8
namespace. Thus user code does not become reliant on the choices in PYTHIA. Some related smaller code rearrangements. Thanks to Andy Buckley. - When the "second hard" machinery is used to set two hard processes,
the old behaviour for the
SpaceShower:pTmaxMatch = 0
andTimeShower:pTmaxMatch = 0
options was to use the combined final state of the two processes to decide whatpT_max scale to use. This could have unexpected consequences. Now each process is analyzed separately, and therefore has a separate scale. Also forMultipartonInteractions:pTmaxMatch = 0
the two interactions now are analyzed separately. It is then enough that one of them should limitpT_max of subsequent MPI's for such a restriction to be imposed. Thanks to Monika Jindal for discovering this bug. - The
TimeShower:pTdampMatch
option had no effect if switched on, since some code was missing. The manual description of it and the more relevantSpaceShower:pTdampMatch
has been updated. - One minor bug fix and some corrections to make the code compile
on Windows/VisualC++-2010. A simple error function parametrization
has been added to
PhaseSpace.h
andSigmaTotal.h
, to be uncommented in caseerf(x)
is not available by default. Thanks to Guy Barrand for providing the information. - Break a closed dependency loop between
ParticleData.h
andResonanceWidths.h
. Thanks to Andreas Schaelicke and Andy Buckley. - In the
examples/mainXX.cc
programs, class instances that have been created with anew
are explicitlydelete
d at the end of the run. Useful if trying to track memory leaks. - Bug fix for R-parity violating decays of R-hadrons, to treat the special case of sequential resonance decays after the RPV one. Thanks to Mariangela Lisanti for pointing out this bug.
- Changed the maximum allowed value for
Tune:pp
. Thanks to Yevgeny Kats. - Bug fix in the
z -value weight for QED ISR emissions. - Some destructors moved for improved consistency.
- Constants
DEBUG
renamedDBSUSY
in theSusyCouplings
andSusyResonanceWidths
classes to avoid confusion. Thanks to Guy Barrand. - Many typos corrected and some other minor improvements of the online documentation.
- The year has been updated to 2013 in files.
8.176: 18 April 2013
- Introduce weak shower, whereby
W^+- andZ^0 gauge bosons can be produced interleaved with ordinary QCD and QED emissions. Currently only available for final-state radiation, and off by default, seeTimelike Showers . A new status code 56 denotesW^+- andZ^0 gauge bosons produced by the FSR parton showers. - The gauge bosons produced by showers decay at the end of the
parton-level step. New identity codes 93 for a
Zcopy
and 94 for aWcopy
can be used to set the decay modes of shower-produced gauge bosons separately from hard-process ones, but do not appear in event listings. - The
Particle
class has been updated with a pointer to the motherEvent
class, replacing the previous pointer to theParticleData
class. Thereby several old methods in theEvent
class can obtain new equivalents for theParticle
one. That is, a callevent.method(i)
instead can be writtenevent[i].method()
. The duplicated methods arestatusHepMC
,iTopCopy
,iBotCopy
,iTopCopyId
,iBotCopyId
,motherList
,daughterList
,sisterList
,isAncestor
andundoDecay
. Omitted issisterListTopBot
, whilesisterList
obtains an optional argument. A new methodindex
is introduced. The now redundantEvent
class methods will be removed in PYTHIA version 8.2. Thanks to Andy Buckley for suggestion. - The initialization of SUSY couplings and particle data has been
moved from the
Pythia
andProcessLevel
classes to a new dedicatedSLHAinterface
class. - Some SUSY 3-body decays have been implemented with Matrix Element weighting.
- New method
Info::scalup()
returns the Les HouchesSCALUP
variable. This method is now used instead ofQFac()
inmain31.cc
, to set maximal scale for shower radiation in case that the event contains no POWHEG emission, and thereby sidesteps a potential bug when PDF information is provided in the Les Houches Event File. Also some default values have been changed inmain31.cmnd
. Thanks to James Monk. - New parameter
LesHouches:mRecalculate
can be used to prompt the recalculation of a particle mass from its four-momentum. This may be required for Les Houches input events where the nominal mass of the particle species is stored in the mass slot, rather than the actual mass of the current particle, as foreseen. - Extra checks that tracing of junctions in particular and partonic colour singlets in general are only performed when the event record contains coloured unhadronized partons. Thanks to James Catmore.
- Minor correction related to GZIP support. Thanks to James Monk.
- Recalculate the phase space of diffractive processes for each event when variable beam energies are allowed. Thanks to Oldrich Kepka for finding the bug.
- Fix a bug whereby a gluon in diffractive systems would obtain a light-quark mass.
- The
Pythia::check()
method can also check that each particle obeysE^2 - p^2 = m^2 (within numerical precision). Speed up the checks on mother-daughter history by streamlining the handling of simple cases.
8.180: 20 September 2013
- Nishita Desai joins as new author.
- All the header files
include/.h
have been moved toinclude/Pythia8/.h
to better comply with conventions in other libraries (= generic name). Thus also all code lines
#include ".h"
that refer to PYTHIA files have been changed to#include "Pythia8/*.h"
. Thanks to Andy Buckley for suggestion. - The class that converts PYTHIA events to the HepMC format
is renamed from
I_Pythia8
toPythia8ToHepMC
, the files where the class resides fromHepMCInterface.h/.cc
toPythia8ToHepMC.h/.cc
, and the subdirectory of the.cc
file fromhepmcinterface
topythia8tohepmc
. This clarifies the role of the class and avoids potential future name clashes with other interfaces. Makefiles and example main runs have been modified accordingly. Thanks to Andy Buckley. - The configure/Makefile step has been extended such that a
bin/pythia8-config
script is constructed, to simplify subsequent linking of PYTHIA 8 and other libraries to your main program. See theREADME
file for further instructions, the new "Compling programs against PYTHIA 8" section. Thanks to Andy Buckley for code and text. - The "minbias" event class has been renamed into the
(inelastic) "nondiffractive" one, since the "minbias" denomination
should be reserved for an experimental procedure. Needless to say,
also the separation into diffraction or not could be made by
experimental procedures, but here it is more generally accepted that
there is an underlying theoretical description that takes precedence
in cases of conflict. Thus the
SoftQCD:minBias
flag has been remanedSoftQCD:nonDiffractive
, and theInfo::isMinBias()
method has been renamedInfo::isNonDiffractive()
. The old names have been retained as alternatives for now. Thanks to Andy Buckley. - Four PDF sets have been added from the NNPDF2.3 QCD+QED family:
the central sets for LO with
alpha_s(M_Z) = 0.130 , LO withalpha_s(M_Z) = 0.119 , NLO withalpha_s(M_Z) = 0.119 , and NNLO withalpha_s(M_Z) = 0.119 . Thanks to Juan Rojo and Stefano Carrazza for providing the code. - The
fjcore
version 3.0.5 code fromFastJet
has been included with the PYTHIA distribution.SlowJet
now by default becomes a front end tofjcore
, but the old behaviour is retained as an option. The new approach is faster, but the older one still offers a few extra possibilities. Note that the newuseFJcore
argument to theSlowJet
constructor has been included as a new last-but-one argument, since the last one is likely to be used much more infrequently and logically depends on the value set foruseFJcore
. Thanks to Matteo Cacciari, Gavin Salam and Gregory Soyez for making thefjcore
code freely distributable. - New method
constituents(i)
inFastJet
returns a vector with the indices of the particles belonging to thei 'th jet. - The global recoil option for final-state showers has been extended with a few more options to improve possibility for matching to output from other programs, such as aMC@NLO.
- Further extensions of the weak-showering machinery, but still
experimental. Now also includes
W/Z emission in the initial state. - Introduce new
qqbar
option forSigmaProcess::inFlux()
and update documentation. - Improve the description of
meMode
for resonances and illustrate how to force specific Higgs branching ratios inmain16.cmnd
. - Added two previously missing SUSY processes for associated
production of a gluino with a neutralino or chargino:
SUSY:qqbar2chi0gluino
andSUSY:qqbar2chi+-gluino
, using the cross section expressions in Fuk11. Validated against PYTHIA 6 and XSUSY. - Added direct slepton production from
q qbar annihilation,SUSY:qqbar2sleptonantislepton
. Validated against PYTHIA 6. - Corrected some slepton and squark EW couplings in
SusyCouplings
. - Generalized the cross section formulae for
SUSY:qg2squarkgluino
to the case of non-minimal flavor violation, using the expressions in Fuk11. Validated against PYTHIA 6 and XSUSY. The new implementation is compatible with both SLHA2 and SLHA1, whereas the older was only compatible with SLHA1. - Generalized the cross section formulae for
SUSY:qqbar2gluinogluino
to the case of non-minimal flavour violation, using the expressions in Fuk11. (Also corrected a factor 2 in that paper on the color factor forst andsu interference terms.) The new implementation is compatible with both SLHA2 and SLHA1, whereas the older was only compatible with SLHA1. - Changed the default
meMode
for SLHA DECAY modes to 100, to allow off-shell decays. Enabled the user to choose a differentmeMode
if desired, via a new mode,SLHA:meMode
. If values different from 100 are selected (e.g., 103), modes that are extremely far off shell (defined as needing a fluctuation of more than 100 times the root-sum-square of the widths of the mother and daughter particles) will still default back to 100, though the user may of course still switch them off if so desired. Added documentation about this inSusyLesHouchesAccord.xml
. Deleted the parameterSLHA:minDecayDeltaM
, which would prevent the possibility of off-shell decays unless set to a large negative value. - Added calculation of decay lengths to SLHA DECAY modes.
- Updated documentation of SUSY processes and SLHA-related parameters. Additional reference to the new cross sections included in the bibliography.
- Allow six-flavour running of
alpha_s above the top threshold, and implement option with CMW rescaling of the Lambda values, for use in coherent showers. - The merging code has been updated, with corrected handling of massive
partons. This amends problems in
tt̄ , and makes clusterings of massive emissionsW, Z, ~g possible. The bookkeeping for the hard process has been upgraded to accommodate more general BSM processes. The treatment of incomplete histories has been upgraded, so that histories which allow for at least one clustering will be used in the unitarisation. Also, states that do not allow for any clustering will not be subject to the (internal, optional) cut on the input events any longer, to guarantee full phase space coverage. This is important for processes for which a non-negligible fraction of states lead to incomplete histories, e.g.tt̄W production. Further, functionality for reclustering FSR off SUSY particles has been added. A new setting allows more easily to switch between 4-flavour and 5-flavour merging schemes. - The
main85.cc
-main88.cc
have obtained support for zipped LHE input files, and have nicer printing of the inclusive cross section at the end. - Introduced new mode
LesHouches:setLifetime
so that the lifetime information in Les Houches input can be replaced by the standard PYTHIA selection procedure. By default this is applied totau leptons, since some matrix-element generators do not set this lifetime. Thanks to James Monk and Thorsten Kuhl. - A new
examples/main46.cc
illustrates how to write a ProMC file with PYTHIA events. Thanks to Sergei Chekanov. - The
Vect
class has been renamedPVec
and a newMVec
class has been introduced along the same lines, see theSettings database. They can be used to store a vector of double-precision real or integer values, respectively, i.e. of parms or modes, hence the names. Thanks to Abram Krislock. - Two new vectors of integers
SUSY:idVecA
andSUSY:idVecB
have been introduced to allow a more flexible selection of final states in SUSY processes, see theSUSY process selection page. The selection machinery has been expanded to cope. Thanks to Abram Krislock. - New switch
PartonLevel:earlyResDec
to give first simple option where resonances are allowed ro decay before colour reconnection and beam remnants are added. - Renamed the
mass(...)
methods tomSel(...)
in theParticle
,ParticleData
andParticleDataEntry
classes, to avoid users mistakingParticle::mass()
forParticle::m()
. - Fixed a missing (unused) argument in some derived classes when
the
mRecalculate
parameter was introduced in Les Houches code in version 8.176. - Removed several unused class variables from header files, based on new compiler information.
- Fixed a bug in
Sigma2ffbar2HposHneg
, whereint(...)
was used instead ofabs.(...)
. Thanks to Vittorio Zecca. - Fixed missing re-initialization of Breit-Wigner mass generation parameters for externally set new resonance widths. Thanks to Vittorio Zecca.
- Fixed several places where division by zero or adressing of arrays out-of-bounds could occur. While some were trivial, others revealed underlying errors, notably in the handling of some SUSY processes and resonances. New checks against unphysical SLHA input have been implemented. Also some bug fixes in the new weak-shower ISR component, the sphericity analysis, the event undo-decay option, and more. Thanks to Vittorio Zecca.
- Bug fix in the
tau decay description for decay chains likeH0 → A0 A0 → 4 tau , caused by an erroneous assignment of the number of spin states. Thanks to Brock Tweedie. - Add setting of some
TimeShower
variables that might remain uninitialized. Thanks to Christian Pulvermacher. - Extra check in
TimeShower
for incoming massive particles, where a recalculation of kinematics to an equivalent massless case could give a slightly negative effective dipole mass (with endpoint masses subtracted). Thanks to Paolo Torrielli. - Updated manual on how to implement new showers, mainly detailing new optional method arguments. Thanks to Mathias Ritzmann.
- Corrected bug in
SigmaSUSY
which caused flavour violating slepton production (for R-parity conserving cases too). - Corrected bug in
SusyCouplings
wheretan(beta) was not read from LHA file for RPV spectrum. - Modified the contact interaction term normalization of the
f fbar → l lbar process to agree with the one used in PYTHIA 6. Documentation of theContactInteractions:Lambda
updated to reflect this. Thanks to Daniel Hayden. - Introduced copy constroctor for the
Event
class. - Reset the Higgs mass range when its mass is changed in
examples/main14.cc
. - Remove obsolete
examples/main91.cc
and associatedMakefile
code. - Catch cases where junction topologies are sent to the ministring machinery, which is not set up to handle it, and therefore could give segmentation faults. Very rare.
8.183: 23 January 2014
- A potentially severe bug has been found in version 8.180,
in that by mistake the
SpaceShower:vetoWeakJets
,SpaceShower:dopTDampMass
,TimeShower:dopTDampMass
were given a defaulton
value rather thanoff
. Its main effect is to reduce the emission of two or more hard jets for processes 221 and 222, i.e.gamma^*/Z^0/W^+- production: implicitly it thereby also softens thepT spectrum of the gauge boson. Other processes should be unaffected. - The emission of
W andZ weak gauge bosons in ISR and FSR parton showers is now fully implemented Chr14. Note extra optional arguments for a fewTimeShower
andSpaceShower
methods. - The worksheet, intended to help beginners get going, has been
updated and expanded. Notably with new exercises on CKKW-L merging
and Higgs production and decay. Also some new comments on platform
requirements and how to meet them. An
examples/main80
program has been added for the merging exercise. - The LO PDF sets in the NNPDF2.3 QCD+QED family are now valid down to
Q^2 = 1 GeV^2 , the NLO and NNLO sets are positive definite, and all go down tox = 10^-9 . Grid file names have been updated to agree with the LHAPDF ones. Newmain54.cc
test program. Thanks to Juan Rojo and Stefano Carrazza for the updates. - Three new
to some LEP data, one by Peter Skands and two by Nadine Fischer. Also the more comprehensivee^+e^- tunesMonash 2013 tune Ska14, which covers bothe^+e^- andpp/pbarp data. - Some moderate changes in the merging machinery, as follows.
Added the D-parameter of the
kT measure as an input. Added flag to not remove states with incomplete histories from NLO input (normally, these are taken from tree-level samples instead). This is necessary for a correct treatment of inputs with "diagram subtraction", as is e.g. needed for the definition ofp p → tW . Updated the bookkeeping of the hard process in the merging again, so that the "hard process candidates" are not switched around too often. Updated the main files with proper header for the standardaccess( string, F_OK)
function. - Changed status code for partons in the hardest interaction of
the
SoftQCD
processes, from being in the 30'ies range to being in the 20'ies range. Thus a nondiffractive event is always set to have one 20'ies hard interaction. Diffractive events can have zero, one or two hard interactions, the latter possible only for double diffraction. A low-mass diffractive system need not contain any perturbative interaction, but a nonperturbatively kicked-out quark or gluon is defined by the new 24 status code. - New flag
HiggsSM:NLOWidths
, on by default, enables rescaling of the internal PYTHIA partial widths of the SM Higgs to the values recommended by the LHCXSWG. - New possibility to pick a fixed factorization scale for ISR (and also for FSR) for debug purposes.
- New processes for s-channel exchange of a
gamma^*/Z^0 orW^+- , written as2 → 2 processes, whereas the already existing processes separate production and decay of a resonance. - New parameter
StringZ:aExtraSQuark
allows an optional softening in hadronization for strange quarks. - New method
vector<int> Info::codesHard()
returns a vector of the hard-process codes set up for current run. - New optional extra argument for the
Hist::table
methods allow output of underflow and overflow. Thanks to Mathias Ritzmann. - Two extra safety checks for the
Event
class. Thanks to Mathias Ritzmann. - Allow a leptoquark also to couple to the top quark. Thanks to Katherine Leney.
- Updated problematic return statement in
JetMatching.h
. Thanks to Simon de Visscher. - New addresses for Nishita Desai and Philip Ilten.
- Changes in
TimeShower
,(Susy)ResonanceWidths
,SigmaProcess
and other classes to avoid undefined variables. Thanks to Vittorio Zecca. - Major cleanup of code and documentation files: replace tabs, remove blank characters at the end of code lines, keep one blank character at the end of documentation lines, restrict to a maximum of 79 characters per line wherever feasible, and update year to 2014.
8.185: 15 March 2014
- Bug found in the handling of ISR in diffractive systems, whereby the
maximal scale of shower emissions was set to the mass of the diffractive
system, rather than the
pT of the hardest interaction. This bug was introduced in version 8.183, when the status code of the hardest MPI was changed, and notably gave too many high-pT particles, and also a bit too high multiplicity. In versions up to and including 8.180, instead thepT of the second MPI was not strictly limited by thepT of the first, which also gave an overestimate, but smaller. - Added the FxFx matching and shower-kT matching schemes as new options,
see
Jet Matching . Still under validation, though. Part of the new code is contributed by Simon de Visscher. - A number of minor improvements of the merging machineries for
increased flexibility, including removed hardcoded maximum number of jets,
updated bookkeeping to allow for a event-by-event definition of the
hard process for merging, removed incomplete histories warning, small
change in mass treatment for reclustering, and more. Also removed internal
setting of
K factors formain88.cc
. - New documentation on the
POWHEG Merging implemented inexamples/main31.cc
. - Higgs particle names (re)simplified to MSSM standard. New
SLHAInterface
code added to reset the names appropriately (SLHA2 conventions) when in the NMSSM, CPV or RPV scenarios. PDG codes 45 and 46 reserved as placeholders for further Higgs states. - SUSY decay channels now have
meMode = 0
, except those to Gravitinos, for which no code has been implemented (they stay 103). By default, the width of SUSY particles is formally set to 1.0, but all decay channels start out with zero branching fractions. The proper BRs should then be calculated by PYTHIA, and/or read in via SLHA decay tables, and/or set by hand by the user. - Expanded SLHA input support for NMSSM type models, plus a few further minor SUSY improvements and fixes.
- Significant extensions to the
charmonium and bottomonium machineries, as follows.
Many more colour-octet states, according to a new labelling convention9 9 n_Q n_state n_r n_L n_J , wheren_Q is the flavour of the state (4 or 5),n_state is 0 for 3S1, 1 for 1S0 and 2 for 3PJ states, whilen_r ,n_L andn_J are the same as in the PDG convention. They are assigned masses 10 MeV above the respective colour singlet state.
Data on processes which only differ by the radial excitation numbern_r are grouped into vectors for on/off switches and long-dinstance matrix elements, but share the same process code and short-distance matrix elements. This grouping involves some upgrades to the cross section bookkeeping machinery.
Matrix elements for 3DJ processes are now implemented.
The mass splitting between all colour octet and singlet state pairs can be set by one common parameter. - Introduce new switch
TimeShower:weightGluonToQuark
that allows a few alternative approaches to set theg → q qbar branching rate, notably for heavy quarks, and similarly forgamma → f fbar . Associated scale-setting freedom regulated by newTimeShower:scaleGluonToQuark
parameter. - New/improved capabilities to accept LesHouches input of events
without any incoming beams, e.g. for resonances with decay chains,
where PYTHIA should add showers and hadronization, see
Les Houches Accord andHadron-Level Standalone . TheStandalone:allowResDec
switch is removed and its functionality largely taken over by theProcessLevel:resonanceDecays
one. - New possibility to comment out a section of lines in a command file,
when read in by
Pythia::readFile(...)
. The first line of the commented section should begin by/
and the last begin by/
. Best is to keep them on separate lines, optionally followed by comments, but no commands. - A new
FVec
class has been introduced to store a vector of flags, see theSettings database. - Minor update in
configure
to be used bypythia8-config
. Thanks to Andy Buckley. - Minor update in the
configure
options for FastJet. - Minor update of the Monash 2013 tune.
- In the joining of nearby partons,
q + g → q , in preparation of the hadronization step, it is ensured that the quark mother is listed asmother1()
, even when this is not the order of the mothers in the event record. - The histogram table printing routines have acquired a new argument
that allows the
x value at the beginning of each bin to be printed, instead of the midpoint one. - Implement (some of the) functionality of the
doForceWidth
switch for resonances, that has been missing so far, and improve the documentation thereof. Thanks to Xiaohu Sun. - Update some of the hadron-level code to handle several junction-antijunction topologies in a single event.
- Bug fix for MPI's with an
x -dependent impact parameter profile (bProfile = 4
) and the factorization scale of a hard process as the maximal scale (pTmaxMatch = 1
), that this maximum was not respected, so that an MPI could be harder than the hard process.
Thanks to Stefano Camarda. - A few minor bug fixes in the new weak-shower machinery.
- Minor fix in the setting of the pointer of a particle data entry to the full particle data table.
- Some other minor fixes.
8.186: 8 July 2014
- A new user hook to help experimentation with colour reconnection, in particular in relation to resonance decays.
- New set of parameters
StringFlav:probQQ1toQQ0join
, used to pick diquark spin when two already produced quarks are to be joined into a diquark. - Possibility to map the bookkeeping of exotic unresolved incoming
beams in Les Houches event files onto neutrino beams, see
LesHouches:idRenameBeams
. Primarily intended for dark matter annihilation. Thanks to Leila Ali Cavasonza and Jiang-Hao Yu. - A correction to the graviton (
G^ ) + parton hard processes (5003-5005) to account for off-shellG^ production. The previous formula assumed the graviton was on-shell and could greatly overestimate the low-mass tail of theG^* . - Bug fixes in
examples/JetMatching.h
, for uninitialized boolean, and number of partons to match for heavy flavour handling. The former bug was introduced with the new matching schemes in version 8.185 and affected matching to ALPGEN, since no events were rejected. Thanks to Chris Brust. - Differentiate the reading of ALPGEN masses, so that vanishing
c orb masses in ALPGEN are not unwittingly used where inappropriate. Also protect thec andb masses from being set too low inTimeShower
andSpaceShower
, so that flavour thresholds are not messed up. - Reduce number of maximum violation warnings in
SpaceShower
by leaving some headroom for branching weights. - Bug fix that
hasVetoed
inPythia.cc
was not reset correctly in some specific cases. Thanks to Christian Bauer and Calvin Berggren. - Bug fix in PartonLevel.cc where a reference could become invalid. Thanks to Thomas Rössler.
- Improvements and bug fixes in junction handling.
- Bug fix to not reuse colour indices in double diffraction.
- Bug fix in the calculation of the average mass threshold of
open decay channels of a resonance. Reduced
ResonanceWidths::MASSMIN
parameter value. - Correct typo in left-right symmetry documentation. Thanks to Nady Bakhet.
- Some other minor fixes. Thanks to Pere Mato for two of them.