Warning
You are looking at the manual for PYTHIA 8.245, which is a historic release!
Make sure you are not confusing old parameters with up-to-date ones.
Click here for
the current PYTHIA manual, or click here
for the main PYTHIA page.
Update History
- 8.245: 29 October 2020
- 8.244: 20 December 2019
- 8.243: 4 July 2019
- 8.242: 1 July 2019
- 8.240: 20 December 2018
- 8.235: 27 March 2018
- 8.230: 6 October 2017
- 8.226: 26 April 2017
- 8.223: 5 January 2017
- 8.219: 10 May 2016
- 8.215: 4 January 2016
- 8.212: 23 September 2015
- 8.210: 29 June 2015
- 8.209: 25 May 2015
- 8.205: 23 January 2015
- 8.204: 22 January 2015
- 8.201: 14 October 2014
- 8.200: 11 October 2014
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 and
Q^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 the
BeamParticle
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.
- 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
and
SpaceShower:pdfMode
settings), a new way to access shower no-emission probabilties for
external codes by exposing the new
Merging::generateSingleSudakov
method, and a new way to
retrieve shower-specific kinematic variables for aMC@NLO (see new setting
Merging:runtimeAMCATNLOInterface
and the new methods Merging::getStoppingInfo
and Merging::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 LHE scale
, 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
and examples/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. The main121.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,
so HadronVertex: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 new
init
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 in
ColourReconnectionHooks.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 high pT by up to 10%. Physics at lower pT
scales appear unaffected, as is e.g. top, W, Z and
H 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()
and scaleSecond()
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 the
at(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,
like Event::clear()
,but also frees up the memory of the
Particle
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 the gamma + 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.
- 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 the pythia.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 the SoftQCD
family
for inclusive hadron-hadron collisions can be simulated. This is unlike
the Beams: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 only SoftQCD
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
and main62.cc
have been rewritten to avoid having histograms in global scope.
- Fix minor typo in the I_0 and I_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
and GammaKinematics.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
and SpaceShower
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 classes
SimpleTimeShower
and SimpleSpaceShower
,
located in correspondingly-named .h
and .cc
files. Finally, both class and files WeakShowerMEs
have
been renamed SimpleWeakShowerMEs
. 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
and q 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 in
main69.cc
for
gamma + gamma case, since the new retuned default parametrization
is sufficient. A similar setting for gamma + 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 large x
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
in
ProcessContainer.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 and gamma-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
and hasChangedMMaxSave
.
Thanks to Vittorio Zecca.
- Fix so that
Info::isVMDstateA()
and
Info::isVMDstateB()
by default return false.
Thanks to Axel Naumann.
- Do not set
p3weak
and p4weak
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. The
ParticleData::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 the toCMframe
and
fromCMframe
methods.
- Minor modification so that
ProcessLevel:all = off
does not give any hadronization/decay activity at all if also
HadronLevel: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 renamed SigmaDiffractive:xxx
. The
most prominent example is PomFlux
, 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 both gamma + gamma and
gamma + p processes. Only a resolved photon, currently
always associated with a virtual rho 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 and gamma-gamma collisions, based on VMD
(Vector Meson Dominance) states assumed present in a photon beams.
In detail, diffractive cross sections for gamma + p and
gamma + gamma have been introduced, and thus the parameter
Photon: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 in Info.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
, and
HIPDF: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 for
gamma-gamma collisions, with new default parameters listed in
the Photoproduction description.
- A new parameter
ContactInteractions:etaRL
is introduced
into the differential cross section for q 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 if etaLR
and etaRL
are set
equal.
- A new Dark Matter production process f fbar → Z' H
has been added, with Z' 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
conventional a and b 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
and isr:G2QQ:bb
are introduced
for initial-state showers, and fsr:G2QQ:cc
and
fsr: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
and 20
, 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 the
Merging: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 the
Hist
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. The main03.cc
, main07.cc
and main51.cc
programs have been modified to illustrate
the new setup. Histograms can now also be booked with a logarithmic
x 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 from SusyWidhtFunctions
.
- 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
whereby s3
and s4
were not correctly reset
for the non-default case of Beams: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 of tHat and uHat 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 of
Pythia::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 the configure
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 by main36.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 inside Pythia
but itself can contain several
Pythia
instances to handle different subcollision types.
- A new derived class
Angantyr
provides the default
heavy-ion description. It is inspired by the old Fritiof
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
and main113.cc
, for pp, pPb and
PbPb collisions, respectively.
- 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 switches
Charmonium:gg2ccbar(3S1)[3S1(1)]gm
and
Bottomonium: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 low x. 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, see
PDF Selection
for more
details.
- The
main51.cc
, main52.cc
and
main53.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, see examples/Makefile
and the main23.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 new
main75.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 in g → q qbar branchings. Does not change the default
behaviour. Thanks to Keith Hamilton.
- New particle methods
y( double mCut)
and
y(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 in include/Pythia8Plugins/Pythia8Rivet.h
and its
usage illustrated in the main111.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
in main111.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 in lepton-hadron ones. Section
Photon-photon Interactions renamed to
Photoproduction to cover also
gamma-hadron documentation. Modified
GammaKinematics
class to sample photon kinematics also with one photon. Added
case gamma-hadron to SigmaTotal
.
- 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 by
ProcessContainer
. A new method Info::photonMode()
to output the type of the process. Updated sample program
main69.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 in lepton → 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(...)
and
getRecoilers(...)
, and the modified
getSplittingName(...)
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 with alpha_s = 0.130 and 0.118, and the
NLO and NNLO ones with the latter alpha_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 that dbar = u
and d = ubar, shortcutting the returned d, 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, see Info::enhanceMPIavg()
and Info::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 an
readString()
or readFile()
command line,
or by using a new optional third argument force = true
(which is false
by default) in the Settings
methods used to change values. The latter methods also will add a new
key to the database if not already there when force = true
is set. The old special force
methods are now redundant
and will be removed in the next major release.
- New methods
Settings::getReadHistory
and
ParticleData::getReadHistory
return a vector
with all strings that have been read in by the
Settings::readString()
and
ParticleData::readString()
methods, respectively, and thereby also the information set by the
Pythia::readString()
and Pythia::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 in
include/Pythia8Plugins/LHAHelaconia.h
provides an
interface to the HelacOnia [Sha15] package for onium production,
see further the new
HelacOnia Processes page. The
new main35.cc
example shows how to use the interface,
and how to compare with corresponding internal Pythia results.
- Modified
configure
and Makefile
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, and getTwoPerpendicular
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 the PhaseSpace:pTHatMinDiverge
value is now used as ultimate fail-safe to avoid pT = 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 allowed Z^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 in CoupSUSY
.
Thanks to Vittorio Zecca.
- Minor numerical precision improvements in gamma-gamma kinematics
and in tHat and uHat 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 the ProcessLevel::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 this pT,
the next hadron (consistent with local flavour conservation) is picked
among the possibilities with an exp(-mT / T) weight.
This option is accessed with
StringPT:thermalModel = on
.
See further the Fragmentation and
Flavour Selection descriptions
and the article [Fis16].
- A new option
StringPT:closePacking = on
allows to
enhance the pT 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, and
HadronScatter: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, while void 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 an R-hadron). Thanks to Jinmian Li for
alerting us.
- Minor updates so that
main91
and main92
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 for F = 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 code idQ
that a
quark, diquark, meson or baryon code contains.
- Bring the
FJcore
package inside the Pythia8
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
in
Pythia.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 if iComp = 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 switch
TimeShower: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 and
alpha' parameters of the Pomeron trajectory for
hard-diffraction Pomeron fluxes.
- Extrapolation of PDFs to small x values when
PDF:extrapolate = on
now extended to more cases.
- New flag
TimeShower:QEDshowerByOther
allows charged
resonances, like the W^+-, 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 old SpaceShower: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 event pythia.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 weight
pythia.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 to PythiaStdlib.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 hardcoded cout
in the code.
Eliminates some redundancy of methods.
- Rename
...print(...
methods to ...list(...
to favour a more regular naming pattern.
- Minor
configure
and Makefile
updates,
to address potential linking problems on some platforms for boost, gzip
and promc. Thanks to Dmitri Konstantinov.
- New
--config
option of pythia8-config
echoes the arguments passed to configure
.
- 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
and main89.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 Pythia
LHAup
base class.
See MadGraph5 Processes
for a brief overview, and examples/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 and b quarks in Les Houches input, see
LesHouches: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
and
SpaceShower: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 original
p 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 a Settings
and a ParticleData
object as
inputs. In cases where multiple Pythia
copies are created
this allows the xmldoc
files to be read only once.
Updated examples/main19.cc
illustrates.
- New method
Particle::daughterListRecursive()
that uses the daughterList()
method to trace
consecutive generations of decay products.
- New
Vec4
friend method pShift(...)
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 renamed getDJR
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
renamed combineId
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 leptons l^*,
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 with main63.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 like ParticleData::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 the
f fbar → V → f fbar matrix element,
V = gamma/Z^0 or W^+-, is now only used when the
incoming fermion pair has no other daughters. Else the simpler
V → 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 in SusyLesHouches.h
.
- Output to
cerr
replaced by ditto to cout
.
Excepted is the examples main programs, where it serves a pedagogical
function, while a separate cerr
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::
in
Pythia8Plugins/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
the muf2
and mur2
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 the W' is a simply rescaled copy of the W,
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 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 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 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 Zlebcik.
- 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.