Jpp  master_rocky-40-g5f0272dcd
the software that should make you happy
Public Types | Public Member Functions | List of all members
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. More...
 
 JOscParametersHelper (const pointer_type &p)
 Constructor. More...
 
 JOscParametersHelper (const JOscParameters_t &parameters)
 Constructor. More...
 
template<class ... Args>
 JOscParametersHelper (const JOscParameters_t &parameters, const std::string &name, argument_type value, const Args &...args)
 Constructor. More...
 
void configure (const pointer_type &p)
 Configure oscillation parameters. More...
 
void configure (const JOscParameters_t &parameters)
 Configure oscillation parameters. More...
 
JOscParameters_tgetParameters () const
 Get reference to oscillation parameters interface. More...
 
JOscParameters_tget () const
 Get pointer to oscillation parameters interface. More...
 
JOscParameter_tget (const std::string &name) const
 Get oscillation parameter. More...
 
void set (const std::string &name, const value_type &value) const
 Set value for a given oscillation parameter. More...
 
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. More...
 
void set (const JOscParametersInterface< value_type > &parameters) const
 Set oscillation parameters. More...
 
bool is_valid () const
 Check validity of oscillation parameters. More...
 

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

Definition at line 27 of file JOscParametersHelper.hh.

◆ JOscParameters_t

Definition at line 28 of file JOscParametersHelper.hh.

◆ JOscParameter_t

Definition at line 30 of file JOscParametersHelper.hh.

◆ JParameter_t

Definition at line 31 of file JOscParametersHelper.hh.

◆ argument_type

Definition at line 33 of file JOscParametersHelper.hh.

◆ value_type

Definition at line 34 of file JOscParametersHelper.hh.

◆ pointer_type

template<class T >
typedef 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  :
45  pointer_type()
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  :
55  pointer_type(p)
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.
Definition: JException.hh:712
Exception for null pointer operation.
Definition: JException.hh:234
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
void reset(T &value)
Reset value.
Definition: JSTDTypes.hh:14
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  }
JOscParameters_t * get() const
Get pointer to oscillation parameters interface.
JOscParametersHelper< T > JOscParametersHelper_t

◆ 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.
Definition: JProperties.hh:501
const value_type getValue() const
Get value of parameter.
Definition: JParameter.hh:82
virtual JProperties getProperties(const JEquationParameters &equation=JOscParametersInterface_t::getEquationParameters())=0
Get properties of this class.
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: