Jpp
Public Member Functions | Protected Attributes | Private 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::JTreeScanner< JDAQSummaryslice, JDAQEvaluator >

Public Member Functions

 JSummaryFileRouter (const std::string &file_name, const double rate_Hz)
 Constructor. More...
 
double getRate () const
 Get default rate. More...
 
void update (const JDAQHeader &header)
 Update router. 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...
 

Protected Attributes

double rate_Hz
 

Private Attributes

JTOOLS::JRouter< int > router
 
const JDAQSummaryslicesummary
 

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 can then be used to obtain the measured singles rate for a given PMT.

Definition at line 37 of file JSummaryFileRouter.hh.

Constructor & Destructor Documentation

◆ JSummaryFileRouter()

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 47 of file JSummaryFileRouter.hh.

48  :
51  router (-1),
52  summary(NULL)
53  {}

Member Function Documentation

◆ getRate() [1/2]

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

Get default rate.

Returns
rate [Hz]

Definition at line 61 of file JSummaryFileRouter.hh.

62  {
63  return rate_Hz;
64  }

◆ update()

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

Update router.

Parameters
headerheader

Definition at line 72 of file JSummaryFileRouter.hh.

73  {
74  static Long64_t previous = -1;
75 
76  const Long64_t index = this->find(header);
77 
78  if (index != -1) {
79 
80  if (index != previous) {
81 
82  previous = index;
83 
84  // reset internal router
85 
86  if (summary != NULL) {
87  for (JDAQSummaryslice::const_iterator i = summary->begin(); i != summary->end(); ++i) {
88  router.put(i->getModuleID(), router.getDefaultAddress());
89  }
90  }
91 
92  summary = this->getEntry(index);
93 
94  if (summary != NULL) {
95 
96  // set internal router
97 
98  for (JDAQSummaryslice::const_iterator i = summary->begin(); i != summary->end(); ++i) {
99  router.put(i->getModuleID(), distance(summary->begin(), i));
100  }
101  }
102  }
103  }
104  }

◆ getAddress()

const int JSUPPORT::JSummaryFileRouter::getAddress ( const JDAQModuleIdentifier module) const
inline

Get address of module.

Parameters
modulemodule
Returns
address

Definition at line 113 of file JSummaryFileRouter.hh.

114  {
115  return router.get(module.getModuleID());
116  }

◆ getSummaryFrame()

const JDAQSummaryFrame& JSUPPORT::JSummaryFileRouter::getSummaryFrame ( const JDAQModuleIdentifier module) const
inline

Get summary frame.

Parameters
modulemodule
Returns
summary frame

Definition at line 125 of file JSummaryFileRouter.hh.

126  {
127  return (*summary)[getAddress(module)];
128  }

◆ hasSummaryFrame()

bool JSUPPORT::JSummaryFileRouter::hasSummaryFrame ( const JDAQModuleIdentifier module) const
inline

Has summary frame.

Parameters
modulemodule
Returns
true if module present; else false

Definition at line 137 of file JSummaryFileRouter.hh.

138  {
139  return router.has(module.getModuleID());
140  }

◆ getRate() [2/2]

double JSUPPORT::JSummaryFileRouter::getRate ( const JDAQPMTIdentifier id) const
inline

Get rate.

Parameters
idPMT identifier
Returns
rate [Hz]

Definition at line 149 of file JSummaryFileRouter.hh.

150  {
151  if (this->hasSummaryFrame(id.getModuleIdentifier()))
152  return this->getSummaryFrame(id.getModuleIdentifier()).getRate(id.getPMTAddress());
153  else
154  return rate_Hz;
155  }

Member Data Documentation

◆ rate_Hz

double JSUPPORT::JSummaryFileRouter::rate_Hz
protected

Definition at line 158 of file JSummaryFileRouter.hh.

◆ router

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

Definition at line 161 of file JSummaryFileRouter.hh.

◆ summary

const JDAQSummaryslice* JSUPPORT::JSummaryFileRouter::summary
private

Definition at line 162 of file JSummaryFileRouter.hh.


The documentation for this class was generated from the following file:
JSUPPORT::JSummaryFileRouter::rate_Hz
double rate_Hz
Definition: JSummaryFileRouter.hh:158
JSUPPORT::JSummaryFileRouter::getSummaryFrame
const JDAQSummaryFrame & getSummaryFrame(const JDAQModuleIdentifier &module) const
Get summary frame.
Definition: JSummaryFileRouter.hh:125
distance
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance.
Definition: PhysicsEvent.hh:434
JSUPPORT::JSummaryFileRouter::getAddress
const int getAddress(const JDAQModuleIdentifier &module) const
Get address of module.
Definition: JSummaryFileRouter.hh:113
JSUPPORT::JSummaryFileRouter::summary
const JDAQSummaryslice * summary
Definition: JSummaryFileRouter.hh:162
KM3NETDAQ::JDAQSummaryFrame::getRate
double getRate(const int tdc, const double factor=1.0) const
Get count rate.
Definition: JDAQSummaryFrame.hh:453
JSUPPORT::JTreeScanner< JDAQSummaryslice, JDAQEvaluator >
JSUPPORT::JSummaryFileRouter::hasSummaryFrame
bool hasSummaryFrame(const JDAQModuleIdentifier &module) const
Has summary frame.
Definition: JSummaryFileRouter.hh:137
JSUPPORT::JSummaryFileRouter::router
JTOOLS::JRouter< int > router
Definition: JSummaryFileRouter.hh:161