cepgen is hosted by Hepforge, IPPP Durham
CepGen 1.2.5
Central exclusive processes event generator
Loading...
Searching...
No Matches
AlphaSUN.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 AlphaSUN final : public Coupling {
29 public:
30 explicit AlphaSUN(const ParametersList& params) : Coupling(params), alphas_(new Pythia8::AlphaSUN) {
31 const auto nCHV = steer<int>("Ngauge"), alphaHVorder = nCHV > 1 ? steer<int>("alphaOrder") : 0;
32 if (steer<bool>("setLambda")) {
33 lambda_ = steer<double>("Lambda");
34 alphas_->initLambda(nCHV, steer<int>("nFlav"), alphaHVorder, lambda_);
35 } else {
36 alphas_->initAlpha(
37 nCHV, steer<int>("nFlav"), alphaHVorder, steer<double>("alphaFSR"), steer<double>("alphaFSRrefScale"));
38 lambda_ = alphas_->Lambda();
39 }
40 }
41
44 desc.setDescription("Pythia8 modelling of alpha(S) running in SU(N) model");
45 desc.add<int>("Ngauge", 1);
46 desc.add<int>("nFlav", 1);
47 desc.add<int>("alphaOrder", 0);
48 desc.add<bool>("setLambda", false);
49 desc.add<double>("Lambda", 0.4);
50 desc.add<double>("alphaFSR", 0.1);
51 desc.add<double>("alphaFSRrefScale", 91.188);
52 return desc;
53 }
54
55 inline double operator()(double q) const override { return alphas_->alpha(q * q); }
56
57 private:
58 const std::unique_ptr<Pythia8::AlphaSUN> alphas_;
59 double lambda_{0.};
60 };
61 } // namespace pythia8
62} // namespace cepgen
#define REGISTER_ALPHAS_MODULE(name, obj)
Add a strong 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 AlphaSUN.cpp:55
static ParametersDescription description()
Definition AlphaSUN.cpp:42
AlphaSUN(const ParametersList &params)
Definition AlphaSUN.cpp:30
Common namespace for this Monte Carlo generator.