CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
SiStripSpyMonitorModule Class Reference
Inheritance diagram for SiStripSpyMonitorModule:
DQMEDAnalyzer edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 SiStripSpyMonitorModule (const edm::ParameterSet &)
 
 ~SiStripSpyMonitorModule () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
virtual void analyze (edm::Event const &, edm::EventSetup const &)
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual void dqmBeginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
virtual void dqmEndLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &)
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &, edm::EventSetup const &) final
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (const edm::Run &, const edm::EventSetup &) override
 
edm::DetSetVector< SiStripRawDigi >::detset::const_iterator findTwoConsecutive (const edm::DetSetVector< SiStripRawDigi >::detset &channelDigis, const uint16_t threshold, uint16_t &aCounter)
 
bool hasNegativePedSubtr (const edm::DetSetVector< SiStripRawDigi >::detset &channelDigis, uint16_t aPair)
 
bool identifyTickmarks (const edm::DetSetVector< SiStripRawDigi >::detset &channelDigis, const uint16_t threshold)
 

Private Attributes

edm::EventNumber_t evt_
 
bool fillAllDetailedHistograms_
 
bool fillWithEvtNum_
 
bool fillWithLocalEvtNum_
 
uint16_t firstHeaderBit_
 
uint16_t firstTrailerBit_
 
std::string folderName_
 
sistrip::SpyUtilities::FrameQuality frameQuality_
 
SPYHistograms histManager_
 
uint32_t maxDigiRange_
 
uint32_t maxDigitalHigh_
 
uint32_t maxDigitalLow_
 
uint32_t minDigiRange_
 
uint32_t minDigitalHigh_
 
uint32_t minDigitalLow_
 
std::ofstream outfile_ [20]
 
std::map< std::string, unsigned int > outfileMap_
 
std::vector< std::string > outfileNames_
 
edm::InputTag spyAPVeTag_
 
edm::EDGetTokenT< std::vector< uint32_t > > spyAPVeToken_
 
edm::InputTag spyL1Tag_
 
edm::EDGetTokenT< std::vector< uint32_t > > spyL1Token_
 
edm::InputTag spyPedSubtrDigisTag_
 
edm::EDGetTokenT< edm::DetSetVector< SiStripRawDigi > > spyPedSubtrDigisToken_
 
edm::InputTag spyScopeRawDigisTag_
 
edm::EDGetTokenT< edm::DetSetVector< SiStripRawDigi > > spyScopeRawDigisToken_
 
edm::InputTag spyTotCountTag_
 
edm::EDGetTokenT< std::vector< uint32_t > > spyTotCountToken_
 
sistrip::SpyUtilities utility_
 
bool writeCabling_
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 50 of file SiStripSpyMonitorModule.cc.

Constructor & Destructor Documentation

SiStripSpyMonitorModule::SiStripSpyMonitorModule ( const edm::ParameterSet iConfig)
explicit

Definition at line 122 of file SiStripSpyMonitorModule.cc.

References evt_, frameQuality_, edm::ParameterSet::getUntrackedParameter(), histManager_, mps_fire::i, SPYHistograms::initialise(), simpleEdmComparison::lName, sistrip::SpyUtilities::FrameQuality::maxDigiRange, sistrip::SpyUtilities::FrameQuality::maxTickHeight, sistrip::SpyUtilities::FrameQuality::maxZeroLight, sistrip::SpyUtilities::FrameQuality::minDigiRange, sistrip::SpyUtilities::FrameQuality::minTickHeight, sistrip::SpyUtilities::FrameQuality::minZeroLight, cmsBatch::nFiles, MillePedeFileConverter_cfg::out, outfile_, outfileMap_, outfileNames_, spyAPVeTag_, spyAPVeToken_, spyL1Tag_, spyL1Token_, spyPedSubtrDigisTag_, spyPedSubtrDigisToken_, spyScopeRawDigisTag_, spyScopeRawDigisToken_, spyTotCountTag_, and spyTotCountToken_.

