Jpp  19.1.0
the software that should make you happy
Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
JOSCPROB::JOscParametersInterface< T > Class Template Referenceabstract

Interface class for sets of oscillation parameters. More...

#include <JOscParametersInterface.hh>

Inheritance diagram for JOSCPROB::JOscParametersInterface< T >:
JLANG::JClonable< JClonable_t, JDerived_t > JIO::JSerialisable

Public Types

typedef JOscParametersInterface< T > JOscParametersInterface_t
 
typedef JOscParameter< T > JOscParameter_t
 
typedef JOscParameter_t::JParameter_t JParameter_t
 
typedef JParameter_t::argument_type argument_type
 
typedef JParameter_t::value_type value_type
 
typedef JClonable< JClonable_t >::clone_type clone_type
 

Public Member Functions

 JOscParametersInterface ()
 Default constructor. More...
 
 ~JOscParametersInterface ()
 Virtual destructor. More...
 
virtual JProperties getProperties (const JEquationParameters &equation=JOscParametersInterface_t::getEquationParameters())=0
 Get properties of this class. More...
 
virtual JProperties getProperties (const JEquationParameters &equation=JOscParametersInterface_t::getEquationParameters()) const =0
 Get properties of this class. More...
 
JOscParametersInterface_tgetParameters ()
 Get oscillation parameters. More...
 
const JOscParameter_tget (const std::string &name) const
 Get oscillation parameter. More...
 
JOscParameter_tget (const std::string &name)
 Get oscillation parameter. More...
 
void set (const std::string &name, const value_type &value)
 Set value for a given oscillation parameter. More...
 
template<class ... Args>
void set (const std::string &name, const value_type &value, const Args &...args)
 Set value for given list of oscillation parameters. More...
 
void set (const JOscParametersInterface< value_type > &parameters)
 Set oscillation parameters. More...
 
bool is_valid () const
 Check validity of oscillation parameters. More...
 
bool equals (const JOscParametersInterface< value_type > &parameters) const
 Check whether these oscillation parameters are equal to given oscillation parameters. More...
 
bool operator== (const JOscParametersInterface< value_type > &parameters)
 Equal operator. More...
 
bool operator!= (const JOscParametersInterface< value_type > &parameters)
 Not equal operator. More...
 
JReaderread (JReader &in) override
 Binary stream input of oscillation parameters. More...
 
JWriterwrite (JWriter &out) const override
 Binary stream output of oscillation parameters. More...
 
virtual clone_type clone () const override
 Get clone of this object. More...
 

Static Public Member Functions

static JEquationParametersgetEquationParameters ()
 Get equation parameters. More...
 
static void setEquationParameters (const JEquationParameters &equation)
 Set equation parameters. More...
 

Friends

std::istream & operator>> (std::istream &in, JOscParametersInterface_t &parameters)
 Stream input of oscillation parameters. More...
 
std::ostream & operator<< (std::ostream &out, const JOscParametersInterface_t &parameters)
 Stream output of oscillation parameters. More...
 

Detailed Description

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

Interface class for sets of oscillation parameters.

Definition at line 46 of file JOscParametersInterface.hh.

Member Typedef Documentation

◆ JOscParametersInterface_t

Definition at line 52 of file JOscParametersInterface.hh.

◆ JOscParameter_t

Definition at line 53 of file JOscParametersInterface.hh.

◆ JParameter_t

Definition at line 55 of file JOscParametersInterface.hh.

◆ argument_type

Definition at line 57 of file JOscParametersInterface.hh.

◆ value_type

Definition at line 58 of file JOscParametersInterface.hh.

◆ clone_type

template<class JClonable_t , class JDerived_t >
typedef JClonable<JClonable_t>::clone_type JLANG::JClonable< JClonable_t, JDerived_t >::clone_type
inherited

Definition at line 61 of file JClonable.hh.

Constructor & Destructor Documentation

◆ JOscParametersInterface()

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

Default constructor.

Definition at line 64 of file JOscParametersInterface.hh.

65  {}

◆ ~JOscParametersInterface()

template<class T >
JOSCPROB::JOscParametersInterface< T >::~JOscParametersInterface ( )
inline

Virtual destructor.

Definition at line 71 of file JOscParametersInterface.hh.

72  {}

Member Function Documentation

◆ getProperties() [1/2]

template<class T >
virtual JProperties JOSCPROB::JOscParametersInterface< T >::getProperties ( const JEquationParameters equation = JOscParametersInterface_t::getEquationParameters())
pure virtual

Get properties of this class.

Parameters
equationequation parameters
Returns
properties of this class

◆ getProperties() [2/2]

