Jpp  17.3.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 70 of file JSupport/JSummaryRouter.hh.

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

Get summary frame.

Parameters
modulemodule
Returns
summary frame

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

213  {
214  if (router.has(module.getModuleID()))
215  return (*summary)[getAddress(module)];
216  else if (this->hasDefault())
217  return frame;
218  else
219  THROW(JValueOutOfRange, "Invalid module identifier " << module);
220  }
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:696
const JDAQSummaryslice * summary
Exception for accessing a value in a collection that is outside of its range.
Definition: JException.hh:162
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 81 of file JSupport/JSummaryRouter.hh.

82  {
83  return frame.getRate(0);
84  }
double getRate(const int tdc, const double factor=1.0) const
Get count rate.
double JSUPPORT::JSummaryRouter::getRate ( const JDAQPMTIdentifier id) const
inlineinherited

Get rate.

Parameters
idPMT identifier
Returns
rate [Hz]

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

230  {
231  double R = 0.0;
232 
233  if (this->hasSummaryFrame(id.getModuleIdentifier())) {
234  R = this->getSummaryFrame(id.getModuleIdentifier()).getRate(id.getPMTAddress());
235  }
236 
237  if (R < this->getRate()) {
238  R = this->getRate();
239  }
240 
241  return R;
242  }
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 92 of file JSupport/JSummaryRouter.hh.

93  {
94  return (frame.getModuleID() == MODULE_IDENTIFIER);
95  }
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 103 of file JSupport/JSummaryRouter.hh.

104  {
105  using namespace KM3NETDAQ;
106 
107  frame.setModuleIdentifier(MODULE_IDENTIFIER); // allow default
109 
110  for (int i = 0; i != NUMBER_OF_PMTS; ++i) {
111  frame.setRate(i, rate_Hz);
112  }
113  }
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 119 of file JSupport/JSummaryRouter.hh.

120  {
121  using namespace KM3NETDAQ;
122 
123  frame.setModuleIdentifier(JDAQModuleIdentifier()); // disallow default
124  frame.setDAQFrameStatus(JDAQFrameStatus()); // invalid status
125 
126  for (int i = 0; i != NUMBER_OF_PMTS; ++i) {
127  frame[i] = JDAQRate();
128  }
129  }
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 137 of file JSupport/JSummaryRouter.hh.

138  {
139  // reset internal router
140 
141  if (summary != NULL) {
142  for (JDAQSummaryslice::const_iterator i = summary->begin(); i != summary->end(); ++i) {
143  router.put(i->getModuleID(), router.getDefaultAddress());
144  }
145  }
146 
147  summary = ps;
148 
149  if (summary != NULL) {
150 
151  // set internal router
152 
153  for (JDAQSummaryslice::const_iterator i = summary->begin(); i != summary->end(); ++i) {
154  router.put(i->getModuleID(), distance(summary->begin(), i));
155  }
156  }
157  }
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 165 of file JSupport/JSummaryRouter.hh.

166  {
167  return summary != NULL;
168  }
const JDAQSummaryslice * summary
const JDAQSummaryslice* JSUPPORT::JSummaryRouter::getSummaryslice ( ) const
inlineinherited

Get summary slice.

pointer to summary slice (may be NULL)

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

177  {
178  return summary;
179  }
const JDAQSummaryslice * summary
const int JSUPPORT::JSummaryRouter::getAddress ( const JDAQModuleIdentifier module) const
inlineinherited

Get address of module.

Parameters
modulemodule
Returns
address

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

189  {
190  return router.get(module.getModuleID());
191  }
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 200 of file JSupport/JSummaryRouter.hh.

201  {
202  return router.has(module.getModuleID()) || this->hasDefault();
203  }
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 244 of file JSupport/JSummaryRouter.hh.


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