CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
L1TdeCSCTPG Class Reference

#include <L1TdeCSCTPG.h>

Inheritance diagram for L1TdeCSCTPG:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Public Member Functions

 L1TdeCSCTPG (const edm::ParameterSet &ps)
 
 ~L1TdeCSCTPG () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Protected Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void bookHistograms (DQMStore::IBooker &, const edm::Run &, const edm::EventSetup &) override
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 

Private Member Functions

bool areSameCLCTs (const CSCCLCTDigi &lhs, const CSCCLCTDigi &rhs) const
 
bool areSameLCTs (const CSCCorrelatedLCTDigi &lhs, const CSCCorrelatedLCTDigi &rhs) const
 

Private Attributes

MonitorElementalctDataSummary_denom_
 
MonitorElementalctDataSummary_num_
 
MonitorElementalctEmulSummary_denom_
 
MonitorElementalctEmulSummary_num_
 
std::vector< double > alctMaxBin_
 
std::vector< double > alctMinBin_
 
std::vector< unsigned > alctNBin_
 
std::vector< std::string > alctVars_
 
std::map< uint32_t, std::map< std::string, MonitorElement * > > chamberHistos
 
std::vector< std::string > chambers_
 
MonitorElementclctDataSummary_denom_
 
MonitorElementclctDataSummary_num_
 
MonitorElementclctEmulSummary_denom_
 
MonitorElementclctEmulSummary_num_
 
std::vector< double > clctMaxBin_
 
std::vector< double > clctMinBin_
 
std::vector< unsigned > clctNBin_
 
std::vector< std::string > clctVars_
 
edm::EDGetTokenT< CSCALCTDigiCollectiondataALCT_token_
 
edm::EDGetTokenT< CSCCLCTDigiCollectiondataCLCT_token_
 
std::vector< std::string > dataEmul_
 
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollectiondataLCT_token_
 
edm::EDGetTokenT< CSCALCTDigiCollectionemulALCT_token_
 
edm::EDGetTokenT< CSCCLCTDigiCollectionemulCLCT_token_
 
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollectionemulLCT_token_
 
edm::EDGetTokenT< CSCCLCTPreTriggerDigiCollectionemulpreCLCT_token_
 
bool isRun3_
 
MonitorElementlctDataSummary_denom_
 
MonitorElementlctDataSummary_num_
 
MonitorElementlctEmulSummary_denom_
 
MonitorElementlctEmulSummary_num_
 
std::vector< double > lctMaxBin_
 
std::vector< double > lctMinBin_
 
std::vector< unsigned > lctNBin_
 
std::vector< std::string > lctVars_
 
bool make1DPlots_
 
std::string monitorDir_
 
bool preTriggerAnalysis_
 
bool useB904_
 
bool useB904ME11_
 
bool useB904ME21_
 
bool useB904ME234s2_
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
using CacheTypes = CacheContexts< T... >
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T... >
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr< DQMEDAnalyzerGlobalCacheinitializeGlobalCache (edm::ParameterSet const &)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Definition at line 16 of file L1TdeCSCTPG.h.

Constructor & Destructor Documentation

◆ L1TdeCSCTPG()

L1TdeCSCTPG::L1TdeCSCTPG ( const edm::ParameterSet ps)

Definition at line 6 of file L1TdeCSCTPG.cc.

References or, useB904_, useB904ME11_, useB904ME21_, and useB904ME234s2_.

7  : dataALCT_token_(consumes<CSCALCTDigiCollection>(ps.getParameter<edm::InputTag>("dataALCT"))),
8  emulALCT_token_(consumes<CSCALCTDigiCollection>(ps.getParameter<edm::InputTag>("emulALCT"))),
9  dataCLCT_token_(consumes<CSCCLCTDigiCollection>(ps.getParameter<edm::InputTag>("dataCLCT"))),
10  emulCLCT_token_(consumes<CSCCLCTDigiCollection>(ps.getParameter<edm::InputTag>("emulCLCT"))),
11  emulpreCLCT_token_(consumes<CSCCLCTPreTriggerDigiCollection>(ps.getParameter<edm::InputTag>("emulpreCLCT"))),
12  dataLCT_token_(consumes<CSCCorrelatedLCTDigiCollection>(ps.getParameter<edm::InputTag>("dataLCT"))),
13  emulLCT_token_(consumes<CSCCorrelatedLCTDigiCollection>(ps.getParameter<edm::InputTag>("emulLCT"))),
14  monitorDir_(ps.getParameter<std::string>("monitorDir")),
15 
16  chambers_(ps.getParameter<std::vector<std::string>>("chambers")),
17  dataEmul_(ps.getParameter<std::vector<std::string>>("dataEmul")),
18 
19  // variables
20  alctVars_(ps.getParameter<std::vector<std::string>>("alctVars")),
21  clctVars_(ps.getParameter<std::vector<std::string>>("clctVars")),
22  lctVars_(ps.getParameter<std::vector<std::string>>("lctVars")),
23 
24  // binning
25  alctNBin_(ps.getParameter<std::vector<unsigned>>("alctNBin")),
26  clctNBin_(ps.getParameter<std::vector<unsigned>>("clctNBin")),
27  lctNBin_(ps.getParameter<std::vector<unsigned>>("lctNBin")),
28  alctMinBin_(ps.getParameter<std::vector<double>>("alctMinBin")),
29  clctMinBin_(ps.getParameter<std::vector<double>>("clctMinBin")),
30  lctMinBin_(ps.getParameter<std::vector<double>>("lctMinBin")),
31  alctMaxBin_(ps.getParameter<std::vector<double>>("alctMaxBin")),
32  clctMaxBin_(ps.getParameter<std::vector<double>>("clctMaxBin")),
33  lctMaxBin_(ps.getParameter<std::vector<double>>("lctMaxBin")),
34  // options for test stands at B904
35  useB904ME11_(ps.getParameter<bool>("useB904ME11")),
36  useB904ME21_(ps.getParameter<bool>("useB904ME21")),
37  useB904ME234s2_(ps.getParameter<bool>("useB904ME234s2")),
38  isRun3_(ps.getParameter<bool>("isRun3")),
39  make1DPlots_(ps.getParameter<bool>("make1DPlots")),
40  preTriggerAnalysis_(ps.getParameter<bool>("preTriggerAnalysis")) {
42 }
std::vector< double > lctMaxBin_
Definition: L1TdeCSCTPG.h:55
edm::EDGetTokenT< CSCALCTDigiCollection > dataALCT_token_
Definition: L1TdeCSCTPG.h:30
T getParameter(std::string const &) const
Definition: ParameterSet.h:307
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollection > dataLCT_token_
Definition: L1TdeCSCTPG.h:35
bool useB904ME234s2_
Definition: L1TdeCSCTPG.h:65
std::vector< std::string > alctVars_
Definition: L1TdeCSCTPG.h:43
std::vector< unsigned > alctNBin_
Definition: L1TdeCSCTPG.h:47
bool useB904ME11_
Definition: L1TdeCSCTPG.h:63
std::vector< double > alctMinBin_
Definition: L1TdeCSCTPG.h:50
bool isRun3_
Definition: L1TdeCSCTPG.h:67
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollection > emulLCT_token_
Definition: L1TdeCSCTPG.h:36
bool useB904_
Definition: L1TdeCSCTPG.h:62
bool preTriggerAnalysis_
Definition: L1TdeCSCTPG.h:76
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
bool useB904ME21_
Definition: L1TdeCSCTPG.h:64
std::vector< unsigned > lctNBin_
Definition: L1TdeCSCTPG.h:49
std::vector< double > alctMaxBin_
Definition: L1TdeCSCTPG.h:53
edm::EDGetTokenT< CSCALCTDigiCollection > emulALCT_token_
Definition: L1TdeCSCTPG.h:31
std::vector< std::string > chambers_
Definition: L1TdeCSCTPG.h:40
std::vector< unsigned > clctNBin_
Definition: L1TdeCSCTPG.h:48
std::vector< double > clctMaxBin_
Definition: L1TdeCSCTPG.h:54
std::vector< std::string > dataEmul_
Definition: L1TdeCSCTPG.h:41
std::string monitorDir_
Definition: L1TdeCSCTPG.h:37
edm::EDGetTokenT< CSCCLCTDigiCollection > dataCLCT_token_
Definition: L1TdeCSCTPG.h:32
std::vector< std::string > lctVars_
Definition: L1TdeCSCTPG.h:45
std::vector< double > clctMinBin_
Definition: L1TdeCSCTPG.h:51
std::vector< double > lctMinBin_
Definition: L1TdeCSCTPG.h:52
edm::EDGetTokenT< CSCCLCTPreTriggerDigiCollection > emulpreCLCT_token_
Definition: L1TdeCSCTPG.h:34
bool make1DPlots_
Definition: L1TdeCSCTPG.h:73
std::vector< std::string > clctVars_
Definition: L1TdeCSCTPG.h:44
edm::EDGetTokenT< CSCCLCTDigiCollection > emulCLCT_token_
Definition: L1TdeCSCTPG.h:33

