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;
24 mu2e::DetectorFragment::adc_t strawIndex();
25 mu2e::DetectorFragment::adc_t firstTDC();
26 mu2e::DetectorFragment::adc_t secondTDC();
27 std::vector<mu2e::DetectorFragment::adc_t> trackerADC();
31 mu2e::TrackerFragmentReader::TrackerFragmentReader(artdaq::Fragment
const& f) :
DetectorFragment(f) {}
33 mu2e::TrackerFragmentReader::~TrackerFragmentReader() {}
35 mu2e::DetectorFragment::adc_t mu2e::TrackerFragmentReader::strawIndex() {
37 return mu2e::DetectorFragment::convertFromBinary(bitArray(dataBlockBegin() + 8), 127 - 8 * 2, 127 - 8 * 0);
40 mu2e::DetectorFragment::adc_t mu2e::TrackerFragmentReader::firstTDC() {
41 return mu2e::DetectorFragment::convertFromBinary(bitArray(dataBlockBegin() + 8), 127 - 8 * 4, 127 - 8 * 2);
44 mu2e::DetectorFragment::adc_t mu2e::TrackerFragmentReader::secondTDC() {
45 return mu2e::DetectorFragment::convertFromBinary(bitArray(dataBlockBegin() + 8), 127 - 8 * 6, 127 - 8 * 4);
48 std::vector<mu2e::DetectorFragment::adc_t> mu2e::TrackerFragmentReader::trackerADC() {
49 std::vector<adc_t> theVector;
50 std::bitset<128> bitarray;
51 fillBitArray(bitarray, dataBlockBegin() + 8);
53 for (
int i = 0; i < 8; i++) {
54 theVector.push_back(convertFromBinary(bitarray, 127 - 8 * 6 - 10 * (1 + i), 127 - 8 * 6 - 10 * (0 + i)));
60 void mu2e::TrackerFragmentReader::printAll() {
62 <<
"Straw Index: " << (int)strawIndex() << std::endl;
64 <<
"First TDC: " << (int)firstTDC() << std::endl;
66 <<
"Second TDC: " << (int)secondTDC() << std::endl;
69 std::vector<mu2e::DetectorFragment::adc_t> ADCarray = trackerADC();
70 for (
int i = 0; i < 8; i++) {
71 std::cout << (int)ADCarray[i];
76 std::cout <<
"]}" << std::endl;