PDF Selection

  1. Parton densities for protons
  2. Parton densities for protons in the hard process
  3. Nuclear modifications of parton densities
  4. Parton densities for pions
  5. Parton densities for Pomerons
  6. Parton densities for photons
  7. Parton densities for leptons
  8. Photon fluxes
  9. Incoming parton selection
This page contains several subsections. The first deals with how to pick the parton distribution set for protons, including from LHAPDF, to be used for all proton and antiproton beams. The second is a special option that allows a separate PDF set to be used for the hard process only, while the first choice would still apply to everything else. The third introduces the possibility of nuclear modifications. Further sections give access to pion, Pomeron and photon PDF's, respectively, the second being used to describe diffractive systems. Towards the end comes the possibility to switch off the lepton "parton density", and photons from lepton beams. More information on PDF classes is found here.

flag  PDF:extrapolate   (default = off)
Allow PDF sets to be extrapolated to small x values, instead of being frozen at x_min. This is a global flag that affects all PDF sets used, whenever extrapolation has been implemented. Among internal PDFs, all Pomeron sets are affected by this flag, as are the CTEQ6/CT09 proton ones, the NNPDF 3.1 ones and others accessed by the LHAGrid1 approach. For the rest some by default extrapolate to small x (GRV 94 L, MRST/MSTW) while others are frozen at the border (CTEQ 5 L, NNPDF 2.3). When in doubt, check whether and how the behaviour depends on the choice made for your region of interest. When LHAPDF (5 or 6) is used, the extrapolation switch is set according to the choice here, and the behaviour is according to the rules of the respective program.
To put the issue in context, parton densities have a guaranteed range of validity in x and Q^2, and what should be done beyond that range usually is not explained by the authors of PDF sets. Nevertheless these boundaries very often are exceeded, e.g. minimum-bias studies at LHC may sample x values down to 10^-8, while many PDF sets stop already at 10^-5. The default behaviour is then that the PDF's are frozen at the boundary, i.e. xf(x,Q^2) is fixed at its value at x_min for all values x < x_min, and so on. This is a conservative approach. Alternatively, if you switch on extrapolation, then parametrizations will be extended beyond the boundaries, by some prescription. In some cases this will provide a more realistic answer, in others complete rubbish. Another problem is that some of the PDF-set codes will write a warning message anytime the limits are exceeded, thus swamping your output file. Therefore you should study a set seriously before you run it with this switch on.
Warning:It has been found out that the LHAPDF program by default uses a damping of PDFs at low Q scales, below Q_min, based on an anomalous dimension ansatz. This overlaps with the damping imposed in the MPI framework by the p_T0 parameter, and to have both would probably imply doublecounting of effects. Therefore, as of version 8.227, PDFs are frozen below Q_min. This change affects the LHAPDF 5 interface. The native LHAPDF 6 interface already contained this restriction, as does the PDFs that come with PYTHIA. Also limits at Q_max and x_max are checked and PDFs frozen outside them, so the extrapolate option now is strictly a choice of low-x behaviour.

Parton densities for protons

PYTHIA comes with a reasonably complete list of recent LO fits built-in, both ones within the normal LO context and ones with modifications for better matching to event generators. In addition two older sets are included for backwards reference (most studies to date are based on CTEQ 5L). Therefore there is no real need to link any external PDF sets.

If the internal PDF sets are not sufficient, the LHAPDF library [Wha05,Buc15] gives you access to a much wider selection.
Warning 1: owing to previous problems with the behaviour of PDF's beyond the x and Q^2 boundaries of a set, you should only use LHAPDF version 5.3.0 or later.
Warning 2: the behaviour of the LHAPDF sets need not be identical with the implementation found in PYTHIA. Specifically we are aware of the following points that may influence a comparison.
(a) CTEQ 5L in PYTHIA is the parametrization, in LHAPDF the grid interpolation.
(b) MRST LO* and LO** in PYTHIA is based on an updated edition, where one makes use of the expanded MSTW grid format, while LHAPDF is based on the original smaller grid.
(c) The CTEQ 6 and CT09MC sets in PYTHIA are frozen at the boundaries of the grid, by recommendation of the authors, while LHAPDF also offers an option with a smooth extrapolation outside the grid boundaries.