◆ ~L1TdeCSCTPG()

L1TdeCSCTPG::~L1TdeCSCTPG ( )
override

Definition at line 44 of file L1TdeCSCTPG.cc.

44 {}

Member Function Documentation

◆ analyze()

void L1TdeCSCTPG::analyze ( const edm::Event e,
const edm::EventSetup c 
)
overrideprotectedvirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 198 of file L1TdeCSCTPG.cc.

References alctDataSummary_denom_, alctDataSummary_num_, alctEmulSummary_denom_, alctEmulSummary_num_, areSameCLCTs(), areSameLCTs(), MuonDigiCollection< IndexType, DigiType >::begin(), relativeConstraints::cham, relativeConstraints::chamber, CSCDetId::chamber(), CSCTriggerNumbering::chamberFromTriggerLabels(), chamberHistos, clctDataSummary_denom_, clctDataSummary_num_, clctEmulSummary_denom_, clctEmulSummary_num_, dataALCT_token_, dataCLCT_token_, dataLCT_token_, MillePedeFileConverter_cfg::e, emulALCT_token_, emulCLCT_token_, emulLCT_token_, emulpreCLCT_token_, MuonDigiCollection< IndexType, DigiType >::end(), dqm::impl::MonitorElement::Fill(), MuonDigiCollection< IndexType, DigiType >::get(), trackerHitRTTI::isMatched(), CSCDetId::isME11(), CSCDetId::isME21(), CSCDetId::isME22(), CSCDetId::isME32(), CSCDetId::isME42(), isRun3_, lctDataSummary_denom_, lctDataSummary_num_, lctEmulSummary_denom_, lctEmulSummary_num_, make1DPlots_, CSCDetId::maxEndcapId(), CSCDetId::maxStationId(), CSCTriggerNumbering::maxTriggerCscId(), CSCTriggerNumbering::maxTriggerSectorId(), CSCTriggerNumbering::maxTriggerSubSectorId(), CSCDetId::minEndcapId(), CSCDetId::minStationId(), CSCTriggerNumbering::minTriggerCscId(), CSCTriggerNumbering::minTriggerSectorId(), CSCTriggerNumbering::minTriggerSubSectorId(), or, preTriggerAnalysis_, FastTimerService_cff::range, relativeConstraints::ring, CSCTriggerNumbering::ringFromTriggerLabels(), edm_modernize_messagelogger::stat, useB904_, useB904ME11_, useB904ME21_, and useB904ME234s2_.

