NSCL DDAS  1.0
Support for XIA DDAS at the NSCL
 All Classes Namespaces Files Functions Variables Macros Pages
DDASHitUnpacker.h
1 
2 /* DDASHit class definition header file */
3 
4 #ifndef DAQ_DDAS_DDASHITUNPACKER_H
5 #define DAQ_DDAS_DDASHITUNPACKER_H
6 
7 #include "DDASHit.h"
8 
9 #include <vector>
10 #include <cstdint>
11 #include <tuple>
12 
13 
14 namespace DAQ {
15  namespace DDAS {
16 
31  public:
32  std::tuple<DDASHit, const uint32_t*> unpack(const uint32_t* beg, const uint32_t* sentinel);
33  const uint32_t* unpack(const uint32_t* beg, const uint32_t* sentinel, DDASHit& hit);
34 
35  protected:
36 
37  const uint32_t* parseBodySize(const uint32_t* beg, const uint32_t* sentinel);
38  const uint32_t* parseModuleInfo(DDASHit& hit, const uint32_t* beg);
39  const uint32_t* parseHeaderWord0(DDASHit& hit, const uint32_t* beg);
40  const uint32_t* parseHeaderWords1And2(DDASHit& hit, const uint32_t* beg);
41  const uint32_t* parseHeaderWord3(DDASHit& hit, const uint32_t* beg);
42  const uint32_t* parseTraceData(DDASHit& hit, const uint32_t* beg);
43 
44  std::tuple<double, uint32_t, uint32_t, uint32_t>
45  parseAndComputeCFD(uint32_t ModMSPS, uint32_t data);
46  double parseAndComputeCFD(DDASHit& hit, uint32_t data);
47 
48 
70  void SetTime(DDASHit& hit);
71 
72 
80  void SetEnergySums(DDASHit& hit, uint32_t data);
81 
89  void SetQDCSums(DDASHit& hit, uint32_t data);
90 
121  uint64_t computeCoarseTime(uint32_t adcFrequency, uint32_t timelow, uint32_t timehigh);
122 
123  const uint32_t* extractEnergySums(const uint32_t* data, DDASHit& hit);
124  const uint32_t* extractQDC(const uint32_t* data, DDASHit& hit);
125  const uint32_t* extractExternalTimestamp(const uint32_t* data, DDASHit& hit);
126 
127  };
128 
129  } // end DDAS namespace
130 } // end DAQ namespace
131 #endif
uint64_t computeCoarseTime(uint32_t adcFrequency, uint32_t timelow, uint32_t timehigh)
Append trace values to stored trace data.
Definition: DDASHitUnpacker.cpp:273
Encapsulation of a generic DDAS event.
Definition: DDASHit.h:51
void SetTime(DDASHit &hit)
Compute and store CFD-corrected time in nanoseconds.
void SetEnergySums(DDASHit &hit, uint32_t data)
Append energy sum to stored energy sums.
Parse the DDAS Readout event data.
Definition: DDASHitUnpacker.h:30
Definition: functions.h:26
Definition: SystemBooter.cpp:16
void SetQDCSums(DDASHit &hit, uint32_t data)
Append qdc sum to stored qdc sums.