ThePEG  1.8.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 
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 
155  Energy2 _q2min;
156 
160  Energy2 _q2max;
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.
virtual double flattenL(tcPDPtr particle, tcPDPtr parton, const PDFCuts &cut, double z, double &jacobian) const
Generate a momentum fraction.
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.
virtual IBPtr clone() const
Make a simple clone of this object.
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
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:681
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
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 double xfl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const
The density.
virtual double xfvl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const
The valence density.
Energy2 _q2min
Minimum for the photon.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
PDFBase is the base class for implementing parton density functions for particles with sub-structure...
Definition: PDFBase.h:40
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 .
const ZeroUnit ZERO
ZERO can be used as zero for any unitful quantity.
Definition: PhysicalQty.h:33
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
WeizsackerWilliamsPDF & operator=(const WeizsackerWilliamsPDF &)
The assignment operator is private and must never be called.
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
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52
virtual bool canHandleParticle(tcPDPtr particle) const
Return true if this PDF can handle the extraction of partons from the given particle.
static ClassDescription< WeizsackerWilliamsPDF > initWeizsackerWilliamsPDF
The static object used to initialize the description of this class.