PYTHIA  8.312
Public Member Functions | List of all members
EPAexternal Class Reference

Equivalent photon approximation for sampling with external photon flux. More...

#include <PartonDistributions.h>

Inheritance diagram for EPAexternal:
PDF

Public Member Functions

 EPAexternal (int idBeamIn, double m2In, PDFPtr gammaFluxPtrIn, PDFPtr gammaPDFPtrIn, Info *infoPtrIn, Logger *loggerPtrIn=0)
 Constructor.
 
void xfUpdate (int, double x, double Q2) override
 Update PDFs. More...
 
double xfFlux (int id, double x, double Q2=1.) override
 External flux and photon PDFs, and approximated flux for sampling. More...
 
double xfGamma (int id, double x, double Q2) override
 Photon PDFs used for the convolution with the flux. More...
 
double xfApprox (int id, double x, double Q2) override
 The approximated photon flux x*f^{gamma}(x,Q2). More...
 
double intFluxApprox () override
 
bool hasApproxGammaFlux () override
 This derived class use approximated flux for sampling.
 
double getXmin () override
 Kinematics.
 
double getXhadr () override
 
double sampleXgamma (double xMinIn) override
 Sampling of the x and Q2 according to differential flux. More...
 
double sampleQ2gamma (double Q2minIn) override
 
- Public Member Functions inherited from PDF
 PDF (int idBeamIn=2212)
 Constructor.
 
virtual ~PDF ()
 Virtual destructor.
 
virtual bool init (int, string, int, Logger *)
 
bool isSetup ()
 Confirm that PDF has been set up (important for LHAPDF and H1 Pomeron).
 
virtual void setBeamID (int idBeamIn)
 Switch to new beam particle identities; for similar hadrons only.
 
void resetValenceContent ()
 Set valence content. More...
 
void setValenceContent (int idVal1In, int idVal2In, int idVal3In)
 
virtual void setExtrapolate (bool)
 Allow extrapolation beyond boundaries. This is optional.
 
double xf (int id, double x, double Q2)
 Read out parton density. More...
 
double xfVal (int id, double x, double Q2)
 Read out valence and sea part of parton densities. More...
 
double xfSea (int id, double x, double Q2)
 Only sea part of parton densities. More...
 
virtual bool insideBounds (double, double)
 Check whether x and Q2 values fall inside the fit bounds (LHAPDF6 only).
 
virtual double alphaS (double)
 Access the running alpha_s of a PDF set (LHAPDF6 only).
 
virtual double mQuarkPDF (int)
 Return quark masses used in the PDF fit (LHAPDF6 only).
 
virtual int nMembers ()
 Return number of members of this PDF family (LHAPDF6 only).
 
virtual void calcPDFEnvelope (int, double, double, int)
 Calculate PDF envelope.
 
virtual void calcPDFEnvelope (pair< int, int >, pair< double, double >, double, int)
 
virtual PDFEnvelope getPDFEnvelope ()
 
virtual double gammaPDFxDependence (int, double)
 Approximate photon PDFs by decoupling the scale and x-dependence.
 
virtual double gammaPDFRefScale (int)
 Provide the reference scale for logarithmic Q^2 evolution for photons.
 
virtual int sampleGammaValFlavor (double)
 Sample the valence content for photons.
 
virtual double xfIntegratedTotal (double)
 The total x-integrated PDFs. Relevant for MPIs with photon beams.
 
virtual double xGamma ()
 Return the sampled value for x_gamma.
 
virtual void xPom (double=-1.0)
 Keep track of pomeron momentum fraction.
 
virtual double fluxQ2dependence (double)
 
virtual double xfMax (int id, double x, double Q2)
 Normal PDFs unless gamma inside lepton -> an overestimate for sampling.
 
virtual double xfSame (int id, double x, double Q2)
 Normal PDFs unless gamma inside lepton -> Do not sample x_gamma.
 
virtual void setVMDscale (double=1.)
 Allow for new scaling factor for VMD PDFs.
 
bool sSymmetric () const
 Return if s/sbar, c/cbar, and b/bbar PDFs are symmetric.
 
bool cSymmetric () const
 
