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/exception.h"
7 #include "mu2e-artdaq-core/Overlays/DetectorFragment.hh"
15 class CosmicVetoFragmentReader;
26 mu2e::DetectorFragment::adc_t sipmID();
27 mu2e::DetectorFragment::adc_t time();
28 mu2e::DetectorFragment::adc_t numSamples();
29 std::vector<mu2e::DetectorFragment::adc_t> cosmicADC();
34 mu2e::CosmicVetoFragmentReader::CosmicVetoFragmentReader(artdaq::Fragment
const & f ) :
38 mu2e::CosmicVetoFragmentReader::~CosmicVetoFragmentReader() {
41 mu2e::DetectorFragment::adc_t mu2e::CosmicVetoFragmentReader::sipmID() {
44 return mu2e::DetectorFragment::convertFromBinary(bitArray(dataBlockBegin()+8),127-16,127-0);
47 mu2e::DetectorFragment::adc_t mu2e::CosmicVetoFragmentReader::time() {
48 return mu2e::DetectorFragment::convertFromBinary(bitArray(dataBlockBegin()+8),127-32,127-16);
51 mu2e::DetectorFragment::adc_t mu2e::CosmicVetoFragmentReader::numSamples() {
52 return mu2e::DetectorFragment::convertFromBinary(bitArray(dataBlockBegin()+8),127-48,127-32);
55 std::vector<mu2e::DetectorFragment::adc_t> mu2e::CosmicVetoFragmentReader::cosmicADC() {
56 std::vector<adc_t> theVector;
58 for(
size_t adcIdx=0; adcIdx<numSamples(); adcIdx++) {
59 theVector.push_back( *((adc_t
const *)( (dataBlockBegin()+8+3) + adcIdx )) );
64 void mu2e::CosmicVetoFragmentReader::printAll() {
65 std::cout <<
"\t\t" <<
"SiPM ID: " << (int)sipmID() << std::endl;
66 std::cout <<
"\t\t" <<
"Time: " << (int)time() << std::endl;
67 std::cout <<
"\t\t" <<
"Num Samples: " << (int)numSamples() << std::endl;
68 std::cout <<
"\t\t" <<
"ADC: {[";
69 std::vector<mu2e::DetectorFragment::adc_t> ADCarray = cosmicADC();
70 for(
size_t i=0; i<ADCarray.size(); i++) {
71 std::cout << (int)ADCarray[i];
72 if(i<ADCarray.size()-1) {
76 std::cout <<
"]}" << std::endl;