1#include "DQM/ECONDDigiDQM.h"
17 {
"good",
"resync",
"lost sync",
"no trailer",
18 "trailer count",
"ECON ID",
"sample index",
"truncated",
19 "extra words",
"no SOI",
"frame size",
"no frame"});
21 {
"good",
"empty",
"header marker",
"length",
"header CRC",
22 "CRC-32",
"payload",
"truncated"});
36 "ADC in Sample of Interest", 128, 0, 1024);
46 int frame_mask = info.getCorruption();
48 for (
int i{0}; i < 11; i++) {
51 if (info.isCorrupt(ldmx::ECONDEventInfo::NO_FRAME))
return;
55 for (
const auto& sample : info.getSamples()) {
56 int mask = sample.getCorruption();
58 histograms_.
fill(
"packet_flags", sample.getPayloadLength() == 0 ? 1 : 0);
61 for (
int i{0}; i < 6; i++) {
64 const auto& links{sample.getLinks()};
65 for (std::size_t i_link{0}; i_link < links.size(); i_link++) {
66 const auto& link{links[i_link]};
75 for (
unsigned int i_digi{0}; i_digi < digis.getNumDigis(); i_digi++) {
76 auto digi{digis.getDigi(i_digi)};
77 for (
unsigned int i_sample{0}; i_sample < digi.size(); i_sample++) {
78 uint32_t w = digi.at(i_sample).raw();
79 bool tc = (w >> 31) & 1;
80 bool tp = (w >> 30) & 1;
90 uint32_t soi = digi.soi().raw();
91 if (((soi >> 31) & 1) == 0) {
Classes holding the ECON-D packet data that does not fit into an HgcrocDigiCollection.
#define DECLARE_ANALYZER(CLASS)
Macro which allows the framework to construct an analyzer given its name during configuration.
Class that represents a digitized hit in a calorimeter cell readout by an HGCROC.
Histograms of the output of packing::ECONDDecoder.
void analyze(const framework::Event &event) override
fill the histograms
void onProcessStart() override
create the histograms
std::string info_name_
name of the ECONDEventInfo
std::string digi_name_
name of the digi collection
std::string input_pass_
pass of the decoder
void configure(framework::config::Parameters ¶meters) override
configure the input names
HistogramPool histograms_
helper object for making and filling histograms
TDirectory * getHistoDirectory()
Access/create a directory in the histogram file for this event processor to create histograms and ana...
Implements an event buffer system for storing event data.
void create(const config::Parameters &p)
Create a histogram from the input configuration parameters.
void fill(const std::string &name, const T &val)
Fill a 1D histogram.
Class encapsulating parameters for configuring a processor.
const T & get(const std::string &name) const
Retrieve the parameter of the given name.
Supporting data for one event decoded from a single ECON-D.
Represents a collection of the digi hits readout by an HGCROC.