1#ifndef __JOSCPROB__JOSCPROBINTERFACE__
2#define __JOSCPROB__JOSCPROBINTERFACE__
74 template<
class ...Args>
76 const std::string& name,
78 const Args& ...args) :
111 const double costh)
const = 0;
127 const double costh)
const
129 this->
set(parameters);
131 return getP(channel, E, costh);
146 double getP(
const std::string& name,
150 const double costh)
const
152 this->
set(name, value);
154 return getP(channel, E, costh);
166 template<
class ...Args>
167 double getP(
const std::string& name,
169 const Args& ...args)
const
171 this->
set(name, value);
173 return getP(args...);
187 const double costh)
const
189 return getP(channel, E, costh);
206 const double costh)
const
208 return getP(parameters, channel, E, costh);
227 const double costh)
const
229 return getP(name, value, channel, E, costh);
241 template<
class ...Args>
244 const Args& ...args)
const
246 return getP(name, value, args...);
280 virtual std::istream&
read(std::istream& in)
287 if (getFileStatus(is.str().c_str())) {
303 virtual std::ostream&
write(std::ostream& out)
const
318 return object.read(in);
331 return object.write(out);
Simple data structure to support I/O of equations (see class JLANG::JEquation).
Wrapper class around STL stringstream class to facilitate optional loading of data from file.
void load()
Load data from file with name corresponding to current contents.
Interface class for sets of oscillation parameters.
Low-level interface for oscillation probability calculators.
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.
double getP(const JOscParameters_t ¶meters, 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...
friend std::ostream & operator<<(std::ostream &out, const JOscProbInterface &object)
Write oscillation probability calculator to output.
JOscProbInterface()
Default constructor.
JOscParametersHelper< double & > JOscParametersHelper_t
virtual std::ostream & write(std::ostream &out) const
Write configuration of oscillation probability calculator to output.
double operator()(const JOscParameters_t ¶meters, 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...
static const char *const getTypeKey()
Get type keyword.
JOscParameters_t::JOscParameter_t JOscParameter_t
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 double getP(const JOscChannel &channel, const double E, const double costh) const =0
Get oscillation probability for 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.
virtual ~JOscProbInterface()
Virtual destructor.
friend std::istream & operator>>(std::istream &in, JOscProbInterface &object)
Read oscillation probability calculator from input.
JOscProbInterface(const JOscParameterReferences_t ¶meters, const std::string &name, double &value, const Args &...args)
Constructor.
JOscParametersInterface< double & > JOscParameterReferences_t
static JEquationParameters & getEquationParameters()
Get equation parameters.
JOscParameters_t::JParameter_t JParameter_t
double operator()(const JOscChannel &channel, const double E, const double costh) const
Get oscillation probability for a given oscillation channel.
JOscParametersInterface< double > JOscParameters_t
static void setEquationParameters(const JEquationParameters &eqpars)
Set equation parameters.
JOscProbInterface(const JOscParameterReferences_t ¶meters)
Constructor.
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...
virtual std::istream & read(std::istream &in)
Read configuration of oscillation probability calculator from input.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Template class for object cloning.
Low-level interface for oscillation baseline calculators.
Neutrino oscillation channel.
Abstract base class for oscillation parameter.
Helper class for oscillation parameters.
virtual JProperties getProperties(const JEquationParameters &equation=JOscParameters_t::getEquationParameters())
void set(const std::string &name, const value_type &value) const