Skip to content

Commit bae2d80

Browse files
authored
Merge pull request cms-sw#42990 from dinyar/fix-ugt-deMismatch-ratio
Fix ratio plot for uGT data-emulator mismatches
2 parents 92957fe + e1b4e76 commit bae2d80

File tree

2 files changed

+64
-28
lines changed

2 files changed

+64
-28
lines changed

DQM/L1TMonitor/interface/L1TdeStage2uGT.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,8 +59,10 @@ class L1TdeStage2uGT : public DQMEDAnalyzer {
5959
int firstBx, lastBx;
6060

6161
std::map<std::string, MonitorElement*> m_HistNamesInitial, m_HistNamesFinal, m_SummaryHistograms;
62-
MonitorElement* initDecisionMismatches_vs_LS;
63-
MonitorElement* finalDecisionMismatches_vs_LS;
62+
MonitorElement* initDecisionMismatchesDnoE_vs_LS;
63+
MonitorElement* initDecisionMismatchesEnoD_vs_LS;
64+
MonitorElement* finalDecisionMismatchesDnoE_vs_LS;
65+
MonitorElement* finalDecisionMismatchesEnoD_vs_LS;
6466
MonitorElement* m_normalizationHisto;
6567

6668
enum SummaryColumn {

DQM/L1TMonitor/src/L1TdeStage2uGT.cc

Lines changed: 60 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -95,10 +95,14 @@ void L1TdeStage2uGT::analyze(const edm::Event& event, const edm::EventSetup& es)
9595
bxt << "BX" << ibx;
9696
}
9797
std::string hname, hsummary;
98-
float wt;
9998

10099
hsummary = "dataEmulSummary_" + bxt.str();
101100

101+
bool foundInitalMismatchDataNoEmul{false};
102+
bool foundInitalMismatchEmulNoData{false};
103+
bool foundFinalMismatchDataNoEmul{false};
104+
bool foundFinalMismatchEmulNoData{false};
105+
// Looping over the algo blocks from each trigger board
102106
std::vector<GlobalAlgBlk>::const_iterator it_data, it_emul;
103107
for (it_data = dataCollection->begin(ibx), it_emul = emulCollection->begin(ibx);
104108
it_data != dataCollection->end(ibx) && it_emul != emulCollection->end(ibx);
@@ -131,15 +135,14 @@ void L1TdeStage2uGT::analyze(const edm::Event& event, const edm::EventSetup& es)
131135
if (it_data->getAlgoDecisionInitial(algoBit) != it_emul->getAlgoDecisionInitial(algoBit)) {
132136
if (it_data->getAlgoDecisionInitial(algoBit)) {
133137
hname = "DataNoEmul_" + bxt.str();
134-
fillHist(m_SummaryHistograms, hsummary, float(NInitalMismatchDataNoEmul), 1.);
135-
wt = 1;
138+
foundInitalMismatchDataNoEmul = true;
139+
initDecisionMismatchesDnoE_vs_LS->Fill(float(lumi));
136140
} else {
137141
hname = "EmulatorNoData_" + bxt.str();
138-
fillHist(m_SummaryHistograms, hsummary, float(NInitalMismatchEmulNoData), 1.);
139-
wt = -1;
142+
foundInitalMismatchEmulNoData = true;
143+
initDecisionMismatchesEnoD_vs_LS->Fill(float(lumi));
140144
}
141145
fillHist(m_HistNamesInitial, hname, float(algoBit), 1.);
142-
initDecisionMismatches_vs_LS->Fill(float(lumi), wt);
143146
}
144147

145148
// Check final decisions
@@ -157,21 +160,32 @@ void L1TdeStage2uGT::analyze(const edm::Event& event, const edm::EventSetup& es)
157160
if (unprescaled) {
158161
if (it_data->getAlgoDecisionFinal(algoBit)) {
159162
hname = "DataNoEmul_" + bxt.str();
160-
fillHist(m_SummaryHistograms, hsummary, float(NFinalMismatchDataNoEmul), 1.);
161-
wt = 1;
163+
foundFinalMismatchDataNoEmul = true;
164+
finalDecisionMismatchesDnoE_vs_LS->Fill(float(lumi));
162165
} else {
163166
hname = "EmulatorNoData_" + bxt.str();
164-
fillHist(m_SummaryHistograms, hsummary, float(NFinalMismatchEmulNoData), 1.);
165-
wt = -1;
167+
foundFinalMismatchEmulNoData = true;
168+
finalDecisionMismatchesEnoD_vs_LS->Fill(float(lumi));
166169
}
167170
fillHist(m_HistNamesFinal, hname, float(algoBit), 1.);
168-
finalDecisionMismatches_vs_LS->Fill(float(lumi), wt);
169171
}
170172
}
171173

172174
} // end loop over algoBits
173175
} // end loop over globalalgblk vector
174-
} // endof loop over BX collections
176+
if (foundInitalMismatchDataNoEmul) {
177+
fillHist(m_SummaryHistograms, hsummary, float(NInitalMismatchDataNoEmul), 1.);
178+
}
179+
if (foundInitalMismatchEmulNoData) {
180+
fillHist(m_SummaryHistograms, hsummary, float(NInitalMismatchEmulNoData), 1.);
181+
}
182+
if (foundFinalMismatchDataNoEmul) {
183+
fillHist(m_SummaryHistograms, hsummary, float(NFinalMismatchDataNoEmul), 1.);
184+
}
185+
if (foundFinalMismatchEmulNoData) {
186+
fillHist(m_SummaryHistograms, hsummary, float(NFinalMismatchEmulNoData), 1.);
187+
}
188+
} // endof loop over BX collections
175189
}
176190

