Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Update history

The update history for the code forms an integral part of the documentation, and is available in the HTML manuals for the full history of the ongoing major sub-version.

For convenience, the full update history for the PYTHIA 8.1, 8.2 and 8.3 series is collected here. Click the desired sub-version number to read the update note for that.

PYTHIA 8.3 series:

These update notes describe major updates relative to the PYTHIA 8.243 version, which was the starting point for PYTHIA 8.3. The step from 8.2 to 8.3 gave an occasion to break backwards compatibility. The main change is that C++11 is now assumed. The impact on existing used code should be mild, however.

8.312: 23 May 2024

  • The Sample Main Programs in the examples subdirectory have been completely reorganized. Over the years, an expansion of examples has been driven by the addition of new capabilities as well as by a strong user demand. As the old two-digit mainNN.cc structure filled up, empty slots were used more-or-less at random, before eventually also three-digit codes were introduced. Now all examples have been regrouped by topic as three-digit codes mainNNN.cc, with empty space within each group for future expansion. No program keeps its old code. Some new examples have been introduced and some existing ones have been modified. The matching and merging examples have seen a significant restructuring, where main162.cc and main164.cc provide omnibus versions for several approaches.
  • Some related updates and cleanup in examples/Makefile.
  • The PYTHIA 8.3 Worksheet has been updated and expanded.
  • The new more QCD based color reconnection model, ColourReconnection:mode = 1 has been sped up by over a factor of two, thanks to Michal Kreps.
  • Variable energy beams have been added to Angantyr. See main424.cc for details.
  • New parameters BeamRemnants:heavyQuarkEnhance allows heavier quarks (s, c, b) to take more beam-remnant momentum than the lighter u and d ones. The same parameters also makes it more likely for a heavier quark not to be kicked backwards in low-mass systems. Thanks to Manuel Masip and Ivan Rosario Bonastre for pointing out the issue.
  • Example of using Pythia as a custom shared library through Python has been added in main296.cc and main296.py.
  • The option --version is now available for pythia8-config which will return the Pythia version, thanks to Christopher Dilks for the suggestion.
  • A bug which caused popcorn destructive interference mechanism to not work has now been fixed.
  • Added a new flag for neutrino PDFs to have them as unresolved particles by default as no other options currently exists. Minor related documentation update.
  • Some bug fixes in less commonly used methods of the Settings and ParticleData classes.
  • Tiny correction in configure that fixes issue with pythia8-config on some platforms, thanks to Gabriele Inghirami for reporting.
  • Protect against potential division by zero in the Thrust method.
  • Fixed an issue where cross-sections could be reported incorrectly when running a second hard process when the first hard process comes from an LHE file.
  • Protection was added to Vincia FSR for the case where the charm quark mass is set to zero.

8.311: 08 March 2024

  • Javira Altmann joins the author team.
  • Stefan Prestel leaves as an active author.
  • Reweighting for a subset of hadronization parameters, both kinematic and flavor related, is now available. See main301 for an example and Hadronization Variations for details.
  • A number of changes have been made to the junction fragmentation procedure:
    • Updated iterative procedure to find average junction rest frame that is more stable as it does not rely on convergence.
    • Include special treatment of soft-leg cases (i.e. when the 120 degree junction rest frame does not exist), called pearl-on-a-string.
    • Allow for fragmentation of pearl-on-a-string cases using a gluon-approximation, controlled by StringFragmentation:pearlFragmentation and StringFragmentation:pearlProbFactor.
    • Improvements in the hadronization of low-mass junction string systems, contributed by Harsh Shah. Low-mass junction systems now are handled by the ministring fragmentation code. This results in fewer discarded events when using the QCD-based colour reconnection model in scenarios where many junction systems are formed.

  • A number of changes to the QCD-based colour reconnection model:
    • Include a new string-length measure that better takes into consideration heavy quarks.
    • Include additional seperate parameter ColourReconnection:mPseudo, which formally had a combined definition with parameter ColourReconnection:m0.
    • New option to limit the impact-parameter distance between dipoles that are allowed to reconnect in the QCD-based colour reconnection model, contributed by Harsh Shah. See ColourReconnection:dipoleMaxDist in Colour Reconnection for details.
    • The inverse formation times for a three-dipole junction system were not correctly being initialized, while their colours were. This bug has now been fixed, although its impact should be minimal. Thanks to Michal Kreps for the fix.

  • A number of updates and extensions to the string "closepacking" model:
    • Include close-packing mechanism for Gaussian string breaks controlled by ClosePacking:doClosePacking, ClosePacking:tension, ClosePacking:tensionRatio and other ClosePacking parameters. See further on Close-packing.
    • Include strangeness enhancement for string breaks next to a junction, controlled by StringFragmentation:strangeJunctions and StringFragmentation:strangeJuncFactor.
    • Include popcorn destructive interference via simple diquark suppression controlled by ClosePacking:qqFacQ and ClosePacking:qqFacP.

  • A new sub collision model (Angantyr:CollisionModel=4,5) has been added, wherein the projectile and target can fluctuate with different parameters, as one would expect in generic hadron-ion collisions.
  • Usage of HeavyIon:SigFitDefPar is changed. For the case Angantyr:CollisionModel=1,2, the order of the parameters has changed as well. This means that saved parameters from previous releases cannot be used, and a refitting of parameters is recommended.
  • The example main200.cc has had minor changes and cleanup.
  • A fifteen percent uncertainty has been included for the b slope parameter of the HeavyIon:SigFitErr parameter vector used in fitting the cross sections for heavy ion collisions. This helps stabilize the fit at low collision energies.
  • When parameters or modes are configured by the user via readString or readFile with out-of-range values, Pythia will now abort upon initialization, similar to when invalid user settings or particle data are provided, rather than the previous behaviour where the value would be set to the limit. Out-of-range parameters can still be used by directly calling the force methods in the Settings class.
  • Parton shower enhancements in the simple shower are now available for the individual splittings g → c + cbar and g → b + bbar.
  • Added capability to over sample emissions in combination with enhancing emissions so as to reduce large weight fluctuations.
  • The documentation for POWHEG Matching has been updated with new recommendations and defaults.
  • An option for suppressed power showers is now implemented also for the Vincia shower model, via the Vincia:pTdampMatch parameter. The main202 example updated to illustrate this for ttbar.
  • Entries in the event record may now be skipped when requesting matrix element corrections in the parton shower for a given event.
  • Added new capability to disable matrix element corrections in the Timelike Shower for the first emission (only) of the hard process and/or resonance decays. The choice(s) of resonance(s) is customizable.
  • Added example UserHook to modify the decay products in LHE files containing resonance decays.
  • Updated RIVET examples to handle support for RIVET 4, while maintaining backwards compatibility.
  • A new option for parallelism, Parallel:doNext, makes it possible for the user to run custom code before each event is generated, such as changing the energy on an event-by-event basis. For more information, see Parallelism or main164.
  • New Vincia example programs for EW showers, main205.cc - main207.cc. main205 illustrates electroweak showers in Z decays to neutrinos (at very high Z mass). main206 illustrates EW showers for dijets at LHC and was previously named main203. main207.cc illustrates read-in of LHEF files for EW showering with Vincia.
  • New main208 example program illustrates Vincia QED showering in photon-initiated processes, specifically photon-photon → mu+ mu- production at LHC.
  • Minor bug fix in Vincia's setup for helicity showers, to ignore beam particles when deciding whether helicity assignments need to be generated for the hard system. Thanks to M. di Mauro for help to identify this bug.
  • Ensured that displaced-vertex information is propagated in the VINCIA QED and QCD FSR showers. This should correct a problem with displaced taus showing up with zero vertex information in HepMC events produced with VINCIA. Thanks to D. Hirscbuehl and S. Tuncay.
  • Fixed issue where onia were showered with pT2nextQCD when OniaShower:octetSplit was set to 0 (do not allow the octet states to radiate). Thanks to Jake Pfaller for reporting this issue.
  • Fixed issue where string systems were not updated when eliminating small string regions.
  • Added protection when calling the nTried, nSelected, nAccepted, sigmaGen, sigmaErr, and nameProc methods in the Info class to prevent exceptions when requesting an invalid process ID.
  • Fixed issue where if Event::clear is called before the particle database was initialized caused a segmentation fault.
  • When using TauDecays:mode = 2 or 3 the parameter TauDecays:tauPolarization was being read in as an integer rather than a real number. This has now been fixed. Thanks to Florian Harz for reporting this.
  • When reading in external events without SPINUP information and with TauDecays:externalMode = 1, the production matrix element for a tau produced from W or W' boson was being incorrectly set to that of of a Z boson. This has now been fixed. Thanks to Florian Harz for reporting this.
  • The heavy ion information, provided by the HIInfo class and available through the hiInfo member of the Info class, is now available by default in the simplified Python interface.
  • Introduced direct access to the particles of an event by the new Event.particles() method. Thanks to H. Dembinski for the sugggestion.
  • Fixed issue where the Python interface does not compile under 32-bit. Thanks to Mattias Ellert for reporting the issue.
  • Introduced an experimental random number sequence debugging tool for advanced debugging usage.
  • Some memory management issues were corrected in Vincia.
  • Further minor updates in Vincia to streamline Pythia coding style and improve naming of antenna functions.
  • When using subruns, each with a different spectrum from an SLHA file for each initialization, the mass for particles can be incorrectly generated. A fix for this has now been introduced.
  • Fixed bug in the SubCollisionModel class, where the functions sigSDE(), sigSDEP(), and sigSDET(), gave the wrong values. This will only affect the behaviour of Angantyr, in case the NaiveSubCollisionModel class is used in the Glauber calculation (Angantyr:CollisionModel=0).
  • A bug in the merging framework has been fixed that was introduced by the changes for aMC@NLO-Delta in 8.309. Thanks to Marjorie Shapiro for the report.
  • The introduction of the new BeamSetup class broke parts of the photoproduction initialization, which has now been fixed.
  • Fixed memory leak in main10.
  • Fixed possible access of unitialized variables in PhaseSpace::setupSampling123.

