thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
LeptonLeptonPDF.h
1 // -*- C++ -*-
2 //
3 // LeptonLeptonPDF.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 1999-2019 Leif Lonnblad
5 //
6 // ThePEG is licenced under version 3 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef ThePEG_LeptonLeptonPDF_H
10 #define ThePEG_LeptonLeptonPDF_H
11 // This is the declaration of the LeptonLeptonPDF class.
12 
13 #include "ThePEG/PDF/PDFBase.h"
14 
15 namespace ThePEG {
16 
25 class LeptonLeptonPDF: public PDFBase {
26 
27 public:
28 
35  virtual bool canHandleParticle(tcPDPtr particle) const;
36 
42  virtual bool hasPoleIn1(tcPDPtr particle, tcPDPtr parton) const;
43 
48  virtual cPDVector partons(tcPDPtr p) const;
49 
54  virtual double xfl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
55  double l, Energy2 particleScale = ZERO) const;
56 
62  virtual double xfvl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
63  double l, Energy2 particleScale = ZERO) const;
64 
70  virtual double xfvx(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
71  double x, double eps, Energy2 particleScale) const;
72 
81  virtual double flattenL(tcPDPtr particle, tcPDPtr parton, const PDFCuts &,
82  double z, double & jacobian) const;
84 
85 public:
86 
90  static void Init();
91 
92 protected:
93 
100  virtual IBPtr clone() const;
101 
106  virtual IBPtr fullclone() const;
108 
109 private:
110 
115 
119  LeptonLeptonPDF & operator=(const LeptonLeptonPDF &) = delete;
120 
121 };
122 
127 template <>
130  typedef PDFBase NthBase;
131 };
132 
136 template <>
137 struct ClassTraits<LeptonLeptonPDF>: public ClassTraitsBase<LeptonLeptonPDF> {
139  static string className() { return "ThePEG::LeptonLeptonPDF"; }
143  static string library() { return "LeptonLeptonPDF.so"; }
144 };
145 
148 }
149 
150 #endif /* ThePEG_LeptonLeptonPDF_H */
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 bool canHandleParticle(tcPDPtr particle) const
Return true if this PDF can handle the extraction of parton from the given particle ie...
The PDFCuts class is used to specify cuts on scale and momentum fractions for which a PDFBase object ...
Definition: PDFCuts.h:27
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30
static NoPIOClassDescription< LeptonLeptonPDF > initLeptonLeptonPDF
Describe a concrete class without persistent data.
virtual double xfl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const
Return the value of the density function at a given l and scale for the given parton.
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition: RCPtr.h:696
virtual cPDVector partons(tcPDPtr p) const
Return a vector of partons handled by this PDF (always the same lepton as the incoming particle)...
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual double xfvl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const
Return the the valens part of the true pdf for the given parameters, with the momentum fraction given...
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
A concreate implementation of ClassDescriptionBase describing a concrete class without persistent dat...
LeptonLeptonPDF inherits from PDFBase and encodes the distribution of leptons within leptons...
virtual IBPtr clone() const
Make a simple clone of this object.
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
virtual double flattenL(tcPDPtr particle, tcPDPtr parton, const PDFCuts &, double z, double &jacobian) const
If the PDF contains strange peaks which can be difficult to handle, this function may be overwritten ...
vector< cPDPtr > cPDVector
A vector of pointers to const ParticleData objects.
Definition: Containers.h:36
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
LeptonLeptonPDF & operator=(const LeptonLeptonPDF &)=delete
Private and non-existent assignment operator.
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
static void Init()
Standard Init function used to initialize the interface.
constexpr ZeroUnit ZERO
ZERO can be used as zero for any unitful quantity.
Definition: PhysicalQty.h:35
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52
virtual double xfvx(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double x, double eps, Energy2 particleScale) const
Return the the valens part of the true pdf for the given parameters, with the momentum fraction given...