177191
void L1TdeStage2uGT::bookHistograms(DQMStore::IBooker& ibooker, const edm::Run& run, const edm::EventSetup& es) {
@@ -220,13 +234,23 @@ void L1TdeStage2uGT::bookHistograms(DQMStore::IBooker& ibooker, const edm::Run&
220234

221235
// book initial decisions histograms
222236
ibooker.setCurrentFolder(histFolder_ + "/InitialDecisionMismatches");
223-
initDecisionMismatches_vs_LS = ibooker.book1D("initialDecisionMismatches_vs_LS",
224-
"uGT initial decision mismatches vs Luminosity Segment",
225-
numLS_,
226-
0.,
227-
double(numLS_));
228-
initDecisionMismatches_vs_LS->setAxisTitle("Events with Initial Decision Mismatch", /* axis */ 2);
229-
initDecisionMismatches_vs_LS->setAxisTitle("Luminosity Segment");
237+
initDecisionMismatchesDnoE_vs_LS =
238+
ibooker.book1D("initialDecisionMismatchesDnoE_vs_LS",
239+
"uGT initial decision mismatches (Data, but no emu) vs Luminosity Segment",
240+
numLS_,
241+
0.,
242+
double(numLS_));
243+
initDecisionMismatchesDnoE_vs_LS->setAxisTitle("Events with Initial Decision Mismatch", /* axis */ 2);
244+
initDecisionMismatchesDnoE_vs_LS->setAxisTitle("Luminosity Segment");
245+
246+
initDecisionMismatchesEnoD_vs_LS =
247+
ibooker.book1D("initialDecisionMismatchesEnoD_vs_LS",
248+
"uGT initial decision mismatches (Emu, but no data) vs Luminosity Segment",
249+
numLS_,
250+
0.,
251+
double(numLS_));
252+
initDecisionMismatchesEnoD_vs_LS->setAxisTitle("Events with Initial Decision Mismatch", /* axis */ 2);
253+
initDecisionMismatchesEnoD_vs_LS->setAxisTitle("Luminosity Segment");
230254

231255
hname = "DataNoEmul_" + bxt.str();
232256
htitle = "uGT data-emul mismatch -- Data fired but not Emulator --" + bxn.str();
@@ -238,13 +262,23 @@ void L1TdeStage2uGT::bookHistograms(DQMStore::IBooker& ibooker, const edm::Run&
238262

239263
// book final decisions histograms
240264
ibooker.setCurrentFolder(histFolder_ + "/FinalDecisionMismatches");
241-
finalDecisionMismatches_vs_LS = ibooker.book1D("finalDecisionMismatches_vs_LS",
242-
"uGT final decision mismatches vs Luminosity Segment",
243-
numLS_,
244-
0.,
245-
double(numLS_));
246-
finalDecisionMismatches_vs_LS->setAxisTitle("Events with Final Decision Mismatch", /* axis */ 2);
247-
finalDecisionMismatches_vs_LS->setAxisTitle("Luminosity Segment");
265+
finalDecisionMismatchesDnoE_vs_LS =
266+
ibooker.book1D("finalDecisionMismatchesDnoE_vs_LS",
267+
"uGT final decision mismatches (Data, but no emu) vs Luminosity Segment",
268+
numLS_,
269+
0.,
270+
double(numLS_));
271+
finalDecisionMismatchesDnoE_vs_LS->setAxisTitle("Events with Final Decision Mismatch", /* axis */ 2);
272+
finalDecisionMismatchesDnoE_vs_LS->setAxisTitle("Luminosity Segment");
273+
274+
finalDecisionMismatchesEnoD_vs_LS =
275+
ibooker.book1D("finalDecisionMismatchesEnoD_vs_LS",
276+
"uGT final decision mismatches (Emu, but no data) vs Luminosity Segment",
277+
numLS_,
278+
0.,
279+
double(numLS_));
280+
finalDecisionMismatchesEnoD_vs_LS->setAxisTitle("Events with Final Decision Mismatch", /* axis */ 2);
281+
finalDecisionMismatchesEnoD_vs_LS->setAxisTitle("Luminosity Segment");
248282

249283
hname = "DataNoEmul_" + bxt.str();
250284
htitle = "uGT data-emul mismatch -- Data fired but not Emulator --" + bxn.str();

0 commit comments

Comments
 (0)