cepgen is hosted by Hepforge, IPPP Durham
CepGen 1.2.5
Central exclusive processes event generator
Loading...
Searching...
No Matches
DonnachieLandshoff.cpp
Go to the documentation of this file.
1/*
2 * CepGen: a central exclusive processes event generator
3 * Copyright (C) 2023-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 <cmath>
20
23
24namespace cepgen {
25 namespace strfun {
28 class DonnachieLandshoff final : public Parameterisation {
29 public:
30 explicit DonnachieLandshoff(const ParametersList& params)
31 : Parameterisation(params),
32 pA_(steer<double>("A")),
33 pB_(steer<double>("B")),
34 pa_(steer<double>("a")),
35 pb_(steer<double>("b")),
36 epsilon_(steer<double>("epsilon")),
37 delta_r_(steer<double>("deltaR")) {}
38
41 desc.setDescription("Donnachie-Landshoff");
42 desc.add<double>("A", 0.324);
43 desc.add<double>("B", 0.098);
44 desc.add<double>("a", 0.561991692786383);
45 desc.add<double>("b", 0.011133);
46 desc.add<double>("epsilon", 0.0808);
47 desc.add<double>("deltaR", 0.5475);
48 return desc;
49 }
50
51 void eval() override {
52 setF2(pA_ * std::pow(args_.xbj, -epsilon_) * std::pow(args_.q2 / (args_.q2 + pa_), 1 + epsilon_) +
53 pB_ * std::pow(args_.xbj, 1. - delta_r_) * std::pow(args_.q2 / (args_.q2 + pb_), delta_r_));
54 }
55
56 private:
57 const double pA_, pB_, pa_, pb_, epsilon_, delta_r_;
58 };
59 } // namespace strfun
60} // namespace cepgen
62REGISTER_STRFUN("DonnachieLandshoff", 105, DonnachieLandshoff);
#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
F2 parameterisation for Q^2 < 10 GeV^2 .
static ParametersDescription description()
void eval() override
Local structure functions evaluation method.
DonnachieLandshoff(const ParametersList &params)
Base object for the parameterisation of nucleon structure functions.
Arguments args_
Last couple computed.
Parameterisation & setF2(double f2)
static ParametersDescription description()
Generic description for the structure functions.
Common namespace for this Monte Carlo generator.