198  {
199  // handles
207 
208  e.getByToken(dataALCT_token_, dataALCTs);
209  e.getByToken(emulALCT_token_, emulALCTs);
210  e.getByToken(dataCLCT_token_, dataCLCTs);
211  e.getByToken(emulCLCT_token_, emulCLCTs);
212  e.getByToken(dataLCT_token_, dataLCTs);
213  e.getByToken(emulLCT_token_, emulLCTs);
214  // only do pre-trigger analysis when B904 setup is used
215  if (useB904_)
216  e.getByToken(emulpreCLCT_token_, emulpreCLCTs);
217 
218  // 1D plots for experts
220  for (auto it = dataALCTs->begin(); it != dataALCTs->end(); it++) {
221  auto range = dataALCTs->get((*it).first);
222  const CSCDetId& detid((*it).first);
223  int type = ((*it).first).iChamberType() - 2;
224  // ignore non-ME1/1 chambers when using B904 test-stand data
225  if (useB904ME11_ and !(detid.isME11()))
226  continue;
227  if (useB904ME21_ and !(detid.isME21()))
228  continue;
229  if (useB904ME234s2_ and !(detid.isME22() or detid.isME32() or detid.isME42()))
230  continue;
231  // to prevent crashes because you are booking histos for single b904 chamber
233  type = 0;
234  for (auto alct = range.first; alct != range.second; alct++) {
235  if (alct->isValid()) {
236  chamberHistos[type]["alct_quality_data"]->Fill(alct->getQuality());
237  chamberHistos[type]["alct_wiregroup_data"]->Fill(alct->getKeyWG());
238  chamberHistos[type]["alct_bx_data"]->Fill(alct->getBX());
239  }
240  }
241  }
242 
243  for (auto it = emulALCTs->begin(); it != emulALCTs->end(); it++) {
244  auto range = emulALCTs->get((*it).first);
245  const CSCDetId& detid((*it).first);
246  int type = ((*it).first).iChamberType() - 2;
247  // ignore non-ME1/1 chambers when using B904 test-stand data
248  if (useB904ME11_ and !(detid.isME11()))
249  continue;
250  if (useB904ME21_ and !(detid.isME21()))
251  continue;
252  if (useB904ME234s2_ and !(detid.isME22() or detid.isME32() or detid.isME42()))
253  continue;
254  // to prevent crashes because you are booking histos for single b904 chamber
256  type = 0;
257  for (auto alct = range.first; alct != range.second; alct++) {
258  if (alct->isValid()) {
259  chamberHistos[type]["alct_quality_emul"]->Fill(alct->getQuality());
260  chamberHistos[type]["alct_wiregroup_emul"]->Fill(alct->getKeyWG());
261  chamberHistos[type]["alct_bx_emul"]->Fill(alct->getBX());
262  }
263  }
264  }
265 
266  // temporary containers for B904 analysis
267  std::vector<CSCCLCTDigi> tempdata;
268  std::vector<CSCCLCTDigi> tempemul;
269 
270  for (auto it = dataCLCTs->begin(); it != dataCLCTs->end(); it++) {
271  auto range = dataCLCTs->get((*it).first);
272  const CSCDetId& detid((*it).first);
273  int type = ((*it).first).iChamberType() - 2;
274  // ignore non-ME1/1 chambers when using B904 test-stand data
275  if (useB904ME11_ and !(detid.isME11()))
276  continue;
277  if (useB904ME21_ and !(detid.isME21()))
278  continue;
279  if (useB904ME234s2_ and !(detid.isME22() or detid.isME32() or detid.isME42()))
280  continue;
281  // to prevent crashes because you are booking histos for single b904 chamber
283  type = 0;
284  for (auto clct = range.first; clct != range.second; clct++) {
285  if (clct->isValid()) {
286  if (preTriggerAnalysis_) {
287  tempdata.push_back(*clct);
288  }
289  chamberHistos[type]["clct_pattern_data"]->Fill(clct->getPattern());
290  chamberHistos[type]["clct_quality_data"]->Fill(clct->getQuality());
291  chamberHistos[type]["clct_halfstrip_data"]->Fill(clct->getKeyStrip());
292  chamberHistos[type]["clct_bend_data"]->Fill(clct->getBend());
293  if (isRun3_) {
294  chamberHistos[type]["clct_run3pattern_data"]->Fill(clct->getRun3Pattern());
295  chamberHistos[type]["clct_quartstrip_data"]->Fill(clct->getKeyStrip(4));
296  chamberHistos[type]["clct_eighthstrip_data"]->Fill(clct->getKeyStrip(8));
297  chamberHistos[type]["clct_slope_data"]->Fill(clct->getSlope());
298  chamberHistos[type]["clct_compcode_data"]->Fill(clct->getCompCode());
299  if (useB904_) {
300  chamberHistos[type]["clct_quartstripbit_data"]->Fill(clct->getQuartStripBit());
301  chamberHistos[type]["clct_eighthstripbit_data"]->Fill(clct->getEighthStripBit());
302  }
303  }
304  }
305  }
306  }
307 
308  for (auto it = emulCLCTs->begin(); it != emulCLCTs->end(); it++) {
309  auto range = emulCLCTs->get((*it).first);
310  const CSCDetId& detid((*it).first);
311  int type = ((*it).first).iChamberType() - 2;
312  // ignore non-ME1/1 chambers when using B904 test-stand data
313  if (useB904ME11_ and !(detid.isME11()))
314  continue;
315  if (useB904ME21_ and !(detid.isME21()))
316  continue;
317  if (useB904ME234s2_ and !(detid.isME22() or detid.isME32() or detid.isME42()))
318  continue;
319  // to prevent crashes because you are booking histos for single b904 chamber
321  type = 0;
322  for (auto clct = range.first; clct != range.second; clct++) {
323  if (clct->isValid()) {
324  if (preTriggerAnalysis_) {
325  tempemul.push_back(*clct);
326  }
327  chamberHistos[type]["clct_pattern_emul"]->Fill(clct->getPattern());
328  chamberHistos[type]["clct_quality_emul"]->Fill(clct->getQuality());
329  chamberHistos[type]["clct_halfstrip_emul"]->Fill(clct->getKeyStrip());
330  chamberHistos[type]["clct_bend_emul"]->Fill(clct->getBend());
331  if (isRun3_) {
332  chamberHistos[type]["clct_run3pattern_emul"]->Fill(clct->getRun3Pattern());
333  chamberHistos[type]["clct_quartstrip_emul"]->Fill(clct->getKeyStrip(4));
334  chamberHistos[type]["clct_eighthstrip_emul"]->Fill(clct->getKeyStrip(8));
335  chamberHistos[type]["clct_slope_emul"]->Fill(clct->getSlope());
336  chamberHistos[type]["clct_compcode_emul"]->Fill(clct->getCompCode());
337  if (useB904_) {
338  chamberHistos[type]["clct_quartstripbit_emul"]->Fill(clct->getQuartStripBit());
339  chamberHistos[type]["clct_eighthstripbit_emul"]->Fill(clct->getEighthStripBit());
340  }
341  }
342  }
343  }
344  }
345 
346  // Pre-trigger analysis
347  if (preTriggerAnalysis_) {
348  if (tempdata.size() != tempemul.size()) {
349  for (auto& clct : tempdata) {
350  edm::LogWarning("L1TdeCSCTPG") << "data" << clct;
351  }
352  for (auto& clct : tempemul) {
353  edm::LogWarning("L1TdeCSCTPG") << "emul" << clct;
354  }
355  for (auto it = emulpreCLCTs->begin(); it != emulpreCLCTs->end(); it++) {
356  auto range = emulpreCLCTs->get((*it).first);
357  for (auto clct = range.first; clct != range.second; clct++) {
358  edm::LogWarning("L1TdeCSCTPG") << "emul pre" << *clct;
359  }
360  }
361  }
362  }
363 
364  for (auto it = dataLCTs->begin(); it != dataLCTs->end(); it++) {
365  auto range = dataLCTs->get((*it).first);
366  const CSCDetId& detid((*it).first);
367  int type = ((*it).first).iChamberType() - 2;
368  // ignore non-ME1/1 chambers when using B904 test-stand data
369  if (useB904ME11_ and !(detid.isME11()))
370  continue;
371  if (useB904ME21_ and !(detid.isME21()))
372  continue;
373  if (useB904ME234s2_ and !(detid.isME22() or detid.isME32() or detid.isME42()))
374  continue;
375  // to prevent crashes because you are booking histos for single b904 chamber
377  type = 0;
378  for (auto lct = range.first; lct != range.second; lct++) {
379  if (lct->isValid()) {
380  chamberHistos[type]["lct_pattern_data"]->Fill(lct->getPattern());
381  chamberHistos[type]["lct_quality_data"]->Fill(lct->getQuality());
382  chamberHistos[type]["lct_wiregroup_data"]->Fill(lct->getKeyWG());
383  chamberHistos[type]["lct_halfstrip_data"]->Fill(lct->getStrip());
384  chamberHistos[type]["lct_bend_data"]->Fill(lct->getBend());
385  if (isRun3_) {
386  chamberHistos[type]["lct_run3pattern_data"]->Fill(lct->getRun3Pattern());
387  chamberHistos[type]["lct_slope_data"]->Fill(lct->getSlope());
388  chamberHistos[type]["lct_quartstrip_data"]->Fill(lct->getStrip(4));
389  chamberHistos[type]["lct_eighthstrip_data"]->Fill(lct->getStrip(8));
390  if (useB904_) {
391  chamberHistos[type]["lct_quartstripbit_data"]->Fill(lct->getQuartStripBit());
392  chamberHistos[type]["lct_eighthstripbit_data"]->Fill(lct->getEighthStripBit());
393  }
394  }
395  }
396  }
397  }
398 
399  for (auto it = emulLCTs->begin(); it != emulLCTs->end(); it++) {
400  auto range = emulLCTs->get((*it).first);
401  const CSCDetId& detid((*it).first);
402  int type = ((*it).first).iChamberType() - 2;
403  // ignore non-ME1/1 chambers when using B904 test-stand data
404  if (useB904ME11_ and !(detid.isME11()))
405  continue;
406  if (useB904ME21_ and !(detid.isME21()))
407  continue;
408  if (useB904ME234s2_ and !(detid.isME22() or detid.isME32() or detid.isME42()))
409  continue;
410  // to prevent crashes because you are booking histos for single b904 chamber
412  type = 0;
413  for (auto lct = range.first; lct != range.second; lct++) {
414  if (lct->isValid()) {
415  chamberHistos[type]["lct_pattern_emul"]->Fill(lct->getPattern());
416  chamberHistos[type]["lct_quality_emul"]->Fill(lct->getQuality());
417  chamberHistos[type]["lct_wiregroup_emul"]->Fill(lct->getKeyWG());
418  chamberHistos[type]["lct_halfstrip_emul"]->Fill(lct->getStrip());
419  chamberHistos[type]["lct_bend_emul"]->Fill(lct->getBend());
420  if (isRun3_) {
421  chamberHistos[type]["lct_run3pattern_emul"]->Fill(lct->getRun3Pattern());
422  chamberHistos[type]["lct_slope_emul"]->Fill(lct->getSlope());
423  chamberHistos[type]["lct_quartstrip_emul"]->Fill(lct->getStrip(4));
424  chamberHistos[type]["lct_eighthstrip_emul"]->Fill(lct->getStrip(8));
425  if (useB904_) {
426  chamberHistos[type]["lct_quartstripbit_emul"]->Fill(lct->getQuartStripBit());
427  chamberHistos[type]["lct_eighthstripbit_emul"]->Fill(lct->getEighthStripBit());
428  }
429  }
430  }
431  }
432  }
433  }
434 
435  // summary plots
436  const std::map<std::pair<int, int>, int> histIndexCSC = {{{1, 1}, 8},
437  {{1, 2}, 7},
438  {{1, 3}, 6},
439  {{2, 1}, 5},
440  {{2, 2}, 4},
441  {{3, 1}, 3},
442  {{3, 2}, 2},
443  {{4, 1}, 1},
444  {{4, 2}, 0}};
445 
446  const int min_endcap = CSCDetId::minEndcapId();
447  const int max_endcap = CSCDetId::maxEndcapId();
448  const int min_station = CSCDetId::minStationId();
449  const int max_station = CSCDetId::maxStationId();
450  const int min_sector = CSCTriggerNumbering::minTriggerSectorId();
451  const int max_sector = CSCTriggerNumbering::maxTriggerSectorId();
452  const int min_subsector = CSCTriggerNumbering::minTriggerSubSectorId();
453  const int max_subsector = CSCTriggerNumbering::maxTriggerSubSectorId();
454  const int min_chamber = CSCTriggerNumbering::minTriggerCscId();
455  const int max_chamber = CSCTriggerNumbering::maxTriggerCscId();
456 
457  for (int endc = min_endcap; endc <= max_endcap; endc++) {
458  // loop on all stations
459  for (int stat = min_station; stat <= max_station; stat++) {
460  int numsubs = ((stat == 1) ? max_subsector : 1);
461  // loop on sectors and subsectors
462  for (int sect = min_sector; sect <= max_sector; sect++) {
463  for (int subs = min_subsector; subs <= numsubs; subs++) {
464  // loop on all chambers
465  for (int cham = min_chamber; cham <= max_chamber; cham++) {
466  // extract the ring number
468 
469  // actual chamber number =/= trigger chamber number
471 
472  // 0th layer means whole chamber.
473  CSCDetId detid(endc, stat, ring, chid, 0);
474 
475  int chamber = detid.chamber();
476 
477  int sr = histIndexCSC.at({stat, ring});
478  if (endc == 1)
479  sr = 17 - sr;
480 
481  // ALCT analysis
482  auto range_dataALCT = dataALCTs->get(detid);
483  auto range_emulALCT = emulALCTs->get(detid);
484 
485  for (auto dalct = range_dataALCT.first; dalct != range_dataALCT.second; dalct++) {
486  if (dalct->isValid()) {
488  // check for least one matching ALCT
489  for (auto ealct = range_emulALCT.first; ealct != range_emulALCT.second; ealct++) {
490  if (ealct->isValid() and *dalct == *ealct) {
492  }
493  }
494  }
495  }
496 
497  for (auto ealct = range_emulALCT.first; ealct != range_emulALCT.second; ealct++) {
498  bool isMatched = false;
499  if (ealct->isValid()) {
501  // check for least one matching ALCT
502  for (auto dalct = range_dataALCT.first; dalct != range_dataALCT.second; dalct++) {
503  if (*dalct == *ealct)
504  isMatched = true;
505  }
506  // only fill when it is not matched to an ALCT
507  // to understand if the emulator is producing too many ALCTs
508  if (!isMatched) {
510  }
511  }
512  }
513 
514  // CLCT analysis
515  auto range_dataCLCT = dataCLCTs->get(detid);
516  auto range_emulCLCT = emulCLCTs->get(detid);
517 
518  for (auto dclct = range_dataCLCT.first; dclct != range_dataCLCT.second; dclct++) {
519  if (dclct->isValid()) {
521  // check for least one matching CLCT
522  for (auto eclct = range_emulCLCT.first; eclct != range_emulCLCT.second; eclct++) {
523  if (eclct->isValid() and areSameCLCTs(*dclct, *eclct)) {
525  }
526  }
527  }
528  }
529 
530  for (auto eclct = range_emulCLCT.first; eclct != range_emulCLCT.second; eclct++) {
531  bool isMatched = false;
532  if (eclct->isValid()) {
534  // check for least one matching CLCT
535  for (auto dclct = range_dataCLCT.first; dclct != range_dataCLCT.second; dclct++) {
536  if (areSameCLCTs(*dclct, *eclct))
537  isMatched = true;
538  }
539  // only fill when it is not matched to an CLCT
540  // to understand if the emulator is producing too many CLCTs
541  if (!isMatched) {
543  }
544  }
545  }
546 
547  // LCT analysis
548  auto range_dataLCT = dataLCTs->get(detid);
549  auto range_emulLCT = emulLCTs->get(detid);
550 
551  for (auto dlct = range_dataLCT.first; dlct != range_dataLCT.second; dlct++) {
552  if (dlct->isValid()) {
554  // check for least one matching LCT
555  for (auto elct = range_emulLCT.first; elct != range_emulLCT.second; elct++) {
556  if (elct->isValid() and areSameLCTs(*dlct, *elct)) {
558  }
559  }
560  }
561  }
562 
563  for (auto elct = range_emulLCT.first; elct != range_emulLCT.second; elct++) {
564  bool isMatched = false;
565  if (elct->isValid()) {
567  // check for least one matching LCT
568  for (auto dlct = range_dataLCT.first; dlct != range_dataLCT.second; dlct++) {
569  if (areSameLCTs(*dlct, *elct))
570  isMatched = true;
571  }
572  // only fill when it is not matched to an LCT
573  // to understand if the emulator is producing too many LCTs
574  if (!isMatched) {
576  }
577  }
578  }
579  }
580  }
581  }
582  }
583  }
584 }
MonitorElement * lctEmulSummary_denom_
Definition: L1TdeCSCTPG.h:90
edm::EDGetTokenT< CSCALCTDigiCollection > dataALCT_token_
Definition: L1TdeCSCTPG.h:30
MonitorElement * lctEmulSummary_num_
Definition: L1TdeCSCTPG.h:91
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollection > dataLCT_token_
Definition: L1TdeCSCTPG.h:35
bool useB904ME234s2_
Definition: L1TdeCSCTPG.h:65
MonitorElement * clctEmulSummary_num_
Definition: L1TdeCSCTPG.h:95
static int minEndcapId()
Definition: CSCDetId.h:234
static int maxTriggerSectorId()
bool useB904ME11_
Definition: L1TdeCSCTPG.h:63
static int maxStationId()
Definition: CSCDetId.h:237
MonitorElement * alctDataSummary_num_
Definition: L1TdeCSCTPG.h:86
bool isRun3_
Definition: L1TdeCSCTPG.h:67
static int minTriggerSectorId()
static int ringFromTriggerLabels(int station, int triggerCSCID)
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollection > emulLCT_token_
Definition: L1TdeCSCTPG.h:36
void Fill(long long x)
bool useB904_
Definition: L1TdeCSCTPG.h:62
MonitorElement * lctDataSummary_denom_
Definition: L1TdeCSCTPG.h:83
bool preTriggerAnalysis_
Definition: L1TdeCSCTPG.h:76
static int minStationId()
Definition: CSCDetId.h:236
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
static int maxEndcapId()
Definition: CSCDetId.h:235
std::map< uint32_t, std::map< std::string, MonitorElement * > > chamberHistos
Definition: L1TdeCSCTPG.h:80
bool useB904ME21_
Definition: L1TdeCSCTPG.h:64
Range get(const IndexType &index) const
return the digis for a given DetUnit
MonitorElement * lctDataSummary_num_
Definition: L1TdeCSCTPG.h:84
bool isMatched(TrackingRecHit const &hit)
MonitorElement * alctEmulSummary_num_
Definition: L1TdeCSCTPG.h:93
DigiRangeIterator begin() const
MonitorElement * alctDataSummary_denom_
Definition: L1TdeCSCTPG.h:85
bool areSameLCTs(const CSCCorrelatedLCTDigi &lhs, const CSCCorrelatedLCTDigi &rhs) const
Definition: L1TdeCSCTPG.cc:600
edm::EDGetTokenT< CSCALCTDigiCollection > emulALCT_token_
Definition: L1TdeCSCTPG.h:31
MonitorElement * clctEmulSummary_denom_
Definition: L1TdeCSCTPG.h:94
static int minTriggerSubSectorId()
edm::EDGetTokenT< CSCCLCTDigiCollection > dataCLCT_token_
Definition: L1TdeCSCTPG.h:32
edm::EDGetTokenT< CSCCLCTPreTriggerDigiCollection > emulpreCLCT_token_
Definition: L1TdeCSCTPG.h:34
bool areSameCLCTs(const CSCCLCTDigi &lhs, const CSCCLCTDigi &rhs) const
Definition: L1TdeCSCTPG.cc:586
bool make1DPlots_
Definition: L1TdeCSCTPG.h:73
Log< level::Warning, false > LogWarning
MonitorElement * clctDataSummary_denom_
Definition: L1TdeCSCTPG.h:87
MonitorElement * alctEmulSummary_denom_
Definition: L1TdeCSCTPG.h:92
static int chamberFromTriggerLabels(int TriggerSector, int TriggerSubSector, int station, int TriggerCSCID)
static int maxTriggerSubSectorId()
MonitorElement * clctDataSummary_num_
Definition: L1TdeCSCTPG.h:88
DigiRangeIterator end() const
edm::EDGetTokenT< CSCCLCTDigiCollection > emulCLCT_token_
Definition: L1TdeCSCTPG.h:33