If you do not want to install LHAPDF, it is possible to use LHAPDF6 data grids natively in PYTHIA. This is based on a simplified implementation of interpolation in a .dat "lhagrid1" file, and so does not give fully identical results, and also is not foolproof.

The selection of parton densities is made once and then is propagated through the program. It is essential to make an informed choice, for several reasons [Kas10]:
Warning 1: the choice of PDF set affects a number of properties of events. A change of PDF therefore requires a complete retuning e.g. of the multiparton-interactions model for minimum-bias and underlying events. Conversely, the pp physics tunes are all made for a specific PDF tune, and the chosen (or default) tune will therefore overwrite the PDF:pSet default value described below. If you want to set PDF:pSet differently it should be done after the Tune:pp value, if any, has been set.
Warning 2: People often underestimate the differences between different sets on the market. The sets for the same order are constructed to behave more or less similarly at large x and Q^2, while the multiparton interactions are dominated by the behaviour in the region of small x and Q^2. A good PDF parametrization ought to be sensible down to x = 10^-6 (x = 10^-7) and Q^2 = 1 GeV^2 for Tevatron (LHC) applications. Unfortunately there are distributions on the market that completely derail in that region. The main51.cc and main52.cc programs in the examples subdirectory provide some examples of absolutely minimal sanity checks before a new PDF set is put in production.
Warning 3: NLO and LO sets tend to have quite different behaviours, e.g. NLO ones have less gluons at small x, which then is compensated by positive corrections in the NLO matrix elements. Therefore do not blindly assume that an NLO tune has to be better than an LO one when combined with the LO matrix elements in PYTHIA. There are explicit examples where such thinking can lead you down the wrong alley, especially if you study low-pT physics. A longer discussion on this point can be found in this note. In the list below you should therefore be extra cautious when using set 6 or set 9.

