Jpp 19.3.0-rc.1
the software that should make you happy
Loading...
Searching...
No Matches
JOSCPROB::JOscProbInterface Class Referenceabstract

Low-level interface for oscillation probability calculators. More...

#include <JOscProbInterface.hh>

Inheritance diagram for JOSCPROB::JOscProbInterface:
JOSCPROB::JBaselineComputerInterface JOSCPROB::JOscParametersHelper< double & > JLANG::JClonable< JClonable_t, JDerived_t >

Public Types

typedef JOscParametersHelper< double & > JOscParametersHelper_t
 
typedef JOscParametersInterface< double > JOscParameters_t
 
typedef JOscParametersInterface< double & > JOscParameterReferences_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::unique_ptr< JOscParameters_tpointer_type
 
typedef JClonable< JClonable_t >::clone_type clone_type
 

Public Member Functions

 JOscProbInterface ()
 Default constructor.
 
 JOscProbInterface (const JOscParameterReferences_t &parameters)
 Constructor.
 
template<class ... Args>
 JOscProbInterface (const JOscParameterReferences_t &parameters, const std::string &name, double &value, const Args &...args)
 Constructor.
 
virtual ~JOscProbInterface ()
 Virtual destructor.
 
virtual double getP (const JOscChannel &channel, const double E, const double costh) const =0
 Get oscillation probability for a given oscillation channel.
 
