Beam Parameters
- Incoming beams
- Variable collision energy and particle type
- Beam momentum spread
- Beam interaction vertex
The settings on this page relate to the beam identities and energies,
to a beam momentum spread and to a beam interaction spot.
As always, momenta and energies are to be given in units of GeV,
and of space and time in mm.
Incoming beams
The identities and energies of the two incoming beam particles
should be specified using the settings in this section.
Note that, if nothing is done, you will default to LHC at 14 TeV.
Currently the beam particles must be either a hadron pair, a lepton
pair, a photon pair, a lepton and a hadron or a photon and a hadron.
In the first category p p and pbar p
combinations dominate, but it is also possible to combine with
pi^+, pi^- and pi^0. In the second
e^+ e^- and mu^+ mu^- would be the most useful
combinations, but also others should work if combined with an
appropriate hard process.
mode
Beams:idA
(default = 2212
)
The PDG id
code for the first incoming particle.
Allowed codes include
2212 = p, -2212 = pbar,
2112 = n, -2112 = nbar,
211 = pi^+, -211 = pi^-, 111 = pi^0,
990 = Pomeron (used in diffractive machinery;
here mainly for debug purposes),
22 = gamma (for gamma-gamma and gamma-hadron
interactions, more info here),
11 = e^-, -11 = e^+,
13 = mu^-, -13 = mu^+,
and a few more leptons/neutrinos in a few combinations.
Recently heavy-ion collisions have
been implemented in PYTHIA. Therefore a handful of nuclei have been
added as allowed incoming beams, using PDG codes of the format
100ZZZAAAI
:
1000020040 = 4He , 1000030060 = 6Li,
1000060120 = 12C, 1000080160 = 16O,
1000290630 = 63Cu, 1000791970 = 197Au, and
1000822080 = 208Pb. More can be added using the function
ParticleData::addParticle
.
mode
Beams:idB
(default = 2212
)
The PDG id
code for the second incoming particle.
mode
Beams:frameType
(default = 1
; minimum = 1
; maximum = 5
)
Choice of frame for the two colliding particles. For options
1 - 3 the beam identities are specified above, while they are
obtained by the Les Houches information for options 4 and 5.
option
1 : the beams are colliding in their CM frame,
and therefore only the CM energy needs to be provided, see
Beams:eCM
below.
option
2 : the beams are back-to-back, but with different energies,
see Beams:eA
and Beams:eB
below.
This option could also be used for fixed-target configurations.
option
3 : the beams are not back-to-back, and therefore the
three-momentum of each incoming particle needs to be specified, see
Beams:pxA
through Beams:pzB
below.
option
4 : the beam and event information is stored in a
Les Houches Event File,
see Beams:LHEF
below.
option
5 : the beam and event information is obtained by a
pointer to an LHAup
class instance.
parm
Beams:eCM
(default = 14000.
; minimum = 0.
)
Collision CM energy, to be set if Beams:frameType
= 1.
parm
Beams:eA
(default = 7000.
; minimum = 0.
)
The energy of the first incoming particle, moving in the
+z direction, to be set if Beams:frameType
= 2.
If the particle energy is smaller than its mass
it is assumed to be at rest.
parm
Beams:eB
(default = 7000.
; minimum = 0.
)
The energy of the second incoming particle, moving in the
-z direction, to be set if Beams:frameType
= 2.
If the particle energy is smaller than its mass
it is assumed to be at rest.
parm
Beams:pxA
(default = 0.
)
The p_x component of the first incoming particle,
to be set if Beams:frameType
= 3.
parm
Beams:pyA
(default = 0.
)
The p_y component of the first incoming particle,
to be set if Beams:frameType
= 3.
parm
Beams:pzA
(default = 7000.
)
The p_z component of the first incoming particle,
to be set if Beams:frameType
= 3.
parm
Beams:pxB
(default = 0.
)
The p_x component of the second incoming particle,
to be set if Beams:frameType
= 3.
parm
Beams:pyB
(default = 0.
)
The p_y component of the second incoming particle,
to be set if Beams:frameType
= 3.
parm
Beams:pzB
(default = -7000.
)
The p_z component of the second incoming particle,
to be set if Beams:frameType
= 3.
word
Beams:LHEF
(default = void
)
The name of a Les Houches Event File,
to be set if Beams:frameType
= 4.
word
Beams:LHEFheader
(default = void
)
As some information in a Les Houches Event File init block is only known
at the end of generation, some programs choose to output this as a
separate file. If Beams:LHEFheader
is given, information up
till the end of the init block is read from this file, with
the events themselves read as usual from the file given in
Beams:LHEF
.
flag
Beams:newLHEFsameInit
(default = off
)
Allow to begin reading events from a new LHEF or or a new
LHAup
instance without a completely new initialization.
Only useful when Beams:frameType
= 4 or 5.
flag
Beams:readLHEFheaders
(default = on
)
Read in LHEF header blocks and store them in the
Info class. See also
LHAupLHEF
and the Les Houches Event files
section for more information.
mode
Beams:nSkipLHEFatInit
(default = 0
)
Skip the first nSkip events of the input stream
(cf. the LHAup::skipEvent(nSkip)
method).
Only used when Beams:frameType
= 4 or 5.
flag
Beams:strictLHEFscale
(default = off
)
Always use the SCALUP
value read from LHEF
as production scale for particles, also including particles
coming from resonance decays. By default, the production scale
of resonance decay products (W-, Z-, H-bosons, top quarks) will
be set to M/2, where M is the mass of the resonance.
flag
Beams:setProductionScalesFromLHEF
(default = off
)
If enabled, production scales for all particles in an input Les Houches
event will be set by using auxiliary information provided in the
input event. Depending on which LHEF version is used, different
information will be read. For LHEF 1.0, scale information can be
transferred by including a line starting with the hashtag
(#) character at the end of the event. The hashtag should be
followed by the sequential scale values of the particles with status 1.
For LHEF 3.0, the standardised <scales> tag is used
instead. In this case, please ensure that production scale of
the final state particle with position i in the input event
will be transferred as the value of a scales tag attribute which contains
i at the end of the attribute name, separated from the rest of
the name by an underscore (_). An example <scales> tag
would be <scales muf="100" pt_start_3="100" pt_start_4="50">
</scales>. This could be used to set the production scales
of particles three and four to 100 GeV and 50 GeV, respectively, provided
that these particles have status 1.
flag
Beams:setDipoleShowerStartingScalesFromLHEF
(default = off
)
If enabled, the parton shower starting scales for emissions of
individual radiator-recoiler pairs in the final-state showers will be
set by auxiliary informaton provided in an input Les Houches
event. This settings relies on the use of LHEF 3.0, and the existence
of the <scales> tag for each event. It is assumed that
the <scales> tag contains multiple attributes with
names scalup_r_s
, where r
gives the position
of the radiating particle, and s
determines the position
of the recoiling particle, and where r, s
may range from
zero to the sum of initial and final-state particles.
Variable collision energy and particle type
There are two different machineries that can provide an event-by-event
spread of collision energies. The one in this section is intended
to allow for very large variations in collision energy, more-or-less
from threshold to the highest LHC/FCC/cosmic-ray energies. This is made
possible by interpolation in a grid of CM energies. Such a strategy
requires the processes to have a smooth and well-understood energy
dependence. In practice this limits us to the soft QCD processes
betweeen two incoming hadrons. Thus the framework is convenient e.g.
for studies of cosmic-ray cascades, or for secondary collisions in
general.
The core extension in this option is that the multiparticle interactions
(MPI) machinery is initialized over a (logarithmically spaced) grid of
collision energies, from the maximal energy provided at the
initialization down to a lower cutoff (see eMinPert
below).
For each new event, with a new CM energy, a suitable interpolation is
then performed among the generation coefficients determined at
initialization. The MPI framework is what is needed to simulate
hadronic nondiffractive events (SoftQCD:nonDiffractive
).
Pretty much the same strategy is already used for diffraction, to handle
MPIs inside the variable-mass diffractive systems. Thus all the
Soft QCD processes can be used
within this framework. Below the minimal energy for a perturbative
description (see below) instead the simplified
Low-energy QCD processes
can be used. It is not possible to generate other processes
with the variable-energy framework, however, and the program will abort
if you try.
The initialization involves setting up optimal coefficients for
the kinematics selection in the subsequent MPI generation, and
finding the associated maximum of the differentialcross section.
At a fixed energy this typically takes less than a second, and so
normally is not noticeable.It is a major fraction of the full PYTHIA
initialization time, however. Thus the initialization over a grid of
energies raises the total initialization time appreciable, to the order
of ten seconds. Initialization of diffraction contributes comparable
numbers, when switched on. You should therefore not be surprised that
the startup time is longer than usual. The subsequent event generation
should not become noticeably slower, however.
There are three main settings in this framework.
flag
Beams:allowVariableEnergy
(default = off
)
Master switch to allow collision energies below the initialization one,
as described above.
parm
Beams:eMinPert
(default = 10.
; minimum = 10.
)
The lowest CM energy that collisions are allowed to have. The highest
is set by the full energy at initialization, as calculated in the
respective options above. If you do not want to generate events with
a higher collision energy than this you can save some initialization
time by raising this number accordingly, so that fewer grid energies need
to be used. You should not lower the value below the default one, however,
since the perturbative MPI machinery cannot be made to work at lower
energies. If you do want to generate events with lower energies, it
is possible in a nonperturbative framework, see next.
parm
Beams:eWidthPert
(default = 10.
; minimum = 1.
)
A simpler low-mass description can be used for energies below the
threshold energy e_min = eMinPert
above, with
only longitudinally stretched strings. A gradual switch-over between
the simple low-energy and perturbative high-energy regimes is then
natural. The probability for the latter picture is parametrized as
P_pert = 1 - exp( (e_CM - e_min) / e_width )
which vanishes for the CM energy e_CM < e_min, and is
1 - 1/e = 0.632 for e_CM = e_min + e_width.
The current parameter is this e_width.
When variable energy is enabled, the setKinematics
methods
can be used to change the beam energies. The method used must match the frame
type as specified by Beams:frameType
.
There is also a limited support for changing beam particles using the
setBeamIDs
method. Using this method, idA
can
be changed to any hadron, while idB
must be a proton or a
neutron when using this feature. This is useful for example in
hadronic cascades in a medium. It is here assumed that only
the SoftQCD
(and LowEnergyQCD
if relevant)
hadron-nucleon processes are being used.
In order to change idA
with any of the next
methods above, the beam configuration requires
additional setup. To limit the risks of inadvertent use, you need to
initialize with Beams:allowIDAswitch = on
. The
functionality of MultipartonInteractions:setAntiSame = true
is used automatically to limit the number of cases to handle.
flag
Beams:allowIDAswitch
(default = off
)
Switch to initialize for a range of possible projectile hadrons, to
hit a target of protons and neutrons.
mvec
Beams:idAList
(default = {2212,211,311,221,331,333,411,431, 443,511,531,541,553,3212,3312,3334,4112,4312,4332,5112,5312,5332}
)
A list of beam particles that are enabled when
Beams:allowIDAswitch
is turned on. Particles with the same
flavour content as hadrons on this list are included automatically. In the
current version, some initialization may be performed for all particles, even
if they are omitted from the list.
Beam momentum spread
This framework currently is intended for a modest beam spread, such as
experienced at hadron colliders. Thus it can be safely assumed that the
physics does not change over the CM energy range probed, so that the
parameters of the physics initialization at the nominal energy can be
used as is. Therefore it can be used for all processes implemented in
PYTHIA. It can not be used for the more extensive energy spread,
however, e.g. as expected at linear e^+ e^- colliders. Also,
any attempt to combine it with external Les Houches input of
parton-level events is at own risk. This option cannot be combined with
the variable-collision-energy option above, but will be switced off in
such a case.
On this page you can set the momentum spread according to a simple
Gaussian distribution. If you instead want a more sophisticated
parametrization, you can write and link your own
BeamShape
class.
flag
Beams:allowMomentumSpread
(default = off
)
Allow the beam momenta to be smeared around their initialization
nominal values.
parm
Beams:sigmaPxA
(default = 0.
; minimum = 0.
)
The width of a Gaussian distribution of the p_x spread of the
first incoming particle.
parm
Beams:sigmaPyA
(default = 0.
; minimum = 0.
)
The width of a Gaussian distribution of the p_y spread of the
first incoming particle.
parm
Beams:sigmaPzA
(default = 0.
; minimum = 0.
)
The width of a Gaussian distribution of the p_z spread of the
first incoming particle.
parm
Beams:maxDevA
(default = 5.
; minimum = 0.
)
The triply Gaussian distribution (p_x, p_y, p_z) is restricted to
a maximal total deviation from the nominal values (p_x0, p_y0, p_z0)
for the first incoming particle, like
(p_x - p_x0)^2/sigma_px^2 + (p_y - p_y0)^2/sigma_py^2 +
(p_z - p_z0)^2/sigma_pz^2 < maxDev^2
(Note the absence of a factor 2 in the denominator, unlike the Gaussians
used to pick (p_x, p_y, p_z).)
parm
Beams:sigmaPxB
(default = 0.
; minimum = 0.
)
The width of a Gaussian distribution of the p_x spread of the
second incoming particle.
parm
Beams:sigmaPyB
(default = 0.
; minimum = 0.
)
The width of a Gaussian distribution of the p_y spread of the
second incoming particle.
parm
Beams:sigmaPzB
(default = 0.
; minimum = 0.
)
The width of a Gaussian distribution of the p_z spread of the
second incoming particle.
parm
Beams:maxDevB
(default = 5.
; minimum = 0.
)
The triply Gaussian distribution (p_x, p_y, p_z) is restricted to
a maximal total deviation from the nominal values (p_x0, p_y0, p_z0),
for the second incoming particle, like
(p_x - p_x0)^2/sigma_px^2 + (p_y - p_y0)^2/sigma_py^2 +
(p_z - p_z0)^2/sigma_pz^2 < maxDev^2
(Note the absence of a factor 2 in the denominator, unlike the Gaussians
used to pick (p_x, p_y, p_z).)
Beam interaction vertex
On this page you can set the spread of the interaction vertex according to
a simple Gaussian distribution. If you instead want a more sophisticated
parametrization, you can write and link your own
BeamShape
class.
flag
Beams:allowVertexSpread
(default = off
)
Allow the interaction vertex of the two colliding beams to be smeared.
If off, then the vertex is set to be the origin.
parm
Beams:sigmaVertexX
(default = 0.
; minimum = 0.
)
The width of a Gaussian distribution of the x location of the
interaction vertex.
parm
Beams:sigmaVertexY
(default = 0.
; minimum = 0.
)
The width of a Gaussian distribution of the y location of the
interaction vertex.
parm
Beams:sigmaVertexZ
(default = 0.
; minimum = 0.
)
The width of a Gaussian distribution of the z location of the
interaction vertex.
parm
Beams:maxDevVertex
(default = 5.
; minimum = 0.
)
The triply Gaussian distribution of interaction vertex position
(x, y, z) is restricted to a maximal total deviation from the
origin, like
x^2/sigma_x^2 + y^2/sigma_y^2 + z^2/sigma_z^2 < maxDevVertex^2
(Note the absence of a factor 2 in the denominator, unlike the Gaussians
used to pick (x, y, z).)
parm
Beams:sigmaTime
(default = 0.
; minimum = 0.
)
The width of a Gaussian distribution of the collision time (in units of
mm/c). Note that, if the above space parametrization is viewed as the
effect of two incoming beams along the +-z axis, with each beam
having a Gaussian spread, then the spread of the time would also become
a Gaussian with the same width as the z one (times the
velocity of the beams, which we expect is close to unity). For flexibility
we have not enforced any such relation, however.
parm
Beams:maxDevTime
(default = 5.
; minimum = 0.
)
The collision time is restricted to be in the range
|t| < sigma_t * maxDevTime.
The distributions above are all centered at the origin. It is also
possible to shift the above distributions to be centered around another
nominal position. You must have Beams:allowVertexSpread = on
to use this possibility.
parm
Beams:offsetVertexX
(default = 0.
)
The x location of the interaction vertex is centered at this value.
parm
Beams:offsetVertexY
(default = 0.
)
The y location of the interaction vertex is centered at this value.
parm
Beams:offsetVertexZ
(default = 0.
)
The z location of the interaction vertex is centered at this value.
parm
Beams:offsetTime
(default = 0.
)
The time t of the interaction vertex is centered at this value.