thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
WeizsackerWilliamsPDF.h
1// -*- C++ -*-
2#ifndef THEPEG_WeizsackerWilliamsPDF_H
3#define THEPEG_WeizsackerWilliamsPDF_H
4//
5// This is the declaration of the WeizsackerWilliamsPDF class.
6//
7
8#include "ThePEG/PDF/PDFBase.h"
9
10namespace ThePEG {
11
12using namespace ThePEG;
13
21
22public:
23
28
35 virtual bool canHandleParticle(tcPDPtr particle) const;
36
41 virtual cPDVector partons(tcPDPtr particle) const;
42
49 virtual double xfl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
50 double l, Energy2 particleScale = ZERO) const;
51
60 virtual double xfvl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
61 double l, Energy2 particleScale = ZERO) const;
62
75 virtual double flattenScale(tcPDPtr particle, tcPDPtr parton,
76 const PDFCuts & cut, double l, double z,
77 double & jacobian) const;
78
89 virtual double flattenL(tcPDPtr particle, tcPDPtr parton, const PDFCuts &cut,
90 double z, double & jacobian) const;
92
93public:
94
102
108 void persistentInput(PersistentIStream & is, int version);
110
117 static void Init();
118
119protected:
120
127 virtual IBPtr clone() const {return new_ptr(*this);}
128
133 virtual IBPtr fullclone() const {return new_ptr(*this);}
135
136private:
137
143
149
150private:
151
156
161
165 double _a;
166};
167
168}
169
170#include "ThePEG/Utilities/ClassTraits.h"
171
172namespace ThePEG {
173
178template <>
181 typedef PDFBase NthBase;
182};
183
186template <>
188 : public ClassTraitsBase<WeizsackerWilliamsPDF> {
190 static string className() { return "ThePEG::WeizsackerWilliamsPDF"; }
198 static string library() { return "WeizsackerWilliamsPDF.so"; }
199};
200
203}
204
205#endif /* THEPEG_WeizsackerWilliamsPDF_H */
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data.
PDFBase is the base class for implementing parton density functions for particles with sub-structure.
Definition: PDFBase.h:40
The PDFCuts class is used to specify cuts on scale and momentum fractions for which a PDFBase object ...
Definition: PDFCuts.h:27
PersistentIStream is used to read persistent objects from a stream where they were previously written...
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:696
Here is the documentation of the WeizsackerWilliamsPDF class.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
double _a
Parameter for the jacobian mapping of .
virtual IBPtr clone() const
Make a simple clone of this object.
virtual double xfvl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const
The valence density.
Energy2 _q2max
Maximum for the photon.
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).
WeizsackerWilliamsPDF()
Default constructor.
virtual cPDVector partons(tcPDPtr particle) const
Return the partons which this PDF may extract from the given particle.
virtual double flattenL(tcPDPtr particle, tcPDPtr parton, const PDFCuts &cut, double z, double &jacobian) const
Generate a momentum fraction.
Energy2 _q2min
Minimum for the photon.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
static ClassDescription< WeizsackerWilliamsPDF > initWeizsackerWilliamsPDF
The static object used to initialize the description of this class.
virtual bool canHandleParticle(tcPDPtr particle) const
Return true if this PDF can handle the extraction of partons from the given particle.
virtual double xfl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const
The density.
WeizsackerWilliamsPDF & operator=(const WeizsackerWilliamsPDF &)=delete
The assignment operator is private and must never be called.
static void Init()
The standard Init function used to initialize the interfaces.
Ptr< T >::pointer new_ptr()
Simple interface to the PtrTraits<Ptr>::create()
Definition: PtrTraits.h:195
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
constexpr ZeroUnit ZERO
ZERO can be used as zero for any unitful quantity.
Definition: PhysicalQty.h:35
vector< cPDPtr > cPDVector
A vector of pointers to const ParticleData objects.
Definition: Containers.h:36
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition: ClassTraits.h:161
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52
static string className()
Return the name of class T.
Definition: ClassTraits.h:66
static string library()
The name of a file containing the dynamic library where the class T is implemented.
Definition: ClassTraits.h:85
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134