8.310: 25 July 2023

  • Naomi Cooke joins the author team.
  • Production of quarkonia is now available via the simple timelike shower, see Onia Showers for details.
  • Added a new feature that allows producing user-defined resonances in hadronic rescattering. Newly added particles can be produced as resonances if they set varWidth = on. Examples of this are shown in main157 and main158.
  • A number of changes have been made to the heavy ion machinery.
    • Variable energies can now be used in Angantyr. This is done by setting Beams:allowVariableEnergy = on and using the Pythia::setKinematics methods. In addition Angantyr can now handle all Beams:frameType options.
    • MPI initialization reuse has now been enabled for heavy ions. The MultipartonInteractions:reuseInit and MultipartonInteractions:initFile parameters control whether the MBIAS Pythia object will reuse MPIs. In addition, the HeavyIon:SasdMpiReuseInit and HeavyIon:SasdMpiInitFile parameters do the same thing for the SASD Pythia object.
    • The parameters calculated from the evolutionary algorithm can also be saved to file. This is controlled with the HeavyIon:SigFitReuseInit and HeavyIon:SigFitInitFile settings.
    • The HIUserHooks source has been split into HIInfo, HINucleusModel, and HISubCollisionModel.
    • Some code is offloaded to new classes Nucleus and SubCollisionSet, simplifying HeavyIons.cc.
    • Simplified the output for the Angantyr procedure for fitting nucleon cross sections.

  • Included possibility to sample intermediate photon virtuality also for externally provided events using built-in photon flux for protons.
  • Included possibility to generate DIS events with a (anti-)neutrino beam.
  • The TopRecoilHook, formerly available separately, has now been integrated into the SimpleTimeShower. See further the TimeShower:recoilStrategyRF switch, which replaces and extends the old TimeShower:recoilToColoured flag. In top decays the radiation pattern in the new option is reweighted to have top as recoiler in case the relevant colour line connects to it.

  • Introduced a new use plugin system, see Plugins for details. This system is currently experimental and feedback is welcome. As part of this new system, a few changes have been made to how user provided classes are passed to a Pythia> object for consistency.
    • The arguments to the setSigmaPtr method are now shared pointers. Additionally, addSigmaPtr has been introduced with the previous behaviour of setSigmaPtr, and the new setSigmaPtr overrides all previously added pointers.
    • A similar change has been made for the setResonancePtr method with the addition of the addResonancePtr method.

  • The new Logger class now handles printing such as initialization information and diagnostic messages. For more information about this class, see the Logging page.
  • The new BeamSetup class has been introduced to handle the beam configuration, including initializing and changing beam identities, kinematics and parton distributions. This is a structural change that simplifies the code in the Pythia class, but does not introduce any functional changes.
  • Modified interface to LHAPDF6 to allow for multi-threading. Thanks to Christopher Jones for the report.
  • Updated the Python interface to use pybind11 version 2.10.4 which is compatible with Python 3.11. Thanks to Mattias Ellert and David Runge for reporting the incompatibility and maintaining the Fedora and Arch Linux packages. Note, this version is not compatible with Python versions 3.5 and below, and so version 2.9.2 of pybind11 is used automatically for these versions.
  • Fix for the Python interface working with gcc13, thanks to Dmitri Konstantinov.
  • Fixed a bug in the Python interface which prevented main162.py from running correctly when passing a custom function for initialization.
  • Updated the Lambda_b0 lifetime to c*tau = 0.44 mm. The value was rounded to two significant digits since PDG and HFLAV do not quite agree to three digits. Thanks to A. Rossi for pointing out the previous default value (0.369 mm) was outdated.
  • Included several small fixes in response to running an LLVM static code analysis, thanks to Michal Kreps.
  • Fixed out-of-range access when calling Hist::getYMin and Hist::getYMax for a histogram that has not been booked.
  • Fixed BeamRemnants:unresolvedHadron option that was broken and had no effect since 8.307
  • Removed use of simple-template-ids in SusyLesHouches.h to make compliant with C++20. Thanks to Jonas Hahnfeld.
  • Fixed dipole sorting behaviour in ColourReconnection which resulted in an ordering that depended on the current memory state of the program.
  • Changed the default for Parallelism:balanceLoad to on and updated the documentation. This ensures each thread will always generate the same number of events.
  • Added the += notation for settings vectors, as well as the include = fileName directive, which allows for additional settings files to be directly read in.
  • Fixed a bug in the bookkeeping the number of hadrons in the string fragmentation.
  • 8.309: 16 February 2023

    • New functionality for aMC@NLO-Delta matching with a reduced number of negative-weight events is introduced. This includes the possibility to directly call shower Sudakov factors from a runtime interface to Madgraph5_aMC@NLO. See documentation of new flag Merging:runtimeAMCATNLOInterface on Merging page for further info and references.
    • The PowhegHooks now work with all three shower models and automatically switch between the simple shower, Vincia, and Dire based on the PartonShowers:model mode. In addition, the option to set POWHEG:nFinal = -1 has been ported from 8.244 to allow the use of event files with a variable number of real emissions.
    • The Angantyr model for ion collisions has been updated with several possible nuclear geometries, suitable for light nuclei. It is now possible to select a harmonic oscillator shell model for nuclei with A <= 16, and a Hulthen potential for deuterons. It is also possible to read a nuclear configuration from an external file, format given in the manual.
    • The documentation for ion collisions at Heavy Ions in the HTML manual has been extended.
    • Allow scattered lepton to appear in different positions of the event record for remnant handling in externally generated DIS processes.
    • Enable generation of externally generated hard processes for direct photoproduction.
    • The Hidden Valley scenarios have now been updated with options that allow a second- or third-order running coupling in the shower, see further Hidden Valley Processes. A new AlphaSUN class implements the running for an arbitrary SU(N) gauge group, neglecting flavour thresholds. Thanks to Joshua Lockyer and Suchita Kulkarni for code contributions.
    • Equation (9.5) in the 2006 RPP Yao06 has erroneously been taken as a second-order alpha_strong expression, while actually it is a third-order one. This has been corrected, with separate second- and third-order options now available for matrix elements and showers. In practice the difference between second- and third-order running is minor, and furthermore first-order is default throughout.
    • Updated fjcore to version v3.4.0 with minor modifications to remove compiler warnings. This version is compiled with limited thread safety, which is sufficient if "each thread is independently processing an event" and should have "essentially no speed overhead". For more details see the fjcore documentation. Thanks to Matteo Cacciari, Gavin Salam and Gregory Soyez.
    • The PythiaParallel framework can now be used in the Python interface, see main162. This required some small changes to PythiaParallel, where callback functions now pass a Pythia instance by pointer rather than reference.
    • The Worksheet has been updated and somewhat expanded.
    • Minor fix in the new color reconnection to protect against out-of-bounds memory access.
    • Fixed a bug where changing beam energies with Beams:frameType = 2 gives wrong energies.
    • A fix for overestimate of photon flux from nuclei when applying PDF:beam2gammaApprox = 2 to make sure that the two applied approximations separated at PDF:gammaFluxApprox2xCut match.
    • Fixed a bug related to boosts for initial-final dipoles when performing parton showers.
    • Fixed an issue with tau decays interacting with the weak shower. Thanks to Mattia Di Mauro for reporting the issue.
    • A templated method to shuffle contents of a vector, called shuffle, has been added to the Random numbers machinery.
    • Small bug fix to avoid segmentation fault when parsing ALPGEN input.
    • Tiny fix in HepMC3 header to avoid compiler warnings with GCC 12.2.

    8.308: 16 November 2022

    • The HIInfo class now has information about the impact parameter angle between colliding nuclei in the phi() function. In addition the impact parameter positions of the incoming nuclei are now set properly in Particle::vProd().
    • A new PythiaCascade wrapper class (in include/Pythia8Plugins) implements the functionality to perform fixed-target hadron-nucleus collisions and decays, as useful for the tracking of cascades is the atmosphere or in solid materials. The code in this class now is set up to handle any target nucleus. The new main184.cc example shows how to use PythiaCascade to track an atmospheric cascade, equivalent to the standalone main183.cc. An even simpler new example is found in main185.cc.
    • The option to completely forbid popcorn baryon production from the beam remnant has been replaced by the possibility of a continuous suppression, see BeamRemnants:dampPopcorn.
    • A new option for Pomeron flux has been added to provide more flexibility to modify the shape of the flux.
    • Modified handling for resolved-lepton remnants so that also lepton-lepton collisions with unequal masses are correctly dealt with.
    • Explicit bookkeeping of Hidden Valley (HV) colours in SU(N) scenarios has been introduced. These colours can be accessed in the event record, but are not shown by default. This allows for a more robust tracking of HV colours in showers. Notably a Higgs decay to a pair of HV gluons can now be handled, which used to be impossible. The functionality of the TimeShower:recoilToColoured switch is extended also to apply to the HV colours.
    • Update to decay method of ParticleDecays class allows for proper showering of leptons produced in Hidden Valley particle decays.
    • A simple example of Hidden Valley production mechanisms introduced with main171.cc.
    • Fixed a bug that could block the radiation of HV photons in a broken U(1) scenario, i.e. where the HV photons acquire mass. Affected was radiation in the decay of Fv states, i.e. states with a charge both in the normal and in the HV sector.
    • Two new ROOT-based example programs, main94.cc and main95.cc, illustrating how to visualize events and jets, respectively, in (y, phi)-space. Thanks to D. Gillberg for contributing these examples.
    • Added handling of statistical uncertainties to the Hist class, with error propagation in the various histogram operations and friend methods, for both unweighted and weighted events. Updated Hist compatibility for current Matplotlib.
    • Updated JetMatching to support improved treatment of non-enhanced jets in FxFx merging, see Jet Merging for more details. The updated treatment also fixes a bug that led to an asymmetric treatment of heavy quarks and the corresponding anti-quarks. Thanks to Rikkert Frederix.
    • Vincia's tune initialisation has been changed to not override initialization, event-generation, statistics, and main-program settings.
    • Included particle ID code in error message when a workable decay channel cannot be found in ParticleDecays::decay(). Thanks to K. Pedro for suggesting this.
    • Added additional protection for Pythia initialization.
    • Fixed an issue in the tau decays which caused segmentation faults when a tau nu final state is present in the event record without a mother W. Thanks to S. Jeon for reporting the problem.
    • Corrected several typos in antiName and chargeType properties for particle ID codes for diffractive states (e.g., 9904230) in ParticleData.xml; thanks to A. Verbytskyi, G. Panizzo, and D. Konstantinov.
    • Updated default top quark mass to 173 GeV (up from 171 GeV) in line with current PDG average (rounded to nearest GeV). Added particle data for a few more nuclei.
    • Corrected a bug that affected the read-in of RPV couplings via SLHA files. In the erroneous version, a coupling for the third generation in the first index (i.e. 3,i,j) could not be set.
    • Fixed bug preventing the generation of Python bindings in MacOS. Also fixed external library issue with Makefiles for MacOS.
    • Updated WeightsBase::getWeightNames to provide RIVET compatible names.
    • Updating HTML manual and program banner with new manual reference.
    • Updating affiliation for Christian Bierlich.

    8.307: 25 February 2022

    • New option with interpolation between the low-energy hadronic cross sections, used for rescattering, and the more traditional SaS/DL cross sections, used at high energies. The latter framework has also been extended to include many more colliding hadron pairs. The Pythia::getSigmaTotal and Pythia::getSigmaPartial methods give the user direct access to these cross sections. These extend and replace the Pythia::getLowEnergySigma methods. See further on Total Cross Sections.
    • New "SU21" PDFs for some 20 mesons and baryons, to be used e.g. in the MPI scenarios in hadron-hadron collisions, e.g. in a cascade in the atmosphere. The pi+ default PDF has been upgraded from GRV92 LO to GRS99 LO. The GJR07 LO set has been included as an option for the proton. The default value of BeamRemnants:maxValQuark has been updated to allow also charm and bottom hadrons as incoming beam particles.
    • The framework for changing the beam kinematics between subsequent Pythia::next calls when using variable collision energies has been expanded. The Pythia::setKinematics methods mirror the frame type options for the beams. See further on Program Flow and Beam Parameters.
    • As a further extension of the above, a new option exists wherein the first beam particle is initialized so it can be switched event-by-event between essentially any incoming hadron, while the second beam is restricted to be a proton or neutron. Again only SoftQCD and LowEnergyQCD processes are possible. To handle this feature, the code has been extended so that some 20 different PDFs are initialized, each with a corresponding MPI initialization and storage of required coefficients. See further Beam Parameters.
    • Extended and improved handling of the Hidden Valley (HV) scenario.
      • Improved tracing of hidden-valley colours through a hidden-valley shower evolution history, thereby avoiding problems for some topologies.
      • Introduced the possibility to bookkeep individual HV hadron types, in particular HV-mesons, and thereby manage masses and decay properties. The default remains the simpler scheme, where only a smaller set of HV-hadron properties need to be defined. The detailed scenario also involves a mass-dependent handling of the joining of hadronization chains, or the collapse into a single hadron.
      • The list of Zv decays has been expanded to include further HV-quarks. Some default masses have been modified.
      • It is possible to set different production rates for HV-quarks during hadronization, and for HV-diquarks leading to HV-baryon production.
      • Introduced an option to suppress production of one flavour-diagonal pseudoscalar state, representing the eta_1 flavour singlet.
      • The HiddenValley:spinFv default value has been changed from 1 to 0, to make it transparent that HV-quarks have spin 1/2 by default.
      • Expanded the list of invisible particles accordingly.
      • A few minor bug fixes.
      • A significantly expanded description in Hidden Valley Processes.
      Thanks to Matt Strassler and Suchita Kulkarni for useful input.
    • Added a new class PythiaParallel for easily making runs in parallel. See main161, main162 and main163 for usage examples. NOTE: this is an experimental feature. Feedback and bug reports should be sent to authors@pythia.org.
    • New option introduced, where MPI initialization data can be stored on file and reused in a later run, to save time. See further on MultipartonInteractions:reuseInit and MultipartonInteractions:initFile. Also option to symmetrize the MPI rate between e.g. pi^+ p and pi^- p, see MultipartonInteractions:setAntiSame.
    • New options allow a harder fragmentation function for a beam-remnant diquark, by a separate choice of the a and b parameters, and also forbid the popcorn mechanism for it. See further Beam Remnants.
    • New diffractive states introduced, to cover all five-flavour mesonic states, and all baryonic ones with at most one c or b quarks. Furthermore, nitrogen and oxygen have been added to the set of nuclei
    • New processes SoftQCD:singleDiffractiveXB and SoftQCD:singleDiffractiveAX allow to set single diffraction to occur only by A B → X B or only by A B → A X.
    • Reorganised and consolidated the interface to external matrix element generators. Renamed ShowerMEs to ExternalMEs and ShowerMEsMadgraph to ExternalMEsMadgraph. Introduced new HelicitySampler class to sample helicities using external matrix elements.
    • New options to get and set the state of the random number generator, Rndm::getState and Rndm::setState, as a direct-transfer option to the file-based dumpState/readState methods.
    • New methods Hist::fillTable to read back in a table of histogram data, specifically as written by the Hist::table methods.
    • Some minor rearrangements in HadronLevel to better structure the interleaving of hadronic rescattering and particle decays. New method Pythia::moreDecays(int i) to perform the decay of a single specified particle.
    • Switched tunes to by default prefer LHAPDF 6 PDFs over LHAPDF 5 ones, via the setting Tune:preferLHAPDF.
    • New LHAPDF:xSymmetric parameters allow the user to choose to use symmetric PDFs for s, c, and b quarks when using LHAPDF for a performance boost. By default, c and b are taken as symmetric (this matches the previous behaviour).
    • Info::pTnow() can now also be used for showers during resonance decays, and when using the shower() method. The latter so far only for the Simple and Vincia shower models.
    • Corrected a bug that mainly affects beam-remnant fragmentation in the QCD CR model. Previously, diquark-antidiquark systems with invariant masses below the threshold for baryon-antibaryon production would be combined into tetraquark-like states that do not exist in PYTHIA, resulting in errors with unknown particle codes and charge non-conservation. Now, MiniStringFragmentation::ministring2two() instead reconnects such topologies into two mesons, noting that this is consistent with the colour structure. Further motivation comes from studies of low-mass junction-antijunction systems in Sjo03.
    • Introduced fix to prevent the central description of Les Houches events showered with global recoil from shifting when shower variations are enabled.
    • Fixed a few issues in Vincia's sector merging. Specifically, while the merging itself still only handles QCD corrections, Vincia's QED showers can now be left on during merging. Also corrected a bug leading to incomplete histories replacing complete ones with smaller probability, and fixed an inconsistent treatment of trial showers in systems with coloured resonances.
    • When running Angantyr at very low energies, initialization would abort due to an incorrect initialization of the high-mass diffraction MPI machinery. Logic has been introduced to prevent this initializatoin.
    • Fixed memory leaks in the ColourReconnection class.
    • Fixed some recent compiler warnings and errors; thanks to Mattias Ellert.
    • Removed the deprecated SubCollisionModel called MultiRadial from the heavy ion machinery.
    • Added an abort in Pythia initialization to prevent using a low energy process with a hard process. Thanks to Jenna Bacon.
    • Broke a circular shared pointer reference in ResonanceWidths and ParticleDataEntry which caused a small memory leak. Thanks to Gabriele Inghirami.
    • Minor fix to avoid unnecessary (attempted) MPI initialization.
    • Fixed issue with Dire getting stuck when showering soft QCD events. Note, Dire has not been validated for these types of events. Thanks to Giancarlo Panizzo and Marvin Flores for reporting the issue.

    8.306: 28 June 2021

    • Introduced ability to write intermediate output with RIVET, as demonstrated in the updated main93.cc.
    • Fixed the incorrect scale being set when applying the POWHEG veto, i.e. main31.cc. Note that the number of emissions is correct in 8.303, but is incorrect in 8.304 and 8.305. Thanks to Mikhail Kirsanov.
    • Fixed repeated initialization causing an ever expanding physics pointer list in the main Pythia class.
    • Fixed issue for HepMC output from Vincia, which would previously issue warnings about inconsistent mother/daughter relationships, caused by Vincia's antenna-style bookkeeping by which emitted partons have two mothers instead of one. For status codes 43, 51, and 53, the HepMC interface now ignores the second parent, always using just the first one to define the vertex structure. Minor modifications to Vincia's QCD shower to ensure that the first mother is the one that changed colour and hence would be identified with the "radiator" in a collinear context. Analogous modifications in the QED module so the most collinear parent is the first mother.
    • Removed assert statements from Angantyr.
    • Shortened Pythia constructor header.

    8.305: 03 May 2021

    • Fixed issue that otherwise caused the weights of the Dire parton shower to be erroneously discarded. The fix will impact the results produced with the Dire parton shower model. The results of the previous version should be considered incorrect.
    • Fixed potential for segfault in Weights.cc if weightsShowerPtr == nullptr.
    • A number of fixes related to Vincia have been included.
      • Bug fixes in Vincia's merging, addressing the issue that occasionally incomplete histories were accepted while a complete one was available.
      • Fixed some small bugs in Vincia's QED shower that could cause issues when running at very high energies.
      • Minor namespace fixes. Moved using namespace VinciaConstants from headers to source files and moved enum antFunType inside the Pythia8 namespace.
      • Added default initialisers for data members in several Vincia classes, to avoid potentially undefined behaviour. Thanks to V. Zecca.
    • Fixed unintentional initial-state radiation from unresolved hadron beams when set with option BeamRemnants:unresolvedHadron which would break up the beam. Minor fix also for cases where two unresolved hadrons.
    • Added threshold check on low energy cross sections. This fixes a small bug reported by Vittorio Zecca.
    • Corrected bug in normalization of histograms in main07.cc. Thanks to M. Baker and A. Thamm.

    8.304: 09 April 2021

    • Christian Preuss and Rob Verheyen join the author team.
    • Christine O. Rasmussen leaves as an active author.
    • New "sector" antenna showers implemented and made default for the Vincia antenna shower model.
    • Minor changes to a few of the default Vincia hadronization parameters, reflecting the move to sector showers as default.
    • New dedicated LO merging scheme for the Vincia sector antenna showers. The scheme is similar to CKKWL in spirit but exploits the bijective nature of the sector shower to vastly reduce the number of histories that need to be taken into account.
    • New full-fledged electroweak shower option implemented for the Vincia shower model. The splitting kernels are based on collinear limits of corresponding helicity matrix elements so this EW shower model requires Born partons with assigned helicities. Currently these must either be input via LHEF or (for experts) runtime via Vincia's interface to MG5 matrix elements.
    • Introduced tools to automatically generate MadGraph plugin libraries.
    • New options for interleaved resonance decays implemented for both Pythia's default (simple) shower model, and for Vincia's antenna-shower model. Made default for the Vincia shower model, while Pythia's shower keeps its previous (non-interleaved) default setting.
    • Revised internal handling of shower variations and splitting enhancements, both for regular and trial emissions. Enhancements of rare shower splittings are now steered by settings instead of UserHooks, and the necessary weights are automatically included in the shower and merging weights.
    • A number of updates have been made to sophisticated tau decays.
      • External SPINUP is now always interpreted as a helicity state in the lab frame to ensure consistent treatment between tau decays and helicity showers.
      • The default external mode for tau decays has been changed to handle helicity showers.
      • gamma gamma → tau^+ tau^- processes are now handled.
      • Helicity states for initial beams can be specified and used in tau decays.
    • Added HDF5 support.
    • Added support for lepton-photon initiated hard processes generated internally or externally. Thanks to Liu Yao-Bei.
    • Minor code changes to allow hadronic rescattering in nuclear collisions (remove limit on number of rescatterings, increase maximum transverse vertex location).
    • Double quarkonia production, if enabled, is now also included in both MPI and second hard processes.
    • Added some new functionality to the Hist class.
    • Moved the event information in Info class to an appropriate diffractive system for hard diffraction. This way also the hard-process scale is properly propagated for primordial kT sampling.
    • The stopMassNow in StringFragmentation.cc is made to increase faster for charm and bottom end quarks, to allow an increased few-body fraction further above threshold. Thanks to Andy Buckley.
    • Added ResonanceDecayFilterHook and example main103.cc to demonstrate how to select specific final states from resonance decays.
    • Fixed vertex smearing in heavy ion events.
    • Fixed remnant handling for e+e- collisions for photon-initiated processes, thanks to Murat Köksal.
    • Several (mostly minor) optimisations in Vincia, thanks to D. Konstantinov.
    • Minor fixes in xml/html QCD process links and text.
    • Several small bug fixes based on error reports by Vittorio Zecca.
      • Fixed a bug where some elastic cross sections for pi K at low energies were set equal to the total ones.
      • Protect against too high constituent masses inside a hadron in LowEnergyProcess.cc, already at an earlier stage of the process.
      • Protect against exp(-infinity) in HadronLevel.cc.
      • Two fixes for first step in the trial emissions in StringFragmentation.cc, used primarily in the thermal model option.
      • Properly set the photon-in-lepton PDF to vanish at very large x, rather than give unphysical values there.
      • Better protection against weird results for the rap and eta methods in Basics.h, and y in Event.cc.
      • Fixed pointer logic in Dire getXPDF.
      • Migrated from log(1 + x) to log1p(x) for numerical stability.
    • Several small fixes in response to a static code analysis, provided by Dmitri Konstantinov.
      • Fix inconsistency in the usage of the third argument of the dsigmaEl method in the classes derived from SigmaTotAux.
      • Flawed and unused LowEnergySigma::sigmaPartial method removed.
      • Fix inconsistent type for varWidthIn in ParticleDataEntry class.
      • Introduce minor changes, e.g. to protect against out-of-bounds addressing or insert missing initializer, even though there is no evidence that it is needed.
      • Small speedup of the Vec4 [] operator using switch() instead of if to find element to be returned.
    • Bug fixed in the new possibility to let particles with narrow widths (such as onia states) obtain a simple Breit-Wigner distribution, specifically for MPIs, introduced in 8.240. This bug led to excessive rejection of low-invariant-mass interactions. Thanks to Albert De Roeck.
    • Default event record checks switched off for main21.cc, to avoid issues with junction mother-daughter relations not being fully set. Also change so that showers are not called twice. Now all available cases are looped over, but easy to change back to study only one.

    8.303: 01 September 2020

    • Marius Utheim and Leif Gellersen join the author team.
    • A new framework for Hadronic Rescattering has been developed. To enable rescattering, use HadronLevel:Rescatter = on, or see example programs main151.cc through main156.cc for use examples. Note that while the framework is ready to use, it is still being actively developed, and changes are likely in the near future. The older and much simpler rescattering models have been removed, including the related pp tunes 33 and 34, and there has been some file reorganization in code and documentation.
    • A new class HadronWidths has been added to handle hadrons with mass-dependent widths. This has been done primarily because of its importance in resonance formation in rescattering, but the class is also used for decays of hadrons produced in other processes.
    • A new class LowEnergySigma has been added to calculate cross sections of hadron-hadron interactions at low energies. These are used in rescattering and when performing primary collisions at low energies. Cross sections can be accessed using Pythia::getLowEnergySigma.
    • Several changes in the LowEnergyProcess and MiniStringFragmentation frameworks, in particular with several new approaches to produce nondiffractive inelastic events as close as possible to the kinematical threshold. New method StringFlav::combineToLightest attempts to form the lightest hadron for a given flavour content. Also new possibility to disable popcorn baryon production, for use in small systems.
    • The "decay"/mixing time of K^0/K^0bar → K^0_S/K^0_L has been changed from 1e-15 to 1e-6 mm, such that it only happens after hadronic rescattering, but still well before K^0_S/K^0_L decays.
    • The Parton Vertex impact-parameter-plane assignment machinery has been completely rewritten and expanded with new options and capabilities. The default proton radius has been change from 0.7 to 0.85 fm.
    • Limit the amount by which transverse smearing of the space-time quark-antiquark string breakup vertices can give large shifts, see further the new HadronVertex:maxSmear parameter. The new HadronVertex:maxTau gives the possibility to reject hadrons of suspected misreconstructed systems and try again. The introduction of MPI impact parameters is compensated by a reduced transverse hadronization smearing. Also some other related changes.
    • The internal generation of photon-induced processes in hadronic collisions has been extended. This can be enabled with the new options PDF:beamA2gamma and PDF:beamB2gamma, which supersede the previous PDF:leptonA2gamma option. Some minor updates also for other related options, see PDF Selection for details.
    • New photon fluxes from hadrons implemented, see PDF Selection for details.
    • New example main program main78.cc to generate elastic, single- and double-dissociative photon-induced processes in proton-proton collisions, using options PDF:beamA2gamma and PDF:beamB2gamma. Also the sample programs main69.cc and main70.cc have been updated to use the new options.
    • For asymmetric beams (e.g. electron-proton collisions) in Les Houches event files, a boost to the event CM frame is now defined and applied for outgoing particles, as required for succesful event processing.
    • The problem of "dangling" gluons causing changing color flows in SimpleTimeShower for top decays is now fixed. The fix is not fully validated for RPV.
    • For LHE processes, the width of the primordial kT distribution is now set solely by the BeamRemnants:primordialKThard parameter, ignorning BeamRemnants:primordialKTsoft. This change is so that LHE events with low-pT extra jets (e.g., in the context of POWHEG-style merging) are given the same primordial kT as their Born-level counterparts.
    • Improved HepMC3 multiweight output.
    • Added automated renormalization scale variations in CKKW-L type merging schemes.
    • Added UNLOPS merging scheme variations.
    • Added warning messages in UNLOPS merging.
    • Added flexible runtime plugin loading for Dire and Vincia matrix element corrections from Madgraph. These corrections can be enabled with the --enable-mg5mes flag during configuration and with the Dire:MEplugin and Vincia:MEplugin settings.
    • Introduced common runtime plugin loading and unloading structure.
    • Removed PDF set tracking for LHAPDF6 which breaks thread safety. In some cases this might cause a small penalty in memory.
    • Removed SLHA:keepSM as it duplicates the functionality provided by SLHA:minMassSM.
    • Some new methods in the Hist and HistPlot classes. Hist::plotFunc creates a histogram from the function provided as first argument, by evaluating its value in the middle of each histogram bin. Hist::normalize can rescale a histogram to an intended sum of bin contents. Methods to get x limits and lowest and highest y value. Hist::smallestAbsValue renamed Hist::getYAbsMin for consistency. HistPlot::addFile can add a file of data points, with or without errors, on to an existing histogram, for comparison purposes. A new variant of HistPlot::plot can set the frame borders.
    • New LinearInterpolator class in MathTools.
    • New RotBstMatrix methods toSameVframe and fromSameVframe sets up transformation to/from a frame where two particles move towards each other with equal-size velocities along the +-z direction.
    • Some new functionality accessible via PythiaStdlib.h.
    • It is now possible to use range-based for loops to iterate over particles in an event, e.g. for (Particle&amp p : pythia.event). Similarly, the particle data table can be iterated over, with each entry being a pair<int, ParticleDataEntry&amp>.
    • New possibility to redirect particle data listing output.
    • A configure option --obj-common='FLAGS' to add additional compiler flags to object (.o) compilation (i.e. no effect on linking).
    • Compilation flag -DGCCFPDEBUG enables floating point exceptions on a gcc compiler.
    • New index() method in the Py8Particle class of the Fastjet3 interface ensures that the location of the particle in the PYTHIA event record is returned correctly. Thanks to Gavin Salam and Priyotosh Bandyopadhyay.
    • A minor fix for kinematics of zero-virtuality photons to retain physical kinematics.
    • Protect against diffractive masses exceeding phase space bounds for hard diffraction.
    • A bug for propagation of space-like partons in string shoving. Thanks to Dong Jo Kim.
    • Several indexing bugs for the "guess" option used in CKKW-L merging have been fixed. However, this does not yet mean that "guess" is guaranteed to be stable for any BSM process.
    • Several fixes for problems discovered in a static code analysis, including one bug fix in LowEnergyProcess.cc. Thanks to Dmitri Konstantinov.
    • Mixup of ASecondHardProcess and SecondHardProcess labels resolved. Thanks to Anton Karneyeu.
    • Number of weights in info reset to 1 for each new init call.
    • Fixed issue where the dark matter mass was reset even after explicitly being set by the user, e.g. 57:m0 = X. This affects particle IDs 57 (DM+), 58 (DM2), and 59 (DM++).
    • An indexing bug for the scattering lepton in DIS events with photon radiation allowed has been fixed.
    • The redefinition of dlsym for plugin loading has now been removed as this is no longer required by modern compilers. Thanks to Chris Burr.
    • Several small bug fixes based on error reports by Vittorio Zecca.
      • In ProcessContainer.cc the error calculation for Les Houches strategy +-3 should not be renewed for each file when the event sample is split across several files.
      • In ProcessContainer::trialProcess() a call to phaseSpacePtr->rescaleMomenta( sHatNew); should not be done since the momenta have not been set yet.
      • In the CT14qed PDF grid (and others?) the first two x grid values coincide, so one must not divide by their difference.
      • Default initialization of hasOwnEventAttributes in Info.h is necessary.
      • Protected against explicit evaluation of alphaS(LambdaQCD) in VinciaISR. Also added explicit member-variable initialisations for the QEDemitElemental class in VinciaQED.
      • Protected against floating point exceptions caused by dividing by zero in PhaseSpace for zero-width resonances.
      • Corrected a floating point exception in Ropewalk.cc.
      • Protected against out of range renormalization scale access for diffractive systems.
    • Some further replacements of fabs by abs.
    • Fix missing-pointer bug when colour reconnection is switched off for diffraction. Thanks to Valentina Zaccolo.

    8.302: 24 April 2020

    • A HepMC 3 interface is now included in Pythia8Plugins/HepMC3.h. All HepMC examples have been migrated from using the HepMC 2 interface to HepMC 3, excluding main44.cc and main93.cc which are kept for legacy purposes.
    • Bug fix to correct units for automated shower uncertainty weights for lhaStrategy = ±4. In addition, the combination of weight variations, within the context of uncertainty bands, was not previously well documented and was therefore prone to misunderstandings. Now, all methods related to cross sections and weights are documented together on a single page, Cross Sections and Weights, the documentation on shower Variations has been improved, and the behaviour of Info::getGroupWeight() has been made more transparent. The main121.cc example has been modified accordingly. Note that the bug fix for lhaStrategy = ±4 parallels an analogous one made in Pythia 8.244 which had not been previously carried over to Pythia 8.3.
    • Fix for subscripting issue for photon beams, courtesy of Vittorio Zecca.
    • New particle property directive tauCalc allows for a particle's proper lifetime to be set independently of its width. This is useful for studying the effect of lifetime for a particle when the particle width is otherwise negligible.
    • Significant speedup of parton distribution handling, and thereby of the whole PYTHIA execution, since PDF is such a major part of the total execution time. This has been achieved by careful work by Dmitri Konstantinov and Grigory Latyshev. In detail, the main changes are:
      • In the LHAPDF6 interface the evaluation of the x 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 could be speeded up, but would still be slower than an equivalent LHAGrid1 implementation. The NNPDF 2.3 sets therefore have been moved to the latter framework.
    • New base class ShowerModel introduced, as a top-level handler of parton-shower models, interfaced via a shared pointer in Pythia.cc. Changes to Pythia's default showers and to the Vincia and Dire shower models to inherit from ShowerModel. New public method Pythia::getShowerModelPtr() intended to provide a way to access public ShowerModel methods for diagnostics purposes.
    • Extra protection against unexpected input in e+e- Les Houches events, specifically where x >= 1 by roundoff errors. Thanks to Alexander Belyaev, Alexander Pukhov and Marco Zaro.
    • Bug fix in SusyLesHouches::checkSpectrum(), to ensure uniform error handling when one or more spectrum self-consistency checks fails.
    • Replaced use of fabs() by abs() in several places. Although default C++ abs() only takes integer arguments, PythiaStdLib.h contains the declaration using std::abs (via the cmath header), which is suitably overloaded and obviates the need for separate methods.
    • Improvements to Vincia's handling of error messages; now issued via Info::errorMsg().
    • Removed share/Pythia8/tunes directory, with Vincia reverting to the same (in-code) way of setting tune presets as Dire and Pythia.

    8.301: 30 October 2019

    • Compilation is done with a new -std=c++11 flag.
    • The Vincia and Dire parton-shower programs, which previously have been available as free-standing add-ons to Pythia, are now fully integrated into Pythia, and will henceforth be distributed as part of this package. This has significant implications for code and documentation. The new master switch PartonShowers:model allows a simple choice of which to use, with 1 being the simple old internal one, 2 being Vincia and 3 being Dire. Note that Dire always comes with weighted events, while the other two by default have unit weight events, so analysis strategies must be adjusted accordingly.
    • MadGraph-generated plugins for matrix element corrections to the Vincia and Dire parton-shower programs are now available. A new plugins directory has been created, where MadGraph5 matrix elements can be stored. Note that this implementation still is preliminary, with further improvements to come. To build the available plugins, --enable-mg5mes should be specified.
    • Four new main programs have been introduced in the context of illustrating the Vincia and Dire shower models. Two of them also serve as examples of multithreading if Pythia is configured to link to OpenMP. main200.cc provides a simple test of final-state shower components, in a LEP-like setup. main201.cc compares two different shower models on dijet events. The two runs are executed in parallel if Pythia has been configured to link to OpenMP. main202.cc measures the running time for ttbar events and outputs a few test distributions. main300.cc can be linked against both HepMC2 and OpenMP, if Pythia has been configured correspondingly. It is capable of command-line instructions.
    • A new plugin header, Visualisation is available and used in the example program main300.cc. Events can now be visualized via output that can be passed through GraphViz to produce a postscript file.
    • Introduced a compromise for the treatment of lifetime and width, so that these can be set separately in some situations. If an SLHA file is used to set particle properties, then SLHA:allowUserOverride = true allows the lifetime to be set using a command file/string. Otherwise, lifetime is calculated from particle width. The ability to have the width and lifetime as independent properties is convenient for studies of new physics.
    • The HTML and XML versions of the manual have been significantly reordered, with contents grouped in an increased set of main headings, each with an expandable index of subheadings. There are several new sections, notably for the Vincia and Dire showers. Among other changes, the example main programs have been classified by keywords, and are listed and searchable by these, see here.
    • The PHP version of the manual has been discontinued, since it would be difficult to maintain in conjuction with the ongoing expansion of the html manual. The include/Pythia8/phpdoc directory has been removed.
    • The Python interface has been completely redesigned to handle C++11 by migrating from a SWIG generated interface to a PyBind11 one. It is now possible for users to generate their own interface. Full details are given on the Python Interface page.
    • The field Pythia::info of type Info has been made a constant reference, so that it cannot be externally manipulated outside of the internal classes. This constant reference points back to Pythia::infoPrivate instance, which is for internal use only. This instance now also contains pointers to several other commonly used classes.
    • A new base class PhysicsBase has been created, from which several of the "physics" classes derive. This class standardizes the setup of pointers to commonly used classes, via the Info class. It has new methods that are called at the beginning and end of the generation of each event, and at the printout of final statistics. A new enum Status is provided in the method at the end of each event, to provide information on the reason for error exits. The access of the most commonly used Settings methods is streamlined.
    • Most of the pointers in the Pythia class are now shared pointers, such that there is no need for Pythia to keep track of new and delete obligations. New header SharedPointers.h.
    • The CoupSM and CoupSUSY couplings classes are now separated, rather than the latter being derived from the former. This avoids the problem of the old Couplings pointer potentially changing address, and some pointer casting.
    • Mathematical functions and methods have been extracted from the PythiaStdlib.h/.cc files and put in new MathTools.h/.cc files. Thereby PythiaStdlib is more clearly reserved for declarations related to the Stdlib library, to some simple inline expressions (now constexpr where feasible) and to an expanded list of conversion constants.
    • A new method Rndm::phaseSpace2 has been added, and can be used to sample two-body phase space.
    • The heavy ion machinery has been fixed so that particle vertex information in the event record is stored in units of mm rather than fm, while internal calculations still are in fm. Thanks to Christopher Plumberg.
    • The data files related to parton distributions have been moved to a new share/pythia8/pdfdata directory, and code has been changed accordingly.
    • Iterators are made available to simplify the study of the particles in the event record.
    • A bug in the XML-to-HTML conversion has led to the indiscriminate removal of "more" from the HTML manual, notably in Pythia::moreDecays().
    • New class LowEnergyProcess for the hadronization of low-energy collisions between two hadrons. By default there is a smooh transition between this simple nonperturbative model and the full MPI-based framework at higher energies. To be used e.g. within the modelling of hadronic rescattering in the final state of high-energy collisions. This framework is still under development.
    • New StringInteractions base class to provide common administrative framework for string shoving, rope hadronization, swing, (some) colour reconnection models, and more.
    • The headers in include/Pythia8Plugins have been updated to no longer contain using namespace Pythia8. Thanks to Axel Naumann for pointing out inconsistent usage of scope.
    • The build system has been updated to handle external package configuration scripts.
    • The ProMC example and configuration option has been dropped.
    • Optional package configurations for RIVET and YODA have been added.
    • Support for BOOST has been dropped and only LHAPDF6 with versions greater than 6.2 are supported.
    • The flag --openmp has been added. Currently, OpenMP is used in some of the examples mentioned above, and in DireWeightContainer.cc.
    • Bug fix so the option UncertaintyBands:ISRpTmin2Fac is correctly used in SimpleSpaceShower.cc.
    • Bug fix stopping growth of number weights when multiple init calls are made in Info.
    • Bug fix for SusyWidthFunctions.cc incorrectly calling integrateGauss, resulting in a width of zero.
    • Bug fix to prevent overwriting of dark matter masses from unused model selections.
    • Bug fix where instead of counting all PDG ids less than 100 as the Standard Model, masses of BSM Higges and dark matter are allowed to be set without changing minMassSM.
    • All 2 to 2 SUSY processes now inherit from Sigma2SUSY.
    • Bug fix for Les Houches Event File input without specified beams, such that multiparton decays of a resonance can be combined with showers, although with proper care needed so as not to doublecount emissions.
    • Clarify that Q2 scale has to be set by hand for DIS processes, if so desired.

    PYTHIA 8.2 series:

    These update notes describe major updates relative to the PYTHIA 8.186 version, which was the last 8.1 release. The step from 8.1 to 8.2 gave an occasion to break backwards compatibility, but this should only affect a small part of the user code.

    8.245: 29 October 2020

    • Significant speedup of parton distribution handling, and thereby of the whole PYTHIA execution, since PDF is such a major part of the total execution time. This has been achieved by careful work by Dmitri Konstantinov and Grigory Latyshev. In detail, the main changes are.
      • In the LHAPDF6 interface the evaluation of the x 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 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:nFinalparameter 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 Makefiles 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 bools 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 Makefiles. 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 methodAlphaStrong::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 configured 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 new model for the handling of beam remnants as an option to the old one, which remains as default for now.
    • Two new models for colour o new models for colour reconnection, one quite sophisticated and one simpler. This involves several new classes and files. It also includes some changes in the hadronization framework, notably for the handling of junctions. The old model remains as default for now. 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 Makefiles 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 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.

    PYTHIA 8.1 series:

    These update notes describe major updates relative to the baseline PYTHIA 8.100 version. However, they are less extensive than the corresponding update notes for PYTHIA 6. On the other hand, whereas the PYTHIA 6 manual is a static document, the PYTHIA 8 html/php pages are kept up to date for each subversion.

    Important note:version 8.160 does introduce some elements of backwards incompatibility. Specifically, "multiple interactions", abbreviated MI, has been renamed "multiparton interactions", MPI. This affects many parts of the code and documentation. Also some features are deprecated, although remaining until the end of the 8.1xx version series.

    8.105: 24 February 2008

    • New option to initialize with arbitrary beam directions
      pythia.init( idA, idB, pxA, pyA, pzA, pxB, pyB, pzB)
    • Added capability to set beam energy spread and beam vertex.
      Warning: as a consequence, the old Beams group of settings has been moved to BeamRemnants, and Beams is now instead used for machine beam parameters. Therefore also some Main settings of this character have been regrouped, as follows:
      8.100 setting has been moved to
      Main:idA Beams:idA
      Main:idB Beams:idB
      Main:inCMframe (Beams:frameType)
      Main:eCM Beams:eCM
      Main:eA Beams:eA
      Main:eB Beams:eB
      Main:LHEF Beams:LHEF
    • The forceHadronLevel() method introduced for standalone hadronization.
    • main15.cc illustrated how either full hadronization or only decays of some particles can be looped over for the rest of the event retained.
    • The LHAevnt and LHAinit classes have been joined into a new LHAup one, with new options that allow the writing of a Les Houches Event File.
    • The SusyLesHouches class updated to handle SLHA version 2.
    • Updated HepMC conversion routine.
    • The static ErrorMsg class has been removed and its functionality moved into the non-static Info class, in the renamed Info file.
    • Further reduction of the use of static, with related code changes. This should allow to have several almost independent Pythia instances. Some static classes still remain, however, notably for random number generation and particle properties.
    • Limited capability to use two different Pythia instances for signal + pileup event generation, see main19.cc for an example.
    • In the Event class the = and =+ methods have been overloaded to allow the copying or appending of event records. Illustrated in main19.cc.
    • The html and php page formatting improved with cascading style sheets.
    • Several minor improvements and new options, including updated configure scripts.

    8.108: 1 May 2008

    • Correction in the event record, so that the beam particles in line 1 and 2 do not have any mother according to the motherList method. Previously the "system" entry in line 0 was counted as their mother, which gave rise to an unexpected extra vertex in the conversion to the HepMC format.
    • Support for HepMC version 1 is removed, to simplify the code and reflect the evolution of the field.
    • Status codes are stored in HepMC only as 1 for existing and 2 for decayed or fragmented particles (whereas previously the original PYTHIA codes were used for the latter).
    • Parton densities are stored in HepMC as xf(x,Q^2) rather than the f(x,Q^2) used in (some) previous versions.
    • The SusyLesHouches class has been updated so that reading is fully compatible with the SLHA2 standard.
    • Improved handling of the Higgs width, relevant for massive and thereby broad resonance shapes.
    • The matrix elements for neutralino pair production have now been completed and checked.
    • Ensure that alpha_strong does not blow up, by introducing a minimal scale somewhat above Lambda_3 (roughly where alpha_strong = 10).
    • New methods isValence1() and isValence2() in the Info class.
    • Protection against division by zero in calculation of decay vertex (for zero-mass gluons with zero lifetime, where there should be no displacement).
    • A new compilation option -Wshadow is introduced and code is rewritten at all places where this option gave warnings.
    • Minor library correction to allow compilation with gcc 4.3.0.

    8.114: 22 October 2008

    • New rescattering description operational (but still experimental) for the case that FSR is not interleaved, but saved until after MPI, ISR and beam remnants have been handled. This involves much new code in several classes.
    • A new class PartonSystems is introduced to keep track of which partons in the event record belong to which subcollision system, plus some further information on each subsystem. It takes over functionality previously found as part of the Event class, but leaves room for future growth.
    • Add optional model, wherein an increased pT0 turnoff scale for MPI and ISR is used for above-average active events, i.e. events that already have several MPI's or ISR emissions.
    • Freeze GRV 94L distribution at small Q^2 to avoid blowup.
    • The pythia.readFile(...) method can now alternatively take an istream as argument instead of a filename.
    • Minor bug correction in PartonLevel.cc; the bug could (rarely) give a segmentation fault.

    8.120: 10 March 2009

    • New rescattering description further developed, but not yet recommended for normal usage.
    • Include new processes for Large Extra Dimensions and Unparticles, contributed by Stefan Ask. New test program main28.cc illustrates.
    • Include further SUSY processes: neutralino-chargino and chargino-chargino pairs. The processes should be valid also in the case of non-minimal flavour violation and/or CP violation. Expanded machinery to keep track of SUSY parameters.
    • Include backwards evolution of incoming photon as part of the SpaceShower initial-state radiation description. This allows you to simulate hard collisions where one of the incoming partons is a photon. New test program main43.cc illustrates.
    • Allow separate mass and transverse momentum cuts when two hard subprocesses are generated in the same event.
    • The default value for the border between short- and long-lived particles has been changed from 1 mm to 10 mm, to better conform with LHC standards, see here. The default is still to let all unstable particles decay.
    • New ISR matrix-element correction to f → f gamma in single W production.
    • New method Event::statusHepMC returns the status code according to the HepMC conventions agreed in February 2009. The interface to HepMC now writes out status according to this convention.
    • Add capability to link to FastJet, with expanded configure script and Makefile, and with main61.cc as new example.
    • Update of Makefile.msc, with added support for latest Visual C++ Express edition and use of regexp to check nmake version.
    • Update of LHAFortran.h and Pythia6Interface.h, to make the interface to Fortran routines work also under Windows. (Thanks to Anton Karneyeu.)

    • Updated and expanded worksheet.
    • The manual pages in the xmldoc directory, and thereby also those of the htmldoc and phpdoc directories, have been significantly updated and expanded. In particular, in many places the class of each method is explicitly shown, as well as the type of the return value and of the arguments. This upgrade is not yet completed, but already covers the more relevant sections.
    • The unary minus operator in the Vec4() returns a reference to a four-vector with all components negated, but leaves the original four-vector unchanged. Previously the four-vector itself was flipped.
    • The pPlus() and pMinus() methods of a four-vector and an event-record particle are renamed pPos() and pNeg(), respectively.
    • Include a further loop in ProcessLevel, so that a new process is generated in case of failures of a less severe nature.
    • Introduce warning message for unexpected meMode in ResonanceWidths.
    • Les Houches event reading framework has been rearranged for more flexibility. Some bugs corrected. Specifically, when scale is not set (scale = -1. in the Les Houches standard), PYTHIA did not attempt to set this scale itself, which typically lead to there not being any ISR or FSR. Now the rules for normal 1-, 2- and 3-body final states are applied, with a trivial extension of the 3-body rules for higher multiplicities.
    • Correct bug in the handling of parton densities, whereby it was not possible to switch to a new set, once a first initialization had been done.
    • Correct bugs when several Pythia::init initialization calls are made in the same run, specifically in the case that pointers to external processes have been handed in.

    • Changes in main03.cmnd and main04.cmnd so that some nonstandard options are commented out rather than active. Related comments inserted also in some other .cmnd files, but there without any change in program execution.
    • A few further minor bug fixes.
    • Update year to 2009.

    8.125: 16 June 2009

    • Hadronization and timelike-shower parameter default values updated according to a tune to LEP1 data by Hendrik Hoeth, using the Rivet + Professor framework.
    • Many further SUSY production processes. SLHA readin expanded to cover also masses and decay modes. Example main22.cc updated, while main33.cc now superfluous and removed.
    • Also further processes for extra dimensions.
    • Stefan Ask joins as coauthor.
    • The TimeShower::shower(...) method has gained a new argument, that forces the shower evolution to stop after a given number of branchings. A new method TimeShower::pTLastInShower() permits the last evolution pT to be read out. These extensions can be useful for matching studies.
    • New optional argument isInterleaved added to TimeShower::branch(...). Is false by default, but true when called from the parton level for interleaved evolution of several parton systems, optionally also with ISR and MPI.
    • New methods UserHooks::canSetResonanceScale() and UserHooks:scaleResonance(...) allows an optional user choice of the maximum shower scale in resonance decays.
    • A new method SpaceShower::doRestart() has been added, to help distinguish cases when a SpaceShower::branch(...) failure forces a complete restart of the evolution from ones where only the intended current branching has been vetoed.

    • When multiparton interactions are initialized, it is now possible to reduce both pT0 and pTmin if necessary to find a valid solution where sigma_jet > sigma_nondiffractive. Previously only the former would be reduced, which could lead to infinite loops if too large a pTmin was used. Thanks to Sami Kama for pointing out the problem.
    • The rescattering machinery is now essentially completed, and can be used also by others than the authors. For now, however, it can only be recommended for dedicated studies, not e.g. for generic tunes.
    • Timelike and spacelike showers, and beam remnant handling, are modified to handle rescattering partons. Specifically, a new machinery is introduced to trace the recoils from the combination of rescattering with showers and primordial kT. Can assign space- or timelike virtualities to intermediate particles to have energy and momentum conserved locally. This affects the PartonLevel, MultipartonInteractions, TimeShower, SpaceShower and BeamRemnants classes. Further details to appear in the upcoming article on rescattering. (Another change is a reversal to pre-8.114 order for non-interleaved FSR, wherein also FSR is treated before beam remnants are attached.)
    • Four new status codes introduced, as part of the rescattering description:
      45 : incoming rescattered parton, with changed kinematics owing to ISR in the mother system (cf. status 34);
      46 : incoming copy of recoiler when this is a rescattered parton (cf. status 42);
      54 : copy of a recoiler, when in the initial state of a different system from the radiator;
      55 : copy of a recoiler, when in the final state of a different system from the radiator.
    • New method Info::tooLowPTmin() can tell whether the pTmin scales for showers or multiparton interactions are too low.
    • Pion beams allowed, both pi^+, pi^- and pi^0. New machinery for the latter, where the valence flavour content is chosen to be either d dbar or u ubar for each new event. One internal pion PDF implemented, with others from LHAPDF.
    • Treatment of Pomeron-proton collisions begun.
    • Phase-space handling of hard processes and multiparton interactions slightly expanded to better allow for harder PDF's than proton ones, e.g. for Pomerons.
    • The program documentation has been expanded with an alphabetical index of all methods that are described on the webpages, see the Program Methods page. Also other sections of the documentation have been updated and expanded, including the worksheet.
    • Several list methods have been made const. For the listing of events two new methods have been added, Event::list() and Event::list(bool showScaleAndVertex, bool showMothersAndDaughters = false), that correspond to special cases of the general method.
    • A new method Pythia::LHAeventSkip(int nSkip) permits a skip-ahead of the reading of external Les Houches Events, without the necessity to generate the intervening nSkip events in full. Makes use of the new LHAup::skipEvent(int nSkip) method to perform the operations. Mainly intended for debug purposes.

    • The ClusterJet jet finder now saves the last five clustering scales. Also a minor bug fix. Thanks to Nils Lavesson for this contribution.
    • The Particle::m2() method now returns a negative number when the stored mass m is negative, as used to indicate spacelike virtualities. Also the Particle::eCalc(), Particle::mT() and Particle::mT2() methods have been modified.
    • The << method to print our a four-vector has been expanded with a fifth number, the invariant length, with a minus sign for spacelike vectors, and provided within brackets to allow a simple visual distinction.
    • New methods Rndm::dumpState(string fileName) and Rndm::readState(string fileName) allows to write or read the state of the random number generator to or from a binary file.
    • New method double GammaReal(double x) returns the value of the Gamma function for arbitrary real argument. Some cross sections for extra-dimensional processes rewritten to make use of it.
    • New example program main29.cc shows how to set up a fictitious process of a heavy system decaying to two particles or partons, with decays traced to stable particles, as relevant for astroparticle applications.
    • Main programs that illustrate the HepMC interface have been updated to use version 2.04, including units and excluding deprecated output formats.
    • The main32.cc example extended also to handle Les Houches Event Files.
    • The Makefile has been modified so that "make clean" only removes the current compilation and library files, while "make distclean" gives a more extensive reset and cleanup. Thanks to Nils Lavesson for this contribution. Some other minor Makefile corrections.
    • Several main programs that use the Main:timesToShow mode have been corrected so as not to crash if this is set to zero. Also some other cosmetics changes in main programs that do not affect the running.
    • Bug correction, in that previously a veto with user hooks was not propagated from parton showers inside resonance decays.
    • Minor bug fix in TimeShower for kinematics with unequal beam-particle masses.
    • Bug fix so that PartonLevel:MPI = off also works for minimum-bias events.
    • Minor bug fix in the impact-parameter selection of multiparton interactions. Thanks to Sami Kama for pointing it out.
    • String fragmentation for junction topology protected against numerical instability in boost.
    • Bug correction in the handling of particle decays to partons, where the scale of the partons was set before the partons had been added to some arrays, leading to indexation out of bounds. Thanks to Vladislav Burylov for discovering this bug.
    • Bug correction in the handling of particles with inhibited decay, where the decay vertex would be too far displaced, which could lead to infinite loop. Thanks to Sami Kama for debugging this.
    • Check to avoid infinite loop in matrix-element handling of two-body decays.
    • Bug correction to avoid infinite loops in Dalitz decay treatment. Some changes in the decay handling logic to allow a new try when the decay of a particle fails.
    • Minor correction, so the pointer to the Info class is set also for user-written classes derived from LHAup.
    • Correction for typo in the matrix element of the Sigma3ff2HchgchgfftWW class, for doubly charged Higgs production. Thanks to Merlin Kole for spotting it.
    • Updated colour bookkeeping in junction-antijunction annihilation avoids later problems in Pythia::check().
    • Minor updates of the Makefile.msc file to work with Visual Studio 2008. Thanks to David Bailey for these modifications.
    • Ensure that nInit in the BeamParticle class is set also for unresolved lepton beams.
    • The VetoEvolution class, derived from UserHooks, is obsolete and has been removed.

    8.130: 15 September 2009

    • New machinery that allows multiparton interactions inside diffractive systems. Also new optional Pomeron flux factors and Pomeron PDFs. New page on diffraction added, where further details are collected. Still not tuned, so to be used with caution.
    • Make Peter Skands' "Tune 1" parameters for ISR and MPI default. The older simpler tune is still available as an option, see Tune:pp.
    • New possible choices for a second hard process: charmonium, bottomonium, top pair and single top.
    • New code for pair production of generic colour-triplet scalar, fermion or vector. Largely written by Johan Bijnens, partly recycling existing code.
    • Add user hooks possibility to veto event after a given number of multiparton interactions.
    • Add instructions how PYTHIA 8 can be used from inside ROOT. Thanks to Andreas Morsch for providing the text and Rene Brun for a simple example.
    • The main21.cc example extended with an option for a single-particle gun.
    • Improvements and bug fixes in rescattering framework.
    • New method Hist::table(string fileName) provides a more direct way to print a two-column table of histogram contents into a file than the current Hist::table(ostream& os = cout).
    • Modify reading of external files so that a line only consisting of control characters counts as empty, the same way as a line only consisting of blanks already did. This includes carriage return, tabs and a few more, the ones represented by \n \t \v \b \r \f \a. Applies to Les Houches Event files, settings files and particle data files.
    • Fix it so that the read-in of a Les Houches Event File for the hardest process can be combined with the facility to select a specified second hard process.
    • New empty base class method LHAup::fileFound() allows the derived class LHAupLHEF to signal more clearly that a failed initialization is caused by a failure to open the desired file.
    • Check that a pointer to an LHAup object has been set in Pythia::LHAeventList() and Pythia::LHAeventSkip(...) calls.
    • Updated configure and Makefile, e.g. to build shared libraries on Mac OS X.
    • The options with a direct link to hard-process generation in PYTHIA 6 has been removed. It is hardly ever used but complicates the build structure. (Owing to its usefulness for some debug work, it was reinstated in a limited form in version 8.135. Thus main51.cc now contains the complete interface, previously in separate files, and commented-out lines in examples/Makefile suggest how PYTHIA 6 could be linked.)
    • New argument to Info::errorMsg(...) allows to show all error messages of a specific kind rather than only the first one, e.g. for initialization.
    • Correction in decay table of righthanded Majorana neutrinos. Thanks to Arnaud Ferrari and Vladimir Savinov.
    • Correction in expressions in the manual for H^+- couplings to an h^0, H^0 or A^0 and a W^+-. Thanks to Rikard Enberg.
    • Fix for accessing uninitialized memory, caused by accessing the daughters of the incoming beams before these daughters actually existed. Thanks to David Bailey and Sami Kama.
    • Uninitialized photon PDF inside the proton could give crazy results for processes with incoming photons. Thanks to Adam Davison.
    • Bug fix such that finite lifetimes can be set also for particles produced in the hard process. To exemplify, the bug affected tau leptons produced in Z^0 and W^+- decays. Thanks to Troels Petersen.
    • Bug fix in TimeShower, that beamOffset could remain uninitialized. Thanks to Sami Kama.
    • Minor correction to resonance decays: fail if the allowed mass range of a Breit-Wigner resonance is a small fraction of the total area under the resonance curve.
    • Correction when all three valence quarks were kicked out from a proton and could give false messages that beam momentum had been used up.
    • Clarify status codes needed for hadron-level standalone runs in order to avoid error messages, and modify the main21.cc example accordingly.
    • Minor corrections in the processes for extra dimensions.
    • Some other minor additions to existing facilities and minor bug fixes.

    8.135: 10 January 2010

    • All usage of static member methods inside Pythia8 has now been eliminated. This simplifies for you to have several simultaneous Pythia instances that are run with different conditions. The three main classes affected by this are the Settings and ParticleData databases and the Rndm random-number generator. You can no longer address the methods of these classes directly, but have to address them via the settings, particleData and rndm instances in the respective Pythia object. Also some other smaller pieces of code are affected, e.g. Standard Model and SUSY couplings (the latter in new files). Note 1: The documentation has been updated accordingly on these webpages, but the "A Brief Introduction to PYTHIA 8.1" still refers to the old behaviour of version 8.100. Note 2: the interface to the external LHAPDF library remains static, since LHAPDF is written in Fortran and thus by definition static. Note 3: if you want to have momentum smearing in CellJet you now need to send in a pointer to a random-number generator.
    • Ten new proton PDF sets are made available internally: MRST LO (2007), MRST LO* (2008), MSTW 2008 LO (central member), MSTW 2008 NLO (central member), CTEQ6L, CTEQ6L1, CTEQ6.6 (NLO, central member), CT09MC1, CT09MC2, and CT09MCS, see PDF Selection. The Pomeron PDF data files have been renamed for consistency. Thanks to Tomas Kasemets for help with this Kas10.
    • New parameters TimeShower:pTmaxFudgeMPI and SpaceShower:pTmaxFudgeMPI introduced, to give the same functionality for multiparton interactions that TimeShower:pTmaxFudge and SpaceShower:pTmaxFudge do for the hardest.
    • A few extensions of the UserHooks framework. New methods UserHooks:canVetoISREmission() and UserHooks::doVetoISREmission(...) allows the latest initial-state emission to be studied before being finalized, with the possibility to veto it. Similarly Userhooks:canVetoFSREmission() and UserHooks::doVetoFSREmission(...) can be used to veto the latest final-state emission.
    • A number of loop counters have been introduced in the Info class, that offers some further information on the progress of the event generation, for use e.g. in conjunction with the UserHooks facility.
    • The Pythia::initTunes(...) method is made public, so that it can be called before the normal call from Pythia::init(...). That way it is possible to start out from a given tune and change a few of the parameters.
    • Bug corrected in LHAFortran.h for hard-process input from Fortran commonblock. This did not work properly when the input was used in combination with a second hard process generated internally. Thanks to Mikhail Kirsanov and Roberto Chierici.

    • Insertion of missing initialization of isInit in the Settings and ParticleData constructors, and nInit for BeamParticle. Thanks to Leif Lönnblad.
    • Updated Makefile.msc for Windows users.
    • Fix of some non-optimal use of booleans, that give warnings on a Windows compiler. Thanks to Anton Karneyeu.
    • New options for the SUSY Les Houches Accord such that, by default, particle and decay data are not overwritten for known Standard Model particles (including Z^0, W^+- and t, but excluding the Higgs).
    • Bug fix in SusyLesHouches, where the reading of SLHA information embedded in an LHEF would not stop at the end of the header section.
    • Bug correction for undefined secondary widths where decay products together are heavier than the mother. Also unit default secondary width values in the DecayChannel constructor.
    • Documentation updated, including change of current year to 2010.

    8.140: 16 July 2010

    • Four new draft tunes available.
    • Introduction of a new scenario for production of Hidden-Valley particles, and interleaved showering in the QCD and HV sectors, see the new Hidden Valleys description. A longer physics writeup is available Car10.
    • Implementation of 2 → 3 phase space selection intended for QCD processes with massless partons. A new set of matching phase space cut parameters. The ten different QCD 2 → 3 processes have been implemented making use of this new possibility, so far without a complete handling of possible colour flows, however.
    • New processes have been added for contact interactions in q q → q q and q qbar → q qbar scattering.
    • A process has been added for TeV^-1 Sized Extra Dimensions, which involves the electroweak KK gauge bosons, i.e. gamma_{KK}/Z_{KK}, in one TeV^-1 sized extra dimension; see main30.cc for an example. This scenario is described in Bel10. Thanks to Noam Hod and coworkers for contributing this code.
    • In the Randall-Sundrum extra-dimensional scenario a new option has been added where SM fields can exist in the bulk rather than only on a brane. (Still under development.) Furthermore production of a Kaluza-Klein gluon state has been added, and the main28.cc test program extended.
    • The scenario for monojets in Large Extra Dimensions has been expanded with an alternative for scalar graviton exchange instead of tensor one.
    • New parameters for maximum scale of timelike showers, TimeShower:pTmaxMatch, and the dampening of hard radiation, TimeShower:pTdampMatch and TimeShower:pTdampFudge, by analogy with corresponding ones for spacelike showers. Also new method TimeShower:limitPTmax(...) to implement alternative procedures. For dipoles stretched to the beam the new switch TimeShower:dampenBeamRecoil allows to dampen radiation close to the beam direction, with a changed default behaviour.
    • Azimuthal anisotropies from coherence arguments have been introduced for the spacelike parton showers, see SpaceShower:phiIntAsym and SpaceShower:strengthIntAsym. Also azimuthal anisotropies from gluon polarization have been introduced for the spacelike parton showers, see SpaceShower:phiPolAsym, and updated for timelike parton showers, see TimeShower:phiPolAsym.
    • Improvements for the matching to POWHEG LHEF-style input illustrated by the new main71.cc example. See also Cor10.
    • A set of new processes gamma gamma → f fbar, with f quarks or leptons. Code for equivalent photon flux around an unresolved proton, with more to come. Thanks to Oystein Alvestad.
    • A new option has been included to dampen the growth of the diffractive cross sections, see Total Cross Sections.
    • A new method virtual int SigmaProcess::idSChannel() has been introduced. If overloaded to return a nonzero value then a 2 → n process will appear listed as a 2 → 1 → n one. That is, an intermediate resonance with the requested identity will be inserted in the event record, even without appearing in the calculation of the matrix element proper. Thanks to Noam Hod for idea and code.
    • A new method SigmaProcess::convertM2() has been introduced to optionally allow the SigmaProcess::sigmaHat() to return the squared matrix element rather than d(sigmaHat)/d(tHat) for 2 → 2 processes. Furthermore kinematics is stored in the new mME and pME vectors for alternative cross section encodings.
    • Different encoding of the f fbar → Z W cross section, contributed by Merlin Kole, based on the cross section of Brown, Sahdev and Mikaelian. Gives a distinctly different cross section than the previous based on EHLQ (including their bug fix). In particular the problem with negative cross sections is now fixed.
    • Minor updates: pass xmlPath to new MSTW and CTEQ PDFs; reset beams earlier to give cleaner documentation.
    • The H1 Fit B LO parametrization to the Pomeron PDF has been included, and made new default for Pomerons. Thanks to Paul Newman for providing the data files.
    • Three changes, in principle unrelated, but with the common objective to make the generation of a given event depend only on the values determined during the initialization stage and on the state of the random-number generator when the event is begun. The new default should ensure a reproducible stop-and-restart behaviour, convenient for debug purposes. Thanks to Michael Schmelling for stressing the desire for such a behaviour.
      (i) Introduction of a new option PhaseSpace:increaseMaximum that allows to switch between two strategies for handling the (hopefully rare) cases when the assumed maximum of the cross section function is exceeded during the event generation, with a changed default behaviour. In the old default the maximum could be increased if it was exceeded during the run, thereby introducing a memory of the previously generated events.
      (ii) Updated handling of random numbers with Gaussian distributions. The gauss() method now only generates one value at a time. Instead the new gauss2() method returns a pair of Gauss numbers, with related time savings. In the old approach one Gaussian number could be buffered, which introduced a memory.
      (iii) Minor bug fix in MiniStringFragmentation, where the popcorn baryon state was not reset for each new system, again giving a (flawed) memory.
    • New directory rootexample with a simple code example how to use ROOT for histogramming in PYTHIA runs. See ROOT Usage for details. Thanks to Rene Brun.
    • In the HepMCinterface the checks for unhadronized quarks and gluons are not performed if hadronization has been switched off.
    • The UserHooks::initPtr(...) has been expanded so that pointers to more classes (beam particles, random number, couplings, etc.) are sent in, thereby increasing the scope of possible user-written code. Also, the UserHooks::doVetoProcessLevel(Event& process) now allows the process event record to be modified, even if it is not recommended. The new Info::pTnow() method returns the current pT scale of the combined MPI, ISR and FSR evolution, which can be useful for some user hooks decisions.
    • Histograms of the Hist class can now be booked with up to 1000 bins, instead of the previous maximum 100. All bins can be written to file, but the line-printer style printing will join nearby bins so at most 100 are printed, as before.
    • Updated configure and Makefile to allow 64-bit compilation and more options. Thanks to Mikhail Kirsanov, Rene Brun and Fons Rademakers.
    • Bug fix in ProcessLevel for colour flow checks of junctions. Enables the decay of a neutralino to three quarks, e.g. Thanks to Nils-Erik Bomark.
    • Bug fixes in TimeShower, where recoil partners in resonance decays of coloured particles, and recoil partners in QED dipoles when beams are not allowed to take a recoil, might not be correctly identified.
    • Bug fix in SpaceShower: when used with a fixed alpha_strong, the threshold enhancement factor of g → Q Qbar became undefined. Thanks to Stefan Prestel.
    • Bug fix in initialization of resonance widths, where the minWidth parameter could be used uninitialized, occasionally resulting in strange initialization problems when kinematics needs to force at least one resonance to be off-shell.
    • Minor updates of main06.cc, main10.cc and main23.cc.
    • Bug fix in mother pointer of multiparton interactions in diffractive systems.

    8.142: 15 August 2010

    • The strategy for setting up tune values has been changed. Previously the Tune:ee and Tune:pp settings were only interpreted during the Pythia::init(...) stage. Now they are interpreted as soon as they are read. Specifically this means that it is possible to override any of the tune parameters by putting new commands below Tune:ee and Tune:pp in the Pythia::readFile(...) configuration file or in the list of Pythia::readString(...) commands.
      As a consequence of this change, the public Pythia::initTunes(...) method has been replaced by two private Settings::initTuneEE(...) and Settings::initTunePP(...) methods.
      If Tune:ee or Tune:pp are nonvanishing by default, then the corresponding tune variables are set also from the Pythia constructor, before any user changes are possible. Currently this is not relevant.
    • Bug fix in the setup of the Tune:pp = 5 and = 6 options, which meant that diffractive cross sections were not reduced as advertised.
    • The default value of MultipartonInteractions:pT0Ref has been slightly reduced so as to give a somewhat improved default description. It is not intended as a replacement for the specific tunes, however.
    • Some comparisons between tunes and data, obtained with the Rivet package, have been posted on http://home.thep.lu.se/~richard/pythia81/. Further improvements can be expected from future Professor-based tunes. The current set of 2C, 2M, 3C and 3M "draft tunes" have deliberately been chosen different also to explore a range of possibilities. One not visible in the plots is the fraction of single and double diffractive events in the inelastic cross section. This is 32% in 2C and 2M, while it was reduced to 21% in 3C and 3M, and a recent ATLAS study (ATLAS-CONF-2010-048) would suggest 28+-4%.
    • Minor changes in TimeShower and SpaceShower, as protection if the c or b masses are set small.
    • Bug fix in SpaceShower, for case when phi angle selection is biased to take into account interference effects.
    • The SigmaProcess::convertM2() method now has been implemented also for 2 → 1 processes, so that it is possible to provide the squared matrix element instead of sigmaHat for semi-internal processes. A fixed-width Breit-Wigner is also inserted, since the matrix element is supposed not to include it.
    • New method SigmaProcess::setupForME() does an extended conversion from the internal kinematics to an almost equivalent one, better adapted to the mass conventions of matrix-element calculation programs, such as massive incoming b quarks. New flags allow to determine whether the c, b, mu and tau should be considered massless or not in the calculations.
    • Two new friend methods table of the Hist class allow to print a table with three columns, the first for the (common!) x values and the other two for the respective histogram values. A new method takeSqrt for the square root of histogram bin contents.

    8.145: 10 November 2010

    • Couplings is defined in StandardModel.h as a derived class of coupSM and has only one extra flag: isSUSY to check presence of extra couplings.Changed all pointers CoupSM to Couplings and removed explicit references to CoupSUSY*. The coupSUSY object is only initialised if SUSY couplings are present. The new pointer couplingsPtr points either to only SM couplings or SM+SUSY couplings based on SLHA data.
    • New files SusyResonanceWidths.h/cc contains the SusyResonanceWidths class, which inherits from ResonanceWidths but typecasts the couplingsPtr to (CoupSUSY*) coupSUSYPtr. This is the base class for all SUSY resonances. It contains the ResonanceSquark class for all squark decays. A new flag SLHA:useDecayTable to check if internal widths should be overwritten by those read in via SLHA.
    • Added new functionality to SusyLesHouches for read-in of generic user blocks in the SLHA format, along with methods to extract parameters from them with typecasting controlled by the user. Intended for use with user-written semi-internal processes.
    • Added Sigma1qq2antisquark cross section.
    • Some new flags and modes in the SUSY and SLHA series offer further functionality.
    • Several further changes as a consequence of the upgrade of the SUSY machinery.
    • Bug/typo fixes in rotation matrices for SUSY couplings and for the processes qqbar2squarkantisquark, qq2squarksquark and more.
    • Improved handling of colour junctions. Added new example program main72.cc, to illustrate read-in of color junction structures via LHEF (main72.lhe). The example used is SUSY with RPV.
    • New Tune 4C introduced as Tune:pp = 5. The more crude (non-)tunes 3C and 3M are removed.
    • New methods Settings::getFlagMap(...), Settings::getModeMap(...), Settings::getParmMap(...) and Settings::getWordMap(...) allows to return a map of all settings of the respective type that contain a specific string in its name.
    • Improved description of excited g^/KK-gluon^ production in the Sigma1qqbar2KKgluonStar and ResonanceKKgluon classes.
    • Possibility added to let Hidden-Valley gamma_v have a nonzero mass and decay by mixing with the ordinary photon. Still experimental.
    • Minor bug fix in handling of three-body phase space.
    • Minor correction in Sigma2ffbar2TEVffbar class.
    • Bug fix for decays of W' to a pair of heavy fermions when gV != gA. Thanks to M. Chizhov, see arXiv:0705.3944.
    • Restore the older EHLQ-based encoding of the f fbar → Z W cross section, which was changed in version 8.140, since comparisons with Madgraph gives much better agreement with it than with the expression of Brown, Sahdev and Mikaelian.
    • The HepMCInterface now also stores colour flow information for coloured particles.
    • Pointer to Couplings made available for particle decays.
    • Minor update in main61.cc for more elegant usage of FastJet, as suggested by Gregory Soyez.

    8.150: 20 April 2011

    • Tune 4C is made default. It is based on first comparisons with LHC data Cor10a, and has also been checked independently Buc11 to give reasonable agreement with many distributions.
    • The description of tau lepton decays has been significantly enhanced, to include helicity information related to the production process and hadronic currents fitted to data. A complete writeup is in preparation, while a summary can be found in Ilt12. A new flag is introduced to revert to the old behaviour, for cross-checks, see Particle Decays. The new tau decay machinery is on by default.
    • A new option MultipartonInteractions:bProfile = 4 has been introduced for the impact-parameter profile of protons in the Multiparton Interactions framework, wherein low-x partons are spread over a larger area than high-x ones, see Cor11. A new method Info::eMPI(i) gives back the enhancement factor related to the i'th interaction. The impact-parameter profile can now be selected separately for diffraction, but without a bProfile = 4 option.
    • The possibility of "hadronization" in the Hidden Valley sector has been added as a new option HiddenValley:fragment = on. This is based on a copy of the standard string fragmentation framework, but with the option of a completely separate "flavour" sector, and separately tunable longitudinal fragmentation functions and transverse momenta. For now only a simple flavour scenario is provided, where flavour-diagonal mesons can decay back into the normal visible sector while off-diagonal ones remain hidden. A writeup of the model is in preparation Car11. Also some further Hidden Valley options have been added.
    • Included possibility in TimeShower for QCD dipoles to have an adjustable normalization factor, via the new bool isFlexible and double flexFactor properties of class TimeDipoleEnd. This flexibility is used to treat radiation off colour topologies with epsilon tensors, in particular colour junctions which have all their partons in the final state. (An example is the BNV-SUSY decay ~chi0→uds.) For such topologies, the new treatment in PYTHIA 8 is that a half-strength dipole is spanned between all combinations of final-state quarks. For junctions with an incoming (anti)colour line (such as in the BNV-SUSY decay ~t*→cb), a full-strength dipole is instead spanned between the two daughters, with no radiation from the decaying object (in its CM). As will be described in a forthcoming paper with N. Desai, this should give the closest possible correspondence to the radiation patterns exhibited by higher-order matrix elements for this type of process.
    • Corrected harmless bugs in ProcessLevel::findJunctions which caused junctions of types 3 and 4 (i.e., junctions with 1 incoming color tag) to sometimes be incorrectly classified as types 1 and 2 (with all color tags outgoing), respectively. Since the parity (even/odd) of the junction kind was still correct, however, this did not cause any problems at the hadronization stage.
    • The junction-finder in ProcessLevel::findJunctions has been made more stable, and the following ordering of the color tags returned by Event::endColJunction(iJun, iLeg) is now enforced: for junction kinds 3 and 4 (one tag incoming), iLeg = 0 will return the incoming tag, while for kinds 5 and 6 (two tags incoming), iLeg = 0 and iLeg = 1 will return the incoming tags. Apart from this ordering, the color tags are ordered in ascending color tag number.
    • Declarations of friend functions moved to sit outside the class it befriends. Thanks to Axel Naumann for pointing out the incorrect previous construction.
    • The rootexample subdirectory becomes rootexamples as the old example is split into two, with improved documentation to clarify usage. Thanks to Axel Naumann and Bernhard Meirose for the new code.
    • In the Les Houches Event File machinery, input type has been changed from ifstream to istream for more flexibility.
    • R-hadron handling is largely implemented, see the R-hadrons page, although some aspects still need polishing. A new class RHadrons takes care of the hadronization and decay. Particle data have been added for R-hadrons containing a gluino, stop or sbottom, but could alternatively be used for other long-lived coloured particles. Thanks to Bernhard Meirose for support.
    • Calculations of SUSY decay widths included by N. Desai, contained in the new source files SusyResonanceWidth.cc and .h. Validation and addition of more modes is still in progress, so this implementation should be considered preliminary for now. For a list of available modes, see the SUSY Processes page.
    • A first implementation of the SLHA-based QNUMBERS interface for defining new exotic particles has been included. See Alw07 and the SUSY Les Houches Accord page.
    • Read-in of LHEF events containing Baryon Number Violating vertices has been included, using colour junctions, see the Event Record page. The advanced shower model taking into account the full colour structure of such events, developed by N. Desai and described above, is turned on by default in such events. Several test cases were used to validate this implementation, but it is possible that problems could still exist for some cases. Feedback is welcome. Thanks to the MadGraph authors for providing several test cases.
    • Some first steps taken to allow events containing colour sextets, e.g., from semi-internal processes or LHEF interfaces, and/or from SLHA DECAY tables. New colType codes 3 and -3 are introduced to describe sextets and antisextets, respectively. The state of the current implementation is that hard processes containing such states can be read in and decays generated (via DECAY tables). Parton showers can be added, but the sextets themselves do not, as yet, shower, and any undecayed sextets remaining at the hadronization stage would lead to unpredictable problems if hadronization is switched on. Thanks to J. Alwall for help with testing this implementation.
    • The functionality of the SLHA SUSY/BSM interface (see the SUSY Les Houches page) has been extended so that copies of all BLOCKs are now stored internally as strings, regardless of whether they correspond to "official" SLHA blocks or not. Their contents can subsequently be queried by a set of new templated member functions of the class SusyLesHouches. Available query functions so far include
      template <class T> bool getEntry(string, T&);,
      template <class T> bool getEntry(string, int, T&);,
      template <class T> bool getEntry(string, int, int, T&); , and
      template <class T> bool getEntry(string, int, int, int, T&);,
      where the type of the argument used in the call determines how to read the block entries. Thus, if an LHEF, SLHA, or other card file is read in by PYTHIA, the contents of any BLOCK in that file can subsequently be queried run-time using these functions. This is used, e.g., in the new interface between MADGRAPH 5 and PYTHIA 8. Thanks to the MADGRAPH team, and to J. Alwall in particular, for help and debug on this new implementation.

    8.153: 10 August 2011

    • The setup of tunes has been modified, see the Tunes page for details. Specifically the Tune:ee and Tune:pp modes have acquired a new option -1 for a forced restore to the default values of all settings used in the respective kind of tunes.
    • The code for handling multiparton interactions in the scenario with an x-dependent width of the Gaussian matter profile Cor11, has been improved and updated. Tune 4Cx, which is based on this option, has been added as a further tune option.
    • A possibility to bias the phase-space selection has been added, whereby some phase space regions can be oversampled, which is compensated by assigning a weight to each event. A new set of methods have been added to the UserHooks class to allow users to program how to bias the selection.
    • New options added so that matrix-element corrections can be switched off after the first branching in ISR or FSR.
    • Some new Info methods have been added to store information on latest ISR branching. The SpaceShower class has also been corrected so that the latest z = 1/2 when not defined by history. This avoids undefined values for azimuthal asymmetries. Thanks to Stefan Prestel for finding and sorting out this problem.
    • The Pythia::forceHadronLevel() method now takes an argument that optionally means that existing junction information is not overwritten. Thanks to Leif Lönnblad for pointing out the usefulness of this.
    • For particle decays to a varying number of hadrons the multiplicity increase with mass has been somewhat reduced, and especially for meMode = 23 a separate even slower increase has been introduced.
    • New possibility to force the tau polarization.
    • Bug fix for the special case in which events containing SUSY particles are generated without proper initialization of SUSY decays. This can happen, e.g., if events containing SUSY particles are read in via external LHEF files, if those files do not contain readable SLHA spectra in their headers. In this case, a failed attempt to generate sparticle decays with ill-defined couplings previously led to crashes. The program now reverts to the old behaviour, based on static decay tables, in such cases, with the default being to decay all sparticles to gravitino + particle. An error message stating that the full SUSY treatment has been switched off and why is also issued. Thanks to N. Desai for this fix.
    • The R-hadron machinery has been completed.
    • Minor change in timelike showers: gluons which fall below the pTmin cutoff by the correction for mass effects are now eliminated, while previously they were kept. This reduces the number of gluons somewhat, but has no significant effects on the hadronic final state. (Prompted by R-hadron studies, where big mass effects else give bothersome low-energy gluons.)
    • Corrected typos in two of the Upsilon wave function matrix elements, Bottomonium:OUpsilon3P08 and Bottomonium:Ochib03P01. Thanks to Beate Heinemann for pointing it out.
    • Implemented f decay angle in f f → f f processes, and fixed some bugs for the same process. Thanks to Piyali Banerjee for tests.
    • Introduce possibility to separate production channels for TeV-sized extra dimensions, and a small code correction. Thanks to Noam Hod for code contribution.
    • Bug fix for neutrino beams: since neutrinos are always lefthanded there should be a factor 2 in the cross section, relative to charged leptons, from the non-need to average over incoming spin states. This is now fixed by introducing a new PDF class NeutrinoPoint for (unresolved) neutrinos, with normalization 2 rather than 1 for charged leptons. Thanks to Ryosuke Sato.
    • Bug fix for some (rarely used) particle settings, which could not be changed by users because they were read too early. Thanks to Andrew Altheimer and Gustaaf Brooijmans.
    • Bug fix in handling of tau decays, where setting of decay vertices could write outside memory. Thanks to Steven Schramm.
    • Minor expansion of the BeamParticle constructor.
    • Minor bug fix in CTEQ 6L for uninitialized variables.
    • Minor bug fix in fragmentation flavour combination to hadron.
    • Some updates of the documentation, including new pages on MadGraph 5 as a generator for semi-internal processes (thanks to Johan Alwall) and on RIVET interfacing.
    • Minor improvements of ROOT- and HepMC-related code and documentation.
    • Some cleanup of code.

    8.157: 10 November 2011

      Stefan Prestel joins as new member of the PYTHIA author team. He is mainly working on matching/merging issues, and has contributed the CKKW-L machinery mentioned below.

    • Merging capabilities according to the CKKW-L scheme Lon11 have been added, see the new Matrix Element Merging page. It involves new classes to reconstruct and select how a matrix-element-generated partonic configuration could have been obtained by the PYTHIA evolution, and to perform trial showers (using a new copy of the normal parton-level machinery) that introduce the appropriate Sudakov suppression factors. New examples to illustrate various common tasks are found in main81.cc, main82.cc, main83.cc and main84.cc.
    • The main71.cc program is now generalised for reading in arbitrary POWHEG LHE files, to implement a smooth matching between NLO matrix elements and the PYTHIA parton showers. Cuts are made on both ISR and FSR emissions, while previously only ISR was covered. The key assumptions are the pT definitions used for ISR and FSR, but several further options are available, as documented in the main71.cmnd file. Work is still ongoing to pick the best default options.
    • Several expansions of the UserHooks class. For both doVetoFSREmission and doVetoISREmission a new argument iSys labels the system within which the radiation occurs. For doVetoFSREmission a further argument inResonance distinguishes FSR in resonance decays from that in the hard process itself. New methods canVetoMPIEmission and doVetoMPIEmission have been added to veto multiparton interactions in the same way as FSR and ISR. In biasSelectionBy at times incorrect values for inEvent has been corrected. Also some systematization of the use of const.
    • A new model for hadron scattering is introduced, still at an early stage and therefore more intended for internal development than for the normal user. The basic idea is that a high-energy pp collision involves the fragmentation of multiparton strings that overlap in space (and time). Also the produced hadrons therefore initially overlap, and there is a strong likelihood that hadrons can scatter against each other until the system has expanded sufficiently. This can e.g. increase the transverse momentum of heavier hadrons at the expense of lighter ones.
    • A new jet finder SlowJet offers simple access to the inclusive kT, anti-kT, and Cambridge/Aachen algorithms in a cylindrical coordinate frame. The jet reconstruction is then based on sequential recombination with progressive removal, using the E recombination scheme. The minimalistic SlowJet code is much slower than FastJet Cac06, and contains less options, but reconstructs the same jets if run under identical conditions. For details see the Event Analysis page.
    • Starting in gcc 4.6, it is possible to switch off specific warnings around specific blocks of code. Although version 4.6 is some way off from being commonly found, this option has now been introduced to switch off -Wshadow warnings in HepMCInterface.cc. For other compilers, or earlier versions of gcc, the old behaviour is retained.
    • Support for reading in gzipped LHEFs has been added in the LesHouches and SusyLesHouches classes. This also affects configure and Makefiles. Unless explicitly enabled, it should not affect anything. If enabled, it relies on the Boost and zlib libraries to function, so paths to these must be set appropriately, see the README file for details. The Boost header files can give very many shadow warnings, so -Wshadow is disabled if gzip support is enabled, as described above.
    • Introduce use of the HEPMC_HAS_UNITS environment variable in the HepMCInterface.cc and main32.cc codes to automatically check whether GeV and mm can be set as relevant units. If yes, then it is set in main32.cc. If no, a conversion from GeV to MeV is done explicitly in HepMCInterface.cc. Note that, for early HepMC versions, this means a change of behaviour. Thanks to Andy Buckley.
    • A new method Info::lhaStrategy() returns the Les Houches event weighting strategy where relevant, and 0 where not. For the strategies +-4 the event weight and sum, Info::weight() and Info::weightSum(), is now in units of pb at output, as it should be at input. (While internally mb is used.)
    • New flag Check:abortIfVeto allows the user to resume control over execution in case of a veto in the event generation process.
    • New method Event::at(i) returns reference to i'th particle in the event record.
    • Introduce the Fermi constant as one of the Standard Model parameters.
    • Included automatic pre-initialization of SLHA blocks MASS and SMINPUTS using PYTHIA's SM parameters and particle data table values.
    • SUSY: added sleptons (and sneutrinos) as resonances. Corrected 2-body decay widths of gluinos, squarks and gauginos. Added sleptonic decay modes to gaugino decays. Implemented 2-body decays of sleptons (and sneutrinos) into sleptons/leptons/gauginos. Corrected slepton couplings (they now look exactly like squark couplings, using a 6x6 slepton mixing matrix).
    • New parameter Diffraction:probMaxPert introduce to give more flexibility in transition from a nonperturbative to a perturbative description of a diffractive system.
    • Bug corrected in SigmaEW.cc, for the process WeakSingleBoson:ffbar2ffbar(s:gm). Previously, all outgoing quark flavours in this process were erroneously assigned ID code 5 (b quarks). This has now been corrected so the proper ratios are obtained, with u : c : d : s : b = 4 : 4 : 1 : 1 : 1, according to the squared quark charges.
    • Changes in FragmentationSystems and StringFragmentation to reject systems with three or more interconnected junctions. This may happen in baryon-number-violating scenarios in pp collisions, if both of the beam baryon junctions are resolved and get connected via an antijunction created by a hard-process BNV vertex. In principle, this could be addressed by an extension of the existing junction fragmentation framework. However, since it happens rarely, for the time being an error message is printed and the fragmentation restarted.
    • Change in Event::copy to safeguard against attempting to copy out-of-range entries. An attempt to copy a non-existing entry will now return -1.
    • Bug fix in the machinery for the user to force the setting of tau polarization.
    • Bug fix in the initial search for a maximum of the process cross section (only affecting rare cases).
    • Corrected angular decay distributions for two compositeness processes, Sigma2qq2qStarq and Sigma2qqbar2lStarlbar.
    • Extra check in HiddenValleyFragmentation to make sure that pointers which have not been assigned with new are not deleted.
    • Some further minor changes.

    8.160: 23 January 2012

    • The older term "multiple interactions" has been replaced by the new standard "multiparton interactions" one, and correspondingly the abbreviation MI by MPI. This affects everything: settings, class and method names, documentation, etc. It therefore becomes necessary to rewrite user code. However, so as to keep the immediate effort at a reasonable level, the old settings names are kept as aliases. Thus PartonLevel:MI and PartonLevel:MPI are equivalent, and similarly MultipleInteractions:pT0Ref and MultipartonInteractions:pT0Ref. Should you be using methods such as double Info::pTMI(int i) you need to edit the code, however. All the example/main* files have been updated accordingly.
    • A new option Beams:frameType = 5 has been added for the case where an external generator should provide LHA process information. The new Pythia::setLHAupPtr(...) method should then be used to link in this generator. The new switch Beams:newLHEFsameInit can be used to tell that a new LHEF should be used, but without the need for a new initialization. With these two changes, all the different ways of initializing can be covered by the Pythia::init() call with no arguments. The various init(...)options with arguments are deprecated and will be removed for PYTHIA 8.2.
    • The Pythia::stat() method, with no arguments, replaces Pythia::statistics(...), although the latter remains as a deprecated alternative.
    • New settings Init:..., Next:..., and Stat:... can be used to steer some details of the operation of the Pythia::init(), Pythia::next() and Pythia::stat(), respectively. In particular it affects the amount of printout at the various stages of operation. See here for further details. This change involves several code changes, but in documentation rather than physics. Most of the Main:... settings are deprecated as a consequence.
    • The sample main programs in the examples subdirectory have been updated. This includes a change to the new favoured methods and settings outlined above, plus some update of the physics contents. Some of the examples have been combined, some others have been added (e.g. for R-hadrons), and as a consequence some renumbering has been made. See the modified list of sample main programs for the new status. In particular note that (the new) main61.cc allows streamlined input and output in HepMC, like main42.cc (previously main32.cc), but additionally links to LHAPDF.
    • The examples/configure script has new optional argument --with-pythia8. It can be used to set the new PYTHIA8LOCATION environment variable, which then is used in examples/Makefile to give the path to the PYTHIA library. Thereby it becomes possible to relocate (parts of) the examples directory and still obtain the correct path. Thanks to Mikhail Kirsanov.
    • Polarization information has been included as a new Particle property, that can be set by void pol(double polIn) and obtained by double pol(). Default value is 9., in agreement with the Les Houches standard. Event listings have been expanded to optionally display this information. Currently polarization is not used internally.
    • The matrix element merging machinery has been modified as follows.
      - Improved handling of the hard process, so that MadGraph5-produced LHE files do not produce problems (sometimes, the choices of MG4 on what to put into a LHEF have changed in MG5).
      - Improved handling of colour for easier handling of states with many quarks (the code has been tested for states with up to 5 q qbar pairs and some gluons).
      - Improved checking which clusterings are allowed. Now, clusterings should immediately be rejected if they lead to unphysical states, without the need to explicitly construct these states. This was needed to get t tbar production, VBF and some simple SUSY processes running with reasonable generality.
      - Improved handling of incomplete histories. Now there is an additional switch allowing code to try to swap some colours when fewer clusterings than requested have been found.
    • Updates in the handling of graviton resonances in scenarios with extra dimensions.
      - Now all G decays have correct angular distribution, which was not the case before for W/Z decays.
      - Added the possibility for G to only couple to longitudinal W/Z bosons, which affects both the width and angular distributions.
      - Added decays to Higgs pairs, G → hh.
    • Bug fix in the findJunctions() function in ProcessLevel.cc. Changes introduced in version 8.145 (to allow for junctions in baryon-number-violating processes) did not correctly handle the remapping of color tags that can be applied when adding beam remnants to events with multiparton interactions. A simpler and more stable algorithm is now applied for the simplest cases, with the more complex one only invoked for cases such as BNV, which are normally considered before remnants are added, hence avoiding this particular problem. Also some other changes in the handling of junction, including a safeguard to reject systems with three or more interconnected junctions.
    • Bug fix and updates to the SLHA interface. Possibility of infinite loop during ProcessLevel::initSLHA corrected. Modifications to SusyLesHouches to allow interpretation of SLHA1 spectra with R-parity violation. Rather than reject spectra that do not conform fully to the SLHA2 standard for RPV, the interface will now first look for SLHA1 mixing matrices and attempt to translate those into SLHA2 ones if possible. In this case, warnings that the expected SLHA2 blocks were not found will be printed. It is up to the user to check that the derived SLHA2 information is correct. Corresponding additions to SusyCouplings.cc to extract mixing-matrix information from the relevant SLHA2 RPV blocks when RPV is switched on.
    • Updated SLHA example main24.cmnd to use new example spectrum, cmssm.spc, corresponding to CMSSM point 10.1.1, obtained with SOFTSUSY 3.3.0. Thanks to B. Allanach for providing the new spectrum file.
    • A new include/FastJet3.h header file simplifies interfacing of FastJet to Pythia. For details see documentation in the file itself. Thanks to Gavin Salam for this contribution.
    • The handling of diffraction has been made more flexible. Specifically the "total" Pomeron-proton cross section can now be made to depend on the mass of the diffractive system. This does not affect the diffractive cross section in pp collisions, which is set separately, but is used in the MPI machinery to affect the average number of interactions per Pomeron-proton collision. Furthermore, the allowed range for some parameters has been expanded. Thanks to Robert Ciesielski.
    • New method Pythia::forceTimeShower(...) can be used to generate a single final-state cascade from a set of partons, without any knowledge of prior history. This is mainly intended for toy studies. The meaning of the ProcessLevel:all switch has been modified so that this parton-level function is available, but not any others at this level.
    • ATLAS tune A2 now included. Thanks to Deepak Kar for providing it.
    • Change in the handling of recoils of timelike showers in resonance decays, in cases of coloured resonances such as t → b W. In the first step the W always acts as recoiler to the b, but in subsequent step previously the W remained as recoiler to one dipole, while now all QCD-radiating partons recoil against another coloured parton. The old behaviour could give a (small) unphysical spike of radiation collinear with the colourless recoiler in the subsequent emissions (while the pattern of the first was and remains correct). The old behaviour can be recovered for checks, see TimeShower:recoilToColoured. Thanks to Yevgeny Kats for pointing out this issue (previously noted for Pythia 6 by several persons).
    • Bug fixes for rootexamples/Makefile and restoration of some deleted information in rootexamples/README. Thanks to Axel Naumann and Bernhard Meirose.
    • Bug fix, so that displaced vertices are possible in resonance decay chains. Thanks to Daniel Blackburn and Andy Buckley for pointing this out.
    • Bug fix for Info counter 2.
    • Bug fix so that sextet quarks now are read in correctly from Les Houches Event files; previously the (anti)colours were set to 0.
    • Year updated to 2012 in copyright statements etc.
    • Reformatting to reduce the number of code lines with more than 79 characters.
    • Pythia::initSLHA() moved from public to private.
    • Remove warning message when tau polarization is set by hand.
    • Several minor changes to reduce the number of warnings issued by the clang compiler. The origin of some warnings remains unclear so those remain to track down (could also be compiler bugs; note that we discuss warnings, not errors). Thanks to Randy MacLeod for bringing this up.
    • The worksheet has been updated to be in step with Pythia 8.160.
    • Several other minor corrections in the code and documentation.

    8.162: 12 March 2012

    • A new option allows for several partons to share the recoil in final-state radiation, seeTimelike Showers. It is mainly intended to be used in the context of matching to matrix elements, and so only to be used in the first few branchings.
    • Several new processes for LED dijet production, see Extra Dimensions.
    • Small update of the Sigma2ffbar2LEDllbar and Sigma2ffbar2LEDgammagamma LED processes.
    • New Sigma2QCffbar2llbar contact interaction process.
    • Inclusion of a new method in the matrix-element merging framework to influence the construction of histories, e.g. to already in the construction of histories disallow paths that fail the 2 → 2 cuts.
    • Further minor updates of the matrix-element merging code, mainly for improved clarity.
    • Minor bug fix in the handling of beam and event information fed in from an LHAup instance.
    • Minor bug fix for potential crashes from uninitialized variables for the merging machinery when merging is not used.
    • Updated History class for matrix element merging, also avoiding some compiler warnings.
    • Bug fixes in the handling of correlated mass choices in resonance decays, such as H → Z^0 Z^0.
    • Bug fix when the process-level execution is switched off, where Info::isResolved() could be called before its value was initialized. Thanks to Christian Pulvermacher for finding this.
    • Corrected matrix-element expression for mass selection in A^0 → Z^0 Z^0 and A^0 → W^+ W^-.
    • SM Higgs mass updated to 125 GeV and default width and branching ratios modified accordingly. Minor technical improvements of width calculation.
    • The usage of nested classes has been removed from SusyLesHouches, since it could give compilation errors on some platforms. The new class names begin with LH and all classes have been put inside the Pythia8 namespace.
    • Minor Makefile updates. Thanks to Mikhail Kirsanov.
    • Minor changes to avoid some clang compiler warnings on the Mac OS X platform.

    8.163: 27 March 2012

    • New methods in the Info class, id1pdf(), id2pdf(), x1pdf() and x2pdf(), to denote the partons for which parton distribution values have been defined. Previously this was assumed to agree with the incoming partons to the hard process, the same methods without the pdf qualifier. However, now the POWHEG approach offers a counterexample. Also the reading and handling of Les Houches (and other) events, and the interface to HepMC, has been modified accordingly.
    • The decay of Higgs and top resonances read in from Les Houches Event files is now performed with angular correlations as for internal processes. LHE files should normally contain all process-specific resonance decay chains and, if not, decays are made isotropic. The H → WW/ZZ → f fbar f' fbar' and t → b W → b f fbar correlations are process-independent, however, and thus can be handled internally. If part of the decay chain has already been set, e.g. H → WW/Z> or t → b W, then the subsequent decays are still isotropic.
    • Updated instructions how to link to HepMC, in README.HepMC.
    • Bug fix in the turn-on of resolved diffraction for low CM energies. Thanks to Erwin Visser.
    • Bug fix in the handling of string junctions at very high energies, caused by numerical errors. Thanks to Erwin Visser.
    • Some other small changes, mainly aesthetics.

    8.165: 8 May 2012

    • The MBR (Minimum Bias Rockefeller) model for single, double and central diffraction Cie12 is included as new option Diffraction:PomFlux = 5. It is specifically intended for p p and pbar p interactions, and is currently the only option that also supports central diffraction. Thus the basic machinery for Central Diffraction (a.k.a. Double Pomeron Exchange) has now been implemented. See examples/main04.cc for an example. Thanks to Robert Ciesielski for contributing the new code.
    • For a tau lepton in an external process, by default the SPINUP number in the Les Houches Accord now is interpreted as giving the tau helicity, and is used for its decay.
    • A tau coming from a W now defaults to being purely lefthanded when neither of the existing matrix elements apply.
    • Decay mode t → H+ b included as an option.
    • Four ATLAS tunes have been implemented as options for Tune:pp: A2-minbias-mstw2008lo, AU2-cteq6l1, AU2-mstw2008lo, and AU2-ct10. The new flag Tune:preferLHAPDF can be used to switch between the LHAPDF and the internal implementation of a PDF set, in cases where both are available.
    • Reorder libraries in examples/Makefile, specifically move LIBGZIP so that it is properly linked when used. Thanks to Erik Schnetter.
    • Minor modification so that LHAPDF can be used for PDFs in the hard process, with one of the built-in PDFs for the rest, even if LHAPDF is compiled so as to handle only one concurrent PDF set.
    • Bug fix, that ParticleDecays:mixB = off did not switch off B0 - B0bar and Bs0 - Bs0bar mixing. Thanks to James Catmore.
    • Bug fix for the handling of gluon polarization of initial-state radiation, where an anisotropic azimuthal distribution was inadvertently generated in some 2 → 1 processes. The update also includes always setting the second daughter zero for the two partons coming in to a hard 2 → 1 process. Thanks to Antonio Policicchio.
    • Bug fix, that the setting of the number of user hooks MPI steps did not use UserHooks::canVetoMPIStep() properly.
    • Some other small changes, mainly documentation and aesthetics.

    8.170: 21 September 2012

    • Streamline default behaviour and options for choice of GeV or MeV for output to the HepMC event format, see HepMC Interface. Also set the mass of HepMC particles explicitly, rather than having it calculated implicitly. Thanks to James Monk and Andy Buckley.
    • The tau decay machinery has been further augmented with matrix elements and form factors for a variety of decay modes, such that all modes with a branching ratio above 0.1% are fully modeled. Several new classes and methods have been added to this end, Also, a tau pair coming from a Z^0 decay is now handled by assuming the Z^0 to be unpolarized when neither of the existing matrix elements apply. Taus coming from B baryons are handed as for B mesons.
    • Flavour violating decays have been added to the squark, gluino, neutralino and chargino decay tables.
    • Extend the UserHooks::subEvent(...) method so that it also works passably at the process level. Also new option for UserHooks::omitResonanceDecays(...).
    • New methods UserHooks::canVetoPartonLevelEarly() and UserHooks::doVetoPartonLevelEarly( const Event&) are intended to be used the same way as the existing ones without Early in their names, but allow veto right after the ISR + FSR + MPI evolution, before beam remnants are added and resonance decays are considered.
    • Central diffraction now available for all PomFlux options, not only the MBR model. This has been constructed by analogy with the respective assumptions made for single diffraction, but includes some arbitrariness. Therefore the cross section is left easily rescaleable and, for backwards compatibility with tunes that does not contain it, easily possible to switch off, see the relevant section.
    • Reading of ALPGEN parameter and event files has been added, see ALPGEN and MLM Merging.
    • MLM matching has been added, as a first step for ALPGEN events, see ALPGEN and MLM Merging.
    • The CKKW-L merging machinery has been upgraded in a number of respects.
      - More thorough treatment of pp>bb~e+e-veve~ with additional b-jets.
      - Corrected hard mu_r and mu_f choices for dijet and prompt photon.
      - More ways to define a hard process, e.g. with the LEPTONS and NEUTRINO tags. The merging will understand LHE files for mixed processes (e.g. W+ and W- production together).
      - More merging scale definitions.
      - More freedom to generate all possible histories.
      - Internal check (and cut) on Les Houches events in Pythia::mergeProcess if merging scale value of the events is below the value given to Pythia by setting Merging::TMS.
    • It now works to have R-parity violating decays of R-hadrons, i.e. baryon number violation in a vertex displaced from the primary one.
    • The documentation of diffractive processes by the Info methods has been expanded and corrected. This also include the list() method.
    • Particle masses and widths have been updated to agree with the 2012 RPP values Ber12. Thanks to Piotr Zyla for data file and James Catmore for program to update the PYTHIA tables from this input.
    • New methods jetAssignment and removeJet added to the SlowJet class.
    • Introduce angular correlation in decay chain H → gamma Z0 → gamma f fbar. Thanks to Tim Barklow and Michael Peskin.
    • Introduce simple way to bias the selection of 2 → 2 processes towards larger pT values, with a compensatingly decreasing event weight, see Phase Space Cuts. Only offers a subset of the possibilities allowed by UserHooks, but simpler to use. The main08.cc program has been expanded to illustrate this possibility, and also expanded to include low-pT subsamples.
    • The two remaining non-NLO tunes from ATL12 are now included.
    • The Info methods nTried, nSelected, nAccepted, sigmaGen and SigmaErr now takes the code of an individual process as an optional argument.
    • It is now possible to generate resonance decays, followed by showers and hadronization, without having them associated with any specific process. This is part of an expanded Hadron-Level Standalone machinery, as before triggered by ProcessLevel = off, but additionally requiring Standalone:allowResDec = on. Input can either be directly into the event event record or via a (simplified) Les Houches Event File.
    • New configure script options --installdir, --prefix and --datadir can be used to set the location(s) to which the library, header and data directories will be copied by a make install subsequent to the make. Thanks to Mikhail Kirsanov.
    • Fix charge in antiparticle name when particle read in from SLHA file. Thanks to Johan Alwall.
    • Pointers now only compared with == and != (not e.g. > 0), to avoid warnings in gcc 4.7.
    • New check that version number of the code matches that of the XML files. If not, no events can be generated. Thanks to James Monk for suggestion.
    • New check that mother and daughter indices have been set to give a consistent event history. Can be switched on/off with the new Check:history flag.
    • A new method LHAup::newEventFile has been added to switch to reading in events from another LHE file without having to reinitialize the whole class. Lower-level routines like openFile and closeFile have been added to handle correct order of operations also when an intermediate gzip decompression step is involved.
    • LHAup::eventLHEF() can now be called with an optional argument false, to make event files somewhat smaller by reducing the amount of blanks.
    • A new mode Beams:nSkipLHEFatInit introduced to skip ahead the first few events in a Les Houches Event File (cf. the LHAup::skipEvent(nSkip) method).
    • Introduce a new pair of user hooks that can be used to reject the sequence of hard-process resonance decays, without rejecting the production of the primary resonances.
    • The possibility of separate multiplicative prefactors to the renormalization and factorization default pT^2 scale has been introduced for both timelike and spacelike showers.
    • Bug fixes in history information for R-hadron production, which also fixes HepMC conversion in this case.
    • Bug corrected in SigmaSusy.cc, for chargino+neutralino production. Indexing error for incoming quark states in the process Sigma2qqbar2charchi0, resulted in incorrect CKM factors.
    • Corrected a bug in SusyLesHouches.cc, for NMSSM spectra. The unitarity check on the neutralino mixing matrix was faulty, leading to erroneous messages about unitarity violations and SUSY being switched off.
    • Bug fixes in the handling of resolved and unresolved diffractive events. Thanks to Robert Ciesielski for debug.
    • Do not set up FSR dipoles for 2 → 1 processes.
    • Check that some channel open for resonance decays. Also further check whether resonance decay treatment should be invoked.
    • Bug fix in reading of particle names from SLHA input.
    • Change mass, width and decay mode(s) of D*_s(10431). Thanks to Michal Petran.
    • Bug fix in leptoquark production (lepton sign in q g → LQ l).
    • New argument added to SpaceShower::reassignBeamPtrs for diffractive event processing, as already available for TimeShower.
    • Do not write warnings in SpaceShower for weights above unity if the evolution scale is below 1 GeV^2.
    • Add default values for member variables in some constructors, and some related changes for AlphaStrong code.
    • Warn if negative-energy parton in hadronization.
    • The MPI pT values assumed in the beam remnant setting of primordial kT and colour reconnection probability were incorrect for diffractive events.
    • The arrays with MPI information were not reset when parton or hadron level fails and a new try is made. Only affected few events.
    • MPI statistics can not yet be accumulated for diffractive events, and therefore the relevant routine is no longer called.
    • Bug fix in the double parton scattering suppression from energy-momentum conservation.
    • Outgoing proton masses were not set in the event record for elastic scattering (but kinematics handling was correct).
    • Bug fixes in the identification and documentation of junctions, previously leading to some unnecessarily rejected events. Also other improvements leading to fewer errors.
    • Slightly increased values for FragmentationSystems:mJoin and StringFragmentation::FACSTOPMASS to reduce failure rate, without noticeably affecting event properties.
    • The Les Houches cross section error is now taken into account in the final Pythia error for strategies +-3. New methods LHAup::xSecSum() and LHAup::xErrSum() provide the necessary information.
    • When a tau pair comes from a massless photon, in dipole shower evolution, for the decay description the mother photon is reassigned to have the sum of the tau momenta.
    • Minor change in initialization sequence for user hooks, to allow for more flexibility.
    • Do not print warnings when multiparton interaction weights are only slightly above unity.
    • Do not write warnings for three known particles that are so close to threshold that widths are switched off to avoid trouble.
    • Some minor typographical changes.

    8.175: 18 February 2013

    • Richard Corke and Stefan Ask leave as active authors, and have new e-mail addresses.
    • Jesper Roy Christiansen and Philip Ilten join as new authors.
    • A severe bug found and corrected in the handling of junction fragmentation. For some string topologies it could lead to parts of partonic systems mainly aligned along the beam axis to obtain an effective tilt, thereby giving rise to a pair of opposing jets that should not be there. The bug was an unfortunate side consequence of the improvement of junction handling introduced in version 8.170, and do not affect versions prior to that. To the largest extent possible, it is recommended to avoid this version. Potential errors are likely to be most relevant for processes at low pT, whereas processes that already have a large scale proportionately are less affected. Sincere apologies, and thanks to Hannes Jung for discovering it.
    • The initialization is aborted when the user tries to change the value of a non-existing variable in the Settings or ParticleData databases, and it becomes impossible to generate events. This may be rather brutal, as opposed to the former policy of ignoring such commands (except for a warning), but avoids that the user wastes time on a run that is likely not to give the wanted results. Thanks to Gavin Salam for stressing this point.
    • Major updates of the merging code. CKKW-L code is made more flexible, and now includes additional options to facilitate merging of additional jets in MSSM processes. Unitarised ME+PS merging (UMEPS) is introduced as a new merging scheme for tree-level input. An example main program for UMEPS is added. UMEPS is documented in the new section UMEPS Merging. NLO merging methods are now functional. Two NLO merging schemes are implemented: NL3 and unitarised NLO+PS merging (UNLOPS), both of which are illustrated with example main programs. NLO merging is documented in NLO Merging.
    • The machinery for the MLM-style matching of jets has been expanded to cover input either from ALPGEN, as before, or from Madgraph (or other LHEF input), and expanded to cover either a matching algorithm based on the one in ALPGEN or the one in Madgraph. See Jet Matching for details.
    • Neutrons and antineutrons are now allowed as incoming beam particles. The neutron PDF is derived from the chosen proton PDF by simple isospin conjugation, and total/elastic/diffractive cross sections are assumed the same as for protons.
    • Update in Pythia.cc, to allow user to override SLHA mass values by hand, controlled by the new flag SLHA:allowUserOverride. This was motivated by people wanting to be able to read in a base SLHA spectrum and then quickly scan over particular mass values manually. Corresponding documentation update in SUSYLesHouchesAccord.xml.
    • Updates to the ResonanceWidths and SUSYResonanceWidths classes, to merge common initialization steps into the base class. Corresponding documentation update in SemiInternalResonances.xml. Also some cosmetic changes in SUSYResonanceWidths to improve conformity with CODINGSTYLE rules.
    • The SlowJet jet finder is updated with an option for an alternative R separation based on cosh(Delta y)-cos(Delta phi).
    • Statistics information on the separate subprocesses among the Les Houches external input is improved.
    • The sophisticated tau decay machinery has been expanded so that it can also handle production of taus in hypothetical lepton-number-violating processes, such as H0 → tau+ mu-.
    • Branching ratios for most light hadrons, and the tau lepton, have been updated to agree with the 2012 Review of Particle Physics Ber12, by Anil Pratap Singh.
    • Photon radiation can now be included in leptonic two-body decays of hadrons by setting the new switch ParticleDecays:allowPhotonRadiation = on. The lower shower cutoff TimeShower:pTminChgL has been reduced so as to let the simulated photon spectrum extend to lower energies.
    • A new switch MultipartonInteractions:bSelScale has been introduced, to determine the relevant mass or pT scale of an event for the selection of impact parameter in the MPI framework. In spite of a changed default behaviour (the old being option 3), practical consequences are small for most processes.
    • The new UserHooks::retryPartonLevel() method can be overloaded, so that the same hard process is reused for a new try on the parton level, rather than being rejected completely. Thanks to Christian Bauer for suggestion.
    • A new method Event::undoDecay(int i) can be used to remove the daughters of a particle, and further descendents. Does not work for removing the daughters of a parton.
    • The interface to HepMC has been updated. In particular the support for old version has been removed, thereby allowing significant simplifications. The list of methods to set and get the behaviour of the conversion routine has also been updated. The set_event_scale method now stores the renormalization scale (rather than the pT stored previously). The examples main41, main42, main61, main62 and main84 have been updated accordingly.
    • Four new methods to interrogate the default values of the four different kinds of settings.
    • The Vec4 class has been expanded with methods to return true rapidity or pseudorapidity, and the R distance in (y, phi) or (eta, phi) cylindrical coordinates. Thanks to Andy Buckley.
    • The copy and = constructors of the Pythia class are made private so that compilers will block use of them. Thanks to Andy Buckley.
    • New option of the Pythia constructor, to omit the banner printout where necessary. Also new master switch Print:quiet to switch off most runtime program messages. Thanks to Andy Buckley.
    • Updates in the machinery that restores all affected values to their defaults before setting a new tune.
    • A new Vect class has been introduced for the Settings database. It can be used to store a vector of double-precision real values.
    • Three new groupings of existing QCD processes: SoftQCD:inelastic, HardQCD:hardccbar and HardQCD:hardbbbar.
    • New possibility to set the a and b parameters of the Lund fragmentation function separately for heavy flavour. Especially the b is expected to be universal, but Aurelien Martens and Eli Ben-Haim have found improved fits by relaxing this condition, so we formalize this possibility without recommeding it.
    • Method Pythia::getPDFPtr is made public so it can be used also outside the Pythia class to access PDF sets. Internally the PDF bookkeeping is modified to allow for the simultaneous handling of several PDF sets. Thanks to Mathias Ritzmann for providing code changes.
    • It is now possible to read the separate scale values of all outgoing particles, if this info is stored as a single line in an LHEF, begun by a single hashtag character. This is currently nonstandard and may evolve.
    • Some improvements to the install targets code in the Makefile and error detection in examples/configure. Thanks to Mikhail Kirsanov.
    • The CC and FC global environment variables can be set to specify the C++ and Fortran 77/90 compilers, otherwise set in configure and examples/configure. Thanks to Mikhail Kirsanov.
    • Check of shell choice in configure removed. Thanks to Andy Buckley.
    • Minor modifications in the Makefile and text for Root examples, relevant if shared libraries are used.
    • Previously the whole std namespace has been made available in PythiaStdlib.h. Now this behaviour has been replaced by the already-existing alternative, where only a part of std is made available, and only inside the Pythia8 namespace. Thus user code does not become reliant on the choices in PYTHIA. Some related smaller code rearrangements. Thanks to Andy Buckley.
    • When the "second hard" machinery is used to set two hard processes, the old behaviour for the SpaceShower:pTmaxMatch = 0 and TimeShower:pTmaxMatch = 0 options was to use the combined final state of the two processes to decide what pT_max scale to use. This could have unexpected consequences. Now each process is analyzed separately, and therefore has a separate scale. Also for MultipartonInteractions:pTmaxMatch = 0 the two interactions now are analyzed separately. It is then enough that one of them should limit pT_max of subsequent MPI's for such a restriction to be imposed. Thanks to Monika Jindal for discovering this bug.
    • The TimeShower:pTdampMatch option had no effect if switched on, since some code was missing. The manual description of it and the more relevant SpaceShower:pTdampMatch has been updated.
    • One minor bug fix and some corrections to make the code compile on Windows/VisualC++-2010. A simple error function parametrization has been added to PhaseSpace.h and SigmaTotal.h, to be uncommented in case erf(x) is not available by default. Thanks to Guy Barrand for providing the information.
    • Break a closed dependency loop between ParticleData.h and ResonanceWidths.h. Thanks to Andreas Schaelicke and Andy Buckley.
    • In the examples/mainXX.cc programs, class instances that have been created with a new are explicitly deleted at the end of the run. Useful if trying to track memory leaks.
    • Bug fix for R-parity violating decays of R-hadrons, to treat the special case of sequential resonance decays after the RPV one. Thanks to Mariangela Lisanti for pointing out this bug.
    • Changed the maximum allowed value for Tune:pp. Thanks to Yevgeny Kats.
    • Bug fix in the z-value weight for QED ISR emissions.
    • Some destructors moved for improved consistency.
    • Constants DEBUG renamed DBSUSY in the SusyCouplings and SusyResonanceWidths classes to avoid confusion. Thanks to Guy Barrand.
    • Many typos corrected and some other minor improvements of the online documentation.
    • The year has been updated to 2013 in files.

    8.176: 18 April 2013

    • Introduce weak shower, whereby W^+- and Z^0 gauge bosons can be produced interleaved with ordinary QCD and QED emissions. Currently only available for final-state radiation, and off by default, see Timelike Showers. A new status code 56 denotes W^+- and Z^0 gauge bosons produced by the FSR parton showers.
    • The gauge bosons produced by showers decay at the end of the parton-level step. New identity codes 93 for a Zcopy and 94 for a Wcopy can be used to set the decay modes of shower-produced gauge bosons separately from hard-process ones, but do not appear in event listings.
    • The Particle class has been updated with a pointer to the mother Event class, replacing the previous pointer to the ParticleData class. Thereby several old methods in the Event class can obtain new equivalents for the Particle one. That is, a call event.method(i) instead can be written event[i].method(). The duplicated methods are statusHepMC, iTopCopy, iBotCopy, iTopCopyId, iBotCopyId, motherList, daughterList, sisterList, isAncestor and undoDecay. Omitted is sisterListTopBot, while sisterList obtains an optional argument. A new method index is introduced. The now redundant Event class methods will be removed in PYTHIA version 8.2. Thanks to Andy Buckley for suggestion.
    • The initialization of SUSY couplings and particle data has been moved from the Pythia and ProcessLevel classes to a new dedicated SLHAinterface class.
    • Some SUSY 3-body decays have been implemented with Matrix Element weighting.
    • New method Info::scalup() returns the Les Houches SCALUP variable. This method is now used instead of QFac() in main31.cc, to set maximal scale for shower radiation in case that the event contains no POWHEG emission, and thereby sidesteps a potential bug when PDF information is provided in the Les Houches Event File. Also some default values have been changed in main31.cmnd. Thanks to James Monk.
    • New parameter LesHouches:mRecalculate can be used to prompt the recalculation of a particle mass from its four-momentum. This may be required for Les Houches input events where the nominal mass of the particle species is stored in the mass slot, rather than the actual mass of the current particle, as foreseen.
    • Extra checks that tracing of junctions in particular and partonic colour singlets in general are only performed when the event record contains coloured unhadronized partons. Thanks to James Catmore.
    • Minor correction related to GZIP support. Thanks to James Monk.
    • Recalculate the phase space of diffractive processes for each event when variable beam energies are allowed. Thanks to Oldrich Kepka for finding the bug.
    • Fix a bug whereby a gluon in diffractive systems would obtain a light-quark mass.
    • The Pythia::check() method can also check that each particle obeys E^2 - p^2 = m^2 (within numerical precision). Speed up the checks on mother-daughter history by streamlining the handling of simple cases.

    8.180: 20 September 2013

    • Nishita Desai joins as new author.
    • All the header files include/.h have been moved to include/Pythia8/.h to better comply with conventions in other libraries ( = generic name). Thus also all code lines #include ".h" that refer to PYTHIA files have been changed to #include "Pythia8/*.h". Thanks to Andy Buckley for suggestion.
    • The class that converts PYTHIA events to the HepMC format is renamed from I_Pythia8 to Pythia8ToHepMC, the files where the class resides from HepMCInterface.h/.cc to Pythia8ToHepMC.h/.cc, and the subdirectory of the .cc file from hepmcinterface to pythia8tohepmc. This clarifies the role of the class and avoids potential future name clashes with other interfaces. Makefiles and example main runs have been modified accordingly. Thanks to Andy Buckley.
    • The configure/Makefile step has been extended such that a bin/pythia8-config script is constructed, to simplify subsequent linking of PYTHIA 8 and other libraries to your main program. See the README file for further instructions, the new "Compling programs against PYTHIA 8" section. Thanks to Andy Buckley for code and text.
    • The "minbias" event class has been renamed into the (inelastic) "nondiffractive" one, since the "minbias" denomination should be reserved for an experimental procedure. Needless to say, also the separation into diffraction or not could be made by experimental procedures, but here it is more generally accepted that there is an underlying theoretical description that takes precedence in cases of conflict. Thus the SoftQCD:minBias flag has been remaned SoftQCD:nonDiffractive, and the Info::isMinBias() method has been renamed Info::isNonDiffractive(). The old names have been retained as alternatives for now. Thanks to Andy Buckley.
    • Four PDF sets have been added from the NNPDF2.3 QCD+QED family: the central sets for LO with alpha_s(M_Z) = 0.130, LO with alpha_s(M_Z) = 0.119, NLO with alpha_s(M_Z) = 0.119, and NNLO with alpha_s(M_Z) = 0.119. Thanks to Juan Rojo and Stefano Carrazza for providing the code.
    • The fjcore version 3.0.5 code from FastJet has been included with the PYTHIA distribution. SlowJet now by default becomes a front end to fjcore, but the old behaviour is retained as an option. The new approach is faster, but the older one still offers a few extra possibilities. Note that the new useFJcore argument to the SlowJet constructor has been included as a new last-but-one argument, since the last one is likely to be used much more infrequently and logically depends on the value set for useFJcore. Thanks to Matteo Cacciari, Gavin Salam and Gregory Soyez for making the fjcore code freely distributable.
    • New method constituents(i) in FastJet returns a vector with the indices of the particles belonging to the i'th jet.
    • The global recoil option for final-state showers has been extended with a few more options to improve possibility for matching to output from other programs, such as aMC@NLO.
    • Further extensions of the weak-showering machinery, but still experimental. Now also includes W/Z emission in the initial state.
    • Introduce new qqbar option for SigmaProcess::inFlux() and update documentation.
    • Improve the description of meMode for resonances and illustrate how to force specific Higgs branching ratios in main16.cmnd.
    • Added two previously missing SUSY processes for associated production of a gluino with a neutralino or chargino: SUSY:qqbar2chi0gluino and SUSY:qqbar2chi+-gluino, using the cross section expressions in Fuk11. Validated against PYTHIA 6 and XSUSY.
    • Added direct slepton production from q qbar annihilation, SUSY:qqbar2sleptonantislepton. Validated against PYTHIA 6.
    • Corrected some slepton and squark EW couplings in SusyCouplings.
    • Generalized the cross section formulae for SUSY:qg2squarkgluino to the case of non-minimal flavor violation, using the expressions in Fuk11. Validated against PYTHIA 6 and XSUSY. The new implementation is compatible with both SLHA2 and SLHA1, whereas the older was only compatible with SLHA1.
    • Generalized the cross section formulae for SUSY:qqbar2gluinogluino to the case of non-minimal flavour violation, using the expressions in Fuk11. (Also corrected a factor 2 in that paper on the color factor for st and su interference terms.) The new implementation is compatible with both SLHA2 and SLHA1, whereas the older was only compatible with SLHA1.
    • Changed the default meMode for SLHA DECAY modes to 100, to allow off-shell decays. Enabled the user to choose a different meMode if desired, via a new mode, SLHA:meMode. If values different from 100 are selected (e.g., 103), modes that are extremely far off shell (defined as needing a fluctuation of more than 100 times the root-sum-square of the widths of the mother and daughter particles) will still default back to 100, though the user may of course still switch them off if so desired. Added documentation about this in SusyLesHouchesAccord.xml. Deleted the parameter SLHA:minDecayDeltaM, which would prevent the possibility of off-shell decays unless set to a large negative value.
    • Added calculation of decay lengths to SLHA DECAY modes.
    • Updated documentation of SUSY processes and SLHA-related parameters. Additional reference to the new cross sections included in the bibliography.
    • Allow six-flavour running of alpha_s above the top threshold, and implement option with CMW rescaling of the Lambda values, for use in coherent showers.
    • The merging code has been updated, with corrected handling of massive partons. This amends problems in tt̄, and makes clusterings of massive emissions W, Z, ~g possible. The bookkeeping for the hard process has been upgraded to accommodate more general BSM processes. The treatment of incomplete histories has been upgraded, so that histories which allow for at least one clustering will be used in the unitarisation. Also, states that do not allow for any clustering will not be subject to the (internal, optional) cut on the input events any longer, to guarantee full phase space coverage. This is important for processes for which a non-negligible fraction of states lead to incomplete histories, e.g. tt̄W production. Further, functionality for reclustering FSR off SUSY particles has been added. A new setting allows more easily to switch between 4-flavour and 5-flavour merging schemes.
    • The main85.cc - main88.cc have obtained support for zipped LHE input files, and have nicer printing of the inclusive cross section at the end.
    • Introduced new mode LesHouches:setLifetime so that the lifetime information in Les Houches input can be replaced by the standard PYTHIA selection procedure. By default this is applied to tau leptons, since some matrix-element generators do not set this lifetime. Thanks to James Monk and Thorsten Kuhl.
    • A new examples/main46.cc illustrates how to write a ProMC file with PYTHIA events. Thanks to Sergei Chekanov.
    • The Vect class has been renamed PVec and a new MVec class has been introduced along the same lines, see the Settings database. They can be used to store a vector of double-precision real or integer values, respectively, i.e. of parms or modes, hence the names. Thanks to Abram Krislock.
    • Two new vectors of integers SUSY:idVecA and SUSY:idVecB have been introduced to allow a more flexible selection of final states in SUSY processes, see the SUSY process selection page. The selection machinery has been expanded to cope. Thanks to Abram Krislock.
    • New switch PartonLevel:earlyResDec to give first simple option where resonances are allowed ro decay before colour reconnection and beam remnants are added.
    • Renamed the mass(...) methods to mSel(...) in the Particle, ParticleData and ParticleDataEntry classes, to avoid users mistaking Particle::mass() for Particle::m().
    • Fixed a missing (unused) argument in some derived classes when the mRecalculate parameter was introduced in Les Houches code in version 8.176.
    • Removed several unused class variables from header files, based on new compiler information.
    • Fixed a bug in Sigma2ffbar2HposHneg, where int(...) was used instead of abs.(...). Thanks to Vittorio Zecca.
    • Fixed missing re-initialization of Breit-Wigner mass generation parameters for externally set new resonance widths. Thanks to Vittorio Zecca.
    • Fixed several places where division by zero or adressing of arrays out-of-bounds could occur. While some were trivial, others revealed underlying errors, notably in the handling of some SUSY processes and resonances. New checks against unphysical SLHA input have been implemented. Also some bug fixes in the new weak-shower ISR component, the sphericity analysis, the event undo-decay option, and more. Thanks to Vittorio Zecca.
    • Bug fix in the tau decay description for decay chains like H0 → A0 A0 → 4 tau, caused by an erroneous assignment of the number of spin states. Thanks to Brock Tweedie.
    • Add setting of some TimeShower variables that might remain uninitialized. Thanks to Christian Pulvermacher.
    • Extra check in TimeShower for incoming massive particles, where a recalculation of kinematics to an equivalent massless case could give a slightly negative effective dipole mass (with endpoint masses subtracted). Thanks to Paolo Torrielli.
    • Updated manual on how to implement new showers, mainly detailing new optional method arguments. Thanks to Mathias Ritzmann.
    • Corrected bug in SigmaSUSY which caused flavour violating slepton production (for R-parity conserving cases too).
    • Corrected bug in SusyCouplings where tan(beta) was not read from LHA file for RPV spectrum.
    • Modified the contact interaction term normalization of the f fbar → l lbar process to agree with the one used in PYTHIA 6. Documentation of the ContactInteractions:Lambda updated to reflect this. Thanks to Daniel Hayden.
    • Introduced copy constroctor for the Event class.
    • Reset the Higgs mass range when its mass is changed in examples/main14.cc.
    • Remove obsolete examples/main91.cc and associated Makefile code.
    • Catch cases where junction topologies are sent to the ministring machinery, which is not set up to handle it, and therefore could give segmentation faults. Very rare.

    8.183: 23 January 2014

    • A potentially severe bug has been found in version 8.180, in that by mistake the SpaceShower:vetoWeakJets, SpaceShower:dopTDampMass, TimeShower:dopTDampMass were given a default on value rather than off. Its main effect is to reduce the emission of two or more hard jets for processes 221 and 222, i.e. gamma^*/Z^0/W^+- production: implicitly it thereby also softens the pT spectrum of the gauge boson. Other processes should be unaffected.
    • The emission of W and Z weak gauge bosons in ISR and FSR parton showers is now fully implemented Chr14. Note extra optional arguments for a few TimeShower and SpaceShower methods.
    • The worksheet, intended to help beginners get going, has been updated and expanded. Notably with new exercises on CKKW-L merging and Higgs production and decay. Also some new comments on platform requirements and how to meet them. An examples/main80 program has been added for the merging exercise.
    • The LO PDF sets in the NNPDF2.3 QCD+QED family are now valid down to Q^2 = 1 GeV^2, the NLO and NNLO sets are positive definite, and all go down to x = 10^-9. Grid file names have been updated to agree with the LHAPDF ones. New main54.cc test program. Thanks to Juan Rojo and Stefano Carrazza for the updates.
    • Three new e^+e^- tunes to some LEP data, one by Peter Skands and two by Nadine Fischer. Also the more comprehensive Monash 2013 tune Ska14, which covers both e^+e^- and pp/pbarp data.
    • Some moderate changes in the merging machinery, as follows. Added the D-parameter of the kT measure as an input. Added flag to not remove states with incomplete histories from NLO input (normally, these are taken from tree-level samples instead). This is necessary for a correct treatment of inputs with "diagram subtraction", as is e.g. needed for the definition of p p → tW. Updated the bookkeeping of the hard process in the merging again, so that the "hard process candidates" are not switched around too often. Updated the main files with proper header for the standard access( string, F_OK) function.
    • Changed status code for partons in the hardest interaction of the SoftQCD processes, from being in the 30'ies range to being in the 20'ies range. Thus a nondiffractive event is always set to have one 20'ies hard interaction. Diffractive events can have zero, one or two hard interactions, the latter possible only for double diffraction. A low-mass diffractive system need not contain any perturbative interaction, but a nonperturbatively kicked-out quark or gluon is defined by the new 24 status code.
    • New flag HiggsSM:NLOWidths, on by default, enables rescaling of the internal PYTHIA partial widths of the SM Higgs to the values recommended by the LHCXSWG.
    • New possibility to pick a fixed factorization scale for ISR (and also for FSR) for debug purposes.
    • New processes for s-channel exchange of a gamma^*/Z^0 or W^+-, written as 2 → 2 processes, whereas the already existing processes separate production and decay of a resonance.
    • New parameter StringZ:aExtraSQuark allows an optional softening in hadronization for strange quarks.
    • New method vector<int> Info::codesHard() returns a vector of the hard-process codes set up for current run.
    • New optional extra argument for the Hist::table methods allow output of underflow and overflow. Thanks to Mathias Ritzmann.
    • Two extra safety checks for the Event class. Thanks to Mathias Ritzmann.
    • Allow a leptoquark also to couple to the top quark. Thanks to Katherine Leney.
    • Updated problematic return statement in JetMatching.h. Thanks to Simon de Visscher.
    • New addresses for Nishita Desai and Philip Ilten.
    • Changes in TimeShower, (Susy)ResonanceWidths, SigmaProcess and other classes to avoid undefined variables. Thanks to Vittorio Zecca.
    • Major cleanup of code and documentation files: replace tabs, remove blank characters at the end of code lines, keep one blank character at the end of documentation lines, restrict to a maximum of 79 characters per line wherever feasible, and update year to 2014.

    8.185: 15 March 2014

    • Bug found in the handling of ISR in diffractive systems, whereby the maximal scale of shower emissions was set to the mass of the diffractive system, rather than the pT of the hardest interaction. This bug was introduced in version 8.183, when the status code of the hardest MPI was changed, and notably gave too many high-pT particles, and also a bit too high multiplicity. In versions up to and including 8.180, instead the pT of the second MPI was not strictly limited by the pT of the first, which also gave an overestimate, but smaller.
    • Added the FxFx matching and shower-kT matching schemes as new options, see Jet Matching. Still under validation, though. Part of the new code is contributed by Simon de Visscher.
    • A number of minor improvements of the merging machineries for increased flexibility, including removed hardcoded maximum number of jets, updated bookkeeping to allow for a event-by-event definition of the hard process for merging, removed incomplete histories warning, small change in mass treatment for reclustering, and more. Also removed internal setting of K factors for main88.cc.
    • New documentation on the POWHEG Merging implemented in examples/main31.cc.
    • Higgs particle names (re)simplified to MSSM standard. New SLHAInterface code added to reset the names appropriately (SLHA2 conventions) when in the NMSSM, CPV or RPV scenarios. PDG codes 45 and 46 reserved as placeholders for further Higgs states.
    • SUSY decay channels now have meMode = 0, except those to Gravitinos, for which no code has been implemented (they stay 103). By default, the width of SUSY particles is formally set to 1.0, but all decay channels start out with zero branching fractions. The proper BRs should then be calculated by PYTHIA, and/or read in via SLHA decay tables, and/or set by hand by the user.
    • Expanded SLHA input support for NMSSM type models, plus a few further minor SUSY improvements and fixes.
    • Significant extensions to the charmonium and bottomonium machineries, as follows.
      Many more colour-octet states, according to a new labelling convention 9 9 n_Q n_state n_r n_L n_J, where n_Q is the flavour of the state (4 or 5), n_state is 0 for 3S1, 1 for 1S0 and 2 for 3PJ states, while n_r, n_L and n_J are the same as in the PDG convention. They are assigned masses 10 MeV above the respective colour singlet state.
      Data on processes which only differ by the radial excitation number n_r are grouped into vectors for on/off switches and long-dinstance matrix elements, but share the same process code and short-distance matrix elements. This grouping involves some upgrades to the cross section bookkeeping machinery.
      Matrix elements for 3DJ processes are now implemented.
      The mass splitting between all colour octet and singlet state pairs can be set by one common parameter.
    • Introduce new switch TimeShower:weightGluonToQuark that allows a few alternative approaches to set the g → q qbar branching rate, notably for heavy quarks, and similarly for gamma → f fbar. Associated scale-setting freedom regulated by new TimeShower:scaleGluonToQuark parameter.
    • New/improved capabilities to accept LesHouches input of events without any incoming beams, e.g. for resonances with decay chains, where PYTHIA should add showers and hadronization, see Les Houches Accord and Hadron-Level Standalone. The Standalone:allowResDec switch is removed and its functionality largely taken over by the ProcessLevel:resonanceDecays one.
    • New possibility to comment out a section of lines in a command file, when read in by Pythia::readFile(...). The first line of the commented section should begin by / and the last begin by /. Best is to keep them on separate lines, optionally followed by comments, but no commands.
    • A new FVec class has been introduced to store a vector of flags, see the Settings database.
    • Minor update in configure to be used by pythia8-config. Thanks to Andy Buckley.
    • Minor update in the configure options for FastJet.
    • Minor update of the Monash 2013 tune.
    • In the joining of nearby partons, q + g → q , in preparation of the hadronization step, it is ensured that the quark mother is listed as mother1(), even when this is not the order of the mothers in the event record.
    • The histogram table printing routines have acquired a new argument that allows the x value at the beginning of each bin to be printed, instead of the midpoint one.
    • Implement (some of the) functionality of the doForceWidth switch for resonances, that has been missing so far, and improve the documentation thereof. Thanks to Xiaohu Sun.
    • Update some of the hadron-level code to handle several junction-antijunction topologies in a single event.
    • Bug fix for MPI's with an x-dependent impact parameter profile (bProfile = 4) and the factorization scale of a hard process as the maximal scale (pTmaxMatch = 1), that this maximum was not respected, so that an MPI could be harder than the hard process.
      Thanks to Stefano Camarda.
    • A few minor bug fixes in the new weak-shower machinery.
    • Minor fix in the setting of the pointer of a particle data entry to the full particle data table.
    • Some other minor fixes.

    8.186: 8 July 2014

    • A new user hook to help experimentation with colour reconnection, in particular in relation to resonance decays.
    • New set of parameters StringFlav:probQQ1toQQ0join, used to pick diquark spin when two already produced quarks are to be joined into a diquark.
    • Possibility to map the bookkeeping of exotic unresolved incoming beams in Les Houches event files onto neutrino beams, see LesHouches:idRenameBeams. Primarily intended for dark matter annihilation. Thanks to Leila Ali Cavasonza and Jiang-Hao Yu.
    • A correction to the graviton (G^) + parton hard processes (5003-5005) to account for off-shell G^ production. The previous formula assumed the graviton was on-shell and could greatly overestimate the low-mass tail of the G^*.
    • Bug fixes in examples/JetMatching.h, for uninitialized boolean, and number of partons to match for heavy flavour handling. The former bug was introduced with the new matching schemes in version 8.185 and affected matching to ALPGEN, since no events were rejected. Thanks to Chris Brust.
    • Differentiate the reading of ALPGEN masses, so that vanishing c or b masses in ALPGEN are not unwittingly used where inappropriate. Also protect the c and b masses from being set too low in TimeShower and SpaceShower, so that flavour thresholds are not messed up.
    • Reduce number of maximum violation warnings in SpaceShower by leaving some headroom for branching weights.
    • Bug fix that hasVetoed in Pythia.cc was not reset correctly in some specific cases. Thanks to Christian Bauer and Calvin Berggren.
    • Bug fix in PartonLevel.cc where a reference could become invalid. Thanks to Thomas Rössler.
    • Improvements and bug fixes in junction handling.
    • Bug fix to not reuse colour indices in double diffraction.
    • Bug fix in the calculation of the average mass threshold of open decay channels of a resonance. Reduced ResonanceWidths::MASSMIN parameter value.
    • Correct typo in left-right symmetry documentation. Thanks to Nady Bakhet.
    • Some other minor fixes. Thanks to Pere Mato for two of them.