herwig is hosted by Hepforge, IPPP Durham
Herwig 7.3.0
PomeronFlux.h
1// -*- C++ -*-
2#ifndef Herwig_PomeronFlux_H
3#define Herwig_PomeronFlux_H
4//
5// This is the declaration of the PomeronFlux class.
6//
7
8#include "ThePEG/PDF/PDFBase.h"
9
10namespace Herwig {
11
12using namespace ThePEG;
13
20class PomeronFlux: public PDFBase {
21
22public:
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
79
90 virtual double flattenL(tcPDPtr particle, tcPDPtr parton, const PDFCuts &cut,
91 double z, double & jacobian) const;
93
94public:
95
103
109 void persistentInput(PersistentIStream & is, int version);
111
118 static void Init();
119
123 virtual void doinit();
124
125protected:
126
133 virtual IBPtr clone() const {return new_ptr(*this);}
134
139 virtual IBPtr fullclone() const {return new_ptr(*this);}
141
142private:
143
148 PomeronFlux & operator=(const PomeronFlux &) = delete;
149
150private:
151
158 Energy2 intxFx(double x, Energy2 qqmin, Energy2 qqmax,
159 double alfa0, InvEnergy2 alfap, InvEnergy2 beta) const;
160
166
167
168private:
169
173 Energy2 q2min_;
174
178 Energy2 q2max_;
179
183 double xiMin_;
184
188 double xiMax_;
189
193 double alfa0P_;
194
198 InvEnergy2 alfapP_;
199
203 InvEnergy2 betaP_;
204
208 InvEnergy2 normP_;
209
213 double alfa0R_;
214
218 InvEnergy2 alfapR_;
219
223 InvEnergy2 betaR_;
224
228 InvEnergy2 normR_;
229
233 double nR_;
234
240
241};
242
243}
244
245#endif /* Herwig_PomeronFlux_H */
Here is the documentation of the PomeronFlux class.
Definition: PomeronFlux.h:20
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
InvEnergy2 alfapP_
Pomeron slope.
Definition: PomeronFlux.h:198
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).
double nR_
Factor of the pomeron flux
Definition: PomeronFlux.h:233
void setFluxPar()
Helper function in doinit() which sets the parameters of the pomeron/regeon flux according to user se...
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition: PomeronFlux.h:139
virtual void doinit()
Set normalization constant Ap of the pomeron flux.
InvEnergy2 normP_
Normalization constant of the pomeron flux
Definition: PomeronFlux.h:208
Energy2 q2min_
Minimum for the pomeron/reggeon.
Definition: PomeronFlux.h:173
double xiMax_
Cut on the maximum xi.
Definition: PomeronFlux.h:188
Energy2 intxFx(double x, Energy2 qqmin, Energy2 qqmax, double alfa0, InvEnergy2 alfap, InvEnergy2 beta) const
Integrated pomeron/regeon flux over qq in the range qqmin ... qqmax (with normalization constant Ap =...
InvEnergy2 betaP_
Parameter of pomeron flux Bp
Definition: PomeronFlux.h:203
InvEnergy2 normR_
Normalization constant of the reggeon flux
Definition: PomeronFlux.h:228
virtual double flattenL(tcPDPtr particle, tcPDPtr parton, const PDFCuts &cut, double z, double &jacobian) const
Generate a momentum fraction.
virtual double xfvl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const
The valence density.
double alfa0R_
Reggeon intercept
Definition: PomeronFlux.h:213
PomeronFlux()
Default constructor.
virtual cPDVector partons(tcPDPtr particle) const
Return the partons which this PDF may extract from the given particle.
virtual bool canHandleParticle(tcPDPtr particle) const
Return true if this PDF can handle the extraction of partons from the given particle.
InvEnergy2 alfapR_
Reggeon slope.
Definition: PomeronFlux.h:218
InvEnergy2 betaR_
Parameter of reggeon flux Bp
Definition: PomeronFlux.h:223
PomeronFlux & operator=(const PomeronFlux &)=delete
The assignment operator is private and must never be called.
Energy2 q2max_
Maximum for the pomeron/reggeon.
Definition: PomeronFlux.h:178
int PDFFit_
Switch between pomeron/regeon structure function fits.
Definition: PomeronFlux.h:239
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
static void Init()
The standard Init function used to initialize the interfaces.
virtual double xfl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale=ZERO) const
The density.
virtual IBPtr clone() const
Make a simple clone of this object.
Definition: PomeronFlux.h:133
double alfa0P_
Pomeron intercept
Definition: PomeronFlux.h:193
double xiMin_
Cut on the minimum xi.
Definition: PomeronFlux.h:183
-*- C++ -*-
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
constexpr ZeroUnit ZERO
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
vector< cPDPtr > cPDVector