ThePEG::PDFBase Class Reference

PDFBase is the base class for implementing parton density functions for particles with sub-structure. More...

#include <PDFBase.h>

Inheritance diagram for ThePEG::PDFBase:

ThePEG::HandlerBase ThePEG::HandlerBaseT< T > ThePEG::Interfaced ThePEG::InterfacedBase ThePEG::Base ThePEG::Named ThePEG::Pointer::ReferenceCounted ThePEG::GRVBase ThePEG::LeptonLeptonPDF ThePEG::LHAPDF ThePEG::NoPDF ThePEG::WeizsackerWilliamsPDF ThePEG::GRV94L ThePEG::GRV94M

List of all members.

Standard Interfaced functions.

enum  RangeException { rangeFreeze, rangeZero, rangeThrow }
 Indicate how to deal with x and Q2 which are out of range. More...
RemHPtr theRemnantHandler
 A remnant handler which can generate remnants for the parton extracted withfor this PDF.
RangeException rangeException
 Indicate to subclasses how to deal with x and Q2 which are out of range.
static
AbstractClassDescription
< PDFBase
initPDFBase
 The static object used to initialize the description of this class.
virtual void doinit ()
 Initialize this object after the setup phase before saving an EventGenerator to disk.
PDFBaseoperator= (const PDFBase &)
 Private and non-existent assignment operator.

Public Member Functions

tcRemHPtr remnantHandler () const
 Pointer to the remnant handler to handle remnant when extracting partons according to these densities.
Standard constructors and destructors.
 PDFBase ()
 Default constructor.
 PDFBase (const PDFBase &)
 Copy-constructor.
virtual ~PDFBase ()
 Destructor.
Virtual functions to be overridden by sub-classes.
virtual bool canHandleParticle (tcPDPtr particle) const =0
 Return true if this PDF can handle the extraction of partons from the given particle.
virtual bool canHandle (tcPDPtr particle) const
 Return true if canHandleParticle() and if the corresponding method for remnantHandler() returns true for the given particle.
virtual bool hasPoleIn1 (tcPDPtr particle, tcPDPtr parton) const
 Return true if this PDF has a pole at $x=1$ for the given particle and parton.
virtual cPDVector partons (tcPDPtr particle) const =0
 Return the partons which this PDF may extract from the given particle.
