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::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.
static string library()
The name of a file containing the dynamic library where the class T is implemented.
Definition: ClassTraits.h:85
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.
static string className()
Return the name of class T.
Definition: ClassTraits.h:66
virtual cPDVector partons(tcPDPtr particle) const
Return the partons which this PDF may extract from the given particle.
int NthBase
The type of the BaseN'th base class (int means there are no further base classes).
Definition: ClassTraits.h:161
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.