cepgen is hosted by Hepforge, IPPP Durham
CepGen 1.2.5
Central exclusive processes event generator
Loading...
Searching...
No Matches
PartonicParameterisation.h
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
19#include <array>
20
22
23namespace cepgen {
24 namespace strfun {
27 public:
29 virtual ~PartonicParameterisation() = default;
30
32 enum class Mode { full = 0, valence = 1, sea = 2 };
33 friend std::ostream& operator<<(std::ostream&, const Mode& mode);
34
36 void eval() override final;
37
38 protected:
39 virtual double evalxQ2(int flavour, double xbj, double q2) = 0;
41 const unsigned short num_flavours_;
43 const Mode mode_;
44
45 static constexpr std::array<short, 6> QUARK_PDGS = {{1, 2, 3, 4, 5, 6}};
46 static constexpr std::array<short, 6> Q_TIMES_3 = {{
47 -1 /*d*/, 2 /*u*/, -1 /*s*/, 2 /*c*/, -1 /*b*/, 2 /*t*/
48 }};
49 };
50 } // namespace strfun
51} // namespace cepgen
A description object for parameters collection.
Base object for the parameterisation of nucleon structure functions.
Generic partonic level perturbative structure functions built from an external PDFs grid.
void eval() override final
Local structure functions evaluation method.
static constexpr std::array< short, 6 > QUARK_PDGS
static constexpr std::array< short, 6 > Q_TIMES_3
const unsigned short num_flavours_
Number of quark flavours considered in the SF building.
virtual double evalxQ2(int flavour, double xbj, double q2)=0
friend std::ostream & operator<<(std::ostream &, const Mode &mode)
const Mode mode_
Quarks types considered in the SF building.
Common namespace for this Monte Carlo generator.