Jpp
Classes | Public Types | Public Member Functions | Private Attributes | List of all members
JTRIGGER::JChecksum Struct Reference

Auxiliary class to perform check-sum on raw data. More...

#include <JChecksum.hh>

Classes

struct  error
 Error. More...
 

Public Types

enum  error_types { EPMT_t = 1, ETDC_t, ETOT_t }
 Error types. More...
 
typedef std::vector< errorresult_type
 
typedef result_type::const_iterator const_iterator
 
typedef result_type::const_reverse_iterator const_reverse_iterator
 

Public Member Functions

 JChecksum ()
 Default constructor. More...
 
const result_typeget (const JDAQSuperFrame &frame) const
 Check sum. More...
 
bool operator() (const JDAQSuperFrame &frame) const
 Check sum. More...
 

Private Attributes

std::vector< JDAQHit::JTDC_tt0
 
result_type buffer
 

Detailed Description

Auxiliary class to perform check-sum on raw data.

Definition at line 36 of file JChecksum.hh.

Member Typedef Documentation

◆ result_type

Definition at line 78 of file JChecksum.hh.

◆ const_iterator

typedef result_type::const_iterator JTRIGGER::JChecksum::const_iterator

Definition at line 79 of file JChecksum.hh.

◆ const_reverse_iterator

typedef result_type::const_reverse_iterator JTRIGGER::JChecksum::const_reverse_iterator

Definition at line 80 of file JChecksum.hh.

Member Enumeration Documentation

◆ error_types

Error types.

Enumerator
EPMT_t 

PMT error.

ETDC_t 

TDC error.

ETOT_t 

time-over-threshold error

Definition at line 40 of file JChecksum.hh.

40  {
41  EPMT_t = 1, //!< PMT error
42  ETDC_t, //!< TDC error
43  ETOT_t //!< time-over-threshold error
44  };

Constructor & Destructor Documentation

◆ JChecksum()

JTRIGGER::JChecksum::JChecksum ( )
inline

Default constructor.

Definition at line 86 of file JChecksum.hh.

87  {
88  t0.resize(NUMBER_OF_PMTS, 0);
89  }

Member Function Documentation

◆ get()

const result_type& JTRIGGER::JChecksum::get ( const JDAQSuperFrame frame) const
inline

Check sum.

Parameters
frameDAQ frame
Returns
list of errors; empty if all okay

Definition at line 98 of file JChecksum.hh.

99  {
100  using namespace KM3NETDAQ;
101 
102  //const double Tmin = getTimeSinceRTS(frame.getFrameIndex()) - 0.05 * getFrameTime(); // [ns]
103  const double Tmax = getTimeSinceRTS(frame.getFrameIndex()) + 1.05 * getFrameTime(); // [ns]
104 
105  buffer.clear();
106 
107  for (std::vector<JDAQHit::JTDC_t>::iterator i = t0.begin(); i != t0.end(); ++i) {
108  *i = 0;
109  }
110 
111  for (JDAQSuperFrame::const_iterator hit = frame.begin(); hit != frame.end(); ++hit) {
112 
113  const JDAQHit::JTDC_t pmt = hit->getPMT();
114  const JDAQHit::JTDC_t tdc = hit->getT();
115 
116  if (pmt < NUMBER_OF_PMTS) {
117 
118  if (tdc < t0[pmt]) {
119  buffer.push_back(error(std::distance(frame.begin(), hit), ETDC_t));
120  }
121 
122  t0[pmt] = tdc;
123 
124  } else {
125 
126  buffer.push_back(error(std::distance(frame.begin(), hit), EPMT_t));
127  }
128  }
129 
130  for (std::vector<JDAQHit::JTDC_t>::const_iterator i = t0.begin(); i != t0.end(); ++i) {
131  if (*i > Tmax) {
132  buffer.push_back(error(frame.size(), ETDC_t));
133  }
134  }
135 
136  return buffer;
137  }

◆ operator()()

bool JTRIGGER::JChecksum::operator() ( const JDAQSuperFrame frame) const
inline

Check sum.

Parameters
frameDAQ frame
Returns
true if okay; else false

Definition at line 146 of file JChecksum.hh.

147  {
148  return get(frame).empty();
149  }

Member Data Documentation

◆ t0

std::vector<JDAQHit::JTDC_t> JTRIGGER::JChecksum::t0
mutableprivate

Definition at line 153 of file JChecksum.hh.

◆ buffer

result_type JTRIGGER::JChecksum::buffer
mutableprivate

Definition at line 154 of file JChecksum.hh.


The documentation for this struct was generated from the following file:
JTRIGGER::JChecksum::EPMT_t
PMT error.
Definition: JChecksum.hh:41
KM3NETDAQ::JDAQFrame::size
int size() const
Definition: JDAQFrame.hh:157
std::vector
Definition: JSTDTypes.hh:12
KM3NETDAQ::JDAQChronometer::getFrameIndex
int getFrameIndex() const
Get frame index.
Definition: JDAQChronometer.hh:132
KM3NETDAQ::NUMBER_OF_PMTS
static const int NUMBER_OF_PMTS
Total number of PMTs in module.
Definition: JDAQ.hh:26
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
JTRIGGER::JChecksum::ETDC_t
TDC error.
Definition: JChecksum.hh:42
KM3NETDAQ::getFrameTime
double getFrameTime()
Get frame time duration.
Definition: JDAQClock.hh:162
KM3NETDAQ::JDAQSuperFrame::const_iterator
JDAQFrame::const_iterator const_iterator
Definition: JDAQSuperFrame.hh:34
JTRIGGER::JChecksum::get
const result_type & get(const JDAQSuperFrame &frame) const
Check sum.
Definition: JChecksum.hh:98
KM3NETDAQ::getTimeSinceRTS
double getTimeSinceRTS(const int frame_index)
Get time in ns since last RTS for a given frame index.
Definition: JDAQClock.hh:263
KM3NETDAQ::JDAQHit::JTDC_t
unsigned int JTDC_t
leading edge [ns]
Definition: JDAQHit.hh:45
JTRIGGER::JChecksum::buffer
result_type buffer
Definition: JChecksum.hh:154
KM3NETDAQ
KM3NeT DAQ data structures and auxiliaries.
Definition: DataQueue.cc:39
JTRIGGER::JChecksum::t0
std::vector< JDAQHit::JTDC_t > t0
Definition: JChecksum.hh:153
JTRIGGER::JChecksum::ETOT_t
time-over-threshold error
Definition: JChecksum.hh:43
KM3NETDAQ::JDAQFrame::begin
const_iterator begin() const
Definition: JDAQFrame.hh:139
KM3NETDAQ::JDAQFrame::end
const_iterator end() const
Definition: JDAQFrame.hh:140