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 isCLCTOffByOneBX (const CSCCLCTDigi &lhs, const CSCCLCTDigi &rhs) const
 
bool isDuplicateCLCT (const CSCCLCTDigi &clct, const std::vector< CSCCLCTDigi > &container) const
 
bool isDuplicateLCT (const CSCCorrelatedLCTDigi &lct, const std::vector< CSCCorrelatedLCTDigi > &container) const
 
bool isLCTOffByOneBX (const CSCCorrelatedLCTDigi &lhs, const CSCCorrelatedLCTDigi &rhs) const
 

Private Attributes

std::vector< double > alctMaxBin_
 
std::vector< double > alctMinBin_
 
std::vector< unsigned > alctNBin_
 
std::vector< std::string > alctVars_
 
bool B904Setup_
 
std::map< uint32_t, std::map< std::string, MonitorElement * > > chamberHistos
 
std::vector< std::string > chambers_
 
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_
 
std::vector< double > lctMaxBin_
 
std::vector< double > lctMinBin_
 
std::vector< unsigned > lctNBin_
 
std::vector< std::string > lctVars_
 
std::string monitorDir_
 
bool preTriggerAnalysis_
 

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 5 of file L1TdeCSCTPG.cc.

6  : dataALCT_token_(consumes<CSCALCTDigiCollection>(ps.getParameter<edm::InputTag>("dataALCT"))),
7  emulALCT_token_(consumes<CSCALCTDigiCollection>(ps.getParameter<edm::InputTag>("emulALCT"))),
8  dataCLCT_token_(consumes<CSCCLCTDigiCollection>(ps.getParameter<edm::InputTag>("dataCLCT"))),
9  emulCLCT_token_(consumes<CSCCLCTDigiCollection>(ps.getParameter<edm::InputTag>("emulCLCT"))),
10  emulpreCLCT_token_(consumes<CSCCLCTPreTriggerDigiCollection>(ps.getParameter<edm::InputTag>("emulpreCLCT"))),
11  dataLCT_token_(consumes<CSCCorrelatedLCTDigiCollection>(ps.getParameter<edm::InputTag>("dataLCT"))),
12  emulLCT_token_(consumes<CSCCorrelatedLCTDigiCollection>(ps.getParameter<edm::InputTag>("emulLCT"))),
13  monitorDir_(ps.getParameter<std::string>("monitorDir")),
14 
15  chambers_(ps.getParameter<std::vector<std::string>>("chambers")),
16  dataEmul_(ps.getParameter<std::vector<std::string>>("dataEmul")),
17 
18  // variables
19  alctVars_(ps.getParameter<std::vector<std::string>>("alctVars")),
20  clctVars_(ps.getParameter<std::vector<std::string>>("clctVars")),
21  lctVars_(ps.getParameter<std::vector<std::string>>("lctVars")),
22 
23  // binning
24  alctNBin_(ps.getParameter<std::vector<unsigned>>("alctNBin")),
25  clctNBin_(ps.getParameter<std::vector<unsigned>>("clctNBin")),
26  lctNBin_(ps.getParameter<std::vector<unsigned>>("lctNBin")),
27  alctMinBin_(ps.getParameter<std::vector<double>>("alctMinBin")),
28  clctMinBin_(ps.getParameter<std::vector<double>>("clctMinBin")),
29  lctMinBin_(ps.getParameter<std::vector<double>>("lctMinBin")),
30  alctMaxBin_(ps.getParameter<std::vector<double>>("alctMaxBin")),
31  clctMaxBin_(ps.getParameter<std::vector<double>>("clctMaxBin")),
32  lctMaxBin_(ps.getParameter<std::vector<double>>("lctMaxBin")),
33  B904Setup_(ps.getParameter<bool>("B904Setup")),
34  isRun3_(ps.getParameter<bool>("isRun3")),
35  preTriggerAnalysis_(ps.getParameter<bool>("preTriggerAnalysis")) {}

◆ ~L1TdeCSCTPG()

L1TdeCSCTPG::~L1TdeCSCTPG ( )
override

Definition at line 37 of file L1TdeCSCTPG.cc.

37 {}

Member Function Documentation

◆ analyze()

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

Reimplemented from DQMEDAnalyzer.

Definition at line 95 of file L1TdeCSCTPG.cc.

