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

File router for fast addressing of summary data. More...

#include <JSummaryFileRouter.hh>

Inheritance diagram for JSUPPORT::JSummaryFileRouter:
JSUPPORT::JSummaryRouter JSUPPORT::JTreeScanner< JDAQSummaryslice, JDAQEvaluator >

Public Member Functions

 JSummaryFileRouter (const std::string &file_name)
 Constructor. More...
 
 JSummaryFileRouter (const std::string &file_name, const double rate_Hz)
 Constructor. More...
 
void update (const JDAQHeader &header)
 Update router. More...
 
const JDAQSummaryFramegetSummaryFrame () const
 Get default summary frame. More...
 
const JDAQSummaryFramegetSummaryFrame (const JDAQModuleIdentifier &module) const
 Get summary frame. More...
 
double getRate () const
 Get default rate. More...
 
double getRate (const JDAQPMTIdentifier &id) const
 Get rate. More...
 
bool hasDefault () const
 Has default. More...
 
void setDefault (const double rate_Hz)
 Set default. More...
 
void unsetDefault ()
 Unset default. 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...
 
bool hasSummaryFrame (const JDAQModuleIdentifier &module) const
 Has summary frame. More...
 

Static Public Attributes

static const int MODULE_IDENTIFIER = 1
 module identifier to allow default More...
 

Detailed Description

File router for fast addressing of summary data.

The member method update() should be used to update the internal router for a given event. The member method getRate(const JDAQPMTIdentifier&) const can subsequently be used to obtain the measured singles rate for a given PMT at the closest time of the event.

Definition at line 36 of file JSummaryFileRouter.hh.

Constructor & Destructor Documentation

JSUPPORT::JSummaryFileRouter::JSummaryFileRouter ( const std::string &  file_name)
inline

Constructor.

Parameters
file_namefile name

Definition at line 46 of file JSummaryFileRouter.hh.

JSUPPORT::JSummaryFileRouter::JSummaryFileRouter ( const std::string &  file_name,
const double  rate_Hz 
)
inline

Constructor.

Parameters
file_namefile name
rate_Hzdefault singles rate [Hz]

Definition at line 58 of file JSummaryFileRouter.hh.

Member Function Documentation

void JSUPPORT::JSummaryFileRouter::update ( const JDAQHeader header)
inline

Update router.

Parameters
headerheader

Definition at line 70 of file JSummaryFileRouter.hh.

71  {
72  static Long64_t previous = -1;
73 
74  const Long64_t index = this->find(header);
75 
76  if (index != -1) {
77 
78  if (index != previous) {
79 
80  previous = index;
81 
82  JSummaryRouter::update(this->getEntry(index));
83  }
84  }
85  }
void update(const JDAQSummaryslice *ps)
Update router.
const JDAQSummaryFrame& JSUPPORT::JSummaryRouter::getSummaryFrame ( ) const
inlineinherited

Get default summary frame.

Returns
summary frame

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

73  {
74  return frame;
75  }
const JDAQSummaryFrame& JSUPPORT::JSummaryRouter::getSummaryFrame ( const JDAQModuleIdentifier module) const
inlineinherited

Get summary frame.

Parameters
modulemodule
Returns
summary frame

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

217  {
218  if (router.has(module.getModuleID()))
219  return (*summary)[getAddress(module)];
220  else if (this->hasDefault())
221  return frame;
222  else
223  THROW(JValueOutOfRange, "Invalid module identifier " << module);
224  }
int getModuleID() const
Get module identifier.
bool hasDefault() const
Has default.
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:712
const JDAQSummaryslice * summary
Exception for accessing a value in a collection that is outside of its range.
Definition: JException.hh:178
const int getAddress(const JDAQModuleIdentifier &module) const
Get address of module.
double JSUPPORT::JSummaryRouter::getRate ( ) const
inlineinherited

Get default rate.

Returns
rate [Hz]

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

84  {
85  return this->rate_Hz;
86  }
double JSUPPORT::JSummaryRouter::getRate ( const JDAQPMTIdentifier id) const
inlineinherited

Get rate.

Parameters
idPMT identifier
Returns
rate [Hz]

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

