Jpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Attributes | Friends | List of all members
KM3NETDAQ::JDAQSummaryFrame Class Reference

Data storage class for rate measurements of all PMTs in one module. More...

#include <JDAQSummaryFrame.hh>

Inheritance diagram for KM3NETDAQ::JDAQSummaryFrame:
KM3NETDAQ::JDAQModuleIdentifier KM3NETDAQ::JDAQFrameStatus

Public Types

typedef JDAQRate::JRate_t JRate_t
 

Public Member Functions

 JDAQSummaryFrame ()
 Default constructor. More...
 
 JDAQSummaryFrame (const JDAQModuleIdentifier &id)
 Constructor. More...
 
 JDAQSummaryFrame (const JDAQSuperFrame &input)
 Constructor. More...
 
const JDAQRateoperator[] (const int tdc) const
 Get DAQ rate of given PMT. More...
 
JDAQRateoperator[] (const int tdc)
 Get DAQ rate of given PMT. More...
 
double getRate (const int tdc, const double factor=1.0) const
 Get count rate. More...
 
double getWeight (const int tdc, const double factor=1.0) const
 Get weight. More...
 
void setRate (const int tdc, const double rate_Hz)
 Set count rate. More...
 
 ClassDefNV (JDAQSummaryFrame, 2)
 
const JDAQModuleIdentifiergetModuleIdentifier () const
 Get Module identifier. More...
 
void setModuleIdentifier (const JDAQModuleIdentifier &module)
 Set Module identifier. More...
 
int getModuleID () const
 Get module identifier. More...
 
 ClassDefNV (JDAQModuleIdentifier, 1)
 
const JDAQFrameStatusgetDAQFrameStatus () const
 Get DAQ frame status. More...
 
void setDAQFrameStatus (const JDAQFrameStatus &status)
 Set DAQ frame status. More...
 
int getDAQStatus () const
 Get DAQ status. More...
 
int getStatus () const
 Get TDC and White Rabbit status. More...
 
int getFIFOStatus () const
 Get FIFO status. More...
 
bool testDAQStatus () const
 Test DAQ status of packets. More...
 
bool testStatus () const
 Test TDC and White Rabbit status. More...
 
int getUDPNumberOfReceivedPackets () const
 Get number of received UDP packets. More...
 
int getUDPMaximalSequenceNumber () const
 Get maximal sequence number of UDP packet. More...
 
bool testWhiteRabbitStatus () const
 Test White Rabbit status. More...
 
bool testTDCStatus () const
 Test TDC status. More...
 
bool testHighRateVeto () const
 Test high-rate veto status. More...
 
bool testHighRateVeto (const int tdc) const
 Test high-rate veto status. More...
 
int countHighRateVeto () const
 Count high-rate veto status. More...
 
bool testFIFOStatus () const
 Test FIFO status. More...
 
bool testFIFOStatus (const int tdc) const
 Test FIFO status. More...
 
int countFIFOStatus () const
 Count FIFO status. More...
 
bool hasUDPTrailer () const
 Get UDP trailer status. More...
 
void setHighRateVeto (const int tdc, const bool value)
 Set high-rate veto. More...
 
 ClassDefNV (JDAQFrameStatus, 1)
 

Static Public Member Functions

static int sizeOf ()
 Get size of object. More...
 
static const JDAQFrameStatusgetInstance ()
 Get reference to unique instance of this class object. More...
 

Static Public Attributes

static int ROOT_IO_VERSION
 Streamer version of JDAQSummaryslice as obtained from ROOT file. More...
 

Protected Attributes

JDAQRate data [NUMBER_OF_PMTS]
 
int id
 
int daq
 
int status
 
int fifo
 
int status_3
 
int status_4
 

Friends

JReaderoperator>> (JReader &in, JDAQSummaryFrame &summary)
 Read DAQ summary frame from input. More...
 
JWriteroperator<< (JWriter &out, const JDAQSummaryFrame &summary)
 Write DAQ summary frame to output. More...
 

