1 #ifndef mu2e_artdaq_core_Overlays_TrackerFragmentReader_hh
2 #define mu2e_artdaq_core_Overlays_TrackerFragmentReader_hh
4 #include "artdaq-core/Data/Fragment.hh"
5 #include "cetlib_except/exception.h"
7 #include "mu2e-artdaq-core/Overlays/DetectorFragment.hh"
15 class TrackerFragmentReader;
25 mu2e::DetectorFragment::adc_t strawIndex();
26 mu2e::DetectorFragment::adc_t firstTDC();
27 mu2e::DetectorFragment::adc_t secondTDC();
28 std::vector<mu2e::DetectorFragment::adc_t> trackerADC();
32 mu2e::TrackerFragmentReader::TrackerFragmentReader(artdaq::Fragment
const& f)
35 mu2e::TrackerFragmentReader::~TrackerFragmentReader() {}
37 mu2e::DetectorFragment::adc_t mu2e::TrackerFragmentReader::strawIndex()
40 return mu2e::DetectorFragment::convertFromBinary(bitArray(dataBlockBegin() + 8), 127 - 8 * 2, 127 - 8 * 0);
43 mu2e::DetectorFragment::adc_t mu2e::TrackerFragmentReader::firstTDC()
45 return mu2e::DetectorFragment::convertFromBinary(bitArray(dataBlockBegin() + 8), 127 - 8 * 4, 127 - 8 * 2);
48 mu2e::DetectorFragment::adc_t mu2e::TrackerFragmentReader::secondTDC()
50 return mu2e::DetectorFragment::convertFromBinary(bitArray(dataBlockBegin() + 8), 127 - 8 * 6, 127 - 8 * 4);
53 std::vector<mu2e::DetectorFragment::adc_t> mu2e::TrackerFragmentReader::trackerADC()
55 std::vector<adc_t> theVector;
56 std::bitset<128> bitarray;
57 fillBitArray(bitarray, dataBlockBegin() + 8);
59 for (
int i = 0; i < 8; i++) {
60 theVector.push_back(convertFromBinary(bitarray, 127 - 8 * 6 - 10 * (1 + i), 127 - 8 * 6 - 10 * (0 + i)));
66 void mu2e::TrackerFragmentReader::printAll()
69 <<
"Straw Index: " << (int)strawIndex() << std::endl;
71 <<
"First TDC: " << (int)firstTDC() << std::endl;
73 <<
"Second TDC: " << (int)secondTDC() << std::endl;
76 std::vector<mu2e::DetectorFragment::adc_t> ADCarray = trackerADC();
77 for (
int i = 0; i < 8; i++) {
78 std::cout << (int)ADCarray[i];
83 std::cout <<
"]}" << std::endl;