Jpp test-rotations-old-57-g407471f53
the software that should make you happy
Loading...
Searching...
No Matches
JOSCPROB::JOscProbHelper Struct Reference

Helper class for oscillation probability calculators. More...

#include <JOscProbHelper.hh>

Inheritance diagram for JOSCPROB::JOscProbHelper:
JOSCPROB::JOscillogram

Public Types

typedef JOscProbInterface::JOscParameters_t JOscParameters_t
 
typedef JOscProbInterface::JOscParameterReferences_t JOscParameterReferences_t
 
typedef JOscProbInterface::JParameter_t JParameter_t
 
typedef JOscProbInterface::argument_type argument_type
 
typedef JOscProbInterface::value_type value_type
 
typedef std::shared_ptr< JOscProbInterfacepointer_type
 

Public Member Functions

 JOscProbHelper ()
 Default constructor.
 
 JOscProbHelper (const pointer_type &pOscProb)
 Copy constructor.
 
 JOscProbHelper (const JOscProbInterface &oscProb)
 Constructor.
 
void configure (const pointer_type &pOscProb)
 Configure oscillation probability function.
 
void configure (const JOscProbInterface &oscProb)
 Configure oscillation probability function.
 
JOscProbInterfacegetOscProbInterface () const
 Get reference to oscillation probability interface.
 
JOscParameterReferences_tgetParameters () const
 Get reference to oscillation parameters interface.
 
void set (const JOscParameters_t &parameters) const
 Set oscillation parameters.
 
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.
 
double getCosth (const double L) const
 Get cosine zenith angle for a given baseline.
 
double getBaseline (const double costh) const
 Get baseline for a given cosine zenith angle.
 
double getP (const JOscChannel &channel, const double energy, const double costh) const
 Get oscillation probability corresponding to given oscillation channel, neutrino energy and zenith angle.
 
double getP (const JOscParameters_t &parameters, const JOscChannel &channel, const double energy, const double costh) const
 Get oscillation probability for a given set of oscillation parameters
and a given oscillation channel.
 
double getP (const std::string &name, const double value, const JOscChannel &channel, const double E, const double costh) const
 Get oscillation probability for a given oscillation parameter
and a given oscillation channel.
 
template<class ... Args>
double getP (const std::string &name, const double value, const Args &...args) const
 Get oscillation probability for a given set of oscillation parameters
and a given oscillation channel.
 
JProperties getProperties (const JEquationParameters &eqpars=JOscProbInterface::getEquationParameters())
 Get properties of this class.
 
JProperties getProperties (const JEquationParameters &eqpars=JOscProbInterface::getEquationParameters()) const
 Get properties of this class.
 

Friends

std::istream & operator>> (std::istream &in, JOscProbHelper &object)
 Read from input.
 
std::ostream & operator<< (std::ostream &out, const JOscProbHelper &object)
 Write to output.
 

Detailed Description

Helper class for oscillation probability calculators.

Definition at line 31 of file JOscProbHelper.hh.

Member Typedef Documentation

◆ JOscParameters_t

◆ JOscParameterReferences_t

◆ JParameter_t

◆ argument_type

◆ value_type

◆ pointer_type

Definition at line 41 of file JOscProbHelper.hh.

Constructor & Destructor Documentation

◆ JOscProbHelper() [1/3]

JOSCPROB::JOscProbHelper::JOscProbHelper ( )
inline

Default constructor.

Definition at line 47 of file JOscProbHelper.hh.

48 {}

◆ JOscProbHelper() [2/3]

JOSCPROB::JOscProbHelper::JOscProbHelper ( const pointer_type & pOscProb)
inline

Copy constructor.

Parameters
pOscProbshared pointer to oscillation probability function

Definition at line 56 of file JOscProbHelper.hh.

56 :
57 pointer_type(pOscProb)
58 {}
std::shared_ptr< JOscProbInterface > pointer_type

◆ JOscProbHelper() [3/3]

JOSCPROB::JOscProbHelper::JOscProbHelper ( const JOscProbInterface & oscProb)
inline

Constructor.

Parameters
oscProboscillation probability function

Definition at line 66 of file JOscProbHelper.hh.

67 {
68 configure(oscProb);
69 }
void configure(const pointer_type &pOscProb)
Configure oscillation probability function.

Member Function Documentation

◆ configure() [1/2]

void JOSCPROB::JOscProbHelper::configure ( const pointer_type & pOscProb)
inline

Configure oscillation probability function.

Parameters
pOscProbshared pointer to oscillation probability function

Definition at line 77 of file JOscProbHelper.hh.

78 {
79 static_cast<pointer_type&>(*this) = pOscProb;
80 }

◆ configure() [2/2]

