cepgen
is hosted by
Hepforge
,
IPPP Durham
CepGen
1.2.5
Central exclusive processes event generator
Loading...
Searching...
No Matches
AlphaS.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 <apfel/apfelxx.h>
20
21
#include "
CepGen/Modules/CouplingFactory.h
"
22
#include "
CepGen/Physics/Coupling.h
"
23
24
namespace
cepgen
{
25
namespace
apfelpp
{
26
class
AlphaS
final :
public
cepgen::Coupling
{
27
public
:
28
explicit
AlphaS
(
const
ParametersList
& params)
29
:
cepgen
::
Coupling
(params),
30
use_tabulated_(
steer
<bool>(
"useTabulated"
)),
31
alpha_s_(new apfel::AlphaQCD(
steer
<double>(
"alphaSref"
),
32
steer
<double>(
"muQCDref"
),
33
steer
<std::vector<double> >(
"quarkThresholds"
),
34
steer
<int>(
"order"
))),
35
tab_params_(
steer
<
ParametersList
>(
"tabulatedParameters"
)),
36
alpha_s_tab_(use_tabulated_ ? new apfel::TabulateObject<double>(*alpha_s_,
37
tab_params_.get<int>(
"numValues"
),
38
tab_params_.get<
Limits
>(
"Qrange"
).min(),
39
tab_params_.get<
Limits
>(
"Qrange"
).max(),
40
tab_params_.get<int>(
"order"
),
41
tab_params_.get<double>(
"Lambda"
))
42
: nullptr) {
43
apfel::Banner();
44
}
45
46
static
ParametersDescription
description
() {
47
auto
desc =
cepgen::Coupling::description
();
48
desc.setDescription(
"APFEL++ alpha(S) evolution algorithm"
);
49
desc.add<
bool
>(
"useTabulated"
,
true
).setDescription(
"use the tabulated, fast values interpolator?"
);
50
desc.add<
double
>(
"alphaSref"
, 0.118);
51
desc.add<
double
>(
"muQCDref"
, 91.1876);
52
desc.add<std::vector<double> >(
"quarkThresholds"
, {0., 0., 0., M_SQRT2, 4.5, 175.});
53
desc.add<
int
>(
"order"
, 2)
54
.setDescription(
"QCD perturbative evolution order"
)
55
.allow(0,
"LO"
)
56
.allow(1,
"NLO"
)
57
.allow(2,
"NNLO"
)
58
.allow(3,
"NNNLO"
);
59
60
auto
tab_desc =
ParametersDescription
();
61
tab_desc.add<
int
>(
"numValues"
, 100).setDescription(
"number of values evaluated to build the interpolation"
);
62
tab_desc.add<
Limits
>(
"Qrange"
, {0.9, 1001.}).setDescription(
"Q range for the interpolation"
);
63
tab_desc.add<
int
>(
"order"
, 3).setDescription(
"interpolation order"
);
64
tab_desc.add<
double
>(
"Lambda"
, 0.25)
65
.setDescription(
"Lambda parameter in the tabulation function (ln(ln(Q^2/Lambda^2))"
);
66
desc.add(
"tabulatedParameters"
, tab_desc);
67
return
desc;
68
}
69
70
double
operator()
(
double
q)
const override
{
71
return
use_tabulated_ ? alpha_s_tab_->Evaluate(q) : alpha_s_->Evaluate(q);
72
}
73
74
private
:
75
const
bool
use_tabulated_;
76
const
std::unique_ptr<apfel::AlphaQCD> alpha_s_;
77
const
ParametersList
tab_params_;
78
const
std::unique_ptr<apfel::TabulateObject<double> > alpha_s_tab_;
79
};
80
}
// namespace apfelpp
81
}
// namespace cepgen
82
using
AlphaSAPFELpp
=
cepgen::apfelpp::AlphaS
;
83
REGISTER_ALPHAS_MODULE
(
"apfelpp"
,
AlphaSAPFELpp
);
CouplingFactory.h
REGISTER_ALPHAS_MODULE
#define REGISTER_ALPHAS_MODULE(name, obj)
Add a strong coupling evolution algorithm.
Definition
CouplingFactory.h:35
Coupling.h
cepgen::Coupling
A generic evaluation algorithm.
Definition
Coupling.h:26
cepgen::Limits
Validity interval for a variable.
Definition
Limits.h:28
cepgen::ParametersDescription
A description object for parameters collection.
Definition
ParametersDescription.h:26
cepgen::ParametersList
Definition
ParametersList.h:52
cepgen::Steerable::description
static ParametersDescription description()
Description of all object parameters.
Definition
Steerable.cpp:42
cepgen::Steerable::steer
T steer(const std::string &key) const
Retrieve a parameters as previously steered.
Definition
Steerable.h:39
cepgen::apfelpp::AlphaS
Definition
AlphaS.cpp:26
cepgen::apfelpp::AlphaS::operator()
double operator()(double q) const override
Compute for a given .
Definition
AlphaS.cpp:70
cepgen::apfelpp::AlphaS::AlphaS
AlphaS(const ParametersList ¶ms)
Definition
AlphaS.cpp:28
cepgen::apfelpp::AlphaS::description
static ParametersDescription description()
Definition
AlphaS.cpp:46
cepgen
Common namespace for this Monte Carlo generator.
Definition
CommandLineHandler.cpp:36
python_modules.AlphaEM.apfelpp_cfi.apfelpp
apfelpp
Definition
apfelpp_cfi.py:3
CepGenAddOns
APFELppWrapper
AlphaS.cpp
Generated on Mon Jul 29 2024 for CepGen by
1.9.7