1 #define SiStripMonitorHardware_BuildEventMatchingCode
2 #ifdef SiStripMonitorHardware_BuildEventMatchingCode
4 #ifndef DQM_SiStripMonitorHardware_SiStripSpyEventMatcher_H
5 #define DQM_SiStripMonitorHardware_SiStripSpyEventMatcher_H
37 std::unique_ptr<FEDRawDataCollection>
rawData;
41 std::unique_ptr<edm::DetSetVector<SiStripRawDigi> >
scopeDigis;
48 std::vector<uint32_t>& theTotalEventCounters,
49 std::vector<uint32_t>& theL1ACounters,
50 std::vector<uint32_t>& theAPVAddresses,
80 const uint8_t apvAddress,
86 const uint32_t eventId,
87 const uint8_t apvAddress,
113 Counters::const_iterator
begin()
const {
return pConst->begin(); }
114 Counters::const_iterator
end()
const {
return pConst->end(); }
133 const bool mapKeyIsByFedID =
true);
136 const uint8_t apvAddress,
140 std::set<uint16_t>& matchingFeds);
151 std::vector<uint32_t>& outputTotalEventCounters,
152 std::vector<uint32_t>& outputL1ACounters,
153 std::vector<uint32_t>& outputAPVAddresses,
171 std::unique_ptr<edm::VectorInputSource>
const source_;
184 const std::shared_ptr<const edm::Wrapper<T> > productWrapper = edm::getProductByTag<T>(
event,
tag,
nullptr);
185 if (productWrapper) {
186 return productWrapper->product();
195 : (((this->eventId_ == rhs.
eventId_) && (this->apvAddress_ < rhs.
apvAddress_)) ?
true :
false));
200 #endif //ndef DQM_SiStripMonitorHardware_SiStripSpyEventMatcher_H
202 #endif //SiStripMonitorHardware_BuildEventMatchingCode
CountersWrapper(const Counters *theCounters)
edm::VectorInputSource Source
std::unique_ptr< edm::DetSetVector< SiStripRawDigi > > payloadDigis
edm::InputTag virginRawDigisTag_
std::map< EventKey, SpyEventList > eventMatches_
static void findMatchingFeds(const uint32_t eventId, const uint8_t apvAddress, CountersPtr totalEventCounters, CountersPtr l1aCounters, CountersPtr apvAddresses, std::set< uint16_t > &matchingFeds)
void operator()(const edm::EventPrincipal &event)
static const char * mlLabel_
static const T * getProduct(const edm::EventPrincipal &event, const edm::InputTag &tag)
std::shared_ptr< std::vector< edm::DetSet< SiStripRawDigi > > > outputVirginRawDigisVector_
std::vector< uint32_t > Counters
edm::InputTag rawDataTag_
edm::InputTag payloadDigisTag_
std::unique_ptr< edm::EventPrincipal > eventPrincipal_
std::set< uint16_t > alreadyMergedFeds_
std::vector< uint32_t > outputL1ACounters_
const Counters::value_type operator[](const size_t i) const
void getCollections(const edm::EventPrincipal &event, const uint32_t eventId, const uint8_t apvAddress, const SiStripFedCabling &cabling, MatchingOutput &matchingOutput)
static CountersPtr getCounters(const edm::EventPrincipal &event, const edm::InputTag &tag, const bool mapKeyIsByFedID=true)
FEDRawDataCollection & outputRawData_
std::unique_ptr< edm::ProcessConfiguration > processConfiguration_
void getMatchedCollections(const uint32_t eventId, const uint8_t apvAddress, const SpyEventList *matchingEvents, const SiStripFedCabling &cabling, SpyDataCollections &collectionsToCreate)
edm::InputTag apvAddressesTag_
edm::InputTag scopeDigisTag_
Counters::const_iterator end() const
std::shared_ptr< std::vector< edm::DetSet< SiStripRawDigi > > > outputScopeDigisVector_
std::vector< uint32_t > outputAPVAddresses_
edm::InputTag l1aCountersTag_
std::shared_ptr< std::vector< edm::DetSet< SiStripRawDigi > > > outputReorderedDigisVector_
Container::value_type value_type
std::unique_ptr< FEDRawDataCollection > rawData
std::unique_ptr< Source > constructSource(const edm::ParameterSet &sourceConfig)
std::shared_ptr< CountersWrapper > CountersPtr
edmNew::DetSet< TTStub< Ref_Phase2TrackerDigi_ > > DetSet
std::unique_ptr< std::vector< uint32_t > > totalEventCounters
std::set< EventID > SpyEventList
std::shared_ptr< edm::ProductRegistry > productRegistry_
std::unique_ptr< std::vector< uint32_t > > apvAddresses
virtual ~SpyEventMatcher()
bool operator<(const EventKey &rhs) const
std::unique_ptr< edm::DetSetVector< SiStripRawDigi > > scopeDigis
MatchingOutput(FEDRawDataCollection &outputRawData)
std::unique_ptr< edm::VectorInputSource > const source_
edm::InputTag totalEventCountersTag_
const SpyEventList * matchesForEvent(const uint32_t eventId, const uint8_t apvAddress) const
std::unique_ptr< edm::DetSetVector< SiStripRawDigi > > reorderedDigis
EventKey(const uint32_t eventId, const uint8_t apvAddress)
std::vector< uint32_t > outputTotalEventCounters_
edm::InputTag reorderedDigisTag_
Counters::const_iterator begin() const
Contains cabling info at the device level, including DetId, APV pair numbers, hardware addresses...
tuple config
parse the configuration file
void addNextEventToMap(const edm::EventPrincipal &nextSpyEvent)
std::unique_ptr< edm::DetSetVector< SiStripRawDigi > > virginRawDigis
const Counters::value_type at(const size_t i) const
std::unique_ptr< std::vector< uint32_t > > l1aCounters
static void mergeMatchingData(const std::set< uint16_t > &matchingFeds, const FEDRawDataCollection &inputRawData, CountersPtr inputTotalEventCounters, CountersPtr inputL1ACounters, CountersPtr inputAPVAddresses, const edm::DetSetVector< SiStripRawDigi > *inputScopeDigis, const edm::DetSetVector< SiStripRawDigi > *inputPayloadDigis, const edm::DetSetVector< SiStripRawDigi > *inputReorderedDigis, const edm::DetSetVector< SiStripRawDigi > *inputVirginRawDigis, FEDRawDataCollection &outputRawData, std::vector< uint32_t > &outputTotalEventCounters, std::vector< uint32_t > &outputL1ACounters, std::vector< uint32_t > &outputAPVAddresses, std::vector< edm::DetSet< SiStripRawDigi > > *outputScopeDigisVector, std::vector< edm::DetSet< SiStripRawDigi > > *outputPayloadDigisVector, std::vector< edm::DetSet< SiStripRawDigi > > *outputReorderedDigisVector, std::vector< edm::DetSet< SiStripRawDigi > > *outputVirginRawDigisVector, const SiStripFedCabling &cabling)
uint8_t apvAddress() const
SpyEventMatcher(const edm::ParameterSet &config)
std::shared_ptr< std::vector< edm::DetSet< SiStripRawDigi > > > outputPayloadDigisVector_
A Digi for the silicon strip detector, containing only adc information, and suitable for storing raw ...