cepgen is hosted by Hepforge, IPPP Durham
CepGen 1.2.5
Central exclusive processes event generator
Loading...
Searching...
No Matches
Steerable.h
Go to the documentation of this file.
1/*
2 * CepGen: a central exclusive processes event generator
3 * Copyright (C) 2021-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_Core_Steerable_h
20#define CepGen_Core_Steerable_h
21
23
24namespace cepgen {
26 class Steerable {
27 public:
28 explicit Steerable(const ParametersList&);
29 virtual ~Steerable() = default;
30
32
33 inline virtual const ParametersList& parameters() const { return params_; }
34 virtual void setParameters(const ParametersList&);
35
36 protected:
38 template <typename T>
39 inline T steer(const std::string& key) const {
40 return params_.get<T>(key);
41 }
43 template <typename T, typename U>
44 inline U steerAs(const std::string& key) const {
45 return params_.getAs<T, U>(key);
46 }
48 inline std::string steerName() const { return steer<std::string>(MODULE_NAME); }
49 std::string steerPath(const std::string& key) const;
51 };
52} // namespace cepgen
53
54#endif
A description object for parameters collection.
U getAs(const std::string &key, const U &def=default_arg< U >::get()) const
Get a recast parameter value.
T get(const std::string &key, const T &def=default_arg< T >::get()) const
Get a parameter value.
Base runtime module object.
Definition Steerable.h:26
std::string steerName() const
Retrieve module name from parameters.
Definition Steerable.h:48
virtual const ParametersList & parameters() const
Module parameters.
Definition Steerable.h:33
U steerAs(const std::string &key) const
Retrieve a recasted parameters as previously steered.
Definition Steerable.h:44
ParametersList params_
Module parameters.
Definition Steerable.h:50
virtual ~Steerable()=default
static ParametersDescription description()
Description of all object parameters.
Definition Steerable.cpp:42
std::string steerPath(const std::string &key) const
Retrieve a path from common search paths.
Definition Steerable.cpp:30
virtual void setParameters(const ParametersList &)
Set module parameters.
Definition Steerable.cpp:28
T steer(const std::string &key) const
Retrieve a parameters as previously steered.
Definition Steerable.h:39
Common namespace for this Monte Carlo generator.
const char *const MODULE_NAME
Indexing key for the module name Parameters container.