1#ifndef __JAANET__JOSCFLUX__
2#define __JAANET__JOSCFLUX__
147 const double costh = -neutrino.
dir.
z;
153 for (
int i = 0; i != NUMBER_OF_OSCCHANNELS; ++i) {
157 const int inType = ((int) channel.
Cparity) * ((
int) channel.
in);
158 const int outType = ((int) channel.
Cparity) * ((
int) channel.
out);
160 if (outType == neutrino.
type) {
163 P.
getP (channel, neutrino.
E, costh) );
169 const int Cparity = (int) getChargeParity(neutrino);
216 template<
class JOscFlux_t>
225 JProperties properties = oscflux.F.getProperties(eqpars);
227 (*this)[
"flux"] = properties;
232 JProperties properties = oscflux.P.getProperties(eqpars);
234 (*this)[
"oscprob"] = properties;
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition of GENIE neutrino interaction types.
Definition of particle types.
Utility class to parse parameter values.
Simple data structure to support I/O of equations (see class JLANG::JEquation).
Exception for null pointer operation.
Exception for accessing a value in a collection that is outside of its range.
Low-level interface for oscillation probability calculators.
Extensions to Evt data format.
@ WEAK_NEUTRAL_CURRENT
Weak neutral current interaction.
@ WEAK_CHARGED_CURRENT
Weak charged current interaction.
const Trk & get_neutrino(const Evt &evt)
Get incoming neutrino.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
Helper class for diffuse flux factor.
double getFlux(const int type, const double log10E, const double costh) const
Get flux for given particle PDG-identifier, energy and zenith-angle.
bool is_valid() const
Check whether this event-weight factor is valid.
static const char *const getTypeKey()
Get type keyword.
static JEquationParameters & getEquationParameters()
Get equation parameters.
Auxiliary class for I/O of oscillated flux.
JOscFluxHelper(JOscFlux_t &oscflux, const JEquationParameters &eqpars)
Constructor.
Implementation of oscillated neutrino flux.
bool is_valid() const override final
Check whether this oscillated neutrino flux object is valid.
JOscFlux(const JDiffuseFluxHelper &diffuseFlux, const JOscProbHelper &oscProb)
Constructor.
void setOscProb(const JOscProbHelper oscProb)
Set oscillation probability calculator.
double getFactor(const Evt &evt) const override final
Get flux for given event.
JProperties getProperties(const JEquationParameters &eqpars=JEvtWeightFactor::getEquationParameters()) override final
Get properties of this class.
void setDiffuseFlux(const JDiffuseFluxHelper flux)
Set diffuse flux function.
const JDiffuseFluxHelper & getDiffuseFlux() const
Get diffuse flux function.
const JOscProbHelper & getOscProb() const
Get oscillation probability calculator.
JOscProbHelper P
Oscillation probability calculator.
JDiffuseFluxHelper F
Diffuse flux function.
JProperties getProperties(const JEquationParameters &eqpars=JEvtWeightFactor::getEquationParameters()) const override final
Get properties of this class.
Template class for object cloning.
Neutrino oscillation channel.
JChargeParity_t Cparity
Charge-parity.
JFlavour_t in
Incoming flavour.
JFlavour_t out
Outcoming flavour.
Helper class for oscillation probability calculators.
double getP(const JOscChannel &channel, const double energy, const double costh) const
Get oscillation probability corresponding to given oscillation channel, neutrino energy and zenith an...
The Trk class represents a Monte Carlo (MC) particle as well as a reconstructed track/shower.
int type
MC: particle type in PDG encoding.
double E
Energy [GeV] (either MC truth or reconstructed)
static const int W2LIST_GSEAGEN_CC
Charged current interaction flag.