Update History
These update notes describe major updates relative to the
PYTHIA 8.243 version, which was the last 8.2 release (so far).
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.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 program main300.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, then
SLHA: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 a SWIG
generated
interface to a PyBind11
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 type Info
has
been made a constant reference, so that it cannot be externally
manipulated outside of the internal classes. This constant reference
points back to Pythia::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 the
Info
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 enum Status
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 used
Settings
methods is streamlined.
- Most of the pointers in the
Pythia
class are now
shared pointers, such that there is no need for Pythia
to
keep track of new
and delete
obligations. New header SharedPointers.h
.
- The
CoupSM
and CoupSUSY
couplings
classes are now separated, rather than the latter being derived from
the former. This avoids the problem of the old Couplings
pointer potentially changing address, and some pointer casting.
- Mathematical functions and methods have been extracted from the
PythiaStdlib.h/.cc
files and put in new
MathTools.h/.cc
files. Thereby PythiaStdlib
is more clearly reserved for declarations related to the Stdlib
library, to some simple inline expressions (now constexpr
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 contain using 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
and
YODA
have been added.
- Support for
BOOST
has been dropped and only
LHAPDF6
with versions greater than 6.2
are
supported.
- The flag
--openmp
has been added. Currently, OpenMP
is used in some of the examples mentioned above, and in
DireWeightContainer.cc
.
- Bug fix so the option
UncertaintyBands:ISRpTmin2Fac
is correctly used in SimpleSpaceShower.cc
.
- Bug fix stopping growth of number weights when multiple
init
calls are made in Info
.
- Bug fix for
SusyWidthFunctions.cc
incorrectly calling
integrateGauss
, 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.