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.
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...
JOscParametersInterface< double & > JOscParameterReferences_t
friend std::ostream & operator<<(std::ostream &out, const JOscProbInterface &object)
Write oscillation probability calculator to output.
JOscProbInterface()
Default constructor.
virtual std::ostream & write(std::ostream &out) const
Write configuration of oscillation probability calculator to output.
JOscParametersHelper< double & > JOscParametersHelper_t
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.
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.
JOscParametersInterface< double > JOscParameters_t
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.
static JEquationParameters & getEquationParameters()
Get equation parameters.
double operator()(const JOscChannel &channel, const double E, const double costh) const
Get oscillation probability for a given oscillation channel.
JOscParameters_t::JParameter_t JParameter_t
JOscParameters_t::JOscParameter_t JOscParameter_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.
Template definition of a multi-dimensional oscillation probability interpolation table.
JOscProbInterface::JOscParameter_t JOscParameter_t
JWriter & write(JWriter &out) const override final
Write from input.
JOscProbInterface::JParameter_t JParameter_t
JReader & read(JReader &in) override final
Read 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.
Helper class for oscillation parameters.
virtual JProperties getProperties(const JEquationParameters &equation=JOscParameters_t::getEquationParameters())
Get properties of this class.
void set(const std::string &name, const value_type &value) const
Set value for a given oscillation parameter.