90 : fed_ids_(
pset.getParameter<
std::
vector<uint32_t> >(
"FEDIDs")),
92 allowIncompleteEvents_(
pset.getParameter<
bool>(
"AllowIncompleteEvents")),
93 storeCounters_(
pset.getParameter<
bool>(
"StoreCounters")),
94 storeScopeRawDigis_(
pset.getParameter<
bool>(
"StoreScopeRawDigis")),
95 unpacker_(allowIncompleteEvents_),
100 LogInfo(
msgLb_) <<
"No FED IDs specified, so will try to unpack all FEDs with data" << std::endl;
109 <<
" Constructing object...";
112 produces<edm::DetSetVector<SiStripRawDigi> >(
"ScopeRawDigis");
115 produces<std::vector<uint32_t> >(
"L1ACount");
116 produces<std::vector<uint32_t> >(
"TotalEventCount");
119 produces<uint32_t>(
"GlobalRunNumber");
125 LogTrace(
"SiStripSpyUnpacker") <<
"[sistrip::SpyUnpackerModule::" << __func__ <<
"]" 126 <<
" Destructing object...";
146 std::unique_ptr<std::vector<uint32_t> > pTotalCounts(
new std::vector<uint32_t>);
147 std::unique_ptr<std::vector<uint32_t> > pL1ACounts(
new std::vector<uint32_t>);
149 std::unique_ptr<uint32_t> pGlobalRun(
new uint32_t);
153 *fedCabling, *buffers, digis.get(),
fed_ids_, pTotalCounts.get(), pL1ACounts.get(), pGlobalRun.get());
157 event.put(
std::move(digis),
"ScopeRawDigis");
161 event.put(
std::move(pTotalCounts),
"TotalEventCount");
162 event.put(
std::move(pL1ACounts),
"L1ACount");
166 event.put(
std::move(pGlobalRun),
"GlobalRunNumber");
std::vector< uint32_t > fed_ids_
Vector of FED IDs to examine (FEDs).
SpyUnpackerModule(const edm::ParameterSet &)
void produce(edm::StreamID, edm::Event &, const edm::EventSetup &) const override
Scope mode digis and event counter producer. Retrieves cabling map from EventSetup and FEDRawDataColl...
edm::EDGetTokenT< FEDRawDataCollection > productToken_
const bool storeScopeRawDigis_
True = store the scope mode raw digis.
Unpacks spy channel data into scope mode-like digis.
#define DEFINE_FWK_MODULE(type)
const edm::ESGetToken< SiStripFedCabling, SiStripFedCablingRcd > fedCablingToken_
~SpyUnpackerModule() override
Log< level::Error, false > LogError
A plug-in module that takes a FEDRawDataCollection as input from the Event and creates EDProducts con...
const bool allowIncompleteEvents_
Allow inconsistent (by event count, APV address) event storage.
const SpyUnpacker unpacker_
void createDigis(const SiStripFedCabling &, const FEDRawDataCollection &, RawDigis *pDigis, const std::vector< uint32_t > &ids, Counters *pTotalEventCounts, Counters *pL1ACounts, uint32_t *aRunRef) const
Creates the scope mode digis for the supplied FED IDs or detIds and stores event counters.
const bool storeCounters_
True = store L1ID and TotalEventCount by FED key.
const edm::InputTag productLabel_
The product label of the FEDRawDataCollection input.
Log< level::Info, false > LogInfo
static const char *const msgLb_
Contains cabling info at the device level, including DetId, APV pair numbers, hardware addresses...
sistrip::SpyUnpackerModule SiStripSpyUnpackerModule