Jpp  17.3.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JOscProbInterpolatorInterface.hh
Go to the documentation of this file.
1 #ifndef __JOSCPROB__JOSCPROBINTERPOLATORINTERFACE__
2 #define __JOSCPROB__JOSCPROBINTERPOLATORINTERFACE__
3 
4 
5 #include "JLang/JClonable.hh"
6 
7 #include "JIO/JSerialisable.hh"
8 
12 
13 
14 /**
15  * \author bjung, mdejong
16  */
17 
18 namespace JOSCPROB {
19 
20  using JLANG::JClonable;
21 
22  using JIO::JSerialisable;
23 
24 
25  /**
26  * Low-level interface for oscillation probability tables.
27  */
29  public JSerialisable,
30  public JClonable<JOscProbInterpolatorInterface>
31  {
32  public:
33 
34  /**
35  * Default constructor.
36  */
38  {}
39 
40 
41  /**
42  * Virtual destructor.
43  */
45  {}
46 
47 
48  /**
49  * Load oscillation probability table from file.
50  *
51  * \param fileName oscillation probability table fileName
52  */
53  virtual void load(const char* fileName) = 0;
54 
55 
56  /**
57  * Get oscillation parameters.
58  *
59  * \return oscillation parameters
60  */
61  virtual const JOscParameters& getTableParameters() const = 0;
62 
63 
64  /**
65  * Get baseline calculator associated with this interpolation table.
66  *
67  * \return baseline calculator
68  */
69  virtual const JBaselineCalculator& getBaselineCalculator() const = 0;
70 
71 
72  /**
73  * Set oscillation parameters.
74  *
75  * \param parameters oscillation parameters
76  */
77  virtual void set(JOscParameters parameters) = 0;
78 
79 
80  /**
81  * Get oscillation probability for a given oscillation channel.
82  *
83  * \param channel oscillation channel
84  * \param E neutrino energy [GeV]
85  * \param costh cosine zenith angle
86  * \return oscillation probability
87  */
88  virtual double operator()(const JOscChannel& channel,
89  const double E,
90  const double costh) const = 0;
91 
92 
93  /**
94  * Get oscillation probability for a given set of oscillation parameters\n
95  * and a given oscillation channel.
96  *
97  * \param channel oscillation channel
98  * \param parameters oscillation parameters
99  * \param E neutrino energy [GeV]
100  * \param costh cosine zenith angle
101  * \return oscillation probability
102  */
103  virtual double operator()(const JOscParameters& parameters,
104  const JOscChannel& channel,
105  const double E,
106  const double costh)
107  {
108  set(parameters);
109 
110  return (*this)(channel, E, costh);
111  }
112  };
113 }
114 
115 #endif
then usage E
Definition: JMuonPostfit.sh:35
Neutrino oscillation channel.
Definition: JOscChannel.hh:110
virtual void load(const char *fileName)=0
Load oscillation probability table from file.
Data structure for single set of oscillation parameters.
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
Definition: diff-Tuna.sh:38
virtual const JBaselineCalculator & getBaselineCalculator() const =0
Get baseline calculator associated with this interpolation table.
Auxiliary data structure for storing and calculating baselines.
Low-level interface for oscillation probability tables.
Forward declaration of binary output.
virtual ~JOscProbInterpolatorInterface()
Virtual destructor.
virtual double operator()(const JOscParameters &parameters, const JOscChannel &channel, const double E, const double costh)
Get oscillation probability for a given set of oscillation parameters and a given oscillation channel...
virtual void set(JOscParameters parameters)=0
Set oscillation parameters.
virtual double operator()(const JOscChannel &channel, const double E, const double costh) const =0
Get oscillation probability for a given oscillation channel.
Template class for object cloning.
Definition: JClonable.hh:20
virtual const JOscParameters & getTableParameters() const =0
Get oscillation parameters.