Jpp - the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Private Attributes | List of all members
JSUPPORT::JSummaryRouter Class Reference

Router for fast addressing of summary data in JDAQSummaryslice data structure as a function of the optical module identifier. More...

#include <JSummaryRouter.hh>

Inheritance diagram for JSUPPORT::JSummaryRouter:
JSUPPORT::JSummaryFileRouter

Public Member Functions

 JSummaryRouter (const double rate_Hz=0.0)
 Constructor. More...
 
double getRate () const
 Get default rate. More...
 
void setRate (const double rate_Hz)
 Set default rate. More...
 
void update (const JDAQSummaryslice *ps)
 Update router. More...
 
bool is_valid () const
 Check validity of summary data. More...
 
const JDAQSummaryslicegetSummaryslice () const
 Get summary slice. More...
 
const int getAddress (const JDAQModuleIdentifier &module) const
 Get address of module. More...
 
const JDAQSummaryFramegetSummaryFrame (const JDAQModuleIdentifier &module) const
 Get summary frame. More...
 
bool hasSummaryFrame (const JDAQModuleIdentifier &module) const
 Has summary frame. More...
 
double getRate (const JDAQPMTIdentifier &id) const
 Get rate. More...
 

Private Attributes

double rate_Hz
 
JTOOLS::JRouter< int > router
 
const JDAQSummaryslicesummary
 

Detailed Description

Router for fast addressing of summary data in JDAQSummaryslice data structure as a function of the optical module identifier.

The member method JSummaryRouter::update should be used to update the internal router for a given event.
The member method JSummaryRouter::getRate can then be used to obtain the measured singles rate for a given PMT.

Definition at line 33 of file JSupport/JSummaryRouter.hh.

Constructor & Destructor Documentation

JSUPPORT::JSummaryRouter::JSummaryRouter ( const double  rate_Hz = 0.0)
inline

Constructor.

Parameters
rate_Hzdefault singles rate [Hz]

Definition at line 40 of file JSupport/JSummaryRouter.hh.

40  :
42  router (-1),
43  summary(NULL)
44  {}
const JDAQSummaryslice * summary

Member Function Documentation

double JSUPPORT::JSummaryRouter::getRate ( ) const
inline

Get default rate.

Returns
rate [Hz]

Definition at line 52 of file JSupport/JSummaryRouter.hh.

53  {
54  return rate_Hz;
55  }
void JSUPPORT::JSummaryRouter::setRate ( const double  rate_Hz)
inline

Set default rate.

Parameters
rate_Hzrate [Hz]

Definition at line 63 of file JSupport/JSummaryRouter.hh.

64  {
65  this->rate_Hz = rate_Hz;
66  }
void JSUPPORT::JSummaryRouter::update ( const JDAQSummaryslice ps)
inline

Update router.

Parameters
pspointer to new summary slice

Definition at line 74 of file JSupport/JSummaryRouter.hh.

75  {
76  // reset internal router
77 
78  if (summary != NULL) {
79  for (JDAQSummaryslice::const_iterator i = summary->begin(); i != summary->end(); ++i) {
80  router.put(i->getModuleID(), router.getDefaultAddress());
81  }
82  }
83 
84  summary = ps;
85 
86  if (summary != NULL) {
87 
88  // set internal router
89 
90  for (JDAQSummaryslice::const_iterator i = summary->begin(); i != summary->end(); ++i) {
91  router.put(i->getModuleID(), distance(summary->begin(), i));
92  }
93  }
94  }
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
const JDAQSummaryslice * summary
bool JSUPPORT::JSummaryRouter::is_valid ( ) const
inline

Check validity of summary data.

Returns
true if summary data available; else false

Definition at line 102 of file JSupport/JSummaryRouter.hh.

103  {
104  return summary != NULL;
105  }
const JDAQSummaryslice * summary
const JDAQSummaryslice* JSUPPORT::JSummaryRouter::getSummaryslice ( ) const
inline

Get summary slice.

pointer to summary slice (may be NULL)

Definition at line 113 of file JSupport/JSummaryRouter.hh.

114  {
115  return summary;
116  }
const JDAQSummaryslice * summary
const int JSUPPORT::JSummaryRouter::getAddress ( const JDAQModuleIdentifier module) const
inline

Get address of module.

Parameters
modulemodule
Returns
address

Definition at line 125 of file JSupport/JSummaryRouter.hh.

126  {
127  return router.get(module.getModuleID());
128  }
int getModuleID() const
Get module identifier.
const JDAQSummaryFrame& JSUPPORT::JSummaryRouter::getSummaryFrame ( const JDAQModuleIdentifier module) const
inline

Get summary frame.

Parameters
modulemodule
Returns
summary frame

Definition at line 137 of file JSupport/JSummaryRouter.hh.

138  {
139  return (*summary)[getAddress(module)];
140  }
const JDAQSummaryslice * summary
const int getAddress(const JDAQModuleIdentifier &module) const
Get address of module.
bool JSUPPORT::JSummaryRouter::hasSummaryFrame ( const JDAQModuleIdentifier module) const
inline

Has summary frame.

Parameters
modulemodule
Returns
true if module present; else false

Definition at line 149 of file JSupport/JSummaryRouter.hh.

150  {
151  return router.has(module.getModuleID());
152  }
int getModuleID() const
Get module identifier.
double JSUPPORT::JSummaryRouter::getRate ( const JDAQPMTIdentifier id) const
inline

Get rate.

Parameters
idPMT identifier
Returns
rate [Hz]

Definition at line 161 of file JSupport/JSummaryRouter.hh.

162  {
163  if (this->hasSummaryFrame(id.getModuleIdentifier()))
164  return this->getSummaryFrame(id.getModuleIdentifier()).getRate(id.getPMTAddress());
165  else
166  return rate_Hz;
167  }
double getRate(const int tdc, const double factor=1.0) const
Get count rate.
const JDAQSummaryFrame & getSummaryFrame(const JDAQModuleIdentifier &module) const
Get summary frame.
bool hasSummaryFrame(const JDAQModuleIdentifier &module) const
Has summary frame.

Member Data Documentation

double JSUPPORT::JSummaryRouter::rate_Hz
private

Definition at line 170 of file JSupport/JSummaryRouter.hh.

JTOOLS::JRouter<int> JSUPPORT::JSummaryRouter::router
private

Definition at line 171 of file JSupport/JSummaryRouter.hh.

const JDAQSummaryslice* JSUPPORT::JSummaryRouter::summary
private

Definition at line 172 of file JSupport/JSummaryRouter.hh.


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