234  {
235  double R = 0.0;
236 
237  if (this->hasSummaryFrame(id.getModuleIdentifier())) {
238  R = this->getSummaryFrame(id.getModuleIdentifier()).getRate(id.getPMTAddress());
239  }
240 
241  if (R < this->getRate()) {
242  R = this->getRate();
243  }
244 
245  return R;
246  }
double getRate(const int tdc, const double factor=1.0) const
Get count rate.
double getRate() const
Get default rate.
const JDAQSummaryFrame & getSummaryFrame() const
Get default summary frame.
then JCookie sh JDataQuality D $DETECTOR_ID R
Definition: JDataQuality.sh:41
bool hasSummaryFrame(const JDAQModuleIdentifier &module) const
Has summary frame.
bool JSUPPORT::JSummaryRouter::hasDefault ( ) const
inlineinherited

Has default.

Returns
true if default has been set; else false

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

95  {
96  return (frame.getModuleID() == MODULE_IDENTIFIER);
97  }
int getModuleID() const
Get module identifier.
static const int MODULE_IDENTIFIER
module identifier to allow default
void JSUPPORT::JSummaryRouter::setDefault ( const double  rate_Hz)
inlineinherited

Set default.

Parameters
rate_Hzrate [Hz]

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

106  {
107  using namespace KM3NETDAQ;
108 
109  this->rate_Hz = rate_Hz;
110 
111  frame.setModuleIdentifier(MODULE_IDENTIFIER); // allow default
113 
114  for (int i = 0; i != NUMBER_OF_PMTS; ++i) {
116  }
117  }
static const int MODULE_IDENTIFIER
module identifier to allow default
T & getInstance(const T &object)
Get static instance from temporary object.
Definition: JObject.hh:75
void setModuleIdentifier(const JDAQModuleIdentifier &module)
Set Module identifier.
void setDAQFrameStatus(const JDAQFrameStatus &status)
Set DAQ frame status.
void setRate(const int tdc, const double rate_Hz)
Set count rate.
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
Definition: JDAQ.hh:26
void JSUPPORT::JSummaryRouter::unsetDefault ( )
inlineinherited

Unset default.

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

124  {
125  using namespace KM3NETDAQ;
126 
127  frame.setModuleIdentifier(JDAQModuleIdentifier()); // disallow default
128  frame.setDAQFrameStatus(JDAQFrameStatus()); // invalid status
129 
130  for (int i = 0; i != NUMBER_OF_PMTS; ++i) {
131  frame[i] = JDAQRate();
132  }
133  }
Data storage class for rate measurement of one PMT.
void setModuleIdentifier(const JDAQModuleIdentifier &module)
Set Module identifier.
void setDAQFrameStatus(const JDAQFrameStatus &status)
Set DAQ frame status.
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
Definition: JDAQ.hh:26
void JSUPPORT::JSummaryRouter::update ( const JDAQSummaryslice ps)
inlineinherited

Update router.

Parameters
pspointer to new summary slice

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

142  {
143  // reset internal router
144 
145  if (summary != NULL) {
146  for (JDAQSummaryslice::const_iterator i = summary->begin(); i != summary->end(); ++i) {
147  router.put(i->getModuleID(), router.getDefaultAddress());
148  }
149  }
150 
151  summary = ps;
152 
153  if (summary != NULL) {
154 
155  // set internal router
156 
157  for (JDAQSummaryslice::const_iterator i = summary->begin(); i != summary->end(); ++i) {
158  router.put(i->getModuleID(), distance(summary->begin(), i));
159  }
160  }
161  }
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
inlineinherited

Check validity of summary data.

Returns
true if summary data available; else false

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

170  {
171  return summary != NULL;
172  }
const JDAQSummaryslice * summary
const JDAQSummaryslice* JSUPPORT::JSummaryRouter::getSummaryslice ( ) const
inlineinherited

Get summary slice.

pointer to summary slice (may be NULL)

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

181  {
182  return summary;
183  }
const JDAQSummaryslice * summary
const int JSUPPORT::JSummaryRouter::getAddress ( const JDAQModuleIdentifier module) const
inlineinherited

Get address of module.

Parameters
modulemodule
Returns
address

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

193  {
194  return router.get(module.getModuleID());
195  }
int getModuleID() const
Get module identifier.
bool JSUPPORT::JSummaryRouter::hasSummaryFrame ( const JDAQModuleIdentifier module) const
inlineinherited

Has summary frame.

Parameters
modulemodule
Returns
true if module present; else false

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

205  {
206  return router.has(module.getModuleID()) || this->hasDefault();
207  }
int getModuleID() const
Get module identifier.
bool hasDefault() const
Has default.

Member Data Documentation

const int JSUPPORT::JSummaryRouter::MODULE_IDENTIFIER = 1
staticinherited

module identifier to allow default

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


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