cepgen is hosted by Hepforge, IPPP Durham
CepGen 1.2.5
Central exclusive processes event generator
Loading...
Searching...
No Matches
StructureFunctions.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 {
27 public:
28 explicit StructureFunctions(const ParametersList& params)
29 : strfun::Parameterisation(params), idhad_(steer<int>("idhad")), nset_(steer<int>("nset")) {}
30
32 initialise();
34 desc.setDescription("Herwig 6 structure functions evaluator");
35 desc.add<int>("idhad", 73)
36 .setDescription("type of hadron")
37 .allow(30, "pi-")
38 .allow(38, "pi+")
39 .allow(59, "photon")
40 .allow(73, "proton")
41 .allow(75, "neutron")
42 .allow(91, "antiproton")
43 .allow(93, "antineutron");
44 desc.add<int>("nset", 8)
45 .setDescription("structure functions set")
46 .allow(1, "Duke & Owens set 1 (for soft/hard glue)")
47 .allow(2, "Duke & Owens set 2 (for soft/hard glue)")
48 .allow(3, "Eichten & al. set 1 (nucleons only)")
49 .allow(4, "Eichten & al. set 2 (nucleons only)")
50 .allow(5, "Owens set 1.1")
51 .allow(6, "MRST98LO (central alpha(S)/gluon)")
52 .allow(7, "MRST98LO (higher gluon)")
53 .allow(8, "MRST98LO (average of central and higher gluon)");
54 return desc;
55 }
56
57 private:
58 void eval() override { setF2(hwsfun(args_.xbj, args_.q2, idhad_, nset_, 2)); }
59 const int idhad_, nset_;
60 };
61 } // namespace herwig6
62} // namespace cepgen
#define REGISTER_STRFUN(name, id, obj)
Add a structure functions definition to the list of handled parameterisation.
A description object for parameters collection.
T steer(const std::string &key) const
Retrieve a parameters as previously steered.
Definition Steerable.h:39
static ParametersDescription description()
StructureFunctions(const ParametersList &params)
Base object for the parameterisation of nucleon structure functions.
Arguments args_
Last couple computed.
Parameterisation & setF2(double f2)
Parameterisation(const ParametersList &)
static ParametersDescription description()
Generic description for the structure functions.
double hwsfun(double xbj, double q2, int idhad, int nset, int ibeam)
Common namespace for this Monte Carlo generator.