◆ areSameCLCTs()

bool L1TdeCSCTPG::areSameCLCTs ( const CSCCLCTDigi lhs,
const CSCCLCTDigi rhs 
) const
private

Definition at line 586 of file L1TdeCSCTPG.cc.

References CSCCLCTDigi::getBend(), CSCCLCTDigi::getEighthStripBit(), CSCCLCTDigi::getKeyStrip(), CSCCLCTDigi::getPattern(), CSCCLCTDigi::getQuality(), CSCCLCTDigi::getQuartStripBit(), CSCCLCTDigi::getRun3Pattern(), CSCCLCTDigi::getStripType(), and CSCCLCTDigi::isValid().

Referenced by analyze().

586  {
587  // because the comparator code is degenerate (several comparator codes can produce the
588  // same slope and position), we leave it out of the comparison
589  // do not include the BX
590  bool returnValue = false;
591  if (lhs.isValid() == rhs.isValid() && lhs.getQuality() == rhs.getQuality() && lhs.getPattern() == rhs.getPattern() &&
592  lhs.getRun3Pattern() == rhs.getRun3Pattern() && lhs.getKeyStrip() == rhs.getKeyStrip() &&
593  lhs.getStripType() == rhs.getStripType() && lhs.getBend() == rhs.getBend() &&
594  lhs.getQuartStripBit() == rhs.getQuartStripBit() && lhs.getEighthStripBit() == rhs.getEighthStripBit()) {
595  returnValue = true;
596  }
597  return returnValue;
598 }
uint16_t getQuality() const
return quality of a pattern (number of layers hit!)
Definition: CSCCLCTDigi.h:56
uint16_t getKeyStrip(const uint16_t n=2) const
Definition: CSCCLCTDigi.cc:107
bool getEighthStripBit() const
get single eighth strip bit
Definition: CSCCLCTDigi.h:114
bool getQuartStripBit() const
get single quart strip bit
Definition: CSCCLCTDigi.h:108
uint16_t getBend() const
Definition: CSCCLCTDigi.h:93
uint16_t getStripType() const
return striptype
Definition: CSCCLCTDigi.h:85
bool isValid() const
check CLCT validity (1 - valid CLCT)
Definition: CSCCLCTDigi.h:50
uint16_t getPattern() const
return pattern
Definition: CSCCLCTDigi.h:62
uint16_t getRun3Pattern() const
return pattern
Definition: CSCCLCTDigi.h:68

