thepeg
is hosted by
Hepforge
,
IPPP Durham
ThePEG
2.3.0
PDF
BudnevPDF.h
1
// -*- C++ -*-
2
#ifndef THEPEG_BudnevPDF_H
3
#define THEPEG_BudnevPDF_H
4
//
5
// This is the declaration of the BudnevPDF class.
6
//
7
8
#include "ThePEG/PDF/PDFBase.h"
9
#include "ThePEG/Utilities/Maths.h"
10
11
namespace
ThePEG
{
12
13
using namespace
ThePEG
;
14
21
class
BudnevPDF
:
public
PDFBase
{
22
23
public
:
24
28
BudnevPDF
();
29
36
virtual
bool
canHandleParticle
(
tcPDPtr
particle)
const
;
37
42
virtual
cPDVector
partons
(
tcPDPtr
particle)
const
;
43
50
virtual
double
xfl
(
tcPDPtr
particle,
tcPDPtr
parton,
Energy2
partonScale,
51
double
l,
Energy2
particleScale =
ZERO
)
const
;
52
61
virtual
double
xfvl
(
tcPDPtr
particle,
tcPDPtr
parton,
Energy2
partonScale,
62
double
l,
Energy2
particleScale =
ZERO
)
const
;
63
77
virtual
double
flattenScale
(
tcPDPtr
particle,
tcPDPtr
parton,
78
const
PDFCuts
& cut,
double
l,
double
z,
79
double
& jacobian)
const
;
80
81
92
virtual
double
flattenL
(
tcPDPtr
particle,
tcPDPtr
parton,
const
PDFCuts
&cut,
93
double
z,
double
& jacobian)
const
;
95
96
public
:
97
104
void
persistentOutput
(
PersistentOStream
& os)
const
;
105
111
void
persistentInput
(
PersistentIStream
& is,
int
version);
113
120
static
void
Init
();
121
122
protected
:
123
130
virtual
IBPtr
clone
()
const
{
return
new_ptr
(*
this
);}
131
136
virtual
IBPtr
fullclone
()
const
{
return
new_ptr
(*
this
);}
138
139
private
:
140
145
BudnevPDF
&
operator=
(
const
BudnevPDF
&) =
delete
;
146
147
private
:
148
152
Energy2
_q2min
;
153
157
Energy2
_q2max
;
158
162
const
Energy2
_q02
;
163
167
const
double
_mup2
;
168
169
174
double
gm2
(
Energy2
q2)
const
{
175
return
ge2
(q2)*
_mup2
;
176
}
177
182
double
ge2
(
Energy2
q2)
const
{
183
return
Math::powi
((1 + q2/
_q02
),-4);
184
}
185
186
};
187
188
}
189
190
#endif
/* THEPEG_BudnevPDF_H */
ThePEG::BudnevPDF
The BudnevPDF class implements the PDF for the radiation of a photon from the proton.
Definition:
BudnevPDF.h:21
ThePEG::BudnevPDF::clone
virtual IBPtr clone() const
Make a simple clone of this object.
Definition:
BudnevPDF.h:130
ThePEG::BudnevPDF::flattenScale
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).
ThePEG::BudnevPDF::operator=
BudnevPDF & operator=(const BudnevPDF &)=delete
The assignment operator is private and must never be called.
ThePEG::BudnevPDF::_q02
const Energy2 _q02
Fitted scale .
Definition:
BudnevPDF.h:162
ThePEG::BudnevPDF::partons
virtual cPDVector partons(tcPDPtr particle) const
Return the partons which this PDF may extract from the given particle.
ThePEG::BudnevPDF::Init
static void Init()
The standard Init function used to initialize the interfaces.
ThePEG::BudnevPDF::canHandleParticle
virtual bool canHandleParticle(tcPDPtr particle) const
Return true if this PDF can handle the extraction of partons from the given particle.
ThePEG::BudnevPDF::persistentOutput
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
ThePEG::BudnevPDF::_mup2
const double _mup2
Magenetic moment of the proton
Definition:
BudnevPDF.h:167
ThePEG::BudnevPDF::ge2
double ge2(Energy2 q2) const
Helper function for magnetic a electric form factors in Budnev flux.
Definition:
BudnevPDF.h:182
ThePEG::BudnevPDF::BudnevPDF
BudnevPDF()
Default constructor.
ThePEG::BudnevPDF::flattenL
virtual double flattenL(tcPDPtr particle, tcPDPtr parton, const PDFCuts &cut, double z, double &jacobian) const
Generate a momentum fraction.
ThePEG::BudnevPDF::fullclone
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition:
BudnevPDF.h:136
ThePEG::BudnevPDF::_q2min
Energy2 _q2min
Minimum for the photon.
Definition:
BudnevPDF.h:152
ThePEG::BudnevPDF::xfl
virtual double xfl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const
The density.
ThePEG::BudnevPDF::_q2max
Energy2 _q2max
Maximum for the photon.
Definition:
BudnevPDF.h:157
ThePEG::BudnevPDF::persistentInput
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
ThePEG::BudnevPDF::gm2
double gm2(Energy2 q2) const
Helper function for magnetic a electric form factors in Budnev flux.
Definition:
BudnevPDF.h:174
ThePEG::BudnevPDF::xfvl
virtual double xfvl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const
The valence density.
ThePEG::PDFBase
PDFBase is the base class for implementing parton density functions for particles with sub-structure.
Definition:
PDFBase.h:40
ThePEG::PDFCuts
The PDFCuts class is used to specify cuts on scale and momentum fractions for which a PDFBase object ...
Definition:
PDFCuts.h:27
ThePEG::PersistentIStream
PersistentIStream is used to read persistent objects from a stream where they were previously written...
Definition:
PersistentIStream.h:48
ThePEG::PersistentOStream
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
Definition:
PersistentOStream.h:51
ThePEG::Pointer::RCPtr
RCPtr is a reference counted (smart) pointer.
Definition:
RCPtr.h:60
ThePEG::Pointer::TransientConstRCPtr
TransientConstRCPtr is a simple wrapper around a bare const pointer which can be assigned to and from...
Definition:
RCPtr.h:696
ThePEG::Qty< 0, 2, 0 >
ThePEG::Math::powi
double powi(double x, int p)
Return x rased to the integer power p, using recursion.
ThePEG::Pointer::new_ptr
Ptr< T >::pointer new_ptr()
Simple interface to the PtrTraits<Ptr>::create()
Definition:
PtrTraits.h:195
ThePEG
This is the main namespace within which all identifiers in ThePEG are declared.
Definition:
FactoryBase.h:28
ThePEG::ZERO
constexpr ZeroUnit ZERO
ZERO can be used as zero for any unitful quantity.
Definition:
PhysicalQty.h:35
ThePEG::cPDVector
vector< cPDPtr > cPDVector
A vector of pointers to const ParticleData objects.
Definition:
Containers.h:36
Generated on Thu Jun 20 2024 14:47:00 for ThePEG by
1.9.6