CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
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 //
78 
79 //
80 // class declaration
81 //
82 
83 
96  public:
99 
100  private:
101  virtual void beginRun(const edm::Run&, const edm::EventSetup&) override;
102  virtual void beginJob() override ;
103  virtual void analyze(const edm::Event&, const edm::EventSetup&) override;
104  virtual void endJob() override ;
105 
106  Bool_t MakeRawDigiHist_(const edm::Handle< edm::DetSetVector<SiStripRawDigi> > & digi_handle,
107  uint32_t specifier,
108  const TFileDirectory & dir,
110 
112  uint32_t specifier,
113  const TFileDirectory & dir,
114  FEDSpyHistogramType type);
115 
116  Bool_t MakeDigiHist_( const edm::Handle< edm::DetSetVector<SiStripDigi> > & digi_handle,
117  uint32_t detID,
118  const TFileDirectory & dir,
119  FEDSpyHistogramType type);
120 
121  // ----------member data ---------------------------
122  std::vector<uint32_t> detIDs_;
123  //now from utility class
124  // edm::ESHandle<SiStripDetCabling> cabling_; //!< The Strip Tracker cabling object.
126 
127  // Data input labels
128  //===================
141 
154  //
155  // Output information
156  //====================
158 
159 
160 }; // end of SiStripSpyDisplayModule class
161 
162 
163 //
164 // static data member definitions
165 //
166 
167 using namespace sistrip;
168 using namespace std;
169 
170 //
171 // constructors and destructor
172 //
174  detIDs_( iConfig.getParameter< std::vector<uint32_t> >( "detIDs")),
175  inputScopeModeRawDigiLabel_( iConfig.getParameter<edm::InputTag>( "InputScopeModeRawDigiLabel" ) ),
176  inputPayloadRawDigiLabel_( iConfig.getParameter<edm::InputTag>( "InputPayloadRawDigiLabel" ) ),
177  inputReorderedPayloadRawDigiLabel_( iConfig.getParameter<edm::InputTag>( "InputReorderedPayloadRawDigiLabel" ) ),
178  inputReorderedModuleRawDigiLabel_( iConfig.getParameter<edm::InputTag>( "InputReorderedModuleRawDigiLabel" ) ),
179  inputPedestalsLabel_( iConfig.getParameter<edm::InputTag>( "InputPedestalsLabel" ) ),
180  inputNoisesLabel_( iConfig.getParameter<edm::InputTag>( "InputNoisesLabel" ) ),
181  inputPostPedestalRawDigiLabel_( iConfig.getParameter<edm::InputTag>( "InputPostPedestalRawDigiLabel" ) ),
182  inputPostCMRawDigiLabel_( iConfig.getParameter<edm::InputTag>( "InputPostCMRawDigiLabel" ) ),
183  inputZeroSuppressedRawDigiLabel_( iConfig.getParameter<edm::InputTag>( "InputZeroSuppressedRawDigiLabel" ) ),
184  inputZeroSuppressedDigiLabel_( iConfig.getParameter<edm::InputTag>( "InputZeroSuppressedDigiLabel" ) ),
185  inputCompVirginRawDigiLabel_( iConfig.getParameter<edm::InputTag>( "InputCompVirginRawDigiLabel" ) ),
186  inputCompZeroSuppressedDigiLabel_( iConfig.getParameter<edm::InputTag>( "InputCompZeroSuppressedDigiLabel" ) ),
187  outputFolderName_( iConfig.getParameter<std::string>( "OutputFolderName" ) )
188 {
189  //now do what ever initialization is needed
190  inputScopeModeRawDigiToken_ = consumes<edm::DetSetVector<SiStripDigi> >(inputScopeModeRawDigiLabel_ );
191  inputPayloadRawDigiToken_ = consumes<edm::DetSetVector<SiStripDigi> >(inputPayloadRawDigiLabel_ );
192  inputReorderedPayloadRawDigiToken_ = consumes<edm::DetSetVector<SiStripDigi> >(inputReorderedPayloadRawDigiLabel_ );
193  inputReorderedModuleRawDigiToken_ = consumes<edm::DetSetVector<SiStripDigi> >(inputReorderedModuleRawDigiLabel_ );
194  inputPedestalsToken_ = consumes<edm::DetSetVector<SiStripDigi> >(inputPedestalsLabel_ );
195  inputNoisesToken_ = consumes<edm::DetSetVector<SiStripDigi> >(inputNoisesLabel_ );
196  inputPostPedestalRawDigiToken_ = consumes<edm::DetSetVector<SiStripDigi> >(inputPostPedestalRawDigiLabel_ );
197  inputPostCMRawDigiToken_ = consumes<edm::DetSetVector<SiStripDigi> >(inputPostCMRawDigiLabel_ );
198  inputZeroSuppressedRawDigiToken_ = consumes<edm::DetSetVector<SiStripDigi> >(inputZeroSuppressedRawDigiLabel_ );
199  inputZeroSuppressedDigiToken_ = consumes<edm::DetSetVector<SiStripDigi> >(inputZeroSuppressedDigiLabel_ );
200  inputCompVirginRawDigiToken_ = consumes<edm::DetSetVector<SiStripDigi> >(inputCompVirginRawDigiLabel_ );
201  inputCompZeroSuppressedDigiToken_ = consumes<edm::DetSetVector<SiStripDigi> >(inputCompZeroSuppressedDigiLabel_ );
202 
203 }
204 
205 
207 {
208  // do anything here that needs to be done at desctruction time
209  // (e.g. close files, deallocate resources etc.)
210 }
211 
212 //
213 // member functions
214 //
215 
216 void
218 {
219  // Retrieve FED cabling object
220  //iSetup.get<SiStripDetCablingRcd>().get( cabling_ );
221  //std::stringstream ss;
222  //cabling_->print(ss);
223  //std::cout << ss.str() << std::endl;
224 
225 } // end of beginRun method.
226 
227 // ------------ method called once each job just before starting event loop ------------
228 void
230 {
231  // register to the TFileService
233  // Check that the TFileService has been configured
234  if ( !fs.isAvailable() ) {
235  throw cms::Exception("Configuration") << "TFileService not available: did you configure it ?";
236  }
237 } // end of beginJob method.
238 
239 // ------------ method called once each job just after ending the event loop ------------
241 
242 // ------------ method called to for each event ------------
243 void
245 {
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_.size()==0) {
267  //get the detIds of the modules in the zero-suppressed comparison
270  // iEvent.getByLabel( inputCompZeroSuppressedDigiLabel_, czs_digis );
271  iEvent.getByToken( inputCompZeroSuppressedDigiToken_, czs_digis );
272  std::vector< edm::DetSet<SiStripDigi> >::const_iterator digis_it = czs_digis->begin();
273  for (; digis_it!=czs_digis->end(); ++digis_it) {
274  detIDs_.push_back(digis_it->detId());
275  }
276  }
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 
289  // Loop over detIDs as obtained from the SpyChannelMonitor config file.
290  for (std::vector<uint32_t>::iterator d = detIDs_.begin(); d!=detIDs_.end(); ++d) {
291  // TODO: Need some error checking here, probably...
292  const std::vector<const FedChannelConnection *> & conns = lCabling->getConnections( *d );
293  //cout << "________________________________________________" << endl;
294  //cout << "FED channels found in detId " << *d << " is " << conns.size() << endl;
295  if (!(conns.size())) {
296  // TODO: Properly DEBUG/warning this...
297  //cout << "Skipping detID " << uint32_t(*d) << endl;
298  continue;
299  }
300 
301  // Create a histogram directory for each specified and available detID
302  stringstream sss;
303  sss << "detID_" << *d;
304  TFileDirectory detID_dir = evdir.mkdir( sss.str() );
305 
306  // Loop over the channels found with the detID and add directories.
307  for (uint32_t ch = 0; ch<conns.size(); ch++) {
308 
309  // Name of channel histogram directory
310  stringstream ssss; 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
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  // Payload Unordered Raw (UR)
337  //============================
339  uint32_t fedindex = SiStripFedKey::fedIndex(conns[ch]->fedId(), conns[ch]->fedCh());
340  //cout << "Attempting to find payload mode raw digis" << endl;
342  // iEvent.getByLabel( inputPayloadRawDigiLabel_, ur_rawdigis );
343  iEvent.getByToken( inputPayloadRawDigiToken_, ur_rawdigis );
344  if (!(MakeRawDigiHist_(ur_rawdigis, fedindex, chan_dir, PAYLOAD_RAW))) { ; }
345  }
346  // Payload Reordered Raw
347  //=======================
349  uint32_t fedkey = SiStripFedKey::fedIndex(conns[ch]->fedId(), conns[ch]->fedCh());
351  // iEvent.getByLabel( inputReorderedPayloadRawDigiLabel_, rrp_rawdigis );
352  iEvent.getByToken( inputReorderedPayloadRawDigiToken_, rrp_rawdigis );
353  if (!(MakeRawDigiHist_(rrp_rawdigis, fedkey, chan_dir, REORDERED_PAYLOAD_RAW))) { ; }
354  }
355  } // end of loop over channels
356  //
357  // Module Reordered Raw (RR)
358  //====================
361  // iEvent.getByLabel( inputReorderedModuleRawDigiLabel_, rr_rawdigis );
362  iEvent.getByToken( inputReorderedModuleRawDigiToken_, rr_rawdigis );
363  //cout << "Making Reordered module histogram for detID " << *d << endl;
364  if (!(MakeRawDigiHist_(rr_rawdigis, *d, detID_dir, REORDERED_MODULE_RAW))) { ; }
365  } // end of ReorderedModuleRaw check
366 
367  //
368  // Pedestal values
369  //========================
370  if (!((inputPedestalsLabel_.label()=="") && (inputPedestalsLabel_.instance()==""))) {
372  // iEvent.getByLabel( inputPedestalsLabel_, pd_rawdigis );
373  iEvent.getByToken( inputPedestalsToken_, pd_rawdigis );
374  //cout << "Making pedestal values module histogram for detID " << *d << endl;
375  if (!(MakeRawDigiHist_(pd_rawdigis, *d, detID_dir, PEDESTAL_VALUES))) { ; }
376  }
377  //
378  // Noise values
379  //========================
380  if (!((inputNoisesLabel_.label()=="") && (inputNoisesLabel_.instance()==""))) {
382  // iEvent.getByLabel( inputNoisesLabel_, pd_rawdigis );
383  iEvent.getByToken( inputNoisesToken_, pd_rawdigis );
384  //cout << "Making noise values module histogram for detID " << *d << endl;
385  if (!(MakeProcessedRawDigiHist_(pd_rawdigis, *d, detID_dir, NOISE_VALUES))) { ; }
386  }
387  //
388  // Post-Pedestal Raw (PP)
389  //========================
392  // iEvent.getByLabel( inputPostPedestalRawDigiLabel_, pp_rawdigis );
393  iEvent.getByToken( inputPostPedestalRawDigiToken_, pp_rawdigis );
394  //cout << "Making post-pedestal module histogram for detID " << *d << endl;
395  if (!(MakeRawDigiHist_(pp_rawdigis, *d, detID_dir, POST_PEDESTAL))) { ; }
396  }
397  //
398  // Post-Common Mode Subtraction Raw (PC)
399  //=======================================
402  // iEvent.getByLabel( inputPostCMRawDigiLabel_, pc_rawdigis );
403  iEvent.getByToken( inputPostCMRawDigiToken_, pc_rawdigis );
404  //cout << "Making post-CM module histogram for detID " << *d << endl;
405  if (!(MakeRawDigiHist_(pc_rawdigis, *d, detID_dir, POST_COMMON_MODE))) { ; }
406  }
407 
408  //
409  // Zero-Suppressed Digis
410  //=======================
411  //bool founddigispy = false, founddigimain = false;
413  //cout << "Making ZeroSuppressed histogram!" << endl;
415  // iEvent.getByLabel( inputZeroSuppressedDigiLabel_, zs_digis );
416  iEvent.getByToken( inputZeroSuppressedDigiToken_, zs_digis );
417  //founddigispy =
418  MakeDigiHist_(zs_digis, *d, detID_dir, ZERO_SUPPRESSED);
419  }
420  //comparison to mainline data
422  //cout << "Making Mainline VirginRaw histogram!" << endl;
424  // iEvent.getByLabel( inputCompVirginRawDigiLabel_, cvr_digis );
425  iEvent.getByToken( inputCompVirginRawDigiToken_, cvr_digis );
426  //founddigimain =
427  MakeRawDigiHist_(cvr_digis, *d, detID_dir, VR_COMP);
428  }
430  //cout << "Making ZeroSuppressed histogram!" << endl;
432  // iEvent.getByLabel( inputCompZeroSuppressedDigiLabel_, czs_digis );
433  iEvent.getByToken( inputCompZeroSuppressedDigiToken_, czs_digis );
434  //founddigimain =
435  MakeDigiHist_(czs_digis, *d, detID_dir, ZERO_SUPPRESSED_COMP);
436  }
437  //if (founddigimain && founddigispy) cout << "Found digis for both in detid=" << *d << endl;
438 
439  } // end of loop over detIDs specified in the config.
440 
441 } // end of Analyze method.
442 
444  const edm::Handle< edm::DetSetVector< SiStripRawDigi > > & digi_handle,
445  uint32_t specifier,
446  const TFileDirectory & dir,
448  //const std::string & name)
449 {
450  // TODO: Remove the hard-coded numbers(!).
451  TH1S * hist;
452  if (type==SCOPE_MODE) hist = dir.make<TH1S>("ScopeMode", ";Sample number;ADC counts / strip", 298, 0, 298);
453  else if (type==PAYLOAD_RAW) hist = dir.make<TH1S>("PayloadRaw", ";Sample number;ADC counts / strip", 256, 0, 256);
454  else if (type==REORDERED_PAYLOAD_RAW) hist = dir.make<TH1S>("ReorderedPayloadRaw", ";Sample number;ADC counts / strip", 256, 0, 256);
455  else if (type==REORDERED_MODULE_RAW) hist = dir.make<TH1S>("ReorderedModuleRaw", ";Sample number;ADC counts / strip", 768, 0, 768);
456  else if (type==PEDESTAL_VALUES) hist = dir.make<TH1S>("PedestalValues", ";Strip number;Pedestal / strip", 768, 0, 768);
457  else if (type==POST_PEDESTAL) hist = dir.make<TH1S>("PostPedestal", ";Strip number;ADC counts / strip", 768, 0, 768);
458  else if (type==POST_COMMON_MODE) hist = dir.make<TH1S>("PostCommonMode", ";Strip number;ADC counts / strip", 768, 0, 768);
459  else if (type==ZERO_SUPPRESSED_PADDED) hist = dir.make<TH1S>("ZeroSuppressedRaw" , ";Strip number;ADC counts / strip", 768, 0, 768);
460  else if (type==VR_COMP) hist = dir.make<TH1S>("VirginRawCom" , ";Strip number;ADC counts / strip", 768, 0, 768);
461  else {hist = 0; return false;}
462 
463  // TODO: May need to make this error checking independent when refactoring...
464  //std::cout << "| * digis for " << type << " and detID " << specifier;
465  std::vector< edm::DetSet<SiStripRawDigi> >::const_iterator digis_it = digi_handle->find( specifier );
466  if (digis_it == digi_handle->end()) {
467  //std::cout << " not found :( ";
468  return false;
469  }
470  //std::cout << std::endl;
471 
472  // Loop over the digis for the detID and APV pair.
473  edm::DetSet<SiStripRawDigi>::const_iterator idigi = digis_it->data.begin();
474  uint32_t count = 0;
475  for ( ; idigi != digis_it->data.end(); ++idigi ) {
476  count++;
477  hist->SetBinContent(count,static_cast<int>((*idigi).adc()));
478  } // end of loop over the digis
479  return true; // Success! (Probably.)
480 }
481 
484  uint32_t specifier,
485  const TFileDirectory & dir,
487  //const std::string & name)
488 {
489  // TODO: Remove the hard-coded numbers(!).
490  TH1F * hist;
491  if (type==NOISE_VALUES) hist = dir.make<TH1F>("NoiseValues",";Strip number;Noise / strip",768, 0, 768);
492  else {
493  hist = 0;
494  return false;
495  }
496 
497  // TODO: May need to make this error checking independent when refactoring...
498  //std::cout << "| * digis for " << type << " and detID " << specifier;
499  std::vector< edm::DetSet<SiStripProcessedRawDigi> >::const_iterator digis_it = digi_handle->find( specifier );
500  if (digis_it == digi_handle->end()) {
501  //std::cout << " not found :( ";
502  return false;
503  }
504  //std::cout << std::endl;
505 
506  // Loop over the digis for the detID and APV pair.
507  edm::DetSet<SiStripProcessedRawDigi>::const_iterator idigi = digis_it->data.begin();
508  uint32_t count = 0;
509  for ( ; idigi != digis_it->data.end(); ++idigi ) {
510  count++;
511  hist->SetBinContent(count,static_cast<float>((*idigi).adc()));
512  } // end of loop over the digis
513  return true; // Success! (Probably.)
514 }
515 
517  const edm::Handle< edm::DetSetVector< SiStripDigi > > & digi_handle,
518  uint32_t detID,
519  //uint32_t channel,
520  const TFileDirectory & dir,
522  //const std::string & name)
523 {
524  // TODO: Remove the hard-coded numbers.
525  TH1S * hist;
526  if (type==ZERO_SUPPRESSED) hist = dir.make<TH1S>("ZeroSuppressedDigi", ";Strip number;ADC counts / strip", 768, 0, 768);
527  else if (type==ZERO_SUPPRESSED_COMP) hist = dir.make<TH1S>("ZeroSuppressedDigiComp", ";Strip number;ADC counts / strip", 768, 0, 768);
528  else {hist = 0; return false;}
529 
530  // TODO: May need to make this error checking independent when refactoring...
531  std::vector< edm::DetSet<SiStripDigi> >::const_iterator digis_it = digi_handle->find( detID );
532  if (digis_it == digi_handle->end()) {
533  return false;
534  }
535  else {
536  //cout << "--* ZS digis found for detID " << detID << endl;
537  }
538 
539  // Loop over the digis for the detID and APV pair.
540  edm::DetSet<SiStripDigi>::const_iterator idigi = digis_it->data.begin();
541  bool founddigi = false;
542  for ( ; idigi != digis_it->data.end(); ++idigi ) {
543  // Check strip number is within the channel limits
544  //if ( static_cast<uint16_t>( (*idigi).strip()/256. ) == channel ) {
545  // hist->SetBinContent( ((*idigi).strip())%256 + 1,(*idigi).adc());
546  //}
547  hist->SetBinContent( static_cast<int>(((*idigi).strip())) + 1, static_cast<int>((*idigi).adc()) );
548  if ( (*idigi).adc() > 0 ) founddigi = true;
549  //cout << "----* ZS digi found at " << static_cast<int>(((*idigi).strip()))
550  // << ", " << static_cast<int>((*idigi).adc()) << endl;
551  } // end of loop over the digis
552 
553  return founddigi;
554 }
555 
556 // Define this as a plug-in
RunNumber_t run() const
Definition: EventID.h:42
edm::InputTag inputZeroSuppressedRawDigiLabel_
Label for the zero-suppressed, zero-padded RawDigi module input tag.
type
Definition: HCALResponse.h:21
EventNumber_t event() const
Definition: EventID.h:44
edm::InputTag inputCompZeroSuppressedDigiLabel_
Zero-suppressed digis to compare (from mainline)
edm::InputTag inputPayloadRawDigiLabel_
Label for the virgin raw RawDigi collection input tag.
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > inputCompVirginRawDigiToken_
VR RawDigis to compare (from mainline)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:434
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
Bool_t MakeDigiHist_(const edm::Handle< edm::DetSetVector< SiStripDigi > > &digi_handle, uint32_t detID, const TFileDirectory &dir, FEDSpyHistogramType type)
const SiStripDetCabling * getDetCabling(const edm::EventSetup &)
Updates the det cabling object from the DB.
edm::InputTag inputReorderedPayloadRawDigiLabel_
Label for the re-ordered RawDigi module input tag.
static uint32_t fedIndex(const uint16_t &fed_id, const uint16_t &fed_ch)
edm::InputTag inputPostCMRawDigiLabel_
Label for the post-common mode subtraction RawDigi module input tag.
std::string outputFolderName_
Name for the folder in the TFileService file output.
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > inputNoisesToken_
Token for the noises.
int iEvent
Definition: GenABIO.cc:243
virtual void analyze(const edm::Event &, const edm::EventSetup &) override
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > inputPedestalsToken_
Token for the pedestals.
SiStripSpyDisplayModule(const edm::ParameterSet &)
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > inputPostCMRawDigiToken_
Token for the post-common mode subtraction RawDigi module input tag.
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > inputZeroSuppressedRawDigiToken_
Token for the zero-suppressed, zero-padded RawDigi module input tag.
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > inputPayloadRawDigiToken_
Token for the virgin raw RawDigi collection input tag.
bool isAvailable() const
Definition: Service.h:46
edm::InputTag inputPostPedestalRawDigiLabel_
Label for the post-pedestal subtraction RawDigi module input tag.
edm::InputTag inputCompVirginRawDigiLabel_
VR RawDigis to compare (from mainline)
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > inputCompZeroSuppressedDigiToken_
Zero-suppressed digis to compare (from mainline)
T * make(const Args &...args) const
make new ROOT object
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > inputPostPedestalRawDigiToken_
Token for the post-pedestal subtraction RawDigi module input tag.
virtual void endJob() override
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > inputZeroSuppressedDigiToken_
Guess what? It&#39;s the input label for the zero-suppressed digi.
edm::InputTag inputScopeModeRawDigiLabel_
Label for the scope-mode RawDigi collection input tag.
edm::InputTag inputNoisesLabel_
Label for the noises.
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > inputScopeModeRawDigiToken_
Token for the scope-mode RawDigi collection input tag.
virtual void beginRun(const edm::Run &, const edm::EventSetup &) override
std::string const & label() const
Definition: InputTag.h:42
edm::EventID id() const
Definition: EventBase.h:56
collection_type data
Definition: DetSet.h:78
EDAnalyzer for the online monitoring of the FED using STT spy channel data.
edm::InputTag inputZeroSuppressedDigiLabel_
Guess what? It&#39;s the input label for the zero-suppressed digi.
sistrip::SpyUtilities utility_
Bool_t MakeRawDigiHist_(const edm::Handle< edm::DetSetVector< SiStripRawDigi > > &digi_handle, uint32_t specifier, const TFileDirectory &dir, FEDSpyHistogramType type)
edm::InputTag inputPedestalsLabel_
Label for the pedestals.
edm::InputTag inputReorderedModuleRawDigiLabel_
Label for the re-ordered RawDigi module input tag.
dbl *** dir
Definition: mlp_gen.cc:35
collection_type::const_iterator const_iterator
Definition: DetSet.h:33
Bool_t MakeProcessedRawDigiHist_(const edm::Handle< edm::DetSetVector< SiStripProcessedRawDigi > > &digi_handle, uint32_t specifier, const TFileDirectory &dir, FEDSpyHistogramType type)
virtual void beginJob() override
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > inputReorderedModuleRawDigiToken_
Token for the re-ordered RawDigi module input tag.
std::string const & instance() const
Definition: InputTag.h:43
Definition: Run.h:41
edm::EDGetTokenT< edm::DetSetVector< SiStripDigi > > inputReorderedPayloadRawDigiToken_
Token for the re-ordered RawDigi module input tag.
std::vector< uint32_t > detIDs_
Vector of detIDs that are of interest (config-specified).