◆ areSameLCTs()

bool L1TdeCSCTPG::areSameLCTs ( const CSCCorrelatedLCTDigi lhs,
const CSCCorrelatedLCTDigi rhs 
) const
private

Definition at line 600 of file L1TdeCSCTPG.cc.

References CSCCorrelatedLCTDigi::getBend(), CSCCorrelatedLCTDigi::getEighthStripBit(), CSCCorrelatedLCTDigi::getKeyWG(), CSCCorrelatedLCTDigi::getPattern(), CSCCorrelatedLCTDigi::getQuality(), CSCCorrelatedLCTDigi::getQuartStripBit(), CSCCorrelatedLCTDigi::getRun3Pattern(), CSCCorrelatedLCTDigi::getStrip(), CSCCorrelatedLCTDigi::getStripType(), and CSCCorrelatedLCTDigi::isValid().

Referenced by analyze().

600  {
601  // do not include the BX
602  bool returnValue = false;
603  if (lhs.isValid() == rhs.isValid() && lhs.getQuality() == rhs.getQuality() && lhs.getPattern() == rhs.getPattern() &&
604  lhs.getRun3Pattern() == rhs.getRun3Pattern() && lhs.getStrip() == rhs.getStrip() &&
605  lhs.getStripType() == rhs.getStripType() && lhs.getBend() == rhs.getBend() &&
606  lhs.getQuartStripBit() == rhs.getQuartStripBit() && lhs.getEighthStripBit() == rhs.getEighthStripBit() &&
607  lhs.getKeyWG() == rhs.getKeyWG()) {
608  returnValue = true;
609  }
610  return returnValue;
611 }
uint16_t getStripType() const
return strip type (obsolete since mid-2008)
uint16_t getPattern() const
return the Run-2 pattern ID
bool isValid() const
return valid pattern bit
bool getEighthStripBit() const
get single eighth strip bit
uint16_t getQuality() const
return the Quality
uint16_t getStrip(uint16_t n=2) const
return the key halfstrip from 0,159
bool getQuartStripBit() const
get single quart strip bit
uint16_t getKeyWG() const
return the key wire group. counts from 0.
uint16_t getRun3Pattern() const
return the Run-3 pattern ID

