Jpp  15.0.5
the software that should make you happy
 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 53 of file JSupport/JSummaryRouter.hh.

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

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 usage $script[distance] fi case set_variable R
Definition: JDrawLED.sh:43
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 64 of file JSupport/JSummaryRouter.hh.

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

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
inlineinherited

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
inlineinherited

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
inlineinherited

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
inlineinherited

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
inlineinherited

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.

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