Detailed Description

Data storage class for rate measurements of all PMTs in one module.

Definition at line 320 of file JDAQSummaryFrame.hh.

Member Typedef Documentation

Definition at line 326 of file JDAQSummaryFrame.hh.

Constructor & Destructor Documentation

KM3NETDAQ::JDAQSummaryFrame::JDAQSummaryFrame ( )
inline

Default constructor.

Definition at line 332 of file JDAQSummaryFrame.hh.

332  :
335  {}
JDAQModuleIdentifier()
Default constructor.
JDAQFrameStatus()
Default constructor.
KM3NETDAQ::JDAQSummaryFrame::JDAQSummaryFrame ( const JDAQModuleIdentifier id)
inline

Constructor.

Parameters
idmodule identifier

Definition at line 343 of file JDAQSummaryFrame.hh.

343  :
346  {}
JDAQModuleIdentifier()
Default constructor.
static const JDAQFrameStatus & getInstance()
Get reference to unique instance of this class object.
JDAQFrameStatus()
Default constructor.
KM3NETDAQ::JDAQSummaryFrame::JDAQSummaryFrame ( const JDAQSuperFrame input)
inline

Constructor.

Note that normally the rate is set to the number of hits per unit frame time but if either the high-rate veto or FIFO (almost) full bit is on, the rate is set to the number of hits divided by the time of the last hit.

Parameters
inputsuper frame

Definition at line 358 of file JDAQSummaryFrame.hh.

358  :
359  JDAQModuleIdentifier(input.getModuleID()),
360  JDAQFrameStatus (input.getDAQFrameStatus())
361  {
362  using namespace std;
363 
364  vector<int> counter(NUMBER_OF_PMTS, 0);
365 
366  int n = input.size();
367 
368  for (JDAQSuperFrame::const_iterator i = input.begin(); n != 0; --n, ++i) {
369  ++counter[i->getPMT()];
370  }
371 
372  for (int i = 0; i != NUMBER_OF_PMTS; ++i) {
373  data[i].setValue(counter[i], getFrameTime());
374  }
375 
376  if (input.testHighRateVeto() || input.testFIFOStatus()) {
377 
378  typedef JDAQHit::JTDC_t JTDC_t;
379 
380  vector<JTDC_t> limit(NUMBER_OF_PMTS, numeric_limits<JTDC_t>::min());
381 
382  int n = input.size();
383 
384  for (JDAQSuperFrame::const_iterator i = input.begin(); n != 0; --n, ++i) {
385  if (i->getT() > limit[i->getPMT()]) {
386  limit[i->getPMT()] = i->getT();
387  }
388  }
389 
390  for (int i = 0; i != NUMBER_OF_PMTS; ++i) {
391  if (input.testHighRateVeto(i) || input.testFIFOStatus(i)) {
392  if (limit[i] != 0) {
393  data[i].setValue((double) counter[i] * 1.0e9 / (double) limit[i]);
394  }
395  }
396  }
397  }
398  }
JDAQRate data[NUMBER_OF_PMTS]
JDAQModuleIdentifier()
Default constructor.
unsigned int JTDC_t
leading edge [ns]
Definition: JDAQHit.hh:41
JDAQFrame::const_iterator const_iterator
double getFrameTime()
Get frame time duration.
Definition: JDAQClock.hh:162
void setValue(const int numberOfHits, const double frameTime_ns)
Set value.
JDAQFrameStatus()
Default constructor.
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
Definition: JDAQ.hh:26

Member Function Documentation

const JDAQRate& KM3NETDAQ::JDAQSummaryFrame::operator[] ( const int  tdc) const
inline

Get DAQ rate of given PMT.

Parameters
tdcTDC
Returns
JDAQRate

Definition at line 407 of file JDAQSummaryFrame.hh.

408  {
409  if (tdc >= 0 && tdc < NUMBER_OF_PMTS)
410  return data[tdc];
411  else
412  throw JDAQException("TDC out of range.");
413  }
JDAQRate data[NUMBER_OF_PMTS]
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
Definition: JDAQ.hh:26
JDAQRate& KM3NETDAQ::JDAQSummaryFrame::operator[] ( const int  tdc)
inline

