1 #ifndef mu2e_artdaq_core_Overlays_CosmicVetoFragmentReader_hh
2 #define mu2e_artdaq_core_Overlays_CosmicVetoFragmentReader_hh
4 #include "artdaq-core/Data/Fragment.hh"
5 #include "cetlib_except/exception.h"
7 #include "mu2e-artdaq-core/Overlays/DetectorFragment.hh"
15 class CosmicVetoFragmentReader;
24 mu2e::DetectorFragment::adc_t sipmID();
25 mu2e::DetectorFragment::adc_t time();
26 mu2e::DetectorFragment::adc_t numSamples();
27 std::vector<mu2e::DetectorFragment::adc_t> cosmicADC();
31 mu2e::CosmicVetoFragmentReader::CosmicVetoFragmentReader(artdaq::Fragment
const &f) :
DetectorFragment(f) {}
33 mu2e::CosmicVetoFragmentReader::~CosmicVetoFragmentReader() {}
35 mu2e::DetectorFragment::adc_t mu2e::CosmicVetoFragmentReader::sipmID() {
38 return mu2e::DetectorFragment::convertFromBinary(bitArray(dataBlockBegin() + 8), 127 - 16, 127 - 0);
41 mu2e::DetectorFragment::adc_t mu2e::CosmicVetoFragmentReader::time() {
42 return mu2e::DetectorFragment::convertFromBinary(bitArray(dataBlockBegin() + 8), 127 - 32, 127 - 16);
45 mu2e::DetectorFragment::adc_t mu2e::CosmicVetoFragmentReader::numSamples() {
46 return mu2e::DetectorFragment::convertFromBinary(bitArray(dataBlockBegin() + 8), 127 - 48, 127 - 32);
49 std::vector<mu2e::DetectorFragment::adc_t> mu2e::CosmicVetoFragmentReader::cosmicADC() {
50 std::vector<adc_t> theVector;
52 for (
size_t adcIdx = 0; adcIdx < numSamples(); adcIdx++) {
53 theVector.push_back(*((adc_t
const *)((dataBlockBegin() + 8 + 3) + adcIdx)));
58 void mu2e::CosmicVetoFragmentReader::printAll() {
60 <<
"SiPM ID: " << (int)sipmID() << std::endl;
62 <<
"Time: " << (int)time() << std::endl;
64 <<
"Num Samples: " << (int)numSamples() << std::endl;
67 std::vector<mu2e::DetectorFragment::adc_t> ADCarray = cosmicADC();
68 for (
size_t i = 0; i < ADCarray.size(); i++) {
69 std::cout << (int)ADCarray[i];
70 if (i < ADCarray.size() - 1) {
74 std::cout <<
"]}" << std::endl;