95  {
96  // handles
104 
105  e.getByToken(dataALCT_token_, dataALCTs);
106  e.getByToken(emulALCT_token_, emulALCTs);
107  e.getByToken(dataCLCT_token_, dataCLCTs);
108  e.getByToken(emulCLCT_token_, emulCLCTs);
109  e.getByToken(dataLCT_token_, dataLCTs);
110  e.getByToken(emulLCT_token_, emulLCTs);
111  // only do pre-trigger analysis when B904 setup is used
112  if (B904Setup_)
113  e.getByToken(emulpreCLCT_token_, emulpreCLCTs);
114 
115  for (auto it = dataALCTs->begin(); it != dataALCTs->end(); it++) {
116  auto range = dataALCTs->get((*it).first);
117  const int type = ((*it).first).iChamberType() - 2;
118  // ignore non-ME1/1 chambers when using B904 test-stand data
119  if (B904Setup_ and !((*it).first).isME11())
120  continue;
121  for (auto alct = range.first; alct != range.second; alct++) {
122  if (alct->isValid()) {
123  chamberHistos[type]["alct_quality_data"]->Fill(alct->getQuality());
124  chamberHistos[type]["alct_wiregroup_data"]->Fill(alct->getKeyWG());
125  chamberHistos[type]["alct_bx_data"]->Fill(alct->getBX());
126  }
127  }
128  }
129 
130  for (auto it = emulALCTs->begin(); it != emulALCTs->end(); it++) {
131  auto range = emulALCTs->get((*it).first);
132  const int type = ((*it).first).iChamberType() - 2;
133  // ignore non-ME1/1 chambers when using B904 test-stand data
134  if (B904Setup_ and !((*it).first).isME11())
135  continue;
136  for (auto alct = range.first; alct != range.second; alct++) {
137  if (alct->isValid()) {
138  chamberHistos[type]["alct_quality_emul"]->Fill(alct->getQuality());
139  chamberHistos[type]["alct_wiregroup_emul"]->Fill(alct->getKeyWG());
140  chamberHistos[type]["alct_bx_emul"]->Fill(alct->getBX());
141  }
142  }
143  }
144 
145  // temporary containers for B904 analysis
146  std::vector<CSCCLCTDigi> tempdata;
147  std::vector<CSCCLCTDigi> tempemul;
148 
149  for (auto it = dataCLCTs->begin(); it != dataCLCTs->end(); it++) {
150  auto range = dataCLCTs->get((*it).first);
151  const int type = ((*it).first).iChamberType() - 2;
152  // ignore non-ME1/1 chambers when using B904 test-stand data
153  if (B904Setup_ and !((*it).first).isME11())
154  continue;
155  for (auto clct = range.first; clct != range.second; clct++) {
156  if (clct->isValid()) {
157  if (preTriggerAnalysis_) {
158  tempdata.push_back(*clct);
159  }
160  chamberHistos[type]["clct_pattern_data"]->Fill(clct->getPattern());
161  chamberHistos[type]["clct_quality_data"]->Fill(clct->getQuality());
162  chamberHistos[type]["clct_halfstrip_data"]->Fill(clct->getKeyStrip());
163  chamberHistos[type]["clct_bend_data"]->Fill(clct->getBend());
164  if (isRun3_) {
165  chamberHistos[type]["clct_run3pattern_data"]->Fill(clct->getRun3Pattern());
166  chamberHistos[type]["clct_quartstrip_data"]->Fill(clct->getKeyStrip(4));
167  chamberHistos[type]["clct_eighthstrip_data"]->Fill(clct->getKeyStrip(8));
168  chamberHistos[type]["clct_slope_data"]->Fill(clct->getSlope());
169  chamberHistos[type]["clct_compcode_data"]->Fill(clct->getCompCode());
170  if (B904Setup_) {
171  chamberHistos[type]["clct_quartstripbit_data"]->Fill(clct->getQuartStripBit());
172  chamberHistos[type]["clct_eighthstripbit_data"]->Fill(clct->getEighthStripBit());
173  }
174  }
175  }
176  }
177  }
178 
179  for (auto it = emulCLCTs->begin(); it != emulCLCTs->end(); it++) {
180  auto range = emulCLCTs->get((*it).first);
181  const int type = ((*it).first).iChamberType() - 2;
182  // ignore non-ME1/1 chambers when using B904 test-stand data
183  if (B904Setup_ and !((*it).first).isME11())
184  continue;
185  // remove the duplicate CLCTs
186  // these are CLCTs that have the same properties as CLCTs found
187  // before by the emulator, except for the BX, which is off by +1
188  std::vector<CSCCLCTDigi> cleanedemul;
189  for (auto clct = range.first; clct != range.second; clct++) {
190  if (not isDuplicateCLCT(*clct, cleanedemul))
191  cleanedemul.push_back(*clct);
192  }
193  for (const auto& clct : cleanedemul) {
194  if (clct.isValid()) {
195  if (preTriggerAnalysis_) {
196  tempemul.push_back(clct);
197  }
198  chamberHistos[type]["clct_pattern_emul"]->Fill(clct.getPattern());
199  chamberHistos[type]["clct_quality_emul"]->Fill(clct.getQuality());
200  chamberHistos[type]["clct_halfstrip_emul"]->Fill(clct.getKeyStrip());
201  chamberHistos[type]["clct_bend_emul"]->Fill(clct.getBend());
202  if (isRun3_) {
203  chamberHistos[type]["clct_run3pattern_emul"]->Fill(clct.getRun3Pattern());
204  chamberHistos[type]["clct_quartstrip_emul"]->Fill(clct.getKeyStrip(4));
205  chamberHistos[type]["clct_eighthstrip_emul"]->Fill(clct.getKeyStrip(8));
206  chamberHistos[type]["clct_slope_emul"]->Fill(clct.getSlope());
207  chamberHistos[type]["clct_compcode_emul"]->Fill(clct.getCompCode());
208  if (B904Setup_) {
209  chamberHistos[type]["clct_quartstripbit_emul"]->Fill(clct.getQuartStripBit());
210  chamberHistos[type]["clct_eighthstripbit_emul"]->Fill(clct.getEighthStripBit());
211  }
212  }
213  }
214  }
215  }
216 
217  // Pre-trigger analysis
218  if (preTriggerAnalysis_) {
219  if (tempdata.size() != tempemul.size()) {
220  for (auto& clct : tempdata) {
221  edm::LogWarning("L1TdeCSCTPG") << "data" << clct;
222  }
223  for (auto& clct : tempemul) {
224  edm::LogWarning("L1TdeCSCTPG") << "emul" << clct;
225  }
226  for (auto it = emulpreCLCTs->begin(); it != emulpreCLCTs->end(); it++) {
227  auto range = emulpreCLCTs->get((*it).first);
228  for (auto clct = range.first; clct != range.second; clct++) {
229  edm::LogWarning("L1TdeCSCTPG") << "emul pre" << *clct;
230  }
231  }
232  }
233  }
234 
235  for (auto it = dataLCTs->begin(); it != dataLCTs->end(); it++) {
236  auto range = dataLCTs->get((*it).first);
237  const int type = ((*it).first).iChamberType() - 2;
238  // ignore non-ME1/1 chambers when using B904 test-stand data
239  if (B904Setup_ and !((*it).first).isME11())
240  continue;
241  for (auto lct = range.first; lct != range.second; lct++) {
242  if (lct->isValid()) {
243  chamberHistos[type]["lct_pattern_data"]->Fill(lct->getPattern());
244  chamberHistos[type]["lct_quality_data"]->Fill(lct->getQuality());
245  chamberHistos[type]["lct_wiregroup_data"]->Fill(lct->getKeyWG());
246  chamberHistos[type]["lct_halfstrip_data"]->Fill(lct->getStrip());
247  chamberHistos[type]["lct_bend_data"]->Fill(lct->getBend());
248  if (isRun3_) {
249  chamberHistos[type]["lct_run3pattern_data"]->Fill(lct->getRun3Pattern());
250  chamberHistos[type]["lct_slope_data"]->Fill(lct->getSlope());
251  chamberHistos[type]["lct_quartstrip_data"]->Fill(lct->getStrip(4));
252  chamberHistos[type]["lct_eighthstrip_data"]->Fill(lct->getStrip(8));
253  if (B904Setup_) {
254  chamberHistos[type]["lct_quartstripbit_data"]->Fill(lct->getQuartStripBit());
255  chamberHistos[type]["lct_eighthstripbit_data"]->Fill(lct->getEighthStripBit());
256  }
257  }
258  }
259  }
260  }
261 
262  for (auto it = emulLCTs->begin(); it != emulLCTs->end(); it++) {
263  auto range = emulLCTs->get((*it).first);
264  const int type = ((*it).first).iChamberType() - 2;
265  // ignore non-ME1/1 chambers when using B904 test-stand data
266  if (B904Setup_ and !((*it).first).isME11())
267  continue;
268 
269  // remove the duplicate LCTs
270  // these are LCTs that have the same properties as LCTs found
271  // before by the emulator, except for the BX, which is off by +1
272  std::vector<CSCCorrelatedLCTDigi> cleanedemul;
273  for (auto lct = range.first; lct != range.second; lct++) {
274  if (not isDuplicateLCT(*lct, cleanedemul))
275  cleanedemul.push_back(*lct);
276  }
277 
278  for (const auto& lct : cleanedemul) {
279  if (lct.isValid()) {
280  chamberHistos[type]["lct_pattern_emul"]->Fill(lct.getPattern());
281  chamberHistos[type]["lct_quality_emul"]->Fill(lct.getQuality());
282  chamberHistos[type]["lct_wiregroup_emul"]->Fill(lct.getKeyWG());
283  chamberHistos[type]["lct_halfstrip_emul"]->Fill(lct.getStrip());
284  chamberHistos[type]["lct_bend_emul"]->Fill(lct.getBend());
285  if (isRun3_) {
286  chamberHistos[type]["lct_run3pattern_emul"]->Fill(lct.getRun3Pattern());
287  chamberHistos[type]["lct_slope_emul"]->Fill(lct.getSlope());
288  chamberHistos[type]["lct_quartstrip_emul"]->Fill(lct.getStrip(4));
289  chamberHistos[type]["lct_eighthstrip_emul"]->Fill(lct.getStrip(8));
290  if (B904Setup_) {
291  chamberHistos[type]["lct_quartstripbit_emul"]->Fill(lct.getQuartStripBit());
292  chamberHistos[type]["lct_eighthstripbit_emul"]->Fill(lct.getEighthStripBit());
293  }
294  }
295  }
296  }
297  }
298 }

