thepeg is hosted by Hepforge, IPPP Durham
ThePEG 2.3.0
GRVBase.h
1// -*- C++ -*-
2//
3// GRVBase.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_GRVBase_H
10#define ThePEG_GRVBase_H
11// This is the declaration of the GRVBase class.
12
13#include "ThePEG/PDF/PDFBase.h"
14
15namespace ThePEG {
16
24class GRVBase: public PDFBase {
25
26public:
27
34
38 virtual ~GRVBase();
40
41public:
42
49 virtual bool canHandleParticle(tcPDPtr particle) const;
50
55 virtual cPDVector partons(tcPDPtr p) const;
56
62 virtual double xfl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
63 double l, Energy2 particleScale) const;
64
70 virtual double xfvl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale,
71 double l, Energy2 particleScale) const;
73
74public:
75
82 double S() const { return theS; }
83
88 double S2() const { return theS2; }
89
94 double S3() const { return theS3; }
95
100 double rootS() const { return theRootS; }
101
105 double x() const { return thex; }
106
111 double lx() const { return theLx; }
112
116 double eps() const { return theEps; }
117
122 double rootx() const { return theRootx; }
123
125
126protected:
127
132 virtual void setup(double l, Energy2 scale) const = 0;
133
138 void setup(double l, Energy2 scale, Energy2 mu2, Energy2 lam2) const;
139
143 double valens(double N, double ak, double bk,
144 double a, double b, double c, double d) const;
145
150 double lightsea(double al, double be, double ak, double bk, double a,
151 double b, double c, double d, double e, double es) const;
152
156 double heavysea(double sth, double al, double be, double ak, double ag,
157 double b, double d, double e, double es) const;
158
163 virtual double uv() const = 0;
164
169 virtual double dv() const = 0;
170
175 virtual double del() const = 0;
176
181 virtual double udb() const = 0;
182
187 virtual double sb() const = 0;
188
193 virtual double cb() const = 0;
194
199 virtual double bb() const = 0;
200
205 virtual double gl() const = 0;
206
211 double fuv() const { return uvSave >= 0.0? uvSave: ( uvSave = uv() ); }
212
217 double fdv() const { return dvSave >= 0.0? dvSave: ( dvSave = dv() ); }
218
223 double fdel() const { return delSave >= 0.0? delSave: ( delSave = del() ); }
224
229 double fudb() const { return udbSave >= 0.0? udbSave: ( udbSave = udb() ); }
230
235 double fsb() const { return sbSave >= 0.0? sbSave: ( sbSave = sb() ); }
236
241 double fcb() const { return cbSave >= 0.0? cbSave: ( cbSave = cb() ); }
242
247 double fbb() const { return bbSave >= 0.0? bbSave: ( bbSave = bb() ); }
248
253 double fgl() const { return glSave >= 0.0? glSave: ( glSave = gl() ); }
254
255public:
256
260 static void Init();
261
262private:
263
268 mutable double theLx;
269
273 mutable double thex;
274
278 mutable double theEps;
279
283 mutable double theRootx;
284
288 mutable Energy2 Q2;
289
294
299
304 mutable double theS;
305
309 mutable double theS2;
310
314 mutable double theS3;
315
319 mutable double theRootS;
320
324 mutable double uvSave;
325
329 mutable double dvSave;
330
334 mutable double delSave;
335
339 mutable double udbSave;
340
344 mutable double sbSave;
345
349 mutable double cbSave;
350
354 mutable double bbSave;
355
359 mutable double glSave;
360
361private:
362
366 GRVBase & operator=(const GRVBase &) = delete;
367
368};
369
370}
371
372#endif /* ThePEG_GRVBase_H */
GRVBase inherits from PDFBase and is used as a base class for all GRV parton densities.
Definition: GRVBase.h:24
double theRootS
Return last selected .
Definition: GRVBase.h:319
virtual double cb() const =0
Return the value of the c density for the values previously given by setup().
virtual void setup(double l, Energy2 scale) const =0
Setup the l and scale to be used in the following call to uv(), dv)=, etc.
double thex
THe last selected momentum fraction, .
Definition: GRVBase.h:273
double fgl() const
fgl() returns the saved values from the gl() functions if present.
Definition: GRVBase.h:253
Energy2 theMu2
The last used .
Definition: GRVBase.h:298
double theS3
Return last selected .
Definition: GRVBase.h:314
virtual double del() const =0
Return the value of the difference between the u and d sea densities for the values previously given ...
virtual double bb() const =0
Return the value of the b density for the values previously given by setup().
double S3() const
Return last selected .
Definition: GRVBase.h:94
double fdv() const
fdv() returns the saved values from the dv() functions if present.
Definition: GRVBase.h:217
double x() const
Return last selected momentum fraction, .
Definition: GRVBase.h:105
double delSave
Saved values from the different functions.
Definition: GRVBase.h:334
double fudb() const
fudb() returns the saved values from the udb() functions if present.
Definition: GRVBase.h:229
Energy2 theLam2
The last used .
Definition: GRVBase.h:293
double S() const
Return last selected .
Definition: GRVBase.h:82
static void Init()
Standard Init function used to initialize the interface.
virtual double dv() const =0
Return the value of the d valens density for the values previously given by setup().
double theEps
One minus the last selected momentum fraction, eps .
Definition: GRVBase.h:278
virtual double xfl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale) const
Return the value of the density of parton at the given a scale and log fractional momentum l (the opt...
double theS
The last selected .
Definition: GRVBase.h:304
double bbSave
Saved values from the different functions.
Definition: GRVBase.h:354
double theRootx
The square root of the last selected momentum fraction, .
Definition: GRVBase.h:283
void setup(double l, Energy2 scale, Energy2 mu2, Energy2 lam2) const
Setup the l and scale to be used in the following call to uv(), dv)=, etc.
double fdel() const
fdel() returns the saved values from the del() functions if present.
Definition: GRVBase.h:223
double theLx
The last selected logarithmic momentum fraction .
Definition: GRVBase.h:268
double cbSave
Saved values from the different functions.
Definition: GRVBase.h:349
virtual double gl() const =0
Return the value of the gluon densities for the values previously given by setup().
double dvSave
Saved values from the different functions.
Definition: GRVBase.h:329
virtual double xfvl(tcPDPtr particle, tcPDPtr parton, Energy2 partonScale, double l, Energy2 particleScale) const
Return the valaens partof the density of parton at the given a scale and log fractional momentum l (t...
GRVBase & operator=(const GRVBase &)=delete
Private and non-existent assignment operator.
virtual ~GRVBase()
Destructor.
virtual double uv() const =0
Return the value of the u valens density for the values previously given by setup().
double rootx() const
Return the square root of the last selected momentum fraction, .
Definition: GRVBase.h:122
double fuv() const
fuv() returns the saved values from the quv() functions if present.
Definition: GRVBase.h:211
virtual double sb() const =0
Return the value of the s density for the values previously given by setup().
Energy2 Q2
The last selected scale.
Definition: GRVBase.h:288
double lightsea(double al, double be, double ak, double bk, double a, double b, double c, double d, double e, double es) const
The form of the light sea and gluon density functions.
double S2() const
Return last selected .
Definition: GRVBase.h:88
virtual bool canHandleParticle(tcPDPtr particle) const
Return true if this PDF can handle the extraction of parton from the given particle,...
GRVBase()
Default constructor.
double glSave
Saved values from the different functions.
Definition: GRVBase.h:359
double fcb() const
fcb() returns the saved values from the cb() functions if present.
Definition: GRVBase.h:241
double lx() const
Return last selected logarithmic momentum fraction .
Definition: GRVBase.h:111
double fbb() const
fbb() returns the saved values from the bb() functions if present.
Definition: GRVBase.h:247
double valens(double N, double ak, double bk, double a, double b, double c, double d) const
The form of the valens density functions.
double theS2
Return last selected .
Definition: GRVBase.h:309
double eps() const
Return one minus the last selected momentum fraction, eps .
Definition: GRVBase.h:116
double heavysea(double sth, double al, double be, double ak, double ag, double b, double d, double e, double es) const
The form of the heavy sea density functions.
double uvSave
Saved values from the different functions.
Definition: GRVBase.h:324
virtual double udb() const =0
Return the value of the average u and d sea densities for the values previously given by setup().
double udbSave
Saved values from the different functions.
Definition: GRVBase.h:339
double rootS() const
Return last selected .
Definition: GRVBase.h:100
virtual cPDVector partons(tcPDPtr p) const
Return the parton types which are described by these parton densities.
double fsb() const
fsb() returns the saved values from the sb() functions if present.
Definition: GRVBase.h:235
double sbSave
Saved values from the different functions.
Definition: GRVBase.h:344
PDFBase is the base class for implementing parton density functions for particles with sub-structure.
Definition: PDFBase.h:40
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