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/exception.h"
7 #include "mu2e-artdaq-core/Overlays/DetectorFragment.hh"
15 class TrackerFragmentReader;
26 mu2e::DetectorFragment::adc_t strawIndex();
27 mu2e::DetectorFragment::adc_t firstTDC();
28 mu2e::DetectorFragment::adc_t secondTDC();
29 std::vector<mu2e::DetectorFragment::adc_t> trackerADC();
34 mu2e::TrackerFragmentReader::TrackerFragmentReader(artdaq::Fragment
const & f ) :
38 mu2e::TrackerFragmentReader::~TrackerFragmentReader() {
41 mu2e::DetectorFragment::adc_t mu2e::TrackerFragmentReader::strawIndex() {
43 return mu2e::DetectorFragment::convertFromBinary(bitArray(dataBlockBegin()+8),127-8*2,127-8*0);
46 mu2e::DetectorFragment::adc_t mu2e::TrackerFragmentReader::firstTDC() {
47 return mu2e::DetectorFragment::convertFromBinary(bitArray(dataBlockBegin()+8),127-8*4,127-8*2);
50 mu2e::DetectorFragment::adc_t mu2e::TrackerFragmentReader::secondTDC() {
51 return mu2e::DetectorFragment::convertFromBinary(bitArray(dataBlockBegin()+8),127-8*6,127-8*4);
54 std::vector<mu2e::DetectorFragment::adc_t> mu2e::TrackerFragmentReader::trackerADC() {
56 std::vector<adc_t> theVector;
57 std::bitset<128> bitarray;
58 fillBitArray(bitarray,dataBlockBegin()+8);
60 for(
int i=0; i<8; i++) {
61 theVector.push_back(convertFromBinary(bitarray,127-8*6-10*(1+i),127-8*6-10*(0+i)));
67 void mu2e::TrackerFragmentReader::printAll() {
68 std::cout <<
"\t\t" <<
"Straw Index: " << (int)strawIndex() << std::endl;
69 std::cout <<
"\t\t" <<
"First TDC: " << (int)firstTDC() << std::endl;
70 std::cout <<
"\t\t" <<
"Second TDC: " << (int)secondTDC() << std::endl;
71 std::cout <<
"\t\t" <<
"ADC: {[";
72 std::vector<mu2e::DetectorFragment::adc_t> ADCarray = trackerADC();
73 for(
int i=0; i<8; i++) {
74 std::cout << (int)ADCarray[i];
79 std::cout <<
"]}" << std::endl;