Jpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | 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, const double rate_Hz=0.0)
 Constructor. More...
 
void update (const JDAQHeader &header)
 Update router. More...
 
double getRate () const
 Get default rate. More...
 
double getRate (const JDAQPMTIdentifier &id) const
 Get 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...
 

Detailed Description

File router for fast addressing of summary data.

The member method JSummaryFileRouter::update should be used to update the internal router for a given event.

Definition at line 34 of file JSummaryFileRouter.hh.

Constructor & Destructor Documentation

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

Constructor.

Parameters
file_namefile name
rate_Hzdefault singles rate [Hz]

Definition at line 45 of file JSummaryFileRouter.hh.

Member Function Documentation

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

Update router.

Parameters
headerheader

Definition at line 57 of file JSummaryFileRouter.hh.

58  {
59  static Long64_t previous = -1;
60 
61  const Long64_t index = this->find(header);
62 
63  if (index != -1) {
64 
65  if (index != previous) {
66 
67  previous = index;
68 
69  JSummaryRouter::update(this->getEntry(index));
70  }
71  }
72  }
void update(const JDAQSummaryslice *ps)
Update router.
double JSUPPORT::JSummaryRouter::getRate ( ) const
inlineinherited

Get default rate.

Returns
rate [Hz]

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

53  {
54  return rate_Hz;
55  }
double JSUPPORT::JSummaryRouter::getRate ( const JDAQPMTIdentifier id) const
inlineinherited

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.
void JSUPPORT::JSummaryRouter::setRate ( const double  rate_Hz)
inlineinherited

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)
inlineinherited

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
inlineinherited

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
inlineinherited

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
inlineinherited

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
inlineinherited

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
inlineinherited

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.

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