93 : fed_ids_(pset.getParameter<std::
vector<uint32_t> >(
"FEDIDs")),
94 productLabel_(pset.getParameter<edm::
InputTag>(
"InputProductLabel")),
95 allowIncompleteEvents_(pset.getParameter<bool>(
"AllowIncompleteEvents")),
96 storeCounters_(pset.getParameter<bool>(
"StoreCounters")),
97 storeScopeRawDigis_(pset.getParameter<bool>(
"StoreScopeRawDigis")),
104 LogInfo(
msgLb_) <<
"No FED IDs specified, so will try to unpack all FEDs with data" << std::endl;
113 <<
" Constructing object...";
118 produces<edm::DetSetVector<SiStripRawDigi> >(
"ScopeRawDigis");
121 produces<std::vector<uint32_t> >(
"L1ACount");
122 produces<std::vector<uint32_t> >(
"TotalEventCount");
125 produces<uint32_t>(
"GlobalRunNumber");
134 LogTrace(
"SiStripSpyUnpacker") <<
"[sistrip::SpyUnpackerModule::" << __func__ <<
"]"
135 <<
" Destructing object...";
159 std::unique_ptr<std::vector<uint32_t> > pTotalCounts(
new std::vector<uint32_t>);
160 std::unique_ptr<std::vector<uint32_t> > pL1ACounts(
new std::vector<uint32_t>);
162 std::unique_ptr<uint32_t> pGlobalRun(
new uint32_t);
166 *
fedCabling_, *buffers, digis.get(),
fed_ids_, pTotalCounts.get(), pL1ACounts.get(), pGlobalRun.get());
170 event.put(
std::move(digis),
"ScopeRawDigis");
174 event.put(
std::move(pTotalCounts),
"TotalEventCount");
175 event.put(
std::move(pL1ACounts),
"L1ACount");
179 event.put(
std::move(pGlobalRun),
"GlobalRunNumber");
std::vector< uint32_t > fed_ids_
Vector of FED IDs to examine (FEDs).
SpyUnpackerModule(const edm::ParameterSet &)
edm::EDGetTokenT< FEDRawDataCollection > productToken_
void createDigis(const SiStripFedCabling &, const FEDRawDataCollection &, RawDigis *pDigis, const std::vector< uint32_t > &ids, Counters *pTotalEventCounts, Counters *pL1ACounts, uint32_t *aRunRef)
Creates the scope mode digis for the supplied FED IDs or detIds and stores event counters.
const bool storeScopeRawDigis_
True = store the scope mode raw digis.
Unpacks spy channel data into scope mode-like digis.
#define DEFINE_FWK_MODULE(type)
~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.
PRODUCT const & get(ESGetToken< PRODUCT, T > const &iToken) const
edm::ESWatcher< SiStripFedCablingRcd > cablingWatcher_
edm::ESGetToken< SiStripFedCabling, SiStripFedCablingRcd > fedCablingToken_
const SiStripFedCabling * fedCabling_
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 * msgLb_
Contains cabling info at the device level, including DetId, APV pair numbers, hardware addresses...
void produce(edm::Event &, const edm::EventSetup &) override
Scope mode digis and event counter producer. Retrieves cabling map from EventSetup and FEDRawDataColl...
bool check(const edm::EventSetup &iSetup)
sistrip::SpyUnpackerModule SiStripSpyUnpackerModule
void updateFedCabling(const SiStripFedCablingRcd &rcd)