References B904Setup_, MuonDigiCollection< IndexType, DigiType >::begin(), chamberHistos, dataALCT_token_, dataCLCT_token_, dataLCT_token_, MillePedeFileConverter_cfg::e, emulALCT_token_, emulCLCT_token_, emulLCT_token_, emulpreCLCT_token_, MuonDigiCollection< IndexType, DigiType >::end(), MuonDigiCollection< IndexType, DigiType >::get(), isDuplicateCLCT(), isDuplicateLCT(), isRun3_, preTriggerAnalysis_, and FastTimerService_cff::range.

◆ bookHistograms()

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

Implements DQMEDAnalyzer.

Definition at line 39 of file L1TdeCSCTPG.cc.

39  {
41 
42  // do not analyze Run-3 properties in Run-1 and Run-2 eras
43  if (!isRun3_) {
44  clctVars_.resize(4);
45  lctVars_.resize(5);
46  }
47 
48  // remove the non-ME1/1 chambers from the list when B904Setup is set to true
49  if (B904Setup_) {
50  chambers_.resize(1);
51  }
52  // do not analyze the 1/4-strip bit, 1/8-strip bit
53  else {
54  clctVars_.resize(9);
55  lctVars_.resize(9);
56  }
57 
58  // chamber type
59  for (unsigned iType = 0; iType < chambers_.size(); iType++) {
60  // data vs emulator
61  for (unsigned iData = 0; iData < dataEmul_.size(); iData++) {
62  // alct variable
63  for (unsigned iVar = 0; iVar < alctVars_.size(); iVar++) {
64  const std::string key("alct_" + alctVars_[iVar] + "_" + dataEmul_[iData]);
65  const std::string histName(key + "_" + chambers_[iType]);
66  const std::string histTitle(chambers_[iType] + " ALCT " + alctVars_[iVar] + " (" + dataEmul_[iData] + ") ");
67  chamberHistos[iType][key] =
68  iBooker.book1D(histName, histTitle, alctNBin_[iVar], alctMinBin_[iVar], alctMaxBin_[iVar]);
69  chamberHistos[iType][key]->getTH1()->SetMinimum(0);
70  }
71 
72  // clct variable
73  for (unsigned iVar = 0; iVar < clctVars_.size(); iVar++) {
74  const std::string key("clct_" + clctVars_[iVar] + "_" + dataEmul_[iData]);
75  const std::string histName(key + "_" + chambers_[iType]);
76  const std::string histTitle(chambers_[iType] + " CLCT " + clctVars_[iVar] + " (" + dataEmul_[iData] + ") ");
77  chamberHistos[iType][key] =
78  iBooker.book1D(histName, histTitle, clctNBin_[iVar], clctMinBin_[iVar], clctMaxBin_[iVar]);
79  chamberHistos[iType][key]->getTH1()->SetMinimum(0);
80  }
81 
82  // lct variable
83  for (unsigned iVar = 0; iVar < lctVars_.size(); iVar++) {
84  const std::string key("lct_" + lctVars_[iVar] + "_" + dataEmul_[iData]);
85  const std::string histName(key + "_" + chambers_[iType]);
86  const std::string histTitle(chambers_[iType] + " LCT " + lctVars_[iVar] + " (" + dataEmul_[iData] + ") ");
87  chamberHistos[iType][key] =
88  iBooker.book1D(histName, histTitle, lctNBin_[iVar], lctMinBin_[iVar], lctMaxBin_[iVar]);
89  chamberHistos[iType][key]->getTH1()->SetMinimum(0);
90  }
91  }
92  }
93 }