Get DAQ rate of given PMT.

Parameters
tdcTDC
Returns
JDAQRate

Definition at line 422 of file JDAQSummaryFrame.hh.

423  {
424  if (tdc >= 0 && tdc < NUMBER_OF_PMTS)
425  return data[tdc];
426  else
427  throw JDAQException("TDC out of range.");
428  }
JDAQRate data[NUMBER_OF_PMTS]
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
Definition: JDAQ.hh:26
double KM3NETDAQ::JDAQSummaryFrame::getRate ( const int  tdc,
const double  factor = 1.0 
) const
inline

Get count rate.

Parameters
tdcTDC
factorscaling factor
Returns
rate x scaling factor [Hz]

Definition at line 438 of file JDAQSummaryFrame.hh.

439  {
440  return data[tdc].getRate() * factor;
441  }
JDAQRate data[NUMBER_OF_PMTS]
static double getRate(const JRate_t value)
Get count rate.
double KM3NETDAQ::JDAQSummaryFrame::getWeight ( const int  tdc,
const double  factor = 1.0 
) const
inline

Get weight.

Parameters
tdcTDC
factorscaling factor
Returns
weight / scaling factor [Hz^-1]

Definition at line 451 of file JDAQSummaryFrame.hh.

452  {
453  return data[tdc].getWeight() / factor;
454  }
JDAQRate data[NUMBER_OF_PMTS]
static double getWeight(const JRate_t value)
Get weight.
void KM3NETDAQ::JDAQSummaryFrame::setRate ( const int  tdc,
const double  rate_Hz 
)
inline

Set count rate.

Parameters
tdcTDC
rate_Hzrate [Hz]

Definition at line 463 of file JDAQSummaryFrame.hh.

464  {
465  return data[tdc].setValue(rate_Hz);
466  }
JDAQRate data[NUMBER_OF_PMTS]
void setValue(const int numberOfHits, const double frameTime_ns)
Set value.
static int KM3NETDAQ::JDAQSummaryFrame::sizeOf ( )
inlinestatic

Get size of object.

Returns
number of bytes

Definition at line 510 of file JDAQSummaryFrame.hh.

511  {
512  return (JDAQModuleIdentifier::sizeOf() +
514  NUMBER_OF_PMTS * sizeof(JDAQRate));
515  }
static int sizeOf()
Get size of object.
static int sizeOf()
Get size of object.
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
Definition: JDAQ.hh:26
KM3NETDAQ::JDAQSummaryFrame::ClassDefNV ( JDAQSummaryFrame  ,
 
)
const JDAQModuleIdentifier& KM3NETDAQ::JDAQModuleIdentifier::getModuleIdentifier ( ) const
inlineinherited

Get Module identifier.

Returns
Module identifier

Definition at line 50 of file JDAQModuleIdentifier.hh.

51  {
52  return *this;
53  }
void KM3NETDAQ::JDAQModuleIdentifier::setModuleIdentifier ( const JDAQModuleIdentifier module)
inlineinherited

Set Module identifier.

Parameters
moduleModule identifier

Definition at line 61 of file JDAQModuleIdentifier.hh.

62  {
63  *this = module;
64  }
int KM3NETDAQ::JDAQModuleIdentifier::getModuleID ( ) const
inlineinherited

Get module identifier.

Returns
module identifier

Definition at line 72 of file JDAQModuleIdentifier.hh.

73  {
74  return id;
75  }
KM3NETDAQ::JDAQModuleIdentifier::ClassDefNV ( JDAQModuleIdentifier  ,
 
)
inherited
static const JDAQFrameStatus& KM3NETDAQ::JDAQFrameStatus::getInstance ( )
inlinestaticinherited

Get reference to unique instance of this class object.

This instance has default values which correspond to a valid DAQ frame status.

Returns
reference to this class object

