Jpp  18.5.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JAtmosphericNeutrinoFlux.hh
Go to the documentation of this file.
1 #ifndef __JAANET__JATMOSPHERICNEUTRINOFLUX__
2 #define __JAANET__JATMOSPHERICNEUTRINOFLUX__
3 
4 #include "flux/Flux.hh"
5 
7 #include "JAAnet/JOscFlux.hh"
8 
13 
14 
15 /**
16  * \author bjung
17  */
18 
19 namespace JAANET {}
20 namespace JPP { using namespace JAANET; }
21 
22 namespace JAANET {
23 
28 
29 
30  /**
31  * Implementation of atmospheric neutrino flux using official KM3NeT atmospheric flux function. *
32  */
34  public JOscFlux
35  {
36  /**
37  * Default constructor.
38  */
40  {}
41 
42 
43  /**
44  * Constructor.
45  *
46  * \param oscProbInterface oscillation probability interface
47  */
48  explicit JAtmosphericNeutrinoFlux(const JOscProbInterface& oscProbInterface) :
49  JOscFlux(make_diffuseFluxFunction(Flux_Atmospheric()), oscProbInterface)
50  {}
51 
52 
53  /**
54  * Constructor.
55  *
56  * The template argument refers to an oscillation probability function object or pointer.
57  * For this, the copy constructor needs to be defined
58  *
59  * \param oscProbFunction oscillation probability function object
60  */
61  template<class JFunction_t>
62  explicit JAtmosphericNeutrinoFlux(const JOscProbFunction<JFunction_t>& oscProbFunction) :
63  JAtmosphericNeutrinoFlux(static_cast<const JOscProbInterface&>(oscProbFunction))
64  {}
65 
66 
67  /**
68  * Constructor.
69  *
70  * The template argument refers to an oscillation probability function object or pointer.
71  * For this, the copy constructor needs to be defined
72  *
73  * \param oscProbCalculator oscillation probability calculator
74  */
75  template<class JOscProbFunction_t>
76  JAtmosphericNeutrinoFlux(const JOscProbFunction_t& oscProbCalculator) :
78  {}
79  };
80 
81 
82  /**
83  * Auxiliary method for creating an interface to an atmospheric neutrino flux function\n
84  * using an oscillation probability interpolation table.
85  *
86  * \param oscProbTableFile oscillation probability interpolation table
87  * \param oscParameters oscillation parameters
88  */
89  template<class JOscProbInterpolator_t = JOscProbInterpolator<> >
91  const JOscParametersInterface<double>& oscParameters) {
92 
93  const JOscProbInterpolator_t interpolator(oscProbTableFile.c_str(), oscParameters);
94 
95  const JAtmosphericNeutrinoFlux flux(interpolator);
96 
97  return make_fluxFunction(flux);
98  }
99 }
100 
101 #endif
Implementation of oscillation probability function interface.
Implementation of oscillated neutrino flux.
Definition: JOscFlux.hh:41
JAtmosphericNeutrinoFlux(const JOscProbInterface &oscProbInterface)
Constructor.
Low-level interface for oscillation probability calculators.
Implementation of event-weight factor interface.
JEvtWeightFactorFunction< JFunction_t, JFlux > make_fluxFunction(const JFunction_t &flux)
Auxiliary method for creating an interface to a flux function.
JEvtWeightFactorFunction< JAtmosphericNeutrinoFlux, JFlux > make_atmosphericNeutrinoFluxFunction(const std::string &oscProbTableFile, const JOscParametersInterface< double > &oscParameters)
Auxiliary method for creating an interface to an atmospheric neutrino flux function using an oscillat...
JEvtWeightFactorFunction< JFunction_t, JDiffuseFlux > make_diffuseFluxFunction(const JFunction_t &flux)
Auxiliary method for creating an interface to a diffuse flux function.
Implementation of atmospheric neutrino flux using official KM3NeT atmospheric flux function...
JOscProbFunction< JFunction_t > make_oscProbFunction(const JFunction_t &function)
Auxiliary method for creating an interface to an oscillation probability function.
Neutrino flux.
Definition: JHead.hh:906
then awk string
JAtmosphericNeutrinoFlux(const JOscProbFunction< JFunction_t > &oscProbFunction)
Constructor.
Interface class for sets of oscillation parameters.
JAtmosphericNeutrinoFlux(const JOscProbFunction_t &oscProbCalculator)
Constructor.
JAtmosphericNeutrinoFlux()
Default constructor.
Template definition of a multi-dimensional oscillation probability interpolation table.