References alctMaxBin_, alctMinBin_, alctNBin_, alctVars_, B904Setup_, dqm::implementation::IBooker::book1D(), chamberHistos, chambers_, clctMaxBin_, clctMinBin_, clctNBin_, clctVars_, dataEmul_, B2GTnPMonitor_cfi::histTitle, isRun3_, crabWrapper::key, lctMaxBin_, lctMinBin_, lctNBin_, lctVars_, monitorDir_, dqm::implementation::NavigatorBase::setCurrentFolder(), and AlCaHLTBitMon_QueryRunRegistry::string.

◆ isCLCTOffByOneBX()

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

Definition at line 327 of file L1TdeCSCTPG.cc.

327  {
328  // because the comparator code is degenerate (several comparator codes can produce the
329  // same slope and position), we leave it out of the comparison
330  bool returnValue = false;
331  if (lhs.isValid() == rhs.isValid() && lhs.getQuality() == rhs.getQuality() && lhs.getPattern() == rhs.getPattern() &&
332  lhs.getRun3Pattern() == rhs.getRun3Pattern() && lhs.getKeyStrip() == rhs.getKeyStrip() &&
333  lhs.getStripType() == rhs.getStripType() && lhs.getBend() == rhs.getBend() && lhs.getBX() == rhs.getBX() + 1 &&
334  lhs.getQuartStripBit() == rhs.getQuartStripBit() && lhs.getEighthStripBit() == rhs.getEighthStripBit()) {
335  returnValue = true;
336  }
337  return returnValue;
338 }

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

Referenced by isDuplicateCLCT().

◆ isDuplicateCLCT()

bool L1TdeCSCTPG::isDuplicateCLCT ( const CSCCLCTDigi clct,
const std::vector< CSCCLCTDigi > &  container 
) const
private

Definition at line 300 of file L1TdeCSCTPG.cc.

300  {
301  // if the temporary container is empty, the TP cannot be a duplicate
302  if (container.empty())
303  return false;
304  else {
305  for (const auto& rhs : container) {
306  if (isCLCTOffByOneBX(clct, rhs))
307  return true;
308  }
309  return false;
310  }
311 }

References isCLCTOffByOneBX().

Referenced by analyze().

◆ isDuplicateLCT()

bool L1TdeCSCTPG::isDuplicateLCT ( const CSCCorrelatedLCTDigi lct,
const std::vector< CSCCorrelatedLCTDigi > &  container 
) const
private

Definition at line 313 of file L1TdeCSCTPG.cc.

314  {
315  // if the temporary container is empty, the TP cannot be a duplicate
316  if (container.empty())
317  return false;
318  else {
319  for (const auto& rhs : container) {
320  if (isLCTOffByOneBX(lct, rhs))
321  return true;
322  }
323  return false;
324  }
325 }

References isLCTOffByOneBX().

