Jpp  18.0.1-rc.2
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 
11 
12 
13 /**
14  * \author bjung
15  */
16 
17 namespace JAANET {
18 
23 
24 
25  /**
26  * Implementation of atmospheric neutrino flux using official KM3NeT atmospheric flux function. *
27  */
29  public JOscFlux
30  {
31  /**
32  * Default constructor.
33  */
35  {}
36 
37 
38  /**
39  * Constructor.
40  *
41  * \param oscProbInterface oscillation probability interface
42  */
43  explicit JAtmosphericNeutrinoFlux(const JOscProb& oscProbInterface) :
44  JOscFlux(make_diffuseFluxFunction(Flux_Atmospheric()), oscProbInterface)
45  {}
46 
47 
48  /**
49  * Constructor.
50  *
51  * The template argument refers to an oscillation probability function object or pointer.
52  * For this, the copy constructor needs to be defined
53  *
54  * \param oscProbFunction oscillation probability function object
55  */
56  template<class JFunction_t>
57  explicit JAtmosphericNeutrinoFlux(const JOscProbFunction<JFunction_t>& oscProbFunction) :
58  JAtmosphericNeutrinoFlux(static_cast<const JOscProb&>(oscProbFunction))
59  {}
60 
61 
62  /**
63  * Constructor.
64  *
65  * The template argument refers to an oscillation probability function object or pointer.
66  * For this, the copy constructor needs to be defined
67  *
68  * \param oscProbCalculator oscillation probability calculator
69  */
70  template<class JOscProbFunction_t>
71  JAtmosphericNeutrinoFlux(const JOscProbFunction_t& oscProbCalculator) :
73  {}
74  };
75 
76 
77  /**
78  * Auxiliary method for creating an interface to an atmospheric neutrino flux function\n
79  * using an oscillation probability interpolation table.
80  *
81  * \param oscProbTableFile oscillation probability interpolation table
82  * \param oscParameters oscillation parameters
83  */
84  template<class JOscProbInterpolator_t = JOscProbInterpolator<> >
86  const JOscParameters& oscParameters) {
87 
88  const JOscProbInterpolator_t interpolator(oscProbTableFile.c_str(), oscParameters);
89 
90  const JAtmosphericNeutrinoFlux flux(interpolator);
91 
92  return make_fluxFunction(flux);
93  }
94 }
95 
96 #endif
Implementation of oscillation probability function interface.
Low-level interface for retrieving the oscillation probability corresponding to a given oscillation c...
Definition: JOscProb.hh:22
Implementation of oscillated neutrino flux.
Definition: JOscFlux.hh:40
Implementation of event-weight factor interface.
Data structure for single set of oscillation parameters.
JEvtWeightFactorFunction< JFunction_t, JFlux > make_fluxFunction(const JFunction_t &flux)
Auxiliary method for creating an interface to a flux function.
JAtmosphericNeutrinoFlux(const JOscProb &oscProbInterface)
Constructor.
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:893
JAtmosphericNeutrinoFlux(const JOscProbFunction< JFunction_t > &oscProbFunction)
Constructor.
JAtmosphericNeutrinoFlux(const JOscProbFunction_t &oscProbCalculator)
Constructor.
JAtmosphericNeutrinoFlux()
Default constructor.
JEvtWeightFactorFunction< JAtmosphericNeutrinoFlux, JFlux > make_atmosphericNeutrinoFluxFunction(const string &oscProbTableFile, const JOscParameters &oscParameters)
Auxiliary method for creating an interface to an atmospheric neutrino flux function using an oscillat...
Template definition of a multi-dimensional oscillation probability interpolation table.