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