Referenced by analyze().

◆ isLCTOffByOneBX()

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

Definition at line 340 of file L1TdeCSCTPG.cc.

340  {
341  bool returnValue = false;
342  if (lhs.isValid() == rhs.isValid() && lhs.getQuality() == rhs.getQuality() && lhs.getPattern() == rhs.getPattern() &&
343  lhs.getRun3Pattern() == rhs.getRun3Pattern() && lhs.getStrip() == rhs.getStrip() &&
344  lhs.getStripType() == rhs.getStripType() && lhs.getBend() == rhs.getBend() && lhs.getBX() == rhs.getBX() + 1 &&
345  lhs.getQuartStripBit() == rhs.getQuartStripBit() && lhs.getEighthStripBit() == rhs.getEighthStripBit() &&
346  lhs.getKeyWG() == rhs.getKeyWG()) {
347  returnValue = true;
348  }
349  return returnValue;
350 }

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

Referenced by isDuplicateLCT().

Member Data Documentation

◆ alctMaxBin_

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

Definition at line 57 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ alctMinBin_

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

Definition at line 54 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ alctNBin_

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

Definition at line 51 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ alctVars_

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

Definition at line 47 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ B904Setup_

bool L1TdeCSCTPG::B904Setup_
private

Definition at line 66 of file L1TdeCSCTPG.h.

Referenced by analyze(), and bookHistograms().

◆ chamberHistos

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

Definition at line 75 of file L1TdeCSCTPG.h.

Referenced by analyze(), and bookHistograms().

◆ chambers_

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

Definition at line 44 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ clctMaxBin_

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

Definition at line 58 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ clctMinBin_

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

Definition at line 55 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ clctNBin_

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

Definition at line 52 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ clctVars_

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

Definition at line 48 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ dataALCT_token_

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

Definition at line 34 of file L1TdeCSCTPG.h.

Referenced by analyze().

◆ dataCLCT_token_

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

Definition at line 36 of file L1TdeCSCTPG.h.

Referenced by analyze().

◆ dataEmul_

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

Definition at line 45 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ dataLCT_token_

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

Definition at line 39 of file L1TdeCSCTPG.h.

Referenced by analyze().

◆ emulALCT_token_

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

Definition at line 35 of file L1TdeCSCTPG.h.

Referenced by analyze().

◆ emulCLCT_token_

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

Definition at line 37 of file L1TdeCSCTPG.h.

Referenced by analyze().

◆ emulLCT_token_

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

Definition at line 40 of file L1TdeCSCTPG.h.

Referenced by analyze().

◆ emulpreCLCT_token_

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

Definition at line 38 of file L1TdeCSCTPG.h.

Referenced by analyze().

◆ isRun3_

bool L1TdeCSCTPG::isRun3_
private

Definition at line 68 of file L1TdeCSCTPG.h.

Referenced by analyze(), and bookHistograms().

◆ lctMaxBin_

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

Definition at line 59 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ lctMinBin_

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

Definition at line 56 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ lctNBin_

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

Definition at line 53 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ lctVars_

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

Definition at line 49 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ monitorDir_

std::string L1TdeCSCTPG::monitorDir_
private

Definition at line 41 of file L1TdeCSCTPG.h.

Referenced by bookHistograms().

◆ preTriggerAnalysis_

bool L1TdeCSCTPG::preTriggerAnalysis_
private

Definition at line 71 of file L1TdeCSCTPG.h.

Referenced by analyze().