word  PDF:pSet   (default = 13)
Parton densities to be used for proton beams (and, by implication, antiproton ones). Note that the choice of a string input (rather than e.g. an integer) allows to pick either an internal, LHAPDF5 or LHAPDF6 set in one single setting, by some behind-the-scenes machinations.
option 1 : GRV 94L, LO alpha_s(M_Z) = 0.128 (this set is out of date, but retained for historical comparisons).
option 2 : CTEQ 5L, LO alpha_s(M_Z) = 0.127 (this set is also out of date, but not badly so, and many tunes are based on it).
option 3 : MRST LO* (2007), NLO alpha_s(M_Z) = 0.12032.
option 4 : MRST LO** (2008), NLO alpha_s(M_Z) = 0.11517.
option 5 : MSTW 2008 LO (central member), LO alpha_s(M_Z) = 0.13939.
option 6 : MSTW 2008 NLO (central member), NLO alpha_s(M_Z) = 0.12018 (NLO, see Warning 3 above).
option 7 : CTEQ6L, NLO alpha_s(M_Z) = 0.1180.
option 8 : CTEQ6L1, LO alpha_s(M_Z) = 0.1298.
option 9 : CTEQ66.00 (NLO, central member), NLO alpha_s(M_Z) = 0.1180 (NLO, see Warning 3 above).
option 10 : CT09MC1, LO alpha_s(M_Z) = 0.1300.
option 11 : CT09MC2, NLO alpha_s(M_Z) = 0.1180.
option 12 : CT09MCS, NLO alpha_s(M_Z) = 0.1180.
option 13 : NNPDF2.3 QCD+QED LO alpha_s(M_Z) = 0.130.
option 14 : NNPDF2.3 QCD+QED LO alpha_s(M_Z) = 0.119.
option 15 : NNPDF2.3 QCD+QED NLO alpha_s(M_Z) = 0.119.
option 16 : NNPDF2.3 QCD+QED NNLO alpha_s(M_Z) = 0.119.
Warning :the following four NNPDF 3.1 sets are quite different from the NNPDF 2.3 ones, and cannot be used interchangeably, but need retuning of the MPI framework. Some also do not contain QED evolution.
option 17 : NNPDF3.1 QCD LO alpha_s(M_Z) = 0.130.
option 18 : NNPDF3.1 QCD LO alpha_s(M_Z) = 0.118.
option 19 : NNPDF3.1 QCD+LUXQED NLO alpha_s(M_Z) = 0.118.
option 20 : NNPDF3.1 QCD+LUXQED NNLO alpha_s(M_Z) = 0.118.
option 21 : NNPDF3.1sx+LHCb NLO+NLLx LUXQED alpha_s(M_Z) = 0.118 [Ber18]. While at NLO, the additional small-x resummation, anchored by LHC-b data, offers a more reasonable small-x behaviour than most NLO PDFs, as required for the successful usage e.g. with traditional "improved LL" parton showers. The photon part is unchanged from the earlier NNPDF 3.1 QED analysis [Ber17].
Warning :in version 8.235 the 21 identifier was used to denote and earlier attempt to obtain a more reasonable small-x behaviour. This PDF set is superseded by the new 21 and 22 sets, and has been removed, as was forewarned.
option 22 : NNPDF3.1sx+LHCb NNLO+NLLx LUXQED alpha_s(M_Z) = 0.118. Comments as for 21, but this set is at NNLO rather than NLO.
option LHAPDF5:set/member : Use an external LHAPDF set where set is the name of the set to use and member is the member of the set to use. The value for set is the name of the PDF set to use while the value for member must be an integer and is the member of the set to use. If member is not supplied, then 0 is assumed.
option LHAPDF6:set/member : Same as for LHAPDF5:set/member but now the LHAPDF6 library is used instead.
option LHAGrid1:filename : Use the internal implementation of interpolation in .dat files in the default "lhagrid1" LHAPDF6 format. This is a simplified implementation, with cubic interpolation in ln(x) and in ln(Q2). If there are several Q^2 subgrids they have to have the same x grid. (Linear interpolation in ln(Q2) is used, should a subgrid contain fewer than four Q2 values.) Other restrictions may also apply, so use with caution. If the filename begins with a / it is supposed to contain the absolute path to the file, and if not the file is supposed to be located in the standard share/Pythia8/xmldoc directory. Note that, unlike LHAPDF, there is no explicit hierarchy of a set containing separate members; each .dat file can be used without any reference to the set it is a member of.
Warning 1: the alpha_s(M_Z) values and the order of the running in the description above is purely informative, and does not affect any other parts of the program. Instead you have the freedom to set alpha_s(M_Z) value and running separately for hard processes (including resonance decays), multiparton interactions, initial-state radiation, and final-state radiation.
Warning 2: in order for LHAPDF PDF sets to work you must have compiled the appropriate LHAPDF plugins for PYTHIA and have set the LHAPATH environment variable (or LHAPDF_DATA_PATH) to provide the data-files directory of your local LHAPDF installation. See the README file in the examples directory for further instructions.
Warning 3: it is technically possible to simultaneously use LHAPDF5 and LHAPDF6 PDF sets at the same time for the two beams, but such a configuration is not officially supported and strongly discouraged.

word  PDF:pSetB   (default = void)
Parton densities to be used by proton beam B, with the same options available as for PDF:pSet. If this option is set to void then the same PDF set as PDF:pSet is used.

If you want to use PDF's not found in LHAPDF, or you want to interface LHAPDF another way, you have full freedom to use the more generic interface options.

Parton densities for protons in the hard process

The above options provides a PDF set that will be used everywhere: for the hard process, the parton showers and the multiparton interactions alike. As already mentioned, therefore a change of PDF should be accompanied by a complete retuning of the whole MPI framework, and maybe more. There are cases where one may want to explore different PDF options for the hard process, but would not want to touch the rest. If several different sets are to be compared, a simple reweighting based on the originally used flavour, x, Q^2 and PDF values may offer the best route. The options in this section allow a choice of the PDF set for the hard process alone, while the choice made in the previous section would still be used for everything else. The hardest interaction of the minimum-bias process is part of the multiparton-interactions framework and so does not count as a hard process here.

Of course it is inconsistent to use different PDF's in different parts of an event, but if the x and Q^2 ranges mainly accessed by the components are rather different then the contradiction would not be too glaring. Furthermore, since standard PDF's are one-particle-inclusive we anyway have to 'invent' our own PDF modifications to handle configurations where more than one parton is kicked out of the proton [Sjo04].

The PDF choices that can be made are the same as above, so we do not repeat the detailed discussion.

flag  PDF:useHard   (default = off)
If on then select a separate PDF set for the hard process, using the variables below. If off then use the same PDF set for everything, as already chosen above.

word  PDF:pHardSet   (default = void)
Parton densities to be used by the proton beams of the hard process, with the same options available as for PDF:pSet. If this option is set to void then the same PDF set as PDF:pSet is used.

word  PDF:pHardSetB   (default = void)
Parton densities to be used by proton beam B of the hard process, with the same options available as for PDF:pSet. If this option is set to void then the same PDF set as PDF:pHardSet is used.

Nuclear modifications of parton densities

Nuclear modifications of the PDFs are implemented for the hard-process generation only. The final PDF value is calculated for an average nucleon within given nucleus, i.e. f_i^A(x,Q^2) = (Z/A)*f_i^(p/A) + ((A-Z)/A)*f_i^(n/A), where A is the nuclear mass number and Z the number of protons, set using the PDG code for nucleus. The neutron PDFs are obtained by applying isospin symmetry, e.g. f_u^(n/A)(x,Q^2) = f_d^(p/A)(x,Q^2). The nuclear PDFs implemented provide only the nuclear modification so the full PDF is calculated by multiplying the selected free proton PDF with the modification.

flag  PDF:useHardNPDFA   (default = off)
If on, the hard processes are generated with nuclear modifications for beam A.

flag  PDF:useHardNPDFB   (default = off)
If on, the hard processes are generated with nuclear modifications for beam B.

mode  PDF:nPDFSetA   (default = 1; minimum = 0; maximum = 3)
The nuclear modication to be used for beam A if enabled with the switch above.
option 0 : Only Isospin effect.
option 1 : EPS09, LO [Esk09].
option 2 : EPS09, NLO [Esk09]. The grid files can be found from here and are to be stored in the same folder as other PDF grid files (usually share/Pythia8/xmldoc/).
option 3 : EPPS16, NLO [Esk16]. The grid files can be found from here.

mode  PDF:nPDFSetB   (default = 1; minimum = 0; maximum = 3)
The nuclear modication to be used for beam B. Same options as above.
option 0 : Only Isospin effect.
option 1 : EPS09, LO.
option 2 : EPS09, NLO.
option 3 : EPPS16, NLO.

mode  PDF:nPDFBeamA   (default = 100822080)
The PDG code for nuclear beam A, provides the number of protons and neutrons. Default code for Pb.

mode  PDF:nPDFBeamB   (default = 100822080)
The PDG code for nucleus B.

Parton densities for pions

The parton densities of the pion are considerably less well known than those of the proton. There are only rather few sets on the market, and none particularly recent. Only one comes built-in, but others can be accessed from LHAPDF. Input parametrizations are for the pi+. >From this the pi- is obtained by charge conjugation and the pi0 from averaging (half the pions have d dbar valence quark content, half u ubar.

Much of the switches are taken over from the proton case, with obvious modifications; therefore the description is briefer. Currently we have not seen the need to allow separate parton densities for hard processes. When using LHAPDF the PDF:extrapolateLHAPDF switch of the proton also applies to pions.

word  PDF:piSet   (default = 1)
Parton densities that can be used for pion beams, currently with only one internal choice.
option 1 : GRV 92 L.
option LHAPDF5:set/member : Use an external LHAPDF set where set is the name of the set to use and member is the member of the set to use. The value for set can either be a relative path to the LHAPDF path, or an absolute path. The value for member must be an integer.
option LHAPDF6:set/member : Same as for LHAPDF5:set/member but now the LHAPDF6 library is used instead.
option LHAGrid1:filename : Use the internal implementation of interpolation in .dat files in the default "lhagrid1" LHAPDF6 format, cf. the corresponding proton option.

word  PDF:piSetB   (default = void)
Parton density for pion beam B. If this option is set to void then the same PDF set as PDF:piSet is used.

Parton densities for Pomerons

The Pomeron is introduced in the description of diffractive events, i.e. a diffractive system is viewed as a Pomeron-proton collision at a reduced CM energy. Here the PDF's are even less well known. Most experimental parametrizations are NLO, which makes them less well suited for Monte Carlo applications. Furthermore note that the momentum sum is arbitrarily normalized to a non-unity value.

word  PDF:PomSet   (default = 6)
Parton densities that can be used for Pomeron beams.
option 1 : Q^2-independent parametrizations xf(x) = N_ab x^a (1 - x)^b, where N_ab ensures unit momentum sum. The a and b parameters can be set separately for the gluon and the quark distributions. The momentum fraction of gluons and quarks can be freely mixed, and production of s quarks can be suppressed relative to that of d and u ones, with antiquarks as likely as quarks. See further below how to set the six parameters of this approach.
option 2 : pi0 distributions, as specified in the section above.
option 3 : the H1 2006 Fit A NLO Q^2-dependent parametrization, based on a tune to their data [H1P06], rescaled by the factor PomRescale below.
option 4 : the H1 2006 Fit B NLO Q^2-dependent parametrization, based on a tune to their data [H1P06], rescaled by the factor PomRescale below.
option 5 : the H1 2007 Jets NLO Q^2-dependent parametrization, based on a tune to their data [H1P07], rescaled by the factor PomRescale below.
option 6 : the H1 2006 Fit B LO Q^2-dependent parametrization, based on a tune to their data [H1P06], rescaled by the factor PomRescale below.
option 7 : the ACTW B NLO Q^2-dependent parametrization with epsilon=0.14, based on a tune to H1 and ZEUS data [Alv99], rescaled by the factor PomRescale below.
option 8 : the ACTW D NLO Q^2-dependent parametrization with epsilon=0.14, based on a tune to H1 and ZEUS data [Alv99], rescaled by the factor PomRescale below.
option 9 : the ACTW SG NLO Q^2-dependent parametrization with epsilon=0.14, based on a tune to H1 and ZEUS data [Alv99], rescaled by the factor PomRescale below.
option 10 : the ACTW D NLO Q^2-dependent parametrization with epsilon=0.19, based on a tune to H1 and ZEUS data [Alv99], rescaled by the factor PomRescale below.
option 11 : a rescaling of the proton PDF, xf^pom(x)=xf^p(x x_pom), used in the Angantyr model for Heavy Ion collisions. For high x there is an additional suppression by (1-x)^p, where the power is given by PDF:PomHixSupp below.
option 12 : The GKG18-DPDF LO Fit A central member Q^2-dependent parametrization based on a tune to H1 and ZEUS data [Goh18].
option 13 : The GKG18-DPDF LO Fit B central member Q^2-dependent parametrization based on a tune to H1 and ZEUS data [Goh18].
option 14 : The GKG18-DPDF NLO Fit A central member Q^2-dependent parametrization based on a tune to H1 and ZEUS data [Goh18].
option 15 : The GKG18-DPDF NLO Fit B central member Q^2-dependent parametrization based on a tune to H1 and ZEUS data [Goh18].
option LHAPDF5:set/member : Use an external LHAPDF5 set, cf. the corresponding proton option.
option LHAPDF6:set/member : Use an external LHAPDF6 set, cf. the corresponding proton option.
option LHAGrid1:filename : Use the internal implementation for a LHAPDF6 set, cf. the corresponding proton option.

parm  PDF:PomGluonA   (default = 0.; minimum = -0.5; maximum = 2.)
the parameter a in the ansatz xg(x) = N_ab x^a (1 - x)^b for option 1 above.

parm  PDF:PomGluonB   (default = 3.; minimum = 0.; maximum = 10.)
the parameter b in the ansatz xg(x) = N_ab x^a (1 - x)^b for option 1 above.

parm  PDF:PomQuarkA   (default = 0.; minimum = -0.5; maximum = 2.)
the parameter a in the ansatz xq(x) = N_ab x^a (1 - x)^b for option 1 above.

parm  PDF:PomQuarkB   (default = 3.; minimum = 0.; maximum = 10.)
the parameter b in the ansatz xq(x) = N_ab x^a (1 - x)^b for option 1 above.

parm  PDF:PomQuarkFrac   (default = 0.2; minimum = 0.; maximum = 1.)
the fraction of the Pomeron momentum carried by quarks for option 1 above, with the rest carried by gluons.

parm  PDF:PomStrangeSupp   (default = 0.5; minimum = 0.; maximum = 1.)
the suppression of the s quark density relative to that of the d and u ones for option 1 above.

parm  PDF:PomRescale   (default = 1.0; minimum = 0.5; maximum = 5.0)
Rescale several of the fits above by this uniform factor, e.g. to bring up their momentum sum to around unity. By default many of the sets have a momentum sum of order 0.5, suggesting that a factor around 2.0 should be used. You can use examples/main51.cc to get a more precise value. Note that also other parameters in the diffraction framework may need to be retuned when this parameter is changed. Specifically Diffraction:PomFluxRescale should be set to the inverse of PDF:PomRescale to preserve the cross section for hard diffractive processes.

parm  PDF:PomHixSupp   (default = 0.; minimum = 0.; maximum = 10.)
the power in the suppression of the high-x PDF for option 11 above.

Parton densities for photons

Photon PDFs describe the partonic content of the resolved photons and can be used to generate any process initiated by quarks and gluons.

There are several PDF sets available for photons, although there have not been much activity recently. Currently one internal set is included, but more sets are available from LHAPDF5. The sets from LHAPDF5 can only be used as PDFs in the hard process (see PDF:GammaHardSet below). In case of photons the parton shower and beam remnant generation require additional methods that are provided only for internal sets. Currently no photon PDFs have been included in LHAPDF6.

mode  PDF:GammaSet   (default = 1; minimum = 1; maximum = 1)
Parton densities that can be used for resolved photon beams.
option 1 : CJKL, based on [Cor03] but the rescaling for heavy quarks due to kinematic constraints in DIS is undone to obtain correct behaviour for photon-photon/hadron collisions.

word  PDF:GammaHardSet   (default = void)
Parton densities to be used by the beams of the hard process. For photons the other options are the ones provided by LHAPDF5. If this option is set to void then the same PDF set as PDF:GammaSet is used.

Parton densities for leptons

For electrons/muons/taus there is no need to choose between different parametrizations, since only one implementation is available, and should be rather uncontroversial (apart from some technical details). However, insofar as e.g. e^+ e^- data often are corrected back to a world without any initial-state photon radiation, it is useful to have a corresponding option available here.

flag  PDF:lepton   (default = on)
Use parton densities for lepton beams or not. If off the colliding leptons carry the full beam energy, if on part of the energy is radiated away by initial-state photons. In the latter case the initial-state showers will generate the angles and energies of the set of photons that go with the collision. In addition one collinear photon per beam carries any leftover amount of energy not described by shower emissions. If the initial-state showers are switched off these collinear photons will carry the full radiated energy.

Neutrinos are always taken pointlike. Do note that the phase space selection machinery currently does not allow one resolved and one unresolved lepton beam. For lepton-neutrino collisions to work you must therefore set PDF:lepton = off.

Photon fluxes

Charged beam particles may emit photons that can act as initiators for different processes. In addition to being in an unresolved state, the low virtuality (real) photons may also be resolved and have some partonic structure. Both, unresolved (direct) and resolved contributions are included, see Photoproduction for details.

The PDFs describing the resolved state can be obtained by convoluting the photon flux with the selected photon PDFs. The photon flux is modelled according to equivalent photon approximation (EPA). The photon fluxes can be enabled with the following options. Currently fluxes are internally defined for charged leptons and protons, but other fluxes (e.g. photons from heavy ions) can be externally defined and passed to Pythia for event generation. The photon sub-beams are enabled with the following flags

flag  PDF:beamA2gamma   (default = off)
Enables photon sub-beam from beam particle A,

flag  PDF:beamB2gamma   (default = off)
Enables photon sub-beam from beam particle B. Further options specific for different beam types are described below.

Lepton beams

In case of leptons the photon fluxes can also be enabled with the following flag.

flag  PDF:lepton2gamma   (default = off)
Enables photon sub-beam from all lepton beams. This option, however, has been superseded by the new options PDF:BeamA2gamma and PDF:BeamB2gamma above, but is kept for backwards compability. The resulting behaviour is the same in both cases. The applied photon PDF set is selected with the PDF:GammaSet and PDF:GammaHardSet options above. Events with two unresolved photon initiators can be generated also with PDF:lepton = on, but then additional phase-space cuts (e.g. cut on the invariant mass of the photon-photon pair) are not applied.

mode  PDF:lepton2gammaSet   (default = 1; minimum = 0; maximum = 1)
The type of photon flux.
option 0 : Uses an approximation of the photon flux to sample processes and corrects this later with an externally provided flux. For leptons a bit less efficient than option 1, but allows straightforward implementation of photon fluxes from different particles. To use this option the user has to provide the external photon flux using method Pythia::setPhotonFluxPtr(pdfAPtr, pdfBPtr) as demonstrated in the sample program main70.cc.
option 1 : Convolute the photon flux from EPA with the selected photon PDF set. Convolution integral is performed "on the fly", meaning that the actual integral is not computed but the x_gamma is sampled event-by-event. Since the final PDF value depends on the sampled value for x_gamma, the phase-space sampling is set up using an overestimate for the PDFs. This makes the process selection somewhat less efficient compared to the case where the PDFs are fixed (e.g. for protons).

Proton beams

There are currently two internally defined photon fluxes from a proton, and the user can also provide an externally defined flux. The applied flux is set with the following option.

mode  PDF:Proton2gammaSet   (default = 2; minimum = 0; maximum = 2)

option 0 : Use an externally provided photon flux. This flux has to be passed with method Pythia::setPhotonFluxPtr(pdfAPtr, pdfBPtr).
option 1 : Use virtuality integrated photon flux from Budnev et al. As the flux is integrated over Q^2, the virtuality is always set to zero and the scattered beam proton does not have any transverse momentum. When this option is applied the Q^2 sampling will be turned off.
option 2 : Use a virtuality-dependent flux similar to the approximation by Drees and Zeppenfeld. Uses a dipole form factor to appropriately suppress high virtualities.

Nuclear beams

Currently no flux from heavy ions are internally defined. However, using the above options it is possible to define a suitable flux and pass this to Pythia for event generation, see main70.cc for example. To increase the sampling efficiency fo nuclear beams, the following options have been introduced.

mode  PDF:beam2gammaApprox   (default = 1; minimum = 1; maximum = 2)
Controls which type of overestimate is used for photon flux sampling.
option 1 : Estimate optimized for photons from leptons. Works reasonable well also for photoproduction in p+p.
option 2 : Estimate optimized for ultraperipheral heavy-ion collisions as presented in main70.cc. Here the estimate is divided into two regions, a power-law in x_gamma below x_cut and an exponential fall-off above, see the related parameters below. Default values are optimized for p+Pb collisions where Pb-nucleus provide the photons, but they should work reasonably well also for other similar configurations.
Note 1: Parameters do not affect the flux itself, only the sampling efficiency.
Note 2: This option was formerly named as PDF:lepton2gammaApprox but is renamed for version 8.3.

parm  PDF:gammaFluxApprox2bMin   (default = 7.336; minimum = 0.0)
Minimal allowed impact parameter for which the flux is considered. Units in fm. Should match the flux provided by user.

parm  PDF:gammaFluxApprox2mBeam   (default = 0.9314; minimum = 0.0)
Per-nucleon mass used for the overestimate. Units in GeV and should again match to the user-provided flux.

parm  PDF:gammaFluxApprox2xPow   (default = 1.15; minimum = 0.0)
Value of the exponent of the power law. The default value should work well for the foreseen cases, so vary with caution.

parm  PDF:gammaFluxApprox2xCut   (default = 0.01; minimum = 0.0)
Value that defines at which x_gamma different approximations are used. As above, vary with caution.

Incoming parton selection

There is one useful degree of freedom to restrict the set of incoming quark flavours for hard processes. It does not change the PDF's as such, only which quarks are allowed to contribute to the hard-process cross sections. Note that separate but similarly named modes are available for multiparton interactions and spacelike showers.

mode  PDFinProcess:nQuarkIn   (default = 5; minimum = 0; maximum = 5)
Number of allowed incoming quark flavours in the beams; a change to 4 would thus exclude b and bbar as incoming partons, etc.