User will overwrite this function. Histogram booking is no longer done in C++. This function is called in execute once the filters are all passed.
60 {
62
63
64 if(m_trigDecTool->ExperimentalAndExpertMethods().isHLTTruncated()){
66 return StatusCode::SUCCESS;
67 }
68
69
70
72 if (! eventInfo.isValid() ){
74 }
75
76
77 SG::ReadHandle<xAOD::ElectronContainer> hlt_electron_cont(m_hlt_electron_key, ctx);
78 if (! hlt_electron_cont.isValid() ) {
79 ATH_MSG_DEBUG(
"Container "<< m_hlt_electron_key <<
" does not exist");
80 }
81
82 SG::ReadHandle<xAOD::MuonContainer> hlt_muon_cont(m_hlt_muon_key, ctx);
83 if (! hlt_muon_cont.isValid() ) {
84 ATH_MSG_DEBUG(
"Container "<< m_hlt_muon_key <<
" does not exist");
85 }
86
87
88 SG::ReadHandle<xAOD::CaloClusterContainer> hlt_topoclusters_cont(m_topoclusters_key, ctx);
89 if (! hlt_topoclusters_cont.isValid() ) {
90 ATH_MSG_DEBUG(
"Container "<< m_topoclusters_key <<
" does not exist");
91 }
92
93
94 SG::ReadHandle<xAOD::TrackParticleContainer> hlt_tracks_cont(m_tracks_key, ctx);
95 if (! hlt_tracks_cont.isValid() ) {
96 ATH_MSG_DEBUG(
"Container "<< m_tracks_key <<
" does not exist");
97 }
98
99
100 SG::ReadHandle<xAOD::VertexContainer> hlt_vertex_cont(m_vertex_key, ctx);
101 if (! hlt_vertex_cont.isValid() ) {
102 ATH_MSG_DEBUG(
"Container "<< m_vertex_key <<
" does not exist");
103 }
104
105 SG::ReadHandle<xAOD::VertexContainer> offline_vertex_cont(m_offline_vertex_key, ctx);
106 if (! offline_vertex_cont.isValid() ) {
107 ATH_MSG_DEBUG(
"Container "<< m_offline_vertex_key <<
" does not exist");
108 }
109
110
111 SG::ReadHandle<xAOD::MissingETContainer> offline_met_cont(m_offline_met_key, ctx);
112 if (! offline_met_cont.isValid() ) {
113 ATH_MSG_DEBUG(
"Container "<< m_offline_met_key <<
" does not exist");
114 }
115
116
117 std::optional<SG::ReadHandle<xAOD::EnergySumRoI>> l1_roi_cont_rh;
120 l1_roi_cont_rh.emplace(m_lvl1_roi_key, ctx);
121 if (l1_roi_cont_rh->isValid()) l1_roi_cont = l1_roi_cont_rh->cptr();
122 }
123
124
125 SG::ReadHandle<xAOD::jFexMETRoIContainer> l1_jFexMet_cont(m_l1_jFexMet_key, ctx);
126 if (! l1_jFexMet_cont.isValid() ) {
127 ATH_MSG_DEBUG(
"Container "<< m_l1_jFexMet_key <<
" does not exist");
128 }
129 SG::ReadHandle<xAOD::jFexSumETRoIContainer> l1_jFexSumEt_cont(m_l1_jFexSumEt_key, ctx);
130 if (! l1_jFexSumEt_cont.isValid() ) {
131 ATH_MSG_DEBUG(
"Container "<< m_l1_jFexSumEt_key <<
" does not exist");
132 }
133 SG::ReadHandle<xAOD::gFexGlobalRoIContainer> l1_gFexJwojScalar_cont(m_l1_gFexJwojScalar_key, ctx);
134 if (! l1_gFexJwojScalar_cont.isValid() ) {
135 ATH_MSG_DEBUG(
"Container "<< m_l1_gFexJwojScalar_key <<
" does not exist");
136 }
137 SG::ReadHandle<xAOD::gFexGlobalRoIContainer> l1_gFexJwojMETComponents_cont(m_l1_gFexJwojMETComponents_key, ctx);
138 if (! l1_gFexJwojMETComponents_cont.isValid() ) {
139 ATH_MSG_DEBUG(
"Container "<< m_l1_gFexJwojMETComponents_key <<
" does not exist");
140 }
141 SG::ReadHandle<xAOD::gFexGlobalRoIContainer> l1_gFexJwojMHTComponents_cont(m_l1_gFexJwojMHTComponents_key, ctx);
142 if (! l1_gFexJwojMHTComponents_cont.isValid() ) {
143 ATH_MSG_DEBUG(
"Container "<< m_l1_gFexJwojMHTComponents_key <<
" does not exist");
144 }
145 SG::ReadHandle<xAOD::gFexGlobalRoIContainer> l1_gFexJwojMSTComponents_cont(m_l1_gFexJwojMSTComponents_key, ctx);
146 if (! l1_gFexJwojMSTComponents_cont.isValid() ) {
147 ATH_MSG_DEBUG(
"Container "<< m_l1_gFexJwojMSTComponents_key <<
" does not exist");
148 }
149 SG::ReadHandle<xAOD::gFexGlobalRoIContainer> l1_gFexNCMETScalar_cont(m_l1_gFexNCMETScalar_key, ctx);
150 if (! l1_gFexNCMETScalar_cont.isValid() ) {
151 ATH_MSG_DEBUG(
"Container "<< m_l1_gFexNCMETScalar_key <<
" does not exist");
152 }
153 SG::ReadHandle<xAOD::gFexGlobalRoIContainer> l1_gFexNCMETComponents_cont(m_l1_gFexNCMETComponents_key, ctx);
154 if (! l1_gFexNCMETComponents_cont.isValid() ) {
155 ATH_MSG_DEBUG(
"Container "<< m_l1_gFexNCMETComponents_key <<
" does not exist");
156 }
157 SG::ReadHandle<xAOD::gFexGlobalRoIContainer> l1_gFexRhoMETScalar_cont(m_l1_gFexRhoMETScalar_key, ctx);
158 if (! l1_gFexRhoMETScalar_cont.isValid() ) {
159 ATH_MSG_DEBUG(
"Container "<< m_l1_gFexRhoMETScalar_key <<
" does not exist");
160 }
161 SG::ReadHandle<xAOD::gFexGlobalRoIContainer> l1_gFexRhoMETComponents_cont(m_l1_gFexRhoMETComponents_key, ctx);
162 if (! l1_gFexRhoMETComponents_cont.isValid() ) {
163 ATH_MSG_DEBUG(
"Container "<< m_l1_gFexRhoMETComponents_key <<
" does not exist");
164 }
165
166
167 SG::ReadHandle<xAOD::TrigMissingETContainer> hlt_cell_met_cont(m_hlt_cell_met_key, ctx);
168 if (! hlt_cell_met_cont.isValid() ) {
169 ATH_MSG_DEBUG(
"Container "<< m_hlt_cell_met_key <<
" does not exist");
170 }
171
172 SG::ReadHandle<xAOD::TrigMissingETContainer> hlt_mht_met_cont(m_hlt_mht_met_key, ctx);
173 if (! hlt_mht_met_cont.isValid() ) {
174 ATH_MSG_DEBUG(
"Container "<< m_hlt_mht_met_key <<
" does not exist");
175 }
176
177 SG::ReadHandle<xAOD::TrigMissingETContainer> hlt_tc_met_cont(m_hlt_tc_met_key, ctx);
178 if (! hlt_tc_met_cont.isValid() ) {
179 ATH_MSG_DEBUG(
"Container "<< m_hlt_tc_met_key <<
" does not exist");
180 }
181
182 SG::ReadHandle<xAOD::TrigMissingETContainer> hlt_tc_em_met_cont(m_hlt_tc_em_met_key, ctx);
183 if (! hlt_tc_em_met_cont.isValid() ) {
184 ATH_MSG_DEBUG(
"Container "<< m_hlt_tc_em_met_key <<
" does not exist");
185 }
186
187 SG::ReadHandle<xAOD::TrigMissingETContainer> hlt_tcpufit_met_cont(m_hlt_tcpufit_met_key, ctx);
188 if (! hlt_tcpufit_met_cont.isValid() ) {
189 ATH_MSG_DEBUG(
"Container "<< m_hlt_tcpufit_met_key <<
" does not exist");
190 }
191
192 SG::ReadHandle<xAOD::TrigMissingETContainer> hlt_tcpufit_sig30_met_cont(m_hlt_tcpufit_sig30_met_key, ctx);
193 if (! hlt_tcpufit_sig30_met_cont.isValid() ) {
194 ATH_MSG_DEBUG(
"Container "<< m_hlt_tcpufit_sig30_met_key <<
" does not exist");
195 }
196
197 SG::ReadHandle<xAOD::TrigMissingETContainer> hlt_trkmht_met_cont(m_hlt_trkmht_met_key, ctx);
198 if (! hlt_trkmht_met_cont.isValid() ) {
199 ATH_MSG_DEBUG(
"Container "<< m_hlt_trkmht_met_key <<
" does not exist");
200 }
201
202 SG::ReadHandle<xAOD::TrigMissingETContainer> hlt_pfsum_met_cont(m_hlt_pfsum_met_key, ctx);
203 if (! hlt_pfsum_met_cont.isValid() ) {
204 ATH_MSG_DEBUG(
"Container "<< m_hlt_pfsum_met_key <<
" does not exist");
205 }
206
207 SG::ReadHandle<xAOD::TrigMissingETContainer> hlt_pfsum_cssk_met_cont(m_hlt_pfsum_cssk_met_key, ctx);
208 if (! hlt_pfsum_cssk_met_cont.isValid() ) {
209 ATH_MSG_DEBUG(
"Container "<< m_hlt_pfsum_cssk_met_key <<
" does not exist");
210 }
211
212 SG::ReadHandle<xAOD::TrigMissingETContainer> hlt_pfsum_vssk_met_cont(m_hlt_pfsum_vssk_met_key, ctx);
213 if (! hlt_pfsum_vssk_met_cont.isValid() ) {
214 ATH_MSG_DEBUG(
"Container "<< m_hlt_pfsum_vssk_met_key <<
" does not exist");
215 }
216
217 SG::ReadHandle<xAOD::TrigMissingETContainer> hlt_pfopufit_met_cont(m_hlt_pfopufit_met_key, ctx);
218 if (! hlt_pfopufit_met_cont.isValid() ) {
219 ATH_MSG_DEBUG(
"Container "<< m_hlt_pfopufit_met_key <<
" does not exist");
220 }
221
222 SG::ReadHandle<xAOD::TrigMissingETContainer> hlt_pfopufit_sig30_met_cont(m_hlt_pfopufit_sig30_met_key, ctx);
223 if (! hlt_pfopufit_sig30_met_cont.isValid() ) {
224 ATH_MSG_DEBUG(
"Container "<< m_hlt_pfopufit_sig30_met_key <<
" does not exist");
225 }
226
227 SG::ReadHandle<xAOD::TrigMissingETContainer> hlt_cvfpufit_met_cont(m_hlt_cvfpufit_met_key, ctx);
228 if (! hlt_cvfpufit_met_cont.isValid() ) {
229 ATH_MSG_DEBUG(
"Container "<< m_hlt_cvfpufit_met_key <<
" does not exist");
230 }
231
232 SG::ReadHandle<xAOD::TrigMissingETContainer> hlt_mhtpufit_pf_met_cont(m_hlt_mhtpufit_pf_met_key, ctx);
233 if (! hlt_mhtpufit_pf_met_cont.isValid() ) {
234 ATH_MSG_DEBUG(
"Container "<< m_hlt_mhtpufit_pf_met_key <<
" does not exist");
235 }
236
237 SG::ReadHandle<xAOD::TrigMissingETContainer> hlt_mhtpufit_em_met_cont(m_hlt_mhtpufit_em_met_key, ctx);
238 if (! hlt_mhtpufit_em_met_cont.isValid() ) {
239 ATH_MSG_DEBUG(
"Container "<< m_hlt_mhtpufit_em_met_key <<
" does not exist");
240 }
241
242 SG::ReadHandle<xAOD::TrigMissingETContainer> hlt_met_nn_cont(m_hlt_met_nn_key, ctx);
243 if (! hlt_met_nn_cont.isValid() ) {
244 ATH_MSG_DEBUG(
"Container "<< m_hlt_met_nn_key <<
" does not exist");
245 }
246
247
248 auto act_IPBC = Monitored::Scalar<float>("act_IPBC",0.0);
249 auto hlt_el_mult = Monitored::Scalar<int>("hlt_el_mult",0.0);
250 auto hlt_el_pt = Monitored::Scalar<float>("hlt_el_pt",0.0);
251 auto hlt_mu_mult = Monitored::Scalar<int>("hlt_mu_mult",0.0);
252 auto hlt_mu_pt = Monitored::Scalar<float>("hlt_mu_pt",0.0);
253
254 auto hlt_topoclusters_mult = Monitored::Scalar<int>("hlt_topoclusters_mult",0.0);
255 auto hlt_topoclusters_pt = Monitored::Scalar<float>("hlt_topoclusters_pt",0.0);
256 auto hlt_tracks_mult = Monitored::Scalar<int>("hlt_tracks_mult",0.0);
257 auto hlt_tracks_pt = Monitored::Scalar<float>("hlt_tracks_pt",0.0);
258 auto hlt_tracks_phi = Monitored::Scalar<float>("hlt_tracks_phi",0.0);
259 auto hlt_tracks_eta = Monitored::Scalar<float>("hlt_tracks_eta",0.0);
260 auto hlt_tracks_leading_pt = Monitored::Scalar<float>("hlt_tracks_leading_pt",0.0);
261 auto hlt_tracks_vec_sumPt = Monitored::Scalar<float>("hlt_tracks_vec_sumPt",0.0);
262 auto hlt_tracks_sca_sumPt = Monitored::Scalar<float>("hlt_tracks_sca_sumPt",0.0);
263 auto hlt_vertex_mult = Monitored::Scalar<int>("hlt_vertex_mult",0.0);
264 auto hlt_vertex_mult_mu = Monitored::Scalar<int>("hlt_vertex_mult_mu",0.0);
265 auto hlt_vertex_z = Monitored::Scalar<float>("hlt_vertex_z",0.0);
266 auto hlt_vertex_z_diff = Monitored::Scalar<float>("hlt_vertex_z_diff",0.0);
267
268 auto offline_Ex = Monitored::Scalar<float>("offline_Ex",0.0);
269 auto offline_Ey = Monitored::Scalar<float>("offline_Ey",0.0);
270 auto offline_Et = Monitored::Scalar<float>("offline_Et",0.0);
271 auto offline_sumEt = Monitored::Scalar<float>("offline_sumEt",0.0);
272 auto offline_Et_eff = Monitored::Scalar<float>("offline_Et_eff",0.0);
273 auto offline_NoMu_Ex = Monitored::Scalar<float>("offline_NoMu_Ex",0.0);
274 auto offline_NoMu_Ey = Monitored::Scalar<float>("offline_NoMu_Ey",0.0);
275 auto offline_NoMu_Et = Monitored::Scalar<float>("offline_NoMu_Et",0.0);
276 auto offline_NoMu_sumEt = Monitored::Scalar<float>("offline_NoMu_sumEt",0.0);
277 auto offline_NoMu_Et_eff = Monitored::Scalar<float>("offline_NoMu_Et_eff",0.0);
278
279 auto HLT_MET_status = Monitored::Scalar<int>("HLT_MET_status",0.0);
280 auto MET_status = Monitored::Scalar<float>("MET_status",0.0);
281 auto HLT_MET_component = Monitored::Scalar<int>("HLT_MET_component",0.0);
282 auto component_Et = Monitored::Scalar<float>("component_Et",0.0);
283 auto component = Monitored::Scalar<int>("component",0.0);
284 auto component_status = Monitored::Scalar<int>("component_status",0.0);
285 auto component_status_weight = Monitored::Scalar<int>("component_status_weight",0.0);
286
287
289
290
291
292
294
295
296 act_IPBC = eventInfo->actualInteractionsPerCrossing();
297
298
299
300 bool passedPrimaryEl = false;
301 for (const std::string& chain : m_hltChainEl){
303 passedPrimaryEl = true;
304 break;
305 }
306 }
307 if ( hlt_electron_cont.isValid() && passedPrimaryEl ){
308 hlt_el_mult = hlt_electron_cont->size();
309 fill(tool,hlt_el_mult);
310 if( hlt_electron_cont->size() > 0 ) {
311 for (auto Electron: *hlt_electron_cont) {
313 fill(tool, hlt_el_pt);
314 }
315 }
316 }
317
318
319 bool passedPrimaryMu = false;
320 for (const std::string& chain : m_hltChainMu){
322 passedPrimaryMu = true;
323 break;
324 }
325 }
326 if( hlt_muon_cont.isValid() &&passedPrimaryMu ){
327 hlt_mu_mult = hlt_muon_cont->size();
328 fill(tool,hlt_mu_mult);
329 if ( hlt_muon_cont->size() > 0 ){
330 for(auto Muon : *hlt_muon_cont){
331 hlt_mu_pt =
Muon->
pt()/Gaudi::Units::GeV;
332 fill(tool, hlt_mu_pt);
333 }
334 }
335 }
336
337
338 if(hlt_topoclusters_cont.isValid() && hlt_topoclusters_cont->size() > 0){
339 hlt_topoclusters_mult = hlt_topoclusters_cont->size();
340 for(auto topoclusters : *hlt_topoclusters_cont){
341 hlt_topoclusters_pt = topoclusters->pt()/Gaudi::Units::GeV;
342 if(hlt_topoclusters_pt > 0){
343 fill(tool, hlt_topoclusters_pt);
344 }
345 }
346
347 if(hlt_topoclusters_mult > 0){
348 fill(tool, hlt_topoclusters_mult);
349 }
350 }
351
352
353 if( hlt_tracks_cont.isValid() && hlt_tracks_cont->size() > 0){
354 hlt_tracks_mult = hlt_tracks_cont->size();
355 float scalarSumPt = 0.0;
356 float scalarSumPx = 0.0;
357 float scalarSumPy = 0.0;
358 for(auto tracks : *hlt_tracks_cont){
359 float i_track_pt = tracks->pt()/Gaudi::Units::GeV;
360 hlt_tracks_pt = i_track_pt;
361 scalarSumPt += i_track_pt;
362 scalarSumPx += (tracks->p4().Px());
363 scalarSumPy += (tracks->p4().Py());
364
365 if(hlt_tracks_pt > hlt_tracks_leading_pt){
366 hlt_tracks_leading_pt = i_track_pt;
367 }
368
369 if(hlt_tracks_pt > 0){
370 fill(tool, hlt_tracks_pt);
371 }
372
373 if(hlt_tracks_pt > 3){
374 hlt_tracks_eta = (tracks->eta());
375 hlt_tracks_phi = (tracks->phi());
376 fill(tool, hlt_tracks_eta, hlt_tracks_phi);
377 }
378 }
379
380 hlt_tracks_vec_sumPt = std::sqrt(scalarSumPx*scalarSumPx + scalarSumPy*scalarSumPy)/Gaudi::Units::GeV;
381 hlt_tracks_sca_sumPt = scalarSumPt;
382
383 fill(tool, hlt_tracks_mult, hlt_tracks_leading_pt, hlt_tracks_vec_sumPt, hlt_tracks_sca_sumPt);
384 }
385
386
387 if(hlt_vertex_cont.isValid() && hlt_vertex_cont->size() > 0){
388 hlt_vertex_mult = hlt_vertex_cont->size();
389 hlt_vertex_mult_mu = hlt_vertex_cont->size();
390 const xAOD::Vertex_v1* hlt_vertex = nullptr;
391 for(auto vertex : *hlt_vertex_cont){
394 break;
395 }
396 }
397
398 if(hlt_vertex){
399 hlt_vertex_z = hlt_vertex->
z();
400 fill(tool, hlt_vertex_z);
401
402 if(offline_vertex_cont.isValid() && offline_vertex_cont->size() > 0){
403 const xAOD::Vertex_v1* offline_vertex = nullptr;
404 for(auto vertex : *offline_vertex_cont){
407 break;
408 }
409 }
410
411 if(offline_vertex){
412 hlt_vertex_z_diff = hlt_vertex_z - offline_vertex->
z();
413 fill(tool, hlt_vertex_z_diff);
414 }
415 }
416 }
417 }else{
418 hlt_vertex_mult = -1;
419 hlt_vertex_mult_mu = 1;
420 act_IPBC = -1.;
421 }
422 fill(tool, hlt_vertex_mult);
423 fill(tool, act_IPBC, hlt_vertex_mult_mu);
424
425
428 if ( offline_met_cont.isValid() && offline_met_cont->size() > 0 ) {
429 finalTrkMET = ((*offline_met_cont)["FinalTrk"]);
430 muonsMET = ((*offline_met_cont)["Muons"]);
431
432 if(finalTrkMET) {
433 offline_Ex = - finalTrkMET->
mpx()/Gaudi::Units::GeV;
434 offline_Ey = - finalTrkMET->
mpy()/Gaudi::Units::GeV;
435 offline_sumEt = finalTrkMET->
sumet()/Gaudi::Units::GeV;
436 offline_Et = std::sqrt(offline_Ex*offline_Ex + offline_Ey*offline_Ey);
437 offline_Et_eff = std::sqrt(offline_Ex*offline_Ex + offline_Ey*offline_Ey);
438 fill(tool,offline_Ex,offline_Ey,offline_Et,offline_sumEt);
439
440 if(muonsMET){
442 offline_NoMu_Ex = - finalTrkNoMuMET.
mpx()/Gaudi::Units::GeV;
443 offline_NoMu_Ey = - finalTrkNoMuMET.
mpy()/Gaudi::Units::GeV;
444 offline_NoMu_sumEt = finalTrkNoMuMET.
sumet()/Gaudi::Units::GeV;
445 offline_NoMu_Et = std::sqrt(offline_NoMu_Ex*offline_NoMu_Ex + offline_NoMu_Ey*offline_NoMu_Ey);
446 offline_NoMu_Et_eff = std::sqrt(offline_NoMu_Ex*offline_NoMu_Ex + offline_NoMu_Ey*offline_NoMu_Ey);
447 fill(tool,offline_NoMu_Ex,offline_NoMu_Ey,offline_NoMu_Et,offline_NoMu_sumEt);
448 }
449 }
450 }
451
452
453 for (const std::string& alg : m_algsL1) {
454 if (alg == "roi" && l1_roi_cont != nullptr) {
455
456 if ((l1_roi_cont->
energyX())>-9e12 && (l1_roi_cont->
energyX())<9e12 && (l1_roi_cont->
energyY())>-9e12 && (l1_roi_cont->
energyY())<9e12) {
457 float L1_met_Ex = - l1_roi_cont->
energyX()/Gaudi::Units::GeV;
458 float L1_met_Ey = - l1_roi_cont->
energyY()/Gaudi::Units::GeV;
459 float L1_met_Et = std::sqrt(L1_met_Ex*L1_met_Ex + L1_met_Ey*L1_met_Ey);
460 float L1_met_sumEt = l1_roi_cont->
energyT()/Gaudi::Units::GeV;
461 float L1_met_Ex_log =
signed_log(L1_met_Ex, epsilon);
462 float L1_met_Ey_log =
signed_log(L1_met_Ey, epsilon);
463 float L1_met_Et_log =
signed_log(L1_met_Et, epsilon);
464 float L1_met_sumEt_log =
signed_log(L1_met_sumEt, epsilon);
465 TVector3
v(L1_met_Ex, L1_met_Ey, 0.0);
466 float L1_met_phi =
v.Phi();
467
468 auto L1_Ex = Monitored::Scalar<float>("L1_"+alg+"_Ex", static_cast<float>(L1_met_Ex));
469 auto L1_Ey = Monitored::Scalar<float>("L1_"+alg+"_Ey", static_cast<float>(L1_met_Ey));
470 auto L1_Et = Monitored::Scalar<float>("L1_"+alg+"_Et", static_cast<float>(L1_met_Et));
471 auto L1_sumEt = Monitored::Scalar<float>("L1_"+alg+"_sumEt", static_cast<float>(L1_met_sumEt));
472 auto L1_Ex_log = Monitored::Scalar<float>("L1_"+alg+"_Ex_log", static_cast<float>(L1_met_Ex_log));
473 auto L1_Ey_log = Monitored::Scalar<float>("L1_"+alg+"_Ey_log", static_cast<float>(L1_met_Ey_log));
474 auto L1_Et_log = Monitored::Scalar<float>("L1_"+alg+"_Et_log", static_cast<float>(L1_met_Et_log));
475 auto L1_sumEt_log = Monitored::Scalar<float>("L1_"+alg+"_sumEt_log", static_cast<float>(L1_met_sumEt_log));
476 auto L1_phi = Monitored::Scalar<float>("L1_"+alg+"_phi", static_cast<float>(L1_met_phi));
477 fill(tool, L1_Ex, L1_Ey, L1_Et, L1_sumEt,
478 L1_Ex_log, L1_Ey_log, L1_Et_log, L1_sumEt_log, L1_phi);
479 }
480 }
481 }
482
483
484 if (l1_jFexMet_cont.isValid() && l1_jFexMet_cont->size() > 0) {
485 float L1_met_Ex = 0;
486 float L1_met_Ey = 0;
487 for (const auto l1_jmet: *l1_jFexMet_cont) {
488 L1_met_Ex += l1_jmet->Ex()/Gaudi::Units::GeV;
489 L1_met_Ey += l1_jmet->Ey()/Gaudi::Units::GeV;
490 }
491 float L1_met_Et = std::sqrt(L1_met_Ex*L1_met_Ex + L1_met_Ey*L1_met_Ey);
492 float L1_met_Ex_log =
signed_log(L1_met_Ex, epsilon);
493 float L1_met_Ey_log =
signed_log(L1_met_Ey, epsilon);
494 float L1_met_Et_log =
signed_log(L1_met_Et, epsilon);
495 TVector3
v(L1_met_Ex, L1_met_Ey, 0.0);
496 float L1_met_phi =
v.Phi();
497 auto L1_Ex = Monitored::Scalar<float>("L1_jFex_Ex", static_cast<float>(L1_met_Ex));
498 auto L1_Ey = Monitored::Scalar<float>("L1_jFex_Ey", static_cast<float>(L1_met_Ey));
499 auto L1_Et = Monitored::Scalar<float>("L1_jFex_Et", static_cast<float>(L1_met_Et));
500 auto L1_Ex_log = Monitored::Scalar<float>("L1_jFex_Ex_log", static_cast<float>(L1_met_Ex_log));
501 auto L1_Ey_log = Monitored::Scalar<float>("L1_jFex_Ey_log", static_cast<float>(L1_met_Ey_log));
502 auto L1_Et_log = Monitored::Scalar<float>("L1_jFex_Et_log", static_cast<float>(L1_met_Et_log));
503 auto L1_phi = Monitored::Scalar<float>("L1_jFex_phi", static_cast<float>(L1_met_phi));
504 fill(tool, L1_Ex, L1_Ey, L1_Et, L1_Ex_log, L1_Ey_log, L1_Et_log, L1_phi);
505 }
506 if (l1_jFexSumEt_cont.isValid() && l1_jFexSumEt_cont->size() > 0) {
507 float L1_met_sumEt = 0;
508 for (const auto l1_jsumEt: *l1_jFexSumEt_cont) {
509 L1_met_sumEt += l1_jsumEt->Et_lower()/Gaudi::Units::GeV + l1_jsumEt->Et_upper()/Gaudi::Units::GeV;
510 }
511 float L1_met_sumEt_log =
signed_log(L1_met_sumEt, epsilon);
512 auto L1_sumEt = Monitored::Scalar<float>("L1_jFex_sumEt", static_cast<float>(L1_met_sumEt));
513 auto L1_sumEt_log = Monitored::Scalar<float>("L1_jFex_sumEt_log", static_cast<float>(L1_met_sumEt_log));
514 fill(tool, L1_sumEt, L1_sumEt_log);
515 }
516
517
519
520
521
522 if (l1_gFexJwojScalar_cont.isValid() && l1_gFexJwojScalar_cont->size() > 0) {
523 l1_gmet = l1_gFexJwojScalar_cont->at(0);
526 float L1_met_Et_log =
signed_log(L1_met_Et, epsilon);
527 float L1_met_sumEt_log =
signed_log(L1_met_sumEt, epsilon);
528 auto L1_Et = Monitored::Scalar<float>("L1_gFexJwoj_Et", static_cast<float>(L1_met_Et));
529 auto L1_Et_log = Monitored::Scalar<float>("L1_gFexJwoj_Et_log", static_cast<float>(L1_met_Et_log));
530 auto L1_sumEt = Monitored::Scalar<float>("L1_gFexJwoj_sumEt", static_cast<float>(L1_met_sumEt));
531 auto L1_sumEt_log = Monitored::Scalar<float>("L1_gFexJwoj_sumEt_log", static_cast<float>(L1_met_sumEt_log));
532 fill(tool, L1_Et, L1_Et_log, L1_sumEt, L1_sumEt_log);
533 }
534
535 if (l1_gFexJwojMETComponents_cont.isValid() && l1_gFexJwojMETComponents_cont->size() > 0) {
536 l1_gmet = l1_gFexJwojMETComponents_cont->at(0);
538 float L1_met_Ex_log =
signed_log(L1_met_Ex, epsilon);
540 float L1_met_Ey_log =
signed_log(L1_met_Ey, epsilon);
541 TVector3
v(L1_met_Ex, L1_met_Ey, 0.0);
542 float L1_met_phi =
v.Phi();
543 auto L1_Ex = Monitored::Scalar<float>("L1_gFexJwoj_Ex", static_cast<float>(L1_met_Ex));
544 auto L1_Ey = Monitored::Scalar<float>("L1_gFexJwoj_Ey", static_cast<float>(L1_met_Ey));
545 auto L1_Ex_log = Monitored::Scalar<float>("L1_gFexJwoj_Ex_log", static_cast<float>(L1_met_Ex_log));
546 auto L1_Ey_log = Monitored::Scalar<float>("L1_gFexJwoj_Ey_log", static_cast<float>(L1_met_Ey_log));
547 auto L1_phi = Monitored::Scalar<float>("L1_gFexJwoj_phi", static_cast<float>(L1_met_phi));
548 fill(tool, L1_Ex, L1_Ey, L1_Ex_log, L1_Ey_log, L1_phi);
549 }
550
551 if (l1_gFexJwojMHTComponents_cont.isValid() && l1_gFexJwojMHTComponents_cont->size() > 0) {
552 l1_gmet = l1_gFexJwojMHTComponents_cont->at(0);
554 float L1_met_HT_Ex_log =
signed_log(L1_met_HT_Ex, epsilon);
556 float L1_met_HT_Ey_log =
signed_log(L1_met_HT_Ey, epsilon);
557 TVector3
v(L1_met_HT_Ex, L1_met_HT_Ey, 0.0);
558 float L1_met_HT_phi =
v.Phi();
559 auto L1_HT_Ex = Monitored::Scalar<float>("L1_gFexJwoj_HT_Ex", static_cast<float>(L1_met_HT_Ex));
560 auto L1_HT_Ey = Monitored::Scalar<float>("L1_gFexJwoj_HT_Ey", static_cast<float>(L1_met_HT_Ey));
561 auto L1_HT_Ex_log = Monitored::Scalar<float>("L1_gFexJwoj_HT_Ex_log", static_cast<float>(L1_met_HT_Ex_log));
562 auto L1_HT_Ey_log = Monitored::Scalar<float>("L1_gFexJwoj_HT_Ey_log", static_cast<float>(L1_met_HT_Ey_log));
563 auto L1_HT_phi = Monitored::Scalar<float>("L1_gFexJwoj_HT_phi", static_cast<float>(L1_met_HT_phi));
564 fill(tool, L1_HT_Ex, L1_HT_Ey, L1_HT_Ex_log, L1_HT_Ey_log, L1_HT_phi);
565 }
566
567 if (l1_gFexJwojMSTComponents_cont.isValid() && l1_gFexJwojMSTComponents_cont->size() > 0) {
568 l1_gmet = l1_gFexJwojMSTComponents_cont->at(0);
570 float L1_met_ST_Ex_log =
signed_log(L1_met_ST_Ex, epsilon);
572 float L1_met_ST_Ey_log =
signed_log(L1_met_ST_Ey, epsilon);
573 TVector3
v(L1_met_ST_Ex, L1_met_ST_Ey, 0.0);
574 float L1_met_ST_phi =
v.Phi();
575 auto L1_ST_Ex = Monitored::Scalar<float>("L1_gFexJwoj_ST_Ex", static_cast<float>(L1_met_ST_Ex));
576 auto L1_ST_Ey = Monitored::Scalar<float>("L1_gFexJwoj_ST_Ey", static_cast<float>(L1_met_ST_Ey));
577 auto L1_ST_Ex_log = Monitored::Scalar<float>("L1_gFexJwoj_ST_Ex_log", static_cast<float>(L1_met_ST_Ex_log));
578 auto L1_ST_Ey_log = Monitored::Scalar<float>("L1_gFexJwoj_ST_Ey_log", static_cast<float>(L1_met_ST_Ey_log));
579 auto L1_ST_phi = Monitored::Scalar<float>("L1_gFexJwoj_ST_phi", static_cast<float>(L1_met_ST_phi));
580 fill(tool, L1_ST_Ex, L1_ST_Ey, L1_ST_Ex_log, L1_ST_Ey_log, L1_ST_phi);
581 }
582
583 if (l1_gFexNCMETScalar_cont.isValid() && l1_gFexNCMETScalar_cont->size() > 0) {
584 l1_gmet = l1_gFexNCMETScalar_cont->at(0);
587 float L1_met_Et_log =
signed_log(L1_met_Et, epsilon);
588 float L1_met_sumEt_log =
signed_log(L1_met_sumEt, epsilon);
589 auto L1_Et = Monitored::Scalar<float>("L1_gFexNC_Et", static_cast<float>(L1_met_Et));
590 auto L1_Et_log = Monitored::Scalar<float>("L1_gFexNC_Et_log", static_cast<float>(L1_met_Et_log));
591 auto L1_sumEt = Monitored::Scalar<float>("L1_gFexNC_sumEt", static_cast<float>(L1_met_sumEt));
592 auto L1_sumEt_log = Monitored::Scalar<float>("L1_gFexNC_sumEt_log", static_cast<float>(L1_met_sumEt_log));
593 fill(tool, L1_Et, L1_Et_log, L1_sumEt, L1_sumEt_log);
594 }
595
596 if (l1_gFexNCMETComponents_cont.isValid() && l1_gFexNCMETComponents_cont->size() > 0) {
597 l1_gmet = l1_gFexNCMETComponents_cont->at(0);
599 float L1_met_Ex_log =
signed_log(L1_met_Ex, epsilon);
601 float L1_met_Ey_log =
signed_log(L1_met_Ey, epsilon);
602 TVector3
v(L1_met_Ex, L1_met_Ey, 0.0);
603 float L1_met_phi =
v.Phi();
604 auto L1_Ex = Monitored::Scalar<float>("L1_gFexNC_Ex", static_cast<float>(L1_met_Ex));
605 auto L1_Ey = Monitored::Scalar<float>("L1_gFexNC_Ey", static_cast<float>(L1_met_Ey));
606 auto L1_Ex_log = Monitored::Scalar<float>("L1_gFexNC_Ex_log", static_cast<float>(L1_met_Ex_log));
607 auto L1_Ey_log = Monitored::Scalar<float>("L1_gFexNC_Ey_log", static_cast<float>(L1_met_Ey_log));
608 auto L1_phi = Monitored::Scalar<float>("L1_gFexNC_phi", static_cast<float>(L1_met_phi));
609 fill(tool, L1_Ex, L1_Ey, L1_Ex_log, L1_Ey_log, L1_phi);
610 }
611
612 if (l1_gFexRhoMETScalar_cont.isValid() && l1_gFexRhoMETScalar_cont->size() > 0) {
613 l1_gmet = l1_gFexRhoMETScalar_cont->at(0);
616 float L1_met_Et_log =
signed_log(L1_met_Et, epsilon);
617 float L1_met_sumEt_log =
signed_log(L1_met_sumEt, epsilon);
618 auto L1_Et = Monitored::Scalar<float>("L1_gFexRho_Et", static_cast<float>(L1_met_Et));
619 auto L1_Et_log = Monitored::Scalar<float>("L1_gFexRho_Et_log", static_cast<float>(L1_met_Et_log));
620 auto L1_sumEt = Monitored::Scalar<float>("L1_gFexRho_sumEt", static_cast<float>(L1_met_sumEt));
621 auto L1_sumEt_log = Monitored::Scalar<float>("L1_gFexRho_sumEt_log", static_cast<float>(L1_met_sumEt_log));
622 fill(tool, L1_Et, L1_Et_log, L1_sumEt, L1_sumEt_log);
623 }
624
625 if (l1_gFexRhoMETComponents_cont.isValid() && l1_gFexRhoMETComponents_cont->size() > 0) {
626 l1_gmet = l1_gFexRhoMETComponents_cont->at(0);
628 float L1_met_Ex_log =
signed_log(L1_met_Ex, epsilon);
630 float L1_met_Ey_log =
signed_log(L1_met_Ey, epsilon);
631 TVector3
v(L1_met_Ex, L1_met_Ey, 0.0);
632 float L1_met_phi =
v.Phi();
633 auto L1_Ex = Monitored::Scalar<float>("L1_gFexRho_Ex", static_cast<float>(L1_met_Ex));
634 auto L1_Ey = Monitored::Scalar<float>("L1_gFexRho_Ey", static_cast<float>(L1_met_Ey));
635 auto L1_Ex_log = Monitored::Scalar<float>("L1_gFexRho_Ex_log", static_cast<float>(L1_met_Ex_log));
636 auto L1_Ey_log = Monitored::Scalar<float>("L1_gFexRho_Ey_log", static_cast<float>(L1_met_Ey_log));
637 auto L1_phi = Monitored::Scalar<float>("L1_gFexRho_phi", static_cast<float>(L1_met_phi));
638 fill(tool, L1_Ex, L1_Ey, L1_Ex_log, L1_Ey_log, L1_phi);
639 }
640
641
643
644
647 if ( hlt_cell_met_cont.isValid() && hlt_cell_met_cont->size() > 0 ) {
648 hlt_met = hlt_cell_met_cont->at(0);
649 for (
int j=0;
j<nStatus; ++
j) {
650 unsigned mask = (1u<<
j);
651 if (hlt_met->
flag() & mask) {
652 MET_status = 1.;
653 } else {
654 MET_status = 0;
655 }
656 auto mon1 = Monitored::Scalar<std::string>( "HLT_MET_status",m_bitNames[j]);
657 fill(tool,mon1,MET_status);
658 }
659
660 for (
int i=0;
i<nComponent; ++
i) {
661 float ex = hlt_met->
exComponent(i)/Gaudi::Units::GeV;
662 float ey = hlt_met->
eyComponent(i)/Gaudi::Units::GeV;
663 component_Et = sqrt(ex*ex+ey*ey);
664 auto mon2 = Monitored::Scalar<std::string>( "HLT_MET_component",m_compNames[i]);
665 fill(tool,mon2,component_Et);
666 }
667
668 for (
int i=0;
i<nComponent; ++
i) {
669 for (
int j=0;
j<nStatus; ++
j) {
670 unsigned mask = (1u<<
j);
672 component_status_weight = 1.;
673 } else {
674 component_status_weight = 0;
675 }
676 auto mon_bit = Monitored::Scalar<std::string>( "component_status",m_bitNames[j]);
677 auto mon_comp = Monitored::Scalar<std::string>( "component",m_compNames[i]);
678 fill(tool,mon_comp,mon_bit,component_status_weight);
679 }
680 }
681 }
682
683
684 float L1_roiMet_Et = 0;
685 if ( l1_roi_cont != nullptr ) {
686 if ((l1_roi_cont->
energyX())>-9e12 && (l1_roi_cont->
energyX())<9e12 && (l1_roi_cont->
energyY())>-9e12 && (l1_roi_cont->
energyY())<9e12) {
687 float Ex = - l1_roi_cont->
energyX()/Gaudi::Units::GeV;
688 float Ey = - l1_roi_cont->
energyY()/Gaudi::Units::GeV;
689 L1_roiMet_Et = std::sqrt(Ex*Ex + Ey*Ey);
690 }
691 }
692 float L1_jFexMet_Et = 0;
693 if (l1_jFexMet_cont.isValid() && l1_jFexMet_cont->size() > 0) {
694 float L1_met_Ex = 0;
695 float L1_met_Ey = 0;
696 for (const auto l1_jmet: *l1_jFexMet_cont) {
697 L1_met_Ex += l1_jmet->Ex()/Gaudi::Units::GeV;
698 L1_met_Ey += l1_jmet->Ey()/Gaudi::Units::GeV;
699 }
700 L1_jFexMet_Et = std::sqrt(L1_met_Ex*L1_met_Ex + L1_met_Ey*L1_met_Ey);
701 }
702 float L1_gFexJWOJMet_Et = 0;
703
704 float L1_PreSelMet_Et = L1_roiMet_Et;
705 if (m_L1MetAlg == 1) L1_PreSelMet_Et = L1_jFexMet_Et;
706 if (m_L1MetAlg == 2) L1_PreSelMet_Et = L1_gFexJWOJMet_Et;
707
708
709 for (const std::string& alg : m_algsHLT) {
710 if (alg == "cell" && hlt_cell_met_cont.isValid() && hlt_cell_met_cont->size() > 0) {
711 hlt_met = hlt_cell_met_cont->at(0);
712 } else if (alg == "mht" && hlt_mht_met_cont.isValid() && hlt_mht_met_cont->size() > 0) {
713 hlt_met = hlt_mht_met_cont->at(0);
714 } else if (alg == "tc" && hlt_tc_met_cont.isValid() && hlt_tc_met_cont->size() > 0) {
715 hlt_met = hlt_tc_met_cont->at(0);
716 } else if (alg == "tc_em" && hlt_tc_em_met_cont.isValid() && hlt_tc_em_met_cont->size() > 0) {
717 hlt_met = hlt_tc_em_met_cont->at(0);
718 } else if (alg == "tcpufit" && hlt_tcpufit_met_cont.isValid() && hlt_tcpufit_met_cont->size() > 0) {
719 hlt_met = hlt_tcpufit_met_cont->at(0);
720 } else if (alg == "tcpufit_sig30" && hlt_tcpufit_sig30_met_cont.isValid() && hlt_tcpufit_sig30_met_cont->size() > 0) {
721 hlt_met = hlt_tcpufit_sig30_met_cont->at(0);
722 } else if (alg == "trkmht" && hlt_trkmht_met_cont.isValid() && hlt_trkmht_met_cont->size() > 0) {
723 hlt_met = hlt_trkmht_met_cont->at(0);
724 } else if (alg == "pfsum" && hlt_pfsum_met_cont.isValid() && hlt_pfsum_met_cont->size() > 0) {
725 hlt_met = hlt_pfsum_met_cont->at(0);
726 } else if (alg == "pfsum_cssk" && hlt_pfsum_cssk_met_cont.isValid() && hlt_pfsum_cssk_met_cont->size() > 0) {
727 hlt_met = hlt_pfsum_cssk_met_cont->at(0);
728 } else if (alg == "pfsum_vssk" && hlt_pfsum_vssk_met_cont.isValid() && hlt_pfsum_vssk_met_cont->size() > 0) {
729 hlt_met = hlt_pfsum_vssk_met_cont->at(0);
730 } else if (alg == "pfopufit" && hlt_pfopufit_met_cont.isValid() && hlt_pfopufit_met_cont->size() > 0) {
731 hlt_met = hlt_pfopufit_met_cont->at(0);
732 } else if (alg == "pfopufit_sig30" && hlt_pfopufit_sig30_met_cont.isValid() && hlt_pfopufit_sig30_met_cont->size() > 0) {
733 hlt_met = hlt_pfopufit_sig30_met_cont->at(0);
734 } else if (alg == "cvfpufit" && hlt_cvfpufit_met_cont.isValid() && hlt_cvfpufit_met_cont->size() > 0) {
735 hlt_met = hlt_cvfpufit_met_cont->at(0);
736 } else if (alg == "mhtpufit_pf" && hlt_mhtpufit_pf_met_cont.isValid() && hlt_mhtpufit_pf_met_cont->size() > 0) {
737 hlt_met = hlt_mhtpufit_pf_met_cont->at(0);
738 } else if (alg == "mhtpufit_em" && hlt_mhtpufit_em_met_cont.isValid() && hlt_mhtpufit_em_met_cont->size() > 0) {
739 hlt_met = hlt_mhtpufit_em_met_cont->at(0);
740 } else if (alg == "met_nn" && hlt_met_nn_cont.isValid() && hlt_met_nn_cont->size() > 0) {
741 hlt_met = hlt_met_nn_cont->at(0);
742 } else {
743 hlt_met = 0;
744 }
745
746 if ( hlt_met ) {
747 float hlt_Ex = hlt_met->
ex()/Gaudi::Units::GeV;
748 float hlt_Ey = hlt_met->
ey()/Gaudi::Units::GeV;
749 float hlt_Ez = hlt_met->
ez()/Gaudi::Units::GeV;
750 float hlt_Et = std::sqrt(hlt_Ex*hlt_Ex + hlt_Ey*hlt_Ey);
751 float hlt_sumEt = hlt_met->
sumEt()/Gaudi::Units::GeV;
752 float hlt_Ex_log =
signed_log(hlt_Ex, epsilon);
753 float hlt_Ey_log =
signed_log(hlt_Ey, epsilon);
754 float hlt_Et_log =
signed_log(hlt_Et, epsilon);
755 float hlt_sumEt_log =
signed_log(hlt_sumEt, epsilon);
756 TVector3
v(hlt_Ex, hlt_Ey, hlt_Ez);
757 float hlt_eta =
v.Eta();
758 float hlt_phi =
v.Phi();
759
760 auto met_Ex = Monitored::Scalar<float>(alg+"_Ex", static_cast<float>(hlt_Ex));
761 auto met_Ey = Monitored::Scalar<float>(alg+"_Ey", static_cast<float>(hlt_Ey));
762 auto met_Et = Monitored::Scalar<float>(alg+"_Et", static_cast<float>(hlt_Et));
763 auto met_sumEt = Monitored::Scalar<float>(alg+"_sumEt", static_cast<float>(hlt_sumEt));
764 auto met_Ex_log = Monitored::Scalar<float>(alg+"_Ex_log", static_cast<float>(hlt_Ex_log));
765 auto met_Ey_log = Monitored::Scalar<float>(alg+"_Ey_log", static_cast<float>(hlt_Ey_log));
766 auto met_Et_log = Monitored::Scalar<float>(alg+"_Et_log", static_cast<float>(hlt_Et_log));
767 auto met_sumEt_log = Monitored::Scalar<float>(alg+"_sumEt_log", static_cast<float>(hlt_sumEt_log));
768 auto met_eta = Monitored::Scalar<float>(alg+"_eta", static_cast<float>(hlt_eta));
769 auto met_phi = Monitored::Scalar<float>(alg+"_phi", static_cast<float>(hlt_phi));
770 fill(tool,met_Ex,met_Ey,met_Et,met_sumEt,
771 met_Ex_log,met_Ey_log,met_Et_log,met_sumEt_log,
772 met_eta,met_phi);
773
774 }
775 }
776
777
778 for (const std::string& alg : m_algsHLTPreSel) {
779 if (alg == "cell" && hlt_cell_met_cont.isValid() && hlt_cell_met_cont->size() > 0) {
780 hlt_met = hlt_cell_met_cont->at(0);
781 } else if (alg == "mht" && hlt_mht_met_cont.isValid() && hlt_mht_met_cont->size() > 0) {
782 hlt_met = hlt_mht_met_cont->at(0);
783 } else if (alg == "tc" && hlt_tc_met_cont.isValid() && hlt_tc_met_cont->size() > 0) {
784 hlt_met = hlt_tc_met_cont->at(0);
785 } else if (alg == "tc_em" && hlt_tc_em_met_cont.isValid() && hlt_tc_em_met_cont->size() > 0) {
786 hlt_met = hlt_tc_em_met_cont->at(0);
787 } else if (alg == "tcpufit" && hlt_tcpufit_met_cont.isValid() && hlt_tcpufit_met_cont->size() > 0) {
788 hlt_met = hlt_tcpufit_met_cont->at(0);
789 } else if (alg == "tcpufit_sig30" && hlt_tcpufit_sig30_met_cont.isValid() && hlt_tcpufit_sig30_met_cont->size() > 0) {
790 hlt_met = hlt_tcpufit_sig30_met_cont->at(0);
791 } else if (alg == "trkmht" && hlt_trkmht_met_cont.isValid() && hlt_trkmht_met_cont->size() > 0) {
792 hlt_met = hlt_trkmht_met_cont->at(0);
793 } else if (alg == "pfsum" && hlt_pfsum_met_cont.isValid() && hlt_pfsum_met_cont->size() > 0) {
794 hlt_met = hlt_pfsum_met_cont->at(0);
795 } else if (alg == "pfsum_cssk" && hlt_pfsum_cssk_met_cont.isValid() && hlt_pfsum_cssk_met_cont->size() > 0) {
796 hlt_met = hlt_pfsum_cssk_met_cont->at(0);
797 } else if (alg == "pfsum_vssk" && hlt_pfsum_vssk_met_cont.isValid() && hlt_pfsum_vssk_met_cont->size() > 0) {
798 hlt_met = hlt_pfsum_vssk_met_cont->at(0);
799 } else if (alg == "pfopufit" && hlt_pfopufit_met_cont.isValid() && hlt_pfopufit_met_cont->size() > 0) {
800 hlt_met = hlt_pfopufit_met_cont->at(0);
801 } else if (alg == "pfopufit_sig30" && hlt_pfopufit_sig30_met_cont.isValid() && hlt_pfopufit_sig30_met_cont->size() > 0) {
802 hlt_met = hlt_pfopufit_sig30_met_cont->at(0);
803 } else if (alg == "cvfpufit" && hlt_cvfpufit_met_cont.isValid() && hlt_cvfpufit_met_cont->size() > 0) {
804 hlt_met = hlt_cvfpufit_met_cont->at(0);
805 } else if (alg == "mhtpufit_pf" && hlt_mhtpufit_pf_met_cont.isValid() && hlt_mhtpufit_pf_met_cont->size() > 0) {
806 hlt_met = hlt_mhtpufit_pf_met_cont->at(0);
807 } else if (alg == "mhtpufit_em" && hlt_mhtpufit_em_met_cont.isValid() && hlt_mhtpufit_em_met_cont->size() > 0) {
808 hlt_met = hlt_mhtpufit_em_met_cont->at(0);
809 } else if (alg == "met_nn" && hlt_met_nn_cont.isValid() && hlt_met_nn_cont->size() > 0) {
810 hlt_met = hlt_met_nn_cont->at(0);
811 } else {
812 hlt_met = 0;
813 }
814
815 if ( hlt_met ) {
816 float hlt_Ex = hlt_met->
ex()/Gaudi::Units::GeV;
817 float hlt_Ey = hlt_met->
ey()/Gaudi::Units::GeV;
818 float hlt_Et = std::sqrt(hlt_Ex*hlt_Ex + hlt_Ey*hlt_Ey);
819 if (L1_PreSelMet_Et > m_L1MetCut && !std::isnan(hlt_Et)) {
820 auto met_presel_Et = Monitored::Scalar<float>(alg+"_presel_Et", hlt_Et);
821 fill(tool,met_presel_Et);
822 }
823 }
824 }
825
826 for (const std::string& alg : m_LArNoiseBurstVetoAlgs) {
827 if (alg == "cell" && hlt_cell_met_cont.isValid() && hlt_cell_met_cont->size() > 0) {
828 hlt_met = hlt_cell_met_cont->at(0);
829 } else if (alg == "mht" && hlt_mht_met_cont.isValid() && hlt_mht_met_cont->size() > 0) {
830 hlt_met = hlt_mht_met_cont->at(0);
831 } else if (alg == "tc" && hlt_tc_met_cont.isValid() && hlt_tc_met_cont->size() > 0) {
832 hlt_met = hlt_tc_met_cont->at(0);
833 } else if (alg == "tc_em" && hlt_tc_em_met_cont.isValid() && hlt_tc_em_met_cont->size() > 0) {
834 hlt_met = hlt_tc_em_met_cont->at(0);
835 } else if (alg == "tcpufit" && hlt_tcpufit_met_cont.isValid() && hlt_tcpufit_met_cont->size() > 0) {
836 hlt_met = hlt_tcpufit_met_cont->at(0);
837 } else if (alg == "trkmht" && hlt_trkmht_met_cont.isValid() && hlt_trkmht_met_cont->size() > 0) {
838 hlt_met = hlt_trkmht_met_cont->at(0);
839 } else if (alg == "pfsum" && hlt_pfsum_met_cont.isValid() && hlt_pfsum_met_cont->size() > 0) {
840 hlt_met = hlt_pfsum_met_cont->at(0);
841 } else if (alg == "pfsum_cssk" && hlt_pfsum_cssk_met_cont.isValid() && hlt_pfsum_cssk_met_cont->size() > 0) {
842 hlt_met = hlt_pfsum_cssk_met_cont->at(0);
843 } else if (alg == "pfsum_vssk" && hlt_pfsum_vssk_met_cont.isValid() && hlt_pfsum_vssk_met_cont->size() > 0) {
844 hlt_met = hlt_pfsum_vssk_met_cont->at(0);
845 } else if (alg == "pfopufit" && hlt_pfopufit_met_cont.isValid() && hlt_pfopufit_met_cont->size() > 0) {
846 hlt_met = hlt_pfopufit_met_cont->at(0);
847 } else if (alg == "cvfpufit" && hlt_cvfpufit_met_cont.isValid() && hlt_cvfpufit_met_cont->size() > 0) {
848 hlt_met = hlt_cvfpufit_met_cont->at(0);
849 } else if (alg == "mhtpufit_pf" && hlt_mhtpufit_pf_met_cont.isValid() && hlt_mhtpufit_pf_met_cont->size() > 0) {
850 hlt_met = hlt_mhtpufit_pf_met_cont->at(0);
851 } else if (alg == "mhtpufit_em" && hlt_mhtpufit_em_met_cont.isValid() && hlt_mhtpufit_em_met_cont->size() > 0) {
852 hlt_met = hlt_mhtpufit_em_met_cont->at(0);
853 } else {
854 hlt_met = 0;
855 }
856
857 if ( hlt_met ) {
858 float hlt_Ex = hlt_met->
ex()/Gaudi::Units::GeV;
859 float hlt_Ey = hlt_met->
ey()/Gaudi::Units::GeV;
860 float hlt_Ez = hlt_met->
ez()/Gaudi::Units::GeV;
861 float hlt_Et = std::sqrt(hlt_Ex*hlt_Ex + hlt_Ey*hlt_Ey);
862 float hlt_sumEt = hlt_met->
sumEt()/Gaudi::Units::GeV;
863 float hlt_Ex_log =
signed_log(hlt_Ex, epsilon);
864 float hlt_Ey_log =
signed_log(hlt_Ey, epsilon);
865 float hlt_Et_log =
signed_log(hlt_Et, epsilon);
866 float hlt_sumEt_log =
signed_log(hlt_sumEt, epsilon);
867 TVector3
v(hlt_Ex, hlt_Ey, hlt_Ez);
868 float hlt_eta =
v.Eta();
869 float hlt_phi =
v.Phi();
870
871
872
874 if (!LArNoiseBurst){
875 auto met_Ex = Monitored::Scalar<float>(alg+"_LArNoiseBurstVeto_Ex", static_cast<float>(hlt_Ex));
876 auto met_Ey = Monitored::Scalar<float>(alg+"_LArNoiseBurstVeto_Ey", static_cast<float>(hlt_Ey));
877 auto met_Et = Monitored::Scalar<float>(alg+"_LArNoiseBurstVeto_Et", static_cast<float>(hlt_Et));
878 auto met_sumEt = Monitored::Scalar<float>(alg+"_LArNoiseBurstVeto_sumEt", static_cast<float>(hlt_sumEt));
879 auto met_Ex_log = Monitored::Scalar<float>(alg+"_LArNoiseBurstVeto_Ex_log", static_cast<float>(hlt_Ex_log));
880 auto met_Ey_log = Monitored::Scalar<float>(alg+"_LArNoiseBurstVeto_Ey_log", static_cast<float>(hlt_Ey_log));
881 auto met_Et_log = Monitored::Scalar<float>(alg+"_LArNoiseBurstVeto_Et_log", static_cast<float>(hlt_Et_log));
882 auto met_sumEt_log = Monitored::Scalar<float>(alg+"_LArNoiseBurstVeto_sumEt_log", static_cast<float>(hlt_sumEt_log));
883 auto met_phi = Monitored::Scalar<float>(alg+"_LArNoiseBurstVeto_phi", static_cast<float>(hlt_phi));
884 auto met_eta = Monitored::Scalar<float>(alg+"_LArNoiseBurstVeto_eta", static_cast<float>(hlt_eta));
885 fill(tool,met_Ex,met_Ey,met_Et,met_sumEt,
886 met_Ex_log,met_Ey_log,met_Et_log,met_sumEt_log,
887 met_eta,met_phi);
888 }
889 }
890 }
891
892
893 for (const std::string& alg : m_signalLepAlgs) {
894 if (alg == "cell" && hlt_cell_met_cont.isValid() && hlt_cell_met_cont->size() > 0) {
895 hlt_met = hlt_cell_met_cont->at(0);
896 } else if (alg == "mht" && hlt_mht_met_cont.isValid() && hlt_mht_met_cont->size() > 0) {
897 hlt_met = hlt_mht_met_cont->at(0);
898 } else if (alg == "tc" && hlt_tc_met_cont.isValid() && hlt_tc_met_cont->size() > 0) {
899 hlt_met = hlt_tc_met_cont->at(0);
900 } else if (alg == "tc_em" && hlt_tc_em_met_cont.isValid() && hlt_tc_em_met_cont->size() > 0) {
901 hlt_met = hlt_tc_em_met_cont->at(0);
902 } else if (alg == "tcpufit" && hlt_tcpufit_met_cont.isValid() && hlt_tcpufit_met_cont->size() > 0) {
903 hlt_met = hlt_tcpufit_met_cont->at(0);
904 } else if (alg == "trkmht" && hlt_trkmht_met_cont.isValid() && hlt_trkmht_met_cont->size() > 0) {
905 hlt_met = hlt_trkmht_met_cont->at(0);
906 } else if (alg == "pfsum" && hlt_pfsum_met_cont.isValid() && hlt_pfsum_met_cont->size() > 0) {
907 hlt_met = hlt_pfsum_met_cont->at(0);
908 } else if (alg == "pfsum_cssk" && hlt_pfsum_cssk_met_cont.isValid() && hlt_pfsum_cssk_met_cont->size() > 0) {
909 hlt_met = hlt_pfsum_cssk_met_cont->at(0);
910 } else if (alg == "pfsum_vssk" && hlt_pfsum_vssk_met_cont.isValid() && hlt_pfsum_vssk_met_cont->size() > 0) {
911 hlt_met = hlt_pfsum_vssk_met_cont->at(0);
912 } else if (alg == "pfopufit" && hlt_pfopufit_met_cont.isValid() && hlt_pfopufit_met_cont->size() > 0) {
913 hlt_met = hlt_pfopufit_met_cont->at(0);
914 } else if (alg == "cvfpufit" && hlt_cvfpufit_met_cont.isValid() && hlt_cvfpufit_met_cont->size() > 0) {
915 hlt_met = hlt_cvfpufit_met_cont->at(0);
916 } else if (alg == "mhtpufit_pf" && hlt_mhtpufit_pf_met_cont.isValid() && hlt_mhtpufit_pf_met_cont->size() > 0) {
917 hlt_met = hlt_mhtpufit_pf_met_cont->at(0);
918 } else if (alg == "mhtpufit_em" && hlt_mhtpufit_em_met_cont.isValid() && hlt_mhtpufit_em_met_cont->size() > 0) {
919 hlt_met = hlt_mhtpufit_em_met_cont->at(0);
920 } else {
921 hlt_met = 0;
922 }
923
924 if ( hlt_met ) {
925 float hlt_Ex = hlt_met->
ex()/Gaudi::Units::GeV;
926 float hlt_Ey = hlt_met->
ey()/Gaudi::Units::GeV;
927 float hlt_Ez = hlt_met->
ez()/Gaudi::Units::GeV;
928 float hlt_Et = std::sqrt(hlt_Ex*hlt_Ex + hlt_Ey*hlt_Ey);
929 float hlt_sumEt = hlt_met->
sumEt()/Gaudi::Units::GeV;
930 float hlt_Ex_log =
signed_log(hlt_Ex, epsilon);
931 float hlt_Ey_log =
signed_log(hlt_Ey, epsilon);
932 float hlt_Et_log =
signed_log(hlt_Et, epsilon);
933 float hlt_sumEt_log =
signed_log(hlt_sumEt, epsilon);
934 TVector3
v(hlt_Ex, hlt_Ey, hlt_Ez);
935 float hlt_eta =
v.Eta();
936 float hlt_phi =
v.Phi();
937
938
939 if(passedPrimaryEl){
940 auto met_Ex = Monitored::Scalar<float>(alg+"_SigEl_Ex", static_cast<float>(hlt_Ex));
941 auto met_Ey = Monitored::Scalar<float>(alg+"_SigEl_Ey", static_cast<float>(hlt_Ey));
942 auto met_Et = Monitored::Scalar<float>(alg+"_SigEl_Et", static_cast<float>(hlt_Et));
943 auto met_sumEt = Monitored::Scalar<float>(alg+"_SigEl_sumEt", static_cast<float>(hlt_sumEt));
944 auto met_Ex_log = Monitored::Scalar<float>(alg+"_SigEl_Ex_log", static_cast<float>(hlt_Ex_log));
945 auto met_Ey_log = Monitored::Scalar<float>(alg+"_SigEl_Ey_log", static_cast<float>(hlt_Ey_log));
946 auto met_Et_log = Monitored::Scalar<float>(alg+"_SigEl_Et_log", static_cast<float>(hlt_Et_log));
947 auto met_sumEt_log = Monitored::Scalar<float>(alg+"_SigEl_sumEt_log", static_cast<float>(hlt_sumEt_log));
948 auto met_eta = Monitored::Scalar<float>(alg+"_SigEl_eta", static_cast<float>(hlt_eta));
949 auto met_phi = Monitored::Scalar<float>(alg+"_SigEl_phi", static_cast<float>(hlt_phi));
950 fill(tool,met_Ex,met_Ey,met_Et,met_sumEt,
951 met_Ex_log,met_Ey_log,met_Et_log,met_sumEt_log,
952 met_eta,met_phi);
953 }
954
955
956 if(passedPrimaryMu){
957 auto met_Ex = Monitored::Scalar<float>(alg+"_SigMu_Ex", static_cast<float>(hlt_Ex));
958 auto met_Ey = Monitored::Scalar<float>(alg+"_SigMu_Ey", static_cast<float>(hlt_Ey));
959 auto met_Et = Monitored::Scalar<float>(alg+"_SigMu_Et", static_cast<float>(hlt_Et));
960 auto met_sumEt = Monitored::Scalar<float>(alg+"_SigMu_sumEt", static_cast<float>(hlt_sumEt));
961 auto met_Ex_log = Monitored::Scalar<float>(alg+"_SigMu_Ex_log", static_cast<float>(hlt_Ex_log));
962 auto met_Ey_log = Monitored::Scalar<float>(alg+"_SigMu_Ey_log", static_cast<float>(hlt_Ey_log));
963 auto met_Et_log = Monitored::Scalar<float>(alg+"_SigMu_Et_log", static_cast<float>(hlt_Et_log));
964 auto met_sumEt_log = Monitored::Scalar<float>(alg+"_SigMu_sumEt_log", static_cast<float>(hlt_sumEt_log));
965 auto met_eta = Monitored::Scalar<float>(alg+"_SigMu_eta", static_cast<float>(hlt_eta));
966 auto met_phi = Monitored::Scalar<float>(alg+"_SigMu_phi", static_cast<float>(hlt_phi));
967 fill(tool,met_Ex,met_Ey,met_Et,met_sumEt,
968 met_Ex_log,met_Ey_log,met_Et_log,met_sumEt_log,
969 met_eta,met_phi);
970 }
971 }
972 }
973
974
975 for (const std::string& alg : m_algsHLTExpert) {
976 if (alg == "cell" && hlt_cell_met_cont.isValid() && hlt_cell_met_cont->size() > 0) {
977 hlt_met = hlt_cell_met_cont->at(0);
978 } else if (alg == "mht" && hlt_mht_met_cont.isValid() && hlt_mht_met_cont->size() > 0) {
979 hlt_met = hlt_mht_met_cont->at(0);
980 } else if (alg == "tc" && hlt_tc_met_cont.isValid() && hlt_tc_met_cont->size() > 0) {
981 hlt_met = hlt_tc_met_cont->at(0);
982 } else if (alg == "tc_em" && hlt_tc_em_met_cont.isValid() && hlt_tc_em_met_cont->size() > 0) {
983 hlt_met = hlt_tc_em_met_cont->at(0);
984 } else if (alg == "tcpufit" && hlt_tcpufit_met_cont.isValid() && hlt_tcpufit_met_cont->size() > 0) {
985 hlt_met = hlt_tcpufit_met_cont->at(0);
986 } else if (alg == "tcpufit_sig30" && hlt_tcpufit_sig30_met_cont.isValid() && hlt_tcpufit_sig30_met_cont->size() > 0) {
987 hlt_met = hlt_tcpufit_sig30_met_cont->at(0);
988 } else if (alg == "trkmht" && hlt_trkmht_met_cont.isValid() && hlt_trkmht_met_cont->size() > 0) {
989 hlt_met = hlt_trkmht_met_cont->at(0);
990 } else if (alg == "pfsum" && hlt_pfsum_met_cont.isValid() && hlt_pfsum_met_cont->size() > 0) {
991 hlt_met = hlt_pfsum_met_cont->at(0);
992 } else if (alg == "pfsum_cssk" && hlt_pfsum_cssk_met_cont.isValid() && hlt_pfsum_cssk_met_cont->size() > 0) {
993 hlt_met = hlt_pfsum_cssk_met_cont->at(0);
994 } else if (alg == "pfsum_vssk" && hlt_pfsum_vssk_met_cont.isValid() && hlt_pfsum_vssk_met_cont->size() > 0) {
995 hlt_met = hlt_pfsum_vssk_met_cont->at(0);
996 } else if (alg == "pfopufit" && hlt_pfopufit_met_cont.isValid() && hlt_pfopufit_met_cont->size() > 0) {
997 hlt_met = hlt_pfopufit_met_cont->at(0);
998 } else if (alg == "pfopufit_sig30" && hlt_pfopufit_sig30_met_cont.isValid() && hlt_pfopufit_sig30_met_cont->size() > 0) {
999 hlt_met = hlt_pfopufit_sig30_met_cont->at(0);
1000 } else if (alg == "cvfpufit" && hlt_cvfpufit_met_cont.isValid() && hlt_cvfpufit_met_cont->size() > 0) {
1001 hlt_met = hlt_cvfpufit_met_cont->at(0);
1002 } else if (alg == "mhtpufit_pf" && hlt_mhtpufit_pf_met_cont.isValid() && hlt_mhtpufit_pf_met_cont->size() > 0) {
1003 hlt_met = hlt_mhtpufit_pf_met_cont->at(0);
1004 } else if (alg == "mhtpufit_em" && hlt_mhtpufit_em_met_cont.isValid() && hlt_mhtpufit_em_met_cont->size() > 0) {
1005 hlt_met = hlt_mhtpufit_em_met_cont->at(0);
1006 } else if (alg == "met_nn" && hlt_met_nn_cont.isValid() && hlt_met_nn_cont->size() > 0) {
1007 hlt_met = hlt_met_nn_cont->at(0);
1008 } else {
1009 hlt_met = 0;
1010 }
1011
1012 if ( hlt_met ) {
1013 float hlt_Ex = hlt_met->
ex()/Gaudi::Units::GeV;
1014 float hlt_Ey = hlt_met->
ey()/Gaudi::Units::GeV;
1015 float hlt_Et = std::sqrt(hlt_Ex*hlt_Ex + hlt_Ey*hlt_Ey);
1016 float hlt_sumEt = hlt_met->
sumEt()/Gaudi::Units::GeV;
1017 if (!std::isnan(hlt_Et)) {
1018 auto met_Ex = Monitored::Scalar<float>(alg+"_Ex", static_cast<float>(hlt_Ex));
1019 auto met_Ey = Monitored::Scalar<float>(alg+"_Ey", static_cast<float>(hlt_Ey));
1020 auto met_Et = Monitored::Scalar<float>(alg+"_Et", static_cast<float>(hlt_Et));
1021 auto met_sumEt = Monitored::Scalar<float>(alg+"_sumEt", static_cast<float>(hlt_sumEt));
1022 fill(tool,met_Ex,met_Ey,met_Et,met_sumEt);
1024 if (L1_roiMet_Et > 50.) {
1025 auto met_presel_Et = Monitored::Scalar<float>(alg+"_presel_Et", static_cast<float>(hlt_Et));
1026 fill(tool,met_presel_Et);
1027 }
1028 }
1029 }
1030 }
1031
1032
1034 for (const std::string& alg : m_algsMET2d_tcpufit) {
1035 if (alg == "cell" && hlt_cell_met_cont.isValid() && hlt_cell_met_cont->size() > 0) {
1036 hlt_met = hlt_cell_met_cont->at(0);
1037 } else if (alg == "mht" && hlt_mht_met_cont.isValid() && hlt_mht_met_cont->size() > 0) {
1038 hlt_met = hlt_mht_met_cont->at(0);
1039 } else if (alg == "tc" && hlt_tc_met_cont.isValid() && hlt_tc_met_cont->size() > 0) {
1040 hlt_met = hlt_tc_met_cont->at(0);
1041 } else if (alg == "tc_em" && hlt_tc_em_met_cont.isValid() && hlt_tc_em_met_cont->size() > 0) {
1042 hlt_met = hlt_tc_em_met_cont->at(0);
1043 } else if (alg == "trkmht_pf" && hlt_trkmht_met_cont.isValid() && hlt_trkmht_met_cont->size() > 0) {
1044 hlt_met = hlt_trkmht_met_cont->at(0);
1045 } else if (alg == "pfsum" && hlt_pfsum_met_cont.isValid() && hlt_pfsum_met_cont->size() > 0) {
1046 hlt_met = hlt_pfsum_met_cont->at(0);
1047 } else if (alg == "pfsum_cssk" && hlt_pfsum_cssk_met_cont.isValid() && hlt_pfsum_cssk_met_cont->size() > 0) {
1048 hlt_met = hlt_pfsum_cssk_met_cont->at(0);
1049 } else if (alg == "pfsum_vssk" && hlt_pfsum_vssk_met_cont.isValid() && hlt_pfsum_vssk_met_cont->size() > 0) {
1050 hlt_met = hlt_pfsum_vssk_met_cont->at(0);
1051 } else if (alg == "pfopufit" && hlt_pfopufit_met_cont.isValid() && hlt_pfopufit_met_cont->size() > 0) {
1052 hlt_met = hlt_pfopufit_met_cont->at(0);
1053 } else if (alg == "cvfpufit" && hlt_cvfpufit_met_cont.isValid() && hlt_cvfpufit_met_cont->size() > 0) {
1054 hlt_met = hlt_cvfpufit_met_cont->at(0);
1055 } else if (alg == "mhtpufit_pf" && hlt_mhtpufit_pf_met_cont.isValid() && hlt_mhtpufit_pf_met_cont->size() > 0) {
1056 hlt_met = hlt_mhtpufit_pf_met_cont->at(0);
1057 } else if (alg == "mhtpufit_em" && hlt_mhtpufit_em_met_cont.isValid() && hlt_mhtpufit_em_met_cont->size() > 0) {
1058 hlt_met = hlt_mhtpufit_em_met_cont->at(0);
1059 } else {
1060 hlt_met = 0;
1061 }
1062
1063 if(hlt_met && hlt_tcpufit_met_cont.isValid() && hlt_tcpufit_met_cont->size() > 0){
1064 hlt_tcpufit_met = hlt_tcpufit_met_cont->at(0);
1065 float hlt_Ex = hlt_met->
ex()/Gaudi::Units::GeV;
1066 float hlt_Ey = hlt_met->
ey()/Gaudi::Units::GeV;
1067 float hlt_Et = std::sqrt(hlt_Ex*hlt_Ex + hlt_Ey*hlt_Ey);
1068 auto met_Et = Monitored::Scalar<float>(alg+"_2D_Et", static_cast<float>(hlt_Et));
1069
1070 float hlt_tcpufit_Ex = hlt_tcpufit_met->
ex()/Gaudi::Units::GeV;
1071 float hlt_tcpufit_Ey = hlt_tcpufit_met->
ey()/Gaudi::Units::GeV;
1072 float hlt_tcpufit_Et = std::sqrt(hlt_tcpufit_Ex*hlt_tcpufit_Ex + hlt_tcpufit_Ey*hlt_tcpufit_Ey);
1073 auto tcpufit_met_Et = Monitored::Scalar<float>("tcpufit_2D_Et", static_cast<float>(hlt_tcpufit_Et));
1074 fill(tool, met_Et, tcpufit_met_Et);
1075 }
1076 }
1077
1078
1079 for (const std::string& chain : m_l1Chains) {
1080 auto pass_chain = Monitored::Scalar<float>(
"pass_" + chain,
static_cast<float>(
getTrigDecisionTool()->isPassed(chain)));
1081 fill(tool, pass_chain,offline_NoMu_Et_eff);
1082 }
1083 for (const std::string& chain : m_hltChains) {
1084 auto pass_chain = Monitored::Scalar<float>(
"pass_" + chain,
static_cast<float>(
getTrigDecisionTool()->isPassed(chain)));
1085 fill(tool, pass_chain,offline_NoMu_Et_eff);
1086 }
1087 for (const std::string& chain : m_hltChainsVal) {
1088 auto pass_chain = Monitored::Scalar<float>(
"pass_" + chain,
static_cast<float>(
getTrigDecisionTool()->isPassed(chain)));
1089 fill(tool, pass_chain,offline_NoMu_Et_eff);
1090 }
1091 for (const std::string& chain : m_hltChainsT0) {
1092 auto pass_chain = Monitored::Scalar<float>(
"pass_" + chain,
static_cast<float>(
getTrigDecisionTool()->isPassed(chain)));
1093 fill(tool, pass_chain,offline_NoMu_Et_eff);
1094 }
1095
1096 return StatusCode::SUCCESS;
1097}
const ToolHandle< GenericMonitoringTool > & getGroup(const std::string &name) const
Get a specific monitoring tool from the tool handle array.
const ToolHandle< Trig::TrigDecisionTool > & getTrigDecisionTool() const
Get the trigger decision tool member.
Gaudi::Property< std::vector< std::string > > m_compNames
Gaudi::Property< std::vector< std::string > > m_bitNames
double signed_log(double e, double epsilon) const
SG::ReadHandleKey< xAOD::EnergySumRoI > m_lvl1_roi_key
virtual double pt() const override final
The transverse momentum ( ) of the particle.
float energyT() const
The deposited total transverse energy.
float energyX() const
The total energy deposited in the X direction.
float energyY() const
The total energy deposited in the Y direction.
@ LAr
The LAr calorimeter.
float sumet() const
Returns.
float mpx() const
Returns .
float mpy() const
Returns .
virtual double pt() const override
The transverse momentum ( ) of the particle.
int flag() const
Get the status flag.
float ex() const
Get the x component of the missing energy.
float exComponent(unsigned int index) const
Get the x component fo the energy of a component.
float eyComponent(unsigned int index) const
Get the y component fo the energy of a component.
float sumEt() const
Get the sum of the ET of the missing energy.
short statusComponent(unsigned int index) const
Get Status.
float ez() const
Get the z component of the missing energy.
float ey() const
Get the y component of the missing energy.
float z() const
Returns the z position.
float METquantityTwo() const
floating point value (GeV, TOB scale)
float METquantityOne() const
retrieves the Et index from the 32-bit word
Generic monitoring tool for athena components.
float j(const xAOD::IParticle &, const xAOD::TrackMeasurementValidation &hit, const Eigen::Matrix3d &jab_inv)
MissingET_v1 MissingET
Version control by type defintion.
gFexGlobalRoI_v1 gFexGlobalRoI
Define the latest version of the eFexEMRoI class.
TrigMissingET_v1 TrigMissingET
Define the most recent version of the TrigMissingET class.
Muon_v1 Muon
Reference the current persistent version:
EnergySumRoI_v2 EnergySumRoI
Electron_v1 Electron
Definition of the current "egamma version".
void fill(H5::Group &out_file, size_t iterations)