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 <Pythia8/Pythia.h>
20#include <Pythia8/StandardModel.h>
21
25
26namespace cepgen {
27 namespace pythia8 {
28 class AlphaEM final : public Coupling {
29 public:
30 explicit AlphaEM(const ParametersList& params)
31 : Coupling(params), pythia_(new Pythia8::Pythia), alphaem_(new Pythia8::AlphaEM) {
32 pythia_->settings.parm("StandardModel:alphaEM0", steer<double>("alphaEM0"));
33 pythia_->settings.parm("StandardModel:alphaEMmZ", steer<double>("alphaEMmZ"));
34 alphaem_->init(steer<int>("order"), &pythia_->settings);
35 }
36
39 desc.setDescription("Pythia8 modelling of alpha(EM) running");
40 desc.add<int>("order", 1);
41 desc.add<double>("alphaEM0", 0.00729735);
42 desc.add<double>("alphaEMmZ", 0.00781751);
43 return desc;
44 }
45
46 inline double operator()(double q) const override { return alphaem_->alphaEM(q * q); }
47
48 private:
49 const std::unique_ptr<Pythia8::Pythia> pythia_;
50 const std::unique_ptr<Pythia8::AlphaEM> alphaem_;
51 };
52 } // namespace pythia8
53} // namespace cepgen
#define REGISTER_ALPHAEM_MODULE(name, obj)
Add an electromagnetic coupling evolution algorithm.
A generic evaluation algorithm.
Definition Coupling.h:26
A description object for parameters collection.
static ParametersDescription description()
Description of all object parameters.
Definition Steerable.cpp:42
double operator()(double q) const override
Compute for a given .
Definition AlphaEM.cpp:46
AlphaEM(const ParametersList &params)
Definition AlphaEM.cpp:30
static ParametersDescription description()
Definition AlphaEM.cpp:37
Common namespace for this Monte Carlo generator.