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
23
24namespace cepgen {
25 namespace herwig6 {
26 class AlphaS final : public cepgen::Coupling {
27 public:
28 explicit AlphaS(const ParametersList& params) : cepgen::Coupling(params), mode_(steer<int>("mode")) {
29 if (mode_ < 1 || mode_ > 3)
30 throw CG_FATAL("herwig6:AlphaS") << "Invalid mode steered: should be between 1 and 3, got " << mode_ << ".";
31 hwpram_.ncolo = steer<int>("ncolo");
32 hwpram_.qcdlam = steer<double>("qcdlam");
33 hwpram_.qcdl5 = steer<double>("qcdl5");
34 hwualf(0, 0.);
35 }
36
39 desc.setDescription("Herwig6 modelling of alpha(S) running");
40 initialise();
41 desc.add<int>("mode", 1)
42 .setDescription("running mode")
43 .allow(1, "two-loop flavour thresholds")
44 .allow(2, "ratio of mode-1 with 5-flavour beta with Lambda=QCDL3")
45 .allow(3, "one-loop with 5-flavour beta and Lambda=QCDL3");
46 desc.add<int>("ncolo", hwpram_.ncolo).setDescription("number of colours to consider");
47 desc.add<double>("qcdlam", hwpram_.qcdlam).setDescription("5-flavour Lambda_MS-bar at large x/z");
48 desc.add<double>("qcdl5", hwpram_.qcdl5).setDescription("5-flavour Lambda_MC");
49 return desc;
50 }
51
52 inline double operator()(double q) const override { return hwualf(mode_, q * q); }
53
54 private:
55 const int mode_;
56 };
57 } // namespace herwig6
58} // namespace cepgen
#define REGISTER_ALPHAS_MODULE(name, obj)
Add a strong coupling evolution algorithm.
#define CG_FATAL(mod)
Definition Exception.h:61
struct @6 hwpram_
Basic parameters (and quantities derived from them)
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
T steer(const std::string &key) const
Retrieve a parameters as previously steered.
Definition Steerable.h:39
double operator()(double q) const override
Compute for a given .
Definition AlphaS.cpp:52
AlphaS(const ParametersList &params)
Definition AlphaS.cpp:28
static ParametersDescription description()
Definition AlphaS.cpp:37
double hwualf(int mode, double q2)
Common namespace for this Monte Carlo generator.