thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
NuclearPhotonPDF.h
1// -*- C++ -*-
2#ifndef ThePEG_NuclearPhotonPDF_H
3#define ThePEG_NuclearPhotonPDF_H
4//
5// This is the declaration of the NuclearPhotonPDF class.
6//
7
8#include "ThePEG/PDF/PDFBase.h"
9#include "ThePEG/Utilities/Maths.h"
10#include "NucleonFormFactor.h"
11
12namespace ThePEG {
13
21
22public:
23
28
29public:
30
37 virtual bool canHandleParticle(tcPDPtr particle) const;
38
43 virtual cPDVector partons(tcPDPtr particle) const;
44
51 virtual double xfl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
52 double l, Energy2 particleScale = 0.0*GeV2) const;
53
62 virtual double xfvl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
63 double l, Energy2 particleScale = 0.0*GeV2) const;
64
78 virtual double flattenScale(tcPDPtr particle, tcPDPtr parton,
79 const PDFCuts & cut, double l, double z,
80 double & jacobian) const;
81
82
93 virtual double flattenL(tcPDPtr particle, tcPDPtr parton, const PDFCuts &cut,
94 double z, double & jacobian) const;
96
97
98public:
99
107
113 void persistentInput(PersistentIStream & is, int version);
115
122 static void Init();
123
124protected:
125
132 virtual IBPtr clone() const;
133
138 virtual IBPtr fullclone() const;
140
141private:
142
148
149private:
150
155
160
164 NucleonFormFactorPtr form_;
165};
166
167}
168
169#endif /* ThePEG_NuclearPhotonPDF_H */
The NuclearPhotonPDF class implements the PDF for the radiation of a photon from a heavy ion.
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
virtual IBPtr clone() const
Make a simple clone of this object.
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=0.0 *GeV2) const
The valence density.
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).
NucleonFormFactorPtr form_
The form factor.
virtual double xfl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=0.0 *GeV2) const
The density.
Energy2 q2Max_
Maximum for the photon.
Energy2 q2Min_
Minimum for the photon.
virtual cPDVector partons(tcPDPtr particle) const
Return the partons which this PDF may extract from the given particle.
NuclearPhotonPDF & operator=(const NuclearPhotonPDF &)=delete
The assignment operator is private and must never be called.
virtual bool canHandleParticle(tcPDPtr particle) const
Return true if this PDF can handle the extraction of partons from the given particle.
NuclearPhotonPDF()
The default constructor.
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
static void Init()
The standard Init function used to initialize the interfaces.
virtual double flattenL(tcPDPtr particle, tcPDPtr parton, const PDFCuts &cut, double z, double &jacobian) const
Generate a momentum fraction.
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
PersistentIStream is used to read persistent objects from a stream where they were previously written...
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
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
vector< cPDPtr > cPDVector
A vector of pointers to const ParticleData objects.
Definition: Containers.h:36