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
22
23namespace cepgen {
24 namespace pythia6 {
25 class AlphaS final : public Coupling {
26 public:
27 explicit AlphaS(const ParametersList& params) : Coupling(params) {
28 mstu(111) = steer<int>("order");
29 mstu(112) = steer<int>("nf");
30 mstu(113) = steer<int>("minNf");
31 mstu(114) = steer<int>("maxNf");
32 mstu(115) = steer<int>("singularityTreatment");
33 paru(111) = steer<double>("fixedAlphaS");
34 paru(112) = steer<double>("Lambda");
35 paru(113) = steer<double>("flavourThreshold");
36 paru(114) = steer<double>("minQ2");
37 paru(115) = steer<double>("maxQ2");
38 }
39
42 desc.setDescription("Pythia6 modelling of alpha(S) running");
43 desc.add<int>("order", mstu(111))
44 .setDescription("order of alpha(S) evaluation")
45 .allow(0, "fixed at 'fixedAlphaS'")
46 .allow(1, "1st order running")
47 .allow(2, "2nd order running");
48 desc.add<int>("nf", mstu(112)).setDescription("nominal number of flavours assumed in alpha(s) expression");
49 desc.add<int>("minNf", mstu(113))
50 .setDescription("minimum number of flavours that may be assumed in alpha(S) expression");
51 desc.add<int>("maxNf", mstu(114))
52 .setDescription("minimum number of flavours that may be assumed in alpha(S) expression");
53 desc.add<int>("singularityTreatment", mstu(115))
54 .setDescription("treatment of alpha(S) singularities for Q^2->0")
55 .allow(0, "allow divergence")
56 .allow(1, "log-softening")
57 .allow(2, "freeze under Q^2 transition value");
58 desc.add<double>("fixedAlphaS", paru(111))
59 .setDescription(
60 "fix alpha(S) value assumed when order=0 (and also in parton showers when alpha(S) is assumed fix "
61 "there)");
62 desc.add<double>("Lambda", paru(112)).setDescription("Lambda value used in running");
63 desc.add<double>("flavourThreshold", paru(113))
64 .setDescription(
65 "flavour threshold, for the effective number of flavours 'nf' to use (='flavourThreshold'*m_q^2)");
66 desc.add<double>("minQ2", paru(114)).setDescription("Q^2 value below which alpha(S) is assumed constant");
67 desc.add<double>("maxQ2", paru(115)).setDescription("maximum alpha(S) value computable");
68 return desc;
69 }
70
71 inline double operator()(double q) const override { return pyalps(q * q); }
72 };
73 } // namespace pythia6
74} // 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 AlphaS.cpp:71
AlphaS(const ParametersList &params)
Definition AlphaS.cpp:27
static ParametersDescription description()
Definition AlphaS.cpp:40
static int & mstu(size_t i)
double pyalps(double q2)
static double & paru(size_t i)
Common namespace for this Monte Carlo generator.