cepgen
is hosted by
Hepforge
,
IPPP Durham
CepGen
1.2.5
Central exclusive processes event generator
Loading...
Searching...
No Matches
Parameterisation.h
Go to the documentation of this file.
1
/*
2
* CepGen: a central exclusive processes event generator
3
* Copyright (C) 2013-2024 Laurent Forthomme
4
*
5
* This program is free software: you can redistribute it and/or modify
6
* it under the terms of the GNU General Public License as published by
7
* the Free Software Foundation, either version 3 of the License, or
8
* any later version.
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17
*/
18
19
#ifndef CepGen_StructureFunctions_Parameterisation_h
20
#define CepGen_StructureFunctions_Parameterisation_h
21
22
#include <memory>
23
24
#include "
CepGen/StructureFunctions/SigmaRatio.h
"
25
26
namespace
cepgen
{
28
namespace
strfun {
30
class
Parameterisation
:
public
NamedModule
<Parameterisation> {
31
public
:
32
explicit
Parameterisation
(
const
ParametersList
&);
33
virtual
~Parameterisation
() =
default
;
34
35
static
ParametersDescription
description
();
36
38
friend
std::ostream&
operator<<
(std::ostream&,
const
Parameterisation
&);
39
41
inline
const
sigrat::Parameterisation
*
sigmaRatio
()
const
{
return
r_ratio_.get(); }
42
46
Parameterisation
&
operator()
(
double
/*xbj*/
,
double
/*q2*/
);
47
48
double
F2
(
double
xbj,
double
q2);
49
double
FL
(
double
xbj,
double
q2);
50
double
W1
(
double
xbj,
double
q2);
51
double
W2
(
double
xbj,
double
q2);
52
double
FE
(
double
xbj,
double
q2);
53
double
FM
(
double
xbj,
double
q2);
54
double
F1
(
double
xbj,
double
q2);
55
56
struct
Arguments
{
57
inline
bool
operator==
(
const
Arguments
& oth)
const
{
return
xbj
== oth.
xbj
&&
q2
== oth.
q2
; }
58
inline
bool
valid
()
const
{
return
q2
>= 0. &&
xbj
>= 0. &&
xbj
< 1.; }
59
friend
std::ostream&
operator<<
(std::ostream&,
const
Arguments
&);
60
double
xbj
{-1.},
q2
{-1.};
61
};
62
struct
Values
{
63
void
clear
() {
f2
= 0.,
fl
= 0.,
w1
= 0.,
w2
= 0.,
f2
= 0.,
fm
= 0.; }
64
friend
std::ostream&
operator<<
(std::ostream&,
const
Values
&);
65
66
double
f2
{0.};
67
double
fl
{0.};
68
69
// alternative quantities
70
double
w1
{0.};
71
double
w2
{0.};
72
double
fe
{0.};
73
double
fm
{0.};
74
};
75
76
protected
:
77
virtual
void
eval
() = 0;
78
80
virtual
Parameterisation
&
computeFL
(
double
xbj,
double
q2);
82
virtual
Parameterisation
&
computeFL
(
double
xbj,
double
q2,
double
r);
83
84
Parameterisation
&
clear
();
85
86
//-- fill in the structure functions values
87
Parameterisation
&
setF1F2
(
double
f1,
double
f2);
88
Parameterisation
&
setF2
(
double
f2);
89
Parameterisation
&
setFL
(
double
fl);
90
Parameterisation
&
setW1
(
double
w1);
91
Parameterisation
&
setW2
(
double
w2);
92
Parameterisation
&
setFE
(
double
fe);
93
Parameterisation
&
setFM
(
double
fm);
94
96
double
tau
(
double
xbj,
double
q2)
const
;
98
double
gamma2
(
double
xbj,
double
q2)
const
;
99
100
private
:
102
const
std::unique_ptr<sigrat::Parameterisation> r_ratio_;
103
104
protected
:
105
const
double
mp_
;
106
const
double
mp2_
;
107
const
double
mx_min_
;
108
109
Arguments
args_
;
110
111
private
:
112
Values
vals_;
113
bool
fl_computed_{
false
};
114
};
115
}
// namespace strfun
116
}
// namespace cepgen
117
118
#endif
SigmaRatio.h
cepgen::NamedModule
Base runtime module object.
Definition
NamedModule.h:28
cepgen::ParametersDescription
A description object for parameters collection.
Definition
ParametersDescription.h:26
cepgen::ParametersList
Definition
ParametersList.h:52
cepgen::sigrat::Parameterisation
A generic modelling of the ratio.
Definition
SigmaRatio.h:28
cepgen::strfun::Parameterisation
Base object for the parameterisation of nucleon structure functions.
Definition
Parameterisation.h:30
cepgen::strfun::Parameterisation::operator<<
friend std::ostream & operator<<(std::ostream &, const Parameterisation &)
Human-readable dump of the SF parameterisation at this (xBj,Q^2) value.
Definition
Parameterisation.cpp:133
cepgen::strfun::Parameterisation::gamma2
double gamma2(double xbj, double q2) const
Dimensionless variable .
Definition
Parameterisation.cpp:116
cepgen::strfun::Parameterisation::setFE
Parameterisation & setFE(double fe)
Definition
Parameterisation.cpp:104
cepgen::strfun::Parameterisation::clear
Parameterisation & clear()
Reset the structure functions values.
Definition
Parameterisation.cpp:51
cepgen::strfun::Parameterisation::computeFL
virtual Parameterisation & computeFL(double xbj, double q2)
Compute the longitudinal structure function for a given point.
Definition
Parameterisation.cpp:118
cepgen::strfun::Parameterisation::args_
Arguments args_
Last couple computed.
Definition
Parameterisation.h:109
cepgen::strfun::Parameterisation::setF2
Parameterisation & setF2(double f2)
Definition
Parameterisation.cpp:83
cepgen::strfun::Parameterisation::tau
double tau(double xbj, double q2) const
Compute the dimensionless variable .
Definition
Parameterisation.cpp:114
cepgen::strfun::Parameterisation::setW2
Parameterisation & setW2(double w2)
Definition
Parameterisation.cpp:99
cepgen::strfun::Parameterisation::W1
double W1(double xbj, double q2)
Longitudinal form factor.
Definition
Parameterisation.cpp:65
cepgen::strfun::Parameterisation::mx_min_
const double mx_min_
Minimum diffractive mass, in GeV/c^2.
Definition
Parameterisation.h:107
cepgen::strfun::Parameterisation::mp2_
const double mp2_
Squared proton mass, in GeV^2/c^4.
Definition
Parameterisation.h:106
cepgen::strfun::Parameterisation::W2
double W2(double xbj, double q2)
Definition
Parameterisation.cpp:67
cepgen::strfun::Parameterisation::sigmaRatio
const sigrat::Parameterisation * sigmaRatio() const
Longitudinal/transverse cross section ratio parameterisation used to compute .
Definition
Parameterisation.h:41
cepgen::strfun::Parameterisation::FE
double FE(double xbj, double q2)
Electric proton form factor.
Definition
Parameterisation.cpp:69
cepgen::strfun::Parameterisation::~Parameterisation
virtual ~Parameterisation()=default
cepgen::strfun::Parameterisation::F2
double F2(double xbj, double q2)
Transverse structure function.
Definition
Parameterisation.cpp:57
cepgen::strfun::Parameterisation::eval
virtual void eval()=0
Local structure functions evaluation method.
cepgen::strfun::Parameterisation::setF1F2
Parameterisation & setF1F2(double f1, double f2)
Definition
Parameterisation.cpp:77
cepgen::strfun::Parameterisation::F1
double F1(double xbj, double q2)
structure function
Definition
Parameterisation.cpp:73
cepgen::strfun::Parameterisation::FM
double FM(double xbj, double q2)
Magnetic proton form factor.
Definition
Parameterisation.cpp:71
cepgen::strfun::Parameterisation::description
static ParametersDescription description()
Generic description for the structure functions.
Definition
Parameterisation.cpp:148
cepgen::strfun::Parameterisation::operator()
Parameterisation & operator()(double, double)
Compute all relevant structure functions for a given couple.
Definition
Parameterisation.cpp:37
cepgen::strfun::Parameterisation::setFM
Parameterisation & setFM(double fm)
Definition
Parameterisation.cpp:109
cepgen::strfun::Parameterisation::setFL
Parameterisation & setFL(double fl)
Definition
Parameterisation.cpp:88
cepgen::strfun::Parameterisation::setW1
Parameterisation & setW1(double w1)
Definition
Parameterisation.cpp:94
cepgen::strfun::Parameterisation::mp_
const double mp_
Proton mass, in GeV/c^2.
Definition
Parameterisation.h:105
cepgen::strfun::Parameterisation::FL
double FL(double xbj, double q2)
Longitudinal structure function.
Definition
Parameterisation.cpp:59
cepgen
Common namespace for this Monte Carlo generator.
Definition
CommandLineHandler.cpp:36
cepgen::strfun::Parameterisation::Arguments
Definition
Parameterisation.h:56
cepgen::strfun::Parameterisation::Arguments::valid
bool valid() const
Definition
Parameterisation.h:58
cepgen::strfun::Parameterisation::Arguments::operator<<
friend std::ostream & operator<<(std::ostream &, const Arguments &)
Definition
Parameterisation.cpp:140
cepgen::strfun::Parameterisation::Arguments::xbj
double xbj
Definition
Parameterisation.h:60
cepgen::strfun::Parameterisation::Arguments::q2
double q2
Definition
Parameterisation.h:60
cepgen::strfun::Parameterisation::Arguments::operator==
bool operator==(const Arguments &oth) const
Definition
Parameterisation.h:57
cepgen::strfun::Parameterisation::Values
Definition
Parameterisation.h:62
cepgen::strfun::Parameterisation::Values::fe
double fe
Electric proton form factor.
Definition
Parameterisation.h:72
cepgen::strfun::Parameterisation::Values::fm
double fm
Magnetic proton form factor.
Definition
Parameterisation.h:73
cepgen::strfun::Parameterisation::Values::operator<<
friend std::ostream & operator<<(std::ostream &, const Values &)
Definition
Parameterisation.cpp:144
cepgen::strfun::Parameterisation::Values::fl
double fl
Last computed longitudinal structure function value.
Definition
Parameterisation.h:67
cepgen::strfun::Parameterisation::Values::f2
double f2
Last computed transverse structure function value.
Definition
Parameterisation.h:66
cepgen::strfun::Parameterisation::Values::clear
void clear()
Definition
Parameterisation.h:63
cepgen::strfun::Parameterisation::Values::w1
double w1
Longitudinal form factor.
Definition
Parameterisation.h:70
cepgen::strfun::Parameterisation::Values::w2
double w2
Definition
Parameterisation.h:71
CepGen
StructureFunctions
Parameterisation.h
Generated on Mon Jul 29 2024 for CepGen by
1.9.7