double getP (const JOscParameters_t &parameters, const JOscChannel &channel, const double E, 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.
 
double operator() (const JOscChannel &channel, const double E, const double costh) const
 Get oscillation probability for a given oscillation channel.
 
double operator() (const JOscParameters_t &parameters, const JOscChannel &channel, const double E, const double costh) const
 Get oscillation probability for a given set of oscillation parameters
and a given oscillation channel.
 
double operator() (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 operator() (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.
 
virtual std::istream & read (std::istream &in)
 Read configuration of oscillation probability calculator from input.
 
virtual std::ostream & write (std::ostream &out) const
 Write configuration of oscillation probability calculator to output.
 
virtual double getCosth (const double L) const =0
 Get cosine zenith angle for a given baseline.
 
virtual double getBaseline (const double costh) const =0
 Get baseline for a given cosine zenith angle.
 
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.
 
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.
 
virtual JProperties getProperties (const JEquationParameters &equation=JOscParameters_t::getEquationParameters())
 Get properties of this class.
 
virtual JProperties getProperties (const JEquationParameters &equation=JOscParameters_t::getEquationParameters()) const
 Get properties of this class.
 
virtual clone_type clone () const override
 Get clone of this object.
 

Static Public Member Functions

static const char *const getTypeKey ()
 Get type keyword.
 
static JEquationParametersgetEquationParameters ()
 Get equation parameters.
 
static void setEquationParameters (const JEquationParameters &eqpars)
 Set equation parameters.
 

Friends

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

Detailed Description

Low-level interface for oscillation probability calculators.

Definition at line 33 of file JOscProbInterface.hh.

Member Typedef Documentation

◆ JOscParametersHelper_t

◆ JOscParameters_t

◆ JOscParameterReferences_t

◆ JOscParameter_t

◆ JParameter_t

◆ argument_type

Definition at line 35 of file JOscParametersHelper.hh.

◆ value_type

Definition at line 36 of file JOscParametersHelper.hh.

◆ pointer_type

std::unique_ptr<JOscParameters_t> JOSCPROB::JOscParametersHelper< double & >::pointer_type
inherited

Definition at line 38 of file JOscParametersHelper.hh.

◆ clone_type

template<class JClonable_t , class JDerived_t >
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

◆ JOscProbInterface() [1/3]

JOSCPROB::JOscProbInterface::JOscProbInterface ( )
inline

Default constructor.

Definition at line 52 of file JOscProbInterface.hh.

53 {}

◆ JOscProbInterface() [2/3]

JOSCPROB::JOscProbInterface::JOscProbInterface ( const JOscParameterReferences_t & parameters)
inline

Constructor.

Parameters
parametersoscillation parameters

Definition at line 61 of file JOscProbInterface.hh.

61 :
62 JOscParametersHelper_t(parameters)
63 {}
JOscParametersHelper< double & > JOscParametersHelper_t

◆ JOscProbInterface() [3/3]

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

Constructor.

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

Definition at line 75 of file JOscProbInterface.hh.

78 :
79 JOscParametersHelper_t(parameters, name, value, args...)
80 {}

◆ ~JOscProbInterface()

virtual JOSCPROB::JOscProbInterface::~JOscProbInterface ( )
inlinevirtual

Virtual destructor.

Definition at line 86 of file JOscProbInterface.hh.

87 {}

Member Function Documentation

◆ getTypeKey()

static const char *const JOSCPROB::JOscProbInterface::getTypeKey ( )
inlinestatic

Get type keyword.

Returns
type keyword

Definition at line 95 of file JOscProbInterface.hh.

96 {
97 return "type";
98 }

◆ getP() [1/4]

virtual double JOSCPROB::JOscProbInterface::getP ( const JOscChannel & channel,
const double E,
const double costh ) const
pure virtual

Get oscillation probability for a given oscillation channel.

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

◆ getP() [2/4]

double JOSCPROB::JOscProbInterface::getP ( const JOscParameters_t & parameters,
const JOscChannel & channel,
const double E,
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
Eneutrino energy [GeV]
costhcosine zenith angle
Returns
oscillation probability

Definition at line 124 of file JOscProbInterface.hh.

128 {
129 this->set(parameters);
130
131 return getP(channel, E, costh);
132 }
virtual double getP(const JOscChannel &channel, const double E, const double costh) const =0
Get oscillation probability for a given oscillation channel.
void set(const std::string &name, const value_type &value) const

◆ getP() [3/4]

double JOSCPROB::JOscProbInterface::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 146 of file JOscProbInterface.hh.

151 {
152 this->set(name, value);
153
154 return getP(channel, E, costh);
155 }

◆ getP() [4/4]

template<class ... Args>
double JOSCPROB::JOscProbInterface::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 167 of file JOscProbInterface.hh.

170 {
171 this->set(name, value);
172
173 return getP(args...);
174 }

◆ operator()() [1/4]

double JOSCPROB::JOscProbInterface::operator() ( const JOscChannel & channel,
const double E,
const double costh ) const
inline

Get oscillation probability for a given oscillation channel.

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

Definition at line 185 of file JOscProbInterface.hh.

188 {
189 return getP(channel, E, costh);
190 }

◆ operator()() [2/4]

double JOSCPROB::JOscProbInterface::operator() ( const JOscParameters_t & parameters,
const JOscChannel & channel,
const double E,
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
Eneutrino energy [GeV]
costhcosine zenith angle
Returns
oscillation probability

Definition at line 203 of file JOscProbInterface.hh.

207 {
208 return getP(parameters, channel, E, costh);
209 }

◆ operator()() [3/4]

double JOSCPROB::JOscProbInterface::operator() ( 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 223 of file JOscProbInterface.hh.

228 {
229 return getP(name, value, channel, E, costh);
230 }

◆ operator()() [4/4]

template<class ... Args>
double JOSCPROB::JOscProbInterface::operator() ( 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 242 of file JOscProbInterface.hh.

245 {
246 return getP(name, value, args...);
247 }

◆ getEquationParameters()

static JEquationParameters & JOSCPROB::JOscProbInterface::getEquationParameters ( )
inlinestatic

Get equation parameters.

Returns
equation parameters

Definition at line 255 of file JOscProbInterface.hh.

256 {
257 static JEquationParameters equation("=", " ,\t\n\v\f\r", "./", "#");
258
259 return equation;
260 }
Simple data structure to support I/O of equations (see class JLANG::JEquation).

◆ setEquationParameters()

static void JOSCPROB::JOscProbInterface::setEquationParameters ( const JEquationParameters & eqpars)
inlinestatic

Set equation parameters.

Parameters
eqparsequation parameters

Definition at line 268 of file JOscProbInterface.hh.

269 {
270 getEquationParameters() = eqpars;
271 }
static JEquationParameters & getEquationParameters()
Get equation parameters.

◆ read()

virtual std::istream & JOSCPROB::JOscProbInterface::read ( std::istream & in)
inlinevirtual

Read configuration of oscillation probability calculator from input.

Parameters
ininput stream
Returns
input stream

Definition at line 280 of file JOscProbInterface.hh.

281 {
282 using namespace std;
283 using namespace JPP;
284
285 JStringStream is(in);
286
287 if (getFileStatus(is.str().c_str())) {
288 is.load();
289 }
290
291 is >> getProperties();
292
293 return in;
294 }
Wrapper class around STL stringstream class to facilitate optional loading of data from file.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
virtual JProperties getProperties(const JEquationParameters &equation=JOscParameters_t::getEquationParameters())

◆ write()

virtual std::ostream & JOSCPROB::JOscProbInterface::write ( std::ostream & out) const
inlinevirtual

Write configuration of oscillation probability calculator to output.

Parameters
outoutput stream
Returns
output stream

Definition at line 303 of file JOscProbInterface.hh.

304 {
305 return out << getProperties();
306 }

◆ getCosth()

virtual double JOSCPROB::JBaselineComputerInterface::getCosth ( const double L) const
pure virtualinherited

Get cosine zenith angle for a given baseline.

Parameters
Lbaseline [km]
Returns
cosine zenith angle

Implemented in JOSCPROB::JBaselineComputer.

◆ getBaseline()

virtual double JOSCPROB::JBaselineComputerInterface::getBaseline ( const double costh) const
pure virtualinherited

Get baseline for a given cosine zenith angle.

Parameters
costhcosine zenith angle
Returns
baseline [km]

Implemented in JOSCPROB::JBaselineComputer.

◆ configure() [1/2]

void JOSCPROB::JOscParametersHelper< double & >::configure ( const pointer_type & p)
inlineinherited

Configure oscillation parameters.

Parameters
punique pointer to oscillation parameters

Definition at line 95 of file JOscParametersHelper.hh.

96 {
97 if (p) { this->reset(p->clone()); }
98 }
void reset(T &value)
Reset value.

◆ configure() [2/2]

void JOSCPROB::JOscParametersHelper< double & >::configure ( const JOscParameters_t & parameters)
inlineinherited

Configure oscillation parameters.

Parameters
parametersoscillation parameters

Definition at line 106 of file JOscParametersHelper.hh.

107 {
108 using namespace std;
109 using namespace JPP;
110
111 JOscParameters_t* p = dynamic_cast<JOscParameters_t*>(parameters.clone());
112
113 if (p != NULL) {
114 this->reset(p);
115 } else {
116 THROW(JNullPointerException, "JOscParametersHelper::configure(): Unable to retrieve oscillation parameters interface.");
117 }
118 }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Exception for null pointer operation.
JOscParametersInterface< double & > JOscParameters_t

◆ getParameters()

JOscParameters_t & JOSCPROB::JOscParametersHelper< double & >::getParameters ( ) const
inlineinherited

Get reference to oscillation parameters interface.

Returns
reference to oscillation parameters interface

Definition at line 126 of file JOscParametersHelper.hh.

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

◆ get() [1/2]

JOscParameters_t * JOSCPROB::JOscParametersHelper< double & >::get ( ) const
inlineinherited

Get pointer to oscillation parameters interface.

Returns
pointer to oscillation parameters interface

Definition at line 143 of file JOscParametersHelper.hh.

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

◆ get() [2/2]

JOscParameter_t & JOSCPROB::JOscParametersHelper< double & >::get ( const std::string & name) const
inlineinherited

Get oscillation parameter.

Parameters
nameparameter name
Returns
parameter

Definition at line 155 of file JOscParametersHelper.hh.

156 {
157 return getParameters().get(name);
158 }
const JOscParameter_t & get(const std::string &name) const
Get oscillation parameter.

◆ set() [1/3]

void JOSCPROB::JOscParametersHelper< double & >::set ( const std::string & name,
const value_type & value ) const
inlineinherited

Set value for a given oscillation parameter.

Parameters
nameparameter name
valueparameter value

Definition at line 168 of file JOscParametersHelper.hh.

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

◆ set() [2/3]

void JOSCPROB::JOscParametersHelper< double & >::set ( const std::string & name,
const value_type & value,
const Args &... args ) const
inlineinherited

Set value for given list of oscillation parameters.

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

Definition at line 183 of file JOscParametersHelper.hh.

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

◆ set() [3/3]

void JOSCPROB::JOscParametersHelper< double & >::set ( const JOscParametersInterface< value_type > & parameters) const
inlineinherited

Set oscillation parameters.

Parameters
parametersoscillation parameters

Definition at line 197 of file JOscParametersHelper.hh.

198 {
199 using namespace std;
200 using namespace JPP;
201
202 const JProperties properties = parameters.getProperties();
203
204 for (JProperties::const_iterator i = properties.cbegin(); i != properties.cend(); ++i) {
205
206 const JOscParameter<value_type>& parameter = i->second.getValue<const JOscParameter<value_type> >();
207
208 this->set(i->first, parameter.getValue());
209 }
210 }
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.

◆ getProperties() [1/2]

virtual JProperties JOSCPROB::JOscParametersHelper< double & >::getProperties ( const JEquationParameters & equation = JOscParameters_t::getEquationParameters())
inlinevirtualinherited

Get properties of this class.

Parameters
equationequation parameters
Returns
properties of this class

Definition at line 219 of file JOscParametersHelper.hh.

220 {
221 return getParameters().getProperties(equation);
222 }
virtual JProperties getProperties(const JEquationParameters &equation=JOscParametersInterface_t::getEquationParameters())=0
Get properties of this class.

◆ getProperties() [2/2]

virtual JProperties JOSCPROB::JOscParametersHelper< double & >::getProperties ( const JEquationParameters & equation = JOscParameters_t::getEquationParameters()) const
inlinevirtualinherited

Get properties of this class.

Parameters
equationequation parameters
Returns
properties of this class

Definition at line 231 of file JOscParametersHelper.hh.

232 {
233 return getParameters().getProperties(equation);
234 }

◆ clone()

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

Friends And Related Symbol Documentation

◆ operator>>

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

Read oscillation probability calculator from input.

Parameters
ininput stream
objectoscillation probability calculator
Returns
input stream

Definition at line 316 of file JOscProbInterface.hh.

317 {
318 return object.read(in);
319 }

◆ operator<<

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

Write oscillation probability calculator to output.

Parameters
outoutput stream
objectoscillation probability calculator
Returns
output stream

Definition at line 329 of file JOscProbInterface.hh.

330 {
331 return object.write(out);
332 }

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