Jpp 19.3.0-rc.1
the software that should make you happy
Loading...
Searching...
No Matches
KM3NETDAQ::JDAQRate Class Reference

Data storage class for rate measurement of one PMT. More...

#include <JDAQSummaryFrame.hh>

Public Types

typedef unsigned char JRate_t
 

Public Member Functions

 JDAQRate ()
 Default constructor.
 
JRate_t getValue () const
 Get value.
 
void setValue (const int numberOfHits, const double frameTime_ns)
 Set value.
 
void setValue (const double rate_Hz)
 Set value.
 
double getRate () const
 Get count rate.
 
double getWeight () const
 Get weight.
 
JDAQRatemul (const double factor)
 Scale rate.
 
JDAQRatediv (const double factor)
 Scale rate.
 
bool is_valid () const
 Check validity of rate.
 

Static Public Member Functions

static double getMinimalRate ()
 Get minimal rate (below this, value is set to zero)
 
static double getMaximalRate ()
 Get maximal rate (above this, value is set to maximum)
 
static JRate_t getValue (const int numberOfHits, const double frameTime_ns)
 Get value.
 
static JRate_t getValue (const double rate_Hz)
 Get value.
 
static double getRate (const JRate_t value)
 Get count rate.
 
static double getWeight (const JRate_t value)
 Get weight.
 
static int getN ()
 Get number of bins.
 
static const double * getData (const double factor=1.0)
 Get abscissa values.
 

Protected Attributes

JRate_t value
 

Static Private Member Functions

static const double getFactor ()
 Get conversion factor.
 
static double get_rate (const double value)
 Get count rate.
 

Friends

class JDAQSummaryFrame
 

Detailed Description

Data storage class for rate measurement of one PMT.

Note that the rate value is compressed. The number of bins and corresponding abscissa values can be obtained with
methods JDAQRare::getN and JDAQRate::getData, respectively.

Definition at line 36 of file JDAQSummaryFrame.hh.

Member Typedef Documentation

◆ JRate_t

Definition at line 42 of file JDAQSummaryFrame.hh.

Constructor & Destructor Documentation

◆ JDAQRate()

KM3NETDAQ::JDAQRate::JDAQRate ( )
inline

Default constructor.

Definition at line 171 of file JDAQSummaryFrame.hh.

171 :
172 value(0)
173 {}

Member Function Documentation

◆ getMinimalRate()

static double KM3NETDAQ::JDAQRate::getMinimalRate ( )
inlinestatic

Get minimal rate (below this, value is set to zero)

Returns
rate [Hz]

Definition at line 50 of file JDAQSummaryFrame.hh.

51 {
52 return 2.0e3;
53 }

◆ getMaximalRate()

static double KM3NETDAQ::JDAQRate::getMaximalRate ( )
inlinestatic

Get maximal rate (above this, value is set to maximum)

Returns
rate [Hz]

Definition at line 61 of file JDAQSummaryFrame.hh.

62 {
63 return 2.0e6;
64 }

◆ getValue() [1/3]

static JRate_t KM3NETDAQ::JDAQRate::getValue ( const int numberOfHits,
const double frameTime_ns )
inlinestatic

Get value.

Parameters
numberOfHitsnumber of hits
frameTime_nsframe time [ns]
Returns
value

Definition at line 74 of file JDAQSummaryFrame.hh.

75 {
76 return getValue(numberOfHits * 1.0e9 / frameTime_ns);
77 }
JRate_t getValue() const
Get value.

◆ getValue() [2/3]

static JRate_t KM3NETDAQ::JDAQRate::getValue ( const double rate_Hz)
inlinestatic

Get value.

Parameters
rate_Hzrate [Hz]
Returns
value

Definition at line 86 of file JDAQSummaryFrame.hh.

87 {
88 if (rate_Hz <= getMinimalRate())
89 return 0;
90 else if (rate_Hz >= getMaximalRate())
91 return std::numeric_limits<JRate_t>::max();
92 else
93 return (JRate_t) (log(rate_Hz/getMinimalRate()) / getFactor() + 0.5);
94 }
static double getMinimalRate()
Get minimal rate (below this, value is set to zero)
static const double getFactor()
Get conversion factor.
static double getMaximalRate()
Get maximal rate (above this, value is set to maximum)

◆ getRate() [1/2]

static double KM3NETDAQ::JDAQRate::getRate ( const JRate_t value)
inlinestatic

Get count rate.

Parameters
valuevalue
Returns
rate [Hz]

Definition at line 103 of file JDAQSummaryFrame.hh.

104 {
105 if (value == 0)
106 return 0.0;
107 else
108 return get_rate(value);
109 }
static double get_rate(const double value)
Get count rate.

◆ getWeight() [1/2]

static double KM3NETDAQ::JDAQRate::getWeight ( const JRate_t value)
inlinestatic

Get weight.

Parameters
valuevalue
Returns
weight [Hz^-1]

Definition at line 118 of file JDAQSummaryFrame.hh.

