cepgen
is hosted by
Hepforge
,
IPPP Durham
CepGen
1.2.5
Central exclusive processes event generator
Loading...
Searching...
No Matches
StructureFunctions.cpp
Go to the documentation of this file.
1
/*
2
* CepGen: a central exclusive processes event generator
3
* Copyright (C) 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
#include "
CepGen/Modules/StructureFunctionsFactory.h
"
20
#include "
CepGen/StructureFunctions/Parameterisation.h
"
21
#include "
CepGen/Utils/Message.h
"
22
#include "
CepGenAddOns/Herwig6Wrapper/Herwig6Interface.h
"
23
24
namespace
cepgen
{
25
namespace
herwig6
{
26
class
StructureFunctions
final :
public
strfun::Parameterisation
{
27
public
:
28
explicit
StructureFunctions
(
const
ParametersList
& params)
29
: strfun::
Parameterisation
(params), idhad_(
steer
<int>(
"idhad"
)), nset_(
steer
<int>(
"nset"
)) {}
30
31
static
ParametersDescription
description
() {
32
initialise
();
33
auto
desc =
strfun::Parameterisation::description
();
34
desc.setDescription(
"Herwig 6 structure functions evaluator"
);
35
desc.add<
int
>(
"idhad"
, 73)
36
.setDescription(
"type of hadron"
)
37
.allow(30,
"pi-"
)
38
.allow(38,
"pi+"
)
39
.allow(59,
"photon"
)
40
.allow(73,
"proton"
)
41
.allow(75,
"neutron"
)
42
.allow(91,
"antiproton"
)
43
.allow(93,
"antineutron"
);
44
desc.add<
int
>(
"nset"
, 8)
45
.setDescription(
"structure functions set"
)
46
.allow(1,
"Duke & Owens set 1 (for soft/hard glue)"
)
47
.allow(2,
"Duke & Owens set 2 (for soft/hard glue)"
)
48
.allow(3,
"Eichten & al. set 1 (nucleons only)"
)
49
.allow(4,
"Eichten & al. set 2 (nucleons only)"
)
50
.allow(5,
"Owens set 1.1"
)
51
.allow(6,
"MRST98LO (central alpha(S)/gluon)"
)
52
.allow(7,
"MRST98LO (higher gluon)"
)
53
.allow(8,
"MRST98LO (average of central and higher gluon)"
);
54
return
desc;
55
}
56
57
private
:
58
void
eval()
override
{
setF2
(
hwsfun
(
args_
.
xbj
,
args_
.
q2
, idhad_, nset_, 2)); }
59
const
int
idhad_, nset_;
60
};
61
}
// namespace herwig6
62
}
// namespace cepgen
63
using
Herwig6StructureFunctions
=
cepgen::herwig6::StructureFunctions
;
64
REGISTER_STRFUN
(
"herwig6"
, 403,
Herwig6StructureFunctions
);
Herwig6Interface.h
Message.h
StructureFunctionsFactory.h
REGISTER_STRFUN
#define REGISTER_STRFUN(name, id, obj)
Add a structure functions definition to the list of handled parameterisation.
Definition
StructureFunctionsFactory.h:25
Parameterisation.h
cepgen::ParametersDescription
A description object for parameters collection.
Definition
ParametersDescription.h:26
cepgen::ParametersList
Definition
ParametersList.h:52
cepgen::Steerable::steer
T steer(const std::string &key) const
Retrieve a parameters as previously steered.
Definition
Steerable.h:39
cepgen::herwig6::StructureFunctions
Definition
StructureFunctions.cpp:26
cepgen::herwig6::StructureFunctions::description
static ParametersDescription description()
Definition
StructureFunctions.cpp:31
cepgen::herwig6::StructureFunctions::StructureFunctions
StructureFunctions(const ParametersList ¶ms)
Definition
StructureFunctions.cpp:28
cepgen::strfun::Parameterisation
Base object for the parameterisation of nucleon structure functions.
Definition
Parameterisation.h:30
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::Parameterisation
Parameterisation(const ParametersList &)
Definition
Parameterisation.cpp:27
cepgen::strfun::Parameterisation::description
static ParametersDescription description()
Generic description for the structure functions.
Definition
Parameterisation.cpp:148
cepgen::herwig6::initialise
void initialise()
Definition
Herwig6Interface.cpp:36
cepgen::herwig6::hwsfun
double hwsfun(double xbj, double q2, int idhad, int nset, int ibeam)
Definition
Herwig6Interface.cpp:51
cepgen
Common namespace for this Monte Carlo generator.
Definition
CommandLineHandler.cpp:36
python_modules.AlphaEM.herwig6_cfi.herwig6
herwig6
Definition
herwig6_cfi.py:3
cepgen::strfun::Parameterisation::Arguments::xbj
double xbj
Definition
Parameterisation.h:60
cepgen::strfun::Parameterisation::Arguments::q2
double q2
Definition
Parameterisation.h:60
CepGenAddOns
Herwig6Wrapper
StructureFunctions.cpp
Generated on Mon Jul 29 2024 for CepGen by
1.9.7