5 #include "boost/cstdint.hpp" 75 <<
"[sistrip::SpyDigiConverterModule::" << __func__ <<
"]" 76 <<
" Constructing object...";
81 if (
storeModuleDigis_) produces< edm::DetSetVector<SiStripRawDigi> >(
"VirginRaw");
84 produces< std::vector<uint32_t> >(
"APVAddress");
103 <<
"[sistrip::SpyDigiConverterModule::" << __func__ <<
"]" 104 <<
" Destructing object...";
116 static bool lFirstEvent =
true;
127 std::unique_ptr< std::vector<uint32_t> > pAPVAddresses(
new std::vector<uint32_t>);
129 std::unique_ptr<sistrip::SpyDigiConverter::DSVRawDigis> payloadDigis, reorderedDigis, moduleDigis;
134 uint16_t lFirstHeaderBit;
138 edm::LogWarning(
"") <<
" -- Majority position for firstHeaderBit in first event (" 140 <<
") is not where expected: " 171 event.put(
std::move(pAPVAddresses),
"APVAddress");
T getParameter(std::string const &) const
void produce(edm::Event &, const edm::EventSetup &) override
sistrip::SpyDigiConverterModule SiStripSpyDigiConverterModule
static std::unique_ptr< DSVRawDigis > reorderDigis(const DSVRawDigis *inputPayloadDigis)
const bool discardDigisWithAPVAddressError_
#define DEFINE_FWK_MODULE(type)
const edm::InputTag productLabel_
def setup(process, global_tag, zero_tesla=False)
static std::unique_ptr< DSVRawDigis > extractPayloadDigis(const DSVRawDigis *inputScopeDigis, std::vector< uint32_t > *pAPVAddresses, const bool discardDigisWithAPVAddrErr, const sistrip::SpyUtilities::FrameQuality &aQuality, const uint16_t expectedPos)
Extract frames from the scope digis.
edm::EDGetTokenT< sistrip::SpyDigiConverter::DSVRawDigis > productToken_
static std::unique_ptr< DSVRawDigis > mergeModuleChannels(const DSVRawDigis *inputPhysicalOrderChannelDigis, const SiStripFedCabling &cabling)
const bool storeAPVAddress_
True = store APVE address for each channel.
const bool storeModuleDigis_
T const * product() const
const bool storePayloadDigis_
const SiStripFedCabling * getCabling(const edm::EventSetup &)
Updates the cabling object from the DB.
Contains cabling info at the device level, including DetId, APV pair numbers, hardware addresses...
sistrip::SpyUtilities::FrameQuality frameQuality_
const uint32_t expectedHeaderBit_
static void getMajorityHeader(const edm::DetSetVector< SiStripRawDigi > *aInputDigis, uint16_t &firstHeaderBit, bool printResult=true)
const bool storeReorderedDigis_
~SpyDigiConverterModule() override
SpyDigiConverterModule(const edm::ParameterSet &)
A plug-in module that takes the spy channel scope mode digis as input from the Event and creates EDPr...