124  "SpyScopeRawDigisTag", edm::InputTag("SiStripSpyUnpacker", "ScopeRawDigis"))),
126  iConfig.getUntrackedParameter<edm::InputTag>("SpyPedSubtrDigisTag", edm::InputTag("SiStripFEDEmulator", ""))),
127  spyL1Tag_(iConfig.getUntrackedParameter<edm::InputTag>("SpyL1Tag",
128  edm::InputTag("SiStripSpyDigiConverter", "L1ACount"))),
130  "SpyTotalEventCountTag", edm::InputTag("SiStripSpyDigiConverter", "TotalEventCount"))),
131  spyAPVeTag_(iConfig.getUntrackedParameter<edm::InputTag>("SpyAPVeTag",
132  edm::InputTag("SiStripSpyDigiConverter", "APVAddress"))),
133  folderName_(iConfig.getUntrackedParameter<std::string>("HistogramFolderName",
134  "SiStrip/ReadoutView/SpyMonitoringSummary")),
135  fillAllDetailedHistograms_(iConfig.getUntrackedParameter<bool>("FillAllDetailedHistograms", false)),
136  fillWithEvtNum_(iConfig.getUntrackedParameter<bool>("FillWithEventNumber", false)),
137  fillWithLocalEvtNum_(iConfig.getUntrackedParameter<bool>("FillWithLocalEventNumber", false)),
138  firstHeaderBit_(0),
139  firstTrailerBit_(0),
140  outfileNames_(iConfig.getUntrackedParameter<std::vector<std::string> >("OutputErrors")),
141  writeCabling_(iConfig.getUntrackedParameter<bool>("WriteCabling", false)) {
142  spyScopeRawDigisToken_ = consumes<edm::DetSetVector<SiStripRawDigi> >(spyScopeRawDigisTag_);
143  spyPedSubtrDigisToken_ = consumes<edm::DetSetVector<SiStripRawDigi> >(spyPedSubtrDigisTag_);
144 
145  spyL1Token_ = consumes<std::vector<uint32_t> >(spyL1Tag_);
146  spyTotCountToken_ = consumes<std::vector<uint32_t> >(spyTotCountTag_);
147  spyAPVeToken_ = consumes<std::vector<uint32_t> >(spyAPVeTag_);
148 
149  evt_ = 0;
150  std::ostringstream pDebugStream;
151  histManager_.initialise(iConfig, &pDebugStream);
152  const unsigned int nFiles = outfileNames_.size();
153 
154  for (unsigned int i(0); i < nFiles; i++) {
155  std::ostringstream lName;
156  lName << outfileNames_.at(i) << ".out";
157  if (i < 20)
158  outfile_[i].open(lName.str().c_str(), std::ios::out);
159  outfileMap_[outfileNames_.at(i)] = i;
160  }
161 
162  frameQuality_.minDigiRange = static_cast<uint16_t>(iConfig.getUntrackedParameter<uint32_t>("MinDigiRange", 100));
163  frameQuality_.maxDigiRange = static_cast<uint16_t>(iConfig.getUntrackedParameter<uint32_t>("MaxDigiRange", 1024));
164  frameQuality_.minZeroLight = static_cast<uint16_t>(iConfig.getUntrackedParameter<uint32_t>("MinZeroLight", 0));
165  frameQuality_.maxZeroLight = static_cast<uint16_t>(iConfig.getUntrackedParameter<uint32_t>("MaxZeroLight", 1024));
166  frameQuality_.minTickHeight = static_cast<uint16_t>(iConfig.getUntrackedParameter<uint32_t>("MinTickHeight", 0));
167  frameQuality_.maxTickHeight = static_cast<uint16_t>(iConfig.getUntrackedParameter<uint32_t>("MaxTickHeight", 1024));
168 }
T getUntrackedParameter(std::string const &, T const &) const
void initialise(const edm::ParameterSet &iConfig, std::ostringstream *pDebugStream) override
std::map< std::string, unsigned int > outfileMap_
edm::EDGetTokenT< std::vector< uint32_t > > spyAPVeToken_
edm::EDGetTokenT< edm::DetSetVector< SiStripRawDigi > > spyPedSubtrDigisToken_
sistrip::SpyUtilities::FrameQuality frameQuality_
std::vector< std::string > outfileNames_
edm::EDGetTokenT< edm::DetSetVector< SiStripRawDigi > > spyScopeRawDigisToken_
edm::EDGetTokenT< std::vector< uint32_t > > spyL1Token_
edm::EDGetTokenT< std::vector< uint32_t > > spyTotCountToken_
SiStripSpyMonitorModule::~SiStripSpyMonitorModule ( )
override

Definition at line 170 of file SiStripSpyMonitorModule.cc.

References mps_fire::i, cmsBatch::nFiles, outfile_, outfileMap_, and outfileNames_.

170  {
171  const unsigned int nFiles = outfileNames_.size();
172  for (unsigned int i(0); i < nFiles; i++) {
173  outfile_[i].close();
174  }
175 
176  outfileMap_.clear();
177  outfileNames_.clear();
178 }
std::map< std::string, unsigned int > outfileMap_
std::vector< std::string > outfileNames_

Member Function Documentation

void SiStripSpyMonitorModule::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 211 of file SiStripSpyMonitorModule.cc.

References sistrip::SpyUtilities::Frame::apvAddress, sistrip::SpyUtilities::Frame::apvErrorBit, FedChannelConnection::apvPairNumber(), FedChannelConnection::detId(), sistrip::SpyUtilities::Frame::digitalHigh, sistrip::SpyUtilities::Frame::digitalLow, MillePedeFileConverter_cfg::e, edm::DetSetVector< T >::end(), edm::EventID::event(), evt_, sistrip::SpyUtilities::extractFrameInfo(), sistrip::FED_ID_MAX, sistrip::FED_ID_MIN, sistrip::FEDCH_PER_FED, SiStripFedCabling::fedConnection(), SPYHistograms::fillCountersHistograms(), SPYHistograms::fillDetailedHistograms(), SPYHistograms::fillFEDHistograms(), fillWithLocalEvtNum_, edm::DetSetVector< T >::find(), sistrip::SpyUtilities::Frame::firstHeaderBit, firstHeaderBit_, sistrip::SpyUtilities::Frame::firstTrailerBit, firstTrailerBit_, frameQuality_, edm::Event::getByToken(), sistrip::SpyUtilities::getCabling(), sistrip::SpyUtilities::getMajorityHeader(), SPYHistograms::Errors::hasAPVAddressError0, SPYHistograms::Errors::hasAPVAddressError1, SPYHistograms::Errors::hasErrorBit0, SPYHistograms::Errors::hasErrorBit1, SPYHistograms::Errors::hasHighPb, SPYHistograms::Errors::hasHighRange, SPYHistograms::Errors::hasLowPb, SPYHistograms::Errors::hasLowRange, SPYHistograms::Errors::hasMaxSat, SPYHistograms::Errors::hasMinZero, hasNegativePedSubtr(), SPYHistograms::Errors::hasNegPeds, SPYHistograms::Errors::hasNoData, SPYHistograms::Errors::hasOOS, SPYHistograms::Errors::hasOtherPbs, histManager_, mps_fire::i, edm::EventBase::id(), identifyTickmarks(), FedChannelConnection::isConnected(), LogDebug, sistrip::SpyUtilities::FrameQuality::maxDigiRange, sistrip::SpyUtilities::FrameQuality::maxTickHeight, sistrip::SpyUtilities::FrameQuality::maxZeroLight, sistrip::SpyUtilities::FrameQuality::minDigiRange, sistrip::SpyUtilities::FrameQuality::minTickHeight, sistrip::SpyUtilities::FrameQuality::minZeroLight, SPYHistograms::ErrorCounters::nAPVAddressError, SPYHistograms::ErrorCounters::nAPVError, cmsBatch::nFiles, SPYHistograms::ErrorCounters::nHighPb, SPYHistograms::ErrorCounters::nHighRange, SPYHistograms::ErrorCounters::nLowPb, SPYHistograms::ErrorCounters::nLowRange, SPYHistograms::ErrorCounters::nMaxSat, SPYHistograms::ErrorCounters::nMinZero, SPYHistograms::ErrorCounters::nNegPeds, SPYHistograms::ErrorCounters::nNoData, SPYHistograms::ErrorCounters::nOOS, SPYHistograms::ErrorCounters::nOtherPbs, MillePedeFileConverter_cfg::out, outfile_, outfileMap_, outfileNames_, edm::Handle< T >::product(), sistrip::SpyUtilities::range(), sistrip::SPY_SAMPLES_PER_CHANNEL, spyAPVeToken_, spyL1Token_, spyPedSubtrDigisToken_, spyScopeRawDigisToken_, spyTotCountToken_, sistrip::STRIPS_PER_FEDCH, sistrip::SpyUtilities::threshold(), utility_, cms::Exception::what(), and writeCabling_.

