## Update History

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.

### Main news by version

- 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`, `SpaceShowe`r 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 `BLOCK`s are now stored internally as strings, regardless of whether they correspond to "official" SLHA blocks or not. Their contents can subsequently be queried by a set of new templated member functions of the 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
  <ii>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 `Makefile`s. Unless explicitly enabled, it should not affect anything. If enabled, it relies on the Boost and zlib libraries to function, so paths to these must be set appropriately, see 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 `delete`d at the end of the run. Useful if trying to track memory leaks.
  - Bug fix for R-parity violating decays of R-hadrons, to treat the special case of sequential resonance decays after the RPV one. Thanks to Mariangela Lisanti for pointing out this bug.
  - Changed the maximum allowed value for `Tune:pp`. Thanks to Yevgeny Kats.
  - Bug fix in the z-value weight for QED ISR emissions.
  - Some destructors moved for improved consistency.
  - Constants `DEBUG` 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: 22 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.