template<class T >
virtual JProperties JOSCPROB::JOscParametersInterface< T >::getProperties ( const JEquationParameters equation = JOscParametersInterface_t::getEquationParameters()) const
pure virtual

Get properties of this class.

Parameters
equationequation parameters
Returns
properties of this class

◆ getParameters()

template<class T >
JOscParametersInterface_t& JOSCPROB::JOscParametersInterface< T >::getParameters ( )
inline

Get oscillation parameters.

Returns
reference to oscillation parameters

Definition at line 98 of file JOscParametersInterface.hh.

99  {
100  return static_cast<JOscParametersInterface_t&>(*this);
101  }
JOscParametersInterface< T > JOscParametersInterface_t

◆ get() [1/2]

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

Get oscillation parameter.

Parameters
nameparameter name
Returns
parameter

Definition at line 110 of file JOscParametersInterface.hh.

111  {
112  using namespace std;
113  using namespace JPP;
114 
115  JProperties properties = this->getProperties();
116 
117  const JOscParameter_t& parameter = properties.getValue<const JOscParameter_t>(name);
118 
119  return parameter;
120  }
Utility class to parse parameter values.
Definition: JProperties.hh:501
const T & getValue(const std::string &key) const
Get value.
Definition: JProperties.hh:976
virtual JProperties getProperties(const JEquationParameters &equation=JOscParametersInterface_t::getEquationParameters())=0
Get properties of this class.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Definition: JSTDTypes.hh:14

◆ get() [2/2]

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

Get oscillation parameter.

Parameters
nameparameter name
Returns
parameter

Definition at line 129 of file JOscParametersInterface.hh.

130  {
131  using namespace std;
132  using namespace JPP;
133 
134  JProperties properties = this->getProperties();
135 
136  JOscParameter_t& parameter = properties.getValue<JOscParameter_t>(name);
137 
138  return parameter;
139  }

◆ set() [1/3]

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

Set value for a given oscillation parameter.

Parameters
nameparameter name
valueparameter value

Definition at line 148 of file JOscParametersInterface.hh.

150  {
151  using namespace std;
152  using namespace JPP;
153 
154  JProperties properties = this->getProperties();
155 
156  JOscParameter_t& parameter = properties.getValue<JOscParameter_t>(name);
157 
158  parameter.setValue(value);
159  }

◆ set() [2/3]

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

Set value for given list of oscillation parameters.

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

Definition at line 170 of file JOscParametersInterface.hh.

173  {
174  set(name, value);
175  set(args...);
176  }
void set(const std::string &name, const value_type &value)
Set value for a given oscillation parameter.

◆ set() [3/3]

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

Set oscillation parameters.

Parameters
parametersoscillation parameters

Definition at line 184 of file JOscParametersInterface.hh.

185  {
186  using namespace std;
187  using namespace JPP;
188 
189  JProperties properties = parameters.getProperties();
190 
191  for (JProperties::const_iterator i = properties.cbegin(); i != properties.cend(); ++i) {
192 
193  const JOscParameter_t& parameter = i->second.getValue<const JOscParameter_t>();
194 
195  this->set(i->first, parameter.getValue());
196  }
197  }

◆ is_valid()

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

Check validity of oscillation parameters.

Returns
true if all oscillation parameters are valid; else false

Definition at line 205 of file JOscParametersInterface.hh.

206  {
207  bool valid = true;
208 
209  const JProperties properties = this->getProperties();
210 
211  for (JProperties::const_iterator i = properties.cbegin(); i != properties.cend() && valid; ++i) {
212 
213  const JOscParameter_t& parameter = i->second.getValue<const JOscParameter_t>();
214 
215  valid = parameter.is_valid();
216  }
217 
218  return valid;
219  }

◆ equals()

template<class T >
bool JOSCPROB::JOscParametersInterface< T >::equals ( const JOscParametersInterface< value_type > &  parameters) const
inline

Check whether these oscillation parameters are equal to given oscillation parameters.

Parameters
oscillationparameters
Returns
true if equal; else false

Definition at line 228 of file JOscParametersInterface.hh.

229  {
230  using namespace std;
231  using namespace JPP;
232 
233  bool equal = true;
234 
235  JProperties properties = this->getProperties();
236 
237  for (JProperties::const_iterator i = properties.cbegin(); i != properties.cend() && equal; ++i) {
238 
239  const JOscParameter_t& parameter = i->second.getValue<const JOscParameter_t>();
240 
241  equal = (parameter == parameters.get(i->first));
242  }
243 
244  return equal;
245  }
const JOscParameter_t & get(const std::string &name) const
Get oscillation parameter.

◆ operator==()

