cepgen
is hosted by
Hepforge
,
IPPP Durham
CepGen
1.2.5
Central exclusive processes event generator
Loading...
Searching...
No Matches
AlphaEMBurkhardt.cpp
Go to the documentation of this file.
1
/*
2
* CepGen: a central exclusive processes event generator
3
* Copyright (C) 2013-2021 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/CouplingFactory.h
"
20
#include "
CepGen/Physics/Constants.h
"
21
#include "
CepGen/Physics/Coupling.h
"
22
23
namespace
cepgen
{
26
class
AlphaEMBurkhardt
final :
public
Coupling
{
27
public
:
28
explicit
AlphaEMBurkhardt
(
const
ParametersList
& params) :
Coupling
(params), q2min_(
steer
<double>(
"q2min"
)) {}
29
30
static
ParametersDescription
description
() {
31
auto
desc =
Coupling::description
();
32
desc.setDescription(
"Burkhardt et al. alpha(EM) evolution algorithm"
);
33
desc.add<
double
>(
"q2min"
, 2.e-6).setDescription(
"Minimum Q^2 to start alpha(EM) evolution"
);
34
return
desc;
35
}
36
37
double
operator()
(
double
q)
const override
{
38
const
double
q2 = q * q;
39
if
(q2 < q2min_)
40
return
constants::ALPHA_EM
;
41
const
double
log_q2 = log(q2), log_1_pl_q2 = log1p(q2);
42
// Calculate real part of photon vacuum polarization.
43
// - for leptons simplify by using asymptotic (Q^2 >> m^2) expressions.
44
// - for hadrons use parametrization of H. Burkhardt et al.
45
// See R. Kleiss et al, CERN 89-08, vol. 3, pp. 129-131.
46
double
rpigg;
47
if
(q2 < 9.e-2)
48
rpigg = AEM_3PI * (13.4916 + log_q2) + 0.00835 * log_1_pl_q2;
49
else
if
(q2 < 9.)
50
rpigg = AEM_3PI * (16.32 + 2. * log_q2) + 0.00238 * log1p(3.927 * q2);
51
else
if
(q2 < 1.e4)
52
rpigg = AEM_3PI * (13.4955 + 3. * log_q2) + 0.00165 + 0.00299 * log_1_pl_q2;
53
else
54
rpigg = AEM_3PI * (13.4955 + 3. * log_q2) + 0.00221 + 0.00293 * log_1_pl_q2;
55
return
constants::ALPHA_EM
/ (1. - rpigg);
56
}
57
58
private
:
59
static
constexpr
double
AEM_3PI =
constants::ALPHA_EM
/ 3. * M_1_PI;
60
const
double
q2min_;
61
};
62
}
// namespace cepgen
63
64
REGISTER_ALPHAEM_MODULE
(
"burkhardt"
, AlphaEMBurkhardt);
Constants.h
CouplingFactory.h
REGISTER_ALPHAEM_MODULE
#define REGISTER_ALPHAEM_MODULE(name, obj)
Add an electromagnetic coupling evolution algorithm.
Definition
CouplingFactory.h:25
Coupling.h
cepgen::AlphaEMBurkhardt
Electromagnetic alpha running calculator.
Definition
AlphaEMBurkhardt.cpp:26
cepgen::AlphaEMBurkhardt::AlphaEMBurkhardt
AlphaEMBurkhardt(const ParametersList ¶ms)
Definition
AlphaEMBurkhardt.cpp:28
cepgen::AlphaEMBurkhardt::operator()
double operator()(double q) const override
Compute for a given .
Definition
AlphaEMBurkhardt.cpp:37
cepgen::AlphaEMBurkhardt::description
static ParametersDescription description()
Definition
AlphaEMBurkhardt.cpp:30
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::constants::ALPHA_EM
constexpr double ALPHA_EM
Electromagnetic coupling constant .
Definition
Constants.h:28
cepgen
Common namespace for this Monte Carlo generator.
Definition
CommandLineHandler.cpp:36
CepGen
Physics
AlphaEMBurkhardt.cpp
Generated on Mon Jul 29 2024 for CepGen by
1.9.7