Definition at line 66 of file JDAQFrameStatus.hh.

67  {
71 
72  return status;
73  }
static const JBits DAQ_UDP_RECEIVED_PACKETS(0, 15)
Mask of UDP received packets.
int write(const int value) const
Write given value as bit mask.
Definition: JDAQ.hh:115
int write(const int value) const
Write given value as bit mask.
Definition: JDAQ.hh:238
static const JBits DAQ_FIFO(0, 30)
FIFO almost full bits.
static const JBit DAQ_UDP_TRAILER(31)
UDP trailer.
static const JBit DAQ_WHITE_RABBIT(31)
White Rabbit status.
static const JBits DAQ_UDP_SEQUENCE_NUMBER(16, 31)
Mask of UDP sequence number.
JDAQFrameStatus()
Default constructor.
const JDAQFrameStatus& KM3NETDAQ::JDAQFrameStatus::getDAQFrameStatus ( ) const
inlineinherited

Get DAQ frame status.

Returns
DAQ frame status

Definition at line 81 of file JDAQFrameStatus.hh.

82  {
83  return static_cast<const JDAQFrameStatus&>(*this);
84  }
JDAQFrameStatus()
Default constructor.
void KM3NETDAQ::JDAQFrameStatus::setDAQFrameStatus ( const JDAQFrameStatus status)
inlineinherited

Set DAQ frame status.

Parameters
statusDAQ frame status

Definition at line 92 of file JDAQFrameStatus.hh.

93  {
94  static_cast<JDAQFrameStatus&>(*this) = status;
95  }
JDAQFrameStatus()
Default constructor.
int KM3NETDAQ::JDAQFrameStatus::getDAQStatus ( ) const
inlineinherited

Get DAQ status.

Returns
DAQ status

Definition at line 103 of file JDAQFrameStatus.hh.

104  {
105  return this->daq;
106  }
int KM3NETDAQ::JDAQFrameStatus::getStatus ( ) const
inlineinherited

Get TDC and White Rabbit status.

Returns
status

Definition at line 114 of file JDAQFrameStatus.hh.

115  {
116  return this->status;
117  }
int KM3NETDAQ::JDAQFrameStatus::getFIFOStatus ( ) const
inlineinherited

Get FIFO status.

Returns
FIFO status

Definition at line 125 of file JDAQFrameStatus.hh.

126  {
127  return this->fifo;
128  }
bool KM3NETDAQ::JDAQFrameStatus::testDAQStatus ( ) const
inlineinherited

Test DAQ status of packets.

Returns
true if okay; else false

Definition at line 136 of file JDAQFrameStatus.hh.

137  {
139  }
bool hasUDPTrailer() const
Get UDP trailer status.
int getUDPNumberOfReceivedPackets() const
Get number of received UDP packets.
int getUDPMaximalSequenceNumber() const
Get maximal sequence number of UDP packet.
bool KM3NETDAQ::JDAQFrameStatus::testStatus ( ) const
inlineinherited

Test TDC and White Rabbit status.

Returns
true if okay; else false

Definition at line 147 of file JDAQFrameStatus.hh.

148  {
149  return testWhiteRabbitStatus() && testTDCStatus();
150  }
bool testTDCStatus() const
Test TDC status.
bool testWhiteRabbitStatus() const
Test White Rabbit status.
int KM3NETDAQ::JDAQFrameStatus::getUDPNumberOfReceivedPackets ( ) const
inlineinherited

Get number of received UDP packets.

Returns
UDP received packets

Definition at line 158 of file JDAQFrameStatus.hh.

159  {
160  return DAQ_UDP_RECEIVED_PACKETS.read(this->daq);
161  }
static const JBits DAQ_UDP_RECEIVED_PACKETS(0, 15)
Mask of UDP received packets.
int read(const int mask) const
Read given bit mask as value.
Definition: JDAQ.hh:250
int KM3NETDAQ::JDAQFrameStatus::getUDPMaximalSequenceNumber ( ) const
inlineinherited

Get maximal sequence number of UDP packet.

Returns
UDP sequence number

Definition at line 169 of file JDAQFrameStatus.hh.

170  {
171  return DAQ_UDP_SEQUENCE_NUMBER.read(this->daq);
172  }
int read(const int mask) const
Read given bit mask as value.
Definition: JDAQ.hh:250
static const JBits DAQ_UDP_SEQUENCE_NUMBER(16, 31)
Mask of UDP sequence number.
bool KM3NETDAQ::JDAQFrameStatus::testWhiteRabbitStatus ( ) const
inlineinherited

Test White Rabbit status.

Returns
true if okay; else false

Definition at line 180 of file JDAQFrameStatus.hh.

181  {
182  return DAQ_WHITE_RABBIT.has(this->status);
183  }
bool has(const int mask) const
Test bit.
Definition: JDAQ.hh:139
static const JBit DAQ_WHITE_RABBIT(31)
White Rabbit status.
bool KM3NETDAQ::JDAQFrameStatus::testTDCStatus ( ) const
inlineinherited

Test TDC status.

Returns
true if okay; else false

Definition at line 191 of file JDAQFrameStatus.hh.

192  {
193  return !testHighRateVeto();
194  }
bool testHighRateVeto() const
Test high-rate veto status.
bool KM3NETDAQ::JDAQFrameStatus::testHighRateVeto ( ) const
inlineinherited

Test high-rate veto status.

Returns
true if one of the TDCs is high-rate vetoed; else false

Definition at line 202 of file JDAQFrameStatus.hh.

203  {
204  return DAQ_TDC.has(this->status);
205  }
bool has(const int mask) const
Test bit mask.
Definition: JDAQ.hh:262
static const JBits DAQ_TDC(0, 30)
TDC high-rate veto status.
bool KM3NETDAQ::JDAQFrameStatus::testHighRateVeto ( const int  tdc) const
inlineinherited

Test high-rate veto status.

Parameters
tdcTDC
Returns
true if TDC is high-rate vetoed; else false

Definition at line 214 of file JDAQFrameStatus.hh.

215  {
216  return JBit(tdc).has(this->status);
217  }
int KM3NETDAQ::JDAQFrameStatus::countHighRateVeto ( ) const
inlineinherited

Count high-rate veto status.

Returns
number of the TDCs with high-rate veto

Definition at line 225 of file JDAQFrameStatus.hh.

226  {
227  int n = 0;
228 
229  if (testHighRateVeto()) {
230  for (int pmt = 0; pmt != NUMBER_OF_PMTS; ++pmt) {
231  if (JBit(pmt).has(this->status)) {
232  ++n;
233  }
234  }
235  }
236 
237  return n;
238  }
bool testHighRateVeto() const
Test high-rate veto status.
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
Definition: JDAQ.hh:26
bool KM3NETDAQ::JDAQFrameStatus::testFIFOStatus ( ) const
inlineinherited

Test FIFO status.

Returns
true if one of the TDCs has FIFO almost full; else false

Definition at line 246 of file JDAQFrameStatus.hh.

247  {
248  return DAQ_FIFO.has(this->fifo);
249  }
static const JBits DAQ_FIFO(0, 30)
FIFO almost full bits.
bool has(const int mask) const
Test bit mask.
Definition: JDAQ.hh:262
bool KM3NETDAQ::JDAQFrameStatus::testFIFOStatus ( const int  tdc) const
inlineinherited

Test FIFO status.

Parameters
tdcTDC
Returns
true if FIFO is almost full; else false

Definition at line 258 of file JDAQFrameStatus.hh.

259  {
260  return JBit(tdc).has(this->fifo);
261  }
int KM3NETDAQ::JDAQFrameStatus::countFIFOStatus ( ) const
inlineinherited

Count FIFO status.

Returns
number of the TDCs with FIFO almost full

Definition at line 269 of file JDAQFrameStatus.hh.

