Jpp 19.3.0-rc.2
the software that should make you happy
Loading...
Searching...
No Matches
JAANET::JEvtWeightCorsika Struct Referencefinal

Implementation of event weighting for Corsika data. More...

#include <JEvtWeightCorsika.hh>

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

Public Types

typedef JEvtWeightFactorHelper::pointer_type pointer_type
 
typedef JClonable< JClonable_t >::clone_type clone_type
 

Public Member Functions

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

Detailed Description

Implementation of event weighting for Corsika data.

Definition at line 36 of file JEvtWeightCorsika.hh.

Member Typedef Documentation

◆ pointer_type

◆ clone_type

template<class JClonable_t , class JDerived_t >
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

◆ JEvtWeightCorsika() [1/3]

JAANET::JEvtWeightCorsika::JEvtWeightCorsika ( )
inline

Default Constructor.

Definition at line 43 of file JEvtWeightCorsika.hh.

43 :
45 {}
JFluxHelper()
Default constructor.

◆ JEvtWeightCorsika() [2/3]

JAANET::JEvtWeightCorsika::JEvtWeightCorsika ( const JHead & header)
inline

Constructor.

Parameters
headerheader

Definition at line 53 of file JEvtWeightCorsika.hh.

53 :
55 {
56 configure(header);
57 }
void configure(const JHead &header) override final
Weight configuration.

◆ JEvtWeightCorsika() [3/3]

JAANET::JEvtWeightCorsika::JEvtWeightCorsika ( const JHead & header,
const JFlux & flux )
inline

Constructor.

Parameters
headerheader
fluxflux

Definition at line 66 of file JEvtWeightCorsika.hh.

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

Member Function Documentation

◆ getName()

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

Get name.

Returns
name

Definition at line 79 of file JEvtWeightCorsika.hh.

80 {
81 return "Corsika";
82 }

◆ configure() [1/3]

void JAANET::JEvtWeightCorsika::configure ( const JHead & header)
inlinefinaloverride

Weight configuration.

Parameters
headerheader

Definition at line 90 of file JEvtWeightCorsika.hh.

91 {
92 using namespace JPP;
93
94 if (check(header)) {
95
96 setNormalisation(1.0 / header.genvol.numberOfEvents);
97
98 } else {
99
100 THROW(JValueOutOfRange, "JEvtWeightCorsika::configure(): Provided header is inconsistent with Corsika.");
101 }
102 }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Exception for accessing a value in a collection that is outside of its range.
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.

◆ check()

bool JAANET::JEvtWeightCorsika::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 111 of file JEvtWeightCorsika.hh.

112 {
113 return is_corsika(header);
114 }
bool is_corsika(const JHead &header)
Check for generator.

◆ getWeight()

double JAANET::JEvtWeightCorsika::getWeight ( const Evt & evt) const
inlinefinaloverride

Get weight of given event.

Parameters
evtevent
Returns
weight [Hz]

Definition at line 123 of file JEvtWeightCorsika.hh.

124 {
125 using namespace JPP;
126
127 const double Nretries = evt.w2list[W2LIST_GSEAGEN_N_RETRIES];
128
129 if (static_cast<const JFluxHelper&>(*this) &&
131
132 return evt.w[WEIGHTLIST_DIFFERENTIAL_EVENT_RATE] * getFactor(evt) * getNormalisation(evt) / (1 + Nretries);
133
134 } else if (evt.w.size() > WEIGHTLIST_RESCALED_EVENT_RATE) {
135
137
138 } else if (evt.w.size() > WEIGHTLIST_EVENT_RATE) {
139
140 return evt.w[WEIGHTLIST_EVENT_RATE] * getNormalisation(evt) / (1 + Nretries);
141
142 } else {
143
144 if (!static_cast<const JFluxHelper&>(*this)) {
145 THROW(JNullPointerException, "JEvtWeightCorsika::getWeight(): Unspecified flux function.");
146 } else {
147 THROW(JIndexOutOfRange, "JEvtWeightCorsika::getWeight(): Empty " << (evt.w.size() < 3 ? "w2-" : "w3-") << "weight.");
148 }
149 }
150 }
Exception for accessing an index in a collection that is outside of its range.
Exception for null pointer operation.
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
std::vector< double > w2list
MC: factors that make up w[1]=w2 (see e.g. Tag list or km3net-dataformat/definitions)
Definition Evt.hh:43
JEvtWeightFactor & getFactor() const
Get reference to event-weight factor.
Helper class for flux function.
static const int W2LIST_GSEAGEN_N_RETRIES
Number of extra chances given to each CORSIKA shower to hit the can.
static const int WEIGHTLIST_DIFFERENTIAL_EVENT_RATE
Event rate per unit of flux (c.f. taglist document) [GeV m2 sr].
Definition weightlist.hh:14
static const int WEIGHTLIST_RESCALED_EVENT_RATE
Rescaled event rate [s-1].
Definition weightlist.hh:17
static const int WEIGHTLIST_EVENT_RATE
Event rate [s-1].
Definition weightlist.hh:15

◆ getFlux() [1/2]

JFlux & JAANET::JFluxHelper::getFlux ( ) const
inlineinherited

Get reference to flux function.

Returns
reference to flux function

Definition at line 62 of file JFluxHelper.hh.

63 {
64 using namespace JPP;
65
66 JEvtWeightFactor& factor = this->getFactor();
67
68 JFlux* p = dynamic_cast<JFlux*>(&factor);
69
70 if (p != NULL) {
71 return *p;
72 } else {
73 THROW(JNullPointerException, "JFluxHelper::getFlux(): Cannot convert event-weight factor to flux function.");
74 }
75 }

◆ getFlux() [2/2]

double JAANET::JFluxHelper::getFlux ( const Evt & evt) const
inlineinherited

Get flux of given event.

Parameters
evtevent
Returns
flux [GeV^-1 * m^-2 * sr^-1 * s^-1]

Definition at line 84 of file JFluxHelper.hh.

85 {
86 return getFactor(evt);
87 }

◆ 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 }
void reset(T &value)
Reset value.

◆ 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 }
Helper class for event-weight factor.

◆ 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 }

◆ 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 }
JEvtWeightFactorHelper()
Default constructor.

◆ 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 return getFactor().getProperties(eqpars);
157 }
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 165 of file JEvtWeightFactorHelper.hh.

166 {
167 return getFactor().getProperties(eqpars);
168 }

◆ 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: