cepgen is hosted by Hepforge, IPPP Durham
CepGen 1.2.5
Central exclusive processes event generator
Loading...
Searching...
No Matches
KMRGluonKTFlux.cpp
Go to the documentation of this file.
1/*
2 * CepGen: a central exclusive processes event generator
3 * Copyright (C) 2023 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#include "CepGen/Physics/PDG.h"
23
24namespace cepgen {
25 struct KMRGluonKTFlux final : public KTFlux {
26 using KTFlux::KTFlux;
28 auto desc = KTFlux::description();
29 desc.setDescription("Proton inelastic gluon emission (KMR flux)");
30 return desc;
31 }
32 double fluxMX2(double x, double kt2, double mx2) const override {
33 if (!x_range_.contains(x, true))
34 return 0.;
35 return kmr::GluonGrid::get()(x, kt2, mx2);
36 }
37 pdgid_t partonPdgId() const override { return PDG::gluon; }
38 bool fragmenting() const override { return false; }
39 double mass2() const override { return mp2_; }
40 };
41} // namespace cepgen
42
43REGISTER_KT_FLUX("KMR", 20, KMRGluonKTFlux);
#define REGISTER_KT_FLUX(name, id, obj)
Add a generic KT-factorised flux evaluator builder definition.
KTFlux(const ParametersList &)
Definition KTFlux.cpp:24
static ParametersDescription description()
Definition KTFlux.cpp:26
bool contains(double val, bool exclude_boundaries=false) const
Check if value is inside limits' boundaries.
Definition Limits.cpp:77
@ gluon
Definition PDG.h:40
A description object for parameters collection.
const double mp2_
Definition PartonFlux.h:39
const Limits x_range_
Definition PartonFlux.h:40
static GluonGrid & get(const cepgen::ParametersList &params={})
Retrieve the grid interpolator (singleton)
Definition GluonGrid.cpp:27
Common namespace for this Monte Carlo generator.
unsigned long long pdgid_t
Alias for the integer-like particle PDG id.
bool fragmenting() const override
Is initiator particle fragmenting after parton emission?
static ParametersDescription description()
double fluxMX2(double x, double kt2, double mx2) const override
Compute the kt-dependent flux for this x value and remnant mass.
pdgid_t partonPdgId() const override
Parton PDG identifier.
double mass2() const override
Initiator particle squared mass (in )