template<class T >
bool JOSCPROB::JOscParametersInterface< T >::operator== ( const JOscParametersInterface< value_type > &  parameters)
inline

Equal operator.

Parameters
parametersset of oscillation parameters
Returns
true if this set of oscillation parameters is equal to the given set; else false

Definition at line 254 of file JOscParametersInterface.hh.

255  {
256  return this->equals(parameters);
257  }
bool equals(const JOscParametersInterface< value_type > &parameters) const
Check whether these oscillation parameters are equal to given oscillation parameters.

◆ operator!=()

template<class T >
bool JOSCPROB::JOscParametersInterface< T >::operator!= ( const JOscParametersInterface< value_type > &  parameters)
inline

Not equal operator.

Parameters
parametersset of oscillation parameters
Returns
true if this set of oscillation parameters is equal to the given set; else false

Definition at line 266 of file JOscParametersInterface.hh.

267  {
268  return !this->equals(parameters);
269  }

◆ getEquationParameters()

template<class T >
static JEquationParameters& JOSCPROB::JOscParametersInterface< T >::getEquationParameters ( )
inlinestatic

Get equation parameters.

Returns
equation parameters

Definition at line 277 of file JOscParametersInterface.hh.

278  {
279  static JEquationParameters equation("=", "\n\r;,", "./", "#");
280 
281  return equation;
282  }
Simple data structure to support I/O of equations (see class JLANG::JEquation).

◆ setEquationParameters()

template<class T >
static void JOSCPROB::JOscParametersInterface< T >::setEquationParameters ( const JEquationParameters equation)
inlinestatic

Set equation parameters.

Parameters
equationequation parameters

Definition at line 290 of file JOscParametersInterface.hh.

291  {
292  getEquationParameters() = equation;
293  }
static JEquationParameters & getEquationParameters()
Get equation parameters.

◆ read()

template<class T >
JReader& JOSCPROB::JOscParametersInterface< T >::read ( JReader in)
inlineoverridevirtual

Binary stream input of oscillation parameters.

Parameters
ininput stream
Returns
input stream

Implements JIO::JSerialisable.

Definition at line 302 of file JOscParametersInterface.hh.

303  {
304  JProperties properties = this->getProperties();
305 
306  for (JProperties::iterator i = properties.begin(); i != properties.end(); ++i) {
307 
308  bool is_defined;
309  value_type value;
310 
311  if ((in >> is_defined >> value) && is_defined) {
312 
313  JOscParameter_t& parameter = i->second.getValue<JOscParameter_t>();
314 
315  parameter.setValue(value);
316  }
317  }
318 
319  return in;
320  }

◆ write()

template<class T >
JWriter& JOSCPROB::JOscParametersInterface< T >::write ( JWriter out) const
inlineoverridevirtual

Binary stream output of oscillation parameters.

Parameters
outoutput stream
Returns
output stream

Implements JIO::JSerialisable.

Definition at line 329 of file JOscParametersInterface.hh.

330  {
331  const JProperties properties = this->getProperties();
332 
333  for (JProperties::const_iterator i = properties.cbegin(); i != properties.cend(); ++i) {
334 
335  const JOscParameter_t& parameter = i->second.getValue<const JOscParameter_t>();
336 
337  out << parameter.isDefined() << parameter.getValue();
338  }
339 
340  return out;
341  }

◆ clone()

template<class JClonable_t , class JDerived_t >
virtual clone_type JLANG::JClonable< JClonable_t, JDerived_t >::clone ( ) const
inlineoverridevirtualinherited

Friends And Related Function Documentation

◆ operator>>

template<class T >
std::istream& operator>> ( std::istream &  in,
JOscParametersInterface_t parameters 
)
friend

Stream input of oscillation parameters.

Parameters
ininput stream
parametersoscillation parameters
Returns
input stream

Definition at line 351 of file JOscParametersInterface.hh.

352  {
353  using namespace std;
354  using namespace JPP;
355 
356  JStringStream is(in);
357 
358  if (getFileStatus(is.str().c_str())) {
359  is.load();
360  }
361 
362  JProperties properties = parameters.getProperties();
363  is >> properties;
364 
365  return in;
366  }
Wrapper class around STL stringstream class to facilitate optional loading of data from file.
static JStat getFileStatus
Function object for file status.
Definition: JStat.hh:173

◆ operator<<

template<class T >
std::ostream& operator<< ( std::ostream &  out,
const JOscParametersInterface_t parameters 
)
friend

Stream output of oscillation parameters.

Parameters
outoutput stream
parametersoscillation parameters
Returns
output stream

Definition at line 376 of file JOscParametersInterface.hh.

377  {
378  return out << parameters.getProperties();
379  }

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