@@ -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
177191void 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