void JOSCPROB::JOscProbHelper::configure ( const JOscProbInterface & oscProb)
inline

Configure oscillation probability function.

Parameters
oscProboscillation probability function

Definition at line 88 of file JOscProbHelper.hh.

89 {
90 this->reset(oscProb.clone());
91 }
void reset(T &value)
Reset value.

◆ getOscProbInterface()

JOscProbInterface & JOSCPROB::JOscProbHelper::getOscProbInterface ( ) const
inline

Get reference to oscillation probability interface.

Returns
oscillation parameters

Definition at line 99 of file JOscProbHelper.hh.

100 {
101 using namespace JPP;
102
103 if (static_cast<const JOscProbHelper&>(*this)) {
104 return *(this->get());
105 } else {
106 THROW(JNullPointerException, "JOscProbHelper::getOscProbInterface(): Oscillation probability interface is not set.");
107 }
108 }
#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).
Helper class for oscillation probability calculators.

◆ getParameters()

JOscParameterReferences_t & JOSCPROB::JOscProbHelper::getParameters ( ) const
inline

Get reference to oscillation parameters interface.

Returns
reference to oscillation parameters interface

Definition at line 116 of file JOscProbHelper.hh.

117 {
119 }
JOscParameters_t & getParameters() const
Get reference to oscillation parameters interface.
JOscProbInterface & getOscProbInterface() const
Get reference to oscillation probability interface.

◆ set() [1/3]

void JOSCPROB::JOscProbHelper::set ( const JOscParameters_t & parameters) const
inline

Set oscillation parameters.

Parameters
parametersoscillation parameters

Definition at line 127 of file JOscProbHelper.hh.

128 {
129 return getParameters().set(parameters);
130 }
void set(const std::string &name, const value_type &value)
Set value for a given oscillation parameter.
JOscParameterReferences_t & getParameters() const
Get reference to oscillation parameters interface.

◆ set() [2/3]

void JOSCPROB::JOscProbHelper::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 139 of file JOscProbHelper.hh.

141 {
142 getParameters().set(name, value);
143 }

◆ set() [3/3]

template<class ... Args>
void JOSCPROB::JOscProbHelper::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 154 of file JOscProbHelper.hh.

157 {
158 getParameters().set(name, value, args...);
159 }

◆ getCosth()

double JOSCPROB::JOscProbHelper::getCosth ( const double L) const
inline

Get cosine zenith angle for a given baseline.

Parameters
Lbaseline [km]
Returns
cosine zenith angle

Definition at line 168 of file JOscProbHelper.hh.

169 {
170 return getOscProbInterface().getCosth(L);
171 }
virtual double getCosth(const double L) const =0
Get cosine zenith angle for a given baseline.

◆ getBaseline()

double JOSCPROB::JOscProbHelper::getBaseline ( const double costh) const
inline

Get baseline for a given cosine zenith angle.

Parameters
costhcosine zenith angle
Returns
baseline [km]

Definition at line 180 of file JOscProbHelper.hh.

181 {
182 return getOscProbInterface().getBaseline(costh);
183 }
virtual double getBaseline(const double costh) const =0
Get baseline for a given cosine zenith angle.

◆ getP() [1/4]

double JOSCPROB::JOscProbHelper::getP ( const JOscChannel & channel,
const double energy,
const double costh ) const
inline

Get oscillation probability corresponding to given oscillation channel, neutrino energy and zenith angle.

Parameters
channeloscillation channel
energyneutrino energy [GeV]
costhcosine zenith angle
Returns
oscillation probability

Definition at line 195 of file JOscProbHelper.hh.

198 {
199 return getOscProbInterface().getP(channel, energy, costh);
200 }
virtual double getP(const JOscChannel &channel, const double E, const double costh) const =0
Get oscillation probability for a given oscillation channel.

◆ getP() [2/4]

double JOSCPROB::JOscProbHelper::getP ( const JOscParameters_t & parameters,
const JOscChannel & channel,
const double energy,
const double costh ) const
inline

Get oscillation probability for a given set of oscillation parameters
and a given oscillation channel.

Parameters
channeloscillation channel
parametersoscillation parameters
energyneutrino energy [GeV]
costhcosine zenith angle
Returns
oscillation probability

Definition at line 213 of file JOscProbHelper.hh.

217 {
218 return getOscProbInterface().getP(parameters, channel, energy, costh);
219 }

◆ getP() [3/4]

double JOSCPROB::JOscProbHelper::getP ( const std::string & name,
const double value,
const JOscChannel & channel,
const double E,
const double costh ) const
inline

Get oscillation probability for a given oscillation parameter
and a given oscillation channel.