virtual double xfl (tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const
 The density.
virtual double xfx (tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double x, double eps=0.0, Energy2 particleScale=ZERO) const
 The density.
virtual double xfvl (tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const
 The valence density.
virtual double xfvx (tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double x, double eps=0.0, Energy2 particleScale=ZERO) const
 The valence density.
virtual double xfsl (tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const
 The sea density.
virtual double xfsx (tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double x, double eps=0.0, Energy2 particleScale=ZERO) const
 The sea density.
virtual double flattenL (tcPDPtr particle, tcPDPtr parton, const PDFCuts &cut, double z, double &jacobian) const
 Generate a momentum fraction.
virtual double flattenScale (tcPDPtr particle, tcPDPtr parton, const PDFCuts &cut, double l, double z, double &jacobian) const
 Generate scale (as a fraction of the maximum scale).
Functions used by the persistent I/O system.
void persistentOutput (PersistentOStream &os) const
 Function used to write out object persistently.
void persistentInput (PersistentIStream &is, int version)
 Function used to read in object persistently.

Static Public Member Functions

static void Init ()
 Standard Init function used to initialize the interface.


Detailed Description

PDFBase is the base class for implementing parton density functions for particles with sub-structure.

A number of of virtual methods are defined which should be overridden by sub-classes.

It is essential that either xfx or xfl is overidden to avoid infinite recursive function calls.

A PDFBase object can be assigned to a BeamParticleData object and/or to a PartonExtractor object. A PDFBase has a pointer to a RemnantHandler object which should be capable of generating remnants for all partons which may be extracted by the PDF.

See also:
The interfaces defined for PDFBase.

BeamParticleData

PartonExtractor

RemnantHandler

PDFCuts

Definition at line 40 of file PDFBase.h.


Member Enumeration Documentation

Indicate how to deal with x and Q2 which are out of range.

Enumerator:
rangeZero  > Freeze the value of the PDF outside the limits.

rangeThrow  > Set the PDF to zero outside the limits.

> Throw an exception if outside the limits.

Definition at line 246 of file PDFBase.h.


Member Function Documentation

virtual bool ThePEG::PDFBase::hasPoleIn1 ( tcPDPtr  particle,
tcPDPtr  parton 
) const [virtual]

Return true if this PDF has a pole at $x=1$ for the given particle and parton.

This default version of the function returns false.

Reimplemented in ThePEG::LeptonLeptonPDF, and ThePEG::NoPDF.

virtual double ThePEG::PDFBase::xfl ( tcPDPtr  particle,
tcPDPtr  parton,
Energy2  partonScale,
double  l,
Energy2  particleScale = ZERO 
) const [virtual]

The density.

Return the pdf for the given parton inside the given particle for the virtuality partonScale and logarithmic momentum fraction l $(l=\log(1/x)$. The particle is assumed to have a virtuality particleScale.

Reimplemented in ThePEG::GRVBase, ThePEG::LeptonLeptonPDF, ThePEG::NoPDF, and ThePEG::WeizsackerWilliamsPDF.

virtual double ThePEG::PDFBase::xfx ( tcPDPtr  particle,
tcPDPtr  parton,
Energy2  partonScale,
double  x,
double  eps = 0.0,
Energy2  particleScale = ZERO 
) const [virtual]

The density.

Return the pdf for the given parton inside the given particle for the virtuality partonScale and momentum fraction x. The particle is assumed to have a virtuality particleScale.

Reimplemented in ThePEG::LHAPDF.

virtual double ThePEG::PDFBase::xfvl ( tcPDPtr  particle,
tcPDPtr  parton,
Energy2  partonScale,
double  l,
Energy2  particleScale = ZERO 
) const [virtual]

The valence density.

Return the pdf for the given cvalence parton inside the given particle for the virtuality partonScale and logarithmic momentum fraction l $(l=\log(1/x)$. The particle is assumed to have a virtuality particleScale. If not overidden by a sub class this implementation will assume that the difference between a quark and anti-quark distribution is due do valense quarks, but return zero for anything else.

Reimplemented in ThePEG::GRVBase, ThePEG::LeptonLeptonPDF, ThePEG::LHAPDF, and ThePEG::WeizsackerWilliamsPDF.

virtual double ThePEG::PDFBase::xfvx ( tcPDPtr  particle,
tcPDPtr  parton,
Energy2  partonScale,
double  x,
double  eps = 0.0,
Energy2  particleScale = ZERO 
) const [virtual]

The valence density.

Return the pdf for the given cvalence parton inside the given particle for the virtuality partonScale and momentum fraction x. The particle is assumed to have a virtuality particleScale. If not overidden by a sub class this implementation will assume that the difference between a quark and anti-quark distribution is due do valense quarks, but return zero for anything else.

Reimplemented in ThePEG::LeptonLeptonPDF, and ThePEG::LHAPDF.

virtual double ThePEG::PDFBase::xfsl ( tcPDPtr  particle,
tcPDPtr  parton,
Energy2  partonScale,
double  l,
Energy2  particleScale = ZERO 
) const [virtual]

The sea density.

Return the pdf for the given cvalence parton inside the given particle for the virtuality partonScale and logarithmic momentum fraction l $(l=\log(1/x)$. The particle is assumed to have a virtuality particleScale. If not overidden by a sub class this implementation will assume that the difference between a quark and anti-quark distribution is due do valense quarks.

virtual double ThePEG::PDFBase::xfsx ( tcPDPtr  particle,
tcPDPtr  parton,
Energy2  partonScale,
double  x,
double  eps = 0.0,
Energy2  particleScale = ZERO 
) const [virtual]

The sea density.

Return the pdf for the given cvalence parton inside the given particle for the virtuality partonScale and momentum fraction x. The particle is assumed to have a virtuality particleScale. If not overidden by a sub class this implementation will assume that the difference between a quark and anti-quark distribution is due do valense quarks.

Reimplemented in ThePEG::LHAPDF.

virtual double ThePEG::PDFBase::flattenL ( tcPDPtr  particle,
tcPDPtr  parton,
const PDFCuts cut,
double  z,
double &  jacobian 
) const [virtual]

Generate a momentum fraction.

If the PDF contains strange peaks which can be difficult to handle, this function may be overwritten to return an appropriate $l=\log(1/x)$ for a z uniformly distributed in ]0,1[. Also the jacobobian of the $l\rightarrow z$ variable transformation must in the function multiply the jacobian argument. The default version will simply use the function $l(z) = l_{\min} + z*(l_{\max}-l_{\min})$ (where the limits are set by cut).

Reimplemented in ThePEG::LeptonLeptonPDF, and ThePEG::WeizsackerWilliamsPDF.

virtual double ThePEG::PDFBase::flattenScale ( tcPDPtr  particle,
tcPDPtr  parton,
const PDFCuts cut,
double  l,
double  z,
double &  jacobian 
) const [virtual]

Generate scale (as a fraction of the maximum scale).

If the PDF contains strange peaks which can be difficult to handle, this function may be overwritten to return an appropriate scale $Q^2/Q^2_{\max}$ for a z uniformly distributed in ]0,1[. Also the jacobobian of the $Q^2/Q^2_{\max}\rightarrow z$ variable transformation must multiply the jacobian argument. The default version will simply use the function $Q^2/Q^2_{\max} = (Q^2_{\max}/Q^2_{\min})^(z-1)$ or, if $Q^2_{\min}$ is zero, $Q^2/Q^2_{\max} = z$ (where the limits are set by cut).

Reimplemented in ThePEG::WeizsackerWilliamsPDF.

void ThePEG::PDFBase::persistentOutput ( PersistentOStream os  )  const

Function used to write out object persistently.

Parameters:
os the persistent output stream written to.

Reimplemented from ThePEG::Interfaced.

Reimplemented in ThePEG::LHAPDF, and ThePEG::WeizsackerWilliamsPDF.

void ThePEG::PDFBase::persistentInput ( PersistentIStream is,
int  version 
)

Function used to read in object persistently.

Parameters:
is the persistent input stream read from.
version the version number of the object when written.

Reimplemented from ThePEG::Interfaced.

Reimplemented in ThePEG::LHAPDF, and ThePEG::WeizsackerWilliamsPDF.

virtual void ThePEG::PDFBase::doinit (  )  [protected, virtual]

Initialize this object after the setup phase before saving an EventGenerator to disk.

Exceptions:
InitException if object could not be initialized properly.

Reimplemented from ThePEG::InterfacedBase.

Reimplemented in ThePEG::LHAPDF.


Member Data Documentation

The static object used to initialize the description of this class.

Indicates that this is an abstract class with persistent data.

Definition at line 265 of file PDFBase.h.


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

Generated on Thu Apr 29 12:43:15 2010 for ThePEG by  doxygen 1.5.5