1 #ifndef __JAANET__JEVTWEIGHTKM3BUU__
2 #define __JAANET__JEVTWEIGHTKM3BUU__
32 public JClonable<JEvtWeight, JEvtWeightKM3BUU>,
95 const size_t Ntypes = header.
flux.size();
100 if (
check(header) && Nevents > 0.0 && dt > 0.0) {
102 W = 1.0 / Nevents / dt;
106 THROW(
JValueOutOfRange,
"JEvtWeightKM3BUU::configure(): Provided header is inconsistent with KM3BUU.");
135 }
else if (evt.
w.size() > 2) {
144 THROW(
JIndexOutOfRange,
"JEvtWeightKM3BUU::getWeight(): Empty " << (evt.
w.size() < 3 ?
"w2-" :
"w3-") <<
"weight.");
bool is_km3buu(const JHead &header)
Check for generator.
std::vector< JAANET::flux > flux
double getWeight(const Evt &evt) const override
Get weight of given event.
bool check(const JHead &header) const override
Check whether header is consistent with this event weighter.
double numberOfEvents
Number of events.
JEvtWeightKM3BUU(const JEvtWeightKM3BUU &object)
Copy constructor.
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
std::vector< double > w
MC: Weights w[0]=w1, w[1]=w2, w[2]]=w3 (see e.g. Tag list)
JEvtWeightKM3BUU(const JHead &header)
Constructor.
bool is_valid() const
Check validity of pointer.
JEvtWeightKM3BUU()
Default constructor.
double getFactor(const Evt &evt) const
Get weight-factor of given event.
Exception for null pointer operation.
Template class for object cloning.
Helper class for event-weight factor.
void configure(const JFlux &factor)
Configure event-weight factor.
Low-level interface for retrieving the flux corresponding to a given event.
Implementation of event weighting for KM3BUU data.
void configure(const JHead &header) override
Weight configuration.
JEvtWeightFactorHelper< JFlux > JFluxHelper_t
Exception for accessing a value in a collection that is outside of its range.
Exception for accessing an index in a collection that is outside of its range.
double numberOfSeconds
Time in seconds.
JEvtWeightKM3BUU(const JHead &header, const JFlux &flux)
Constructor.
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.