1 #ifndef __JAANET__JEVTWEIGHTFACTORFUNCTION__
2 #define __JAANET__JEVTWEIGHTFACTORFUNCTION__
6 #include "flux/Flux.hh"
20 namespace JPP {
using namespace JAANET; }
33 template<
class JFunction_t,
34 class JEvtWeightFactor_t>
36 public JClonable<JEvtWeightFactor_t, JEvtWeightFactorFunction<JFunction_t,
71 template<
class JDiffuseFluxFunction_t>
73 public JClonable<JDiffuseFlux, JEvtWeightFactorFunction<JDiffuseFluxFunction_t,
96 double costh)
const override
98 return function.dNdEdOmega(type, log10E, costh);
103 JDiffuseFluxFunction_t
function;
120 template<
class JEvtWeightFactor_t>
122 public JClonable<JEvtWeightFactor_t, JEvtWeightFactorFunction<pEvtWeightFactor,
123 JEvtWeightFactor_t> >
143 return (*pFunction)(evt);
161 public JClonable<JDiffuseFlux, JEvtWeightFactorFunction<pDiffuseFlux,
183 double costh)
const override
185 return (*pFunction)(
type, log10E, costh);
201 template<
class JFunction_t,
class JEvtWeightFactor_t = JEvtWeightFactor>
213 template<
class JEvtWeightFactor_t = JEvtWeightFactor>
225 template<
class JFunction_t>
248 template<
class JFunction_t>
pDiffuseFlux pFunction
Pointer to diffuse flux function.
double dNdEdOmega(int type, double log10E, double costh) const override
Get event-weight factor for given particle PDG-identifier, energy and zenith-angle.
Implementation of C-style diffuse flux event-weight factor.
JEvtWeightFactorFunction(const JDiffuseFluxFunction_t &function)
Constructor.
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.
double getFactor(const Evt &evt) const override
Get weight-factor for given event.
JEvtWeightFactorFunction(pDiffuseFlux pFunction)
Constructor.
then set_variable PMT_FILE set_variable DAQ_FILE set_variable OUTPUT_FILE set_variable DETECTOR else fatal Wrong number of arguments fi JPrintTree f $DAQ_FILE type
JFunction_t function
event-weight factor object.
JEvtWeightFactorFunction< JFunction_t, JEvtWeightFactor_t > make_weightFactor(const JFunction_t &function)
Auxiliary method for creating an interface to an event-weight factor.
JEvtWeightFactorFunction< JFunction_t, JDiffuseFlux > make_diffuseFluxFunction(const JFunction_t &flux)
Auxiliary method for creating an interface to a diffuse flux function.
pEvtWeightFactor pFlux
Type definition of flux function pointer.
Template class for object cloning.
Low-level interface for diffuse fluxes.
JEvtWeightFactorFunction(pEvtWeightFactor pFunction)
Constructor.
Implementation of C-style event-weight factor.
JEvtWeightFactorFunction(const JFunction_t &function)
Constructor.
double(* pDiffuseFlux)(int, double, double)
Type definition of pointer to diffuse flux function.
double dNdEdOmega(int type, double log10E, double costh) const override
Get event-weight factor for given particle PDG-identifier, energy and zenith-angle.
double getFactor(const Evt &evt) const override
Get weight-factor for given event.
pEvtWeightFactor pFunction
Event-weight factor pointer.
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
double(* pEvtWeightFactor)(const Evt &)
Type definition of event-weight factor pointer.