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.
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 modelled.
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 promt 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.