cepgen is hosted by Hepforge, IPPP Durham
CepGen N/A
Central exclusive processes event generator
FunctionIntegrand.h
Go to the documentation of this file.
1/*
2 * CepGen: a central exclusive processes event generator
3 * Copyright (C) 2013-2025 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#ifndef CepGen_Integration_FunctionIntegrand_h
20#define CepGen_Integration_FunctionIntegrand_h
21
22#include <functional>
23
25
26namespace cepgen {
28 class FunctionIntegrand final : public Integrand {
29 public:
30 explicit FunctionIntegrand(size_t, const std::function<double(const std::vector<double>&)>&);
31
32 double eval(const std::vector<double>&) override;
33 size_t size() const override { return num_dimensions_; }
34
35 private:
36 const std::function<double(const std::vector<double>&)> function_{};
37 const size_t num_dimensions_{0ull};
38 };
39} // namespace cepgen
40
41#endif
Wrapper to the function to be integrated.
FunctionIntegrand(size_t, const std::function< double(const std::vector< double > &)> &)
double eval(const std::vector< double > &) override
Compute the integrand for a given coordinates set.
size_t size() const override
Phase space dimension.
An integrand wrapper placeholder.
Definition Integrand.h:26
Common namespace for this Monte Carlo generator.
Definition Handler.h:26