CMS 3D CMS Logo

SiStripSpyDisplayModule.cc
Go to the documentation of this file.
1 /* \file SiStripSpyDisplayModule.cc
2  * \brief File containing code for the SiStripMonitorFEDProcessing plugin module.
3  */
4 // -*- C++ -*-
5 //
6 // Package: SiStripMonitorHardware
7 // Class: SiStripSpyDisplayModule
8 //
9 // Standard
10 #include <memory>
11 #include <vector>
12 #include <iostream>
13 #include <string>
14 #include <sstream>
15 
16 // Framework include files
24 
25 // Needed for the SST cabling
29 
30 // Needed for the pedestal values
33 
34 // Needed for the noise values
37 
38 // For translating between FED key and det ID
40 
47 
48 // Needed for the FED raw data processing
51 
52 // #include "EventFilter/SiStripRawToDigi/interface/SiStripDigiToRaw.h"
53 
54 //for cabling
56 
57 // For plotting
60 #include "TH1S.h"
61 #include "TH1D.h"
62 
63 //
64 // constants, enums and typedefs
65 //
79 };
80 
81 //
82 // class declaration
83 //
84 
97 public:
99  ~SiStripSpyDisplayModule() override;
100 
101 private:
102  void beginRun(const edm::Run&, const edm::EventSetup&) override;
103  void beginJob() override;
104  void analyze(const edm::Event&, const edm::EventSetup&) override;
105  void endJob() override;
106 
108  uint32_t specifier,
109  const TFileDirectory& dir,
111 
113  uint32_t specifier,
114  const TFileDirectory& dir,
116 
117  Bool_t MakeDigiHist_(const edm::Handle<edm::DetSetVector<SiStripDigi> >& digi_handle,
118  uint32_t detID,
119  const TFileDirectory& dir,
121 
122  // ----------member data ---------------------------
123  std::vector<uint32_t> detIDs_;
124  //now from utility class
125  // edm::ESHandle<SiStripDetCabling> cabling_; //!< The Strip Tracker cabling object.
127 
128  // Data input labels
129  //===================
143 
166  //
167  // Output information
168  //====================
170 
171 }; // end of SiStripSpyDisplayModule class
172 
173 //
174 // static data member definitions
175 //
176 
177 using namespace sistrip;
178 using namespace std;
179 
180 //
181 // constructors and destructor
182 //
184  : detIDs_(iConfig.getParameter<std::vector<uint32_t> >("detIDs")),
185  inputScopeModeRawDigiLabel_(iConfig.getParameter<edm::InputTag>("InputScopeModeRawDigiLabel")),
186  inputPayloadRawDigiLabel_(iConfig.getParameter<edm::InputTag>("InputPayloadRawDigiLabel")),
187  inputReorderedPayloadRawDigiLabel_(iConfig.getParameter<edm::InputTag>("InputReorderedPayloadRawDigiLabel")),
188  inputReorderedModuleRawDigiLabel_(iConfig.getParameter<edm::InputTag>("InputReorderedModuleRawDigiLabel")),
189  inputPedestalsLabel_(iConfig.getParameter<edm::InputTag>("InputPedestalsLabel")),
190  inputNoisesLabel_(iConfig.getParameter<edm::InputTag>("InputNoisesLabel")),
191  inputPostPedestalRawDigiLabel_(iConfig.getParameter<edm::InputTag>("InputPostPedestalRawDigiLabel")),
192  inputPostCMRawDigiLabel_(iConfig.getParameter<edm::InputTag>("InputPostCMRawDigiLabel")),
193  inputZeroSuppressedRawDigiLabel_(iConfig.getParameter<edm::InputTag>("InputZeroSuppressedRawDigiLabel")),
194  inputZeroSuppressedDigiLabel_(iConfig.getParameter<edm::InputTag>("InputZeroSuppressedDigiLabel")),
195  inputCompVirginRawDigiLabel_(iConfig.getParameter<edm::InputTag>("InputCompVirginRawDigiLabel")),
196  inputCompZeroSuppressedDigiLabel_(iConfig.getParameter<edm::InputTag>("InputCompZeroSuppressedDigiLabel")),
197  outputFolderName_(iConfig.getParameter<std::string>("OutputFolderName")) {
198  //now do what ever initialization is needed
199  inputScopeModeRawDigiToken_ = consumes<edm::DetSetVector<SiStripRawDigi> >(inputScopeModeRawDigiLabel_);
200  inputPayloadRawDigiToken_ = consumes<edm::DetSetVector<SiStripRawDigi> >(inputPayloadRawDigiLabel_);
201  inputReorderedPayloadRawDigiToken_ = consumes<edm::DetSetVector<SiStripRawDigi> >(inputReorderedPayloadRawDigiLabel_);
202  inputReorderedModuleRawDigiToken_ = consumes<edm::DetSetVector<SiStripRawDigi> >(inputReorderedModuleRawDigiLabel_);
203  inputPedestalsToken_ = consumes<edm::DetSetVector<SiStripRawDigi> >(inputPedestalsLabel_);
204  inputNoisesToken_ = consumes<edm::DetSetVector<SiStripProcessedRawDigi> >(inputNoisesLabel_);
205  inputPostPedestalRawDigiToken_ = consumes<edm::DetSetVector<SiStripRawDigi> >(inputPostPedestalRawDigiLabel_);
206  inputPostCMRawDigiToken_ = consumes<edm::DetSetVector<SiStripRawDigi> >(inputPostCMRawDigiLabel_);
207  inputZeroSuppressedRawDigiToken_ = consumes<edm::DetSetVector<SiStripRawDigi> >(inputZeroSuppressedRawDigiLabel_);
208  inputZeroSuppressedDigiToken_ = consumes<edm::DetSetVector<SiStripDigi> >(inputZeroSuppressedDigiLabel_);
209  inputCompVirginRawDigiToken_ = consumes<edm::DetSetVector<SiStripRawDigi> >(inputCompVirginRawDigiLabel_);
210  inputCompZeroSuppressedDigiToken_ = consumes<edm::DetSetVector<SiStripDigi> >(inputCompZeroSuppressedDigiLabel_);
211 }
212 
214  // do anything here that needs to be done at desctruction time
215  // (e.g. close files, deallocate resources etc.)
216 }
217 
218 //
219 // member functions
220 //
221 
223  // Retrieve FED cabling object
224  //iSetup.get<SiStripDetCablingRcd>().get( cabling_ );
225  //std::stringstream ss;
226  //cabling_->print(ss);
227  //std::cout << ss.str() << std::endl;
228 
229 } // end of beginRun method.
230 
231 // ------------ method called once each job just before starting event loop ------------
233  // register to the TFileService
235  // Check that the TFileService has been configured
236  if (!fs.isAvailable()) {
237  throw cms::Exception("Configuration") << "TFileService not available: did you configure it ?";
238  }
239 } // end of beginJob method.
240 
241 // ------------ method called once each job just after ending the event loop ------------
243 
244 // ------------ method called to for each event ------------
246  using namespace edm;
247  using namespace std;
248 
249  //retrieve cabling
250  const SiStripDetCabling* lCabling = utility_.getDetCabling(iSetup);
251 
252  // Set up the event-level histogram folder
253  //-----------------------------------------
254  // register to the TFileService
256 
257  // Make the EDAnalyzer instance name directory
258  TFileDirectory an_dir = fs->mkdir(outputFolderName_);
259 
260  // Make the event directory filename
261  stringstream ev_dir_name;
262  ev_dir_name << "run" << iEvent.id().run() << "_event" << iEvent.id().event();
263  TFileDirectory evdir = an_dir.mkdir(ev_dir_name.str());
264 
265  //if there are no detIds, get them from the comparison digis...
266  if (detIDs_.empty()) {
267  //get the detIds of the modules in the zero-suppressed comparison
268  if (!((inputCompZeroSuppressedDigiLabel_.label().empty()) &&
271  // iEvent.getByLabel( inputCompZeroSuppressedDigiLabel_, czs_digis );
272  iEvent.getByToken(inputCompZeroSuppressedDigiToken_, czs_digis);
273  std::vector<edm::DetSet<SiStripDigi> >::const_iterator digis_it = czs_digis->begin();
274  for (; digis_it != czs_digis->end(); ++digis_it) {
275  detIDs_.push_back(digis_it->detId());
276  }
277  } else if (!((inputCompVirginRawDigiLabel_.label().empty()) && (inputCompVirginRawDigiLabel_.instance().empty()))) {
279  // iEvent.getByLabel( inputCompVirginRawDigiLabel_, cvr_digis );
280  iEvent.getByToken(inputCompVirginRawDigiToken_, cvr_digis);
281  std::vector<edm::DetSet<SiStripRawDigi> >::const_iterator digis_it = cvr_digis->begin();
282  for (; digis_it != cvr_digis->end(); ++digis_it) {
283  detIDs_.push_back(digis_it->detId());
284  }
285  }
286  }
287 
288  // Loop over detIDs as obtained from the SpyChannelMonitor config file.
289  for (std::vector<uint32_t>::iterator d = detIDs_.begin(); d != detIDs_.end(); ++d) {
290  // TODO: Need some error checking here, probably...
291  const std::vector<const FedChannelConnection*>& conns = lCabling->getConnections(*d);
292  //cout << "________________________________________________" << endl;
293  //cout << "FED channels found in detId " << *d << " is " << conns.size() << endl;
294  if (!(conns.size())) {
295  // TODO: Properly DEBUG/warning this...
296  //cout << "Skipping detID " << uint32_t(*d) << endl;
297  continue;
298  }
299 
300  // Create a histogram directory for each specified and available detID
301  stringstream sss;
302  sss << "detID_" << *d;
303  TFileDirectory detID_dir = evdir.mkdir(sss.str());
304 
305  // Loop over the channels found with the detID and add directories.
306  for (uint32_t ch = 0; ch < conns.size(); ch++) {
307  if (conns[ch] && conns[ch]->isConnected()) {
308  // Name of channel histogram directory
309  stringstream ssss;
310  ssss << sss.str() << "_APVpair_" << ch;
311  TFileDirectory chan_dir = detID_dir.mkdir(ssss.str());
312 
313  // Get the fed key from the detID and the channel
314  uint32_t fedkey = SiStripFedKey::fedIndex(conns[ch]->fedId(), conns[ch]->fedCh());
315 
316  // (Spy) Scope Mode (SM)
317  //=======================
318  // Get the fed key from the FED ID and the FED channel (from conns)
319  // This is because scope mode always stores in the collection by FED ID
320  if (!((inputScopeModeRawDigiLabel_.label().empty()) && (inputScopeModeRawDigiLabel_.instance().empty()))) {
321  // Use the SiStripFedKey object to return the FED key
322  //cout << "detID=" << *d << ", FED key looking for is " << fedkey << endl;
323  //cout << "Attempting to find scope mode raw digis" << endl;
324  //
326  // iEvent.getByLabel( inputScopeModeRawDigiLabel_, sm_rawdigis );
327  iEvent.getByToken(inputScopeModeRawDigiToken_, sm_rawdigis);
328  //
329  // Note that the fed key (also a uint32_t) is passed in this case.
330  // The method itself doesn't actually care, but it assumes whatever collection
331  // is stored in sm_rawdigis is indexed by FED key ;-)
332  // TODO: Make this, um, better.
333  if (!(MakeRawDigiHist_(sm_rawdigis, fedkey, chan_dir, SCOPE_MODE))) {
334  ;
335  }
336  }
337 
338  // Payload Unordered Raw (UR)
339  //============================
340  if (!((inputPayloadRawDigiLabel_.label().empty()) && (inputPayloadRawDigiLabel_.instance().empty()))) {
341  uint32_t fedindex = SiStripFedKey::fedIndex(conns[ch]->fedId(), conns[ch]->fedCh());
342  //cout << "Attempting to find payload mode raw digis" << endl;
344  // iEvent.getByLabel( inputPayloadRawDigiLabel_, ur_rawdigis );
345  iEvent.getByToken(inputPayloadRawDigiToken_, ur_rawdigis);
346  if (!(MakeRawDigiHist_(ur_rawdigis, fedindex, chan_dir, PAYLOAD_RAW))) {
347  ;
348  }
349  }
350  // Payload Reordered Raw
351  //=======================
352  if (!((inputReorderedPayloadRawDigiLabel_.label().empty()) &&
354  uint32_t fedkey = SiStripFedKey::fedIndex(conns[ch]->fedId(), conns[ch]->fedCh());
356  // iEvent.getByLabel( inputReorderedPayloadRawDigiLabel_, rrp_rawdigis );
357  iEvent.getByToken(inputReorderedPayloadRawDigiToken_, rrp_rawdigis);
358  if (!(MakeRawDigiHist_(rrp_rawdigis, fedkey, chan_dir, REORDERED_PAYLOAD_RAW))) {
359  ;
360  }
361  }
362  }
363  } // end of loop over channels
364  //
365  // Module Reordered Raw (RR)
366  //====================
367  if (!((inputReorderedModuleRawDigiLabel_.label().empty()) &&
370  // iEvent.getByLabel( inputReorderedModuleRawDigiLabel_, rr_rawdigis );
371  iEvent.getByToken(inputReorderedModuleRawDigiToken_, rr_rawdigis);
372  //cout << "Making Reordered module histogram for detID " << *d << endl;
373  if (!(MakeRawDigiHist_(rr_rawdigis, *d, detID_dir, REORDERED_MODULE_RAW))) {
374  ;
375  }
376  } // end of ReorderedModuleRaw check
377 
378  //
379  // Pedestal values
380  //========================
381  if (!((inputPedestalsLabel_.label().empty()) && (inputPedestalsLabel_.instance().empty()))) {
383  // iEvent.getByLabel( inputPedestalsLabel_, pd_rawdigis );
384  iEvent.getByToken(inputPedestalsToken_, pd_rawdigis);
385  //cout << "Making pedestal values module histogram for detID " << *d << endl;
386  if (!(MakeRawDigiHist_(pd_rawdigis, *d, detID_dir, PEDESTAL_VALUES))) {
387  ;
388  }
389  }
390  //
391  // Noise values
392  //========================
393  if (!((inputNoisesLabel_.label().empty()) && (inputNoisesLabel_.instance().empty()))) {
395  // iEvent.getByLabel( inputNoisesLabel_, pd_rawdigis );
396  iEvent.getByToken(inputNoisesToken_, pd_rawdigis);
397  //cout << "Making noise values module histogram for detID " << *d << endl;
398  if (!(MakeProcessedRawDigiHist_(pd_rawdigis, *d, detID_dir, NOISE_VALUES))) {
399  ;
400  }
401  }
402  //
403  // Post-Pedestal Raw (PP)
404  //========================
407  // iEvent.getByLabel( inputPostPedestalRawDigiLabel_, pp_rawdigis );
408  iEvent.getByToken(inputPostPedestalRawDigiToken_, pp_rawdigis);
409  //cout << "Making post-pedestal module histogram for detID " << *d << endl;
410  if (!(MakeRawDigiHist_(pp_rawdigis, *d, detID_dir, POST_PEDESTAL))) {
411  ;
412  }
413  }
414  //
415  // Post-Common Mode Subtraction Raw (PC)
416  //=======================================
417  if (!((inputPostCMRawDigiLabel_.label().empty()) && (inputPostCMRawDigiLabel_.instance().empty()))) {
419  // iEvent.getByLabel( inputPostCMRawDigiLabel_, pc_rawdigis );
420  iEvent.getByToken(inputPostCMRawDigiToken_, pc_rawdigis);
421  //cout << "Making post-CM module histogram for detID " << *d << endl;
422  if (!(MakeRawDigiHist_(pc_rawdigis, *d, detID_dir, POST_COMMON_MODE))) {
423  ;
424  }
425  }
426 
427  //
428  // Zero-Suppressed Digis
429  //=======================
430  //bool founddigispy = false, founddigimain = false;
432  //cout << "Making ZeroSuppressed histogram!" << endl;
434  // iEvent.getByLabel( inputZeroSuppressedDigiLabel_, zs_digis );
435  iEvent.getByToken(inputZeroSuppressedDigiToken_, zs_digis);
436  //founddigispy =
437  MakeDigiHist_(zs_digis, *d, detID_dir, ZERO_SUPPRESSED);
438  }
439  //comparison to mainline data
440  if (!((inputCompVirginRawDigiLabel_.label().empty()) && (inputCompVirginRawDigiLabel_.instance().empty()))) {
441  //cout << "Making Mainline VirginRaw histogram!" << endl;
443  // iEvent.getByLabel( inputCompVirginRawDigiLabel_, cvr_digis );
444  iEvent.getByToken(inputCompVirginRawDigiToken_, cvr_digis);
445  //founddigimain =
446  MakeRawDigiHist_(cvr_digis, *d, detID_dir, VR_COMP);
447  }
448  if (!((inputCompZeroSuppressedDigiLabel_.label().empty()) &&
450  //cout << "Making ZeroSuppressed histogram!" << endl;
452  // iEvent.getByLabel( inputCompZeroSuppressedDigiLabel_, czs_digis );
453  iEvent.getByToken(inputCompZeroSuppressedDigiToken_, czs_digis);
454  //founddigimain =
455  MakeDigiHist_(czs_digis, *d, detID_dir, ZERO_SUPPRESSED_COMP);
456  }
457  //if (founddigimain && founddigispy) cout << "Found digis for both in detid=" << *d << endl;
458 
459  } // end of loop over detIDs specified in the config.
460 
461 } // end of Analyze method.
462 
464  uint32_t specifier,
465  const TFileDirectory& dir,
467 //const std::string & name)
468 {
469  // TODO: Remove the hard-coded numbers(!).
470  TH1S* hist;
471  if (type == SCOPE_MODE)
472  hist = dir.make<TH1S>("ScopeMode", ";Sample number;ADC counts / strip", 298, 0, 298);
473  else if (type == PAYLOAD_RAW)
474  hist = dir.make<TH1S>("PayloadRaw", ";Sample number;ADC counts / strip", 256, 0, 256);
475  else if (type == REORDERED_PAYLOAD_RAW)
476  hist = dir.make<TH1S>("ReorderedPayloadRaw", ";Sample number;ADC counts / strip", 256, 0, 256);
477  else if (type == REORDERED_MODULE_RAW)
478  hist = dir.make<TH1S>("ReorderedModuleRaw", ";Sample number;ADC counts / strip", 768, 0, 768);
479  else if (type == PEDESTAL_VALUES)
480  hist = dir.make<TH1S>("PedestalValues", ";Strip number;Pedestal / strip", 768, 0, 768);
481  else if (type == POST_PEDESTAL)
482  hist = dir.make<TH1S>("PostPedestal", ";Strip number;ADC counts / strip", 768, 0, 768);
483  else if (type == POST_COMMON_MODE)
484  hist = dir.make<TH1S>("PostCommonMode", ";Strip number;ADC counts / strip", 768, 0, 768);
485  else if (type == ZERO_SUPPRESSED_PADDED)
486  hist = dir.make<TH1S>("ZeroSuppressedRaw", ";Strip number;ADC counts / strip", 768, 0, 768);
487  else if (type == VR_COMP)
488  hist = dir.make<TH1S>("VirginRawCom", ";Strip number;ADC counts / strip", 768, 0, 768);
489  else {
490  hist = nullptr;
491  return false;
492  }
493 
494  // TODO: May need to make this error checking independent when refactoring...
495  //std::cout << "| * digis for " << type << " and detID " << specifier;
496  std::vector<edm::DetSet<SiStripRawDigi> >::const_iterator digis_it = digi_handle->find(specifier);
497  if (digis_it == digi_handle->end()) {
498  //std::cout << " not found :( ";
499  return false;
500  }
501  //std::cout << std::endl;
502 
503  // Loop over the digis for the detID and APV pair.
504  edm::DetSet<SiStripRawDigi>::const_iterator idigi = digis_it->data.begin();
505  uint32_t count = 0;
506  for (; idigi != digis_it->data.end(); ++idigi) {
507  count++;
508  hist->SetBinContent(count, static_cast<int>((*idigi).adc()));
509  } // end of loop over the digis
510  return true; // Success! (Probably.)
511 }
512 
515  uint32_t specifier,
516  const TFileDirectory& dir,
518 //const std::string & name)
519 {
520  // TODO: Remove the hard-coded numbers(!).
521  TH1F* hist;
522  if (type == NOISE_VALUES)
523  hist = dir.make<TH1F>("NoiseValues", ";Strip number;Noise / strip", 768, 0, 768);
524  else {
525  hist = nullptr;
526  return false;
527  }
528 
529  // TODO: May need to make this error checking independent when refactoring...
530  //std::cout << "| * digis for " << type << " and detID " << specifier;
531  std::vector<edm::DetSet<SiStripProcessedRawDigi> >::const_iterator digis_it = digi_handle->find(specifier);
532  if (digis_it == digi_handle->end()) {
533  //std::cout << " not found :( ";
534  return false;
535  }
536  //std::cout << std::endl;
537 
538  // Loop over the digis for the detID and APV pair.
539  edm::DetSet<SiStripProcessedRawDigi>::const_iterator idigi = digis_it->data.begin();
540  uint32_t count = 0;
541  for (; idigi != digis_it->data.end(); ++idigi) {
542  count++;
543  hist->SetBinContent(count, static_cast<float>((*idigi).adc()));
544  } // end of loop over the digis
545  return true; // Success! (Probably.)
546 }
547 
549  uint32_t detID,
550  //uint32_t channel,
551  const TFileDirectory& dir,
553 //const std::string & name)
554 {
555  // TODO: Remove the hard-coded numbers.
556  TH1S* hist;
557  if (type == ZERO_SUPPRESSED)
558  hist = dir.make<TH1S>("ZeroSuppressedDigi", ";Strip number;ADC counts / strip", 768, 0, 768);
559  else if (type == ZERO_SUPPRESSED_COMP)
560  hist = dir.make<TH1S>("ZeroSuppressedDigiComp", ";Strip number;ADC counts / strip", 768, 0, 768);
561  else {
562  hist = nullptr;
563  return false;
564  }
565 
566  // TODO: May need to make this error checking independent when refactoring...
567  std::vector<edm::DetSet<SiStripDigi> >::const_iterator digis_it = digi_handle->find(detID);
568  if (digis_it == digi_handle->end()) {
569  return false;
570  } else {
571  //cout << "--* ZS digis found for detID " << detID << endl;
572  }
573 
574  // Loop over the digis for the detID and APV pair.
575  edm::DetSet<SiStripDigi>::const_iterator idigi = digis_it->data.begin();
576  bool founddigi = false;
577  for (; idigi != digis_it->data.end(); ++idigi) {
578  // Check strip number is within the channel limits
579  //if ( static_cast<uint16_t>( (*idigi).strip()/256. ) == channel ) {
580  // hist->SetBinContent( ((*idigi).strip())%256 + 1,(*idigi).adc());
581  //}
582  hist->SetBinContent(static_cast<int>(((*idigi).strip())) + 1, static_cast<int>((*idigi).adc()));
583  if ((*idigi).adc() > 0)
584  founddigi = true;
585  //cout << "----* ZS digi found at " << static_cast<int>(((*idigi).strip()))
586  // << ", " << static_cast<int>((*idigi).adc()) << endl;
587  } // end of loop over the digis
588 
589  return founddigi;
590 }
591 
592 // Define this as a plug-in
edm::DetSetVector< SiStripRawDigi >
TFileDirectory::mkdir
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
Definition: TFileDirectory.cc:112
SiStripSpyDisplayModule::inputScopeModeRawDigiToken_
edm::EDGetTokenT< edm::DetSetVector< SiStripRawDigi > > inputScopeModeRawDigiToken_
Token for the scope-mode RawDigi collection input tag.
Definition: SiStripSpyDisplayModule.cc:145
SiStripSpyDisplayModule::detIDs_
std::vector< uint32_t > detIDs_
Vector of detIDs that are of interest (config-specified).
Definition: SiStripSpyDisplayModule.cc:123
SiStripSpyDisplayModule::inputNoisesToken_
edm::EDGetTokenT< edm::DetSetVector< SiStripProcessedRawDigi > > inputNoisesToken_
Token for the noises.
Definition: SiStripSpyDisplayModule.cc:153
SiStripSpyDisplayModule::inputPayloadRawDigiLabel_
edm::InputTag inputPayloadRawDigiLabel_
Label for the virgin raw RawDigi collection input tag.
Definition: SiStripSpyDisplayModule.cc:131
PEDESTAL_VALUES
Definition: SiStripSpyDisplayModule.cc:71
POST_COMMON_MODE
Definition: SiStripSpyDisplayModule.cc:74
SiStripSpyDisplayModule::inputPayloadRawDigiToken_
edm::EDGetTokenT< edm::DetSetVector< SiStripRawDigi > > inputPayloadRawDigiToken_
Token for the virgin raw RawDigi collection input tag.
Definition: SiStripSpyDisplayModule.cc:147
edm::InputTag::instance
std::string const & instance() const
Definition: InputTag.h:37
ESHandle.h
SiStripSpyDisplayModule::inputCompZeroSuppressedDigiLabel_
edm::InputTag inputCompZeroSuppressedDigiLabel_
Zero-suppressed digis to compare (from mainline)
Definition: SiStripSpyDisplayModule.cc:142
edm::Run
Definition: Run.h:45
edm::EDGetTokenT
Definition: EDGetToken.h:33
POST_PEDESTAL
Definition: SiStripSpyDisplayModule.cc:73
edm
HLT enums.
Definition: AlignableModifier.h:19
SiStripRawDigi.h
SiStripSpyDisplayModule::inputZeroSuppressedRawDigiToken_
edm::EDGetTokenT< edm::DetSetVector< SiStripRawDigi > > inputZeroSuppressedRawDigiToken_
Token for the zero-suppressed, zero-padded RawDigi module input tag.
Definition: SiStripSpyDisplayModule.cc:159
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89287
NOISE_VALUES
Definition: SiStripSpyDisplayModule.cc:72
SiStripSpyDisplayModule::MakeDigiHist_
Bool_t MakeDigiHist_(const edm::Handle< edm::DetSetVector< SiStripDigi > > &digi_handle, uint32_t detID, const TFileDirectory &dir, FEDSpyHistogramType type)
Definition: SiStripSpyDisplayModule.cc:548
SiStripSpyDisplayModule::inputReorderedPayloadRawDigiLabel_
edm::InputTag inputReorderedPayloadRawDigiLabel_
Label for the re-ordered RawDigi module input tag.
Definition: SiStripSpyDisplayModule.cc:132
EDAnalyzer.h
SiStripNoises.h
ZERO_SUPPRESSED_PADDED
Definition: SiStripSpyDisplayModule.cc:75
TFileDirectory
Definition: TFileDirectory.h:24
sistrip::SpyUtilities::getDetCabling
const SiStripDetCabling * getDetCabling(const edm::EventSetup &)
Updates the det cabling object from the DB.
Definition: SiStripSpyUtilities.cc:73
SCOPE_MODE
Definition: SiStripSpyDisplayModule.cc:67
edm::Handle
Definition: AssociativeIterator.h:50
edm::Service::isAvailable
bool isAvailable() const
Definition: Service.h:40
SiStripSpyUtilities.h
edm::EDAnalyzer
Definition: EDAnalyzer.h:28
SiStripSpyDisplayModule
EDAnalyzer for the online monitoring of the FED using STT spy channel data.
Definition: SiStripSpyDisplayModule.cc:96
edm::InputTag::label
std::string const & label() const
Definition: InputTag.h:36
MakerMacros.h
FEDSpyHistogramType
FEDSpyHistogramType
Definition: SiStripSpyDisplayModule.cc:66
SiStripDetCabling.h
SiStripSpyDisplayModule::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: SiStripSpyDisplayModule.cc:245
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
SiStripProcessedRawDigi.h
ZERO_SUPPRESSED_COMP
Definition: SiStripSpyDisplayModule.cc:78
PAYLOAD_RAW
Definition: SiStripSpyDisplayModule.cc:68
compare.hist
hist
Definition: compare.py:376
SiStripFEDBuffer.h
Service.h
sistrip::SpyUtilities
Definition: SiStripSpyUtilities.h:24
SiStripDigi.h
SiStripDetCabling
Definition: SiStripDetCabling.h:21
SiStripSpyDisplayModule::outputFolderName_
std::string outputFolderName_
Name for the folder in the TFileService file output.
Definition: SiStripSpyDisplayModule.cc:169
SiStripSpyDisplayModule::inputPostCMRawDigiLabel_
edm::InputTag inputPostCMRawDigiLabel_
Label for the post-common mode subtraction RawDigi module input tag.
Definition: SiStripSpyDisplayModule.cc:137
SiStripPedestalsRcd.h
submitPVResolutionJobs.count
count
Definition: submitPVResolutionJobs.py:352
SiStripSpyDisplayModule::inputPostCMRawDigiToken_
edm::EDGetTokenT< edm::DetSetVector< SiStripRawDigi > > inputPostCMRawDigiToken_
Token for the post-common mode subtraction RawDigi module input tag.
Definition: SiStripSpyDisplayModule.cc:157
ZERO_SUPPRESSED
Definition: SiStripSpyDisplayModule.cc:76
SiStripSpyDisplayModule::SiStripSpyDisplayModule
SiStripSpyDisplayModule(const edm::ParameterSet &)
Definition: SiStripSpyDisplayModule.cc:183
EDGetToken.h
SiStripSpyDisplayModule::inputCompVirginRawDigiLabel_
edm::InputTag inputCompVirginRawDigiLabel_
VR RawDigis to compare (from mainline)
Definition: SiStripSpyDisplayModule.cc:141
REORDERED_MODULE_RAW
Definition: SiStripSpyDisplayModule.cc:70
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
TFileService.h
TFileService::mkdir
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
Definition: TFileService.h:69
SiStripConstants.h
SiStripFedKey.h
edm::ParameterSet
Definition: ParameterSet.h:47
REORDERED_PAYLOAD_RAW
Definition: SiStripSpyDisplayModule.cc:69
Event.h
SiStripFEDBufferGenerator.h
SiStripSpyDisplayModule::inputReorderedPayloadRawDigiToken_
edm::EDGetTokenT< edm::DetSetVector< SiStripRawDigi > > inputReorderedPayloadRawDigiToken_
Token for the re-ordered RawDigi module input tag.
Definition: SiStripSpyDisplayModule.cc:149
SiStripSpyDisplayModule::inputPostPedestalRawDigiLabel_
edm::InputTag inputPostPedestalRawDigiLabel_
Label for the post-pedestal subtraction RawDigi module input tag.
Definition: SiStripSpyDisplayModule.cc:136
type
type
Definition: SiPixelVCal_PayloadInspector.cc:37
SiStripSpyDisplayModule::inputPedestalsToken_
edm::EDGetTokenT< edm::DetSetVector< SiStripRawDigi > > inputPedestalsToken_
Token for the pedestals.
Definition: SiStripSpyDisplayModule.cc:152
SiStripSpyDisplayModule::inputCompZeroSuppressedDigiToken_
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > inputCompZeroSuppressedDigiToken_
Zero-suppressed digis to compare (from mainline)
Definition: SiStripSpyDisplayModule.cc:165
edm::Service< TFileService >
iEvent
int iEvent
Definition: GenABIO.cc:224
SiStripFedKey::fedIndex
static uint32_t fedIndex(const uint16_t &fed_id, const uint16_t &fed_ch)
Definition: SiStripFedKey.cc:123
FEDRawDataCollection.h
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
VR_COMP
Definition: SiStripSpyDisplayModule.cc:77
edm::EventSetup
Definition: EventSetup.h:57
DetSetVector.h
l1tstage2_dqm_sourceclient-live_cfg.fedId
fedId
Definition: l1tstage2_dqm_sourceclient-live_cfg.py:88
SiStripSpyDisplayModule::inputNoisesLabel_
edm::InputTag inputNoisesLabel_
Label for the noises.
Definition: SiStripSpyDisplayModule.cc:135
SiStripSpyDisplayModule::endJob
void endJob() override
Definition: SiStripSpyDisplayModule.cc:242
SiStripSpyDisplayModule::inputZeroSuppressedDigiToken_
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > inputZeroSuppressedDigiToken_
Guess what? It's the input label for the zero-suppressed digi.
Definition: SiStripSpyDisplayModule.cc:161
std
Definition: JetResolutionObject.h:76
FedChannelConnection.h
Frameworkfwd.h
SiStripSpyDisplayModule::inputScopeModeRawDigiLabel_
edm::InputTag inputScopeModeRawDigiLabel_
Label for the scope-mode RawDigi collection input tag.
Definition: SiStripSpyDisplayModule.cc:130
SiStripSpyDisplayModule::MakeRawDigiHist_
Bool_t MakeRawDigiHist_(const edm::Handle< edm::DetSetVector< SiStripRawDigi > > &digi_handle, uint32_t specifier, const TFileDirectory &dir, FEDSpyHistogramType type)
Definition: SiStripSpyDisplayModule.cc:463
SiStripSpyDisplayModule::utility_
sistrip::SpyUtilities utility_
Definition: SiStripSpyDisplayModule.cc:126
Exception
Definition: hltDiff.cc:246
SiStripSpyDisplayModule::inputPedestalsLabel_
edm::InputTag inputPedestalsLabel_
Label for the pedestals.
Definition: SiStripSpyDisplayModule.cc:134
SiStripSpyDisplayModule::beginRun
void beginRun(const edm::Run &, const edm::EventSetup &) override
Definition: SiStripSpyDisplayModule.cc:222
SiStripSpyDisplayModule::inputReorderedModuleRawDigiLabel_
edm::InputTag inputReorderedModuleRawDigiLabel_
Label for the re-ordered RawDigi module input tag.
Definition: SiStripSpyDisplayModule.cc:133
SiStripPedestals.h
edm::DetSet::data
collection_type data
Definition: DetSet.h:80
SiStripSpyDisplayModule::inputReorderedModuleRawDigiToken_
edm::EDGetTokenT< edm::DetSetVector< SiStripRawDigi > > inputReorderedModuleRawDigiToken_
Token for the re-ordered RawDigi module input tag.
Definition: SiStripSpyDisplayModule.cc:151
ztail.d
d
Definition: ztail.py:151
SiStripSpyDisplayModule::MakeProcessedRawDigiHist_
Bool_t MakeProcessedRawDigiHist_(const edm::Handle< edm::DetSetVector< SiStripProcessedRawDigi > > &digi_handle, uint32_t specifier, const TFileDirectory &dir, FEDSpyHistogramType type)
Definition: SiStripSpyDisplayModule.cc:513
SiStripSpyDisplayModule::inputZeroSuppressedDigiLabel_
edm::InputTag inputZeroSuppressedDigiLabel_
Guess what? It's the input label for the zero-suppressed digi.
Definition: SiStripSpyDisplayModule.cc:140
SiStripNoisesRcd.h
SiStripSpyDisplayModule::beginJob
void beginJob() override
Definition: SiStripSpyDisplayModule.cc:232
SiStripDetCablingRcd.h
SiStripSpyDisplayModule::inputPostPedestalRawDigiToken_
edm::EDGetTokenT< edm::DetSetVector< SiStripRawDigi > > inputPostPedestalRawDigiToken_
Token for the post-pedestal subtraction RawDigi module input tag.
Definition: SiStripSpyDisplayModule.cc:155
ParameterSet.h
sistrip
sistrip classes
Definition: SiStripQualityHelpers.h:14
edm::Event
Definition: Event.h:73
SiStripSpyDisplayModule::~SiStripSpyDisplayModule
~SiStripSpyDisplayModule() override
Definition: SiStripSpyDisplayModule.cc:213
edm::InputTag
Definition: InputTag.h:15
SiStripDetCabling::getConnections
const std::vector< const FedChannelConnection * > & getConnections(uint32_t det_id) const
Definition: SiStripDetCabling.cc:161
SiStripSpyDisplayModule::inputZeroSuppressedRawDigiLabel_
edm::InputTag inputZeroSuppressedRawDigiLabel_
Label for the zero-suppressed, zero-padded RawDigi module input tag.
Definition: SiStripSpyDisplayModule.cc:139
DeadROC_duringRun.dir
dir
Definition: DeadROC_duringRun.py:23
SiStripSpyDisplayModule::inputCompVirginRawDigiToken_
edm::EDGetTokenT< edm::DetSetVector< SiStripRawDigi > > inputCompVirginRawDigiToken_
VR RawDigis to compare (from mainline)
Definition: SiStripSpyDisplayModule.cc:163
edm::DetSet::const_iterator
collection_type::const_iterator const_iterator
Definition: DetSet.h:31