119 {
120 double W = 1.0;
121
122 if (value == 0)
123 W = get_rate(0.5) - getMinimalRate();
124 else if (value == std::numeric_limits<JRate_t>::max())
125 W = getMaximalRate() - get_rate(std::numeric_limits<JRate_t>::max() - 0.5);
126 else
127 W = get_rate((double) value + 0.5) - get_rate((double) value - 0.5);
128
129 return 1.0 / W;
130 }

◆ getN()

static int KM3NETDAQ::JDAQRate::getN ( )
inlinestatic

Get number of bins.

Returns
number of bins

Definition at line 138 of file JDAQSummaryFrame.hh.

139 {
140 return (int) std::numeric_limits<JRate_t>::max() + 1;
141 }

◆ getData()

static const double * KM3NETDAQ::JDAQRate::getData ( const double factor = 1.0)
inlinestatic

Get abscissa values.

Parameters
factorscaling factor
Returns
abscissa values

Definition at line 150 of file JDAQSummaryFrame.hh.

151 {
152 static std::vector<double> buffer;
153
154 buffer.clear();
155
156 buffer.push_back(getMinimalRate() * factor);
157
158 for (int i = 1; i != JDAQRate::getN(); ++i) {
159 buffer.push_back(get_rate(i - 0.5) * factor);
160 }
161
162 buffer.push_back(getMaximalRate() * factor);
163
164 return buffer.data();
165 }
static int getN()
Get number of bins.

◆ getValue() [3/3]

JRate_t KM3NETDAQ::JDAQRate::getValue ( ) const
inline

Get value.

Returns
value

Definition at line 181 of file JDAQSummaryFrame.hh.

182 {
183 return value;
184 }

◆ setValue() [1/2]

void KM3NETDAQ::JDAQRate::setValue ( const int numberOfHits,
const double frameTime_ns )
inline

Set value.

Parameters
numberOfHitsnumber of hits
frameTime_nsframe time [ns]

Definition at line 193 of file JDAQSummaryFrame.hh.

194 {
195 value = getValue(numberOfHits, frameTime_ns);
196 }

◆ setValue() [2/2]

void KM3NETDAQ::JDAQRate::setValue ( const double rate_Hz)
inline

Set value.

Parameters
rate_Hzrate [Hz]

Definition at line 204 of file JDAQSummaryFrame.hh.

205 {
206 value = getValue(rate_Hz);
207 }

◆ getRate() [2/2]

double KM3NETDAQ::JDAQRate::getRate ( ) const
inline

Get count rate.

Returns
rate [Hz]

Definition at line 215 of file JDAQSummaryFrame.hh.

216 {
217 return getRate(value);
218 }
double getRate() const
Get count rate.

◆ getWeight() [2/2]

double KM3NETDAQ::JDAQRate::getWeight ( ) const
inline

Get weight.

Returns
weight [Hz^-1]

Definition at line 226 of file JDAQSummaryFrame.hh.

227 {
228 return getWeight(value);
229 }
double getWeight() const
Get weight.

◆ mul()

JDAQRate & KM3NETDAQ::JDAQRate::mul ( const double factor)
inline

Scale rate.

Parameters
factormultiplication factor
Returns
this rate

Definition at line 238 of file JDAQSummaryFrame.hh.

239 {
240 setValue(getRate() * factor);
241
242 return *this;
243 }
void setValue(const int numberOfHits, const double frameTime_ns)
Set value.

◆ div()

JDAQRate & KM3NETDAQ::JDAQRate::div ( const double factor)
inline

Scale rate.

Parameters
factormultiplication factor
Returns
this rate

Definition at line 252 of file JDAQSummaryFrame.hh.

253 {
254 setValue(getRate() / factor);
255
256 return *this;
257 }

◆ is_valid()

bool KM3NETDAQ::JDAQRate::is_valid ( ) const
inline

Check validity of rate.

The rate is considered valid if it is between the minimal and the maximal rate.

Returns
true if valid; else false

Definition at line 266 of file JDAQSummaryFrame.hh.

267 {
268 return (value != 0 && value != std::numeric_limits<JRate_t>::max());
269 }

◆ getFactor()

static const double KM3NETDAQ::JDAQRate::getFactor ( )
inlinestaticprivate

Get conversion factor.

Returns
factor

Definition at line 282 of file JDAQSummaryFrame.hh.

283 {
284 return std::log(getMaximalRate() / getMinimalRate()) / std::numeric_limits<JRate_t>::max();
285 }

◆ get_rate()

static double KM3NETDAQ::JDAQRate::get_rate ( const double value)
inlinestaticprivate

Get count rate.

Parameters
valuevalue
Returns
rate [Hz]

Definition at line 294 of file JDAQSummaryFrame.hh.

295 {
296 return getMinimalRate() * std::exp(value * getFactor());
297 }

Friends And Related Symbol Documentation

◆ JDAQSummaryFrame

friend class JDAQSummaryFrame
friend

Definition at line 39 of file JDAQSummaryFrame.hh.

Member Data Documentation

◆ value

JRate_t KM3NETDAQ::JDAQRate::value
protected

Definition at line 273 of file JDAQSummaryFrame.hh.


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