cepgen is hosted by Hepforge, IPPP Durham
CepGen N/A
Central exclusive processes event generator
FunctionalIntegrand.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_FunctionalIntegrand_h
20#define CepGen_Integration_FunctionalIntegrand_h
21
22#include <memory>
23
26
27namespace cepgen {
29 class FunctionalIntegrand final : public Integrand {
30 public:
31 explicit FunctionalIntegrand(const std::string& expression,
32 const std::vector<std::string>& variables,
33 const std::string& functional_evaluator);
34
35 double eval(const std::vector<double>&) override;
36 size_t size() const override;
37
38 private:
39 std::unique_ptr<utils::Functional> functional_;
40 };
41} // namespace cepgen
42
43#endif
Wrapper to a string-built functional to be integrated.
double eval(const std::vector< double > &) override
Compute the integrand for a given coordinates set.
size_t size() const override
Phase space dimension.
FunctionalIntegrand(const std::string &expression, const std::vector< std::string > &variables, const std::string &functional_evaluator)
An integrand wrapper placeholder.
Definition Integrand.h:26
Common namespace for this Monte Carlo generator.
Definition Handler.h:26