PYTHIA  8.312
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
PDF Class Referenceabstract

Base class for parton distribution functions. More...

#include <PartonDistributions.h>

Inheritance diagram for PDF:
CJKL CTEQ5L CTEQ6pdf EPAexternal GammaPoint GRSpiL GRV94L GRVpiL Lepton Lepton2gamma LeptonPoint LHAGrid1 LHAPDF5 LHAPDF6 MSTWpdf NeutrinoPoint nPDF Nucleus2gamma PomFix PomH1FitAB PomH1Jets PomHISASD Proton2gammaDZ ProtonPoint

Classes

struct  PDFEnvelope
 Error envelope from PDF uncertainty. More...
 

Public Member Functions

 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 xfFlux (int, double, double)
 Return accurate and approximated photon fluxes and PDFs.
 
virtual double xfApprox (int, double, double)
 
virtual double xfGamma (int, double, double)
 
virtual double intFluxApprox ()
 
virtual bool hasApproxGammaFlux ()
 
virtual double getXmin ()
 Return the kinematical limits and sample Q2 and x.
 
virtual double getXhadr ()
 
virtual double sampleXgamma (double)
 
virtual double sampleQ2gamma (double)
 
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)
 

Protected Member Functions

virtual void xfUpdate (int id, double x, double Q2)=0
 Update parton densities.
 
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

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

Base class for parton distribution functions.

Member Function Documentation

virtual bool init ( int  ,
string  ,
int  ,
Logger  
)
inlinevirtual

Perform additional initialization (LHPADF only). Arguments are: int idBeamIn, string setName, int member, Logger* loggerPtr

Reimplemented in LHAPDF5, and LHAPDF6.

void resetValenceContent ( )

Set valence content.

Base class for parton distribution functions.

Set valence content to the default for the current beam.

Gluon has no valence.

Photons can fluctuate. 22 indicates that valence has not been set.

Lepton and neutrino.

Pomeron is treated as pi0-like.

Nuclear beams.

Generic hadron beams.

Decompose default valence content.

For mesons, one quark is an antiquark.

Flip signs for antiparticle beam.

Set valence content.

Determine and store beam type. Diagonal meson special cases.

pi0-like are different from other diagonal mesons.

K_S,L special case.

For other cases, beamType tells about isospin symmetries.

Count number of u/d quarks.

double xf ( int  id,
double  x,
double  Q2 
)

Read out parton density.

Standard parton densities.

Need to update if flavour, x or Q2 changed. Use idSav = 9 to indicate that ALL flavours are up-to-date. Assume that flavour and antiflavour always updated simultaneously.

Photon/gluon content is always handled the same way.

Photon beam, always the full PDFs.

Lepton or neutrino beam, only charged leptons may emit photons.

Nuclear beam.

Special treatment for pi0-like mesons, based on pi+ content.

For other diagonal mesons, q = sea + valence; qbar = sea.

Special treatment of K_S/K_L, based on K+ content.

For other hadrons, handle u/d through isospin symmetry.

No rearrangement necessary (e.g. p, Sigma+, Xi0, Omega-, pi+).

Switch u <-> d (e.g. n, Sigma-, Xi-, K0, D+, B0).

Use average of u and d (e.g. Lambda0, Sigma0).

Delta++: move d valence into u.

Delta-: as Delta++, but switch u <-> d.

s/c/b is always the same.

None of the above cases work, e.g. id is not a valid particle.

double xfRaw ( int  id) const
protected

Get the raw stored value for the quark variable corresponding to the id.

Get the raw value for the quark variable corresponding to the id.

double xfSea ( int  id,
double  x,
double  Q2 
)

Only sea part of parton densities.

Update configuration if necessary.

Gluon is always sea.

Photon beam.

If a valence parton return only the sea part. Otherwise return the total PDF.

Except in pointlike photon beams, gamma is always sea.

The only sea in leptons are photons.

Nuclear PDFs are not yet handled.

Special treatment for pi0-like mesons, based on pi+ content.

For other diagonal mesons, q = sea + valence; qbar = sea.

Otherwise, if q is valence xor beam is an antiparticle, flip sign.

Special treatment of K_S/K_L, based on K+ content.

For other hadrons, handle u/d through isospin symmetry.

No rearrangement necessary (e.g. p, Sigma+, Xi0, Omega-, pi+).

Switch u <-> d (e.g. n, Delta-, Sigma-, Xi-, K0, D+, B0).

Use average of u and d (e.g. Lambda0, Sigma0).

For Delta++, always use qbar value.

s/c/b is always the same.

None of the above cases work, e.g. id is not a valid particle.

double xfVal ( int  id,
double  x,
double  Q2 
)

Read out valence and sea part of parton densities.

Only valence part of parton densities.

Check parton is valence.

Update configuration if necessary.

Photon beam, return non-zero valence content only if flavour set.

Photon/gluon content is never valence.

For lepton and neutrino beams, the valence is the lepton content itself.

Nuclear PDFs are not yet defined.

Special treatment for pi0-like mesons, based on pi+ content.

For other diagonal mesons, q = sea + valence; qbar = sea.

Special treatment of K_S/K_L, based on K+ content.

For other hadrons, handle u/d through isospin symmetry.

No rearrangement necessary (e.g. p, Sigma+, Xi0, Omega-, pi+).

Switch u <-> d (e.g. n, Sigma-, Xi-, K0, D+, B0).

Use average of u and d (e.g. Lambda0, Sigma0).

Delta++/-: take both d and u (we already checked that it's valence).

s/c/b is always the same.

None of the above cases work, e.g. id is not a valid particle.

Member Data Documentation

int beamType
protected

For hadrons, beamType defines special cases and determines how to handle isospin symmetries. 1: no rearrangement (e.g. p, Sigma+, Omega-, pi+) -1: switch u <-> d (e.g. n, Sigma-, Xi-, K0) 0: take average of u and d (e.g. Sigma0, Lambda0) 2/-2: Delta++/Delta- 111: pi0-like special case (pi0, rho0, omega, etc.) 221: Other diagonal meson cases (eta, eta', phi, J/psi, Upsilon, etc.) 130: K_S,L special cases


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