bool bSymmetric () const
 
void sSymmetric (bool sSymmetricIn)
 Set s/sbar, c/cbar, and b/bbar PDFs symmetric.
 
void cSymmetric (bool cSymmetricIn)
 
void bSymmetric (bool bSymmetricIn)
 

Additional Inherited Members

- Protected Member Functions inherited from PDF
void printErr (string loc, string errMsg, Logger *loggerPtr=nullptr)
 Small routine for error printout, depending on loggerPtr existing or not.
 
double xfRaw (int id) const
 Get the raw stored value for the quark variable corresponding to the id. More...
 
bool isValence (int id) const
 Check whether the specified id is a valence quark.
 
- Protected Attributes inherited from PDF
int idBeam
 Store relevant quantities.
 
int idBeamAbs
 
int idSav
 
int idVal1
 
int idVal2
 
int idVal3
 
double xSav
 
double Q2Sav
 
double xu
 Stored quantities.
 
double xd
 
double xs
 
double xubar
 
double xdbar
 
double xsbar
 
double xc
 
double xb
 
double xcbar
 
double xbbar
 
double xg
 
double xlepton
 
double xgamma
 
bool isSet
 
bool isInit
 
int beamType
 
bool hasGammaInLepton
 True if a photon beam inside a lepton beam, otherwise set false.
 
bool sSymmetricSave = false
 Whether to treat flavoured PDFs as symmetric, for efficiency.
 
bool cSymmetricSave = true
 
bool bSymmetricSave = true
 

Detailed Description

Equivalent photon approximation for sampling with external photon flux.

Member Function Documentation

double intFluxApprox ( )
overridevirtual

Return integrated over-estimate for photon flux to approximate soft cross sections.

Check the used approximation and return the integral.

Reimplemented from PDF.

double sampleQ2gamma ( double  Q2minIn)
overridevirtual

Sample the virtuality for the photon, either based on the estimate to be corrected later, or for integrated flux (accepted events) where oversampling has already been corrected.

Sample value for the intermediate photon according to the flux. If externally generated (LHE) event, use the approximation. Notice that in the former case sample from the whole phase space but in the latter start with lower limit provided as an argument.

Sample from 1./Q^2 to start with, correct for actual Q2 dependence.

Check first that a finite value obtained, then check whether value to be accepted and exit.

Check number of tries.

Reimplemented from PDF.

double sampleXgamma ( double  xMinIn)
overridevirtual

Sampling of the x and Q2 according to differential flux.

Sample the x_gamma value according to given photon flux approximation.

Sample with lepton-type flux.

Sample with photon flux for nuclei.

Calculate the integrals of over estimates, either only above the cut value or with both contributions.

Select the sampling region.

Sample x value according to the selected approximation region.

Return zero for undefined cases.

Reimplemented from PDF.

double xfApprox ( int  id,
double  x,
double  Q2 
)
overridevirtual

The approximated photon flux x*f^{gamma}(x,Q2).

Differential in Q2 for leptons.

Piece-wise approximation for heavy ions.

Reimplemented from PDF.

double xfFlux ( int  id,
double  x,
double  Q2 = 1. 
)
overridevirtual

External flux and photon PDFs, and approximated flux for sampling.

Accurate flux, provided externally.

The external flux, check that pointer exists.

Reimplemented from PDF.

double xfGamma ( int  id,
double  x,
double  Q2 
)
overridevirtual

Photon PDFs used for the convolution with the flux.

Return xf from the photon PDF.

Reimplemented from PDF.

void xfUpdate ( int  ,
double  x,
double  Q2 
)
overridevirtual

Update PDFs.

Approximate the differential photon flux with alphaEM/PI/x/Q2. Derived from EPA for leptons but provides leading (small-x) behaviour for hadrons as well.

Calculate (Q2-integrated) approximation for xfGamma.

Integrated in Q2, to be used for direct process sampling.

Approximate the convolution with photon PDFs.

To preserve x/xGamma < 1.

Integrals for the overestimates.

Multiply the approximated flux with PDFs.

idSav = 9 to indicate that all flavours reset.

Implements PDF.


The documentation for this class was generated from the following files: