Jpp master_rocky-44-g75b7c4f75
the software that should make you happy
Loading...
Searching...
No Matches
JOSCPROB::JOscParametersHelper< T > Struct Template Reference

Helper class for oscillation parameters. More...

#include <JOscParametersHelper.hh>

Inheritance diagram for JOSCPROB::JOscParametersHelper< T >:

Public Types

typedef JOscParametersHelper< T > JOscParametersHelper_t
 
typedef JOscParametersInterface< T > JOscParameters_t
 
typedef JOscParameters_t::JOscParameter_t JOscParameter_t
 
typedef JOscParameters_t::JParameter_t JParameter_t
 
typedef JOscParameters_t::argument_type argument_type
 
typedef JOscParameters_t::value_type value_type
 
typedef std::shared_ptr< JOscParameters_tpointer_type
 

Public Member Functions

 JOscParametersHelper ()
 Default constructor.
 
 JOscParametersHelper (const pointer_type &p)
 Constructor.
 
 JOscParametersHelper (const JOscParameters_t &parameters)
 Constructor.
 
template<class ... Args>
 JOscParametersHelper (const JOscParameters_t &parameters, const std::string &name, argument_type value, const Args &...args)
 Constructor.
 
void configure (const pointer_type &p)
 Configure oscillation parameters.
 
void configure (const JOscParameters_t &parameters)
 Configure oscillation parameters.
 
JOscParameters_tgetParameters () const
 Get reference to oscillation parameters interface.
 
JOscParameters_tget () const
 Get pointer to oscillation parameters interface.
 
JOscParameter_tget (const std::string &name) const
 Get oscillation parameter.
 
void set (const std::string &name, const value_type &value) const
 Set value for a given oscillation parameter.
 
template<class ... Args>
void set (const std::string &name, const value_type &value, const Args &...args) const
 Set value for given list of oscillation parameters.
 
void set (const JOscParametersInterface< value_type > &parameters) const
 Set oscillation parameters.
 
bool is_valid () const
 Check validity of oscillation parameters.
 

Detailed Description

template<class T>
struct JOSCPROB::JOscParametersHelper< T >

Helper class for oscillation parameters.

Definition at line 24 of file JOscParametersHelper.hh.

Member Typedef Documentation

◆ JOscParametersHelper_t

template<class T >
JOscParametersHelper<T> JOSCPROB::JOscParametersHelper< T >::JOscParametersHelper_t

Definition at line 27 of file JOscParametersHelper.hh.

◆ JOscParameters_t

template<class T >
JOscParametersInterface<T> JOSCPROB::JOscParametersHelper< T >::JOscParameters_t

Definition at line 28 of file JOscParametersHelper.hh.

◆ JOscParameter_t

template<class T >
JOscParameters_t::JOscParameter_t JOSCPROB::JOscParametersHelper< T >::JOscParameter_t

Definition at line 30 of file JOscParametersHelper.hh.

◆ JParameter_t

template<class T >
JOscParameters_t::JParameter_t JOSCPROB::JOscParametersHelper< T >::JParameter_t

Definition at line 31 of file JOscParametersHelper.hh.

◆ argument_type

template<class T >
JOscParameters_t::argument_type JOSCPROB::JOscParametersHelper< T >::argument_type

Definition at line 33 of file JOscParametersHelper.hh.

◆ value_type

template<class T >
JOscParameters_t::value_type JOSCPROB::JOscParametersHelper< T >::value_type

Definition at line 34 of file JOscParametersHelper.hh.

◆ pointer_type

template<class T >
std::shared_ptr<JOscParameters_t> JOSCPROB::JOscParametersHelper< T >::pointer_type

Definition at line 36 of file JOscParametersHelper.hh.

Constructor & Destructor Documentation

◆ JOscParametersHelper() [1/4]

template<class T >
JOSCPROB::JOscParametersHelper< T >::JOscParametersHelper ( )
inline

Default constructor.

Definition at line 44 of file JOscParametersHelper.hh.

44 :
46 {}
std::shared_ptr< JOscParameters_t > pointer_type

◆ JOscParametersHelper() [2/4]

template<class T >
JOSCPROB::JOscParametersHelper< T >::JOscParametersHelper ( const pointer_type & p)
inline

Constructor.

Parameters
ppointer to oscillation parameters

Definition at line 54 of file JOscParametersHelper.hh.

54 :
56 {}

◆ JOscParametersHelper() [3/4]

template<class T >
JOSCPROB::JOscParametersHelper< T >::JOscParametersHelper ( const JOscParameters_t & parameters)
inline

Constructor.

Parameters
parametersoscillation parameters

Definition at line 64 of file JOscParametersHelper.hh.

65 {
66 this->configure(parameters);
67 }
void configure(const pointer_type &p)
Configure oscillation parameters.

◆ JOscParametersHelper() [4/4]

template<class T >
template<class ... Args>
JOSCPROB::JOscParametersHelper< T >::JOscParametersHelper ( const JOscParameters_t & parameters,
const std::string & name,
argument_type value,
const Args &... args )
inline

Constructor.

Parameters
parametersoscillation parameters
nameparameter name
valueparameter value
argsremaining pairs of parameter names and values

