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 and PMT address. 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 and PMT address.

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.
Note that if there is no measured rate or if it is below the specified default rate, the default rate is taken.

Definition at line 34 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 41 of file JSupport/JSummaryRouter.hh.

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

Member Function Documentation

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

Get default rate.

Returns
rate [Hz]

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

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

Set default rate.

Parameters
rate_Hzrate [Hz]

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

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

Update router.

Parameters
pspointer to new summary slice

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

76  {
77  // reset internal router
78 
79  if (summary != NULL) {
80  for (JDAQSummaryslice::const_iterator i = summary->begin(); i != summary->end(); ++i) {
81  router.put(i->getModuleID(), router.getDefaultAddress());
82  }
83  }
84 
85  summary = ps;
86 
87  if (summary != NULL) {
88 
89  // set internal router
90 
91  for (JDAQSummaryslice::const_iterator i = summary->begin(); i != summary->end(); ++i) {
92  router.put(i->getModuleID(), distance(summary->begin(), i));
93  }
94  }
95  }
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 103 of file JSupport/JSummaryRouter.hh.

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

Get summary slice.

pointer to summary slice (may be NULL)

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

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

Get address of module.

Parameters
modulemodule
Returns
address

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

127  {
128  return router.get(module.getModuleID());
129  }
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 138 of file JSupport/JSummaryRouter.hh.

139  {
140  return (*summary)[getAddress(module)];
141  }
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 150 of file JSupport/JSummaryRouter.hh.

151  {
152  return router.has(module.getModuleID());
153  }
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 162 of file JSupport/JSummaryRouter.hh.

163  {
164  if (this->hasSummaryFrame(id.getModuleIdentifier())) {
165 
166  const double R = this->getSummaryFrame(id.getModuleIdentifier()).getRate(id.getPMTAddress());
167 
168  if (R > rate_Hz) {
169  return R;
170  }
171  }
172 
173  return rate_Hz;
174  }
double getRate(const int tdc, const double factor=1.0) const
Get count rate.
const JDAQSummaryFrame & getSummaryFrame(const JDAQModuleIdentifier &module) const
Get summary frame.
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR set_variable NORTH set_variable EAST set_variable SOUTH set_variable WEST set_variable WORKDIR tmp set_variable R set_variable CT set_variable YMAX set_variable YMIN if do_usage *then usage $script[distance] fi case set_variable R
Definition: JDrawLED.sh:35
bool hasSummaryFrame(const JDAQModuleIdentifier &module) const
Has summary frame.

Member Data Documentation

double JSUPPORT::JSummaryRouter::rate_Hz
private

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

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

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

const JDAQSummaryslice* JSUPPORT::JSummaryRouter::summary
private

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


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