cepgen
is hosted by
Hepforge
,
IPPP Durham
CepGen
1.2.5
Central exclusive processes event generator
Loading...
Searching...
No Matches
AlphaEM.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 <cmath>
22
23
#include "
CepGen/Modules/CouplingFactory.h
"
24
#include "
CepGen/Physics/Coupling.h
"
25
26
namespace
cepgen
{
27
namespace
apfelpp {
28
class
AlphaEM
final :
public
cepgen::Coupling
{
29
public
:
30
explicit
AlphaEM
(
const
ParametersList
& params)
31
:
cepgen
::
Coupling
(params),
32
alpha_em_(
steer
<double>(
"alphaQEDref"
),
33
steer
<double>(
"muQEDref"
),
34
steer
<std::vector<double> >(
"quarkThresholds"
),
35
steer
<std::vector<double> >(
"leptonThresholds"
),
36
steer
<int>(
"order"
)) {
37
apfel::Banner();
38
}
39
40
static
ParametersDescription
description
() {
41
auto
desc =
cepgen::Coupling::description
();
42
desc.setDescription(
"APFEL++ alpha(EM) evolution algorithm"
);
43
desc.add<
double
>(
"alphaQEDref"
, 1. / 128);
44
desc.add<
double
>(
"muQEDref"
, 91.1876);
45
desc.add<std::vector<double> >(
"quarkThresholds"
, {0., 0., 0., M_SQRT2, 4.5, 175.});
46
desc.add<std::vector<double> >(
"leptonThresholds"
, {0., 0., 1.777});
47
desc.add<
int
>(
"order"
, 0)
48
.setDescription(
"QED evolution order"
)
49
.allow(0,
"leading order"
)
50
.allow(1,
"next-to-leading order"
);
51
return
desc;
52
}
53
54
double
operator()
(
double
q)
const override
{
return
alpha_em_.Evaluate(q); }
55
56
private
:
57
const
apfel::AlphaQED alpha_em_;
58
};
59
}
// namespace apfelpp
60
}
// namespace cepgen
61
using
AlphaEMAPFELpp
=
cepgen::apfelpp::AlphaEM
;
62
REGISTER_ALPHAEM_MODULE
(
"apfelpp"
,
AlphaEMAPFELpp
);
CouplingFactory.h
REGISTER_ALPHAEM_MODULE
#define REGISTER_ALPHAEM_MODULE(name, obj)
Add an electromagnetic coupling evolution algorithm.
Definition
CouplingFactory.h:25
Coupling.h
cepgen::Coupling
A generic evaluation algorithm.
Definition
Coupling.h:26
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::AlphaEM
Definition
AlphaEM.cpp:28
cepgen::apfelpp::AlphaEM::operator()
double operator()(double q) const override
Compute for a given .
Definition
AlphaEM.cpp:54
cepgen::apfelpp::AlphaEM::AlphaEM
AlphaEM(const ParametersList ¶ms)
Definition
AlphaEM.cpp:30
cepgen::apfelpp::AlphaEM::description
static ParametersDescription description()
Definition
AlphaEM.cpp:40
cepgen
Common namespace for this Monte Carlo generator.
Definition
CommandLineHandler.cpp:36
CepGenAddOns
APFELppWrapper
AlphaEM.cpp
Generated on Mon Jul 29 2024 for CepGen by
1.9.7