◆ bookHistograms()

void L1TdeCSCTPG::bookHistograms ( DQMStore::IBooker iBooker,
const edm::Run ,
const edm::EventSetup  
)
overrideprotectedvirtual

Implements DQMEDAnalyzer.

Definition at line 46 of file L1TdeCSCTPG.cc.

References alctDataSummary_denom_, alctDataSummary_num_, alctEmulSummary_denom_, alctEmulSummary_num_, alctMaxBin_, alctMinBin_, alctNBin_, alctVars_, dqm::implementation::IBooker::book1D(), dqm::implementation::IBooker::book2D(), chamberHistos, chambers_, clctDataSummary_denom_, clctDataSummary_num_, clctEmulSummary_denom_, clctEmulSummary_num_, clctMaxBin_, clctMinBin_, clctNBin_, clctVars_, dataEmul_, B2GTnPMonitor_cfi::histTitle, isRun3_, crabWrapper::key, lctDataSummary_denom_, lctDataSummary_num_, lctEmulSummary_denom_, lctEmulSummary_num_, lctMaxBin_, lctMinBin_, lctNBin_, lctVars_, make1DPlots_, monitorDir_, or, dqm::impl::MonitorElement::setAxisTitle(), dqm::impl::MonitorElement::setBinLabel(), dqm::implementation::NavigatorBase::setCurrentFolder(), dqm::impl::MonitorElement::setOption(), AlCaHLTBitMon_QueryRunRegistry::string, groupFilesInBlocks::temp, useB904ME11_, useB904ME21_, and useB904ME234s2_.

