herwig is hosted by Hepforge, IPPP Durham
Herwig  7.2.1
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 
10 namespace Herwig {
11 
12 using namespace ThePEG;
13 
20 class PomeronFlux: public PDFBase {
21 
22 public:
23 
27  PomeronFlux();
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 
94 public:
95 
102  void persistentOutput(PersistentOStream & os) const;
103 
109  void persistentInput(PersistentIStream & is, int version);
111 
118  static void Init();
119 
123  virtual void doinit();
124 
125 protected:
126 
133  virtual IBPtr clone() const {return new_ptr(*this);}
134 
139  virtual IBPtr fullclone() const {return new_ptr(*this);}
141 
142 private:
143 
148  PomeronFlux & operator=(const PomeronFlux &) = delete;
149 
150 private:
151 
158  Energy2 intxFx(double x, Energy2 qqmin, Energy2 qqmax,
159  double alfa0, InvEnergy2 alfap, InvEnergy2 beta) const;
160 
165  void setFluxPar();
166 
167 
168 private:
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 
239  int PDFFit_;
240 
241 };
242 
243 }
244 
245 #endif /* Herwig_PomeronFlux_H */
InvEnergy2 betaP_
Parameter of pomeron flux Bp.
Definition: PomeronFlux.h:203
Energy2 q2max_
Maximum for the pomeron/reggeon.
Definition: PomeronFlux.h:178
double nR_
Factor of the pomeron flux.
Definition: PomeronFlux.h:233
InvEnergy2 normR_
Normalization constant of the reggeon flux.
Definition: PomeronFlux.h:228
ThePEG::Ptr< InterfacedBase >::pointer IBPtr
Here is the documentation of the PomeronFlux class.
Definition: PomeronFlux.h:20
InvEnergy2 normP_
Normalization constant of the pomeron flux.
Definition: PomeronFlux.h:208
InvEnergy2 alfapR_
Reggeon slope.
Definition: PomeronFlux.h:218
double xiMin_
Cut on the minimum xi.
Definition: PomeronFlux.h:183
virtual IBPtr clone() const
Make a simple clone of this object.
Definition: PomeronFlux.h:133
int PDFFit_
Switch between pomeron/regeon structure function fits.
Definition: PomeronFlux.h:239
InvEnergy2 alfapP_
Pomeron slope.
Definition: PomeronFlux.h:198
ThePEG::Ptr< ParticleData >::transient_const_pointer tcPDPtr
double alfa0R_
Reggeon intercept.
Definition: PomeronFlux.h:213
vector< cPDPtr > cPDVector
Energy2 q2min_
Minimum for the pomeron/reggeon.
Definition: PomeronFlux.h:173
-*- C++ -*-
double alfa0P_
Pomeron intercept.
Definition: PomeronFlux.h:193
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
Definition: PomeronFlux.h:139
double xiMax_
Cut on the maximum xi.
Definition: PomeronFlux.h:188
InvEnergy2 betaR_
Parameter of reggeon flux Bp.
Definition: PomeronFlux.h:223
constexpr ZeroUnit ZERO