Parameters
nameparameter name
valueparameter value
channeloscillation channel
Eneutrino energy [GeV]
costhcosine zenith angle
Returns
oscillation probability

Definition at line 233 of file JOscProbHelper.hh.

238 {
239 return getOscProbInterface().getP(name, value, channel, E, costh);
240 }

◆ getP() [4/4]

template<class ... Args>
double JOSCPROB::JOscProbHelper::getP ( const std::string & name,
const double value,
const Args &... args ) const
inline

Get oscillation probability for a given set of oscillation parameters
and a given oscillation channel.

Parameters
nameparameter name
valueparameter value
argsremaining arguments

Definition at line 252 of file JOscProbHelper.hh.

255 {
256 return getOscProbInterface().getP(name, value, args...);
257 }

◆ getProperties() [1/2]

JProperties JOSCPROB::JOscProbHelper::getProperties ( const JEquationParameters & eqpars = JOscProbInterface::getEquationParameters())
inline

Get properties of this class.

Parameters
eqparsequation parameters

Definition at line 265 of file JOscProbHelper.hh.

266 {
267 return getOscProbInterface().getProperties(eqpars);
268 }
virtual JProperties getProperties(const JEquationParameters &equation=JOscParameters_t::getEquationParameters())
Get properties of this class.

◆ getProperties() [2/2]

JProperties JOSCPROB::JOscProbHelper::getProperties ( const JEquationParameters & eqpars = JOscProbInterface::getEquationParameters()) const
inline

Get properties of this class.

Parameters
eqparsequation parameters

Definition at line 276 of file JOscProbHelper.hh.

277 {
278 return getOscProbInterface().getProperties(eqpars);
279 }

Friends And Related Symbol Documentation

◆ operator>>

std::istream & operator>> ( std::istream & in,
JOscProbHelper & object )
friend

Read from input.

Input syntax according to one of the following options:

  1. <oscprob_file>,
  2. oscprob=<oscprob_file>,
  3. <oscprob_key>=<oscprob_value>[<end of line> <oscprob_key>=<oscprob_value> ...] or
  4. oscprob.<oscprob_key>=<oscprob_value>[<end of line> oscprob.<oscprob_key>=<oscprob_value> ...], where:
  • oscprob_key refers to an oscillation probability calculator configuration key;
  • oscprob_value to an oscillation probability calculator configuration value;
  • oscprob_file to an oscillation probability calculator configuration file with key-value pairs.
Parameters
ininput stream
objectobject
Returns
input stream

Definition at line 299 of file JOscProbHelper.hh.

300 {
301 using namespace std;
302 using namespace JPP;
303
304 static const char* KEYWORD = "oscprob";
305
306 if (!object) { return in; }
307
308 JStringStream is(in);
309
310 if (getFileStatus(is.str().c_str())) {
311 is.load();
312 }
313
314 const streampos pos = is.tellg();
315 const ios_base::iostate state = is.rdstate();
316
317 JProperties properties1 = object.getProperties();
318
320
321 is.imbue(locale(is.getloc(), facet.clone()));
322
323 JEquation equation;
324 is >> equation;
325
326 if (equation.getKey() == KEYWORD) {
327
328 if (getFileStatus(equation.getValue().c_str())) {
329
330 properties1.getEndOfLine() += '\n';
331
332 ifstream ifs(equation.getValue().c_str());
333
334 ifs >> properties1;
335
336 ifs.close();
337
338 } else {
339
340 is.clear(state);
341 is.seekg(pos);
342
343 JProperties properties2;
344
345 properties2[KEYWORD] = properties1;
346
347 is >> properties2;
348 }
349
350 } else if (!equation.getValue().empty()) {
351
352 is.clear(state);
353 is.seekg(pos);
354
355 is >> properties1;
356
357 } else {
358
359 is.setstate(ios::badbit);
360 }
361
362 return in;
363 }
Utility class to parse parameter values.
Facet class to specify parsing of equations in currect locale (see class JLANG::JEquation).
const std::string & getEndOfLine() const
Get end of line characters.
General purpose equation class.
Definition JEquation.hh:47
const std::string & getKey() const
Get key.
Definition JEquation.hh:163
const std::string & getValue() const
Get value.
Definition JEquation.hh:185
Wrapper class around STL stringstream class to facilitate optional loading of data from file.
static JEquationParameters & getEquationParameters()
Get equation parameters.

◆ operator<<

std::ostream & operator<< ( std::ostream & out,
const JOscProbHelper & object )
friend

Write to output.

Parameters
outoutput stream
objectobject
Returns
output stream

Definition at line 373 of file JOscProbHelper.hh.

374 {
375 if (object) {
376 out << object.getProperties();
377 }
378
379 return out;
380 }

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