211  {
212  //update cabling and pedestals
213  const SiStripFedCabling* lCabling = utility_.getCabling(iSetup);
214  if (evt_ == 0 && writeCabling_) {
215  std::ofstream lOutCabling;
216  lOutCabling.open("trackerDetId_FEDIdChNum_list.txt", std::ios::out);
217  for (uint16_t lFedId = sistrip::FED_ID_MIN; lFedId <= sistrip::FED_ID_MAX; ++lFedId) { //loop on feds
218  for (uint16_t lFedChannel = 0; lFedChannel < sistrip::FEDCH_PER_FED; lFedChannel++) { //loop on channels
219  const FedChannelConnection& lConnection = lCabling->fedConnection(lFedId, lFedChannel);
220  if (!lConnection.isConnected())
221  continue;
222  uint32_t lDetId = lConnection.detId();
223  lOutCabling << "FED ID = " << lFedId << ", Channel = " << lFedChannel
224  << ",fedkey = " << sistrip::FEDCH_PER_FED * lFedId + lFedChannel << ", detId = " << lDetId
225  << std::endl;
226  }
227  }
228  lOutCabling.close();
229  }
230 
231  //For spy data
232  //get map of TotalEventCount and L1ID, indexed by fedId, and APVaddress indexed by fedIndex.
233  edm::Handle<std::vector<uint32_t> > lSpyL1IDHandle, lSpyTotCountHandle, lSpyAPVeHandle;
234  try {
235  iEvent.getByToken(spyL1Token_, lSpyL1IDHandle);
236  iEvent.getByToken(spyTotCountToken_, lSpyTotCountHandle);
237  iEvent.getByToken(spyAPVeToken_, lSpyAPVeHandle);
238  } catch (const cms::Exception& e) {
239  LogError("SiStripSpyMonitorModule") << e.what();
240  return;
241  }
242  //const std::map<uint32_t,uint32_t> & lSpyMaxCountMap = *lSpyL1IDHandle;
243  //const std::map<uint32_t,uint32_t> & lSpyMinCountMap = *lSpyTotCountHandle;
244  const std::vector<uint32_t>& lSpyAPVeVec = *lSpyAPVeHandle;
245 
246  //retrieve the scope digis
248  try {
249  iEvent.getByToken(spyScopeRawDigisToken_, digisHandle);
250  } catch (const cms::Exception& e) {
251  LogError("SiStripSpyMonitorModule") << e.what();
252  return;
253  }
254  const edm::DetSetVector<SiStripRawDigi>* lInputDigis = digisHandle.product();
255 
256  //retrieve the reordered payload digis
258  try {
259  iEvent.getByToken(spyPedSubtrDigisToken_, payloadHandle);
260  } catch (const cms::Exception& e) {
261  LogError("SiStripSpyMonitorModule") << e.what();
262  return;
263  }
264  const edm::DetSetVector<SiStripRawDigi>* lPayloadDigis = payloadHandle.product();
265 
266  //for first event only
267  //loop first on channels to calculate majority value of when the first header bit is found.
268  //output info message to give the value found
269  //should currently be 6 but may vary in the futur
270  //then we can check firstTrailerBit is +256+24 after
271 
272  if (evt_ == 0) {
275  }
276 
277  //initialise some counters, filled in histos eventually
279  lCounters.nNoData = 0;
280  lCounters.nLowRange = 0;
281  lCounters.nHighRange = 0;
282  lCounters.nMinZero = 0;
283  lCounters.nMaxSat = 0;
284  lCounters.nLowPb = 0;
285  lCounters.nHighPb = 0;
286  lCounters.nOOS = 0;
287  lCounters.nOtherPbs = 0;
288  lCounters.nAPVError = 0;
289  lCounters.nAPVAddressError = 0;
290  lCounters.nNegPeds = 0;
291 
292  //fill event number for output text files
293  const unsigned int nFiles = outfileNames_.size();
294  for (unsigned int i(0); i < nFiles; i++) {
295  outfile_[i] << "**** evt " << iEvent.id().event() << " ****" << std::endl;
296  }
297 
298  //loop over all FEDs and channels
299 
300  for (uint16_t lFedId = sistrip::FED_ID_MIN; lFedId <= sistrip::FED_ID_MAX; ++lFedId) { //loop on feds
301 
302  SPYHistograms::Errors lFEDErrors;
303  lFEDErrors.hasNoData = false;
304  lFEDErrors.hasLowRange = false;
305  lFEDErrors.hasHighRange = false;
306  lFEDErrors.hasMinZero = false;
307  lFEDErrors.hasMaxSat = false;
308  lFEDErrors.hasLowPb = false;
309  lFEDErrors.hasHighPb = false;
310  lFEDErrors.hasOOS = false;
311  lFEDErrors.hasOtherPbs = false;
312  lFEDErrors.hasErrorBit0 = false;
313  lFEDErrors.hasErrorBit1 = false;
314  lFEDErrors.hasAPVAddressError0 = false;
315  lFEDErrors.hasAPVAddressError1 = false;
316  lFEDErrors.hasNegPeds = false;
317 
318  uint32_t lAPVAddrRef = lSpyAPVeVec.at(lFedId);
319 
320  for (uint16_t lFedChannel = 0; lFedChannel < sistrip::FEDCH_PER_FED; lFedChannel++) { //loop on channels
321 
322  uint32_t lFedIndex = sistrip::FEDCH_PER_FED * lFedId + lFedChannel;
323 
324  const FedChannelConnection& lConnection = lCabling->fedConnection(lFedId, lFedChannel);
325 
326  if (!lConnection.isConnected())
327  continue;
328 
329  uint32_t lDetId = lConnection.detId();
330  //uint16_t lNPairs = lConnection.nApvPairs();
331  uint16_t lPair = lConnection.apvPairNumber();
332 
333  edm::DetSetVector<SiStripRawDigi>::const_iterator lDigis = lInputDigis->find(lFedIndex);
334 
335  //pedsubtr digis
336  edm::DetSetVector<SiStripRawDigi>::const_iterator lPayload = lPayloadDigis->find(lDetId);
337 
338  //no digis found, continue.
339  if (lDigis == lInputDigis->end()) {
340  LogDebug("SiStripSpyMonitorModule") << " -- digis not found in ScopeRawDigis map for FEDID " << lFedId
341  << " and FED channel " << lFedChannel << std::endl;
342  continue;
343  }
344 
346 
347  SPYHistograms::Errors lErrors;
348  lErrors.hasNoData = false;
349  lErrors.hasLowRange = false;
350  lErrors.hasHighRange = false;
351  lErrors.hasMinZero = false;
352  lErrors.hasMaxSat = false;
353  lErrors.hasLowPb = false;
354  lErrors.hasHighPb = false;
355  lErrors.hasOOS = false;
356  lErrors.hasOtherPbs = false;
357  lErrors.hasErrorBit0 = false;
358  lErrors.hasErrorBit1 = false;
359  lErrors.hasAPVAddressError0 = false;
360  lErrors.hasAPVAddressError1 = false;
361  lErrors.hasNegPeds = false;
362 
363  uint16_t lRange = sistrip::SpyUtilities::range(lFrame);
364  uint16_t lThreshold = sistrip::SpyUtilities::threshold(lFrame);
365 
366  if (lRange == 0) {
367  lCounters.nNoData++;
368  lErrors.hasNoData = true;
369  lFEDErrors.hasNoData = true;
370  if (outfileMap_.find("NoData") != outfileMap_.end())
371  outfile_[outfileMap_["NoData"]] << lFedId << " " << lFedChannel << " " << lDetId << std::endl;
372  } else if (lFrame.digitalLow == 0 && lRange > 0) {
373  lCounters.nMinZero++;
374  lErrors.hasMinZero = true;
375  lFEDErrors.hasMinZero = true;
376  if (outfileMap_.find("MinZero") != outfileMap_.end())
377  outfile_[outfileMap_["MinZero"]] << lFedId << " " << lFedChannel << " " << lDetId << std::endl;
378  } else if (lFrame.digitalHigh >= 1023) {
379  lCounters.nMaxSat++;
380  lErrors.hasMaxSat = true;
381  lFEDErrors.hasMaxSat = true;
382  if (outfileMap_.find("MaxSat") != outfileMap_.end())
383  outfile_[outfileMap_["MaxSat"]] << lFedId << " " << lFedChannel << " " << lDetId << std::endl;
384  } else if (lRange > 0 && lRange < frameQuality_.minDigiRange) {
385  lCounters.nLowRange++;
386  lErrors.hasLowRange = true;
387  lFEDErrors.hasLowRange = true;
388  if (outfileMap_.find("LowRange") != outfileMap_.end())
389  outfile_[outfileMap_["LowRange"]] << lFedId << " " << lFedChannel << " " << lDetId << std::endl;
390  } else if (lRange > frameQuality_.maxDigiRange) {
391  lCounters.nHighRange++;
392  lErrors.hasHighRange = true;
393  lFEDErrors.hasHighRange = true;
394  if (outfileMap_.find("HighRange") != outfileMap_.end())
395  outfile_[outfileMap_["HighRange"]] << lFedId << " " << lFedChannel << " " << lDetId << std::endl;
396  } else if (lFrame.digitalLow < frameQuality_.minZeroLight || lFrame.digitalLow > frameQuality_.maxZeroLight) {
397  lCounters.nLowPb++;
398  lErrors.hasLowPb = true;
399  lFEDErrors.hasLowPb = true;
400  if (outfileMap_.find("LowPb") != outfileMap_.end())
401  outfile_[outfileMap_["LowPb"]] << lFedId << " " << lFedChannel << " " << lDetId << std::endl;
403  lCounters.nHighPb++;
404  lErrors.hasHighPb = true;
405  lFEDErrors.hasHighPb = true;
406  if (outfileMap_.find("HighPb") != outfileMap_.end())
407  outfile_[outfileMap_["HighPb"]] << lFedId << " " << lFedChannel << " " << lDetId << std::endl;
408  } else if (lFrame.firstHeaderBit != firstHeaderBit_ && //header in wrong position
409  ((lFrame.firstHeaderBit != sistrip::SPY_SAMPLES_PER_CHANNEL && //header and
410  lFrame.firstTrailerBit != sistrip::SPY_SAMPLES_PER_CHANNEL && //trailer found
411  lFrame.firstTrailerBit - lFrame.firstHeaderBit == 280) || //+ right distance between them
412  (lFrame.firstHeaderBit != sistrip::SPY_SAMPLES_PER_CHANNEL && // or header found
413  lFrame.firstTrailerBit == sistrip::SPY_SAMPLES_PER_CHANNEL && // and trailer not found
414  lFrame.firstHeaderBit > 16) || // corresponding to back-to-back frame late enough
415  (lFrame.firstHeaderBit == sistrip::SPY_SAMPLES_PER_CHANNEL && // or header not found
416  identifyTickmarks(*lDigis, lThreshold)) // but such that tickmark compatible with OOS frame
417  )) {
418  lCounters.nOOS++;
419  lErrors.hasOOS = true;
420  lFEDErrors.hasOOS = true;
421  if (outfileMap_.find("OOS") != outfileMap_.end())
422  outfile_[outfileMap_["OOS"]] << lFedId << " " << lFedChannel << " " << lDetId << std::endl;
423  } else if (!(lFrame.firstHeaderBit == firstHeaderBit_ && lFrame.firstTrailerBit == firstTrailerBit_)) {
424  lCounters.nOtherPbs++;
425  lErrors.hasOtherPbs = true;
426  lFEDErrors.hasOtherPbs = true;
427  if (outfileMap_.find("OtherPbs") != outfileMap_.end())
428  outfile_[outfileMap_["OtherPbs"]] << lFedId << " " << lFedChannel << " " << lDetId << std::endl;
429  } else if (lFrame.apvErrorBit.first || lFrame.apvErrorBit.second) {
430  if (lFrame.apvErrorBit.first) {
431  lCounters.nAPVError++;
432  lErrors.hasErrorBit0 = true;
433  lFEDErrors.hasErrorBit0 = true;
434  }
435  if (lFrame.apvErrorBit.second) {
436  lCounters.nAPVError++;
437  lErrors.hasErrorBit1 = true;
438  lFEDErrors.hasErrorBit1 = true;
439  }
440  if (outfileMap_.find("APVError") != outfileMap_.end()) {
441  outfile_[outfileMap_["APVError"]] << lFedId << " " << lFedChannel << " " << lDetId;
442  if (lFrame.apvErrorBit.first)
443  outfile_[outfileMap_["APVError"]] << " APV0" << std::endl;
444  if (lFrame.apvErrorBit.second)
445  outfile_[outfileMap_["APVError"]] << " APV1" << std::endl;
446  }
447  } else if (lFrame.apvAddress.first != lAPVAddrRef || lFrame.apvAddress.second != lAPVAddrRef) {
448  if (lFrame.apvAddress.first != lAPVAddrRef) {
449  lCounters.nAPVAddressError++;
450  lErrors.hasAPVAddressError0 = true;
451  lFEDErrors.hasAPVAddressError0 = true;
452  }
453  if (lFrame.apvAddress.second != lAPVAddrRef) {
454  lCounters.nAPVAddressError++;
455  lErrors.hasAPVAddressError1 = true;
456  lFEDErrors.hasAPVAddressError1 = true;
457  }
458  if (outfileMap_.find("APVAddressError") != outfileMap_.end()) {
459  outfile_[outfileMap_["APVAddressError"]] << lFedId << " " << lFedChannel << " " << lDetId << std::endl;
460  if (lFrame.apvAddress.first != lAPVAddrRef)
461  outfile_[outfileMap_["APVAddressError"]] << " APV0" << std::endl;
462  if (lFrame.apvAddress.second != lAPVAddrRef)
463  outfile_[outfileMap_["APVAddressError"]] << " APV1" << std::endl;
464  }
465  } else if (lPayload != lPayloadDigis->end() && hasNegativePedSubtr(*lPayload, lPair)) {
466  lCounters.nNegPeds++;
467  lErrors.hasNegPeds = true;
468  lFEDErrors.hasNegPeds = true;
469  if (outfileMap_.find("NegPeds") != outfileMap_.end())
470  outfile_[outfileMap_["NegPeds"]] << lFedId << " " << lFedChannel << " " << lDetId << std::endl;
471  }
472 
473  histManager_.fillDetailedHistograms(lErrors, lFrame, lFedId, lFedChannel);
474 
475  } //loop on channels
476 
477  histManager_.fillFEDHistograms(lFEDErrors, lFedId);
478 
479  } //loop on feds
480 
481  double lTime;
482  //if (fillWithEvtNum_)
483  //lTime = iEvent.id().event();
484  //else if (fillWithLocalEvtNum_) lTime = evt_;
485  //no orbit number for spy data !!
486  //else lTime = iEvent.orbitNumber()/11223.;
487  if (fillWithLocalEvtNum_) {
488  // casting from unsigned long long to a double here
489  // doing it explicitely
490  lTime = static_cast<double>(evt_);
491  } else {
492  // casting from unsigned long long to a double here
493  // doing it explicitely
494  lTime = static_cast<double>(iEvent.id().event());
495  }
496 
497  histManager_.fillCountersHistograms(lCounters, lTime);
498 
499  //used to fill histo vs time with local event number....
500  evt_++;
501 
502 } //analyze method
#define LogDebug(id)
EventNumber_t event() const
Definition: EventID.h:40
std::pair< uint8_t, uint8_t > apvAddress
static const uint16_t FED_ID_MIN
iterator find(det_id_type id)
Definition: DetSetVector.h:264
FedChannelConnection fedConnection(uint16_t fed_id, uint16_t fed_ch) const
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
uint16_t apvPairNumber() const
bool identifyTickmarks(const edm::DetSetVector< SiStripRawDigi >::detset &channelDigis, const uint16_t threshold)
static const uint16_t SPY_SAMPLES_PER_CHANNEL
char const * what() const override
Definition: Exception.cc:103
std::map< std::string, unsigned int > outfileMap_
bool hasNegativePedSubtr(const edm::DetSetVector< SiStripRawDigi >::detset &channelDigis, uint16_t aPair)
edm::EDGetTokenT< std::vector< uint32_t > > spyAPVeToken_
void fillCountersHistograms(const ErrorCounters &aCounter, const double aTime)
edm::EDGetTokenT< edm::DetSetVector< SiStripRawDigi > > spyPedSubtrDigisToken_
std::pair< bool, bool > apvErrorBit
static const Frame extractFrameInfo(const edm::DetSetVector< SiStripRawDigi >::detset &channelDigis, bool aPrintDebug=false)
const uint32_t & detId() const
Class containning control, module, detector and connection information, at the level of a FED channel...
sistrip::SpyUtilities::FrameQuality frameQuality_
static const uint16_t range(const Frame &aFrame)
std::vector< std::string > outfileNames_
edm::EDGetTokenT< edm::DetSetVector< SiStripRawDigi > > spyScopeRawDigisToken_
iterator end()
Return the off-the-end iterator.
Definition: DetSetVector.h:325
static const uint16_t threshold(const Frame &aFrame)
static const uint16_t STRIPS_PER_FEDCH
T const * product() const
Definition: Handle.h:69
const SiStripFedCabling * getCabling(const edm::EventSetup &)
Updates the cabling object from the DB.
void fillFEDHistograms(const Errors &aErr, const unsigned int aFedId)
Contains cabling info at the device level, including DetId, APV pair numbers, hardware addresses...
edm::EventID id() const
Definition: EventBase.h:59
static const uint16_t FEDCH_PER_FED
void fillDetailedHistograms(const Errors &aErr, const sistrip::SpyUtilities::Frame &aFrame, const unsigned int aFedId, const unsigned int aFedChannel)
static void getMajorityHeader(const edm::DetSetVector< SiStripRawDigi > *aInputDigis, uint16_t &firstHeaderBit, bool printResult=true)
static const uint16_t FED_ID_MAX
edm::EDGetTokenT< std::vector< uint32_t > > spyL1Token_
collection_type::const_iterator const_iterator
Definition: DetSetVector.h:102
sistrip::SpyUtilities utility_
edm::EDGetTokenT< std::vector< uint32_t > > spyTotCountToken_
void SiStripSpyMonitorModule::bookHistograms ( DQMStore::IBooker ,
edm::Run const &  ,
edm::EventSetup const &   
)
overrideprivatevirtual

Implements DQMEDAnalyzer.

Definition at line 186 of file SiStripSpyMonitorModule.cc.

References SPYHistograms::bookAllFEDHistograms(), SPYHistograms::bookFEDHistograms(), SPYHistograms::bookTopLevelHistograms(), sistrip::FED_ID_MAX, sistrip::FED_ID_MIN, fillAllDetailedHistograms_, folderName_, edm::EventSetup::get(), histManager_, edm::ESHandle< T >::product(), dqm::dqmstoreimpl::DQMStore::IBooker::pwd(), and dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder().

188  {
189  ibooker.setCurrentFolder(folderName_);
190 
191  LogInfo("SiStripSpyMonitorModule") << " Histograms will be written in " << folderName_
192  << ". Current folder is : " << ibooker.pwd() << std::endl;
193 
194  edm::ESHandle<TkDetMap> tkDetMapHandle;
195  eSetup.get<TrackerTopologyRcd>().get(tkDetMapHandle);
196  const TkDetMap* tkDetMap = tkDetMapHandle.product();
197 
198  //this propagates dqm_ to the histoclass, must be called !
199  histManager_.bookTopLevelHistograms(ibooker, tkDetMap);
200 
203 
204  //dummy error object
205  SPYHistograms::Errors lError;
206  for (uint16_t lFedId = sistrip::FED_ID_MIN; lFedId <= sistrip::FED_ID_MAX; ++lFedId)
207  histManager_.bookFEDHistograms(ibooker, lFedId, lError, true);
208 }
static const uint16_t FED_ID_MIN
void bookTopLevelHistograms(DQMStore::IBooker &, const TkDetMap *)
void bookAllFEDHistograms(DQMStore::IBooker &)
void bookFEDHistograms(DQMStore::IBooker &, const unsigned int fedId, const Errors &aErr, bool doAll=false)
static const uint16_t FED_ID_MAX
T const * product() const
Definition: ESHandle.h:86
void SiStripSpyMonitorModule::dqmBeginRun ( const edm::Run r,
const edm::EventSetup c 
)
overrideprivate

