cepgen is hosted by Hepforge, IPPP Durham
CepGen N/A
Central exclusive processes event generator
Functional.h
Go to the documentation of this file.
1/*
2 * CepGen: a central exclusive processes event generator
3 * Copyright (C) 2022-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#ifndef CepGenPython_Functional_h
20#define CepGenPython_Functional_h
21
25
26namespace cepgen::python {
27 class Functional final : public utils::Functional {
28 public:
29 explicit Functional(const ParametersList&);
30 explicit Functional(const ObjectPtr&);
31
32 double eval() const override;
33 const std::vector<std::string>& arguments() const;
34
36
37 private:
38 const std::unique_ptr<Environment> environment_;
39 const std::string name_;
40 std::vector<std::string> arguments_;
41 ObjectPtr mod_{nullptr};
42 ObjectPtr func_{nullptr};
43 };
44} // namespace cepgen::python
45
46#endif
A description object for parameters collection.
double eval() const override
Compute the functional for a given value of the variables.
Functional(const ParametersList &)
static ParametersDescription description()
Functional(const ObjectPtr &)
const std::vector< std::string > & arguments() const
Smart pointer to a Python object and its dereferencing operator.
Definition ObjectPtr.h:35
A string-to-functional parser.
Definition Functional.h:32