thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
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
15namespace ThePEG {
16
25class LeptonLeptonPDF: public PDFBase {
26
27public:
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
85public:
86
90 static void Init();
91
92protected:
93
100 virtual IBPtr clone() const;
101
106 virtual IBPtr fullclone() const;
108
109private:
110
115
120
121};
122
127template <>
130 typedef PDFBase NthBase;
131};
132
136template <>
137struct 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 */
LeptonLeptonPDF inherits from PDFBase and encodes the distribution of leptons within leptons,...
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.
LeptonLeptonPDF & operator=(const LeptonLeptonPDF &)=delete
Private and non-existent assignment operator.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
virtual bool canHandleParticle(tcPDPtr particle) const
Return true if this PDF can handle the extraction of parton from the given particle ie.
virtual cPDVector partons(tcPDPtr p) const
Return a vector of partons handled by this PDF (always the same lepton as the incoming particle).
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...
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 IBPtr clone() const
Make a simple clone of this object.
static NoPIOClassDescription< LeptonLeptonPDF > initLeptonLeptonPDF
Describe a concrete class without persistent data.
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...
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 ...
static void Init()
Standard Init function used to initialize the interface.
A concreate implementation of ClassDescriptionBase describing a concrete class without persistent dat...
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
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
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
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
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30