L1TdeCSCTPG::dataLCT_token_
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollection > dataLCT_token_
Definition: L1TdeCSCTPG.h:39
FastTimerService_cff.range
range
Definition: FastTimerService_cff.py:34
L1TdeCSCTPG::alctVars_
std::vector< std::string > alctVars_
Definition: L1TdeCSCTPG.h:47
CSCCorrelatedLCTDigi::getEighthStripBit
bool getEighthStripBit() const
get single eighth strip bit
Definition: CSCCorrelatedLCTDigi.h:88
CSCCorrelatedLCTDigi::getRun3Pattern
uint16_t getRun3Pattern() const
return the Run-3 pattern ID
Definition: CSCCorrelatedLCTDigi.h:113
L1TdeCSCTPG::lctMaxBin_
std::vector< double > lctMaxBin_
Definition: L1TdeCSCTPG.h:59
CSCCorrelatedLCTDigi::getQuartStripBit
bool getQuartStripBit() const
get single quart strip bit
Definition: CSCCorrelatedLCTDigi.h:82
CSCCorrelatedLCTDigi::getStrip
uint16_t getStrip(uint16_t n=2) const
return the key halfstrip from 0,159
Definition: CSCCorrelatedLCTDigi.cc:86
CSCCorrelatedLCTDigi::getKeyWG
uint16_t getKeyWG() const
return the key wire group. counts from 0.
Definition: CSCCorrelatedLCTDigi.h:73
CSCCLCTDigi::getEighthStripBit
bool getEighthStripBit() const
get single eighth strip bit
Definition: CSCCLCTDigi.h:114
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
CSCCLCTDigi::getKeyStrip
uint16_t getKeyStrip(const uint16_t n=2) const
Definition: CSCCLCTDigi.cc:99
edm::Handle< CSCALCTDigiCollection >
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
L1TdeCSCTPG::alctNBin_
std::vector< unsigned > alctNBin_
Definition: L1TdeCSCTPG.h:51
L1TdeCSCTPG::emulLCT_token_
edm::EDGetTokenT< CSCCorrelatedLCTDigiCollection > emulLCT_token_
Definition: L1TdeCSCTPG.h:40
L1TdeCSCTPG::isCLCTOffByOneBX
bool isCLCTOffByOneBX(const CSCCLCTDigi &lhs, const CSCCLCTDigi &rhs) const
Definition: L1TdeCSCTPG.cc:327
CSCCLCTDigi::getQuality
uint16_t getQuality() const
return quality of a pattern (number of layers hit!)
Definition: CSCCLCTDigi.h:56
CSCCLCTDigi::getQuartStripBit
bool getQuartStripBit() const
get single quart strip bit
Definition: CSCCLCTDigi.h:108
CSCCLCTDigi::getBend
uint16_t getBend() const
Definition: CSCCLCTDigi.h:93
L1TdeCSCTPG::isRun3_
bool isRun3_
Definition: L1TdeCSCTPG.h:68
L1TdeCSCTPG::preTriggerAnalysis_
bool preTriggerAnalysis_
Definition: L1TdeCSCTPG.h:71
L1TdeCSCTPG::alctMinBin_
std::vector< double > alctMinBin_
Definition: L1TdeCSCTPG.h:54
L1TdeCSCTPG::B904Setup_
bool B904Setup_
Definition: L1TdeCSCTPG.h:66
MuonDigiCollection::end
DigiRangeIterator end() const
Definition: MuonDigiCollection.h:136
L1TdeCSCTPG::chamberHistos
std::map< uint32_t, std::map< std::string, MonitorElement * > > chamberHistos
Definition: L1TdeCSCTPG.h:75
CSCCorrelatedLCTDigi::getBend
uint16_t getBend() const
Definition: CSCCorrelatedLCTDigi.h:126
MuonDigiCollection::begin
DigiRangeIterator begin() const
Definition: MuonDigiCollection.h:134
L1TdeCSCTPG::isLCTOffByOneBX
bool isLCTOffByOneBX(const CSCCorrelatedLCTDigi &lhs, const CSCCorrelatedLCTDigi &rhs) const
Definition: L1TdeCSCTPG.cc:340
CSCCorrelatedLCTDigi::getStripType
uint16_t getStripType() const
return strip type (obsolete since mid-2008)
Definition: CSCCorrelatedLCTDigi.h:139
B2GTnPMonitor_cfi.histTitle
histTitle
Definition: B2GTnPMonitor_cfi.py:112
type
type
Definition: SiPixelVCal_PayloadInspector.cc:39
gainCalibHelper::gainCalibPI::type
type
Definition: SiPixelGainCalibHelper.h:40
CSCCLCTDigi::getStripType
uint16_t getStripType() const
return striptype
Definition: CSCCLCTDigi.h:85
L1TdeCSCTPG::alctMaxBin_
std::vector< double > alctMaxBin_
Definition: L1TdeCSCTPG.h:57
CSCCLCTDigi::isValid
bool isValid() const
check CLCT validity (1 - valid CLCT)
Definition: CSCCLCTDigi.h:50
MuonDigiCollection::get
Range get(const IndexType &index) const
return the digis for a given DetUnit
Definition: MuonDigiCollection.h:121
L1TdeCSCTPG::emulALCT_token_
edm::EDGetTokenT< CSCALCTDigiCollection > emulALCT_token_
Definition: L1TdeCSCTPG.h:35
L1TdeCSCTPG::lctNBin_
std::vector< unsigned > lctNBin_
Definition: L1TdeCSCTPG.h:53
L1TdeCSCTPG::chambers_
std::vector< std::string > chambers_
Definition: L1TdeCSCTPG.h:44
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
L1TdeCSCTPG::clctMaxBin_
std::vector< double > clctMaxBin_
Definition: L1TdeCSCTPG.h:58
CSCCLCTDigi::getBX
uint16_t getBX() const
return BX
Definition: CSCCLCTDigi.h:123
L1TdeCSCTPG::emulpreCLCT_token_
edm::EDGetTokenT< CSCCLCTPreTriggerDigiCollection > emulpreCLCT_token_
Definition: L1TdeCSCTPG.h:38
L1TdeCSCTPG::clctNBin_
std::vector< unsigned > clctNBin_
Definition: L1TdeCSCTPG.h:52
L1TdeCSCTPG::dataCLCT_token_
edm::EDGetTokenT< CSCCLCTDigiCollection > dataCLCT_token_
Definition: L1TdeCSCTPG.h:36
L1TdeCSCTPG::isDuplicateCLCT
bool isDuplicateCLCT(const CSCCLCTDigi &clct, const std::vector< CSCCLCTDigi > &container) const
Definition: L1TdeCSCTPG.cc:300
L1TdeCSCTPG::lctMinBin_
std::vector< double > lctMinBin_
Definition: L1TdeCSCTPG.h:56
CSCCorrelatedLCTDigi::getPattern
uint16_t getPattern() const
return the Run-2 pattern ID
Definition: CSCCorrelatedLCTDigi.h:110
L1TdeCSCTPG::emulCLCT_token_
edm::EDGetTokenT< CSCCLCTDigiCollection > emulCLCT_token_
Definition: L1TdeCSCTPG.h:37
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
L1TdeCSCTPG::isDuplicateLCT
bool isDuplicateLCT(const CSCCorrelatedLCTDigi &lct, const std::vector< CSCCorrelatedLCTDigi > &container) const
Definition: L1TdeCSCTPG.cc:313
L1TdeCSCTPG::clctVars_
std::vector< std::string > clctVars_
Definition: L1TdeCSCTPG.h:48
CSCCLCTDigi::getPattern
uint16_t getPattern() const
return pattern
Definition: CSCCLCTDigi.h:62
CSCCorrelatedLCTDigi::getBX
uint16_t getBX() const
return BX
Definition: CSCCorrelatedLCTDigi.h:129
L1TdeCSCTPG::dataEmul_
std::vector< std::string > dataEmul_
Definition: L1TdeCSCTPG.h:45
CSCCorrelatedLCTDigi::isValid
bool isValid() const
return valid pattern bit
Definition: CSCCorrelatedLCTDigi.h:67
crabWrapper.key
key
Definition: crabWrapper.py:19
L1TdeCSCTPG::monitorDir_
std::string monitorDir_
Definition: L1TdeCSCTPG.h:41
CSCCorrelatedLCTDigi::getQuality
uint16_t getQuality() const
return the Quality
Definition: CSCCorrelatedLCTDigi.h:70
L1TdeCSCTPG::lctVars_
std::vector< std::string > lctVars_
Definition: L1TdeCSCTPG.h:49
edm::InputTag
Definition: InputTag.h:15
L1TdeCSCTPG::clctMinBin_
std::vector< double > clctMinBin_
Definition: L1TdeCSCTPG.h:55
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
L1TdeCSCTPG::dataALCT_token_
edm::EDGetTokenT< CSCALCTDigiCollection > dataALCT_token_
Definition: L1TdeCSCTPG.h:34
CSCCLCTDigi::getRun3Pattern
uint16_t getRun3Pattern() const
return pattern
Definition: CSCCLCTDigi.h:68