46  {
48 
49  // remove the non-ME1/1 chambers from the list when useB904ME11 is set to true
50  if (useB904ME11_) {
51  chambers_.resize(1);
52  }
53  // similar for ME2/1
54  else if (useB904ME21_) {
55  auto temp = chambers_[3];
56  chambers_.resize(1);
57  chambers_[0] = temp;
58  }
59  // similar for ME4/2
60  else if (useB904ME234s2_) {
61  auto temp = chambers_.back();
62  chambers_.resize(1);
63  chambers_[0] = temp;
64  }
65  // collision data in Run-3
66  else if (isRun3_) {
67  clctVars_.resize(9);
68  lctVars_.resize(9);
69  }
70  // do not analyze Run-3 properties in Run-1 and Run-2 eras
71  else {
72  clctVars_.resize(4);
73  lctVars_.resize(5);
74  }
75 
76  // 1D plots for experts
78  // chamber type
79  for (unsigned iType = 0; iType < chambers_.size(); iType++) {
80  // data vs emulator
81  for (unsigned iData = 0; iData < dataEmul_.size(); iData++) {
82  // alct variable
83  for (unsigned iVar = 0; iVar < alctVars_.size(); iVar++) {
84  const std::string key("alct_" + alctVars_[iVar] + "_" + dataEmul_[iData]);
85  const std::string histName(key + "_" + chambers_[iType]);
86  const std::string histTitle(chambers_[iType] + " ALCT " + alctVars_[iVar] + " (" + dataEmul_[iData] + ") ");
87  chamberHistos[iType][key] =
88  iBooker.book1D(histName, histTitle, alctNBin_[iVar], alctMinBin_[iVar], alctMaxBin_[iVar]);
89  chamberHistos[iType][key]->getTH1()->SetMinimum(0);
90  }
91 
92  // clct variable
93  for (unsigned iVar = 0; iVar < clctVars_.size(); iVar++) {
94  const std::string key("clct_" + clctVars_[iVar] + "_" + dataEmul_[iData]);
95  const std::string histName(key + "_" + chambers_[iType]);
96  const std::string histTitle(chambers_[iType] + " CLCT " + clctVars_[iVar] + " (" + dataEmul_[iData] + ") ");
97  chamberHistos[iType][key] =
98  iBooker.book1D(histName, histTitle, clctNBin_[iVar], clctMinBin_[iVar], clctMaxBin_[iVar]);
99  chamberHistos[iType][key]->getTH1()->SetMinimum(0);
100  }
101 
102  // lct variable
103  for (unsigned iVar = 0; iVar < lctVars_.size(); iVar++) {
104  const std::string key("lct_" + lctVars_[iVar] + "_" + dataEmul_[iData]);
105  const std::string histName(key + "_" + chambers_[iType]);
106  const std::string histTitle(chambers_[iType] + " LCT " + lctVars_[iVar] + " (" + dataEmul_[iData] + ") ");
107  chamberHistos[iType][key] =
108  iBooker.book1D(histName, histTitle, lctNBin_[iVar], lctMinBin_[iVar], lctMaxBin_[iVar]);
109  chamberHistos[iType][key]->getTH1()->SetMinimum(0);
110  }
111  }
112  }
113  }
114 
115  // 2D summary plots
116 
117  // These plots are for showing the efficiency that the unpacked data are being correctly emulated (having a emulated data counterpart)
118  lctDataSummary_denom_ = iBooker.book2D("lct_csctp_data_summary_denom", "LCT Summary", 36, 1, 37, 18, 0, 18);
119  lctDataSummary_num_ = iBooker.book2D("lct_csctp_data_summary_num", "LCT Summary", 36, 1, 37, 18, 0, 18);
120  alctDataSummary_denom_ = iBooker.book2D("alct_csctp_data_summary_denom", "ALCT Summary", 36, 1, 37, 18, 0, 18);
121  alctDataSummary_num_ = iBooker.book2D("alct_csctp_data_summary_num", "ALCT Summary", 36, 1, 37, 18, 0, 18);
122  clctDataSummary_denom_ = iBooker.book2D("clct_csctp_data_summary_denom", "CLCT Summary", 36, 1, 37, 18, 0, 18);
123  clctDataSummary_num_ = iBooker.book2D("clct_csctp_data_summary_num", "CLCT Summary", 36, 1, 37, 18, 0, 18);
124 
125  // These plots are for showing the fraction of emulated data that does not have counterparts in the unpacked data
126  lctEmulSummary_denom_ = iBooker.book2D("lct_csctp_emul_summary_denom", "LCT Summary", 36, 1, 37, 18, 0, 18);
127  lctEmulSummary_num_ = iBooker.book2D("lct_csctp_emul_summary_num", "LCT Summary", 36, 1, 37, 18, 0, 18);
128  alctEmulSummary_denom_ = iBooker.book2D("alct_csctp_emul_summary_denom", "ALCT Summary", 36, 1, 37, 18, 0, 18);
129  alctEmulSummary_num_ = iBooker.book2D("alct_csctp_emul_summary_num", "ALCT Summary", 36, 1, 37, 18, 0, 18);
130  clctEmulSummary_denom_ = iBooker.book2D("clct_csctp_emul_summary_denom", "CLCT Summary", 36, 1, 37, 18, 0, 18);
131  clctEmulSummary_num_ = iBooker.book2D("clct_csctp_emul_summary_num", "CLCT Summary", 36, 1, 37, 18, 0, 18);
132 
133  // x labels
134  lctDataSummary_denom_->setAxisTitle("Chamber", 1);
135  lctDataSummary_num_->setAxisTitle("Chamber", 1);
136  alctDataSummary_denom_->setAxisTitle("Chamber", 1);
137  alctDataSummary_num_->setAxisTitle("Chamber", 1);
138  clctDataSummary_denom_->setAxisTitle("Chamber", 1);
139  clctDataSummary_num_->setAxisTitle("Chamber", 1);
140 
141  lctEmulSummary_denom_->setAxisTitle("Chamber", 1);
142  lctEmulSummary_num_->setAxisTitle("Chamber", 1);
143  alctEmulSummary_denom_->setAxisTitle("Chamber", 1);
144  alctEmulSummary_num_->setAxisTitle("Chamber", 1);
145  clctEmulSummary_denom_->setAxisTitle("Chamber", 1);
146  clctEmulSummary_num_->setAxisTitle("Chamber", 1);
147 
148  // plotting option
155 
162 
163  // summary plots
164  const std::array<std::string, 9> suffix_label{{"4/2", "4/1", "3/2", "3/1", " 2/2", "2/1", "1/3", "1/2", "1/1"}};
165 
166  // y labels
167  for (int ybin = 1; ybin <= 9; ++ybin) {
168  lctDataSummary_denom_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
169  lctDataSummary_num_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
170  alctDataSummary_denom_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
171  alctDataSummary_num_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
172  clctDataSummary_denom_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
173  clctDataSummary_num_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
174 
175  lctEmulSummary_denom_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
176  lctEmulSummary_num_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
177  alctEmulSummary_denom_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
178  alctEmulSummary_num_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
179  clctEmulSummary_denom_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
180  clctEmulSummary_num_->setBinLabel(ybin, "ME-" + suffix_label[ybin - 1], 2);
181 
182  lctDataSummary_denom_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
183  lctDataSummary_num_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
184  alctDataSummary_denom_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
185  alctDataSummary_num_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
186  clctDataSummary_denom_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
187  clctDataSummary_num_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
188 
189  lctEmulSummary_denom_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
190  lctEmulSummary_num_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
191  alctEmulSummary_denom_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
192  alctEmulSummary_num_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
193  clctEmulSummary_denom_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
194  clctEmulSummary_num_->setBinLabel(19 - ybin, "ME+" + suffix_label[ybin - 1], 2);
195  }
196 }
MonitorElement * lctEmulSummary_denom_
Definition: L1TdeCSCTPG.h:90
std::vector< double > lctMaxBin_
Definition: L1TdeCSCTPG.h:55
MonitorElement * lctEmulSummary_num_
Definition: L1TdeCSCTPG.h:91
bool useB904ME234s2_
Definition: L1TdeCSCTPG.h:65
std::vector< std::string > alctVars_
Definition: L1TdeCSCTPG.h:43
MonitorElement * clctEmulSummary_num_
Definition: L1TdeCSCTPG.h:95
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:36
std::vector< unsigned > alctNBin_
Definition: L1TdeCSCTPG.h:47
virtual void setOption(const char *option)
bool useB904ME11_
Definition: L1TdeCSCTPG.h:63
std::vector< double > alctMinBin_
Definition: L1TdeCSCTPG.h:50
MonitorElement * alctDataSummary_num_
Definition: L1TdeCSCTPG.h:86
bool isRun3_
Definition: L1TdeCSCTPG.h:67
MonitorElement * lctDataSummary_denom_
Definition: L1TdeCSCTPG.h:83
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
std::map< uint32_t, std::map< std::string, MonitorElement * > > chamberHistos
Definition: L1TdeCSCTPG.h:80
bool useB904ME21_
Definition: L1TdeCSCTPG.h:64
MonitorElement * lctDataSummary_num_
Definition: L1TdeCSCTPG.h:84
std::vector< unsigned > lctNBin_
Definition: L1TdeCSCTPG.h:49
MonitorElement * alctEmulSummary_num_
Definition: L1TdeCSCTPG.h:93
std::vector< double > alctMaxBin_
Definition: L1TdeCSCTPG.h:53
virtual void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
MonitorElement * alctDataSummary_denom_
Definition: L1TdeCSCTPG.h:85
std::vector< std::string > chambers_
Definition: L1TdeCSCTPG.h:40
MonitorElement * clctEmulSummary_denom_
Definition: L1TdeCSCTPG.h:94
std::vector< unsigned > clctNBin_
Definition: L1TdeCSCTPG.h:48
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:212
std::vector< double > clctMaxBin_
Definition: L1TdeCSCTPG.h:54
std::vector< std::string > dataEmul_
Definition: L1TdeCSCTPG.h:41
std::string monitorDir_
Definition: L1TdeCSCTPG.h:37
std::vector< std::string > lctVars_
Definition: L1TdeCSCTPG.h:45
std::vector< double > clctMinBin_
Definition: L1TdeCSCTPG.h:51
std::vector< double > lctMinBin_
Definition: L1TdeCSCTPG.h:52
bool make1DPlots_
Definition: L1TdeCSCTPG.h:73
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
std::vector< std::string > clctVars_
Definition: L1TdeCSCTPG.h:44
MonitorElement * clctDataSummary_denom_
Definition: L1TdeCSCTPG.h:87
MonitorElement * alctEmulSummary_denom_
Definition: L1TdeCSCTPG.h:92
MonitorElement * clctDataSummary_num_
Definition: L1TdeCSCTPG.h:88
virtual void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)

Member Data Documentation

◆ alctDataSummary_denom_

MonitorElement* L1TdeCSCTPG::alctDataSummary_denom_
private

Definition at line 85 of file L1TdeCSCTPG.h.

Referenced by analyze(), and bookHistograms().

◆ alctDataSummary_num_

MonitorElement* L1TdeCSCTPG::alctDataSummary_num_
private

Definition at line 86 of file L1TdeCSCTPG.h.

Referenced by analyze(), and bookHistograms().

◆ alctEmulSummary_denom_

