4 #ifdef SiStripMonitorHardware_BuildEventMatchingCode 7 #include "boost/cstdint.hpp" 48 std::unique_ptr<SpyUtilities>
utils_;
59 doMerge_( config.getParameter<bool>(
"MergeData") ),
66 produces<FEDRawDataCollection>(
"RawSpyData");
67 produces< std::vector<uint32_t> >(
"SpyTotalEventCount");
68 produces< std::vector<uint32_t> >(
"SpyL1ACount");
69 produces< std::vector<uint32_t> >(
"SpyAPVAddress");
70 produces< edm::DetSetVector<SiStripRawDigi> >(
"SpyScope");
71 produces< edm::DetSetVector<SiStripRawDigi> >(
"SpyPayload");
72 produces< edm::DetSetVector<SiStripRawDigi> >(
"SpyReordered");
73 produces< edm::DetSetVector<SiStripRawDigi> >(
"SpyVirginRaw");
89 uint8_t apvAddress = 0;
100 copyData(eventId,apvAddress,matches,event,cabling);
113 for (
auto iFedId = cabling.
fedIds().begin(); iFedId != cabling.
fedIds().end(); ++iFedId) {
115 if ( (!data.
data()) || (!data.
size()) ) {
119 std::unique_ptr<FEDBuffer> buffer;
126 if (!buffer->doChecks()) {
130 l1ID = buffer->daqLvl1ID();
131 apvAddress = buffer->trackerSpecialHeader().apveAddress();
132 if (apvAddress != 0) {
140 for (
auto iConn = connections.begin(); iConn != connections.end(); ++iConn) {
141 if (!iConn->isConnected()) {
144 if ( !buffer->channelGood(iConn->fedCh()) ) {
161 spyEventMatcher_->getMatchedCollections(eventId,apvAddress,matches,cabling,matchedCollections);
178 #endif //SiStripMonitorHardware_BuildEventMatchingCode
virtual ~SpyEventMatcherModule()
virtual char const * what() const
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< std::vector< uint32_t > > l1aCounters
std::unique_ptr< SpyUtilities > utils_
std::unique_ptr< std::vector< uint32_t > > totalEventCounters
#define DEFINE_FWK_MODULE(type)
size_t size() const
Lenght of the data buffer in bytes.
std::unique_ptr< edm::DetSetVector< SiStripRawDigi > > virginRawDigis
static const char * messageLabel_
const FEDRawData & FEDData(int fedid) const
retrieve data for fed
edm::EDGetTokenT< FEDRawDataCollection > primaryStreamRawDataToken_
virtual bool filter(edm::Event &event, const edm::EventSetup &eventSetup) override
FedsConstIterRange fedIds() const
std::set< EventID > SpyEventList
std::unique_ptr< SpyEventMatcher > spyEventMatcher_
std::unique_ptr< FEDRawDataCollection > rawData
static const uint16_t FEDCH_PER_FEUNIT
std::unique_ptr< edm::DetSetVector< SiStripRawDigi > > scopeDigis
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< std::vector< uint32_t > > apvAddresses
const unsigned char * data() const
Return a const pointer to the beginning of the data buffer.
virtual void beginJob() override
std::unique_ptr< edm::DetSetVector< SiStripRawDigi > > reorderedDigis
const edm::InputTag primaryStreamRawDataTag_
std::unique_ptr< edm::DetSetVector< SiStripRawDigi > > payloadDigis
sistrip::SpyEventMatcherModule SiStripSpyEventMatcherModule
void findL1IDandAPVAddress(const edm::Event &event, const SiStripFedCabling &cabling, uint32_t &l1ID, uint8_t &apvAddress) const