## 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, haa 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 ben 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 paticles 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 ou 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 timlike-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 fles, 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 faciliy 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 caclulation 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 nonero 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 [Ilt11]. 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 adjustible 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 fortcoming 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
  StefanPrestel 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 uopdated 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-hadroms), 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 radition 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.