Definition at line 180 of file SiStripSpyMonitorModule.cc.

References evt_, firstHeaderBit_, and firstTrailerBit_.

180  {
181  evt_ = 0;
182  firstHeaderBit_ = 0;
183  firstTrailerBit_ = 0;
184 }
edm::DetSetVector< SiStripRawDigi >::detset::const_iterator SiStripSpyMonitorModule::findTwoConsecutive ( const edm::DetSetVector< SiStripRawDigi >::detset &  channelDigis,
const uint16_t  threshold,
uint16_t &  aCounter 
)
private

Definition at line 549 of file SiStripSpyMonitorModule.cc.

References edm::DetSet< T >::begin(), DEFINE_FWK_MODULE, edm::DetSet< T >::end(), sistrip::SPY_SAMPLES_PER_CHANNEL, and MessageLogger_cff::threshold.

Referenced by identifyTickmarks().

550  {
551  const edm::DetSetVector<SiStripRawDigi>::detset::const_iterator endChannelDigis = channelDigis.end();
552  edm::DetSetVector<SiStripRawDigi>::detset::const_iterator lStart = channelDigis.begin() + aCounter;
553 
554  bool foundTrailer = false;
555  // Loop over digis looking for last two above threshold
556  uint8_t aboveThreshold = 0;
557 
558  for (; lStart != endChannelDigis; ++lStart) {
559  if (lStart->adc() > threshold) {
560  aboveThreshold++;
561  } else {
562  aboveThreshold = 0;
563  }
564  if (aboveThreshold == 2) {
565  foundTrailer = true;
566  break;
567  }
568  aCounter++;
569  } //end of loop over digis
570 
571  if (foundTrailer)
572  return lStart;
573  else {
575  return endChannelDigis;
576  }
577 }
iterator end()
Definition: DetSet.h:59
static const uint16_t SPY_SAMPLES_PER_CHANNEL
iterator begin()
Definition: DetSet.h:58
collection_type::const_iterator const_iterator
Definition: DetSet.h:32
bool SiStripSpyMonitorModule::hasNegativePedSubtr ( const edm::DetSetVector< SiStripRawDigi >::detset &  channelDigis,
uint16_t  aPair 
)
private

Definition at line 504 of file SiStripSpyMonitorModule.cc.

References edm::DetSet< T >::begin(), KineDebug3::count(), edm::DetSet< T >::end(), sistrip::STRIPS_PER_FEDCH, and heppy_batch::val.

Referenced by analyze().

505  {
507  const edm::DetSetVector<SiStripRawDigi>::detset::const_iterator endChannelDigis = channelDigis.end();
508 
509  uint32_t count = 0;
510  for (; iDigi != endChannelDigis; ++iDigi) {
511  const uint16_t val = iDigi->adc();
512  uint16_t lPair = static_cast<uint16_t>(count / sistrip::STRIPS_PER_FEDCH);
513  if (val == 0 && lPair == aPair)
514  return true;
515  count++;
516  }
517 
518  return false;
519 }
iterator end()
Definition: DetSet.h:59
iterator begin()
Definition: DetSet.h:58
static const uint16_t STRIPS_PER_FEDCH
collection_type::const_iterator const_iterator
Definition: DetSet.h:32
bool SiStripSpyMonitorModule::identifyTickmarks ( const edm::DetSetVector< SiStripRawDigi >::detset &  channelDigis,
const uint16_t  threshold 
)
private

Definition at line 521 of file SiStripSpyMonitorModule.cc.

References KineDebug3::count(), edm::DetSet< T >::detId(), edm::DetSet< T >::end(), evt_, findTwoConsecutive(), LogDebug, and sistrip::SPY_SAMPLES_PER_CHANNEL.

Referenced by analyze().

522  {
523  //start from the end
525  uint16_t lastPos = sistrip::SPY_SAMPLES_PER_CHANNEL;
526  uint16_t nTrailers = 0;
528 
529  for (; count == 0; count--) {
530  iDigi = findTwoConsecutive(channelDigis, threshold, count);
531  //if found, in different position = 70 before than previous value, go and look 70 before
532  if (iDigi != channelDigis.end() && (lastPos == sistrip::SPY_SAMPLES_PER_CHANNEL || count == lastPos + 1 - 70)) {
533  nTrailers++;
534  lastPos = count - 1;
535  count -= 70;
536  }
537  //else keep looking
538  else
539  count--;
540  }
541 
542  if (nTrailers > 1)
543  LogDebug("SiStripSpyMonitorModule") << " -- Found " << nTrailers << " trailers every 70 clock cycles for channel "
544  << channelDigis.detId() << ", evt " << evt_ << std::endl;
545  //if only one found, should be < 280 otherwise header should have been found and this method would not be called
546  return (nTrailers > 1) || (nTrailers == 1 && lastPos < 280);
547 }
#define LogDebug(id)
iterator end()
Definition: DetSet.h:59
edm::DetSetVector< SiStripRawDigi >::detset::const_iterator findTwoConsecutive(const edm::DetSetVector< SiStripRawDigi >::detset &channelDigis, const uint16_t threshold, uint16_t &aCounter)
det_id_type detId() const
Definition: DetSet.h:75
static const uint16_t SPY_SAMPLES_PER_CHANNEL
collection_type::const_iterator const_iterator
Definition: DetSet.h:32

Member Data Documentation

edm::EventNumber_t SiStripSpyMonitorModule::evt_
private
bool SiStripSpyMonitorModule::fillAllDetailedHistograms_
private

Definition at line 96 of file SiStripSpyMonitorModule.cc.

Referenced by bookHistograms().

bool SiStripSpyMonitorModule::fillWithEvtNum_
private

Definition at line 98 of file SiStripSpyMonitorModule.cc.

bool SiStripSpyMonitorModule::fillWithLocalEvtNum_
private

Definition at line 99 of file SiStripSpyMonitorModule.cc.

Referenced by analyze().

uint16_t SiStripSpyMonitorModule::firstHeaderBit_
private

Definition at line 102 of file SiStripSpyMonitorModule.cc.

Referenced by analyze(), and dqmBeginRun().

uint16_t SiStripSpyMonitorModule::firstTrailerBit_
private

Definition at line 103 of file SiStripSpyMonitorModule.cc.

Referenced by analyze(), and dqmBeginRun().

std::string SiStripSpyMonitorModule::folderName_
private

Definition at line 94 of file SiStripSpyMonitorModule.cc.

Referenced by bookHistograms().

sistrip::SpyUtilities::FrameQuality SiStripSpyMonitorModule::frameQuality_
private

Definition at line 106 of file SiStripSpyMonitorModule.cc.

Referenced by analyze(), and SiStripSpyMonitorModule().

SPYHistograms SiStripSpyMonitorModule::histManager_
private

Definition at line 101 of file SiStripSpyMonitorModule.cc.

Referenced by analyze(), bookHistograms(), and SiStripSpyMonitorModule().

uint32_t SiStripSpyMonitorModule::maxDigiRange_
private

Definition at line 85 of file SiStripSpyMonitorModule.cc.

uint32_t SiStripSpyMonitorModule::maxDigitalHigh_
private

Definition at line 89 of file SiStripSpyMonitorModule.cc.

uint32_t SiStripSpyMonitorModule::maxDigitalLow_
private

Definition at line 87 of file SiStripSpyMonitorModule.cc.

uint32_t SiStripSpyMonitorModule::minDigiRange_
private

Definition at line 84 of file SiStripSpyMonitorModule.cc.

uint32_t SiStripSpyMonitorModule::minDigitalHigh_
private

Definition at line 88 of file SiStripSpyMonitorModule.cc.

uint32_t SiStripSpyMonitorModule::minDigitalLow_
private

Definition at line 86 of file SiStripSpyMonitorModule.cc.

std::ofstream SiStripSpyMonitorModule::outfile_[20]
private
std::map<std::string, unsigned int> SiStripSpyMonitorModule::outfileMap_
private
std::vector<std::string> SiStripSpyMonitorModule::outfileNames_
private
edm::InputTag SiStripSpyMonitorModule::spyAPVeTag_
private

Definition at line 78 of file SiStripSpyMonitorModule.cc.

Referenced by SiStripSpyMonitorModule().

edm::EDGetTokenT<std::vector<uint32_t> > SiStripSpyMonitorModule::spyAPVeToken_
private

Definition at line 82 of file SiStripSpyMonitorModule.cc.

Referenced by analyze(), and SiStripSpyMonitorModule().

edm::InputTag SiStripSpyMonitorModule::spyL1Tag_
private

Definition at line 76 of file SiStripSpyMonitorModule.cc.

Referenced by SiStripSpyMonitorModule().

edm::EDGetTokenT<std::vector<uint32_t> > SiStripSpyMonitorModule::spyL1Token_
private

Definition at line 80 of file SiStripSpyMonitorModule.cc.

Referenced by analyze(), and SiStripSpyMonitorModule().

edm::InputTag SiStripSpyMonitorModule::spyPedSubtrDigisTag_
private

Definition at line 70 of file SiStripSpyMonitorModule.cc.

Referenced by SiStripSpyMonitorModule().

edm::EDGetTokenT<edm::DetSetVector<SiStripRawDigi> > SiStripSpyMonitorModule::spyPedSubtrDigisToken_
private

Definition at line 73 of file SiStripSpyMonitorModule.cc.

Referenced by analyze(), and SiStripSpyMonitorModule().

edm::InputTag SiStripSpyMonitorModule::spyScopeRawDigisTag_
private

Definition at line 69 of file SiStripSpyMonitorModule.cc.

Referenced by SiStripSpyMonitorModule().

edm::EDGetTokenT<edm::DetSetVector<SiStripRawDigi> > SiStripSpyMonitorModule::spyScopeRawDigisToken_
private

Definition at line 72 of file SiStripSpyMonitorModule.cc.

Referenced by analyze(), and SiStripSpyMonitorModule().

edm::InputTag SiStripSpyMonitorModule::spyTotCountTag_
private

Definition at line 77 of file SiStripSpyMonitorModule.cc.

Referenced by SiStripSpyMonitorModule().

edm::EDGetTokenT<std::vector<uint32_t> > SiStripSpyMonitorModule::spyTotCountToken_
private

Definition at line 81 of file SiStripSpyMonitorModule.cc.

Referenced by analyze(), and SiStripSpyMonitorModule().

sistrip::SpyUtilities SiStripSpyMonitorModule::utility_
private

Definition at line 105 of file SiStripSpyMonitorModule.cc.

Referenced by analyze().

bool SiStripSpyMonitorModule::writeCabling_
private

Definition at line 112 of file SiStripSpyMonitorModule.cc.

Referenced by analyze().