Definition at line 79 of file JOscParametersHelper.hh.

83 {
84 this->configure(parameters);
85 this->set(name, value, args...);
86 }
void set(const std::string &name, const value_type &value) const
Set value for a given oscillation parameter.

Member Function Documentation

◆ configure() [1/2]

template<class T >
void JOSCPROB::JOscParametersHelper< T >::configure ( const pointer_type & p)
inline

Configure oscillation parameters.

Parameters
pshared pointer to oscillation parameters

Definition at line 94 of file JOscParametersHelper.hh.

95 {
96 static_cast<pointer_type&>(*this);
97 }

◆ configure() [2/2]

template<class T >
void JOSCPROB::JOscParametersHelper< T >::configure ( const JOscParameters_t & parameters)
inline

Configure oscillation parameters.

Parameters
parametersoscillation parameters

Definition at line 105 of file JOscParametersHelper.hh.

106 {
107 using namespace std;
108 using namespace JPP;
109
110 JOscParameters_t* p = dynamic_cast<JOscParameters_t*>(parameters.clone());
111
112 if (p != NULL) {
113 reset(p);
114 } else {
115 THROW(JNullPointerException, "JOscParametersHelper::configure(): Unable to retrieve oscillation parameters interface.");
116 }
117 }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Exception for null pointer operation.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
void reset(T &value)
Reset value.
JOscParametersInterface< T > JOscParameters_t

◆ getParameters()

template<class T >
JOscParameters_t & JOSCPROB::JOscParametersHelper< T >::getParameters ( ) const
inline

Get reference to oscillation parameters interface.

Returns
reference to oscillation parameters interface

Definition at line 125 of file JOscParametersHelper.hh.

126 {
127 using namespace JPP;
128
129 if (static_cast<const JOscParametersHelper_t&>(*this)) {
130 return *(this->get());
131 } else {
132 THROW(JNullPointerException, "JOscParametersHelper::getParameters(): Oscillation parameters interface is not set.");
133 }
134 }
JOscParametersHelper< T > JOscParametersHelper_t
JOscParameters_t * get() const
Get pointer to oscillation parameters interface.

◆ get() [1/2]

template<class T >
JOscParameters_t * JOSCPROB::JOscParametersHelper< T >::get ( ) const
inline

Get pointer to oscillation parameters interface.

Returns
pointer to oscillation parameters interface

Definition at line 142 of file JOscParametersHelper.hh.

143 {
144 return pointer_type::get();
145 }

◆ get() [2/2]

template<class T >
JOscParameter_t & JOSCPROB::JOscParametersHelper< T >::get ( const std::string & name) const
inline

Get oscillation parameter.

Parameters
nameparameter name
Returns
parameter

Definition at line 154 of file JOscParametersHelper.hh.

155 {
156 return getParameters().get(name);
157 }
const JOscParameter_t & get(const std::string &name) const
Get oscillation parameter.
JOscParameters_t & getParameters() const
Get reference to oscillation parameters interface.

◆ set() [1/3]

template<class T >
void JOSCPROB::JOscParametersHelper< T >::set ( const std::string & name,
const value_type & value ) const
inline

Set value for a given oscillation parameter.

Parameters
nameparameter name
valueparameter value

Definition at line 167 of file JOscParametersHelper.hh.

169 {
170 getParameters().set(name, value);
171 }
void set(const std::string &name, const value_type &value)
Set value for a given oscillation parameter.

◆ set() [2/3]

template<class T >
template<class ... Args>
void JOSCPROB::JOscParametersHelper< T >::set ( const std::string & name,
const value_type & value,
const Args &... args ) const
inline

Set value for given list of oscillation parameters.

Parameters
nameparameter name
valueparameter value
argsremaining pairs of parameter names and values

Definition at line 182 of file JOscParametersHelper.hh.

185 {
186 this->set(name, value);
187 this->set(args...);
188 }

◆ set() [3/3]

template<class T >
void JOSCPROB::JOscParametersHelper< T >::set ( const JOscParametersInterface< value_type > & parameters) const
inline

Set oscillation parameters.

Parameters
parametersoscillation parameters

Definition at line 196 of file JOscParametersHelper.hh.

197 {
198 using namespace std;
199 using namespace JPP;
200
201 const JProperties properties = parameters.getProperties();
202
203 for (JProperties::const_iterator i = properties.cbegin(); i != properties.cend(); ++i) {
204
205 const JOscParameter<value_type>& parameter = i->second.getValue<const JOscParameter<value_type> >();
206
207 this->set(i->first, parameter.getValue());
208 }
209 }
Utility class to parse parameter values.
const value_type getValue() const
Get value of parameter.
Definition JParameter.hh:82
Abstract base class for oscillation parameter.

◆ is_valid()

template<class T >
bool JOSCPROB::JOscParametersHelper< T >::is_valid ( ) const
inline

Check validity of oscillation parameters.

Returns
true if all oscillation parameters are valid; else false

Definition at line 217 of file JOscParametersHelper.hh.

218 {
219 return getParameters().is_valid();
220 }
bool is_valid() const
Check validity of oscillation parameters.

The documentation for this struct was generated from the following file: