Update History
These update notes describe major updates relative to the
PYTHIA 8.186 version, which was the last regular 8.1 release.
(Minor bug fixes will continue to appear.) 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.
Main news by version
- 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 for
H^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 for
H^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
of include/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
and
Streams.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
and Q^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
and
include/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 new examples/main33.cc
demonstrates
how to use these plugins, and examples/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
and readFile
methods are buffered and repeated after
the SLHA initialization.
- New
#define PYTHIA_VERSION 8.2xx
in Pythia.h
allows user-code preprecessors to make version-specific choices, and
allows the Pythia
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
the PhaseSpace
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 for
Z' and W' decays.
- New method
AlphaStrong::setThresholds(...)
allows to
set the charm, bottom and top flavour-threshold masses used for the
running of alpha_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. New main73.cc
example illustrates usefulness.
- The
[]
operator is implemented for the Vec4
class to return its components by index.
- New method
string Settings::output(string key)
returns
the value of a variable as a string. In Pythia::readString()
or readFile()
calls this can now be used to print a
current setting value by the command key = ?
.
- The role of the
pythia.forceTimeShower(...)
method is
better explained in the hadron-level standalone documentation, and
main21.cc
has been extended with an example.
- The
TimeShower::enhancePTmax()
method is made virtual.
- The
iTopCopyId()
and iBotCopyId()
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 to
include/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
the share/Pythia8/
subdirectory to the main directory,
as was the case in PYTHIA 8.1, to make it more visible to newcomers.
The optional make install
step will create a copy of
examples
in share/Pythia8/
. The rarely
used examples/outref
subdirectory is moved to
share/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 the Tune: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 in main48
.
- Several minor changes in the
examples
subdirectory.
This includes the README
, Makefile
an
runmains
files. The main61
example program
has been removed, since now LHAPDF can be loaded dynamically for
main42
, so that the two become equivalent. Further
main62
has been renamed main43
, to gather
HepMC-related examples, and testlhef3.lhe
has been
renamed wbj_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
in main46.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
and SpaceShower:pTdampMatch
, with new default 3 for the
latter. The main effect is that, by default, t tbar
production (as a 2 → 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
or modefix
labels in the xmldoc/*.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()
in SusyResonanceWidths
to dynamically create the decay table for SUSY particles and thereby
to remove duplication in the XML file.
- New file
SusyWidthfunctions
. Added new class
WidthFunction
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 new
slha1-example.spc
and slha2-example.spc
files
replace the older cmssm.spc
, snowmass2.spc
and softsusy.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 their php
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 Ziebcik.
- 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 in
ProcessContainer::constructProcess
.
http://home.thep.lu.se/Pythia
has been introduced
as a simpler but (hopefully) equivalent address to
http://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. The README
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 Ziebcik.
- Fix typo in constants of the tau → 3 pi current
for the amplitudes of the rho, rho(1450), and
f2. 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 primordial kT 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. The examples
,
htmldoc
, phpdoc
and xmldoc
directories have been moved here. The main-directory files
AUTHORS
, COPYING
, GUIDELINE
and README
are also copied here during installation.
- A new
share/Pythia8/pdfdoc
directory collects pdf
documents that are linked from the htmldoc
and
phpdoc
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 the g → 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
and JetMatching.h
, moved
from the examples
directory;
- the
PowhegHooks
user hook, to veto shower emissions
above the POWHEG scale, formerly found in examples/main31.cc
;
- the
Pythia8ToHepMC
interface for output of PYTHIA events
into the HepMC format, combining the code previously in
include/Pythia8ToHepMC.h
and
pythia8tohepmc/Pythia8ToHepMC.cc
into a new
HepMC2.h
file;
- the
FastJet3.h
interface of PYTHIA particles to the
FastJet 3 library of jet finders, formerly found in
include/FastJet3.h
; and
- the
LHAPDF5.h
and LHAPDF6.h
files for
interfaces to the LHAPDF library (see further below).
- 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 an examples/configure
. The
make
step will, as before, compile and install libraries
inside the current directory, such that the main programs in the
examples
directory can be run. One small difference is that
also the archive libraries are installed in lib
and not in
lib/archive
.
A new optional make install
step allows you to copy
files to more convenient locations. The default option, with no directories
specified in the configure
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 new
bin/pythia8-config
script. See the README file for details.
The make 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 files
LHAPDF5.h
and LHAPDF6.h
in the
include/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 in main37.cc
and main38.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 new Beams: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 programs examples/main91
and examples/main92
now illustrate how ROOT can be used in conjunction with PYTHIA.
- The executable built from
examples/mainxx.cc
is now
named examples/mainxx
, while previously it was named
examples/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 individual
Particle
instance, if this particle belongs to an event.
These include iTopCopy
, iBotCopy
,
iTopCopyId
, iBotCopyId
,motherList
,
daughterList
, sisterList
,
sisterListTopBot
, isAncestor
,
statusHepMC
and undoDecay
.
- A number of deprecated
Pythia::init(...)
methods with
varying arguments have been removed. Instead call init()
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 use Pythia::stat(...)
.
- Several settings in the
Main:
series have been removed.
Most of these have already found replacements in the Init:
,
Next:
and Stat:
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
and Tune:pp = 14
. The old 4C
tune that was default in 8.1 can be recovered with
Tune:ee = 3
and Tune:pp = 5
.
Also most other older tunes are based on Tune: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 detailed g → 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
remnants as an option to the old one, which remains as default
for now.
- Two 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. The
BeamRemnants:reconnectColours
flag to switch on/off
reconnection has been renamed ColourReconnection:reconnect
,
the main parameter BeamRemnants:reconnectRange
of the old
model has been renamed ColourReconnection:range
, and several
new settings have been introduced, notably
ColourReconnection: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. The examples/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 Higgs
Processes. The choice of the Higgs CP-mixing parametrization
now also affects the distributions of the tau decay products
from the processes H^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 and tau polarizations. By
default the decays of tau pairs from known resonance decays
in Les Houches input are now correlated.
The
ParticleDecays:sophisticatedTau
mode
in Particle Decays has been renamed
TauDecays:mode
, as well as all tau-related
ParticleDecay
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 option TauDecays: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.