Jpp  debug
the software that should make you happy
Public Types | Public Member Functions | List of all members
JAANET::JEvtWeightMupage Struct Referencefinal

Implementation of event weighing for MUPAGE data. More...

#include <JEvtWeightMupage.hh>

Inheritance diagram for JAANET::JEvtWeightMupage:
JAANET::JEvtWeightFactorHelper JLANG::JClonable< JClonable_t, JDerived_t >

Public Types

typedef std::shared_ptr< JEvtWeightFactorpointer_type
 
typedef JClonable< JClonable_t >::clone_type clone_type
 

Public Member Functions

 JEvtWeightMupage ()
 Default Constructor. More...
 
 JEvtWeightMupage (const JHead &header)
 Constructor. More...
 
 JEvtWeightMupage (const JHead &header, const JEvtWeightFactor &factor)
 Constructor. More...
 
const char *const getName () const override final
 Get name. More...
 
void configure (const JHead &header) override final
 Configuration. More...
 
bool check (const JHead &header) const override final
 Check whether header is consistent with this event weighter. More...
 
double getWeight (const Evt &evt) const override final
 Get rate of given event. More...
 
void configure (const pointer_type &p)
 Configure event-weight factor. More...
 
void configure (const JEvtWeightFactor &factor)
 Configure event-weight factor. More...
 
JEvtWeightFactorgetFactor () const
 Get reference to event-weight factor. More...
 
double getFactor (const Evt &evt) const
 Get weight-factor of given event. More...
 
bool is_valid () const
 Check whether this event-weight factor is valid. More...
 
double operator() (const Evt &evt) const
 Get weight-factor of given event. More...
 
JProperties getProperties (const JEquationParameters &eqpars=JEvtWeightFactor::getEquationParameters())
 Get properties of this class. More...
 
JProperties getProperties (const JEquationParameters &eqpars=JEvtWeightFactor::getEquationParameters()) const
 Get properties of this class. More...
 
virtual clone_type clone () const override
 Get clone of this object. More...
 

Detailed Description

Implementation of event weighing for MUPAGE data.

Definition at line 33 of file JEvtWeightMupage.hh.

Member Typedef Documentation

◆ pointer_type

Definition at line 31 of file JEvtWeightFactorHelper.hh.

◆ clone_type

template<class JClonable_t , class JDerived_t >
typedef JClonable<JClonable_t>::clone_type JLANG::JClonable< JClonable_t, JDerived_t >::clone_type
inherited

Definition at line 61 of file JClonable.hh.

Constructor & Destructor Documentation

◆ JEvtWeightMupage() [1/3]

JAANET::JEvtWeightMupage::JEvtWeightMupage ( )
inline

Default Constructor.

Definition at line 40 of file JEvtWeightMupage.hh.

40  :
42  {}
JEvtWeightFactorHelper()
Default constructor.

◆ JEvtWeightMupage() [2/3]

JAANET::JEvtWeightMupage::JEvtWeightMupage ( const JHead header)
inline

Constructor.

Parameters
headerheader

Definition at line 50 of file JEvtWeightMupage.hh.

50  :
52  {
53  configure(header);
54  }
void configure(const JHead &header) override final
Configuration.

◆ JEvtWeightMupage() [3/3]

JAANET::JEvtWeightMupage::JEvtWeightMupage ( const JHead header,
const JEvtWeightFactor factor 
)
inline

Constructor.

Parameters
headerheader
factorfactor

Definition at line 63 of file JEvtWeightMupage.hh.

65  {
66  configure(header);
68  }
void configure(const pointer_type &p)
Configure event-weight factor.

Member Function Documentation

◆ getName()

const char* const JAANET::JEvtWeightMupage::getName ( ) const
inlinefinaloverride

Get name.

Returns
name

Definition at line 76 of file JEvtWeightMupage.hh.

77  {
78  return "MUPAGE";
79  }

◆ configure() [1/3]

void JAANET::JEvtWeightMupage::configure ( const JHead header)
inlinefinaloverride

Configuration.

Parameters
headerheader

Definition at line 87 of file JEvtWeightMupage.hh.

88  {
89  using namespace JPP;
90 
91  if (check(header)) {
92 
93  const double dt = ( header.time_interval.t2 - header.time_interval.t1 > 0.0 ?
94  header.time_interval.t2 - header.time_interval.t1 :
95  (header.livetime.numberOfSeconds > 0.0 ?
96  header.livetime.numberOfSeconds : 1.0) );
97 
98  setNormalisation(1.0 / dt);
99 
100  } else {
101 
102  THROW(JValueOutOfRange, "JEvtWeightMupage::configure(): Provided header is inconsistent with MUPAGE.");
103  }
104  }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:712
JAANET::livetime livetime
Definition: JHead.hh:1604
JAANET::time_interval time_interval
Definition: JHead.hh:1610
Exception for accessing a value in a collection that is outside of its range.
Definition: JException.hh:180
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
bool check(const JHead &header) const override final
Check whether header is consistent with this event weighter.
double numberOfSeconds
Live time [s].
Definition: JHead.hh:896
double t1
Start time in seconds.
Definition: JHead.hh:1164
double t2
Stop time in seconds.
Definition: JHead.hh:1165

◆ check()

bool JAANET::JEvtWeightMupage::check ( const JHead header) const
inlinefinaloverride

Check whether header is consistent with this event weighter.

Parameters
headerheader
Returns
true if consistent; else false

Definition at line 113 of file JEvtWeightMupage.hh.

114  {
115  return is_mupage(header);
116  }
bool is_mupage(const JHead &header)
Check for generator.
Definition: JHeadToolkit.hh:85

◆ getWeight()

