4 #ifdef SiStripMonitorHardware_BuildEventMatchingCode 40 uint8_t& apvAddress)
const;
41 void copyData(
const uint32_t eventId,
42 const uint8_t apvAddress,
53 std::unique_ptr<SpyUtilities>
utils_;
70 produces<FEDRawDataCollection>(
"RawSpyData");
71 produces<std::vector<uint32_t> >(
"SpyTotalEventCount");
72 produces<std::vector<uint32_t> >(
"SpyL1ACount");
73 produces<std::vector<uint32_t> >(
"SpyAPVAddress");
74 produces<edm::DetSetVector<SiStripRawDigi> >(
"SpyScope");
75 produces<edm::DetSetVector<SiStripRawDigi> >(
"SpyPayload");
76 produces<edm::DetSetVector<SiStripRawDigi> >(
"SpyReordered");
77 produces<edm::DetSetVector<SiStripRawDigi> >(
"SpyVirginRaw");
87 uint8_t apvAddress = 0;
98 copyData(eventId, apvAddress, matches, event, cabling);
109 uint8_t& apvAddress)
const {
113 for (
auto iFedId = cabling.
fedIds().begin(); iFedId != cabling.
fedIds().end(); ++iFedId) {
115 if ((!data.
data()) || (!data.
size())) {
119 std::unique_ptr<FEDBuffer>
buffer;
127 if (!buffer->doChecks(
true)) {
131 l1ID = buffer->daqLvl1ID();
132 apvAddress = buffer->trackerSpecialHeader().apveAddress();
133 if (apvAddress != 0) {
141 for (
auto iConn = connections.begin(); iConn != connections.end(); ++iConn) {
142 if (!iConn->isConnected()) {
145 if (!buffer->channelGood(iConn->fedCh(),
true)) {
159 const uint8_t apvAddress,
164 spyEventMatcher_->getMatchedCollections(eventId, apvAddress, matches, cabling, matchedCollections);
165 if (matchedCollections.
rawData.get())
190 #endif //SiStripMonitorHardware_BuildEventMatchingCode
std::unique_ptr< edm::DetSetVector< SiStripRawDigi > > payloadDigis
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
void copyData(const uint32_t eventId, const uint8_t apvAddress, const SpyEventMatcher::SpyEventList *matches, edm::Event &event, const SiStripFedCabling &cabling) const
SpyEventMatcherModule(const edm::ParameterSet &config)
std::unique_ptr< SpyUtilities > utils_
char const * what() const override
size_t size() const
Lenght of the data buffer in bytes.
~SpyEventMatcherModule() override
static const char * messageLabel_
#define DEFINE_FWK_MODULE(type)
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
edm::EDGetTokenT< FEDRawDataCollection > primaryStreamRawDataToken_
std::unique_ptr< FEDRawDataCollection > rawData
bool filter(edm::Event &event, const edm::EventSetup &eventSetup) override
FedsConstIterRange fedIds() const
std::unique_ptr< std::vector< uint32_t > > totalEventCounters
std::set< EventID > SpyEventList
std::unique_ptr< SpyEventMatcher > spyEventMatcher_
std::unique_ptr< std::vector< uint32_t > > apvAddresses
std::unique_ptr< edm::DetSetVector< SiStripRawDigi > > scopeDigis
std::unique_ptr< edm::DetSetVector< SiStripRawDigi > > reorderedDigis
static const uint16_t FEDCH_PER_FEUNIT
const bool filterNonMatchingEvents_
ConnsConstIterRange fedConnections(uint16_t fed_id) const
Contains cabling info at the device level, including DetId, APV pair numbers, hardware addresses...
char data[epos_bytes_allocation]
std::unique_ptr< edm::DetSetVector< SiStripRawDigi > > virginRawDigis
std::unique_ptr< std::vector< uint32_t > > l1aCounters
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
const edm::InputTag primaryStreamRawDataTag_
sistrip::SpyEventMatcherModule SiStripSpyEventMatcherModule
void findL1IDandAPVAddress(const edm::Event &event, const SiStripFedCabling &cabling, uint32_t &l1ID, uint8_t &apvAddress) const