270  {
271  int n = 0;
272 
273  if (testFIFOStatus()) {
274  for (int pmt = 0; pmt != NUMBER_OF_PMTS; ++pmt) {
275  if (JBit(pmt).has(this->fifo)) {
276  ++n;
277  }
278  }
279  }
280 
281  return n;
282  }
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
Definition: JDAQ.hh:26
bool testFIFOStatus() const
Test FIFO status.
bool KM3NETDAQ::JDAQFrameStatus::hasUDPTrailer ( ) const
inlineinherited

Get UDP trailer status.

Returns
true if UDP trailer present; else false

Definition at line 290 of file JDAQFrameStatus.hh.

291  {
292  return DAQ_UDP_TRAILER.has(this->fifo);
293  }
static const JBit DAQ_UDP_TRAILER(31)
UDP trailer.
bool has(const int mask) const
Test bit.
Definition: JDAQ.hh:139
void KM3NETDAQ::JDAQFrameStatus::setHighRateVeto ( const int  tdc,
const bool  value 
)
inlineinherited

Set high-rate veto.

Parameters
tdcTDC
valuevalue

Definition at line 302 of file JDAQFrameStatus.hh.

303  {
304  JBit(tdc).set(this->status, value);
305  }
KM3NETDAQ::JDAQFrameStatus::ClassDefNV ( JDAQFrameStatus  ,
 
)
inherited

Friends And Related Function Documentation

JReader& operator>> ( JReader in,
JDAQSummaryFrame summary 
)
friend

Read DAQ summary frame from input.

Parameters
inJReader
summaryJDAQSummaryFrame
Returns
JReader

Definition at line 476 of file JDAQSummaryFrame.hh.

477  {
478  in >> static_cast<JDAQModuleIdentifier&>(summary);
479  in >> static_cast<JDAQFrameStatus&> (summary);
480 
481  in.read((char*) summary.data, NUMBER_OF_PMTS * sizeof(JRate_t));
482 
483  return in;
484  }
JDAQModuleIdentifier()
Default constructor.
JDAQFrameStatus()
Default constructor.
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
Definition: JDAQ.hh:26
JWriter& operator<< ( JWriter out,
const JDAQSummaryFrame summary 
)
friend

Write DAQ summary frame to output.

Parameters
outJWriter
summaryDAQSummaryFrame
Returns
JWriter

Definition at line 494 of file JDAQSummaryFrame.hh.

495  {
496  out << static_cast<const JDAQModuleIdentifier&>(summary);
497  out << static_cast<const JDAQFrameStatus&> (summary);
498 
499  out.write((char*) summary.data, NUMBER_OF_PMTS * sizeof(JRate_t));
500 
501  return out;
502  }
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
Definition: JDAQ.hh:26

Member Data Documentation

int KM3NETDAQ::JDAQSummaryFrame::ROOT_IO_VERSION
static

Streamer version of JDAQSummaryslice as obtained from ROOT file.

Definition at line 518 of file JDAQSummaryFrame.hh.

JDAQRate KM3NETDAQ::JDAQSummaryFrame::data[NUMBER_OF_PMTS]
protected

Definition at line 526 of file JDAQSummaryFrame.hh.

int KM3NETDAQ::JDAQModuleIdentifier::id
protectedinherited

Definition at line 153 of file JDAQModuleIdentifier.hh.

int KM3NETDAQ::JDAQFrameStatus::daq
protectedinherited

Definition at line 364 of file JDAQFrameStatus.hh.

int KM3NETDAQ::JDAQFrameStatus::status
protectedinherited

Definition at line 365 of file JDAQFrameStatus.hh.

int KM3NETDAQ::JDAQFrameStatus::fifo
protectedinherited

Definition at line 366 of file JDAQFrameStatus.hh.

int KM3NETDAQ::JDAQFrameStatus::status_3
protectedinherited

Definition at line 367 of file JDAQFrameStatus.hh.

int KM3NETDAQ::JDAQFrameStatus::status_4
protectedinherited

Definition at line 368 of file JDAQFrameStatus.hh.


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