cepgen is hosted by Hepforge, IPPP Durham
CepGen 1.2.5
Central exclusive processes event generator
Loading...
Searching...
No Matches
GSLIntegrator.h
Go to the documentation of this file.
1/*
2 * CepGen: a central exclusive processes event generator
3 * Copyright (C) 2013-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 CepGen_Integration_GSLIntegrator_h
20#define CepGen_Integration_GSLIntegrator_h
21
22#include <gsl/gsl_rng.h>
23
26
27namespace cepgen {
28 class GSLIntegrator : public Integrator {
29 public:
30 explicit GSLIntegrator(const ParametersList&);
31
33
34 void setLimits(const std::vector<Limits>&) override;
35
36 protected:
39 std::function<double(double*, size_t, void*)> funct_;
42 std::unique_ptr<gsl_monte_function> function_;
43 std::vector<double> xlow_, xhigh_;
44 };
45} // namespace cepgen
46
47#endif
std::vector< double > xhigh_
std::vector< double > xlow_
std::function< double(double *, size_t, void *)> funct_
A functor wrapping GSL's function footprint.
void setIntegrand(Integrand &)
std::unique_ptr< gsl_monte_function > function_
GSL structure storing the function to be integrated by this integrator instance (along with its param...
void setLimits(const std::vector< Limits > &) override
Specify the variables limits on integration.
static ParametersDescription description()
An integrand wrapper placeholder.
Definition Integrand.h:27
Monte-Carlo integration algorithm.
Definition Integrator.h:28
A description object for parameters collection.
Common namespace for this Monte Carlo generator.