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