MonitorElement* L1TdeCSCTPG::alctEmulSummary_denom_
private

Definition at line 92 of file L1TdeCSCTPG.h.

Referenced by analyze(), and bookHistograms().

◆ alctEmulSummary_num_

MonitorElement* L1TdeCSCTPG::alctEmulSummary_num_
private

Definition at line 93 of file L1TdeCSCTPG.h.

Referenced by analyze(), and bookHistograms().

◆ alctMaxBin_

std::vector<double> L1TdeCSCTPG::alctMaxBin_
private

Definition at line 53 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ alctMinBin_

std::vector<double> L1TdeCSCTPG::alctMinBin_
private

Definition at line 50 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ alctNBin_

std::vector<unsigned> L1TdeCSCTPG::alctNBin_
private

Definition at line 47 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ alctVars_

std::vector<std::string> L1TdeCSCTPG::alctVars_
private

Definition at line 43 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ chamberHistos

std::map<uint32_t, std::map<std::string, MonitorElement*> > L1TdeCSCTPG::chamberHistos
private

Definition at line 80 of file L1TdeCSCTPG.h.

Referenced by analyze(), and bookHistograms().

◆ chambers_

std::vector<std::string> L1TdeCSCTPG::chambers_
private

Definition at line 40 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ clctDataSummary_denom_

MonitorElement* L1TdeCSCTPG::clctDataSummary_denom_
private

Definition at line 87 of file L1TdeCSCTPG.h.

Referenced by analyze(), and bookHistograms().

◆ clctDataSummary_num_

MonitorElement* L1TdeCSCTPG::clctDataSummary_num_
private

Definition at line 88 of file L1TdeCSCTPG.h.

Referenced by analyze(), and bookHistograms().

◆ clctEmulSummary_denom_

MonitorElement* L1TdeCSCTPG::clctEmulSummary_denom_
private

Definition at line 94 of file L1TdeCSCTPG.h.

Referenced by analyze(), and bookHistograms().

◆ clctEmulSummary_num_

MonitorElement* L1TdeCSCTPG::clctEmulSummary_num_
private

Definition at line 95 of file L1TdeCSCTPG.h.

Referenced by analyze(), and bookHistograms().

◆ clctMaxBin_

std::vector<double> L1TdeCSCTPG::clctMaxBin_
private

Definition at line 54 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ clctMinBin_

std::vector<double> L1TdeCSCTPG::clctMinBin_
private

Definition at line 51 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ clctNBin_

std::vector<unsigned> L1TdeCSCTPG::clctNBin_
private

Definition at line 48 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ clctVars_

std::vector<std::string> L1TdeCSCTPG::clctVars_
private

Definition at line 44 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ dataALCT_token_

edm::EDGetTokenT<CSCALCTDigiCollection> L1TdeCSCTPG::dataALCT_token_
private

Definition at line 30 of file L1TdeCSCTPG.h.

Referenced by analyze().

◆ dataCLCT_token_

edm::EDGetTokenT<CSCCLCTDigiCollection> L1TdeCSCTPG::dataCLCT_token_
private

Definition at line 32 of file L1TdeCSCTPG.h.

Referenced by analyze().

◆ dataEmul_

std::vector<std::string> L1TdeCSCTPG::dataEmul_
private

Definition at line 41 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ dataLCT_token_

edm::EDGetTokenT<CSCCorrelatedLCTDigiCollection> L1TdeCSCTPG::dataLCT_token_
private

Definition at line 35 of file L1TdeCSCTPG.h.

Referenced by analyze().

◆ emulALCT_token_

edm::EDGetTokenT<CSCALCTDigiCollection> L1TdeCSCTPG::emulALCT_token_
private

Definition at line 31 of file L1TdeCSCTPG.h.

Referenced by analyze().

◆ emulCLCT_token_

edm::EDGetTokenT<CSCCLCTDigiCollection> L1TdeCSCTPG::emulCLCT_token_
private

Definition at line 33 of file L1TdeCSCTPG.h.

Referenced by analyze().

◆ emulLCT_token_

edm::EDGetTokenT<CSCCorrelatedLCTDigiCollection> L1TdeCSCTPG::emulLCT_token_
private

Definition at line 36 of file L1TdeCSCTPG.h.

Referenced by analyze().

◆ emulpreCLCT_token_

edm::EDGetTokenT<CSCCLCTPreTriggerDigiCollection> L1TdeCSCTPG::emulpreCLCT_token_
private

Definition at line 34 of file L1TdeCSCTPG.h.

Referenced by analyze().

◆ isRun3_

bool L1TdeCSCTPG::isRun3_
private

Definition at line 67 of file L1TdeCSCTPG.h.

Referenced by analyze(), and bookHistograms().

◆ lctDataSummary_denom_

MonitorElement* L1TdeCSCTPG::lctDataSummary_denom_
private

Definition at line 83 of file L1TdeCSCTPG.h.

Referenced by analyze(), and bookHistograms().

◆ lctDataSummary_num_

MonitorElement* L1TdeCSCTPG::lctDataSummary_num_
private

Definition at line 84 of file L1TdeCSCTPG.h.

Referenced by analyze(), and bookHistograms().

◆ lctEmulSummary_denom_

MonitorElement* L1TdeCSCTPG::lctEmulSummary_denom_
private

Definition at line 90 of file L1TdeCSCTPG.h.

Referenced by analyze(), and bookHistograms().

◆ lctEmulSummary_num_

MonitorElement* L1TdeCSCTPG::lctEmulSummary_num_
private

Definition at line 91 of file L1TdeCSCTPG.h.

Referenced by analyze(), and bookHistograms().

◆ lctMaxBin_

std::vector<double> L1TdeCSCTPG::lctMaxBin_
private

Definition at line 55 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ lctMinBin_

std::vector<double> L1TdeCSCTPG::lctMinBin_
private

Definition at line 52 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ lctNBin_

std::vector<unsigned> L1TdeCSCTPG::lctNBin_
private

Definition at line 49 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ lctVars_

std::vector<std::string> L1TdeCSCTPG::lctVars_
private

Definition at line 45 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ make1DPlots_

bool L1TdeCSCTPG::make1DPlots_
private

Definition at line 73 of file L1TdeCSCTPG.h.

Referenced by analyze(), and bookHistograms().

◆ monitorDir_

std::string L1TdeCSCTPG::monitorDir_
private

Definition at line 37 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ preTriggerAnalysis_

bool L1TdeCSCTPG::preTriggerAnalysis_
private

Definition at line 76 of file L1TdeCSCTPG.h.

Referenced by analyze().

◆ useB904_

bool L1TdeCSCTPG::useB904_
private

Definition at line 62 of file L1TdeCSCTPG.h.

Referenced by analyze(), and L1TdeCSCTPG().

◆ useB904ME11_

bool L1TdeCSCTPG::useB904ME11_
private

Definition at line 63 of file L1TdeCSCTPG.h.

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

◆ useB904ME21_

bool L1TdeCSCTPG::useB904ME21_
private

Definition at line 64 of file L1TdeCSCTPG.h.

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

◆ useB904ME234s2_

bool L1TdeCSCTPG::useB904ME234s2_
private

Definition at line 65 of file L1TdeCSCTPG.h.

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