double JAANET::JEvtWeightMupage::getWeight ( const Evt evt) const
inlinefinaloverride

Get rate of given event.

Parameters
evtevent
Returns
weight [1/s]

Definition at line 125 of file JEvtWeightMupage.hh.

126  {
127  if (static_cast<const JEvtWeightFactorHelper&>(*this)) {
128 
129  return getFactor(evt) * getNormalisation(evt);
130 
131  } else if (evt.w.size() > WEIGHTLIST_RESCALED_EVENT_RATE) {
132 
133  return evt.w[WEIGHTLIST_RESCALED_EVENT_RATE];
134 
135  } else {
136 
137  return getNormalisation(evt);
138  }
139  }
std::vector< double > w
MC: Weights w[0]=w1, w[1]=w2, w[2]=w3 (see e.g. Tag list or km3net-dataformat/definitions)
Definition: Evt.hh:42
Helper class for event-weight factor.
JEvtWeightFactor & getFactor() const
Get reference to event-weight factor.
static const int WEIGHTLIST_RESCALED_EVENT_RATE
Rescaled event rate [s-1].
Definition: weightlist.hh:17

◆ configure() [2/3]

void JAANET::JEvtWeightFactorHelper::configure ( const pointer_type p)
inlineinherited

Configure event-weight factor.

Parameters
ppointer to event-weight factor

Definition at line 68 of file JEvtWeightFactorHelper.hh.

69  {
70  static_cast<pointer_type&>(*this) = p;
71  }
std::shared_ptr< JEvtWeightFactor > pointer_type

◆ configure() [3/3]

void JAANET::JEvtWeightFactorHelper::configure ( const JEvtWeightFactor factor)
inlineinherited

Configure event-weight factor.

Parameters
factorevent-weight factor

Definition at line 79 of file JEvtWeightFactorHelper.hh.

80  {
81  using namespace JPP;
82 
83  JEvtWeightFactor* p = dynamic_cast<JEvtWeightFactor*>(factor.clone());
84 
85  if (p != NULL) {
86  this->reset(p);
87  } else {
88  THROW(JNullPointerException, "JEvtWeightFactorHelper::configure(): Could not retrieve event-weight factor interface.");
89  }
90  }
Exception for null pointer operation.
Definition: JException.hh:234
void reset(T &value)
Reset value.
Abstract base class for specifiable event-weight factors.
virtual clone_type clone() const override
Get clone of this object.
Definition: JClonable.hh:69

◆ getFactor() [1/2]

JEvtWeightFactor& JAANET::JEvtWeightFactorHelper::getFactor ( ) const
inlineinherited

Get reference to event-weight factor.

Returns
reference to event-weight factor

Definition at line 98 of file JEvtWeightFactorHelper.hh.

99  {
100  using namespace JPP;
101 
102  if (static_cast<const JEvtWeightFactorHelper&>(*this)) {
103  return *(this->get());
104  } else {
105  THROW(JNullPointerException, "JEvtWeightFactorHelper::getFactor(): Event-weight factor is not set.");
106  }
107  }

◆ getFactor() [2/2]

double JAANET::JEvtWeightFactorHelper::getFactor ( const Evt evt) const
inlineinherited

Get weight-factor of given event.

Parameters
evtevent
Returns
event-weight factor

Definition at line 129 of file JEvtWeightFactorHelper.hh.

130  {
131  const JEvtWeightFactor& weightFactor = getFactor();
132 
133  return weightFactor.getFactor(evt);
134  }
virtual double getFactor(const Evt &evt) const =0
Get event-weight factor of given event.

◆ is_valid()

bool JAANET::JEvtWeightFactorHelper::is_valid ( ) const
inlineinherited

Check whether this event-weight factor is valid.

Returns
true if valid; else false

Definition at line 115 of file JEvtWeightFactorHelper.hh.

116  {
117  const JEvtWeightFactorHelper& helper = static_cast<const JEvtWeightFactorHelper&>(*this);
118 
119  return (helper && helper->is_valid());
120  }
bool is_valid() const
Check whether this event-weight factor is valid.

◆ operator()()

double JAANET::JEvtWeightFactorHelper::operator() ( const Evt evt) const
inlineinherited

Get weight-factor of given event.

Parameters
evtevent
Returns
event-weight factor

Definition at line 143 of file JEvtWeightFactorHelper.hh.

144  {
145  return getFactor(evt);
146  }

◆ getProperties() [1/2]

JProperties JAANET::JEvtWeightFactorHelper::getProperties ( const JEquationParameters eqpars = JEvtWeightFactor::getEquationParameters())
inlineinherited

Get properties of this class.

Parameters
eqparsequation parameters

Definition at line 154 of file JEvtWeightFactorHelper.hh.

155  {
156  const JEvtWeightFactor& weightFactor = getFactor();
157 
158  return weightFactor.getProperties(eqpars);
159  }
virtual JProperties getProperties(const JEquationParameters &eqpars=JEvtWeightFactor::getEquationParameters())
Get properties of this class.

◆ getProperties() [2/2]

JProperties JAANET::JEvtWeightFactorHelper::getProperties ( const JEquationParameters eqpars = JEvtWeightFactor::getEquationParameters()) const
inlineinherited

Get properties of this class.

Parameters
eqparsequation parameters

Definition at line 167 of file JEvtWeightFactorHelper.hh.

168  {
169  const JEvtWeightFactor& weightFactor = getFactor();
170 
171  return weightFactor.getProperties(eqpars);
172  }

◆ clone()

template<class JClonable_t , class JDerived_t >
virtual clone_type JLANG::JClonable< JClonable_t, JDerived_t >::clone ( ) const
inlineoverridevirtualinherited

The documentation for this struct was generated from the following file: