ATLAS Offline Software
Loading...
Searching...
No Matches
TrigEDMChecker.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7#include "GaudiKernel/IToolSvc.h"
8
13
19
20#include "AthContainers/debug.h"
54#include "tauEvent/TauJet.h"
55
57
60
67
69#include "xAODEgamma/Electron.h"
71#include "xAODEgamma/Photon.h"
72
73
76#include "xAODTau/TauDefs.h"
77#include "xAODTau/TauJet.h"
78
79
80#include "TrigEDMChecker.h"
81
90
94
96
97
98
99#include "AthViews/ViewHelper.h"
100#include "AthViews/View.h"
101
102
103#include <iostream>
104#include <fstream>
105#include <queue>
106
107static const int maxRepWarnings = 5;
108
109
110TrigEDMChecker::TrigEDMChecker(const std::string& name, ISvcLocator* pSvcLocator)
111 : AthAnalysisAlgorithm(name, pSvcLocator),
112 m_clidSvc( "ClassIDSvc", name )
113{
115
116 declareProperty("doDumpAll", m_doDumpAll = true);
117 declareProperty("doDumpTrigPassBits", m_doDumpTrigPassBits = false);
118 declareProperty("doDumpLVL1_ROI", m_doDumpLVL1_ROI = false);
119 declareProperty("doDumpTrigMissingET", m_doDumpTrigMissingET = false);
120 declareProperty("doDumpxAODTrigMissingET", m_doDumpxAODTrigMissingET = false);
121 declareProperty("doDumpMuonFeature", m_doDumpMuonFeature = false);
122 declareProperty("doDumpCombinedMuonFeature", m_doDumpCombinedMuonFeature = false);
123 declareProperty("doDumpTileMuFeature", m_doDumpTileMuFeature = false);
124 declareProperty("doDumpTileTrackMuFeature", m_doDumpTileTrackMuFeature = false);
125 declareProperty("doDumpTrigPhotonContainer", m_doDumpTrigPhotonContainer = false);
126 declareProperty("doDumpTrigL2BphysContainer", m_doDumpTrigL2BphysContainer = false);
127 declareProperty("doDumpTrigEFBphysContainer", m_doDumpTrigEFBphysContainer = false);
128 declareProperty("doDumpTrigEFBjetContainer", m_doDumpTrigEFBjetContainer = false);
129 declareProperty("doDumpTrigL2BjetContainer", m_doDumpTrigL2BjetContainer = false);
130 declareProperty("doDumpxAODJetContainer", m_doDumpxAODJetContainer = false);
131 declareProperty("doDumpTrigMuonEFContainer", m_doDumpTrigMuonEFContainer = false);
132 declareProperty("doDumpTrigMuonEFInfoContainer", m_doDumpTrigMuonEFInfoContainer = false);
133 declareProperty("doDumpTrigMuonEFIsolationContainer", m_doDumpTrigMuonEFIsolationContainer = false);
134 declareProperty("doDumpxAODMuonContainer", m_doDumpxAODMuonContainer = false);
135 declareProperty("doDumpTrigElectronContainer", m_doDumpTrigElectronContainer = false);
136 declareProperty("doDumpxAODTrigElectronContainer", m_doDumpxAODTrigElectronContainer = false);
137 declareProperty("doDumpxAODTrigPhotonContainer", m_doDumpxAODTrigPhotonContainer = false);
138 declareProperty("doDumpxAODElectronContainer", m_doDumpxAODElectronContainer = false);
139 declareProperty("doDumpxAODPhotonContainer", m_doDumpxAODPhotonContainer = false);
140 declareProperty("doDumpHLTResult", m_doDumpHLTResult = false);
141 declareProperty("doDumpTrigTauContainer", m_doDumpTrigTauContainer = false);
142 declareProperty("doDumpTrigTauTracksInfo", m_doDumpTrigTauTracksInfo = false);
143 declareProperty("doDumpTrigVertexCollection", m_doDumpTrigVertexCollection = false);
144 declareProperty("doDumpTrigEMCluster", m_doDumpTrigEMCluster = false);
145 declareProperty("doDumpTrigEMClusterContainer", m_doDumpTrigEMClusterContainer = false);
146 declareProperty("doDumpxAODTrigEMCluster", m_doDumpxAODTrigEMCluster = false);
147 declareProperty("doDumpxAODTrigEMClusterContainer", m_doDumpxAODTrigEMClusterContainer = false);
148 declareProperty("doDumpTrigTauClusterContainer", m_doDumpTrigTauClusterContainer = false);
149 declareProperty("doDumpTrackParticleContainer", m_doDumpTrackParticleContainer = false);
150 declareProperty("doDumpTauJetContainer", m_doDumpTauJetContainer = false);
151 declareProperty("doDumpxAODTrackParticle", m_doDumpxAODTrackParticle = false);
152 declareProperty("doDumpxAODVertex", m_doDumpxAODVertex = false);
153 declareProperty("doDumpxAODTauJetContainer", m_doDumpxAODTauJetContainer = false);
154 declareProperty("doDumpxAODTrigMinBias", m_doDumpxAODTrigMinBias = false);
155 declareProperty("doDumpStoreGate", m_doDumpStoreGate = false );
156 declareProperty("doDumpAllTrigComposite", m_doDumpAllTrigComposite = false );
157 declareProperty("dumpTrigCompositeContainers", m_dumpTrigCompositeContainers, "List of TC to dump" );
158 declareProperty("doDumpTrigCompsiteNavigation", m_doDumpTrigCompsiteNavigation = false );
159 declareProperty("doDumpNavigation", m_doDumpNavigation = false );
160 declareProperty("doTDTCheck", m_doTDTCheck = false );
161 declareProperty( "ClassIDSvc", m_clidSvc, "Service providing CLID info" );
162}
163
164
165
167
169
170 ATH_CHECK( m_navigationHandleKey.initialize() );
171 ATH_CHECK( m_decisionsKey.initialize() );
172 ATH_CHECK( m_navigationTool.retrieve() );
173
174 ATH_MSG_DEBUG("Initializing TrigEDMChecker");
175
176 ATH_MSG_INFO("REGTEST Initializing...");
177 ATH_MSG_INFO("REGTEST m_doDumpAll = " << m_doDumpAll );
178 ATH_MSG_INFO("REGTEST m_doDumpLVL1_ROI = " << m_doDumpLVL1_ROI);
179 ATH_MSG_INFO("REGTEST m_doDumpTrigMissingET = " << m_doDumpTrigMissingET );
180 ATH_MSG_INFO("REGTEST m_doDumpxAODTrigMissingET = " << m_doDumpxAODTrigMissingET );
181 ATH_MSG_INFO("REGTEST m_doDumpMuonFeature = " << m_doDumpMuonFeature );
182 ATH_MSG_INFO("REGTEST m_doDumpCombinedMuonFeature = " << m_doDumpCombinedMuonFeature );
183 ATH_MSG_INFO("REGTEST m_doDumpTileMuFeature = " << m_doDumpTileMuFeature);
184 ATH_MSG_INFO("REGTEST m_doDumpTileTrackMuFeature = " << m_doDumpTileTrackMuFeature);
185 ATH_MSG_INFO("REGTEST m_doDumpTrigPhotonContainer = " << m_doDumpTrigPhotonContainer );
186 ATH_MSG_INFO("REGTEST m_doDumpTrigL2BphysContainer = " << m_doDumpTrigL2BphysContainer );
187 ATH_MSG_INFO("REGTEST m_doDumpTrigEFBphysContainer = " << m_doDumpTrigEFBphysContainer );
188 ATH_MSG_INFO("REGTEST m_doDumpTrigEFBjetContainer = " << m_doDumpTrigEFBjetContainer );
189 ATH_MSG_INFO("REGTEST m_doDumpTrigL2BjetContainer = " << m_doDumpTrigL2BjetContainer );
190 ATH_MSG_INFO("REGTEST m_doDumpxAODJetContainer = " << m_doDumpxAODJetContainer );
191 ATH_MSG_INFO("REGTEST m_doDumpTrigMuonEFContainer = " << m_doDumpTrigMuonEFContainer );
192 ATH_MSG_INFO("REGTEST m_doDumpTrigMuonEFInfoContainer = " << m_doDumpTrigMuonEFInfoContainer );
193 ATH_MSG_INFO("REGTEST m_doDumpxAODMuonContainer = " << m_doDumpxAODMuonContainer );
194 ATH_MSG_INFO("REGTEST m_doDumpTrigElectronContainer = " << m_doDumpTrigElectronContainer );
195 ATH_MSG_INFO("REGTEST m_doDumpxAODTrigElectronContainer= " << m_doDumpxAODTrigElectronContainer );
196 ATH_MSG_INFO("REGTEST m_doDumpxAODTrigPhotonContainer = " << m_doDumpxAODTrigPhotonContainer );
197 ATH_MSG_INFO("REGTEST m_doDumpxAODElectronContainer = " << m_doDumpxAODElectronContainer );
198 ATH_MSG_INFO("REGTEST m_doDumpxAODPhotonContainer = " << m_doDumpxAODPhotonContainer );
199 ATH_MSG_INFO("REGTEST m_doDumpHLTResult = " << m_doDumpHLTResult );
200 ATH_MSG_INFO("REGTEST m_doDumpTrigTauContainer = " << m_doDumpTrigTauContainer );
201 ATH_MSG_INFO("REGTEST m_doDumpTrigTauTracksInfo = " << m_doDumpTrigTauTracksInfo );
202 ATH_MSG_INFO("REGTEST m_doDumpTrigVertexCollection = " << m_doDumpTrigVertexCollection );
203 ATH_MSG_INFO("REGTEST m_doDumpTrigEMCluster = " << m_doDumpTrigEMCluster );
204 ATH_MSG_INFO("REGTEST m_doDumpTrigEMClusterContainer = " << m_doDumpTrigEMClusterContainer );
205 ATH_MSG_INFO("REGTEST m_doDumpTrigTauClusterContainer = " << m_doDumpTrigTauClusterContainer );
206 ATH_MSG_INFO("REGTEST m_doDumpTrackParticleContainer = " << m_doDumpTrackParticleContainer );
207 ATH_MSG_INFO("REGTEST m_doDumpTauJetContainer = " << m_doDumpTauJetContainer );
208 ATH_MSG_INFO("REGTEST m_doDumpxAODTrackParticle = " << m_doDumpxAODTrackParticle );
209 ATH_MSG_INFO("REGTEST m_doDumpxAODVertex = " << m_doDumpxAODVertex );
210 ATH_MSG_INFO("REGTEST m_doDumpxAODTauJetContainer = " << m_doDumpxAODTauJetContainer );
211 ATH_MSG_INFO("REGTEST m_doDumpxAODTrigMinBias = " << m_doDumpxAODTrigMinBias );
212 ATH_MSG_INFO("REGTEST m_doDumpStoreGate = " << m_doDumpStoreGate );
213 ATH_MSG_INFO("REGTEST m_doDumpAllTrigComposite = " << m_doDumpAllTrigComposite );
214 ATH_MSG_INFO("REGTEST m_dumpTrigCompositeContainers = " << m_dumpTrigCompositeContainers );
215 ATH_MSG_INFO("REGTEST m_doDumpTrigCompsiteNavigation = " << m_doDumpTrigCompsiteNavigation );
216 ATH_MSG_INFO("REGTEST m_doTDTCheck = " << m_doTDTCheck );
217
218 ATH_MSG_INFO("maxRepWarning = " << maxRepWarnings );
219
221 ATH_CHECK( m_muonPrinter.retrieve() );
222 }
223 else m_muonPrinter.disable(); // to avoid auto-retrieval
224
226 ATH_CHECK( m_clidSvc.retrieve() );
227 }
228
230 ATH_CHECK( m_trigDec.retrieve() );
231 ATH_MSG_INFO("TDT Executing with navigation format: " << m_trigDec->getNavigationFormat());
232 }
234
235 return StatusCode::SUCCESS;
236}
237
238
239StatusCode TrigEDMChecker::execute(const EventContext& ctx) {
240
241 /* fwinkl, Mar 20222:
242 Some attempt was made to make the code pass the thread-checker. Methods that
243 are clearly not thread-safe (e.g. use of DataHandle) are marked as such. Calling
244 these methods from within execute would still trigger a thread-checker warning.
245 Since this algorithm is only ever used for validation and in single-threaded athena,
246 we suppress these warnings by the following assignment. This has the advantage
247 (as opposed to disabling the checking for the entire file) that new code is still
248 being checked and will hopefully be written in a thread-safe manner, i.e. using
249 ReadHandleKeys. If someone is very eager they could migrate all uses of DataHandles...
250 */
251 StatusCode sc ATLAS_THREAD_SAFE = do_execute(ctx);
252 return sc;
253}
254
255StatusCode TrigEDMChecker::do_execute ATLAS_NOT_THREAD_SAFE(const EventContext& ctx) {
256
257 ATH_MSG_INFO( " ==========START of event===========" );
258
259 if(m_doDumpTrackParticleContainer){
260 StatusCode sc = dumpTrackParticleContainer();
261 if (sc.isFailure()) {
262 ATH_MSG_ERROR("The method dumpTrackParticleContainer() failed");
263 }
264 }
265
266 if(m_doDumpAll || m_doDumpLVL1_ROI ){
267 StatusCode sc = dumpLVL1_ROI();
268 if (sc.isFailure()) {
269 ATH_MSG_ERROR("The method dumpLVL1_ROI() failed");
270 }
271 }
272
273 /*
274 if(m_doDumpAll || m_doDumpTrigMissingET){
275 StatusCode sc = dumpTrigMissingET();
276 if (sc.isFailure()) {
277 mLog << MSG::ERROR << "The method dumpTrigMissingET() failed" << endmsg;
278
279 }
280 }
281 */
282
283 if(m_doDumpAll || m_doDumpxAODTrigMissingET){
284 StatusCode sc = dumpxAODTrigMissingET();
285 if (sc.isFailure()) {
286 ATH_MSG_ERROR("The method dumpxAODTrigMissingET() failed");
287 }
288 }
289
290 if(m_doDumpAll || m_doDumpMuonFeature){
291 StatusCode sc = dumpMuonFeature();
292 if (sc.isFailure()) {
293 ATH_MSG_ERROR("The method dumpMuonFeature() failed");
294 }
295 }
296
297 if(m_doDumpAll || m_doDumpCombinedMuonFeature){
298 StatusCode sc = dumpCombinedMuonFeature();
299 if (sc.isFailure()) {
300 ATH_MSG_ERROR("The method dumpCombinedMuonFeature() failed");
301 }
302 sc = dumpCombinedMuonFeatureContainer();
303 if (sc.isFailure()) {
304 ATH_MSG_ERROR("The method dumpCombinedMuonFeatureContainer() failed");
305 return StatusCode::SUCCESS;
306 }
307 }
308
309 if(m_doDumpAll || m_doDumpTileMuFeature) {
310 StatusCode sc = dumpTileMuFeatureContainer();
311 if (sc.isFailure()) {
312 ATH_MSG_ERROR("The method dumpTileMuFeatureContainer() failed");
313 }
314 }
315
316 if(m_doDumpAll || m_doDumpTileTrackMuFeature) {
317 StatusCode sc = dumpTileTrackMuFeatureContainer();
318 if (sc.isFailure()) {
319 ATH_MSG_ERROR("The method dumpTileTrackMuFeatureContainer() failed");
320 }
321 }
322
323 if(m_doDumpAll || m_doDumpTrigEMCluster){
324 StatusCode sc = dumpTrigEMCluster();
325 if (sc.isFailure()) {
326 ATH_MSG_ERROR("The method dumpTrigEMCluster() failed");
327 }
328 }
329
330 if(m_doDumpAll || m_doDumpTrigEMClusterContainer){
331 StatusCode sc = dumpTrigEMClusterContainer();
332 if (sc.isFailure()) {
333 ATH_MSG_ERROR("The method dumpTrigEMClusterContainer() failed");
334 }
335 }
336
337 if(m_doDumpAll || m_doDumpxAODTrigEMCluster){
338 StatusCode sc = dumpxAODTrigEMCluster();
339 if (sc.isFailure()) {
340 ATH_MSG_ERROR("The method dumpxAODTrigEMCluster() failed");
341 }
342 }
343
344 if(m_doDumpAll || m_doDumpxAODTrigEMClusterContainer){
345 StatusCode sc = dumpxAODTrigEMClusterContainer();
346 if (sc.isFailure()) {
347 ATH_MSG_ERROR("The method dumpxAODTrigEMClusterContainer() failed");
348 }
349 }
350
351 if(m_doDumpTrigTauClusterContainer){
352 StatusCode sc = dumpTrigTauClusterContainer();
353 if (sc.isFailure()) {
354 ATH_MSG_ERROR("The method dumpTrigTauClusterContainer() failed");
355 }
356 }
357
358 if(m_doDumpAll || m_doDumpTrigPhotonContainer){
359 StatusCode sc = dumpTrigPhotonContainer();
360 if (sc.isFailure()) {
361 ATH_MSG_ERROR("The method dumpTrigPhotonContainer() failed");
362 }
363 }
364
365 if(m_doDumpAll || m_doDumpxAODJetContainer){
366 StatusCode sc = dumpxAODJetContainer();
367 if (sc.isFailure()) {
368 ATH_MSG_ERROR("The method dumpxAODJetContainer() failed");
369 }
370 }
371
372 if(m_doDumpAll || m_doDumpTrigL2BphysContainer){
373 StatusCode sc = dumpTrigL2BphysContainer();
374 if (sc.isFailure()) {
375 ATH_MSG_ERROR("The method dumpTrigL2BphysContainer() failed");
376 }
377 }
378
379 if(m_doDumpAll || m_doDumpTrigEFBphysContainer){
380 StatusCode sc = dumpTrigEFBphysContainer();
381 if (sc.isFailure()) {
382 ATH_MSG_ERROR("The method dumpTrigEFBphysContainer() failed");
383 }
384 }
385
386 if(m_doDumpAll || m_doDumpTrigEFBjetContainer){
387 StatusCode sc = dumpTrigEFBjetContainer();
388 if (sc.isFailure()) {
389 ATH_MSG_ERROR("The method dumpTrigEFBjetContainer() failed");
390 }
391 }
392
393 if(m_doDumpAll || m_doDumpTrigL2BjetContainer){
394 StatusCode sc = dumpTrigL2BjetContainer();
395 if (sc.isFailure()) {
396 ATH_MSG_ERROR("The method dumpTrigL2BjetContainer() failed");
397 }
398 }
399
400 if(m_doDumpAll || m_doDumpTrigMuonEFContainer){
401 StatusCode sc = dumpTrigMuonEFContainer();
402 if (sc.isFailure()) {
403 ATH_MSG_ERROR("The method dumpTrigMuonEFContainer() failed");
404 }
405 }
406
407 if(m_doDumpAll || m_doDumpTrigMuonEFInfoContainer){
408 StatusCode sc = dumpTrigMuonEFInfoContainer();
409 if (sc.isFailure()) {
410 ATH_MSG_ERROR("The method dumpTrigMuonEFInfoContainer() failed");
411 }
412 }
413
414 if(m_doDumpAll || m_doDumpTrigMuonEFIsolationContainer) {
415 StatusCode sc = dumpTrigMuonEFIsolationContainer();
416 if(sc.isFailure()) {
417 ATH_MSG_ERROR("The method dumpTrigMuonEFIsolationContainer() failed");
418 }
419 }
420
421 if(m_doDumpAll || m_doDumpxAODMuonContainer) {
422 StatusCode sc = dumpxAODMuonContainer();
423 if(sc.isFailure()) {
424 ATH_MSG_ERROR("The method dumpxAODMuonContainer() failed");
425 }
426 }
427
428 if(m_doDumpAll || m_doDumpTrigElectronContainer){
429 StatusCode sc = dumpTrigElectronContainer();
430 if (sc.isFailure()) {
431 ATH_MSG_ERROR("The method dumpTrigElectronContainer() failed");
432 }
433 }
434
435 if(m_doDumpAll || m_doDumpxAODTrigElectronContainer){
436 StatusCode sc = dumpxAODTrigElectronContainer();
437 if (sc.isFailure()) {
438 ATH_MSG_ERROR("The method dumpxAODTrigElectronContainer() failed");
439 }
440 }
441
442 if(m_doDumpAll || m_doDumpxAODTrigPhotonContainer){
443 StatusCode sc = dumpxAODTrigPhotonContainer();
444 if (sc.isFailure()) {
445 ATH_MSG_ERROR("The method dumpxAODTrigElectronContainer() failed");
446 }
447 }
448
449 if(m_doDumpAll || m_doDumpxAODElectronContainer){
450 StatusCode sc = dumpxAODElectronContainer();
451 if (sc.isFailure()) {
452 ATH_MSG_ERROR("The method dumpxAODTrigElectronContainer() failed");
453 }
454 }
455
456 if(m_doDumpAll || m_doDumpxAODPhotonContainer){
457 StatusCode sc = dumpxAODPhotonContainer();
458 if (sc.isFailure()) {
459 ATH_MSG_ERROR("The method dumpxAODTrigElectronContainer() failed");
460 }
461 }
462
463 if(m_doDumpTrigTauContainer){
464 StatusCode sc = dumpTrigTauContainer();
465 if (sc.isFailure()) {
466 ATH_MSG_ERROR("The method dumpTrigTauContainer() failed");
467 }
468 }
469
470 if(m_doDumpTrigTauTracksInfo){
471 StatusCode sc = dumpTrigTauTracksInfo();
472 if (sc.isFailure()) {
473 ATH_MSG_ERROR("The method dumpTrigTauTracksInfo() failed");
474 }
475 }
476
477 if(m_doDumpAll || m_doDumpHLTResult){
478 StatusCode sc = dumpHLTResult();
479 if (sc.isFailure()) {
480 ATH_MSG_ERROR("The method dumpHLTResult() failed");
481 }
482 }
483
484 if(m_doDumpAll || m_doDumpTrigVertexCollection){
485 StatusCode sc = dumpTrigVertexCollection();
486 if (sc.isFailure()) {
487 ATH_MSG_ERROR("The method dumpTrigVertexCollection() failed");
488 }
489 }
490
491 if(m_doDumpAll || m_doDumpxAODTauJetContainer){
492 StatusCode sc = dumpxAODTauJetContainer();
493 if (sc.isFailure()) {
494 ATH_MSG_ERROR("The method dumpxAODTauJetContainer() failed");
495 }
496 }
497
498 if(m_doDumpTauJetContainer){
499 StatusCode sc = dumpTauJetContainer();
500 if (sc.isFailure()) {
501 ATH_MSG_ERROR("The method dumpTauJetContainer() failed");
502 }
503 }
504
505 if(m_doDumpAll || m_doDumpxAODTrackParticle){
506 StatusCode sc = dumpxAODTrackParticle();
507 if (sc.isFailure()) {
508 ATH_MSG_ERROR("The method dumpxAODTrackParticle() failed");
509 }
510 }
511
512 if(m_doDumpAll || m_doDumpxAODVertex){
513 StatusCode sc = dumpxAODVertex();
514 if (sc.isFailure()) {
515 ATH_MSG_ERROR("The method dumpxAODVertex() failed");
516 }
517 }
518
519 if (m_doDumpAll || m_doDumpxAODTrigMinBias){
520 StatusCode sc = dumpxAODTrigMinBias();
521 if (sc.isFailure()) {
522 ATH_MSG_ERROR("The method dumpxAODTrigMinBias() failed");
523 }
524 }
525
526 if (m_doDumpTrigPassBits){
527 StatusCode sc = dumpTrigPassBits();
528 if (sc.isFailure()) {
529 ATH_MSG_ERROR("The method dumpTrigPassBits() failed");
530 }
531 }
532
533 if (m_doDumpAll || m_doDumpStoreGate) {
534 ATH_MSG_DEBUG(evtStore()->dump());
535 }
536
537 if (m_doDumpAll || m_doDumpNavigation) {
538 StatusCode sc = dumpNavigation(ctx);
539 if ( sc.isFailure() ) {
540 ATH_MSG_ERROR("The method dumpNavigation() failed");
541 }
542 }
543
544 if (m_doDumpAll || m_doTDTCheck) {
545 ATH_CHECK(dumpTDT());
546 }
547
548 if (m_doDumpAll || m_doDumpAllTrigComposite || m_dumpTrigCompositeContainers.size() > 0) {
549 ATH_CHECK( dumpTrigComposite() );
550 }
551
552 if (m_doDumpAll || m_doDumpTrigCompsiteNavigation) {
553 std::string trigCompositeSteering;
554 bool pass;
555 ATH_CHECK(TrigCompositeNavigationToDot(trigCompositeSteering, pass));
556 const std::string evtNumber = std::to_string(ctx.eventID().event_number());
557 const std::string passStr = (pass ? "Pass" : "Fail");
558 std::ofstream ofile(std::string("NavGraph_" + m_dumpNavForChain + "_Ev" + evtNumber + "_" + passStr + ".dot").c_str());
559 ofile << trigCompositeSteering;
560 }
561
562
563
564 ATH_MSG_INFO( " ==========END of event===========" );
565 return StatusCode::SUCCESS;
566
567}
568
571 const std::string name="HLT_xAOD__TrigPassBitsContainer_passbits";
572 const xAOD::TrigPassBitsContainer *xbitscont=nullptr;
573 StatusCode sc = evtStore()->retrieve(xbitscont,name);
574 if (sc.isFailure() ){
575 ATH_MSG_INFO("Cannot retrieve TrigPassBits");
576 }
577 else {
578 ATH_MSG_INFO("Size of PassBits container : " << xbitscont->size());
579 for(const auto bits:*xbitscont){
580 if(bits==nullptr){
581 ATH_MSG_INFO("TrigPassBits point nullptr ");
582 continue;
583 }
584 ATH_MSG_DEBUG("Analyzing bits for " << bits->containerClid() << " of size " << bits->size() << " with bit size " << bits->passBits().size());
585 }
586
587 for(const xAOD::TrigPassBits* bits : *xbitscont){
588 if(bits==nullptr){
589 ATH_MSG_INFO("TrigPassBits point nullptr ");
590 continue;
591 }
592 ATH_MSG_DEBUG("Analyzing bits for " << bits->containerClid() << " of size " << bits->size() << " with bit size " << bits->passBits().size());
593 }
594 }
595 return StatusCode::SUCCESS;
596}
597
599{
600 ATH_MSG_INFO("MinBias in dumpTrigSpacePointCounts()");
601
602 std::string METTag="HLT_xAOD__TrigSpacePointCountsContainer_spacepoints";
603
604 const xAOD::TrigSpacePointCountsContainer* SpacePointCountsCont=0;
605 StatusCode sc = evtStore()->retrieve(SpacePointCountsCont,METTag);
606
607 if (sc.isFailure())
608 ATH_MSG_INFO("failed to retrieve " << METTag);
609 else {
610 ATH_MSG_INFO("Accessing " << METTag << " with " << SpacePointCountsCont->size() << " elements");
611
612 std::string s; char buff[128];
613 std::vector<float> getVec;
614 float sum;
615
616 // Loop over container content
617 for(uint i = 0; i < SpacePointCountsCont->size(); i++) {
618 getVec = SpacePointCountsCont->at(i)->contentsPixelClusEndcapC();
619 sum = 0.;
620 for (uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
621 snprintf(buff, sizeof(buff), "REGTEST %s SUM of contentsPixelClusEndcapC() = %10.2f ", s.c_str(), sum );
622 ATH_MSG_INFO(buff);
623
624 getVec = SpacePointCountsCont->at(i)->contentsPixelClusBarrel();
625 sum = 0.;
626 for (uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
627 snprintf(buff, sizeof(buff), "REGTEST %s SUM of contentsPixelClusBarrel() = %10.2f ", s.c_str(), sum );
628 ATH_MSG_INFO(buff);
629
630 getVec = SpacePointCountsCont->at(i)->contentsPixelClusEndcapA();
631 sum = 0.;
632 for (uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
633 snprintf(buff, sizeof(buff), "REGTEST %s SUM of contentsPixelClusEndcapA() = %10.2f ", s.c_str(), sum );
634 ATH_MSG_INFO(buff);
635
636 snprintf(buff, sizeof(buff), "REGTEST %s pixelClusTotBins() = %u ", s.c_str(), SpacePointCountsCont->at(i)->pixelClusTotBins() );
637 ATH_MSG_INFO(buff);
638
639 snprintf(buff, sizeof(buff), "REGTEST %s pixelClusTotMin() = %10.2f ", s.c_str(), SpacePointCountsCont->at(i)->pixelClusTotMin() );
640 ATH_MSG_INFO(buff);
641
642 snprintf(buff, sizeof(buff), "REGTEST %s pixelClusTotMax() = %10.2f ", s.c_str(), SpacePointCountsCont->at(i)->pixelClusTotMax() );
643 ATH_MSG_INFO(buff);
644
645 snprintf(buff, sizeof(buff), "REGTEST %s pixelClusSizeBins() = %u ", s.c_str(), SpacePointCountsCont->at(i)->pixelClusSizeBins() );
646 ATH_MSG_INFO(buff);
647
648 snprintf(buff, sizeof(buff), "REGTEST %s pixelClusSizeMin() = %10.2f ", s.c_str(), SpacePointCountsCont->at(i)->pixelClusSizeMin() );
649 ATH_MSG_INFO(buff);
650
651 snprintf(buff, sizeof(buff), "REGTEST %s pixelClusSizeMax() = %10.2f ", s.c_str(), SpacePointCountsCont->at(i)->pixelClusSizeMax() );
652 ATH_MSG_INFO(buff);
653
654 snprintf(buff, sizeof(buff), "REGTEST %s sctSpEndcapC() = %u ", s.c_str(), SpacePointCountsCont->at(i)->sctSpEndcapC() );
655 ATH_MSG_INFO(buff);
656
657 snprintf(buff, sizeof(buff), "REGTEST %s sctSpBarrel() = %u ", s.c_str(), SpacePointCountsCont->at(i)->sctSpBarrel() );
658 ATH_MSG_INFO(buff);
659
660 snprintf(buff, sizeof(buff), "REGTEST %s sctSpEndcapA() = %u ", s.c_str(), SpacePointCountsCont->at(i)->sctSpEndcapA() );
661 ATH_MSG_INFO(buff);
662 }
663 }
664}
665
667 ATH_MSG_INFO("MinBias in dumpTrigT2MBTSBits()");
668
669 std::string METTag="HLT_xAOD__TrigT2MbtsBitsContainer_T2Mbts";
670
671 const xAOD::TrigT2MbtsBitsContainer* T2MbtsBitsCont=0;
672 StatusCode sc = evtStore()->retrieve(T2MbtsBitsCont,METTag);
673
674 if (sc.isFailure())
675 ATH_MSG_INFO("failed to retrieve " << METTag);
676 else {
677 ATH_MSG_INFO("Accessing " << METTag << " with " << T2MbtsBitsCont->size() << " elements");
678
679 std::string s; char buff[380];
680 std::vector<float> getVec;
681 float sum;
682
683 // Loop over container content
684 for(uint i = 0; i < T2MbtsBitsCont->size(); i++) {
685 getVec = T2MbtsBitsCont->at(i)->triggerEnergies();
686 sum = 0.;
687 for (uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
688 snprintf(buff, sizeof(buff), "REGTEST %s SUM of triggerEnergies() = %10.2f ", s.c_str(), sum );
689 ATH_MSG_INFO(buff);
690
691 getVec = T2MbtsBitsCont->at(i)->triggerTimes();
692 sum = 0.;
693 for (uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
694 snprintf(buff, sizeof(buff), "REGTEST %s SUM of triggerTimes() = %10.2f ", s.c_str(), sum );
695 ATH_MSG_INFO(buff);
696 }
697 }
698}
699
701 ATH_MSG_INFO("MinBias in dumpTrigVertexCounts()");
702
703 std::string METTag="HLT_xAOD__TrigVertexCountsContainer_vertexcounts";
704
705 const xAOD::TrigVertexCountsContainer* T2VertexCountsCont=0;
706 StatusCode sc = evtStore()->retrieve(T2VertexCountsCont,METTag);
707
708 if (sc.isFailure())
709 ATH_MSG_INFO("failed to retrieve " << METTag);
710 else {
711 ATH_MSG_INFO("Accessing " << METTag << " with " << T2VertexCountsCont->size() << " elements");
712
713 std::string s; char buff[380];
714 std::vector<float> fgetVec;
715 float fsum(0.);
716 std::vector<unsigned int> ugetVec;
717 unsigned int usum(0);
718
719 // Loop over container content
720 for(uint i = 0; i < T2VertexCountsCont->size(); i++) {
721 ugetVec = T2VertexCountsCont->at(i)->vtxNtrks();
722 for (uint j = 0; j < ugetVec.size(); ++j) usum += ugetVec[j];
723 snprintf(buff, sizeof(buff), "REGTEST %s SUM of vtxNtrks() = %u ", s.c_str(), usum );
724 ATH_MSG_INFO(buff);
725
726 fgetVec = T2VertexCountsCont->at(i)->vtxTrkPtSqSum();
727 for (uint j = 0; j < fgetVec.size(); ++j) fsum += fgetVec[j];
728 snprintf(buff, sizeof(buff), "REGTEST %s SUM of vtxTrkPtSqSum() = %10.2f ", s.c_str(), fsum );
729 ATH_MSG_INFO(buff);
730 }
731 }
732}
733
735 ATH_MSG_INFO("MinBias in dumpTrigTrackCounts()");
736
737 std::string METTag="HLT_xAOD__TrigTrackCountsContainer_trackcounts";
738
739 const xAOD::TrigTrackCountsContainer* T2TrackCountsCont=0;
740 StatusCode sc = evtStore()->retrieve(T2TrackCountsCont,METTag);
741
742 if (sc.isFailure())
743 ATH_MSG_INFO("failed to retrieve " << METTag);
744 else {
745 ATH_MSG_INFO("Accessing " << METTag << " with " << T2TrackCountsCont->size() << " elements");
746
747 std::string s; char buff[380];
748 std::vector<float> getVec;
749 float sum;
750
751 // Loop over container content
752 for(uint i = 0; i < T2TrackCountsCont->size(); i++) {
753 getVec = T2TrackCountsCont->at(i)->z0_pt();
754 sum = 0.;
755 for (uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
756 snprintf(buff, sizeof(buff), "REGTEST %s SUM of z0_pt = %10.2f ", s.c_str(), sum );
757 ATH_MSG_INFO(buff);
758
759 getVec = T2TrackCountsCont->at(i)->eta_phi();
760 sum = 0.;
761 for (uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
762 snprintf(buff, sizeof(buff), "REGTEST %s SUM of eta_phi() = %10.2f ", s.c_str(), sum );
763 ATH_MSG_INFO(buff);
764
765 snprintf(buff, sizeof(buff), "REGTEST %s z0Bins() = %u ", s.c_str(), T2TrackCountsCont->at(i)->z0Bins() );
766 ATH_MSG_INFO(buff);
767
768 snprintf(buff, sizeof(buff), "REGTEST %s z0Min() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->z0Min() );
769 ATH_MSG_INFO(buff);
770
771 snprintf(buff, sizeof(buff), "REGTEST %s z0Max() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->z0Max() );
772 ATH_MSG_INFO(buff);
773
774 snprintf(buff, sizeof(buff), "REGTEST %s ptBins() = %u ", s.c_str(), T2TrackCountsCont->at(i)->ptBins() );
775 ATH_MSG_INFO(buff);
776
777 snprintf(buff, sizeof(buff), "REGTEST %s ptMin() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->ptMin() );
778 ATH_MSG_INFO(buff);
779
780 snprintf(buff, sizeof(buff), "REGTEST %s ptMax() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->ptMax() );
781 ATH_MSG_INFO(buff);
782
783 snprintf(buff, sizeof(buff), "REGTEST %s etaBins() = %u ", s.c_str(), T2TrackCountsCont->at(i)->etaBins() );
784 ATH_MSG_INFO(buff);
785
786 snprintf(buff, sizeof(buff), "REGTEST %s etaMin() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->etaMin() );
787 ATH_MSG_INFO(buff);
788
789 snprintf(buff, sizeof(buff), "REGTEST %s etaMax() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->etaMax() );
790 ATH_MSG_INFO(buff);
791
792 snprintf(buff, sizeof(buff), "REGTEST %s phiBins() = %u ", s.c_str(), T2TrackCountsCont->at(i)->phiBins() );
793 ATH_MSG_INFO(buff);
794
795 snprintf(buff, sizeof(buff), "REGTEST %s phiMin() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->phiMin() );
796 ATH_MSG_INFO(buff);
797
798 snprintf(buff, sizeof(buff), "REGTEST %s phiMax() = %10.2f ", s.c_str(), T2TrackCountsCont->at(i)->phiMax() );
799 ATH_MSG_INFO(buff);
800 }
801 }
802}
803
805
810
811 return StatusCode::SUCCESS;
812}
813
815
816
817
819
820 ATH_MSG_INFO("dumpxAODTrigMissingET()");
821
822 int ntag=4;
823 std::string METTags[]={"HLT_xAOD__TrigMissingETContainer_EFJetEtSum","HLT_xAOD__TrigMissingETContainer_TrigEFMissingET", "HLT_xAOD__TrigMissingETContainer_TrigL2MissingET_FEB","HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl"};
824
825 for(int itag=0; itag <ntag; itag++) {
826
827 const xAOD::TrigMissingETContainer* MissingETCont=0;
828 StatusCode sc = evtStore()->retrieve(MissingETCont,METTags[itag]);
829 if (sc.isFailure())
830 ATH_MSG_INFO("failed to retrieve " << METTags[itag]);
831 else {
832 ATH_MSG_INFO("Accessing " << METTags[itag] << " with " << MissingETCont->size() << " elements");
833
834 // Loop over container content
835 for(uint i = 0; i < MissingETCont->size(); i++) {
836
837 std::string s; char buff[3000];
838
839 snprintf(buff, sizeof(buff), "REGTEST %s Ex = %10.2f CLHEP::MeV", s.c_str(), MissingETCont->at(i)->ex() );
840 ATH_MSG_INFO(buff);
841 snprintf(buff, sizeof(buff), "REGTEST %s Ey = %10.2f CLHEP::MeV", s.c_str(), MissingETCont->at(i)->ey() );
842 ATH_MSG_INFO(buff);
843 snprintf(buff, sizeof(buff), "REGTEST %s Ez = %10.2f CLHEP::MeV", s.c_str(), MissingETCont->at(i)->ez() );
844 ATH_MSG_INFO(buff);
845 snprintf(buff, sizeof(buff), "REGTEST %s SumET = %10.2f CLHEP::MeV", s.c_str(), MissingETCont->at(i)->sumEt() );
846 ATH_MSG_INFO(buff);
847 snprintf(buff, sizeof(buff), "REGTEST %s SumE = %10.2f CLHEP::MeV", s.c_str(), MissingETCont->at(i)->sumE() );
848 ATH_MSG_INFO(buff);
849 snprintf(buff, sizeof(buff), "REGTEST %s Flag = %d", s.c_str(), MissingETCont->at(i)->flag() );
850 ATH_MSG_INFO(buff);
851 snprintf(buff, sizeof(buff), "REGTEST %s Flag = %d", s.c_str(), MissingETCont->at(i)->roiWord() );
852 ATH_MSG_INFO(buff);
853
854 unsigned int Nc = MissingETCont->at(i)->getNumberOfComponents();
855 if (Nc > 0) {
856 s="REGTEST __name____status_usedChannels__sumOfSigns__calib1_calib0";
857 s+="/MeV__ex/MeV_____ey/MeV_____ez/MeV___sumE/MeV__sumEt/CLHEP::MeV";
858 ATH_MSG_INFO(s);
859 }
860
861 for(uint j = 0; j < Nc; j++) {
862
863 std::string name = MissingETCont->at(i)->nameOfComponent(j);
864 const short status = MissingETCont->at(i)->statusComponent(j);
865 const unsigned short usedChan = MissingETCont->at(i)->usedChannelsComponent(j);
866 const short sumOfSigns = MissingETCont->at(i)->sumOfSignsComponent(j);
867 const float calib0 = MissingETCont->at(i)->calib0Component(j);
868 const float calib1 = MissingETCont->at(i)->calib1Component(j);
869 const float ex = MissingETCont->at(i)->exComponent(j);
870 const float ey = MissingETCont->at(i)->eyComponent(j);
871 const float ez = MissingETCont->at(i)->ezComponent(j);
872 const float sumE = MissingETCont->at(i)->sumEComponent(j);
873 const float sumEt = MissingETCont->at(i)->sumEtComponent(j);
874
875 snprintf(buff, sizeof(buff),
876 "REGTEST %s %6d %12d %10d %6.2f %6.3f %10.2f %10.2f %10.2f %10.2f %10.2f",
877 name.c_str(), status, usedChan, sumOfSigns, calib1, calib0,
878 ex, ey, ez, sumE, sumEt);
879 ATH_MSG_INFO(buff);
880 }
881 }
882 }
883 }
884
885 return StatusCode::SUCCESS;
886}
887
889
890
891
892StatusCode TrigEDMChecker::dumpTrigMissingET ATLAS_NOT_THREAD_SAFE() {
893
894 ATH_MSG_DEBUG("in dumpTrigMissingET()");
895
896 int ntag=3;
897 std::string METTags[]={"HLT_TrigMissingETContainer_TrigEFMissingET", "HLT_TrigMissingETContainer_TrigEFMissingET_FEB", "HLT_TrigMissingETContainer_TrigEFMissingET_topocl"};
898
900 for (int itag=0; itag < ntag; itag++) { // loop over L2, EF
901 const TrigMissingETContainer* trigMETcont;
902 StatusCode sc=evtStore()->retrieve(trigMETcont , METTags[itag]);
903 if( sc.isFailure() ){
904 ATH_MSG_INFO("Failed to retrieve TrigMissingETContainer with key " << METTags[itag]);
905 continue;
906 }
907
908 ATH_MSG_INFO("Got TrigMissingETContainer with key \"" << METTags[itag]<< "\"");
909
910 for (const TrigMissingET* met : *trigMETcont) {
911
912 ATH_MSG_INFO("REGTEST ==========START of TrigMissingET DUMP===========");
913
914 std::string s;
915 char buff[128];
916
917 snprintf(buff, sizeof(buff), "REGTEST %s Ex = %10.2f CLHEP::MeV", s.c_str(), met->ex() );
918 ATH_MSG_INFO(buff);
919 snprintf(buff, sizeof(buff), "REGTEST %s Ey = %10.2f CLHEP::MeV", s.c_str(), met->ey() );
920 ATH_MSG_INFO(buff);
921 snprintf(buff, sizeof(buff), "REGTEST %s Ez = %10.2f CLHEP::MeV", s.c_str(), met->ez() );
922 ATH_MSG_INFO(buff);
923 snprintf(buff, sizeof(buff), "REGTEST %s Et = %10.2f CLHEP::MeV", s.c_str(), met->et() );
924 ATH_MSG_INFO(buff);
925 snprintf(buff, sizeof(buff), "REGTEST %s SumEt = %10.2f CLHEP::MeV", s.c_str(), met->sumEt() );
926 ATH_MSG_INFO(buff);
927 snprintf(buff, sizeof(buff), "REGTEST %s SumE = %10.2f CLHEP::MeV", s.c_str(), met->sumE() );
928 ATH_MSG_INFO(buff);
929 snprintf(buff, sizeof(buff), "REGTEST %s E = %10.2f CLHEP::MeV", s.c_str(), met->e() );
930 ATH_MSG_INFO(buff);
931 snprintf(buff, sizeof(buff), "REGTEST %s flag = %10d", s.c_str(), met->getFlag() );
932 ATH_MSG_INFO(buff);
933 snprintf(buff, sizeof(buff), "REGTEST %s RoIword = %10ld", s.c_str(), met->RoIword() );
934 ATH_MSG_INFO(buff);
935
936 unsigned int Nc = met->getNumOfComponents();
937 if (Nc > 0) {
938 s="REGTEST __name____status_usedChannels__sumOfSigns__calib1_calib0";
939 s+="/MeV__ex/MeV_____ey/MeV_____ez/MeV___sumE/MeV__sumEt/CLHEP::MeV";
940 ATH_MSG_INFO(s);
941
942 for (unsigned int i=0; i<Nc; ++i) { // loop over components
943 std::string name = met->getNameOfComponent(i);
944 const short status = met->getStatus(i);
945 const unsigned short usedChan = met->getUsedChannels(i);
946 const short sumOfSigns = met->getSumOfSigns(i);
947 const float calib0 = met->getComponentCalib0(i);
948 const float calib1 = met->getComponentCalib1(i);
949 const float ex = met->getExComponent(i);
950 const float ey = met->getEyComponent(i);
951 const float ez = met->getEzComponent(i);
952 const float sumE = met->getSumEComponent(i);
953 const float sumEt = met->getSumEtComponent(i);
954
955 snprintf(buff, sizeof(buff),
956 "REGTEST %s %6d %12d %10d %6.2f %6.3f %10.2f %10.2f %10.2f %10.2f %10.2f",
957 name.c_str(), status, usedChan, sumOfSigns, calib1, calib0,
958 ex, ey, ez, sumE, sumEt);
959 ATH_MSG_INFO(buff);
960 } // loop over components
961 }
962 } // loop over TrigMissingET objects
963 } // loop over TrigMissingETContainers
964
965 // if( sc.isSuccess() ) return sc; // Commented out by FB (12.07.14)
966
968 ATH_MSG_INFO("Trying to fetch TrigMissingET objects from older releases");
969
970 SG::ConstIterator<TrigMissingET> trigMETfirst ,trigMETlast;
971 StatusCode sc=evtStore()->retrieve(trigMETfirst ,trigMETlast);
972 if( sc.isFailure() ){
973 ATH_MSG_INFO("Failed to retrieve TrigMissingET (rel. <= 14.2.0)");
974 }
975
976 for( ; trigMETfirst != trigMETlast ; ++trigMETfirst ){ // loop over TrigMissingET objects
977 const std::string& name(trigMETfirst.key());
978 ATH_MSG_INFO("Got TrigMissingET object with key \"" << name << "\"");
979
980 std::string s;
981 char buff[3000];
982
983 if( name.find("TrigEFMissingET") != std::string::npos ) {
984 s="REGTEST EF: ";
985 } else if( name.find("T2MissingET") != std::string::npos ){
986 s="REGTEST L2: ";
987 } else {
988 ATH_MSG_WARNING(" This is UNKNOWN! " << name);
989 s="REGTEST ??? ";
990 }
991
992 snprintf(buff, sizeof(buff), "%s Ex = %10.2f CLHEP::MeV", s.c_str(), trigMETfirst->ex() );
993 ATH_MSG_INFO(buff);
994 snprintf(buff, sizeof(buff), "%s Ey = %10.2f CLHEP::MeV", s.c_str(), trigMETfirst->ey() );
995 ATH_MSG_INFO(buff);
996 snprintf(buff, sizeof(buff), "%s Ez = %10.2f CLHEP::MeV", s.c_str(), trigMETfirst->ez() );
997 ATH_MSG_INFO(buff);
998 snprintf(buff, sizeof(buff), "%s Et = %10.2f CLHEP::MeV", s.c_str(), trigMETfirst->et() );
999 ATH_MSG_INFO(buff);
1000 snprintf(buff, sizeof(buff), "%s SumE = %10.2f CLHEP::MeV", s.c_str(), trigMETfirst->sumE() );
1001 ATH_MSG_INFO(buff);
1002 snprintf(buff, sizeof(buff), "%s SumEt = %10.2f CLHEP::MeV", s.c_str(), trigMETfirst->sumEt() );
1003 ATH_MSG_INFO(buff);
1004 snprintf(buff, sizeof(buff), "%s E = %10.2f CLHEP::MeV", s.c_str(), trigMETfirst->e() );
1005 ATH_MSG_INFO(buff);
1006 snprintf(buff, sizeof(buff), "%s flag = %10d", s.c_str(), trigMETfirst->getFlag() );
1007 ATH_MSG_INFO(buff);
1008 snprintf(buff, sizeof(buff), "%s RoIword = %10ld", s.c_str(), trigMETfirst->RoIword() );
1009 ATH_MSG_INFO(buff);
1010
1011 unsigned int Nc = trigMETfirst->getNumOfComponents();
1012 if (Nc > 0) {
1013 s="REGTEST __name____status_usedChannels__sumOfSigns__calib1_calib0";
1014 s+="/MeV__ex/MeV_____ey/MeV_____ez/MeV___sumE/MeV__sumEt/CLHEP::MeV";
1015 ATH_MSG_INFO(s);
1016
1017 for (unsigned int i=0; i<Nc; ++i) { // loop over components
1018 std::string name = trigMETfirst->getNameOfComponent(i);
1019 const short status = trigMETfirst->getStatus(i);
1020 const unsigned short usedChan = trigMETfirst->getUsedChannels(i);
1021 const short sumOfSigns = trigMETfirst->getSumOfSigns(i);
1022 const float calib0 = trigMETfirst->getComponentCalib0(i);
1023 const float calib1 = trigMETfirst->getComponentCalib1(i);
1024 const float ex = trigMETfirst->getExComponent(i);
1025 const float ey = trigMETfirst->getEyComponent(i);
1026 const float ez = trigMETfirst->getEzComponent(i);
1027 const float sumE = trigMETfirst->getSumEComponent(i);
1028 const float sumEt = trigMETfirst->getSumEtComponent(i);
1029
1030 snprintf(buff, sizeof(buff),
1031 "REGTEST %s %6d %12d %10d %6.2f %6.3f %10.2f %10.2f %10.2f %10.2f %10.2f",
1032 name.c_str(), status, usedChan, sumOfSigns, calib1, calib0,
1033 ex, ey, ez, sumE, sumEt);
1034 ATH_MSG_INFO(buff);
1035 } // loop over components
1036 }
1037 } // loop over TrigMissingET objects
1038
1039 ATH_MSG_INFO("REGTEST ==========END of TrigMissingET DUMP===========");
1040
1041 return StatusCode::SUCCESS;
1042}
1043
1045
1047
1048 ATH_MSG_DEBUG("in dumpTrackParticleContainer()");
1049
1050 ATH_MSG_INFO("REGTEST ==========START of TrackParticleContainer DUMP===========");
1051
1052 std::string trackPtags[]={"HLT_InDetTrigParticleCreation_Bjet_EFID",
1053 "HLT_InDetTrigParticleCreation_Bphysics_EFID",
1054 "HLT_InDetTrigParticleCreation_Electron_EFID",
1055 "HLT_InDetTrigParticleCreation_FullScan_EFID",
1056 "HLT_InDetTrigParticleCreation_Muon_EFID",
1057 "HLT_InDetTrigParticleCreation_Photon_EFID",
1058 "HLT_InDetTrigParticleCreation_Tau_EFID"};
1059
1060 int ntag=7;
1061
1062 StatusCode returnsc=StatusCode::SUCCESS;
1063
1064 for (int itag=0; itag<ntag; itag++){
1065 const Rec::TrackParticleContainer* pTrackParticleC = nullptr;
1066 StatusCode sc = evtStore()->retrieve(pTrackParticleC, trackPtags[itag]);
1067 if (sc.isFailure()) {
1068 ATH_MSG_INFO("REGTEST No TrackParticleContainer found with tag " << trackPtags[itag]);
1069 continue;
1070 }
1071 ATH_MSG_INFO("TrackParticleContainer found with tag " << trackPtags[itag]
1072 << " and size " << pTrackParticleC->size());
1073
1074 Rec::TrackParticleContainer::const_iterator trackItr = pTrackParticleC->begin();
1075 Rec::TrackParticleContainer::const_iterator trackItrE = pTrackParticleC->end();
1076 for (int ind=1; trackItr != trackItrE; ++trackItr, ind++) {
1077 const Rec::TrackParticle * trackParticle = (*trackItr);
1078 ATH_MSG_INFO(" TrackParticle " << ind << " charge "
1079 << trackParticle->charge() << " p "
1080 << trackParticle->p()<< " eta " << trackParticle->eta()
1081 << " phi " << trackParticle->phi());
1082
1084 const Trk::Track * track = trackParticle->originalTrack();
1085 if ( track ) {
1086 ATH_MSG_INFO(" Got attached track");
1087 const Trk::TrackParameters* perigee = track->perigeeParameters();
1088 if (perigee) {
1089 const auto& parameterVector = perigee->parameters();
1090 ATH_MSG_INFO(" q/P " << parameterVector[Trk::qOverP] <<
1091 " theta " << parameterVector[Trk::theta] <<
1092 " phi " <<parameterVector[Trk::phi]);
1093 } else {
1094 ATH_MSG_INFO(" No perigee attached to track");
1095 }
1096
1097 } else {
1099 ATH_MSG_DEBUG(" No attached track");
1101 ATH_MSG_WARNING(" Max attached track warning reached, no further warnings given");
1102 }
1104 }
1105 }
1106
1108 const Trk::VxCandidate * vertex = trackParticle->reconstructedVertex();
1109 if ( vertex ) {
1110 const Trk::RecVertex& vtx = vertex->recVertex();
1111 const Amg::Vector3D& position = vtx.position();
1112 ATH_MSG_INFO(" vertex position (" << position[0] << ", " <<
1113 position[1] << ", " << position[2] << ") ");
1114 } else {
1116 ATH_MSG_DEBUG(" No attached vertex");
1118 ATH_MSG_WARNING(" Max attached vertex warning reached, no further warnings given");
1119 }
1121 }
1122 }
1123
1124 const Trk::Perigee* perigee = trackParticle->measuredPerigee();
1125 if (perigee) {
1126 const auto& parameters = perigee->parameters();
1127 ATH_MSG_INFO("Trk::Perigee parameters:");
1128 ATH_MSG_INFO(" * d_0 : "<< parameters[Trk::d0] );
1129 ATH_MSG_INFO(" * z_0 : "<< parameters[Trk::z0] );
1130 ATH_MSG_INFO(" * phi : "<< parameters[Trk::phi] );
1131 ATH_MSG_INFO(" * Theta : "<< parameters[Trk::theta] );
1132 ATH_MSG_INFO(" * q/p : "<< parameters[Trk::qOverP] );
1133 } else {
1134 ATH_MSG_WARNING(" No attached perigee");
1135 }
1137 const Trk::TrackSummary* summary = trackParticle->trackSummary();
1138 if (summary) {
1139 ATH_MSG_DEBUG("Track summary information:");
1140 ATH_MSG_DEBUG(" * Number of B layer hits : "<<summary->get(Trk::numberOfBLayerHits));
1141 ATH_MSG_DEBUG(" * Number of pixel hits : "<<summary->get(Trk::numberOfPixelHits));
1142 ATH_MSG_DEBUG(" * Number of SCT hits : "<<summary->get(Trk::numberOfSCTHits));
1143 ATH_MSG_DEBUG(" * Number of TRT hits : "<<summary->get(Trk::numberOfTRTHits));
1144 }
1145 }
1146 }
1147 return returnsc;
1148}
1149
1150
1152
1154
1155 ATH_MSG_DEBUG("in dumpLVL1_ROI()");
1156
1157 ATH_MSG_INFO("REGTEST ==========START of LVL1_ROI DUMP===========");
1158
1159 const LVL1_ROI * lvl1ROI;
1160 StatusCode sc = evtStore()->retrieve(lvl1ROI);
1161 if (sc.isFailure() ) {
1162 ATH_MSG_INFO("REGTEST No LVL1_ROI found");
1163 return StatusCode::SUCCESS;
1164 }
1165
1166 ATH_MSG_INFO("REGTEST LVL1_ROI retrieved");
1167
1168 LVL1_ROI::emtaus_type::const_iterator itEMTau =
1169 (lvl1ROI->getEmTauROIs()).begin();
1170 LVL1_ROI::emtaus_type::const_iterator itEMTau_e =
1171 (lvl1ROI->getEmTauROIs()).end();
1172 int j = 0;
1173 for( ; itEMTau != itEMTau_e; ++itEMTau, ++j) {
1174 ATH_MSG_INFO("REGTEST Looking at LVL1_ROI " << j);
1175 ATH_MSG_INFO("REGTEST LVL1 EmTauROI Eta is " << itEMTau->getEta());
1176 ATH_MSG_INFO("REGTEST LVL1 EmTauROI Phi is " << itEMTau->getPhi());
1177 ATH_MSG_INFO("REGTEST LVL1 EmTauROI EMClus is " << itEMTau->getEMClus());
1178 ATH_MSG_INFO("REGTEST LVL1 EmTauROI TauClus is " << itEMTau->getTauClus());
1179 ATH_MSG_INFO("REGTEST LVL1 EmTauROI EMIsol is " << itEMTau->getEMIsol());
1180 ATH_MSG_INFO("REGTEST LVL1 EmTauROI HadIsol is " << itEMTau->getHadIsol());
1181 ATH_MSG_INFO("REGTEST LVL1 EmTauROI Core is " << itEMTau->getCore());
1182 ATH_MSG_INFO("REGTEST LVL1 EmTauROI HadCore is " << itEMTau->getHadCore());
1183 ATH_MSG_INFO("REGTEST LVL1 EmTauROI roiWord is " << itEMTau->getROIWord());
1184 }
1185
1186 ATH_MSG_INFO("REGTEST ==========END of LVL1_ROI DUMP===========");
1187 ATH_MSG_DEBUG("dumpLVL1_ROI() succeeded");
1188 return StatusCode::SUCCESS;
1189}
1190
1191
1193
1194StatusCode TrigEDMChecker::dumpTrigPhotonContainer ATLAS_NOT_THREAD_SAFE() {
1195
1196 ATH_MSG_DEBUG("in dumpTrigPhotonContainer()");
1197
1198 ATH_MSG_INFO("REGTEST ==========START of TrigPhotonContainer DUMP===========");
1199
1202
1203 StatusCode sc = evtStore()->retrieve(trigPhoton,lastTrigPhoton);
1204 if (sc.isFailure()) {
1205 ATH_MSG_INFO("REGTEST No TrigPhotonContainer found");
1206 return StatusCode::SUCCESS;
1207 }
1208 ATH_MSG_INFO("REGTEST TrigPhotonContainers retrieved");
1209
1210
1211 for (int i=0; trigPhoton != lastTrigPhoton; ++trigPhoton, ++i) {
1212
1213 ATH_MSG_INFO("REGTEST Looking at TrigPhotonContainer " << i);
1214
1215 TrigPhotonContainer::const_iterator PhotonItr = trigPhoton->begin();
1216 TrigPhotonContainer::const_iterator PhotonItrE = trigPhoton->end();
1217
1218 for (int j=0; PhotonItr != PhotonItrE; ++PhotonItr, ++j ) {
1219
1220 ATH_MSG_INFO("REGTEST Looking at TrigPhoton " << j);
1221
1222 ATH_MSG_INFO("REGTEST TrigPhoton->dPhi() returns " << (*PhotonItr)->dPhi());
1223 ATH_MSG_INFO("REGTEST TrigPhoton->dEta() returns " << (*PhotonItr)->dEta());
1224 ATH_MSG_INFO("REGTEST TrigPhoton->rCore() returns " << (*PhotonItr)->rCore());
1225 ATH_MSG_INFO("REGTEST TrigPhoton->isValid() returns " << (*PhotonItr)->isValid());
1226 ATH_MSG_INFO("REGTEST TrigPhoton->Et() returns " << (*PhotonItr)->Et());
1227
1228 if ( (*PhotonItr)->cluster() != NULL ) {
1229 ATH_MSG_INFO("REGTEST Cluster info: ");
1230 ATH_MSG_INFO("REGTEST cluster->e() returns " << (*PhotonItr)->cluster()->e());
1231 ATH_MSG_INFO("REGTEST cluster->e237() returns " << (*PhotonItr)->cluster()->e237());
1232 ATH_MSG_INFO("REGTEST cluster->e277() returns " << (*PhotonItr)->cluster()->e277());
1233 ATH_MSG_INFO("REGTEST cluster->fracs1() returns " << (*PhotonItr)->cluster()->fracs1());
1234 ATH_MSG_INFO("REGTEST cluster->weta2() returns " << (*PhotonItr)->cluster()->weta2());
1235 ATH_MSG_INFO("REGTEST cluster->ehad() returns " << (*PhotonItr)->cluster()->ehad1());
1236 ATH_MSG_INFO("REGTEST cluster->emaxs1() returns " << (*PhotonItr)->cluster()->emaxs1());
1237
1238 ATH_MSG_INFO("REGTEST Looking at P4PtEtaPhiM " << j);
1239
1240 ATH_MSG_INFO("REGTEST P4PtEtaPhiM->Pt() returns " << (*PhotonItr)->pt());
1241 ATH_MSG_INFO("REGTEST P4PtEtaPhiM->Eta() returns " << (*PhotonItr)->eta());
1242 ATH_MSG_INFO("REGTEST P4PtEtaPhiM->Phi() returns " << (*PhotonItr)->phi());
1243 ATH_MSG_INFO("REGTEST P4PtEtaPhiM->m() returns " << (*PhotonItr)->m());
1244 }
1245
1246 // printout variables using the new << operator
1247 ATH_MSG_INFO("TrigPhoton printout:");
1248 ATH_MSG_INFO("REGTEST " << (**PhotonItr));
1249
1250 // do second loop to compare TrigPhotons using comparison operators
1251 TrigPhotonContainer::const_iterator PhotonItr2 = PhotonItr;
1252 TrigPhotonContainer::const_iterator PhotonItr2E = trigPhoton->end();
1253
1254 for (int k=0; PhotonItr2 != PhotonItr2E; ++PhotonItr2, ++k ) {
1255 // find if TrigPhotons are the same (i.e. have same cluster and track
1256 if ( (**PhotonItr) == (**PhotonItr2) ) {
1257 ATH_MSG_INFO("REGTEST TrigPhoton nr. " << j << " is the same as TrigPhoton nr. " << k);
1258 } else {
1259 // TrigPhotons are different, print out differences
1260 std::map<std::string, double> v_diff;
1261 diff(*(*PhotonItr),*(*PhotonItr2), v_diff);
1262 ATH_MSG_INFO("TrigPhoton " << k << " different form TrigPhoton " << j << " :");
1263 for (const auto& p : v_diff) {
1264 ATH_MSG_INFO("TrigPhoton Delta_" << p.first << " = " << p.second);
1265 }
1266 }
1267 }
1268 }
1269 }
1270
1271 ATH_MSG_INFO("REGTEST ==========END of TrigPhotonContainer DUMP===========");
1272 ATH_MSG_DEBUG("dumpTrigPhotonContainer() succeeded");
1273
1274 return StatusCode::SUCCESS;
1275}
1276
1277
1279
1280StatusCode TrigEDMChecker::dumpTrigMuonEFContainer ATLAS_NOT_THREAD_SAFE() {
1281
1282 ATH_MSG_DEBUG("in dumpTrigMuonEFContainer()");
1283
1284 ATH_MSG_INFO("REGTEST ==========START of TrigMuonEFContainer DUMP===========");
1285
1288
1289 StatusCode sc = evtStore()->retrieve(trigMuon,lastTrigMuon);
1290 if (sc.isFailure()) {
1291 ATH_MSG_INFO("REGTEST No TrigMuonEFContainer found");
1292 return StatusCode::SUCCESS;
1293 }
1294 ATH_MSG_INFO("REGTEST TrigMuonEFContainers retrieved");
1295
1296 for (int i=0; trigMuon != lastTrigMuon; ++trigMuon, ++i) {
1297
1298 ATH_MSG_INFO("REGTEST Looking at TrigMuonEFContainer " << i);
1299
1300 TrigMuonEFContainer::const_iterator MuonItr = trigMuon->begin();
1301 TrigMuonEFContainer::const_iterator MuonItrE = trigMuon->end();
1302
1303 for (int j=0; MuonItr != MuonItrE; ++MuonItr, ++j ) {
1304
1305 ATH_MSG_INFO("REGTEST Looking at TrigMuonEF " << j);
1306
1307 ATH_MSG_INFO("REGTEST TrigMuonEF->muonCode() returns " << (*MuonItr)->MuonCode());
1308 ATH_MSG_INFO("REGTEST TrigMuonEF->roi() returns " << (*MuonItr)->RoINum());
1309 ATH_MSG_INFO("REGTEST TrigMuonEF->charge() returns " << (*MuonItr)->Charge());
1310
1311 ATH_MSG_INFO("REGTEST Looking at P4IPtCotThPhiM " << j);
1312
1313 ATH_MSG_INFO("REGTEST P4IPtCotThPhiM->iPt() returns " << (*MuonItr)->iPt());
1314 ATH_MSG_INFO("REGTEST P4IPtCotThPhiM->CotTh() returns " << (*MuonItr)->cotTh());
1315 ATH_MSG_INFO("REGTEST P4IPtCotThPhiM->Phi() returns " << (*MuonItr)->phi());
1316 ATH_MSG_INFO("REGTEST P4IPtCotThPhiM->m() returns " << (*MuonItr)->m());
1317 }
1318 }
1319
1320 ATH_MSG_INFO("REGTEST ==========END of TrigMuonEFContainer DUMP===========");
1321 ATH_MSG_DEBUG("dumpTrigMuonEFContainer() succeeded");
1322
1323 return StatusCode::SUCCESS;
1324}
1325
1327
1328 ATH_MSG_DEBUG("In dumpxAODMuonContainer");
1329
1330 ATH_MSG_INFO( "REGTEST ==========START of xAOD::MuonContainer DUMP===========" );
1331
1332 const xAOD::MuonContainer* muonCont=0;
1333 StatusCode sc = evtStore()->retrieve(muonCont,"HLT_xAOD__MuonContainer_MuonEFInfo");
1334 if (sc.isFailure()) {
1335 ATH_MSG_INFO("REGTEST No muon container HLT_xAOD__MuonContainer_MuonEFInfo");
1336 return StatusCode::SUCCESS;
1337 }
1338
1339 std::string output = m_muonPrinter->print( *muonCont );
1340 msg(MSG::INFO) << output << endmsg;
1341
1342 ATH_MSG_INFO( "REGTEST ==========END of xAOD::MuonContainer DUMP===========" );
1343
1344 return StatusCode::SUCCESS;
1345
1346}
1347
1349
1350StatusCode TrigEDMChecker::dumpTrigMuonEFInfoContainer ATLAS_NOT_THREAD_SAFE() {
1351
1352 ATH_MSG_DEBUG("in dumpTrigMuonEFInfoContainer()");
1353
1354 ATH_MSG_INFO("REGTEST ==========START of TrigMuonEFInfoContainer DUMP===========");
1355
1358
1359 StatusCode sc = evtStore()->retrieve(trigMuon,lastTrigMuon);
1360 if (sc.isFailure()) {
1361 ATH_MSG_INFO("REGTEST No TrigMuonEFInfoContainer found");
1362 return StatusCode::SUCCESS;
1363 }
1364 ATH_MSG_INFO("REGTEST TrigMuonEFInfoContainers retrieved");
1365
1366
1367 for (int i=0; trigMuon != lastTrigMuon; ++trigMuon, ++i) {
1368
1369 ATH_MSG_INFO("REGTEST -+-+-+-+ Looking at TrigMuonEFInfoContainer " << i);
1370
1371 TrigMuonEFInfoContainer::const_iterator MuonItr = trigMuon->begin();
1372 TrigMuonEFInfoContainer::const_iterator MuonItrE = trigMuon->end();
1373
1374 for (int j=0; MuonItr != MuonItrE; ++MuonItr, ++j ) {
1375
1376 ATH_MSG_INFO("REGTEST Looking at TrigMuonEFInfo " << j);
1377
1378 const TrigMuonEFInfo* muonInfo = (*MuonItr);
1379
1380 ATH_MSG_INFO("REGTEST Test self equality ");
1381 if (*muonInfo == *muonInfo) {
1382 ATH_MSG_INFO("REGTEST passed ");
1383 }
1384 else {
1385 ATH_MSG_INFO("REGTEST failed ");
1386 }
1387
1388
1389 if (muonInfo->hasTrack()) {
1390 ATH_MSG_INFO("REGTEST Test new version ");
1391
1392 ATH_MSG_INFO("REGTEST hasTracks()=true ");
1393 const TrigMuonEFInfoTrackContainer *tc = muonInfo->TrackContainer();
1394 ATH_MSG_INFO("REGTEST TrackContainer size: " << tc->size());
1395
1396 for (TrigMuonEFInfoTrackContainer::const_iterator TrackItr = tc->begin() ; TrackItr!=tc->end(); ++TrackItr) {
1397
1398 const TrigMuonEFInfoTrack* muonInfo = (*TrackItr);
1399 ATH_MSG_INFO("REGTEST MuonType(): ");
1400
1401 const TrigMuonEFTrack* muonTrack = muonInfo->SpectrometerTrack();
1402 if (muonTrack) {
1403 printMuonTrk(muonTrack);
1404 } else {
1405 ATH_MSG_INFO("REGTEST no SpectrometerTrack track found");
1406 }
1407
1408 ATH_MSG_INFO("REGTEST Looking at TrigMuonEFTrack ExtrapolatedTrack()");
1409 muonTrack = muonInfo->ExtrapolatedTrack();
1410 if (muonTrack) {
1411 printMuonTrk(muonTrack);
1412 } else {
1413 ATH_MSG_INFO("REGTEST no ExtrapolatedTrack track found");
1414 }
1415
1416 ATH_MSG_INFO("REGTEST Looking at TrigMuonEFTrack CombinedTrack()");
1417 const TrigMuonEFCbTrack* muonCbTrack = muonInfo->CombinedTrack();
1418 if (muonCbTrack) {
1419 printMuonTrk(muonTrack);
1420 } else {
1421 ATH_MSG_INFO("REGTEST no CombinedTrack track found");
1422 }
1423 }
1424
1425 }
1426
1427 if (!muonInfo) {
1428 ATH_MSG_INFO("REGTEST no TrigMuonEFInfo found");
1429 return StatusCode::SUCCESS;
1430 }
1431 ATH_MSG_INFO("REGTEST TrigMuonEFInfo->RoINum() returns " << muonInfo->RoINum());
1432 }
1433 }
1434
1435 ATH_MSG_INFO("REGTEST ==========END of TrigMuonEFInfoContainer DUMP===========");
1436 ATH_MSG_DEBUG("dumpTrigMuonEFInfoContainer() succeeded");
1437
1438 return StatusCode::SUCCESS;
1439}
1440
1442
1443StatusCode TrigEDMChecker::dumpTrigMuonEFIsolationContainer ATLAS_NOT_THREAD_SAFE() {
1444
1445 ATH_MSG_DEBUG("in dumpTrigMuonEFIsolationContainer()");
1446
1447 ATH_MSG_INFO("REGTEST ==========START of TrigMuonEFIsolationContainer DUMP===========");
1448
1451
1452 StatusCode sc = evtStore()->retrieve(trigMuon,lastTrigMuon);
1453 if (sc.isFailure()) {
1454 ATH_MSG_INFO("REGTEST No TrigMuonEFIsolationContainer found");
1455 return StatusCode::SUCCESS;
1456 }
1457 ATH_MSG_INFO("REGTEST TrigMuonEFIsolationContainers retrieved");
1458
1459
1460 for (int i=0; trigMuon != lastTrigMuon; ++trigMuon, ++i) {
1461
1462 ATH_MSG_INFO("REGTEST -+-+-+-+ Looking at TrigMuonEFIsolationContainer " << i);
1463
1464 TrigMuonEFIsolationContainer::const_iterator MuonItr = trigMuon->begin();
1465 TrigMuonEFIsolationContainer::const_iterator MuonItrE = trigMuon->end();
1466
1467 for (int j=0; MuonItr != MuonItrE; ++MuonItr, ++j ) {
1468
1469 ATH_MSG_INFO("REGTEST Looking at TrigMuonEFIsolation " << j);
1470
1471 const TrigMuonEFIsolation* muonIsolation = (*MuonItr);
1472
1473 ATH_MSG_INFO("REGTEST Test self equality ");
1474 if (*muonIsolation == *muonIsolation) {
1475 ATH_MSG_INFO("REGTEST passed ");
1476 }
1477 else {
1478 ATH_MSG_INFO("REGTEST failed ");
1479 }
1480
1481 ATH_MSG_INFO("REGTEST sumTrkPtCone02(): " << muonIsolation->sumTrkPtCone02());
1482 ATH_MSG_INFO("REGTEST sumTrkPtCone03(): " << muonIsolation->sumTrkPtCone03());
1483 ATH_MSG_INFO("REGTEST sumEtCone01() : " << muonIsolation->sumEtCone01());
1484 ATH_MSG_INFO("REGTEST sumEtCone02() : " << muonIsolation->sumEtCone02());
1485 ATH_MSG_INFO("REGTEST sumEtCone03() : " << muonIsolation->sumEtCone03());
1486 ATH_MSG_INFO("REGTEST sumEtCone04() : " << muonIsolation->sumEtCone04());
1487 ATH_MSG_INFO("REGTEST trackPosition() : " << muonIsolation->trackPosition() );
1488 // access MuonInfo* - only works for >=2012 data
1489 if(muonIsolation->getMuonInfo()) {
1490 ATH_MSG_INFO("REGTEST Link MuonEFInfo found: " << muonIsolation->getMuonInfo());
1491 if(!muonIsolation->getEFMuonInfoTrack()) {
1492 ATH_MSG_WARNING("REGTEST No InfoTrack attached to this EFIsolation object");
1493 }
1494 else {
1495 const TrigMuonEFInfoTrack* trk = muonIsolation->getEFMuonInfoTrack();
1496 ATH_MSG_INFO("REGTEST Linke EFInfoTrack has MuonType : " << trk->MuonType());
1497 if(trk->hasCombinedTrack()) ATH_MSG_INFO("REGTEST Linked EFInfoTrack combined pt : " << trk->CombinedTrack()->pt());
1498 if(trk->hasExtrapolatedTrack()) ATH_MSG_INFO("REGTEST Linked EFInfoTrack extrapolated pt : " << trk->ExtrapolatedTrack()->pt());
1499 if(trk->hasSpectrometerTrack()) ATH_MSG_INFO("REGTEST Linked EFInfoTrack MS pt : " << trk->SpectrometerTrack()->pt());
1500 if(trk->hasCombinedTrack()) {
1501 if(trk->CombinedTrack()->getIDTrackParticle())
1502 ATH_MSG_INFO("REGTEST Linked EFInfoTrack ID track pt : " << trk->CombinedTrack()->getIDTrackParticle()->pt());
1503 }
1504
1505 }
1506 }else {
1507 ATH_MSG_INFO("REGTEST No Linked MuonEFInfo, expected for pre 2012 data");
1508 }
1509
1510 }//TrigMuonEFIsolation loop
1511 }//TrigMuonEFIsolationContainer loop
1512
1513 ATH_MSG_INFO("REGTEST ==========END of TrigMuonEFIsolationContainer DUMP===========");
1514 ATH_MSG_DEBUG("dumpTrigMuonEFIsolationContainer() succeeded");
1515
1516 return StatusCode::SUCCESS;
1517
1518}//dumpTrigMuonEFIsolationContainer
1519
1520
1522 ATH_MSG_INFO("POINTER TrigMuonEFTrack: " << muonTrack);
1523 //if(muonTrack) mLog << MSG::INFO << "REGTEST TrigMuonEFTrack: " << *muonTrack << endmsg;
1524
1525// mLog <<MSG::INFO << "REGTEST TrigMuonEFTrack->charge() returns " << muonTrack->Charge() << endmsg;
1526// mLog <<MSG::INFO << "REGTEST P4IPtCotThPhiM->iPt() returns " << muonTrack->iPt() << endmsg;
1527// mLog <<MSG::INFO << "REGTEST P4IPtCotThPhiM->CotTh() returns " << muonTrack->cotTh() << endmsg;
1528// mLog <<MSG::INFO << "REGTEST P4IPtCotThPhiM->Phi() returns " << muonTrack->phi() << endmsg;
1529// mLog <<MSG::INFO << "REGTEST P4IPtCotThPhiM->m() returns " << muonTrack->m() << endmsg;
1530// mLog <<MSG::INFO << "REGTEST chi2() returns " << muonTrack->chi2() << endmsg;
1531// mLog <<MSG::INFO << "REGTEST chi2prob() returns " << muonTrack->chi2prob() << endmsg;
1532// mLog <<MSG::INFO << "REGTEST posX() returns " << muonTrack->posX() << endmsg;
1533// mLog <<MSG::INFO << "REGTEST posY() returns " << muonTrack->posY() << endmsg;
1534// mLog <<MSG::INFO << "REGTEST posZ() returns " << muonTrack->posZ() << endmsg;
1535// mLog <<MSG::INFO << "REGTEST NCscHitsEta() returns " << muonTrack->NCscHitsEta() << endmsg;
1536// mLog <<MSG::INFO << "REGTEST NCscHitsPhi() returns " << muonTrack->NCscHitsPhi() << endmsg;
1537// mLog <<MSG::INFO << "REGTEST NTgcHitsEta() returns " << muonTrack->NTgcHitsEta() << endmsg;
1538// mLog <<MSG::INFO << "REGTEST NTgcHitsPhi() returns " << muonTrack->NTgcHitsPhi() << endmsg;
1539// mLog <<MSG::INFO << "REGTEST NMdtHitsEta() returns " << muonTrack->NMdtHitsEta() << endmsg;
1540// mLog <<MSG::INFO << "REGTEST NMdtHitsPhi() returns " << muonTrack->NMdtHitsPhi() << endmsg;
1541// mLog <<MSG::INFO << "REGTEST NRpcHitsEta() returns " << muonTrack->NRpcHitsEta() << endmsg;
1542// mLog <<MSG::INFO << "REGTEST NRpcHitsPhi() returns " << muonTrack->NRpcHitsPhi() << endmsg;
1543// mLog <<MSG::INFO << "REGTEST d0() returns " << muonTrack->d0() << endmsg;
1544// mLog <<MSG::INFO << "REGTEST z0() returns " << muonTrack->z0() << endmsg;
1545}
1546
1548 ATH_MSG_INFO(" POINTER TrigMuonEFCbTrack: " << muonTrack);
1549 //if(muonTrack) mLog << MSG::INFO << "REGTEST TrigMuonEFCbTrack: " << *muonTrack << endmsg;
1550
1551// printMuonTrk(mLog,(TrigMuonEFTrack*)muonTrack);
1552// mLog <<MSG::INFO << "REGTEST TrigMuonEFCbTrack " << muonTrack << endmsg;
1553// mLog <<MSG::INFO << "REGTEST NIdPixelHits() returns " << muonTrack->NIdPixelHits() << endmsg;
1554// mLog <<MSG::INFO << "REGTEST NIdSctHits() returns " << muonTrack->NIdSctHits() << endmsg;
1555// mLog <<MSG::INFO << "REGTEST NTrtHits() returns " << muonTrack->NTrtHits() << endmsg;
1556// mLog <<MSG::INFO << "REGTEST matchChi2() returns " << muonTrack->matchChi2() << endmsg;
1557}
1558
1560
1561StatusCode TrigEDMChecker::dumpTrigElectronContainer ATLAS_NOT_THREAD_SAFE() {
1562
1563 ATH_MSG_DEBUG("in dumpTrigElectronContainer()");
1564
1565 ATH_MSG_INFO("REGTEST ==========START of TrigElectronContainer DUMP===========");
1566
1569
1570 StatusCode sc = evtStore()->retrieve(trigElec,lastTrigElec);
1571 if (sc.isFailure()) {
1572 ATH_MSG_INFO("REGTEST No TrigelectronContainer found");
1573 return StatusCode::SUCCESS;
1574 }
1575 ATH_MSG_INFO("REGTEST TrigElectronContainers retrieved");
1576
1577 // declare pointer to the last trigElectron to test comparison operators
1579
1580 for (int i=0; trigElec != lastTrigElec; ++trigElec, ++i) {
1581
1582 ATH_MSG_INFO("REGTEST Looking at TrigElectronContainer " << i);
1583
1584 TrigElectronContainer::const_iterator elecItr = trigElec->begin();
1585 TrigElectronContainer::const_iterator elecItrE = trigElec->end();
1586
1587 for (int j=0; elecItr != elecItrE; ++elecItr, ++j ) {
1588
1589 ATH_MSG_INFO("REGTEST Looking at TrigElectron " << j);
1590 // mLog <<MSG::INFO << "REGTEST TrigElectron->isValid() returns " << (*elecItr)->isValid() << endmsg;
1591 // mLog <<MSG::INFO << "REGTEST TrigElectron->pt() returns " << (*elecItr)->pt() << endmsg;
1592 // mLog <<MSG::INFO << "REGTEST TrigElectron->eta() returns " << (*elecItr)->eta() << endmsg;
1593 // mLog <<MSG::INFO << "REGTEST TrigElectron->phi() returns " << (*elecItr)->phi() << endmsg;
1594 // mLog <<MSG::INFO << "REGTEST TrigElectron->Zvtx() returns " << (*elecItr)->Zvtx() << endmsg;
1595
1596 // mLog <<MSG::INFO << "REGTEST TrigElectron->charge() returns " << (*elecItr)->charge() << endmsg;
1597 // mLog <<MSG::INFO << "REGTEST TrigElectron->trackIndx() returns " << (*elecItr)->trackIndx() << endmsg;
1598 // mLog <<MSG::INFO << "REGTEST TrigElectron->trkClusDphi() returns " << (*elecItr)->trkClusDphi() << endmsg;
1599 // mLog <<MSG::INFO << "REGTEST TrigElectron->trkClusDeta() returns " << (*elecItr)->trkClusDeta() << endmsg;
1600 // mLog <<MSG::INFO << "REGTEST TrigElectron->Pt() (track) returns " << (*elecItr)->Pt() << endmsg;
1601 // mLog <<MSG::INFO << "REGTEST TrigElectron->err_Pt() returns " << (*elecItr)->err_Pt() << endmsg;
1602 // mLog <<MSG::INFO << "REGTEST TrigElectron->err_eta() returns " << (*elecItr)->err_eta() << endmsg;
1603 // mLog <<MSG::INFO << "REGTEST TrigElectron->err_phi() returns " << (*elecItr)->err_phi() << endmsg;
1604 // mLog <<MSG::INFO << "REGTEST TrigElectron->err_Zvtx() returns " << (*elecItr)->err_Zvtx() << endmsg;
1605
1606 // mLog <<MSG::INFO << "REGTEST New methods: " << endmsg;
1607 // mLog <<MSG::INFO << "REGTEST TrigElectron->roiWord() returns " << (*elecItr)->roiWord() << endmsg;
1608 // mLog <<MSG::INFO << "REGTEST TrigElectron->trkEtaAtCalo() returns " << (*elecItr)->trkEtaAtCalo() << endmsg;
1609 // mLog <<MSG::INFO << "REGTEST TrigElectron->trkPhiAtCalo() returns " << (*elecItr)->trkPhiAtCalo() << endmsg;
1610 // mLog <<MSG::INFO << "REGTEST TrigElectron->caloEta() returns " << (*elecItr)->caloEta() << endmsg;
1611 // mLog <<MSG::INFO << "REGTEST TrigElectron->caloPhi() returns " << (*elecItr)->caloPhi() << endmsg;
1612 // mLog <<MSG::INFO << "REGTEST TrigElectron->Rcore() returns " << (*elecItr)->Rcore() << endmsg;
1613 // mLog <<MSG::INFO << "REGTEST TrigElectron->Eratio() returns " << (*elecItr)->Eratio() << endmsg;
1614 // mLog <<MSG::INFO << "REGTEST TrigElectron->EThad() returns " << (*elecItr)->EThad() << endmsg;
1615
1616 // printout variables using the new << operator
1617 ATH_MSG_INFO("TrigElectron printout:");
1618 ATH_MSG_INFO("REGTEST " << (**elecItr));
1619
1620 // do second loop to compare TrigElectrons using comparison operators
1621 TrigElectronContainer::const_iterator elecItr2 = elecItr; //trigElec->begin();
1622 TrigElectronContainer::const_iterator elecItr2E = trigElec->end();
1623
1624 for (int k=0; elecItr2 != elecItr2E; ++elecItr2, ++k ) {
1625 // find if TrigElectrons are the same (i.e. have same cluster and track
1626 if ( (**elecItr) == (**elecItr2) ) {
1627 ATH_MSG_INFO("REGTEST TrigElectron nr. " << j << " is the same as TrigElectron nr. " << k);
1628 } else {
1629 // TrigElectrons are different, print out differences
1630 std::map<std::string, double> v_diff;
1631 diff(*(*elecItr),*(*elecItr2), v_diff);
1632 ATH_MSG_INFO("TrigElectron " << k << " different form TrigElectron " << j << " :");
1633 for (const auto& p : v_diff) {
1634 ATH_MSG_INFO("TrigElectron Delta_" << p.first << " = " << p.second);
1635 }
1636 }
1637 }
1638 }
1639 }
1640
1641 ATH_MSG_INFO("REGTEST ==========END of TrigElectronContainer DUMP===========");
1642 ATH_MSG_DEBUG("dumpTrigElectronContainer() succeeded");
1643
1644 return StatusCode::SUCCESS;
1645}
1646
1649
1650 ATH_MSG_DEBUG("In dumpxAODElectronContainer");
1651
1652 ATH_MSG_INFO( "REGTEST ==========START of xAOD::TrigElectronContainer DUMP===========" );
1653
1654 const xAOD::TrigElectronContainer* elCont=0;
1655 StatusCode sc = evtStore()->retrieve(elCont,"HLT_xAOD__TrigElectronContainer_L2ElectronFex");
1656 if (sc.isFailure()) {
1657 ATH_MSG_INFO("REGTEST No TrigElectron container HLT_xAOD__TrigElectronContainer_L2ElectronFex");
1658 return StatusCode::SUCCESS;
1659 }
1660
1661 for (const auto eg : *elCont){
1662 ATH_MSG_INFO("REGTEST TrigElectron->Phi() returns " << eg->phi());
1663 ATH_MSG_INFO("REGTEST TrigElectron->Eta() returns " << eg->eta());
1664 ATH_MSG_INFO("REGTEST TrigElectron->rEta returns " << eg->rcore());
1665 ATH_MSG_INFO("REGTEST TrigElectron->eratio() returns " << eg->eratio());
1666 ATH_MSG_INFO("REGTEST TrigElectron->pt() returns " << eg->pt());
1667 ATH_MSG_INFO("REGTEST TrigElectron->etHad() returns " << eg->etHad());
1668 ATH_MSG_INFO("REGTEST TrigElectron->f1() returns " << eg->f1());
1669 ATH_MSG_INFO("REGTEST TrigElectron caloEta = " << eg->caloEta());
1670 ATH_MSG_INFO("REGTEST TrigElectron dPhiCalo" << eg->trkClusDphi());
1671 ATH_MSG_INFO("REGTEST TrigElectron dEtaCalo" << eg->trkClusDeta());
1672 ATH_MSG_INFO("REGTEST TrigElectron pTcalo" << eg->pt());
1673 ATH_MSG_INFO("REGTEST TrigElectron eTOverPt" << eg->etOverPt());
1674 ATH_MSG_INFO("REGTEST TrigElectron nTRTHits" << eg->nTRTHits());
1675 ATH_MSG_INFO("REGTEST TrigElectron nStrawHits" << eg->nTRTHiThresholdHits());
1676 ATH_MSG_INFO("REGTEST TrigElectron Check EMCluster");
1677 if(eg->emCluster()){
1678 ATH_MSG_INFO("REGTEST TrigElectron EMCluster retrieved");
1679 ATH_MSG_INFO("REGTEST TrigElectron emCluster->energy() returns " << eg->emCluster()->energy());
1680 ATH_MSG_INFO("REGTEST TrigElectron emCluster->phi() returns " << eg->emCluster()->phi());
1681 ATH_MSG_INFO("REGTEST TrigElectron emCluster->eta() returns " << eg->emCluster()->eta());
1682 ATH_MSG_INFO("REGTEST TrigElectron emCluster check Element Link");
1683 ATH_MSG_INFO("REGTEST TrigElectron emCluster energy = " << eg->emCluster()->energy());
1684 ATH_MSG_INFO("REGTEST TrigElectron ElementLink emCluster energy = " << (*eg->emClusterLink())->energy());
1685 }
1686 else ATH_MSG_INFO("REGTEST TrigElectron No EMCluster retrieved!");
1687 ATH_MSG_INFO("REGTEST TrigElectron Check TrackParticle");
1688 if(eg->trackParticle()){
1689 ATH_MSG_INFO("REGTEST TrigElectron TrackParticle retrieved");
1690 ATH_MSG_INFO("REGTEST TrigElectron trackParticle->pt() returns " << eg->trackParticle()->pt());
1691 ATH_MSG_INFO("REGTEST TrigElectron trackParticle->phi() returns " << eg->trackParticle()->phi());
1692 ATH_MSG_INFO("REGTEST TrigElectron trackParticle->eta() returns " << eg->trackParticle()->eta());
1693 ATH_MSG_INFO("REGTEST TrigElectron check TrackParticle Element Link");
1694 ATH_MSG_INFO("REGTEST TrigElectron TrackParticle pt = " << eg->trackParticle()->pt());
1695 ATH_MSG_INFO("REGTEST TrigElectron ElementLink TrackParticle pt = " << (*eg->trackParticleLink())->pt());
1696 }
1697 else ATH_MSG_INFO("REGTEST TrigElectron No TrackParticle retrieved!");
1698 }
1699 ATH_MSG_INFO( "REGTEST ==========END of xAOD::TrigElectronContainer DUMP===========" );
1700
1701 return StatusCode::SUCCESS;
1702
1703}
1704
1707
1708 ATH_MSG_DEBUG("In dumpxAODTrigPhotonContainer");
1709
1710 ATH_MSG_INFO( "REGTEST ==========START of xAOD::TrigPhotonContainer DUMP===========" );
1711
1712 const xAOD::TrigPhotonContainer* phCont=0;
1713 StatusCode sc = evtStore()->retrieve(phCont,"HLT_xAOD__TrigPhotonContainer_L2PhotonFex");
1714 if (sc.isFailure()) {
1715 ATH_MSG_INFO("REGTEST No TrigPhoton container HLT_xAOD__TrigPhotonContainer_L2PhotonFex");
1716 return StatusCode::SUCCESS;
1717 }
1718
1719 for (const auto eg : *phCont){
1720
1721 ATH_MSG_INFO("REGTEST TrigPhoton->Phi() returns " << eg->phi());
1722 ATH_MSG_INFO("REGTEST TrigPhoton->Eta() returns " << eg->eta());
1723 ATH_MSG_INFO("REGTEST TrigPhoton->dPhi() returns " << eg->dPhi());
1724 ATH_MSG_INFO("REGTEST TrigPhoton->dEta() returns " << eg->dEta());
1725 ATH_MSG_INFO("REGTEST TrigPhoton->rEta returns " << eg->rcore());
1726 ATH_MSG_INFO("REGTEST TrigPhoton->eratio() returns " << eg->eratio());
1727 ATH_MSG_INFO("REGTEST TrigPhoton->pt() returns " << eg->pt());
1728 ATH_MSG_INFO("REGTEST TrigPhoton->etHad() returns " << eg->etHad());
1729 ATH_MSG_INFO("REGTEST TrigPhoton->f1() returns " << eg->f1());
1730 ATH_MSG_INFO("REGTEST TrigPhoton Check EMCluster");
1731 if(eg->emCluster()){
1732 ATH_MSG_INFO("REGTEST TrigPhoton EMCluster retrieved");
1733 ATH_MSG_INFO("REGTEST TrigPhoton emCluster->energy() returns " << eg->emCluster()->energy());
1734 ATH_MSG_INFO("REGTEST TrigPhoton emCluster->phi() returns " << eg->emCluster()->phi());
1735 ATH_MSG_INFO("REGTEST TrigPhoton emCluster->eta() returns " << eg->emCluster()->eta());
1736 ATH_MSG_INFO("REGTEST TrigPhoton emCluster check Element Link");
1737 ATH_MSG_INFO("REGTEST TrigPhoton emCluster energy = " << eg->emCluster()->energy());
1738 ATH_MSG_INFO("REGTEST TrigPhoton ElementLink emCluster energy = " << (*eg->emClusterLink())->energy());
1739 }
1740 else ATH_MSG_INFO("REGTEST TrigPhoton No EMCluster retrieved!");
1741 }
1742 ATH_MSG_INFO( "REGTEST ==========END of xAOD::TrigPhotonContainer DUMP===========" );
1743
1744 return StatusCode::SUCCESS;
1745
1746}
1747
1750
1751 ATH_MSG_DEBUG("In dumpxAODElectronContainer");
1752
1753 ATH_MSG_INFO( "REGTEST ==========START of xAOD::ElectronContainer DUMP===========" );
1754
1755 const xAOD::ElectronContainer* elCont=0;
1756 StatusCode sc = evtStore()->retrieve(elCont,"HLT_xAOD__ElectronContainer_egamma_Electrons");
1757 if (sc.isFailure()) {
1758 ATH_MSG_INFO("REGTEST No Electron container HLT_xAOD__ElectronContainer_egamma_Electrons");
1759 return StatusCode::SUCCESS;
1760 }
1761 float val_float=-99;
1762 unsigned int isEMbit=0;
1763 bool pid=false;
1764 //DEBUG output for Egamma container
1765 ATH_MSG_INFO(" REGTEST: xAOD Reconstruction variables: ");
1766 // //Cluster and ShowerShape info
1767 //
1768 static const SG::AuxElement::Accessor< float > accLH("LHValue");
1769 static const SG::AuxElement::Accessor< float > accLHCalo("LHCaloValue");
1770 for (const auto eg : *elCont){
1771 //REGTEST printout
1772 if (eg) {
1773 ATH_MSG_INFO(" REGTEST: egamma energy: " << eg->e() );
1774 ATH_MSG_INFO(" REGTEST: egamma eta: " << eg->eta() );
1775 ATH_MSG_INFO(" REGTEST: egamma phi: " << eg->phi() );
1776 if(eg->selectionisEM(isEMbit,"isEMVLoose"))
1777 ATH_MSG_INFO(" REGTEST: isEMVLoose " << std::hex << isEMbit << std::dec);
1778 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
1779 if(eg->selectionisEM(isEMbit,"isEMLoose"))
1780 ATH_MSG_INFO(" REGTEST: isEMLoose " << std::hex << isEMbit << std::dec);
1781 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
1782 if(eg->selectionisEM(isEMbit,"isEMMedium"))
1783 ATH_MSG_INFO(" REGTEST: isEMMedium " << std::hex << isEMbit << std::dec);
1784 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
1785 if(eg->selectionisEM(isEMbit,"isEMTight"))
1786 ATH_MSG_INFO(" REGTEST: isEMTight " << std::hex << isEMbit << std::dec);
1787 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
1788 if(eg->selectionisEM(isEMbit,"isEMLHVLoose"))
1789 ATH_MSG_INFO(" REGTEST: isEMLHVLoose " << std::hex << isEMbit << std::dec);
1790 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
1791 if(eg->selectionisEM(isEMbit,"isEMLHLoose"))
1792 ATH_MSG_INFO(" REGTEST: isEMLHLoose " << std::hex << isEMbit << std::dec);
1793 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
1794 if(eg->selectionisEM(isEMbit,"isEMLHMedium"))
1795 ATH_MSG_INFO(" REGTEST: isEMLHMedium " << std::hex << isEMbit << std::dec);
1796 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
1797 if(eg->selectionisEM(isEMbit,"isEMLHTight"))
1798 ATH_MSG_INFO(" REGTEST: isEMLHTight " << std::hex << isEMbit << std::dec);
1799 else ATH_MSG_WARNING(" REGTEST: Missing Aux info");
1800 if(accLH.isAvailable(*eg))
1801 ATH_MSG_INFO(" REGTEST: LHValue " << accLH(*eg));
1802 else
1803 ATH_MSG_WARNING(" REGTEST: Missing Aux info ");
1804 if(accLHCalo.isAvailable(*eg))
1805 ATH_MSG_INFO(" REGTEST: LHValue " << accLHCalo(*eg));
1806 else
1807 ATH_MSG_WARNING(" REGTEST: Missing Aux info ");
1808 if(eg->passSelection(pid,"LHVLoose"))
1809 ATH_MSG_INFO(" REGTEST: LHVLoose " << pid);
1810 else
1811 ATH_MSG_WARNING(" REGTEST: Missing Aux info ");
1812 if(eg->passSelection(pid,"LHLoose"))
1813 ATH_MSG_INFO(" REGTEST: LHLoose " << pid);
1814 else
1815 ATH_MSG_WARNING(" REGTEST: Missing Aux info ");
1816 if(eg->passSelection(pid,"LHMedium"))
1817 ATH_MSG_INFO(" REGTEST: LHMedium " << pid);
1818 else
1819 ATH_MSG_WARNING(" REGTEST: Missing Aux info ");
1820 if(eg->passSelection(pid,"LHTight"))
1821 ATH_MSG_INFO(" REGTEST: LHTight " << pid);
1822 else
1823 ATH_MSG_WARNING(" REGTEST: Missing Aux info ");
1824 } else{
1825 ATH_MSG_INFO(" REGTEST: problems with egamma pointer" );
1826 return StatusCode::SUCCESS;
1827 }
1828 ATH_MSG_INFO(" REGTEST: caloCluster variables ");
1829 if (eg->caloCluster()) {
1830 ATH_MSG_INFO(" REGTEST: egamma cluster transverse energy: " << eg->caloCluster()->et() );
1831 ATH_MSG_INFO(" REGTEST: egamma cluster eta: " << eg->caloCluster()->eta() );
1832 ATH_MSG_INFO(" REGTEST: egamma cluster phi: " << eg->caloCluster()->phi() );
1833 double tmpeta = -999.;
1834 double tmpphi = -999.;
1835 eg->caloCluster()->retrieveMoment(xAOD::CaloCluster::ETACALOFRAME,tmpeta);
1836 eg->caloCluster()->retrieveMoment(xAOD::CaloCluster::PHICALOFRAME,tmpphi);
1837 ATH_MSG_INFO(" REGTEST: egamma cluster calo-frame coords. etaCalo = " << tmpeta);
1838 ATH_MSG_INFO(" REGTEST: egamma cluster calo-frame coords. phiCalo = " << tmpphi);
1839 } else{
1840 ATH_MSG_INFO(" REGTEST: problems with egamma cluster pointer" );
1841 }
1842 ATH_MSG_INFO("REGTEST: Check the original (uncalibrated)");
1843 static const SG::AuxElement::Accessor<ElementLink<xAOD::CaloClusterContainer> > orig ("originalCaloCluster");
1844 if (!orig.isAvailable(*eg->caloCluster()) || !orig(*eg->caloCluster()).isValid()){
1845 ATH_MSG_INFO("Problem with original cluster link");
1846 }
1847 else {
1848 const xAOD::CaloCluster *origClus = *orig(*eg->caloCluster());
1849 ATH_MSG_INFO("REGTEST:: Compare new and old clusters");
1850 ATH_MSG_INFO("REGTEST:: Original Cluster e,eta,phi" << origClus->e() << " " << origClus->eta() << " " << origClus->phi());
1851 ATH_MSG_INFO("REGTEST:: MVA Cluster e,eta,phi" << eg->caloCluster()->e() << " " << eg->caloCluster()->eta() << " " << eg->caloCluster()->phi());
1852 }
1853 ATH_MSG_INFO(" REGTEST: trackmatch variables ");
1854 if(eg->trackParticle()){
1855 ATH_MSG_INFO(" REGTEST: pt= " << eg->trackParticle()->pt());
1856 ATH_MSG_INFO(" REGTEST: charge= " << eg->trackParticle()->charge());
1857 ATH_MSG_INFO(" REGTEST: E/p= " << eg->caloCluster()->et() / eg->trackParticle()->pt() );
1858 eg->trackCaloMatchValue(val_float,xAOD::EgammaParameters::deltaEta1);
1859 ATH_MSG_INFO(" REGTEST: Delta eta 1st sampling= " << val_float);
1860 eg->trackCaloMatchValue(val_float,xAOD::EgammaParameters::deltaPhi2);
1861 ATH_MSG_INFO(" REGTEST: Delta phi 2nd sampling= " << val_float);
1862 } else{
1863 ATH_MSG_INFO(" REGTEST: no electron eg->trackParticle() pointer");
1864 }
1865
1866 //msg() << MSG::VERBOSE << " REGTEST: cluster variables " << endmsg;
1867 //clus = eg->caloCluster();
1868 ATH_MSG_INFO(" REGTEST: EMShower variables ");
1869 eg->showerShapeValue(val_float,xAOD::EgammaParameters::ethad);
1870 ATH_MSG_INFO(" REGTEST: ethad = " << val_float);
1871 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e011);
1872 ATH_MSG_INFO(" REGTEST: e011 = " << val_float);
1873 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e132);
1874 ATH_MSG_INFO(" REGTEST: e132 = " << val_float);
1875 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e237);
1876 ATH_MSG_INFO(" REGTEST: e237 = " << val_float);
1877 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e335);
1878 ATH_MSG_INFO(" REGTEST: e335 = " << val_float);
1879 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e2ts1);
1880 ATH_MSG_INFO(" REGTEST: e2ts1 = " << val_float);
1881 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e2tsts1);
1882 ATH_MSG_INFO(" REGTEST: e2tsts1 = " << val_float);
1883 eg->isolationValue(val_float,xAOD::Iso::ptcone20);
1884 ATH_MSG_INFO(" REGTEST: ptcone20 = " << val_float);
1885 eg->isolationValue(val_float,xAOD::Iso::ptcone30);
1886 ATH_MSG_INFO(" REGTEST: ptcone30 = " << val_float);
1887 eg->isolationValue(val_float,xAOD::Iso::ptcone40);
1888 ATH_MSG_INFO(" REGTEST: ptcone40 = " << val_float);
1889 eg->isolationValue(val_float,xAOD::Iso::etcone20);
1890 ATH_MSG_INFO(" REGTEST: etcone20 = " << val_float);
1891 eg->isolationValue(val_float,xAOD::Iso::etcone30);
1892 ATH_MSG_INFO(" REGTEST: etcone30 = " << val_float);
1893 eg->isolationValue(val_float,xAOD::Iso::etcone40);
1894 ATH_MSG_INFO(" REGTEST: etcone40 = " << val_float);
1895 //DEBUG info for Electrons which by definition have a track match
1896
1897 }
1898 ATH_MSG_INFO( "REGTEST ==========END of xAOD::ElectronContainer DUMP===========" );
1899
1900 return StatusCode::SUCCESS;
1901
1902}
1903
1906
1907 ATH_MSG_DEBUG("In dumpxAODPhotonContainer");
1908
1909 ATH_MSG_INFO( "REGTEST ==========START of xAOD::PhotonContainer DUMP===========" );
1910
1911 const xAOD::PhotonContainer* phCont=0;
1912 StatusCode sc = evtStore()->retrieve(phCont,"HLT_xAOD__PhotonContainer_egamma_Photons");
1913 if (sc.isFailure()) {
1914 ATH_MSG_INFO("REGTEST No Photon container HLT_xAOD__PhotonContainer_egamma_Photons");
1915 return StatusCode::SUCCESS;
1916 }
1917
1918 float val_float=-99;
1919 unsigned int isEMbit=0;
1920 //DEBUG output for xAOD::PhotonContainer
1921 ATH_MSG_INFO(" REGTEST: xAOD Reconstruction variables: ");
1922 // //Cluster and ShowerShape info
1923 for (const auto eg : *phCont){
1924 //REGTEST printout
1925 if (eg) {
1926 ATH_MSG_INFO(" REGTEST: egamma energy: " << eg->e() );
1927 ATH_MSG_INFO(" REGTEST: egamma eta: " << eg->eta() );
1928 ATH_MSG_INFO(" REGTEST: egamma phi: " << eg->phi() );
1929 ATH_MSG_INFO(" REGTEST: isEMLoose " << eg->selectionisEM(isEMbit,"isEMLoose"));
1930 ATH_MSG_INFO(" REGTEST: isEMLoose bit " << std::hex << isEMbit << std::dec);
1931 ATH_MSG_INFO(" REGTEST: isEMMedium " << eg->selectionisEM(isEMbit,"isEMMedium"));
1932 ATH_MSG_INFO(" REGTEST: isEMMedium bit " << std::hex << isEMbit << std::dec);
1933 ATH_MSG_INFO(" REGTEST: isEMTight " << eg->selectionisEM(isEMbit,"isEMTight"));
1934 ATH_MSG_INFO(" REGTEST: isEMTight bit " << std::hex << isEMbit << std::dec);
1935 } else{
1936 ATH_MSG_INFO(" REGTEST: problems with egamma pointer" );
1937 return StatusCode::SUCCESS;
1938 }
1939 ATH_MSG_INFO(" REGTEST: caloCluster variables ");
1940 if (eg->caloCluster()) {
1941 ATH_MSG_INFO(" REGTEST: egamma cluster transverse energy: " << eg->caloCluster()->et() );
1942 ATH_MSG_INFO(" REGTEST: egamma cluster eta: " << eg->caloCluster()->eta() );
1943 ATH_MSG_INFO(" REGTEST: egamma cluster phi: " << eg->caloCluster()->phi() );
1944 double tmpeta = -999.;
1945 double tmpphi = -999.;
1946 eg->caloCluster()->retrieveMoment(xAOD::CaloCluster::ETACALOFRAME,tmpeta);
1947 eg->caloCluster()->retrieveMoment(xAOD::CaloCluster::PHICALOFRAME,tmpphi);
1948 ATH_MSG_INFO(" REGTEST: egamma cluster calo-frame coords. etaCalo = " << tmpeta);
1949 ATH_MSG_INFO(" REGTEST: egamma cluster calo-frame coords. phiCalo = " << tmpphi);
1950 } else{
1951 ATH_MSG_INFO(" REGTEST: problems with egamma cluster pointer" );
1952 }
1953 ATH_MSG_INFO("REGTEST: Check the original (uncalibrated)");
1954 static const SG::AuxElement::Accessor<ElementLink<xAOD::CaloClusterContainer> > orig ("originalCaloCluster");
1955 if (!orig.isAvailable(*eg->caloCluster()) || !orig(*eg->caloCluster()).isValid()){
1956 ATH_MSG_INFO("Problem with original cluster link");
1957 }
1958 else {
1959 const xAOD::CaloCluster *origClus = *orig(*eg->caloCluster());
1960 ATH_MSG_INFO("REGTEST:: Compare new and old clusters");
1961 ATH_MSG_INFO("REGTEST:: Original Cluster e,eta,phi" << origClus->e() << " " << origClus->eta() << " " << origClus->phi());
1962 ATH_MSG_INFO("REGTEST:: MVA Cluster e,eta,phi" << eg->caloCluster()->e() << " " << eg->caloCluster()->eta() << " " << eg->caloCluster()->phi());
1963 }
1964 //msg() << MSG::VERBOSE << " REGTEST: cluster variables " << endmsg;
1965 //clus = eg->caloCluster();
1966 ATH_MSG_INFO(" REGTEST: EMShower variables ");
1967 eg->showerShapeValue(val_float,xAOD::EgammaParameters::ethad);
1968 ATH_MSG_INFO(" REGTEST: ethad = " << val_float);
1969 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e011);
1970 ATH_MSG_INFO(" REGTEST: e011 = " << val_float);
1971 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e132);
1972 ATH_MSG_INFO(" REGTEST: e132 = " << val_float);
1973 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e237);
1974 ATH_MSG_INFO(" REGTEST: e237 = " << val_float);
1975 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e335);
1976 ATH_MSG_INFO(" REGTEST: e335 = " << val_float);
1977 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e2ts1);
1978 ATH_MSG_INFO(" REGTEST: e2ts1 = " << val_float);
1979 eg->showerShapeValue(val_float,xAOD::EgammaParameters::e2tsts1);
1980 ATH_MSG_INFO(" REGTEST: e2tsts1 = " << val_float);
1981 eg->isolationValue(val_float,xAOD::Iso::etcone20);
1982 ATH_MSG_INFO(" REGTEST: etcone20 = " << val_float);
1983 eg->isolationValue(val_float,xAOD::Iso::etcone30);
1984 ATH_MSG_INFO(" REGTEST: etcone30 = " << val_float);
1985 eg->isolationValue(val_float,xAOD::Iso::etcone40);
1986 ATH_MSG_INFO(" REGTEST: etcone40 = " << val_float);
1987 //DEBUG info for Electrons which by definition have a track match
1988
1989 }
1990 ATH_MSG_INFO( "REGTEST ==========END of xAOD::PhotonContainer DUMP===========" );
1991
1992 return StatusCode::SUCCESS;
1993
1994}
1995
1996
1997StatusCode TrigEDMChecker::dumpTrigTauContainer ATLAS_NOT_THREAD_SAFE() {
1998
1999 ATH_MSG_DEBUG("in dumpTrigTauContainer()");
2000 ATH_MSG_INFO("REGTEST ==========START of TrigTauContainer DUMP===========");
2001
2004
2005 StatusCode sc = evtStore()->retrieve(trigTau,lastTrigTau);
2006 if (sc.isFailure()) {
2007 ATH_MSG_INFO("REGTEST No TrigTauContainer found");
2008 return StatusCode::SUCCESS;
2009 }
2010 ATH_MSG_INFO("REGTEST TrigTauContainer retrieved");
2011
2012 for (int i=0; trigTau != lastTrigTau; ++trigTau, ++i) {
2013
2014 ATH_MSG_INFO("REGTEST Looking at TrigTauContainer " << i);
2015
2016 TrigTauContainer::const_iterator TrigTauItr = trigTau->begin();
2017 TrigTauContainer::const_iterator TrigTauItrE = trigTau->end();
2018
2019 for (int j=0; TrigTauItr != TrigTauItrE; ++TrigTauItr, ++j ) {
2020
2021 ATH_MSG_INFO("REGTEST Looking at TrigTau " << j);
2022
2023 ATH_MSG_INFO("REGTEST TrigTau->pt() returns " << (*TrigTauItr)->pt());
2024 ATH_MSG_INFO("REGTEST TrigTau->eta() returns " << (*TrigTauItr)->eta());
2025 ATH_MSG_INFO("REGTEST TrigTau->phi() returns " << (*TrigTauItr)->phi());
2026
2027 ATH_MSG_INFO("REGTEST TrigTau->nMatchedTracks() returns " << (*TrigTauItr)->nMatchedTracks());
2028 ATH_MSG_INFO("REGTEST TrigTau->simpleEtFlow() returns " << (*TrigTauItr)->simpleEtFlow());
2029 ATH_MSG_INFO("REGTEST TrigTau->m() returns " << (*TrigTauItr)->m());
2030 }
2031 }
2032
2033 ATH_MSG_INFO("REGTEST ==========END of TrigTau DUMP===========");
2034 ATH_MSG_DEBUG("dumpTrigTauContainer() succeeded");
2035
2036 return StatusCode::SUCCESS;
2037}
2038
2040StatusCode TrigEDMChecker::dumpTrigTauTracksInfo ATLAS_NOT_THREAD_SAFE() {
2041
2042 ATH_MSG_DEBUG("in dumpTrigTauTracksInfo()");
2043 ATH_MSG_INFO("REGTEST ==========START of TrigTauTracksInfo DUMP===========");
2044
2047
2048 StatusCode sc = evtStore()->retrieve(trigTau,lastTrigTau);
2049 if (sc.isFailure()) {
2050 ATH_MSG_INFO("REGTEST No TrigTauTracksInfo found");
2051 return StatusCode::SUCCESS;
2052 }
2053 ATH_MSG_INFO("REGTEST TrigTauTracksInfos retrieved");
2054
2055 for (int i=0; trigTau != lastTrigTau; ++trigTau, ++i) {
2056
2057 const TrigTauTracksInfo* thisTrigTau = &(*trigTau);
2058
2059 ATH_MSG_INFO("REGTEST Looking at TrigTauTracksInfo " << i);
2060
2061 ATH_MSG_INFO("REGTEST TrigTauTracksInfo->pt() returns " << thisTrigTau->pt());
2062 ATH_MSG_INFO("REGTEST TrigTauTracksInfo->eta() returns " << thisTrigTau->eta());
2063 ATH_MSG_INFO("REGTEST TrigTauTracksInfo->phi() returns " << thisTrigTau->phi());
2064
2065 ATH_MSG_INFO("REGTEST TrigTauTracksInfo->nCoreTracks() returns " << thisTrigTau->nCoreTracks());
2066 ATH_MSG_INFO("REGTEST TrigTauTracksInfo->nSlowTracks() returns " << thisTrigTau->nSlowTracks());
2067 ATH_MSG_INFO("REGTEST TrigTauTracksInfo->nIsoTracks() returns " << thisTrigTau->nIsoTracks());
2068
2069 ATH_MSG_INFO("REGTEST TrigTauTracksInfo->charge() returns " << thisTrigTau->charge());
2070 ATH_MSG_INFO("REGTEST TrigTauTracksInfo->leadingTrackPt() returns " <<
2071 thisTrigTau->leadingTrackPt());
2072 ATH_MSG_INFO("REGTEST TrigTauTracksInfo->scalarPtSumCore() returns " <<
2073 thisTrigTau->scalarPtSumCore());
2074 ATH_MSG_INFO("REGTEST TrigTauTracksInfo->scalarPtSumIso() returns " <<
2075 thisTrigTau->scalarPtSumIso());
2076 ATH_MSG_INFO("REGTEST TrigTauTracksInfo->threeFastestTracks().pt() returns " <<
2077 thisTrigTau->threeFastestTracks().pt());
2078 }
2079
2080 ATH_MSG_INFO("REGTEST ==========END of TrigTauTracksInfo DUMP===========");
2081 ATH_MSG_DEBUG("dumpTrigTauTracksInfo() succeeded");
2082
2083 return StatusCode::SUCCESS;
2084}
2085
2087
2089
2090 ATH_MSG_DEBUG("in dumpHLTResult()");
2091
2092 ATH_MSG_INFO("REGTEST ==========START of HLTResult DUMP===========");
2093
2094 const HLT::HLTResult* hltResult = 0;
2095 StatusCode sc=evtStore()->retrieve( hltResult, "HLTResult_L2");
2096 if( sc.isFailure() || !hltResult ) {
2097 ATH_MSG_INFO("No HLTResult_L2 found in TDS");
2098 return StatusCode::SUCCESS;
2099 }
2100 ATH_MSG_INFO("REGTEST HLTResult_L2 Successfully Retrieved");
2101
2102 ATH_MSG_INFO("REGTEST HLTResult_L2->isEmpty() returns " << hltResult->isEmpty());
2103 ATH_MSG_INFO("REGTEST HLTResult_L2->size() returns " << hltResult->size());
2104 ATH_MSG_INFO("REGTEST HLTResult_L2->isPassThrough() returns " << hltResult->isPassThrough());
2105 ATH_MSG_INFO("REGTEST HLTResult_L2->isAccepted() returns " << hltResult->isAccepted());
2106
2107 ATH_MSG_INFO("REGTEST ==========END of HLTResult DUMP===========");
2108
2109 ATH_MSG_DEBUG("dumpHLTResult() succeeded");
2110
2111 return StatusCode::SUCCESS;
2112}
2113
2114
2115
2117
2118StatusCode TrigEDMChecker::dumpTrigVertexCollection ATLAS_NOT_THREAD_SAFE() {
2119
2120 ATH_MSG_DEBUG("in dumpTrigVertexCollection()");
2121 ATH_MSG_INFO("REGTEST ==========START of TrigVertexCollection DUMP===========");
2122
2125
2126 StatusCode sc = evtStore()->retrieve(trigVertex,lastTrigVertex);
2127 if (sc.isFailure()) {
2128 ATH_MSG_INFO("REGTEST No TrigVertexCollection found");
2129 return StatusCode::SUCCESS;
2130 }
2131 ATH_MSG_INFO("REGTEST TrigVertexCollection retrieved");
2132
2133
2134 for (int i=0; trigVertex != lastTrigVertex; ++trigVertex, ++i) {
2135
2136 ATH_MSG_INFO("REGTEST Looking at TrigVertexCollection " << i);
2137
2138 TrigVertexCollection::const_iterator VertexItr = trigVertex->begin();
2139 TrigVertexCollection::const_iterator VertexItrE = trigVertex->end();
2140
2141 for (int j=0; VertexItr != VertexItrE; ++VertexItr, ++j ) {
2142
2143 ATH_MSG_INFO("REGTEST Looking at TrigVertex " << j);
2144
2145 ATH_MSG_INFO("REGTEST TrigVertex->x() returns " << (*VertexItr)->x());
2146 ATH_MSG_INFO("REGTEST TrigVertex->y() returns " << (*VertexItr)->y());
2147 ATH_MSG_INFO("REGTEST TrigVertex->z() returns " << (*VertexItr)->z());
2148 ATH_MSG_INFO("REGTEST TrigVertex->energyFraction() returns " << (*VertexItr)->energyFraction());
2149 ATH_MSG_INFO("REGTEST TrigVertex->ndof() returns " << (*VertexItr)->ndof());
2150
2151 if(((*VertexItr)->tracks())!=NULL ){
2152 // mLog <<MSG::INFO << "REGTEST *** ((*VertexItr)->tracks())!=NULL *** " << endmsg;
2153 TrackInVertexList::const_iterator trkItr = (*VertexItr)->tracks()->begin();
2154 TrackInVertexList::const_iterator trkItrE = (*VertexItr)->tracks()->end();
2155
2156 for (int p=0; trkItr != trkItrE; ++trkItr, ++p ) {
2157
2158 ATH_MSG_INFO("REGTEST Looking at track " << p);
2159
2160 ATH_MSG_INFO("REGTEST Tracks info: ");
2161 ATH_MSG_INFO("REGTEST tracks->NStrawHits() returns " << (*trkItr)->NStrawHits());
2162 ATH_MSG_INFO("REGTEST tracks->NStrawTime() returns " << (*trkItr)->NStrawTime());
2163 ATH_MSG_INFO("REGTEST tracks->NTRHits() returns " << (*trkItr)->NTRHits());
2164 }
2165 }
2166 }
2167 }
2168
2169 ATH_MSG_INFO("REGTEST ==========END of TrigVertexCollection DUMP===========");
2170 ATH_MSG_DEBUG("dumpTrigVertexCollection() succeeded");
2171
2172 return StatusCode::SUCCESS;
2173}
2174
2175
2177
2178
2180
2181 ATH_MSG_DEBUG("in dumpTrigEFBphysContainer()");
2182
2183 ATH_MSG_INFO("REGTEST ==========START of TrigEFBphysContainer DUMP===========");
2184
2185 std::string EFBphysTags[]={"HLT_xAOD__TrigBphysContainer_EFBMuMuFex",
2186 "HLT_xAOD__TrigBphysContainer_EFBMuMuXFex",
2187 "HLT_xAOD__TrigBphysContainer_EFDsPhiPiFex",
2188 "HLT_xAOD__TrigBphysContainer_EFMuPairs",
2189 "HLT_xAOD__TrigBphysContainer_EFMultiMuFex",
2190 "HLT_xAOD__TrigBphysContainer_EFTrackMass"
2191 };
2192
2193 int ntag= (int) sizeof(EFBphysTags) / sizeof(EFBphysTags[0]);
2194
2195
2196 for (int itag=0; itag<ntag; itag++){
2197 const xAOD::TrigBphysContainer* trigEFBphys;
2198 StatusCode sc = evtStore()->retrieve(trigEFBphys, EFBphysTags[itag]);
2199 if (sc.isFailure()) {
2200 ATH_MSG_INFO("REGTEST No TrigEFBphysContainer found with tag " << EFBphysTags[itag]);
2201 continue;
2202 }
2203
2204 ATH_MSG_INFO("REGTEST TrigEFBphysContainer found with tag " << EFBphysTags[itag]
2205 << " and size " << trigEFBphys->size());
2206
2207 // for (int i=0; trigEFBphys != lastTrigEFBphys; ++trigEFBphys, ++i) {
2208
2209 //mLog << MSG::INFO << "REGTEST Looking at TrigEFBphysContainer " << i << endmsg;
2210
2211 xAOD::TrigBphysContainer::const_iterator EFBphysItr = trigEFBphys->begin();
2212 xAOD::TrigBphysContainer::const_iterator EFBphysItrE = trigEFBphys->end();
2213
2214 for (int j=0; EFBphysItr != EFBphysItrE; ++EFBphysItr, ++j ) {
2215
2216 ATH_MSG_INFO("REGTEST Looking at TrigEFBphys " << j);
2217
2218 ATH_MSG_INFO("REGTEST TrigEFBphys->eta() returns " << (*EFBphysItr)->eta());
2219 ATH_MSG_INFO("REGTEST TrigEFBphys->phi() returns " << (*EFBphysItr)->phi());
2220 ATH_MSG_INFO("REGTEST TrigEFBphys->mass() returns " << (*EFBphysItr)->mass());
2221 ATH_MSG_INFO("REGTEST TrigEFBphys->fitmass() returns " << (*EFBphysItr)->fitmass());
2222 // ATH_MSG_INFO("REGTEST TrigEFBphys->isValid() returns " << (*EFBphysItr)->isValid());
2223 ATH_MSG_INFO("REGTEST TrigEFBphys->roiId() returns " << (*EFBphysItr)->roiId());
2224 ATH_MSG_INFO("REGTEST TrigEFBphys->particleType() returns " << (*EFBphysItr)->particleType());
2225
2226 if( (*EFBphysItr)->secondaryDecay() != NULL){
2227 const xAOD::TrigBphys * psecond =(*EFBphysItr)->secondaryDecay();
2228 ATH_MSG_INFO("REGTEST Secondary decay info: ");
2229 ATH_MSG_INFO("REGTEST pSecondDecay->eta() returns " << psecond->eta());
2230 ATH_MSG_INFO("REGTEST pSecondDecay->phi() returns " << psecond->phi());
2231 ATH_MSG_INFO("REGTEST pSecondDecay->mass() returns " << psecond->mass());
2232 ATH_MSG_INFO("REGTEST pSecondDecay->fitmass() returns " << psecond->fitmass());
2233 // ATH_MSG_INFO("REGTEST pSecondDecay->isValid() returns " << (*EFBphysItr)->secondaryDecayLink()->isValid());
2234 ATH_MSG_INFO("REGTEST pSecondDecay->roiId() returns " << psecond->roiId());
2235 ATH_MSG_INFO("REGTEST pSecondDecay->particleType() returns " << psecond->particleType());
2236
2237 } // end if secondary exists
2238
2239
2240
2241 const std::vector<ElementLink<xAOD::TrackParticleContainer> > trackVector = (*EFBphysItr)->trackParticleLinks();
2242 if (trackVector.size() != 0) {
2243 ATH_MSG_INFO(" REGTEST got track vector size: " << trackVector.size());
2244 } else {
2245 ATH_MSG_INFO(" REGTEST no track vector!!! " );
2246 }
2247 std::vector<ElementLink<xAOD::TrackParticleContainer> >::const_iterator trkIt=trackVector.begin();
2248 for (int itrk=0 ; trkIt!= trackVector.end(); ++itrk, ++trkIt) {
2249 if (!(trkIt->isValid())) {
2250 ATH_MSG_WARNING("TrackParticleContainer::Invalid ElementLink to track ");
2251 continue;
2252 }
2253 //const Trk::Perigee* trackPerigee=(*(*trkIt))->measuredPerigee();
2254 const Trk::Perigee* trackPerigee=&((*(*trkIt))->perigeeParameters());
2255
2256 // msg() << MSG::VERBOSE << "track, iterator, pointer " << itrk << " " << *trkIt << " " << *(*trkIt) << endmsg;
2257 double phi = trackPerigee->parameters()[Trk::phi];
2258 double theta = trackPerigee->parameters()[Trk::theta];
2259 double px = trackPerigee->momentum()[Trk::px];
2260 double py = trackPerigee->momentum()[Trk::py];
2261 double pt = sqrt(px*px + py*py);
2262 double eta = -std::log(tan(theta/2));
2263
2264 ATH_MSG_INFO("track " << itrk << " pt phi eta " << pt << " " <<
2265 phi << " " << eta);
2266 }
2267
2268 }
2269 }
2270 ATH_MSG_INFO("REGTEST ==========END of TrigEFBphysContainer DUMP===========");
2271 ATH_MSG_DEBUG("dumpTrigEFBphysContainer() succeeded");
2272
2273 return StatusCode::SUCCESS;
2274}
2275
2278
2279 ATH_MSG_DEBUG("in dumpTrigL2BphysContainer()");
2280 ATH_MSG_INFO("REGTEST ==========START of TrigL2BphysContainer DUMP===========");
2281
2282 std::string L2BphysTags[]={"HLT_xAOD__TrigBphysContainer_L2BMuMuFex",
2283 "HLT_xAOD__TrigBphysContainer_L2BMuMuXFex",
2284 "HLT_xAOD__TrigBphysContainer_L2DsPhiPiFexDs",
2285 "HLT_xAOD__TrigBphysContainer_L2DsPhiPiFexPhi",
2286 "HLT_xAOD__TrigBphysContainer_L2JpsieeFex",
2287 "HLT_xAOD__TrigBphysContainer_L2MultiMuFex",
2288 "HLT_xAOD__TrigBphysContainer_L2TrackMass",
2289 };
2290 const int ntag = (int) sizeof(L2BphysTags) / sizeof(L2BphysTags[0]);
2291
2292
2293 for (int itag=0; itag<ntag; itag++){
2294 const xAOD::TrigBphysContainer* trigL2Bphys;
2295 StatusCode sc = evtStore()->retrieve(trigL2Bphys, L2BphysTags[itag]);
2296 if (sc.isFailure()) {
2297 ATH_MSG_INFO("REGTEST No TrigL2BphysContainer found with tag " << L2BphysTags[itag]);
2298 continue;
2299 }
2300
2301 ATH_MSG_INFO("REGTEST TrigL2BphysContainer found with tag " << L2BphysTags[itag]
2302 << " and size " << trigL2Bphys->size());
2303
2304 // for (int i=0; trigL2Bphys != lastTrigL2Bphys; ++trigL2Bphys, ++i) {
2305
2306 // mLog << MSG::INFO << "REGTEST Looking at TrigL2BphysContainer " << i << endmsg;
2307
2308 xAOD::TrigBphysContainer::const_iterator L2BphysItr = trigL2Bphys->begin();
2309 xAOD::TrigBphysContainer::const_iterator L2BphysItrE = trigL2Bphys->end();
2310
2311 for (int j=0; L2BphysItr != L2BphysItrE; ++L2BphysItr, ++j ) {
2312
2313 ATH_MSG_INFO("REGTEST Looking at TrigL2Bphys " << j);
2314
2315 ATH_MSG_INFO("REGTEST TrigL2Bphys->eta() returns " << (*L2BphysItr)->eta());
2316 ATH_MSG_INFO("REGTEST TrigL2Bphys->phi() returns " << (*L2BphysItr)->phi());
2317 ATH_MSG_INFO("REGTEST TrigL2Bphys->mass() returns " << (*L2BphysItr)->mass());
2318 ATH_MSG_INFO("REGTEST TrigL2Bphys->fitmass() returns " << (*L2BphysItr)->fitmass());
2319 // ATH_MSG_INFO("REGTEST TrigL2Bphys->isValid() returns " << (*L2BphysItr)->isValid());
2320 ATH_MSG_INFO("REGTEST TrigL2Bphys->roiId() returns " << (*L2BphysItr)->roiId());
2321 ATH_MSG_INFO("REGTEST TrigL2Bphys->particleType() returns " << (*L2BphysItr)->particleType());
2322
2323 if( (*L2BphysItr)->secondaryDecay() != NULL){
2324 const xAOD::TrigBphys * psecond =(*L2BphysItr)->secondaryDecay();
2325 ATH_MSG_INFO("REGTEST Secondary decay info: ");
2326 ATH_MSG_INFO("REGTEST pSecondDecay->eta() returns " << psecond->eta());
2327 ATH_MSG_INFO("REGTEST pSecondDecay->phi() returns " << psecond->phi());
2328 ATH_MSG_INFO("REGTEST pSecondDecay->mass() returns " << psecond->mass());
2329 ATH_MSG_INFO("REGTEST pSecondDecay->fitmass() returns " << psecond->fitmass());
2330 // ATH_MSG_INFO("REGTEST pSecondDecay->isValid() returns " << (*L2BphysItr)->secondaryDecayLink()->isValid());
2331 ATH_MSG_INFO("REGTEST pSecondDecay->roiId() returns " << psecond->roiId());
2332 ATH_MSG_INFO("REGTEST pSecondDecay->particleType() returns " << psecond->particleType());
2333 } // end if secondary exists
2334
2335 const std::vector<ElementLink<xAOD::TrackParticleContainer> > trackVector = (*L2BphysItr)->trackParticleLinks();
2336 if (trackVector.size() != 0) {
2337 ATH_MSG_INFO(" REGTEST got track vector size: " << trackVector.size());
2338 } else {
2339 ATH_MSG_INFO(" REGTEST no track vector!!! " );
2340 }
2341 std::vector<ElementLink<xAOD::TrackParticleContainer> >::const_iterator trkIt=trackVector.begin();
2342 for (int itrk=0 ; trkIt!= trackVector.end(); ++itrk, ++trkIt) {
2343 if (!(trkIt->isValid())) {
2344 ATH_MSG_WARNING("TrackParticleContainer::Invalid ElementLink to track ");
2345 continue;
2346 }
2347 //const Trk::Perigee* trackPerigee=(*(*trkIt))->measuredPerigee();
2348 const Trk::Perigee* trackPerigee=&((*(*trkIt))->perigeeParameters());
2349
2350 // msg() << MSG::VERBOSE << "track, iterator, pointer " << itrk << " " << *trkIt << " " << *(*trkIt) << endmsg;
2351 double phi = trackPerigee->parameters()[Trk::phi];
2352 double theta = trackPerigee->parameters()[Trk::theta];
2353 double px = trackPerigee->momentum()[Trk::px];
2354 double py = trackPerigee->momentum()[Trk::py];
2355 double pt = sqrt(px*px + py*py);
2356 double eta = -std::log(tan(theta/2));
2357
2358 ATH_MSG_INFO("track " << itrk << " pt phi eta " << pt << " " <<
2359 phi << " " << eta);
2360 }
2361 }
2362 }
2363
2364 ATH_MSG_INFO("REGTEST ==========END of TrigL2BphysContainer DUMP===========");
2365 ATH_MSG_DEBUG("dumpTrigL2BphysContainer() succeeded");
2366
2367 return StatusCode::SUCCESS;
2368}
2369
2370
2371
2373
2375
2376 ATH_MSG_DEBUG("in dumpxAODJetContainer()");
2377
2378 ATH_MSG_INFO("REGTEST ==========START of xAOD::JetContainer DUMP===========");
2379
2380 std::string containerName[30] = {"HLT_xAOD__JetContainer_a4tcemjesFS",
2381 "HLT_xAOD__JetContainer_a4tcemsubFS",
2382 "HLT_xAOD__JetContainer_a4tcemsubjesFS",
2383 "HLT_xAOD__JetContainer_a4tcemnojcalibFS",
2384 "HLT_xAOD__JetContainer_a4tcemjesPS",
2385 "HLT_xAOD__JetContainer_a4tcemnojcalibPS",
2386 "HLT_xAOD__JetContainer_a4tclcwjesFS",
2387 "HLT_xAOD__JetContainer_a4tclcwsubFS",
2388 "HLT_xAOD__JetContainer_a4tclcwsubjesFS",
2389 "HLT_xAOD__JetContainer_a4tclcwnojcalibFS",
2390 "HLT_xAOD__JetContainer_a4tclcwjesPS",
2391 "HLT_xAOD__JetContainer_a4tclcwnojcalibPS",
2392 "HLT_xAOD__JetContainer_a4TTemnojcalibFS",
2393 "HLT_xAOD__JetContainer_a4TThadnojcalibFS",
2394 "HLT_xAOD__JetContainer_a10tcemjesFS",
2395 "HLT_xAOD__JetContainer_a10tcemsubFS",
2396 "HLT_xAOD__JetContainer_a10tcemsubjesFS",
2397 "HLT_xAOD__JetContainer_a10tcemnojcalibFS",
2398 "HLT_xAOD__JetContainer_a10tcemjesPS",
2399 "HLT_xAOD__JetContainer_a10tcemnojcalibPS",
2400 "HLT_xAOD__JetContainer_a10tclcwjesFS",
2401 "HLT_xAOD__JetContainer_a10tclcwsubFS",
2402 "HLT_xAOD__JetContainer_a10tclcwsubjesFS",
2403 "HLT_xAOD__JetContainer_a10tclcwnojcalibFS",
2404 "HLT_xAOD__JetContainer_a10tclcwjesPS",
2405 "HLT_xAOD__JetContainer_a10tclcwnojcalibPS",
2406 "HLT_xAOD__JetContainer_a10TTemnojcalibFS",
2407 "HLT_xAOD__JetContainer_a10TThadnojcalibFS",
2408 "HLT_xAOD__JetContainer_a10r_tcemsubjesFS",
2409 "HLT_xAOD__JetContainer_TrigHLTJetDSSelectorCollection"};
2410 float containerSizeParameter[30] = {0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4,
2411 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.4};
2412 int containerInputType[30] = {1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2,
2413 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 1, 1};
2414 int containerSignalState[30] = {0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1,
2415 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0};
2416 bool onefilled = false;
2417
2418 for (int icont=0; icont<30; ++icont) {
2419 //retrieve jet collection
2420 const xAOD::JetContainer* jetCont = 0;
2421 StatusCode sc = evtStore()->retrieve(jetCont, containerName[icont]) ;
2422
2423 if (sc.isFailure()) {
2424 ATH_MSG_WARNING("REGTEST Cannot retrieve jet container");
2425 continue;
2426 }
2427
2428 int jetContsize = jetCont->size();
2429 ATH_MSG_INFO("REGTEST Got jet container " << containerName[icont] << ", size: " << jetContsize);
2430 if (jetContsize != 0) {
2431 onefilled = true;
2432 int i = 0;
2433 for(const auto thisjet : *jetCont) {
2434 ++i;
2435 ATH_MSG_INFO( "REGTEST Looking at jet " << i);
2436 if (thisjet) {
2437 //checks jet variables
2438 ATH_MSG_DEBUG("REGTEST Checking jet variables");
2439 ATH_MSG_INFO( "REGTEST pt: " << thisjet->pt() );
2440 ATH_MSG_INFO( "REGTEST eta: " << thisjet->eta() );
2441 ATH_MSG_INFO( "REGTEST phi: " << thisjet->phi() );
2442 ATH_MSG_INFO( "REGTEST m: " << thisjet->m() );
2443 ATH_MSG_INFO( "REGTEST e: " << thisjet->e() );
2444 ATH_MSG_INFO( "REGTEST rapidity: " << thisjet->rapidity() );
2445 ATH_MSG_INFO( "REGTEST px: " << thisjet->px() );
2446 ATH_MSG_INFO( "REGTEST py: " << thisjet->py() );
2447 ATH_MSG_INFO( "REGTEST pz: " << thisjet->pz() );
2448 ATH_MSG_INFO( "REGTEST type: " << thisjet->type() );
2449 ATH_MSG_INFO( "REGTEST algorithm (kt: 0, cam: 1, antikt: 2, ...): " << thisjet->getAlgorithmType() << "; should be 2");
2450 if(thisjet->getAlgorithmType() != 2) ATH_MSG_WARNING("Jet algorithm different from container");
2451 ATH_MSG_INFO( "REGTEST size parameter: " << thisjet->getSizeParameter() << "; should be " << containerSizeParameter[icont]);
2452 if(thisjet->getSizeParameter() != containerSizeParameter[icont]) ATH_MSG_WARNING("Jet size different from container");
2453 ATH_MSG_INFO( "REGTEST input (LCTopo: 0, EMTopo: 1, TopoTower: 2, ...): " << thisjet->getInputType() << "; should be " << containerInputType[icont]);
2454 if(thisjet->getInputType() != containerInputType[icont]) ATH_MSG_WARNING("Jet input different from container");
2455 ATH_MSG_INFO( "REGTEST constituents signal state (uncalibrated: 0, calibrated: 1): " << thisjet->getConstituentsSignalState() << "; should be " << containerSignalState[icont]);
2456 if(thisjet->getConstituentsSignalState() != containerSignalState[icont]) ATH_MSG_WARNING("Jet constituents' signal state different from container");
2457 ATH_MSG_INFO( "REGTEST number of constituents: " << thisjet->numConstituents() );
2458
2459
2460 //checks the constituents
2461 ATH_MSG_DEBUG("REGTEST Checking jet constituents");
2462
2463 xAOD::JetConstituentVector constitCont = thisjet->getConstituents();
2464 unsigned int constitContsize = constitCont.size();
2465 ATH_MSG_INFO("REGTEST Got constituent vector, size: " << constitContsize << "; should be " << thisjet->numConstituents());
2466 if(constitContsize != thisjet->numConstituents()) ATH_MSG_WARNING("Constituents container size different from number of constituents");
2467
2468 if (constitContsize != 0) {
2469// int j = 0;
2470 // for (const auto thisconstit : constitCont) {
2471 // ++j;
2472 // ATH_MSG_INFO( "REGTEST Looking at constituent " << j);
2473 // if(thisconstit){
2474 // ATH_MSG_INFO( "REGTEST constituent pt: " << thisconstit->pt() );
2475 // ATH_MSG_INFO( "REGTEST constituent eta: " << thisconstit->eta() );
2476 // ATH_MSG_INFO( "REGTEST constituent phi: " << thisconstit->phi() );
2477 // ATH_MSG_INFO( "REGTEST constituent m: " << thisconstit->m() );
2478 // ATH_MSG_INFO( "REGTEST constituent e: " << thisconstit->e() );
2479 // ATH_MSG_INFO( "REGTEST constituent type (CaloCluster: 1, Jet: 2, ...): " << thisconstit->type() );
2480 // }
2481 // else{
2482 // ATH_MSG_WARNING("REGTEST Problem with constituent pointer");
2483 // return StatusCode::SUCCESS;
2484 // }
2485 // }
2486 // ATH_MSG_INFO("REGTEST size of constituent vector == number of displayed constituents: "<< (constitContsize == j) );
2487 // if (constitContsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2488 }
2489 // else ATH_MSG_WARNING("REGTEST This jet has 0 constituents!");
2490
2491 //checks int attributes
2492 ATH_MSG_DEBUG("REGTEST Checking int attributes");
2493 int valueint;
2494 if( thisjet->getAttribute(xAOD::JetAttribute::GhostMuonSegmentCount, valueint)) ATH_MSG_INFO("REGTEST GhostMuonSegmentCount: " << valueint);
2495 if( thisjet->getAttribute(xAOD::JetAttribute::GhostTrackCount, valueint)) ATH_MSG_INFO("REGTEST GhostTrackCount: " << valueint);
2496 if( thisjet->getAttribute(xAOD::JetAttribute::GhostTruthParticleCount, valueint)) ATH_MSG_INFO("REGTEST GhostTruthParticleCount: " << valueint);
2497 if( thisjet->getAttribute(xAOD::JetAttribute::FracSamplingMaxIndex, valueint)) ATH_MSG_INFO( "REGTEST FracSamplingMaxIndex: " << valueint);
2498
2499
2500 //checks float attributes
2501 ATH_MSG_DEBUG("REGTEST Checking float attributes");
2502 float value;
2503 if( thisjet->getAttribute(xAOD::JetAttribute::ActiveArea, value)) ATH_MSG_INFO( "REGTEST ActiveArea: " << value );
2504 // Four-vector type if( thisjet->getAttribute(xAOD::JetAttribute::ActiveArea4vec, value)) ATH_MSG_INFO( "REGTEST ActiveArea4vec: " << value );
2505 if( thisjet->getAttribute(xAOD::JetAttribute::AverageLArQF, value)) ATH_MSG_INFO( "REGTEST AverageLArQF: " << value );
2506 if( thisjet->getAttribute(xAOD::JetAttribute::BchCorrCell, value)) ATH_MSG_INFO( "REGTEST BchCorrCell: " << value );
2507 if( thisjet->getAttribute(xAOD::JetAttribute::BchCorrDotx, value)) ATH_MSG_INFO( "REGTEST BchCorrDotx: " << value );
2508 if( thisjet->getAttribute(xAOD::JetAttribute::BchCorrJet, value)) ATH_MSG_INFO( "REGTEST BchCorrJet: " << value );
2509 if( thisjet->getAttribute(xAOD::JetAttribute::BchCorrJetForCell, value)) ATH_MSG_INFO( "REGTEST BchCorrJetForCell: " << value );
2510 if( thisjet->getAttribute(xAOD::JetAttribute::CentroidR, value)) ATH_MSG_INFO( "REGTEST CentroidR: " << value );
2511 if( thisjet->getAttribute(xAOD::JetAttribute::HECQuality, value)) ATH_MSG_INFO( "REGTEST HECQuality: " << value );
2512 if( thisjet->getAttribute(xAOD::JetAttribute::IsoKR20Par, value)) ATH_MSG_INFO( "REGTEST IsoKR20Par: " << value );
2513 if( thisjet->getAttribute(xAOD::JetAttribute::IsoKR20Perp, value)) ATH_MSG_INFO( "REGTEST IsoKR20Perp: " << value );
2514 // ElementLink<DataVector<xAOD::Vertex> > type if( thisjet->getAttribute(xAOD::JetAttribute::HighestJVFVtx, value)) ATH_MSG_INFO( "REGTEST HighestJVFVtx: " << value );
2515 // ??? type if( thisjet->getAttribute(xAOD::JetAttribute::JetLabel, value)) ATH_MSG_INFO( "REGTEST JetLabel: " << value );
2516 if( thisjet->getAttribute(xAOD::JetAttribute::KtDR, value)) ATH_MSG_INFO( "REGTEST KtDR: " << value );
2517 if( thisjet->getAttribute(xAOD::JetAttribute::LArBadHVEnergy, value)) ATH_MSG_INFO( "REGTEST LArBadHVEnergy: " << value );
2518 if( thisjet->getAttribute(xAOD::JetAttribute::LArBadHVRatio, value)) ATH_MSG_INFO( "REGTEST LArBadHVRatio: " << value );
2519 if( thisjet->getAttribute(xAOD::JetAttribute::LArQuality, value)) ATH_MSG_INFO( "REGTEST LArQuality: " << value );
2520 if( thisjet->getAttribute(xAOD::JetAttribute::NegativeE, value)) ATH_MSG_INFO( "REGTEST NegativeE: " << value );
2521 // no tools available yet if( thisjet->getAttribute(xAOD::JetAttribute::NumTowers, value)) ATH_MSG_INFO( "REGTEST NumTowers: " << value );
2522 if( thisjet->getAttribute(xAOD::JetAttribute::SamplingMax, value)) ATH_MSG_INFO( "REGTEST SamplingMax: " << value );
2523 if( thisjet->getAttribute(xAOD::JetAttribute::Timing, value)) ATH_MSG_INFO( "REGTEST Timing: " << value );
2524 if( thisjet->getAttribute(xAOD::JetAttribute::VoronoiArea, value)) ATH_MSG_INFO( "REGTEST VoronoiArea: " << value );
2525 if( thisjet->getAttribute(xAOD::JetAttribute::VoronoiAreaE, value)) ATH_MSG_INFO( "REGTEST VoronoiAreaE: " << value );
2526 if( thisjet->getAttribute(xAOD::JetAttribute::VoronoiAreaPx, value)) ATH_MSG_INFO( "REGTEST VoronoiAreaPx: " << value );
2527 if( thisjet->getAttribute(xAOD::JetAttribute::VoronoiAreaPy, value)) ATH_MSG_INFO( "REGTEST VoronoiAreaPy: " << value );
2528 if( thisjet->getAttribute(xAOD::JetAttribute::VoronoiAreaPz, value)) ATH_MSG_INFO( "REGTEST VoronoiAreaPz: " << value );
2529 if( thisjet->getAttribute(xAOD::JetAttribute::Width, value)) ATH_MSG_INFO( "REGTEST WIDTH: " << value );
2530 if( thisjet->getAttribute(xAOD::JetAttribute::FracSamplingMax, value)) ATH_MSG_INFO( "REGTEST FracSamplingMax: " << value );
2531 if( thisjet->getAttribute(xAOD::JetAttribute::EMFrac, value)) ATH_MSG_INFO( "REGTEST EMFrac: " << value );
2532 if( thisjet->getAttribute(xAOD::JetAttribute::HECFrac, value)) ATH_MSG_INFO( "REGTEST HECFrac: " << value );
2533 if( thisjet->getAttribute(xAOD::JetAttribute::isBadLoose, value)) ATH_MSG_INFO( "REGTEST isBadLoose: " << value );
2534 if( thisjet->getAttribute(xAOD::JetAttribute::isBadMedium, value)) ATH_MSG_INFO( "REGTEST isBadMedium: " << value );
2535 if( thisjet->getAttribute(xAOD::JetAttribute::isBadTight, value)) ATH_MSG_INFO( "REGTEST isBadTight: " << value );
2536 // unknown attribute if( thisjet->getAttribute(xAOD::JetAttribute::isUgly, value)) ATH_MSG_INFO( "REGTEST isUgly: " << value );
2537 if( thisjet->getAttribute(xAOD::JetAttribute::N90Constituents, value)) ATH_MSG_INFO( "REGTEST N90Constituents: " << value );
2538 if( thisjet->getAttribute(xAOD::JetAttribute::N90Cells, value)) ATH_MSG_INFO( "REGTEST N90Cells: " << value );
2539 if( thisjet->getAttribute(xAOD::JetAttribute::OotFracClusters10, value)) ATH_MSG_INFO( "REGTEST OotFracClusters10: " << value );
2540 if( thisjet->getAttribute(xAOD::JetAttribute::OotFracClusters5, value)) ATH_MSG_INFO( "REGTEST OotFracClusters5: " << value );
2541 if( thisjet->getAttribute(xAOD::JetAttribute::OotFracCells5, value)) ATH_MSG_INFO( "REGTEST OotFracCells5: " << value );
2542 if( thisjet->getAttribute(xAOD::JetAttribute::OotFracCells10, value)) ATH_MSG_INFO( "REGTEST OotFracCells10: " << value );
2543 if( thisjet->getAttribute(xAOD::JetAttribute::PtTruth, value)) ATH_MSG_INFO( "REGTEST PtTruth: " << value );
2544 if( thisjet->getAttribute(xAOD::JetAttribute::Tau1, value)) ATH_MSG_INFO( "REGTEST Tau1: " << value );
2545 if( thisjet->getAttribute(xAOD::JetAttribute::Tau2, value)) ATH_MSG_INFO( "REGTEST Tau2: " << value );
2546 if( thisjet->getAttribute(xAOD::JetAttribute::Tau3, value)) ATH_MSG_INFO( "REGTEST Tau3: " << value );
2547 // unknown attribute if( thisjet->getAttribute(xAOD::JetAttribute::Split12, value)) ATH_MSG_INFO( "REGTEST Split12: " << value );
2548 // unknown attribute if( thisjet->getAttribute(xAOD::JetAttribute::Split23, value)) ATH_MSG_INFO( "REGTEST Split23: " << value );
2549 // unknown attribute if( thisjet->getAttribute(xAOD::JetAttribute::Split34, value)) ATH_MSG_INFO( "REGTEST Split34: " << value );
2550 if( thisjet->getAttribute(xAOD::JetAttribute::Dip12, value)) ATH_MSG_INFO( "REGTEST Dip12: " << value );
2551 if( thisjet->getAttribute(xAOD::JetAttribute::Dip13, value)) ATH_MSG_INFO( "REGTEST Dip13: " << value );
2552 if( thisjet->getAttribute(xAOD::JetAttribute::Dip23, value)) ATH_MSG_INFO( "REGTEST Dip23: " << value );
2553 if( thisjet->getAttribute(xAOD::JetAttribute::DipExcl12, value)) ATH_MSG_INFO( "REGTEST DipExcl12: " << value );
2554 if( thisjet->getAttribute(xAOD::JetAttribute::ThrustMin, value)) ATH_MSG_INFO( "REGTEST ThrustMin: " << value );
2555 if( thisjet->getAttribute(xAOD::JetAttribute::ThrustMaj, value)) ATH_MSG_INFO( "REGTEST ThrustMaj: " << value );
2556 if( thisjet->getAttribute(xAOD::JetAttribute::FoxWolfram0, value)) ATH_MSG_INFO( "REGTEST FoxWolfram0: " << value );
2557 if( thisjet->getAttribute(xAOD::JetAttribute::FoxWolfram1, value)) ATH_MSG_INFO( "REGTEST FoxWolfram1: " << value );
2558 if( thisjet->getAttribute(xAOD::JetAttribute::FoxWolfram2, value)) ATH_MSG_INFO( "REGTEST FoxWolfram2: " << value );
2559 if( thisjet->getAttribute(xAOD::JetAttribute::FoxWolfram3, value)) ATH_MSG_INFO( "REGTEST FoxWolfram3: " << value );
2560 if( thisjet->getAttribute(xAOD::JetAttribute::FoxWolfram4, value)) ATH_MSG_INFO( "REGTEST FoxWolfram4: " << value );
2561 if( thisjet->getAttribute(xAOD::JetAttribute::Sphericity, value)) ATH_MSG_INFO( "REGTEST Sphericity: " << value );
2562 if( thisjet->getAttribute(xAOD::JetAttribute::Aplanarity, value)) ATH_MSG_INFO( "REGTEST Aplanarity: " << value );
2563
2564 //checks vector<int> attributes
2565 ATH_MSG_DEBUG("REGTEST Checking vector<int> attributes");
2566 std::vector<int> vecvalueint;
2567 if (thisjet->getAttribute(xAOD::JetAttribute::NumTrkPt1000, vecvalueint)) {
2568 int vecsize = vecvalueint.size();
2569 ATH_MSG_INFO("REGTEST Got NumTrkPt1000 vector, size: " << vecsize);
2570 if (vecsize != 0) {
2571 int j = 0;
2572 for(const auto & thisvalue : vecvalueint){
2573 ++j;
2574 ATH_MSG_INFO("REGTEST NumTrkPt1000 #" << j << ": " << thisvalue);
2575 }
2576 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2577 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2578 }
2579 }
2580 if (thisjet->getAttribute(xAOD::JetAttribute::NumTrkPt500, vecvalueint)) {
2581 int vecsize = vecvalueint.size();
2582 ATH_MSG_INFO("REGTEST Got Got NumTrkPt500 vector, size: " << vecsize);
2583 if (vecsize != 0) {
2584 int j = 0;
2585 for(const auto & thisvalue : vecvalueint){
2586 ++j;
2587 ATH_MSG_INFO("REGTEST NumTrkPt500 #" << j << ": " << thisvalue);
2588 }
2589 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2590 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2591 }
2592 }
2593
2594 //checks vector<float> attributes
2595 ATH_MSG_DEBUG("REGTEST Checking vector<float> attributes");
2596 std::vector<float> vecvalue;
2597 if (thisjet->getAttribute(xAOD::JetAttribute::JVF, vecvalue)) {
2598 int vecsize = vecvalue.size();
2599 ATH_MSG_INFO("REGTEST Got JVF vector, size: " << vecsize);
2600 if (vecsize != 0) {
2601 int j = 0;
2602 for(const auto & thisvalue : vecvalue){
2603 ++j;
2604 ATH_MSG_INFO("REGTEST JVF #" << j << ": " << thisvalue);
2605 }
2606 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2607 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2608 }
2609 }
2610 if (thisjet->getAttribute(xAOD::JetAttribute::SumPtTrkPt1000, vecvalue)) {
2611 int vecsize = vecvalue.size();
2612 ATH_MSG_INFO("REGTEST Got SumPtTrkPt1000 vector, size: " << vecsize);
2613 if (vecsize != 0) {
2614 int j = 0;
2615 for(const auto & thisvalue : vecvalue){
2616 ++j;
2617 ATH_MSG_INFO("REGTEST SumPtTrkPt1000 #" << j << ": " << thisvalue);
2618 }
2619 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2620 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2621 }
2622 }
2623 if (thisjet->getAttribute(xAOD::JetAttribute::SumPtTrkPt500, vecvalue)) {
2624 int vecsize = vecvalue.size();
2625 ATH_MSG_INFO("REGTEST Got SumPtTrkPt500 vector, size: " << vecsize);
2626 if (vecsize != 0) {
2627 int j = 0;
2628 for(const auto & thisvalue : vecvalue){
2629 ++j;
2630 ATH_MSG_INFO("REGTEST SumPtTrkPt500 #" << j << ": " << thisvalue);
2631 }
2632 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2633 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2634 }
2635 }
2636 if (thisjet->getAttribute(xAOD::JetAttribute::TrackWidthPt1000, vecvalue)) {
2637 int vecsize = vecvalue.size();
2638 ATH_MSG_INFO("REGTEST Got TrackWidthPt1000 vector, size: " << vecsize);
2639 if (vecsize != 0) {
2640 int j = 0;
2641 for(const auto & thisvalue : vecvalue){
2642 ++j;
2643 ATH_MSG_INFO("REGTEST TrackWidthPt1000 #" << j << ": " << thisvalue);
2644 }
2645 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2646 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2647 }
2648 }
2649 if (thisjet->getAttribute(xAOD::JetAttribute::TrackWidthPt500, vecvalue)) {
2650 int vecsize = vecvalue.size();
2651 ATH_MSG_INFO("REGTEST Got TrackWidthPt500 vector, size: " << vecsize);
2652 if (vecsize != 0) {
2653 int j = 0;
2654 for(const auto & thisvalue : vecvalue){
2655 ++j;
2656 ATH_MSG_INFO("REGTEST TrackWidthPt500 #" << j << ": " << thisvalue);
2657 }
2658 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2659 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2660 }
2661 }
2662 if (thisjet->getAttribute(xAOD::JetAttribute::EnergyPerSampling, vecvalue)) {
2663 int vecsize = vecvalue.size();
2664 ATH_MSG_INFO("REGTEST Got EnergyPerSampling vector, size: " << vecsize);
2665 if (vecsize != 0) {
2666 int j = 0;
2667 for(const auto & thisvalue : vecvalue){
2668 ++j;
2669 ATH_MSG_INFO("REGTEST EnergyPerSampling #" << j << ": " << thisvalue);
2670 }
2671 ATH_MSG_INFO("REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
2672 if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this attribute");
2673 }
2674 }
2675
2676
2677 //checks associated objects
2678 // ATH_MSG_DEBUG("REGTEST Checking associated objects");
2679 // std::vector<const xAOD::TrackParticle*> track;
2680 // if( thisjet->getAssociatedObjects(xAOD::JetAttribute::GhostTrack, track) ){
2681 // int vecsize = track.size();
2682 // ATH_MSG_INFO("REGTEST Got GhostTrack vector, size: " << vecsize);
2683 // if (vecsize != 0) {
2684 // int j = 0;
2685 // for(const auto & thistrack : track){
2686 // ++j;
2687 // //checks only one associated variable, just making sure getting the object worked
2688 // if (thistrack) ATH_MSG_INFO("REGTEST z0 for GhostTrack #" << j << ": " << thistrack->z0());
2689 // else{
2690 // ATH_MSG_WARNING("REGTEST Problem with attribute pointer");
2691 // return StatusCode::SUCCESS;
2692 // }
2693 // }
2694 // ATH_MSG_INFO("REGTEST size of associated object vector == number of displayed attributes: " << (vecsize == j) );
2695 // if (vecsize != j) ATH_MSG_WARNING("REGTEST Problem with displaying this associated object");
2696 // }
2697 // }
2698 }
2699 else{
2700 ATH_MSG_WARNING("REGTEST Problem with jet pointer");
2701 return StatusCode::SUCCESS;
2702 }
2703 }
2704
2705 if (jetContsize == i) ATH_MSG_INFO("REGTEST size of jet container == number of displayed jets: " << (jetContsize == i) );
2706 else ATH_MSG_WARNING("REGTEST Problem with displaying jets");
2707 }
2708 }
2709
2710 if (!onefilled) ATH_MSG_DEBUG("There was no filled jet containers");
2711
2712 ATH_MSG_INFO("REGTEST ==========END of xAOD::JetContainer DUMP===========");
2713
2714 ATH_MSG_DEBUG("leaving dumpxAODJetContainer()");
2715
2716 return StatusCode::SUCCESS;
2717}
2718
2719
2721
2722StatusCode TrigEDMChecker::dumpTrigEFBjetContainer ATLAS_NOT_THREAD_SAFE() {
2723
2724 ATH_MSG_DEBUG("in dumpTrigEFBjetContainer()");
2725 ATH_MSG_INFO("REGTEST ==========START of TrigEFBjetContainer DUMP===========");
2726
2729
2730 StatusCode sc = evtStore()->retrieve(trigEFBjet,lastTrigEFBjet);
2731 if (sc.isFailure()) {
2732 ATH_MSG_INFO("REGTEST No TrigEFBjetContainer found");
2733 return StatusCode::SUCCESS;
2734 }
2735 ATH_MSG_INFO("REGTEST TrigEFBjetContainers retrieved");
2736
2737
2738 for (int i=0; trigEFBjet != lastTrigEFBjet; ++trigEFBjet, ++i) {
2739
2740 ATH_MSG_INFO("REGTEST Looking at TrigEFBjetContainer " << i);
2741
2742 TrigEFBjetContainer::const_iterator EFBjetItr = trigEFBjet->begin();
2743 TrigEFBjetContainer::const_iterator EFBjetItrE = trigEFBjet->end();
2744
2745 for (int j=0; EFBjetItr != EFBjetItrE; ++EFBjetItr, ++j ) {
2746
2747 ATH_MSG_INFO("REGTEST Looking at TrigEFBjet " << j);
2748
2749 ATH_MSG_INFO("REGTEST TrigEFBjet->prmVtx() returns " << (*EFBjetItr)->prmVtx());
2750 ATH_MSG_INFO("REGTEST TrigEFBjet->xComb() returns " << (*EFBjetItr)->xComb());
2751 // mLog <<MSG::INFO << "REGTEST TrigEFBjet->x2D() returns " << (*EFBjetItr)->x2D() << endmsg;
2752 ATH_MSG_INFO("REGTEST TrigEFBjet->xIP1D() returns " << (*EFBjetItr)->xIP1D());
2753 ATH_MSG_INFO("REGTEST TrigEFBjet->isValid() returns " << (*EFBjetItr)->isValid());
2754 ATH_MSG_INFO("REGTEST TrigEFBjet->roiId() returns " << (*EFBjetItr)->roiId());
2755 // mLog <<MSG::INFO << "REGTEST TrigEFBjet->xD0() returns " << (*EFBjetItr)->xD0() << endmsg;
2756 ATH_MSG_INFO("REGTEST TrigEFBjet->xIP2D() returns " << (*EFBjetItr)->xIP2D());
2757 // mLog <<MSG::INFO << "REGTEST TrigEFBjet->xZ0() returns " << (*EFBjetItr)->xZ0() << endmsg;
2758 ATH_MSG_INFO("REGTEST TrigEFBjet->xIP3D() returns " << (*EFBjetItr)->xIP3D());
2759 // new one:
2760 ATH_MSG_INFO("REGTEST TrigEFBjet->xCHI2() returns " << (*EFBjetItr)->xCHI2());
2761 // mLog <<MSG::INFO << "REGTEST TrigEFBjet->x3D() returns " << (*EFBjetItr)->x3D() << endmsg; // replaced by :
2762 ATH_MSG_INFO("REGTEST TrigEFBjet->xSV() returns " << (*EFBjetItr)->xSV());
2763 //
2764 ATH_MSG_INFO("REGTEST TrigEFBjet->xMVtx() returns " << (*EFBjetItr)->xMVtx());
2765 ATH_MSG_INFO("REGTEST TrigEFBjet->xEVtx() returns " << (*EFBjetItr)->xEVtx());
2766 ATH_MSG_INFO("REGTEST TrigEFBjet-> xNVtx() returns " << (*EFBjetItr)-> xNVtx());
2767 }
2768 }
2769 ATH_MSG_INFO("REGTEST ==========END of TrigEFBjetContainer DUMP===========");
2770 ATH_MSG_DEBUG("dumpTrigEFBjetContainer() succeeded");
2771
2772 return StatusCode::SUCCESS;
2773}
2774
2775
2777
2778StatusCode TrigEDMChecker::dumpTrigL2BjetContainer ATLAS_NOT_THREAD_SAFE() {
2779
2780 ATH_MSG_DEBUG("in dumpTrigL2BjetContainer()");
2781 ATH_MSG_INFO("REGTEST ==========START of TrigL2BjetContainer DUMP===========");
2782
2785
2786 StatusCode sc = evtStore()->retrieve(trigL2Bjet,lastTrigL2Bjet);
2787 if (sc.isFailure()) {
2788 ATH_MSG_INFO("REGTEST No TrigL2BjetContainer found");
2789 return StatusCode::SUCCESS;
2790 }
2791 ATH_MSG_INFO("REGTEST TrigL2BjetContainers retrieved");
2792
2793
2794 for (int i=0; trigL2Bjet != lastTrigL2Bjet; ++trigL2Bjet, ++i) {
2795
2796 ATH_MSG_INFO("REGTEST Looking at TrigL2BjetContainer " << i);
2797
2798 TrigL2BjetContainer::const_iterator L2BjetItr = trigL2Bjet->begin();
2799 TrigL2BjetContainer::const_iterator L2BjetItrE = trigL2Bjet->end();
2800
2801 for (int j=0; L2BjetItr != L2BjetItrE; ++L2BjetItr, ++j ) {
2802
2803 ATH_MSG_INFO("REGTEST Looking at TrigL2Bjet " << j);
2804 ATH_MSG_INFO("REGTEST TrigL2Bjet->prmVtx() returns " << (*L2BjetItr)->prmVtx());
2805 ATH_MSG_INFO("REGTEST TrigL2Bjet->xComb() returns " << (*L2BjetItr)->xComb());
2806 // ATH_MSG_INFO("REGTEST TrigL2Bjet->x2D() returns " << (*L2BjetItr)->x2D());
2807 ATH_MSG_INFO("REGTEST TrigL2Bjet->xIP1D() returns " << (*L2BjetItr)->xIP1D());
2808 ATH_MSG_INFO("REGTEST TrigL2Bjet->isValid() returns " << (*L2BjetItr)->isValid());
2809 ATH_MSG_INFO("REGTEST TrigL2Bjet->roiId() returns " << (*L2BjetItr)->roiId());
2810 // ATH_MSG_INFO("REGTEST TrigL2Bjet->xD0() returns " << (*L2BjetItr)->xD0());
2811 ATH_MSG_INFO("REGTEST TrigL2Bjet->xIP2D() returns " << (*L2BjetItr)->xIP2D());
2812 // ATH_MSG_INFO("REGTEST TrigL2Bjet->xZ0() returns " << (*L2BjetItr)->xZ0());
2813 ATH_MSG_INFO("REGTEST TrigL2Bjet->xIP3D() returns " << (*L2BjetItr)->xIP3D());
2814 // new one:
2815 ATH_MSG_INFO("REGTEST TrigL2Bjet->xCHI2() returns " << (*L2BjetItr)->xCHI2());
2816 // ATH_MSG_INFO("REGTEST TrigL2Bjet->x3D() returns " << (*L2BjetItr)->x3D());
2817 ATH_MSG_INFO("REGTEST TrigL2Bjet->xSV() returns " << (*L2BjetItr)->xSV());
2818 ATH_MSG_INFO("REGTEST TrigL2Bjet->xMVtx() returns " << (*L2BjetItr)->xMVtx());
2819 ATH_MSG_INFO("REGTEST TrigL2Bjet->xEVtx() returns " << (*L2BjetItr)->xEVtx());
2820 ATH_MSG_INFO("REGTEST TrigL2Bjet-> xNVtx() returns " << (*L2BjetItr)-> xNVtx());
2821 }
2822 }
2823 ATH_MSG_INFO("REGTEST ==========END of TrigL2BjetContainer DUMP===========");
2824 ATH_MSG_DEBUG("dumpTrigL2BjetContainer() succeeded");
2825
2826 return StatusCode::SUCCESS;
2827}
2828
2830
2831StatusCode TrigEDMChecker::dumpMuonFeature ATLAS_NOT_THREAD_SAFE() {
2832
2833 ATH_MSG_DEBUG("in dumpMuonFeature()");
2834
2835 ATH_MSG_INFO("REGTEST ==========START of MuonFeature DUMP===========");
2836
2839
2840 StatusCode sc = evtStore()->retrieve(MuFeature,lastMuFeature);
2841 if (sc.isFailure()) {
2842 ATH_MSG_INFO("REGTEST No MuonFeature found");
2843 return StatusCode::SUCCESS;
2844 }
2845 ATH_MSG_INFO("REGTEST MuonFeature retrieved");
2846
2847
2848 for (int i=0; MuFeature != lastMuFeature; ++MuFeature, ++i) {
2849
2850 const MuonFeature* thisMuFeature = &(*MuFeature);
2851
2852 ATH_MSG_INFO("REGTEST Looking at MuonFeature " << i);
2853 ATH_MSG_INFO("REGTEST MuonFeature->roiId() returns " << thisMuFeature->roiId());
2854 ATH_MSG_INFO("REGTEST MuonFeature->eta() returns " << thisMuFeature->eta());
2855 ATH_MSG_INFO("REGTEST MuonFeature->phi() returns " << thisMuFeature->phi());
2856 ATH_MSG_INFO("REGTEST MuonFeature->saddress() returns " << thisMuFeature->saddress());
2857 ATH_MSG_INFO("REGTEST MuonFeature->pt() returns " << thisMuFeature->pt());
2858 ATH_MSG_INFO("REGTEST MuonFeature->radius() returns " << thisMuFeature->radius());
2859 ATH_MSG_INFO("REGTEST MuonFeature->dir_phi() returns " << thisMuFeature->dir_phi());
2860 ATH_MSG_INFO("REGTEST MuonFeature->zeta() returns " << thisMuFeature->zeta());
2861 ATH_MSG_INFO("REGTEST MuonFeature->dir_zeta() returns " << thisMuFeature->dir_zeta());
2862 ATH_MSG_INFO("REGTEST MuonFeature->beta() returns " << thisMuFeature->beta());
2863 }
2864
2865 ATH_MSG_INFO("REGTEST ==========END of MuonFeature DUMP===========");
2866 ATH_MSG_DEBUG("dumpMuonFeature() succeeded");
2867
2868 return StatusCode::SUCCESS;
2869}
2870
2872
2873StatusCode TrigEDMChecker::dumpCombinedMuonFeature ATLAS_NOT_THREAD_SAFE() {
2874
2875 ATH_MSG_DEBUG("in dumpCombinedMuonFeature()");
2876
2877 ATH_MSG_INFO("REGTEST ==========START of CombinedMuonFeature DUMP===========");
2878
2881
2882 StatusCode sc = evtStore()->retrieve(CombMuon,lastCombMuon);
2883 if (sc.isFailure()) {
2884 ATH_MSG_INFO("REGTEST No CombinedMuonFeature found");
2885 return StatusCode::SUCCESS;
2886 }
2887 ATH_MSG_INFO("REGTEST CombinedMuonFeatures retrieved");
2888
2889 for (int i=0; CombMuon != lastCombMuon; ++CombMuon, ++i) {
2890
2891 const CombinedMuonFeature* thisCombMuFeature = &(*CombMuon);
2892
2893 ATH_MSG_INFO("REGTEST Looking at CombinedMuonFeature " << i);
2894 ATH_MSG_INFO("REGTEST TrigPhoton->pt() returns " << (thisCombMuFeature)->pt());
2895 ATH_MSG_INFO("REGTEST TrigPhoton->sigma_pt() returns " << (thisCombMuFeature)->sigma_pt());
2896 ATH_MSG_INFO("REGTEST MuonFeature info: ");
2897 // if ((thisCombMuFeature)->muFastTrack()) {
2898 if ((thisCombMuFeature)->muFastTrackLink().isValid() ) {
2899 ATH_MSG_INFO("REGTEST muFastTrack->eta() returns " << (thisCombMuFeature)->muFastTrack()->eta());
2900 ATH_MSG_INFO("REGTEST muFastTrack->phi() returns " << (thisCombMuFeature)->muFastTrack()->phi());
2901 ATH_MSG_INFO("REGTEST muFastTrack->radius() returns " << (thisCombMuFeature)->muFastTrack()->radius());
2902 ATH_MSG_INFO("REGTEST muFastTrack->zeta() returns " << (thisCombMuFeature)->muFastTrack()->zeta());
2903 } else {
2904 ATH_MSG_INFO("CombinedMuonFeature has no muFastTrack" );
2905 }
2906
2907 ATH_MSG_INFO("REGTEST TrigInDetTrack info: ");
2908 // if ((thisCombMuFeature)->IDTrack()) {
2909 if ((thisCombMuFeature)->IDTrackLink().isValid() ) {
2910 ATH_MSG_INFO("REGTEST IDTrack->algorithmId() returns " <<(thisCombMuFeature)->IDTrack()->algorithmId());
2911 ATH_MSG_INFO("REGTEST IDTrack->chi2() returns " << (thisCombMuFeature)->IDTrack()->chi2());
2912 ATH_MSG_INFO("REGTEST IDTrack->NStrawHits() returns " <<(thisCombMuFeature)->IDTrack()->NStrawHits());
2913 ATH_MSG_INFO("REGTEST IDTrack->NStraw() returns " << (thisCombMuFeature)->IDTrack()->NStraw());
2914 ATH_MSG_INFO("REGTEST IDTrack->NStrawTime() returns " <<(thisCombMuFeature)->IDTrack()->NStrawTime());
2915 ATH_MSG_INFO("REGTEST IDTrack->NTRHits() returns " <<(thisCombMuFeature)->IDTrack()->NTRHits());
2916 } else {
2917 ATH_MSG_INFO("CombinedMuonFeature has no IDTrack" );
2918 }
2919
2920 }
2921
2922 ATH_MSG_INFO("REGTEST ==========END of CombinedMuonFeature DUMP===========");
2923 ATH_MSG_DEBUG("dumpCombinedMuonFeature() succeeded");
2924
2925 return StatusCode::SUCCESS;
2926}
2927
2928StatusCode TrigEDMChecker::dumpCombinedMuonFeatureContainer ATLAS_NOT_THREAD_SAFE() {
2929
2930 ATH_MSG_DEBUG("in dumpCombinedMuonFeatureContainer()");
2931 ATH_MSG_INFO("REGTEST ==========START of CombinedMuonFeatureContainer DUMP===========");
2932
2935
2936 StatusCode sc = evtStore()->retrieve(CombMuon,lastCombMuon);
2937 if (sc.isFailure()) {
2938 ATH_MSG_INFO("REGTEST No CombinedMuonFeatureContainer found");
2939 return StatusCode::SUCCESS;
2940 }
2941 ATH_MSG_INFO("REGTEST CombinedMuonFeaturesContainer retrieved");
2942
2943 for (int j=0; CombMuon != lastCombMuon; ++CombMuon, ++j) {
2944 ATH_MSG_INFO("REGTEST Looking at CombinedMuonFeatureContainer " << j);
2945
2946 const CombinedMuonFeatureContainer* container = &(*CombMuon);
2948
2949 int i = 0;
2950 for ( muon = container->begin() ; muon != container->end(); ++i, ++muon ) {
2951 const CombinedMuonFeature* thisCombMuFeature = *muon;
2952 ATH_MSG_INFO("REGTEST Looking at CombinedMuonFeature " << i);
2953
2954 ATH_MSG_INFO("REGTEST CombinedMuonFeature->pt() returns " << (thisCombMuFeature)->pt());
2955 ATH_MSG_INFO("REGTEST CombinedMuonFeature->sigma_pt() returns " << (thisCombMuFeature)->sigma_pt());
2956
2957 ATH_MSG_INFO("REGTEST MuonFeature info: ");
2958 if ( thisCombMuFeature->muFastTrackLink().isValid() ) {
2959 ATH_MSG_INFO("REGTEST muFastTrack->eta() returns " << (thisCombMuFeature)->muFastTrack()->eta());
2960 ATH_MSG_INFO("REGTEST muFastTrack->phi() returns " << (thisCombMuFeature)->muFastTrack()->phi());
2961 ATH_MSG_INFO("REGTEST muFastTrack->radius() returns " << (thisCombMuFeature)->muFastTrack()->radius());
2962 ATH_MSG_INFO("REGTEST muFastTrack->zeta() returns " << (thisCombMuFeature)->muFastTrack()->zeta());
2963 } else {
2964 ATH_MSG_WARNING("MuonFeature has no muFastTrack!" );
2965 }
2966
2967 ATH_MSG_INFO("REGTEST TrigInDetTrack info: ");
2968 if ( thisCombMuFeature->IDTrackLink().isValid() ) {
2969 ATH_MSG_INFO("REGTEST IDTrack->algorithmId() returns " <<(thisCombMuFeature)->IDTrack()->algorithmId());
2970 ATH_MSG_INFO("REGTEST IDTrack->chi2() returns " << (thisCombMuFeature)->IDTrack()->chi2());
2971 ATH_MSG_INFO("REGTEST IDTrack->NStrawHits() returns " <<(thisCombMuFeature)->IDTrack()->NStrawHits());
2972
2973 ATH_MSG_INFO("REGTEST IDTrack->NStraw() returns " << (thisCombMuFeature)->IDTrack()->NStraw());
2974 ATH_MSG_INFO("REGTEST IDTrack->NStrawTime() returns " <<(thisCombMuFeature)->IDTrack()->NStrawTime());
2975 ATH_MSG_INFO("REGTEST IDTrack->NTRHits() returns " <<(thisCombMuFeature)->IDTrack()->NTRHits());
2976 } else {
2977 ATH_MSG_WARNING("MuonFeature has no IDTrack!" );
2978 }
2979
2980 }
2981 }
2982 return StatusCode::SUCCESS;
2983}
2984
2986
2987StatusCode TrigEDMChecker::dumpTrigEMCluster ATLAS_NOT_THREAD_SAFE() {
2988
2989 ATH_MSG_DEBUG("in dumpTrigEMCluster()");
2990 ATH_MSG_INFO("REGTEST ==========START of TrigEMCluster DUMP===========");
2991
2994
2995 StatusCode sc = evtStore()->retrieve(EMCluster,lastEMCluster);
2996 if (sc.isFailure()) {
2997 ATH_MSG_INFO("REGTEST No TrigEMCluster found");
2998 return StatusCode::SUCCESS;
2999 }
3000 ATH_MSG_INFO("REGTEST TrigEMCluster retrieved");
3001
3002 for (int i=0; EMCluster != lastEMCluster; ++EMCluster, ++i) {
3003
3004 const TrigEMCluster* thisEMCluster = &(*EMCluster);
3005
3006 ATH_MSG_INFO("REGTEST Looking at TrigEMCluster " << i);
3007
3008 ATH_MSG_INFO("REGTEST TrigEMCluster->energy() returns " << thisEMCluster->energy());
3009 ATH_MSG_INFO("REGTEST TrigEMCluster->e() returns " << thisEMCluster->e());
3010 ATH_MSG_INFO("REGTEST TrigEMCluster->phi() returns " << thisEMCluster->phi());
3011
3012 ATH_MSG_INFO("REGTEST TrigEMCluster->eta() returns " << thisEMCluster->eta());
3013 ATH_MSG_INFO("REGTEST TrigEMCluster->e237() returns " << thisEMCluster->e237());
3014 ATH_MSG_INFO("REGTEST TrigEMCluster->e277() returns " << thisEMCluster->e277());
3015 ATH_MSG_INFO("REGTEST TrigEMCluster->fracs1() returns " << thisEMCluster->fracs1());
3016 ATH_MSG_INFO("REGTEST TrigEMCluster->weta2() returns " << thisEMCluster->weta2());
3017 ATH_MSG_INFO("REGTEST TrigEMCluster->ehad1() returns " << thisEMCluster->ehad1());
3018 ATH_MSG_INFO("REGTEST TrigEMCluster->Eta1() returns " << thisEMCluster->Eta1());
3019 }
3020
3021 ATH_MSG_INFO("REGTEST ==========END of TrigEMCluster DUMP===========");
3022 ATH_MSG_DEBUG("dumpTrigEMCluster() succeeded");
3023
3024 return StatusCode::SUCCESS;
3025}
3026
3027StatusCode TrigEDMChecker::dumpxAODTrigEMCluster ATLAS_NOT_THREAD_SAFE() {
3028
3029 ATH_MSG_DEBUG("in dumpxAODTrigEMCluster()");
3030
3031 ATH_MSG_INFO("REGTEST ==========START of TrigEMCluster DUMP===========");
3032
3035
3036 StatusCode sc = evtStore()->retrieve(EMCluster,lastEMCluster);
3037 if (sc.isFailure()) {
3038 ATH_MSG_INFO("REGTEST No xAOD::TrigEMCluster found");
3039 return StatusCode::SUCCESS;
3040 }
3041 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster retrieved");
3042
3043
3044 for (int i=0; EMCluster != lastEMCluster; ++EMCluster, ++i) {
3045
3046 const xAOD::TrigEMCluster* thisEMCluster = &(*EMCluster);
3047
3048 ATH_MSG_INFO("REGTEST Looking at xAOD::TrigEMCluster " << i);
3049
3050 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->energy() returns " << thisEMCluster->energy());
3051 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->e() returns " << thisEMCluster->energy());
3052 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->phi() returns " << thisEMCluster->phi());
3053
3054 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->eta() returns " << thisEMCluster->eta());
3055 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->e237() returns " << thisEMCluster->e237());
3056 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->e277() returns " << thisEMCluster->e277());
3057 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->fracs1() returns " << thisEMCluster->fracs1());
3058 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->weta2() returns " << thisEMCluster->weta2());
3059 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->ehad1() returns " << thisEMCluster->ehad1());
3060 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->Eta1() returns " << thisEMCluster->eta1());
3061 }
3062
3063 ATH_MSG_INFO("REGTEST ==========END of xAOD::TrigEMCluster DUMP===========");
3064 ATH_MSG_DEBUG("dumpxAODTrigEMCluster() succeeded");
3065
3066 return StatusCode::SUCCESS;
3067}
3068
3070
3071StatusCode TrigEDMChecker::dumpTrigTauClusterContainer ATLAS_NOT_THREAD_SAFE() {
3072
3073 ATH_MSG_DEBUG("in dumpTrigTauClusterContainer()");
3074
3075 ATH_MSG_INFO("REGTEST ==========START of TrigTauClusterContainer/TrigTauClusterDetailsContainer DUMP===========");
3076
3079
3080 StatusCode sc = evtStore()->retrieve(TauCluster,lastTauCluster);
3081 if (sc.isFailure()) {
3082 ATH_MSG_INFO("REGTEST No TrigTauClusterContainer found");
3083 return StatusCode::SUCCESS;
3084 }
3085 ATH_MSG_INFO("REGTEST TrigTauClusterContainer retrieved");
3086
3087
3088 int nClusters = 0;
3089 for (int i=0; TauCluster != lastTauCluster; ++TauCluster, ++i) {
3090
3091 ATH_MSG_INFO("REGTEST Looking at TrigTauClusterContainer " << i);
3092
3093 TrigTauClusterContainer::const_iterator TauClusterItr = TauCluster->begin();
3094 TrigTauClusterContainer::const_iterator TauClusterItrE = TauCluster->end();
3095
3096 for (int j=0; TauClusterItr != TauClusterItrE; ++TauClusterItr, ++j ) {
3097 nClusters++;
3098 ATH_MSG_INFO("REGTEST Looking at TrigTauCluster " << j);
3099
3100 ATH_MSG_INFO("REGTEST TrigTauCluster->energy() returns " << (*TauClusterItr)->energy());
3101 ATH_MSG_INFO("REGTEST TrigTauCluster->et() returns " << (*TauClusterItr)->et());
3102 ATH_MSG_INFO("REGTEST TrigTauCluster->EMCalibEnergy() returns " << (*TauClusterItr)->EMCalibEnergy());
3103
3104 ATH_MSG_INFO("REGTEST TrigTauCluster->EMenergy() returns " << (*TauClusterItr)->EMenergy());
3105 ATH_MSG_INFO("REGTEST TrigTauCluster->HADenergy() returns " << (*TauClusterItr)->HADenergy());
3106 ATH_MSG_INFO("REGTEST TrigTauCluster->eta() returns " << (*TauClusterItr)->eta());
3107 ATH_MSG_INFO("REGTEST TrigTauCluster->phi() returns " << (*TauClusterItr)->phi());
3108 ATH_MSG_INFO("REGTEST TrigTauCluster->IsoFrac() returns " << (*TauClusterItr)->IsoFrac());
3109 ATH_MSG_INFO("REGTEST TrigTauCluster->stripWidth() returns " << (*TauClusterItr)->stripWidth());
3110 ATH_MSG_INFO("REGTEST TrigTauCluster->numStripCells() returns " << (*TauClusterItr)->numStripCells());
3111 ATH_MSG_INFO("REGTEST TrigTauCluster->CaloRadius() returns " << (*TauClusterItr)->CaloRadius());
3112 ATH_MSG_INFO("REGTEST TrigTauCluster->numTotCells() returns " << (*TauClusterItr)->numTotCells());
3113
3114
3115 if( (*TauClusterItr)->clusterDetails() == 0 )
3116 ATH_MSG_WARNING("REGTEST TrigTauCluster-> Details link is MISSING ");
3117 else{
3118 ATH_MSG_INFO("REGTEST TrigTauCluster->Energy in Narrow cone : EM[0/1/2/3]="
3119 <<(*TauClusterItr)->EMenergyNarrow(0) << " " << (*TauClusterItr)->EMenergyNarrow(1) << " "
3120 <<(*TauClusterItr)->EMenergyNarrow(2) << " ");
3121 ATH_MSG_INFO("REGTEST TrigTauCluster->Energy in Narrow cone : HAD[0/1/2]="
3122 <<(*TauClusterItr)->HADenergyNarrow(0) << " " << (*TauClusterItr)->HADenergyNarrow(1) << " "
3123 <<(*TauClusterItr)->HADenergyNarrow(2));
3124 }
3125 }
3126 }
3127
3128 int nDetails = 0;
3131 sc = evtStore()->retrieve(TauDetailsCluster,lastTauDetailsCluster);
3132 if (sc.isFailure()) {
3133 ATH_MSG_INFO("REGTEST No TrigTauDetailsClusterContainer found");
3134 return StatusCode::SUCCESS;
3135 }
3136 ATH_MSG_INFO("REGTEST TrigTauDetailsClusterContainer retrieved");
3137
3138 for (int i=0; TauDetailsCluster != lastTauDetailsCluster; ++TauDetailsCluster, ++i) {
3139
3140 ATH_MSG_INFO("REGTEST Looking at TrigTauClusterDetailsContainer " << i);
3141
3142 TrigTauClusterDetailsContainer::const_iterator TauDetailsClusterItr = TauDetailsCluster->begin();
3143 TrigTauClusterDetailsContainer::const_iterator TauDetailsClusterItrE = TauDetailsCluster->end();
3144
3145 for (int j=0; TauDetailsClusterItr != TauDetailsClusterItrE; ++TauDetailsClusterItr, ++j ) {
3146 nDetails++;
3147 ATH_MSG_INFO("REGTEST Looking at TrigTauClusterDetails " << j);
3148
3149 for(unsigned int i = 0; i<4; ++i ) {
3150 ATH_MSG_INFO("REGTEST TrigTauClusterDetails-> EM["<<i <<"] Radius/EnergyNar/EnergyMid/EnergyWid returns "
3151 << (*TauDetailsClusterItr)->EMRadius(i) << " "
3152 << (*TauDetailsClusterItr)->EMenergyNarrow(i) << " "
3153 << (*TauDetailsClusterItr)->EMenergyMedium(i) << " "
3154 << (*TauDetailsClusterItr)->EMenergyWide(i));
3155 }
3156 for(unsigned int i = 0; i<3; ++i ) {
3157 ATH_MSG_INFO("REGTEST TrigTauClusterDetails-> HAD["<<i <<"] Radius/EnergyNar/EnergyMid/EnergyWid returns "
3158 << (*TauDetailsClusterItr)->HADRadius(i) << " "
3159 << (*TauDetailsClusterItr)->HADenergyNarrow(i) << " "
3160 << (*TauDetailsClusterItr)->HADenergyMedium(i) << " "
3161 << (*TauDetailsClusterItr)->HADenergyWide(i));
3162 }
3163 }
3164 }
3165
3166 if( nDetails != nClusters)
3167 ATH_MSG_WARNING("REGTEST inconsistent number of TrigTauClusters ("<< nClusters<< ") and TrigTauClusterDetails ("
3168 << nDetails << ")");
3169
3170 ATH_MSG_INFO("REGTEST ==========END of TrigTauClusterContainer/TrigTauClusterDetailsContainer DUMP===========");
3171
3172 ATH_MSG_DEBUG("dumpTrigTauClusterContainer() succeeded");
3173
3174 return StatusCode::SUCCESS;
3175}
3176
3178
3179StatusCode TrigEDMChecker::dumpTrigEMClusterContainer ATLAS_NOT_THREAD_SAFE() {
3180
3181 ATH_MSG_DEBUG("in dumpTrigEMClusterContainer()");
3182
3183 ATH_MSG_INFO("REGTEST ==========START of TrigEMClusterContainer DUMP===========");
3184
3187
3188 StatusCode sc = evtStore()->retrieve(EMCluster,lastEMCluster);
3189 if (sc.isFailure()) {
3190 ATH_MSG_INFO("REGTEST No TrigEMClusterContainer found");
3191 return StatusCode::SUCCESS;
3192 }
3193 ATH_MSG_INFO("REGTEST TrigEMClusterContainer retrieved");
3194
3195
3196 for (int i=0; EMCluster != lastEMCluster; ++EMCluster, ++i) {
3197
3198 ATH_MSG_INFO("REGTEST Looking at TrigEMClusterContainer " << i);
3199
3200 TrigEMClusterContainer::const_iterator EMClusterItr = EMCluster->begin();
3201 TrigEMClusterContainer::const_iterator EMClusterItrE = EMCluster->end();
3202
3203 for (int j=0; EMClusterItr != EMClusterItrE; ++EMClusterItr, ++j ) {
3204
3205 ATH_MSG_INFO("REGTEST Looking at TrigEMCluster " << j);
3206
3207 ATH_MSG_INFO("REGTEST TrigEMCluster->energy() returns " << (*EMClusterItr)->energy());
3208 ATH_MSG_INFO("REGTEST TrigEMCluster->et() returns " << (*EMClusterItr)->et());
3209 ATH_MSG_INFO("REGTEST TrigEMCluster->eta() returns " << (*EMClusterItr)->eta());
3210 ATH_MSG_INFO("REGTEST TrigEMCluster->phi() returns " << (*EMClusterItr)->phi());
3211 ATH_MSG_INFO("REGTEST TrigEMCluster->print() gives");
3212 int level = msg().level();
3213 // little trick to print out stuff
3214 msg().setLevel(MSG::DEBUG);
3215 (*EMClusterItr)->print(msg());
3216 msg().setLevel(level);
3217 }
3218 }
3219
3220 ATH_MSG_INFO("REGTEST ==========END of TrigEMClusterContainer DUMP===========");
3221 ATH_MSG_DEBUG("dumpTrigEMClusterContainer() succeeded");
3222
3223 return StatusCode::SUCCESS;
3224}
3225
3226StatusCode TrigEDMChecker::dumpxAODTrigEMClusterContainer ATLAS_NOT_THREAD_SAFE() {
3227
3228 ATH_MSG_DEBUG("in dumpxAODTrigEMClusterContainer()");
3229
3230 ATH_MSG_INFO("REGTEST ==========START of xAODTrigEMClusterContainer DUMP===========");
3231
3234
3235 StatusCode sc = evtStore()->retrieve(EMCluster,lastEMCluster);
3236 if (sc.isFailure()) {
3237 ATH_MSG_INFO("REGTEST No xAOD::TrigEMClusterContainer found");
3238 return StatusCode::SUCCESS;
3239 }
3240 ATH_MSG_INFO("REGTEST xAOD::TrigEMClusterContainer retrieved");
3241
3242
3243 for (int i=0; EMCluster != lastEMCluster; ++EMCluster, ++i) {
3244
3245 ATH_MSG_INFO("REGTEST Looking at xAOD::TrigEMClusterContainer " << i);
3246
3247 xAOD::TrigEMClusterContainer::const_iterator EMClusterItr = EMCluster->begin();
3248 xAOD::TrigEMClusterContainer::const_iterator EMClusterItrE = EMCluster->end();
3249
3250 for (int j=0; EMClusterItr != EMClusterItrE; ++EMClusterItr, ++j ) {
3251
3252 ATH_MSG_INFO("REGTEST Looking at xAOD::TrigEMCluster " << j);
3253 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->energy() returns " << (*EMClusterItr)->energy());
3254 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->et() returns " << (*EMClusterItr)->et());
3255 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->eta() returns " << (*EMClusterItr)->eta());
3256 ATH_MSG_INFO("REGTEST xAOD::TrigEMCluster->phi() returns " << (*EMClusterItr)->phi());
3257 //msg() <<MSG::INFO << "REGTEST xAOD::TrigEMCluster->print() gives" << endmsg;
3258 //int level = msg().level();
3259 // little trick to print out stuff
3260 //msg().setLevel(MSG::DEBUG);
3261 //(*EMClusterItr)->print(msg());
3262 //msg().setLevel(level);
3263 }
3264 }
3265
3266 ATH_MSG_INFO("REGTEST ==========END of TrigEMClusterContainer DUMP===========");
3267 ATH_MSG_DEBUG("dumpTrigEMClusterContainer() succeeded");
3268
3269 return StatusCode::SUCCESS;
3270}
3271
3273
3274StatusCode TrigEDMChecker::dumpTileMuFeatureContainer ATLAS_NOT_THREAD_SAFE() {
3275
3276 ATH_MSG_DEBUG("in dumpTileMuFeatureContainer()");
3277 ATH_MSG_INFO("REGTEST ==========START of TileMuFeatureContainer DUMP===========");
3278
3281
3282 StatusCode sc = evtStore()->retrieve(TileMu, lastTileMu);
3283 if (sc.isFailure()) {
3284 ATH_MSG_INFO("REGTEST No TileMuFeatureContainer found");
3285 return StatusCode::SUCCESS;
3286 }
3287 ATH_MSG_INFO("REGTEST TileMuFeatureContainer retrieved");
3288
3289 for (int i=0; TileMu != lastTileMu; ++TileMu, ++i) {
3290 ATH_MSG_INFO("REGTEST Looking at TileMuFeatureContainer " << i);
3293
3294 for(int j=0; TileMuItr != TileMuItrE; ++TileMuItr, ++j) {
3295 ATH_MSG_INFO("REGTEST Looking at TileMuFeature " << j);
3296 ATH_MSG_INFO("REGTEST TileMuFeature->eta() returns " << (*TileMuItr)->eta());
3297 ATH_MSG_INFO("REGTEST TileMuFeature->phi() returns " << (*TileMuItr)->phi());
3298 ATH_MSG_INFO("REGTEST TileMuFeature->enedep().at(0) returns " << (*TileMuItr)->enedep().at(0));
3299 ATH_MSG_INFO("REGTEST TileMuFeature->enedep().at(1) returns " << (*TileMuItr)->enedep().at(1));
3300 ATH_MSG_INFO("REGTEST TileMuFeature->enedep().at(2) returns " << (*TileMuItr)->enedep().at(2));
3301 ATH_MSG_INFO("REGTEST TileMuFeature->enedep().at(3) returns " << (*TileMuItr)->enedep().at(3));
3302 ATH_MSG_INFO("REGTEST TileMuFeature->quality() returns " << (*TileMuItr)->quality());
3303
3304 }
3305 }
3306
3307 ATH_MSG_INFO("REGTEST ==========END of TileMuFeatureContainer DUMP===========");
3308 ATH_MSG_DEBUG("dumpTileMuFeatureContainer() succeeded");
3309
3310 return StatusCode::SUCCESS;
3311}
3312
3314
3315StatusCode TrigEDMChecker::dumpTileTrackMuFeatureContainer ATLAS_NOT_THREAD_SAFE() {
3316
3317 ATH_MSG_DEBUG("in dumpTileTrackMuFeatureContainer()");
3318 ATH_MSG_INFO("REGTEST ==========START of TileTrackMuFeatureContainer DUMP===========");
3319
3322
3323 StatusCode sc = evtStore()->retrieve(TileTrackMu, lastTileTrackMu);
3324 if (sc.isFailure()) {
3325 ATH_MSG_INFO("REGTEST No TileTrackMuFeatureContainer found");
3326 return StatusCode::SUCCESS;
3327 }
3328 ATH_MSG_INFO("REGTEST TileTrackMuFeatureContainer retrieved");
3329
3330 for (int i=0; TileTrackMu!=lastTileTrackMu; ++TileTrackMu, ++i) {
3331 ATH_MSG_INFO("REGTEST Looking at TileTrackMuFeatureContainer " << i);
3332
3333 TileTrackMuFeatureContainer::const_iterator TileTrackMuItr = TileTrackMu->begin();
3334 TileTrackMuFeatureContainer::const_iterator TileTrackMuItrE= TileTrackMu->end();
3335
3336 for (int j=0; TileTrackMuItr != TileTrackMuItrE; ++TileTrackMuItr, ++j) {
3337 ATH_MSG_INFO("REGTEST Looking at TileTrackMuFeature " << j);
3338 ATH_MSG_INFO("REGTEST TileTrackMuFeature->PtTR_Trk() returns " << (*TileTrackMuItr)->PtTR_Trk());
3339 ATH_MSG_INFO("REGTEST TileTrackMuFeature->EtaTR_Trk() returns " << (*TileTrackMuItr)->EtaTR_Trk());
3340 ATH_MSG_INFO("REGTEST TileTrackMuFeature->PhiTR_Trk() returns " << (*TileTrackMuItr)->PhiTR_Trk());
3341 ATH_MSG_INFO("REGTEST TileTrackMuFeature->Typ_IDTrk() returns " << (*TileTrackMuItr)->Typ_IDTrk());
3342
3343 ATH_MSG_INFO("REGTEST TileMuFeature info: ");
3344 ElementLink<TileMuFeatureContainer> TileMuEL = (*TileTrackMuItr)->TileMuLink();
3345 const TileMuFeature* TileMu;
3346 if ( !TileMuEL.isValid() ) {
3347 ATH_MSG_INFO("REGTEST No TileMuFeature (Something Wrong)");
3348 TileMu = 0;
3349 } else{
3350 TileMu = *TileMuEL;
3351 }
3352
3353 if( TileMu != 0 ){
3354 ATH_MSG_INFO("REGTEST TileMuLink->eta() returns " << TileMu->eta());
3355 ATH_MSG_INFO("REGTEST TileMuLink->phi() returns " << TileMu->phi());
3356 ATH_MSG_INFO("REGTEST TileMuLink->enedep().at(0) returns " << TileMu->enedep().at(0));
3357 ATH_MSG_INFO("REGTEST TileMuLink->enedep().at(1) returns " << TileMu->enedep().at(1));
3358 ATH_MSG_INFO("REGTEST TileMuLink->enedep().at(2) returns " << TileMu->enedep().at(2));
3359 ATH_MSG_INFO("REGTEST TileMuLink->enedep().at(3) returns " << TileMu->enedep().at(3));
3360 ATH_MSG_INFO("REGTEST TileMuLink->quality() returns " << TileMu->quality());
3361 }
3362
3363 ATH_MSG_INFO("REGTEST TrigInDetTrack info: ");
3364 ElementLink<TrigInDetTrackCollection> IDScanEL = (*TileTrackMuItr)->IDScanLink();
3365 const TrigInDetTrack* Track;
3366 if ( !IDScanEL.isValid() ) {
3367 ATH_MSG_INFO("REGTEST No valid IDtracks");
3368 Track = 0;
3369 } else{
3370 Track = *IDScanEL;
3371 }
3372
3373 if (Track != 0) {
3374 ATH_MSG_INFO("REGTEST IDScanLink->algorithmId() returns " << Track->algorithmId());
3375 ATH_MSG_INFO("REGTEST IDScanLink->chi2() returns " << Track->chi2());
3376 ATH_MSG_INFO("REGTEST IDScanLink->NStrawHits() returns ");
3377 ATH_MSG_INFO("REGTEST IDScanLink->NStraw() returns " << Track->NStraw());
3378 ATH_MSG_INFO("REGTEST IDScanLink->NStrawTime() returns " << Track->NStrawTime());
3379 ATH_MSG_INFO("REGTEST IDScanLink->NTRHits() returns " << Track->NTRHits());
3380 ATH_MSG_INFO("REGTEST IDScanLink->param()->phi0() returns " << Track->param()->phi0());
3381 ATH_MSG_INFO("REGTEST IDScanLink->param()->eta() returns " << Track->param()->eta());
3382 ATH_MSG_INFO("REGTEST IDScanLink->param()->pT() returns " << Track->param()->pT());
3383 }
3384 }
3385 }
3386
3387 ATH_MSG_INFO("REGTEST ==========END of TileTrackMuFeatureContainer DUMP===========");
3388 ATH_MSG_DEBUG("dumpTileTrackMuFeatureContainer() succeeded");
3389 return StatusCode::SUCCESS;
3390}
3391
3393StatusCode TrigEDMChecker::dumpxAODTauJetContainer ATLAS_NOT_THREAD_SAFE() {
3394
3395 ATH_MSG_DEBUG("In dumpxAODTauJetContainer");
3396 ATH_MSG_INFO( "REGTEST ==========START of xAOD::TauJetContainer DUMP===========" );
3397 const xAOD::TauJetContainer * TauJetcont = 0;
3398 StatusCode sc = evtStore() -> retrieve (TauJetcont, "HLT_xAOD__TauJetContainer_TrigTauRecMerged");
3399
3400 if (sc.isFailure()) {
3401
3402 ATH_MSG_INFO("REGTEST No Tau container HLT_xAOD__TauJetContainer_TrigTauRecMerged");
3403
3404
3405 return StatusCode::SUCCESS;
3406 }
3407
3408
3409 for(xAOD::TauJetContainer::const_iterator tauIt = TauJetcont->begin(); tauIt != TauJetcont->end();++tauIt){
3410
3411 ATH_MSG_INFO( "REGTEST (*tauIt)->eta() returns " << (*tauIt)->eta() );
3412 ATH_MSG_INFO( "REGTEST (*tauIt)->phi() returns " << (*tauIt)->phi() );
3413 ATH_MSG_INFO( "REGTEST (*tauIt)->pt() returns " << (*tauIt)->pt() );
3414
3415 // for numTracks()
3416 int EFnTracks = -1;
3417 #ifndef XAODTAU_VERSIONS_TAUJET_V3_H
3418 EFnTracks = (*tauIt)->nTracks();
3419 #else
3420 (*tauIt)->detail(xAOD::TauJetParameters::nChargedTracks, EFnTracks);
3421 #endif
3422
3423 ATH_MSG_INFO( "REGTEST (*tauIt)->nTracks() returns " << EFnTracks );
3424
3425 // for nTracksIsolation()
3426 int EFWidenTrack = -1;
3427 #ifndef XAODTAU_VERSIONS_TAUJET_V3_H
3428 EFWidenTrack = (*tauIt)->nWideTracks();
3429 #else
3430 (*tauIt)->detail(xAOD::TauJetParameters::nIsolatedTracks, EFWidenTrack);
3431 #endif
3432
3433 ATH_MSG_INFO( "REGTEST (*tauIt)->nWideTracks() returns " << EFWidenTrack );
3434
3435 //bool test = false;
3436 float trkAvgDist=0;
3437 float etOvPtLead=0;
3438 float emRadius=0;
3439 float hadRadius=0;
3440 float IsoFrac=0;
3441 float centFrac=0;
3442 float ipSigLeadTrk=0;
3443 float trFlightPathSig=0;
3444 float dRmax=0;
3445 float massTrkSys=0;
3446 float PSSFraction=0;
3447 float EMPOverTrkSysP=0;
3448 float ChPiEMEOverCaloEME=0;
3449 float EtEm=0;
3450 float EtHad=0;
3451
3452 if ( (*tauIt)->detail(xAOD::TauJetParameters::trkAvgDist,trkAvgDist))
3453 ATH_MSG_INFO( "REGTEST TauDetails->trkAvgDist() returns " << trkAvgDist);
3454
3455 if ( (*tauIt)->detail(xAOD::TauJetParameters::etOverPtLeadTrk,etOvPtLead))
3456 ATH_MSG_INFO( "REGTEST TauDetails->etOverPtLeadTrk() returns " << etOvPtLead);
3457
3458 if ( (*tauIt)->detail(xAOD::TauJetParameters::EMRadius,emRadius))
3459 ATH_MSG_INFO( "REGTEST TauDetails->EMRadius() returns " << emRadius);
3460
3461 if ( (*tauIt)->detail(xAOD::TauJetParameters::hadRadius,hadRadius))
3462 ATH_MSG_INFO( "REGTEST TauDetails->hadRadius() returns " << hadRadius);
3463
3464 if ( (*tauIt)->detail(xAOD::TauJetParameters::isolFrac,IsoFrac))
3465 ATH_MSG_INFO( "REGTEST TauDetails->isolFrac() returns " << IsoFrac);
3466
3467 if ( (*tauIt)->detail(xAOD::TauJetParameters::centFrac,centFrac))
3468 ATH_MSG_INFO( "REGTEST TauDetails->centFrac() returns " << centFrac);
3469
3470 if ( (*tauIt)->detail(xAOD::TauJetParameters::ipSigLeadTrk,ipSigLeadTrk))
3471 ATH_MSG_INFO( "REGTEST TauDetails->ipSigLeadTrk() returns " << ipSigLeadTrk);
3472
3473 if ( (*tauIt)->detail(xAOD::TauJetParameters::trFlightPathSig,trFlightPathSig))
3474 ATH_MSG_INFO( "REGTEST TauDetails->trFlightPathSig() returns " << trFlightPathSig);
3475
3476 if ( (*tauIt)->detail(xAOD::TauJetParameters::dRmax,dRmax))
3477 ATH_MSG_INFO( "REGTEST TauDetails->dRmax() returns " << dRmax);
3478
3479 if ( (*tauIt)->detail(xAOD::TauJetParameters::massTrkSys,massTrkSys)){
3480 massTrkSys /=1000;
3481 ATH_MSG_INFO( "REGTEST TauDetails->massTrkSys() returns " << massTrkSys);}
3482
3483 if ( (*tauIt)->detail(xAOD::TauJetParameters::PSSFraction,PSSFraction))
3484 ATH_MSG_INFO( "REGTEST TauDetails->PSSFraction() returns " << PSSFraction);
3485
3486 if ( (*tauIt)->detail(xAOD::TauJetParameters::EMPOverTrkSysP,EMPOverTrkSysP))
3487 ATH_MSG_INFO( "REGTEST TauDetails->EMPOverTrkSysP() returns " << EMPOverTrkSysP);
3488
3489 if ( (*tauIt)->detail(xAOD::TauJetParameters::ChPiEMEOverCaloEME,ChPiEMEOverCaloEME))
3490 ATH_MSG_INFO( "REGTEST TauDetails->ChPiEMEOverCaloEME() returns " << ChPiEMEOverCaloEME);
3491
3492 if ( (*tauIt)->detail(xAOD::TauJetParameters::etEMAtEMScale,EtEm)){
3493 EtEm /=1000;
3494 ATH_MSG_INFO( "REGTEST TauDetails->etEMAtEMScale() returns " << EtEm);}
3495
3496 if ( (*tauIt)->detail(xAOD::TauJetParameters::etHadAtEMScale,EtHad)){
3497 EtHad /=1000;
3498 ATH_MSG_INFO( "REGTEST TauDetails->etHadAtEMScale() returns " << EtHad);}
3499
3500
3501 if( !(*tauIt)->jetLink().isValid() ) {
3502 ATH_MSG_WARNING("tau does not have jet seed");
3503 return StatusCode::SUCCESS;
3504 }
3505
3506 const xAOD::Jet* pJetSeed = *((*tauIt)->jetLink());
3507
3510
3511 for (int clusCount = 0; clusItr != clusItrE; ++clusItr, ++clusCount) {
3512
3513 ATH_MSG_INFO( "REGTEST Tau Cluster " << clusCount << " pt = " << (*clusItr)->pt()
3514 << " eta = " << (*clusItr)->eta()
3515 << " phi = " << (*clusItr)->phi() );
3516
3517 }
3518
3519
3520 for (unsigned int trackNum = 0; trackNum < (*tauIt)->nTracks(); ++trackNum) {
3521
3522 const xAOD::TrackParticle *linkTrack = (*tauIt)->track(trackNum)->track();
3523 if (!linkTrack) {
3524 ATH_MSG_WARNING("can't get tau linked track");
3525 return StatusCode::SUCCESS;
3526 } else {
3527 ATH_MSG_DEBUG("Got the tau linked track");
3528 }
3529
3530 ATH_MSG_INFO( "REGTEST Tau linked track " << trackNum << " pt = " << linkTrack->pt()
3531 << " eta = " << linkTrack->eta()
3532 << " phi = " << linkTrack->phi() );
3533
3534 }
3535
3536
3537 }// end for
3538
3539 return StatusCode::SUCCESS;
3540
3541}
3542
3543
3545
3546StatusCode TrigEDMChecker::dumpTauJetContainer ATLAS_NOT_THREAD_SAFE() {
3547
3548 ATH_MSG_INFO("REGTEST ==========START of TauJetContainer DUMP===========");
3549
3550 using namespace Analysis;
3551
3552 StatusCode sCode=StatusCode::FAILURE;
3553 int ntag=1;
3554 std::string TauContainerTags[]={"HLT_TrigTauRecMerged"};
3555 for (int itag=0; itag < ntag; itag++) {
3556 const TauJetContainer* TauJetcont = nullptr;
3557 sCode=evtStore()->retrieve(TauJetcont , TauContainerTags[itag]);
3558 if( sCode.isFailure() ){
3559 ATH_MSG_INFO("Failed to retrieve TauJetContainer with key " << TauContainerTags[itag]);
3560 continue;
3561 }
3562
3563 for(Analysis::TauJetContainer::const_iterator tauIt = TauJetcont->begin(); tauIt != TauJetcont->end(); ++tauIt){
3564
3565 bool IsTaurec = false;
3566 bool Is1p3p = false;
3567 if ((*tauIt)->hasAuthor( TauJetParameters::tauRec)) {
3568 ATH_MSG_INFO("Is TauRec Seeded ");
3569 IsTaurec = true;
3570 }
3571
3572 if ((*tauIt)->hasAuthor( TauJetParameters::tau1P3P)) {
3573 ATH_MSG_INFO("Is Tau1p3p Seeded ");
3574 Is1p3p = true;
3575 }
3576
3577 if ((*tauIt)->hasAuthor( TauJetParameters::unknown)) {
3578 ATH_MSG_INFO("Is unknown seeded ");
3579 }
3580
3581 const Analysis::TauCommonDetails* TauDetails = (*tauIt)->details<const Analysis::TauCommonDetails>();
3582 if (TauDetails == NULL) {
3583 ATH_MSG_INFO(" TauDetails == NULL ");
3584 continue;
3585 }
3586
3587 ATH_MSG_INFO("REGTEST (*tauIt)->eta() returns " << (*tauIt)->eta());
3588 ATH_MSG_INFO("REGTEST (*tauIt)->phi() returns " << (*tauIt)->phi());
3589 ATH_MSG_INFO("REGTEST (*tauIt)->numTrack() returns " << (*tauIt)->numTrack());
3590 ATH_MSG_INFO("REGTEST TauDetails->nLooseTrk() returns " << TauDetails->nLooseTrk());
3591 ATH_MSG_INFO("REGTEST TauDetails->leadTrkPt() returns " << TauDetails->leadTrkPt());
3592 ATH_MSG_INFO("REGTEST TauDetails->leadLooseTrkPt() returns " << TauDetails->leadLooseTrkPt());
3593 ATH_MSG_INFO("REGTEST TauDetails->ipZ0SinThetaSigLeadTrk() returns " << TauDetails->ipZ0SinThetaSigLeadTrk());
3594 ATH_MSG_INFO("REGTEST TauDetails->ipSigLeadTrk() returns "<<TauDetails->ipSigLeadTrk());
3595 ATH_MSG_INFO("REGTEST TauDetails->ipSigLeadLooseTrk() returns "<<TauDetails->ipSigLeadLooseTrk());
3596 ATH_MSG_INFO("REGTEST TauDetails->trkWidth2() returns "<<TauDetails->trkWidth2());
3597 ATH_MSG_INFO("REGTEST TauDetails->trFlightPathSig() returns "<< TauDetails->trFlightPathSig());
3598
3599 if(IsTaurec) {
3600 ATH_MSG_INFO("Calo seeded");
3601 ATH_MSG_INFO("REGTEST TauDetails->seedCalo_etHadCalib() returns " << TauDetails->seedCalo_etHadCalib());
3602 ATH_MSG_INFO("REGTEST TauDetails->seedCalo_etEMCalib() returns " << TauDetails->seedCalo_etEMCalib());
3603 ATH_MSG_INFO("REGTEST TauDetails->seedCalo_EMRadius() returns " << TauDetails->seedCalo_EMRadius());
3604 ATH_MSG_INFO("REGTEST TauDetails->seedCalo_isolFrac() returns " << TauDetails->seedCalo_isolFrac());
3605 ATH_MSG_INFO("REGTEST TauDetails->seedCalo_centFrac() returns " << TauDetails->seedCalo_centFrac());
3606 ATH_MSG_INFO("REGTEST TauDetails->seedCalo_stripWidth2() returns " << TauDetails->seedCalo_stripWidth2());
3607 ATH_MSG_INFO("REGTEST TauDetails->seedCalo_nStrip() returns " << TauDetails->seedCalo_nStrip());
3608 ATH_MSG_INFO("REGTEST TauDetails->seedCalo_etEMAtEMScale() returns " << TauDetails->seedCalo_etEMAtEMScale());
3609 ATH_MSG_INFO("REGTEST TauDetails->seedCalo_etHADAtEMScale() returns " << TauDetails->seedCalo_etHadAtEMScale());
3610 ATH_MSG_INFO("REGTEST TauDetails->seedCalo_hadRadius() returns " << TauDetails->seedCalo_hadRadius());
3611 ATH_MSG_INFO("REGTEST TauDetails->seedCalo_nIsolLooseTrk() returns " << TauDetails->seedCalo_nIsolLooseTrk());
3612 ATH_MSG_INFO("REGTEST TauDetails->seedCalo_trkAvgDist() returns " << TauDetails->seedCalo_trkAvgDist());
3613 ATH_MSG_INFO("REGTEST TauDetails->seedCalo_trkRmsDist() returns " << TauDetails->seedCalo_trkRmsDist());
3614 }
3615
3616 if(Is1p3p) {
3617 ATH_MSG_INFO("Track seeded");
3618 ATH_MSG_INFO("REGTEST TauDetails->seedTrk_EMRadius() returns " << TauDetails->seedTrk_EMRadius());
3619 ATH_MSG_INFO("REGTEST TauDetails->seedTrk_isolFrac() returns " << TauDetails->seedTrk_isolFrac());
3620 ATH_MSG_INFO("REGTEST TauDetails->seedTrk_etChrgHadOverSumTrkPt () returns " << TauDetails->seedTrk_etChrgHadOverSumTrkPt ());
3621 ATH_MSG_INFO("REGTEST TauDetails->seedTrk_isolFracWide() returns " << TauDetails->seedTrk_isolFracWide());
3622 ATH_MSG_INFO("REGTEST TauDetails->seedTrk_etHadAtEMScale() returns " << TauDetails->seedTrk_etHadAtEMScale());
3623 ATH_MSG_INFO("REGTEST TauDetails->seedTrk_etEMAtEMScale() returns " << TauDetails->seedTrk_etEMAtEMScale());
3624 ATH_MSG_INFO("REGTEST TauDetails->seedTrk_etEMCL() returns " << TauDetails->seedTrk_etEMCL());
3625 ATH_MSG_INFO("REGTEST TauDetails->seedTrk_etChrgEM() returns " << TauDetails->seedTrk_etChrgEM());
3626 ATH_MSG_INFO("REGTEST TauDetails->seedTrk_etNeuEM() returns " << TauDetails->seedTrk_etNeuEM());
3627 ATH_MSG_INFO("REGTEST TauDetails->seedTrk_etResNeuEM() returns " << TauDetails->seedTrk_etResNeuEM());
3628 ATH_MSG_INFO("REGTEST TauDetails->seedTrk_hadLeakEt() returns " << TauDetails->seedTrk_hadLeakEt());
3629 ATH_MSG_INFO("REGTEST TauDetails->seedTrk_sumEMCellEtOverLeadTrkPt() returns " << TauDetails->seedTrk_sumEMCellEtOverLeadTrkPt());
3630 ATH_MSG_INFO("REGTEST TauDetails->seedTrk_secMaxStripEt() returns " << TauDetails->seedTrk_secMaxStripEt());
3631 ATH_MSG_INFO("REGTEST TauDetails->seedTrk_stripWidth2() returns " << TauDetails->seedTrk_stripWidth2());
3632 ATH_MSG_INFO("REGTEST TauDetails->seedTrk_nStrip() returns " << TauDetails->seedTrk_nStrip());
3633 ATH_MSG_INFO("REGTEST TauDetails->seedTrk_etChrgHad() returns " << TauDetails->seedTrk_etChrgHad());
3634 ATH_MSG_INFO("REGTEST TauDetails->seedTrk_nOtherCoreTrk() returns " << TauDetails->seedTrk_nOtherCoreTrk());
3635 ATH_MSG_INFO("REGTEST TauDetails->seedTrk_nIsolTrk() returns " << TauDetails->seedTrk_nIsolTrk());
3636 ATH_MSG_INFO("REGTEST TauDetails->seedTrk_etIsolEM() returns " << TauDetails->seedTrk_etIsolEM());
3637 ATH_MSG_INFO("REGTEST TauDetails->seedTrk_etIsolHad() returns " << TauDetails->seedTrk_etIsolHad());
3638 }
3639
3640 const Analysis::TauJet* tj = *tauIt;
3641 if ( tj->clusterLink().isValid() ) {
3642 ATH_MSG_INFO("REGTEST CaloCluster present");
3643 } else {
3644 ATH_MSG_INFO("REGTEST CaloCluster missing");
3645 }
3646
3647 if( TauDetails->looseTrk().size() !=0 ) {
3648 ATH_MSG_INFO("REGTEST TauDetails->looseTrk() link present ");
3649 } else {
3650 ATH_MSG_INFO("REGTEST TauDetails->looseTrk() link missing ");
3651 }
3652
3653 if ( tj->cellClusterLink().isValid() ) {
3654 ATH_MSG_INFO("REGTEST CellCaloCluster present");
3655 } else {
3656 ATH_MSG_INFO("REGTEST CellCaloCluster missing");
3657 }
3658
3659 if ( tj->jetLink().isValid() ) {
3660 ATH_MSG_INFO("REGTEST Jet present");
3661 } else {
3662 ATH_MSG_INFO("REGTEST Jet missing");
3663 }
3664
3665 if ( tj->jetLink().isValid() ) {
3666 ATH_MSG_INFO("REGTEST Jet present");
3667 } else {
3668 ATH_MSG_INFO("REGTEST Jet missing");
3669 }
3670
3671 ATH_MSG_INFO("REGTEST numTrack returns " << tj->numTrack());
3672
3673 if ( tj->trackLinkVector().size() != 0 ) {
3674 ATH_MSG_INFO("REGTEST TrackLinkVector present");
3675 } else {
3676 ATH_MSG_INFO("REGTEST TrackkLinkVector missing");
3677 }
3678
3679 ATH_MSG_INFO("REGTEST author returns " << tj->author());
3680 ATH_MSG_INFO("REGTEST ROIWord returns " << tj->author());
3681 }
3682 }
3683
3686 StatusCode sc = evtStore()->retrieve(TauJet, lastTauJet);
3687 if (sc.isFailure()) {
3688 ATH_MSG_INFO("REGTEST No TauJetContainer found");
3689 return StatusCode::FAILURE;
3690 }
3691 else ATH_MSG_DEBUG("Found TauJetContainer");
3692
3693 ATH_MSG_INFO("REGTEST TauJetContainer retrieved");
3694
3695 for ( ; TauJet != lastTauJet ; ++TauJet ) {
3696 ATH_MSG_INFO("REGTEST TauJetContainer key: " << TauJet.key());
3697 }
3698
3699 return StatusCode::SUCCESS;
3700}
3701
3703
3704 ATH_MSG_DEBUG("In dumpxAODTrackParticle()");
3705
3706 ATH_MSG_INFO("REGTEST ==========START of xAOD::TrackParticle DUMP===========");
3707
3708 std::vector<std::string> SGkeys;
3709 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bjet_EFID");
3710 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bphysics_EFID");
3711 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Electron_EFID");
3712 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_FullScan_EFID");
3713 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Muon_EFID");
3714 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Photon_EFID");
3715 SGkeys.push_back("HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Tau_EFID");
3716
3717 StatusCode returnsc = StatusCode::SUCCESS;
3718
3719 for (unsigned int SGkey = 0; SGkey < SGkeys.size(); ++SGkey) {
3720 const xAOD::TrackParticleContainer* trackParticleContainer=0;
3721 StatusCode sc = evtStore()->retrieve(trackParticleContainer,SGkeys.at(SGkey));
3722 if (sc.isFailure()) {
3723 ATH_MSG_INFO("REGTEST No track particle container found with key " << SGkeys.at(SGkey));
3724 continue;
3725 }
3726 ATH_MSG_INFO("REGTEST TrackParticleContainer retrieved with key " << SGkeys.at(SGkey)
3727 << " and size " << trackParticleContainer->size());
3728
3729 xAOD::TrackParticleContainer::const_iterator trackParticleItr = trackParticleContainer->begin();
3730 xAOD::TrackParticleContainer::const_iterator trackParticleLast = trackParticleContainer->end();
3731
3732 for (int index = 0; trackParticleItr != trackParticleLast; ++trackParticleItr, ++index) {
3733 ATH_MSG_INFO("REGTEST Looking at Track Particle " << index);
3734
3735 ATH_MSG_INFO("REGTEST IParticle functions:");
3736 ATH_MSG_INFO("REGTEST pt: " << (*trackParticleItr)->pt()
3737 << "/eta: " << (*trackParticleItr)->eta()
3738 << "/phi: " << (*trackParticleItr)->phi()
3739 << "/m: " << (*trackParticleItr)->m()
3740 << "/e: " << (*trackParticleItr)->e()
3741 << "/rapidity: " << (*trackParticleItr)->rapidity());
3742
3743 ATH_MSG_INFO("REGTEST Defining parameters functions:");
3744 ATH_MSG_INFO("REGTEST charge: " << (*trackParticleItr)->charge()
3745 << "/d0: " << (*trackParticleItr)->d0()
3746 << "/z0: " << (*trackParticleItr)->z0()
3747 << "/phi0: " << (*trackParticleItr)->phi0()
3748 << "/theta: " << (*trackParticleItr)->theta()
3749 << "/qOverP: " << (*trackParticleItr)->qOverP()
3750 << "/vx: " << (*trackParticleItr)->vx()
3751 << "/vy: " << (*trackParticleItr)->vy()
3752 << "/vz: " << (*trackParticleItr)->vz());
3753
3754 // Curvilinear functions skipped
3755
3756 ATH_MSG_INFO("REGTEST Fit quality functions:");
3757 ATH_MSG_INFO("REGTEST chiSquared: " << (*trackParticleItr)->chiSquared()
3758 << "/numberDoF: " << (*trackParticleItr)->numberDoF());
3759
3760 // TrackInfo functions skipped
3761
3762 ATH_MSG_INFO("REGTEST summaryValue variables:");
3763 msg() << MSG::INFO << "REGTEST ";
3764 uint8_t numberOfBLayerHits = 0;
3765 if ( (*trackParticleItr)->summaryValue(numberOfBLayerHits, xAOD::numberOfBLayerHits) ) {
3766 msg() << "/numberOfBLayerHits: " << static_cast<int>(numberOfBLayerHits);
3767 } else {
3768 msg() << "/numberOfBLayerHits not found";
3769 }
3770
3771 uint8_t numberOfPixelHits = 0;
3772 if ( (*trackParticleItr)->summaryValue(numberOfPixelHits, xAOD::numberOfPixelHits) ) {
3773 msg() << "/numberOfPixelHits: " << static_cast<int>(numberOfPixelHits);
3774 } else {
3775 msg() << "/numberOfPixelHits not found";
3776 }
3777
3778 uint8_t numberOfPixelHoles = 0;
3779 if ( (*trackParticleItr)->summaryValue(numberOfPixelHoles, xAOD::numberOfPixelHoles) ) {
3780 msg() << "/numberOfPixelHoles: " << static_cast<int>(numberOfPixelHoles);
3781 } else {
3782 msg() << "/numberOfPixelHoles not found";
3783 }
3784
3785 uint8_t numberOfSCTHits = 0;
3786 if ( (*trackParticleItr)->summaryValue(numberOfSCTHits, xAOD::numberOfSCTHits) ) {
3787 msg() << "/numberOfSCTHits: " << static_cast<int>(numberOfSCTHits);
3788 } else {
3789 msg() << "/numberOfSCTHits not found";
3790 }
3791
3792 uint8_t numberOfSCTHoles = 0;
3793 if ( (*trackParticleItr)->summaryValue(numberOfSCTHoles, xAOD::numberOfSCTHoles) ) {
3794 msg() << "/numberOfSCTHoles: " << static_cast<int>(numberOfSCTHoles);
3795 } else {
3796 msg() << "/numberOfSCTHoles not found";
3797 }
3798
3799 uint8_t numberOfTRTHits = 0;
3800 if ( (*trackParticleItr)->summaryValue(numberOfTRTHits, xAOD::numberOfTRTHits) ) {
3801 msg() << "/numberOfTRTHits: " << static_cast<int>(numberOfTRTHits);
3802 } else {
3803 msg() << "/numberOfTRTHits not found";
3804 }
3805
3806 uint8_t numberOfTRTHoles = 0;
3807 if ( (*trackParticleItr)->summaryValue(numberOfTRTHoles, xAOD::numberOfTRTHoles) ) {
3808 msg() << "/numberOfTRTHoles: " << static_cast<int>(numberOfTRTHoles);
3809 } else {
3810 msg() << "/numberOfTRTHoles not found";
3811 }
3812 msg() << endmsg;
3813 }
3814 }
3815
3816 ATH_MSG_INFO("REGTEST ==========END of xAOD::TrackParticle DUMP===========");
3817 ATH_MSG_DEBUG("dumpxAODTrackParticles() succeeded");
3818
3819 return returnsc;
3820}
3821
3823
3824 ATH_MSG_DEBUG("In dumpxAODVertex()");
3825
3826 ATH_MSG_INFO("REGTEST ==========START of xAOD::Vertex DUMP===========");
3827
3828 const xAOD::VertexContainer* vertexContainer=0;
3829 StatusCode sc = evtStore()->retrieve(vertexContainer,"HLT_xAOD__VertexContainer_xPrimVx");
3830 if (sc.isFailure()) {
3831 ATH_MSG_INFO("REGTEST No vertex container");
3832 return StatusCode::FAILURE;
3833 }
3834 ATH_MSG_INFO("REGTEST VertexContainer retrieved");
3835
3836 xAOD::VertexContainer::const_iterator vertexItr = vertexContainer->begin();
3837 xAOD::VertexContainer::const_iterator vertexLast = vertexContainer->end();
3838
3839 for (int index = 0; vertexItr != vertexLast; ++vertexItr, ++index) {
3840 ATH_MSG_INFO("REGTEST Looking at Vertex " << index);
3841
3842 ATH_MSG_INFO("REGTEST Public Member Functions:");
3843 ATH_MSG_INFO("REGTEST x: " << (*vertexItr)->x()
3844 << "/y: " << (*vertexItr)->y()
3845 << "/z: " << (*vertexItr)->z());
3846
3847 ATH_MSG_INFO("REGTEST Public Member Functions:");
3848 ATH_MSG_INFO("REGTEST chiSquared: " << (*vertexItr)->chiSquared()
3849 << "/numberDoF: " << (*vertexItr)->numberDoF());
3850 }
3851
3852 ATH_MSG_INFO("REGTEST ==========END of xAOD::Vertex DUMP===========");
3853 ATH_MSG_DEBUG("dumpxAODVertex() succeeded");
3854
3855 return StatusCode::SUCCESS;
3856}
3857
3859 using namespace TrigCompositeUtils; // LinkInfo
3860 ATH_MSG_INFO( "REGTEST ==========START of TDT DUMP===========" );
3861 // Note: This minimal TDT dumper is for use during run-3 dev
3862 std::string chain = m_dumpNavForChain;
3863 if (chain.empty()) {
3864 chain = "HLT_.*";
3865 }
3866 std::vector<std::string> confChains = m_trigDec->getListOfTriggers(chain);
3867 for (const auto& item : confChains) {
3868 bool passed = m_trigDec->isPassed(item);
3869 ATH_MSG_INFO(" HLT Item " << item << " (numeric ID " << TrigConf::HLTUtils::string2hash(item, "Identifier") << ") passed raw? " << passed);
3870 if (m_trigDec->getNavigationFormat() == "TriggerElement") {
3871 ATH_MSG_DEBUG(" Skipping Run 2 features in this dumper");
3872 continue;
3873 }
3874 std::vector< LinkInfo<xAOD::IParticleContainer> > passFeatures = m_trigDec->features<xAOD::IParticleContainer>(item);
3875 if (passFeatures.size()) {
3876 ATH_MSG_INFO(" " << item << " Passed Final IParticle features size: " << passFeatures.size());
3877 for (const LinkInfo<xAOD::IParticleContainer>& li : passFeatures) {
3878 if (!li.isValid()) {
3879 ATH_MSG_WARNING(" Unable to access feature - link invalid.");
3880 } else {
3881 try {
3882 std::string state = "ACTIVE";
3883 if (li.state == ActiveState::INACTIVE) state = "INACTIVE";
3884 else if (li.state == ActiveState::UNSET) state = "UNSET";
3885 ATH_MSG_INFO(" IParticle Feature from " << li.link.dataID() << " index:" << li.link.index() << " pt:" << (*li.link)->pt() << " eta:" << (*li.link)->eta() << " phi:" << (*li.link)->phi() << " state:" << state);
3886 } catch (const std::exception& e) {
3887 ATH_MSG_WARNING(" Unable to dereference feature {" << e.what() << "}");
3888 }
3889 }
3890 }
3891 }
3892 std::vector< LinkInfo<xAOD::IParticleContainer> > passAndFailFeatures = m_trigDec->features<xAOD::IParticleContainer>(item, TrigDefs::includeFailedDecisions);
3893 if (passAndFailFeatures.size()) {
3894 ATH_MSG_INFO(" " << item << " Passed+Failed Final IParticle features size: " << passAndFailFeatures.size());
3895 for (const LinkInfo<xAOD::IParticleContainer>& li : passAndFailFeatures) {
3896 if (!li.isValid()) {
3897 ATH_MSG_WARNING(" Unable to access feature - link invalid.");
3898 } else {
3899 try {
3900 std::string state = "ACTIVE";
3901 if (li.state == ActiveState::INACTIVE) state = "INACTIVE";
3902 else if (li.state == ActiveState::UNSET) state = "UNSET";
3903 ATH_MSG_INFO(" IParticle Feature from " << li.link.dataID() << " index:" << li.link.index() << " pt:" << (*li.link)->pt() << " eta:" << (*li.link)->eta() << " phi:" << (*li.link)->phi() << " state:" << state);
3904 } catch (const std::exception& e) {
3905 ATH_MSG_WARNING(" Unable to dereference feature {" << e.what() << "}");
3906 }
3907 }
3908 }
3909 }
3910 std::vector< LinkInfo<xAOD::IParticleContainer> > allFeatures = m_trigDec->features<xAOD::IParticleContainer>(item, TrigDefs::includeFailedDecisions, "", TrigDefs::allFeaturesOfType);
3911 if (allFeatures.size()) {
3912 ATH_MSG_INFO(" " << item << " Passed+Failed ALL IParticle features size: " << allFeatures.size());
3913 for (const LinkInfo<xAOD::IParticleContainer>& li : allFeatures) {
3914 if (!li.isValid()) {
3915 ATH_MSG_WARNING(" Unable to access feature - link invalid.");
3916 } else {
3917 try {
3918 std::string state = "ACTIVE";
3919 if (li.state == ActiveState::INACTIVE) state = "INACTIVE";
3920 else if (li.state == ActiveState::UNSET) state = "UNSET";
3921 ATH_MSG_INFO(" IParticle Feature from " << li.link.dataID() << " index:" << li.link.index() << " pt:" << (*li.link)->pt() << " eta:" << (*li.link)->eta() << " phi:" << (*li.link)->phi() << " state:" << state);
3922 } catch (const std::exception& e) {
3923 ATH_MSG_WARNING(" Unable to dereference feature {" << e.what() << "}");
3924 }
3925 }
3926 }
3927 }
3928 }
3929
3930 if (m_trigDec->getNavigationFormat() == "TrigComposite") {
3931 // Check associateToEventView helper function
3932 std::vector< LinkInfo<xAOD::IParticleContainer> > muons = m_trigDec->features<xAOD::IParticleContainer>("HLT_mu24_idperf_L1MU20", TrigDefs::Physics, "HLT_MuonL2CBInfo");
3933 SG::ReadHandle<xAOD::TrackParticleContainer> muonTracksReadHandle(m_muonTracksKey, Gaudi::Hive::currentContext());
3934 for (const LinkInfo<xAOD::IParticleContainer>& mu : muons) {
3935 // Note: auto here refers to type std::pair< xAOD::TrackParticleContainer::const_iterator, xAOD::TrackParticleContainer::const_iterator>
3936 const auto roiTrackItPair = m_trigDec->associateToEventView<xAOD::TrackParticleContainer>(muonTracksReadHandle, mu, "roi");
3937 const xAOD::TrackParticleContainer::const_iterator startIt = roiTrackItPair.first;
3938 const xAOD::TrackParticleContainer::const_iterator stopIt = roiTrackItPair.second;
3939 ATH_MSG_INFO("Muon pT: " << (*mu.link)->pt() << " is from the same ROI as tracks with index "
3940 << std::distance(muonTracksReadHandle->begin(), startIt) << "-" << std::distance(muonTracksReadHandle->begin(), stopIt)
3941 << ", which is " << std::distance(startIt, stopIt) << " tracks, out of " << muonTracksReadHandle->size() << " total tracks.");
3942 for (xAOD::TrackParticleContainer::const_iterator it = startIt; it != stopIt; ++it) {
3943 ATH_MSG_VERBOSE(" -- Track " << std::distance(startIt, it) << " in this ROI, pT: " << (*it)->pt() );
3944 }
3945 }
3946 }
3947
3948 ATH_MSG_INFO( "REGTEST ==========END of TDT DUMP===========" );
3949 return StatusCode::SUCCESS;
3950}
3951
3953 ATH_MSG_INFO( "REGTEST ==========START of xAOD::TrigCompositeContainer DUMP===========" );
3954
3957 const CLID TrigCompositeCLID = static_cast<CLID>( ClassID_traits< xAOD::TrigCompositeContainer >::ID() );
3958 evtStore()->keys(TrigCompositeCLID, m_dumpTrigCompositeContainers);
3959 std::string typeNameTC;
3960 ATH_CHECK(m_clidSvc->getTypeNameOfID(TrigCompositeCLID, typeNameTC));
3961 ATH_MSG_DEBUG("dumpTrigComposite got " << m_dumpTrigCompositeContainers.size() << " keys for " << typeNameTC);
3962 } else {
3963 ATH_MSG_DEBUG("Using supplied " << m_dumpTrigCompositeContainers.size() << " keys");
3964 }
3965
3966 for ( const std::string & key: m_dumpTrigCompositeContainers ) {
3967 // get the collection
3969 ATH_MSG_WARNING("Absent TrigCompositeContainer: " << key );
3970 continue;
3971 }
3972 ATH_MSG_DEBUG( "#################### Dumping container of : " << key );
3973 const xAOD::TrigCompositeContainer* cont= nullptr;
3974 ATH_CHECK( evtStore()->retrieve( cont, key ) );
3975
3976 size_t count = 0;
3977 for ( auto tc: *cont ) {
3978 ATH_MSG_DEBUG("########## ELEMENT " << count++);
3979 ATH_MSG_DEBUG(*tc);
3980 // Get the objects we know of
3981 for (size_t i = 0; i < tc->linkColNames().size(); ++i) ATH_CHECK(checkTrigCompositeElementLink(tc, i));
3982 }
3983 }
3984 ATH_MSG_INFO( "REGTEST ==========END of xAOD::TrigCompositeContainer DUMP===========" );
3985 return StatusCode::SUCCESS;
3986}
3987
3988
3989
3991
3992 const std::string name = tc->linkColNames().at(element);
3993 const CLID clid = static_cast<CLID>(tc->linkColClids().at(element));
3994
3996
3997 const ElementLink<TrigRoiDescriptorCollection> elementLink = tc->objectLink<TrigRoiDescriptorCollection>(name);
3998 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to TrigRoiDescriptorCollection, link name:'" << name << "'");
3999 else ATH_MSG_DEBUG(" Dereferenced link '" << name << "'' to TrigRoiDescriptor:" << *elementLink);
4000
4001 } else if (clid == ClassID_traits< DataVector< LVL1::RecEmTauRoI > >::ID()) { // There could be a few ROI types....
4002 // CLASS_DEF( DataVector< LVL1::RecEmTauRoI >, 6256, 1 )
4003
4005 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to LVL1::RecEmTauRoI, link name:'" << name << "'");
4006 else ATH_MSG_DEBUG(" Dereferenced link '" << name << "' to LVL1::RecEmTauRoI:" << *elementLink);
4007
4009
4010 const ElementLink<xAOD::TrigCompositeContainer> elementLink = tc->objectLink<xAOD::TrigCompositeContainer>(name);
4011 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to TrigComposite, link name:'" << name << "'");
4012 else ATH_MSG_DEBUG(" Dereferenced link '" << name << "' to TrigComposite, TC name:'" << (*elementLink)->name() << "'");
4013
4014 } else if (clid == ClassID_traits< ViewContainer >::ID()) {
4015
4016 const ElementLink<ViewContainer> elementLink = tc->objectLink<ViewContainer>(name);
4017 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to View, link name:'" << name << "'");
4018 else ATH_MSG_DEBUG(" Dereferenced link '" << name << "' to View:'" << *elementLink);
4019
4020 } else if (name == "feature") {
4021
4023
4024 const ElementLink<xAOD::TrigEMClusterContainer> elementLink = tc->objectLink<xAOD::TrigEMClusterContainer>(name);
4025 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to xAOD::TrigEMClusterContainer 'feature'");
4026 else ATH_MSG_DEBUG(" Dereferenced xAOD::TrigEMClusterContainer link 'feature', Energy:" << (*elementLink)->energy());
4027
4029
4030 const ElementLink<xAOD::TrigMissingETContainer> elementLink = tc->objectLink<xAOD::TrigMissingETContainer>(name);
4031 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to xAOD::TrigMissingETContainer 'feature'");
4032 else ATH_MSG_DEBUG(" Dereferenced xAOD::TrigMissingETContainer link 'feature', ex:" << (*elementLink)->ex() << " ey:" << (*elementLink)->ey());
4033
4034 } else {
4035
4036 try {
4037 const ElementLink<xAOD::IParticleContainer> elementLink = tc->objectLink<xAOD::IParticleContainer>(name);
4038 if (!elementLink.isValid()) ATH_MSG_WARNING(" Invalid element link to 'feature'");
4039 else ATH_MSG_DEBUG(" Dereferenced IParticle link 'feature', pt:" << (*elementLink)->pt() << " eta:" << (*elementLink)->eta() << " phi:" << (*elementLink)->phi());
4040 } catch(std::runtime_error& e) {
4041 ATH_MSG_WARNING(" Cannot dereference 'feature' as IParticle: '" << e.what() << "'");
4042 }
4043
4044 }
4045
4046 } else {
4047 ATH_MSG_DEBUG(" Ignoring link to '" << name << "' with link CLID " << clid);
4048 }
4049
4050 return StatusCode::SUCCESS;
4051
4052}
4053
4054
4055StatusCode TrigEDMChecker::TrigCompositeNavigationToDot(std::string& returnValue, bool& pass) {
4056
4057 using namespace TrigCompositeUtils;
4058
4059 // This constexpr is evaluated at compile time
4060 const CLID TrigCompositeCLID = static_cast<CLID>( ClassID_traits< xAOD::TrigCompositeContainer >::ID() );
4061 std::vector<std::string> keys;
4062 if ( m_dumpTrigCompositeContainers.size() == 0 ) {
4063 evtStore()->keys(TrigCompositeCLID, keys);
4064 }
4065 else {
4067 }
4068 std::string typeNameTC;
4069 ATH_CHECK(m_clidSvc->getTypeNameOfID(TrigCompositeCLID, typeNameTC));
4070 ATH_MSG_DEBUG("Got " << keys.size() << " keys for " << typeNameTC);
4071
4073 DecisionIDContainer chainIDs;
4074 chainIDs.insert( chainID.numeric() );
4075
4076 std::set<int> converted;
4077
4078 const Trig::ChainGroup* cg = m_trigDec->getChainGroup(m_dumpNavForChain);
4080 std::vector<std::string> chains = cg->getListOfTriggers();
4081 for (const std::string& chain : chains) {
4082 const TrigConf::HLTChain* hltChain = m_trigDec->ExperimentalAndExpertMethods().getChainConfigurationDetails(chain);
4083 const HLT::Identifier chainID_tmp( hltChain->chain_name() );
4084 chainIDs.insert( chainID_tmp.numeric() );
4085 const std::vector<size_t> legMultiplicites = hltChain->leg_multiplicities();
4086 if (legMultiplicites.size() == 0) {
4087 ATH_MSG_ERROR("chain " << chainID_tmp << " has invalid configuration, no multiplicity data.");
4088 } else if (legMultiplicites.size() > 1) {
4089 // For multi-leg chains, the DecisionIDs are handled per leg.
4090 // We don't care here exactly how many objects are required per leg, just that there are two-or-more legs
4091 for (size_t legNumeral = 0; legNumeral < legMultiplicites.size(); ++legNumeral) {
4092 const HLT::Identifier legID = TrigCompositeUtils::createLegName(chainID_tmp, legNumeral);
4093 chainIDs.insert( legID.numeric() );
4094 }
4095 }
4096 }
4097
4098 // First retrieve them all (this should not be needed in future)
4099 const DecisionContainer* container = nullptr;
4100 for (const std::string& key : keys) ATH_CHECK( evtStore()->retrieve( container, key ) );
4101
4102 std::stringstream ss;
4103 ss << "digraph {" << std::endl;
4104 ss << " node [shape=rectangle]" << std::endl;
4105 ss << " rankdir = BT" << std::endl;
4106
4107 // Now process them
4108 for (const std::string& key : keys) {
4109 if ( not m_doDumpAllTrigComposite ) {
4110 if ( not key.starts_with( "HLTNav_") ) { // Nav containers should always start with HLTNav_
4111 continue;
4112 }
4113 }
4114 ATH_CHECK( evtStore()->retrieve( container, key ) );
4115 ATH_MSG_DEBUG("Processing collection " << key << " to be added to the navigation graph");
4116 // ss << " rank=same" << std::endl; // dot cannot handle this is seems
4117 bool writtenHeader = false;
4118 for (const Decision* tc : *container ) {
4119 // Output my ID in the graph.
4120 const DecisionContainer* container = dynamic_cast<const DecisionContainer*>( tc->container() );
4121 const ElementLink<DecisionContainer> selfEL = ElementLink<DecisionContainer>(*container, tc->index());
4122 std::vector<ElementLink<DecisionContainer>> seedELs = tc->objectCollectionLinks<DecisionContainer>("seed");
4123 const bool isHypoAlgNode = tc->name() == "H";
4124 const bool isComboHypoAlgNode = tc->name() == "CH";
4125 const std::vector<DecisionID>& decisions = tc->decisions();
4126 const uint32_t selfKey = selfEL.key();
4127 const uint32_t selfIndex = selfEL.index();
4128 if (m_dumpNavForChain != "") {
4129 bool doDump = false;
4130 // Check me
4131 for (DecisionID id : decisions) {
4132 if (chainIDs.count(id) == 1) {
4133 doDump = true;
4134 break;
4135 }
4136 }
4137 // Check my seeds
4138 if (!doDump and (isHypoAlgNode or isComboHypoAlgNode) and not m_excludeFailedHypoNodes) {
4139 for (const ElementLink<DecisionContainer>& s : seedELs) {
4140 const std::vector<DecisionID>& seedDecisions = (*s)->decisions();
4141 for (DecisionID id : seedDecisions) {
4142 if (chainIDs.count(id) == 1) {
4143 doDump = true;
4144 break;
4145 }
4146 }
4147 }
4148 }
4149 if (!doDump) {
4150 continue;
4151 }
4152 }
4153 if (!writtenHeader) {
4154 writtenHeader = true;
4155 ss << " subgraph " << key << " {" << std::endl;
4156 ss << " label=\"" << key << "\"" << std::endl;
4157 }
4158 const std::string scheme = "rdpu9";
4159 std::string color = "1";
4160 if (tc->name() == "L1") { color = "1"; }
4161 else if (tc->name() == "F") { color = "2"; }
4162 else if (tc->name() == "IM") { color = "3"; }
4163 else if (tc->name() == "H") { color = "4"; }
4164 else if (tc->name() == "CH") { color = "5"; }
4165 else if (tc->name() == "SF") { color = "6"; }
4166 else if (tc->name() == "HLTPassRaw") { color = "7"; }
4167 ss << " \"" << selfKey << "_" << selfIndex << "\" [colorscheme="<<scheme<<",style=filled,fillcolor="<<color<<",label=<<B>Container</B>=" << typeNameTC;
4168 if (tc->name() != "") ss << " <B>Name</B>=" << tc->name();
4169 ss << "<BR/><B>Key</B>=" << key << "<BR/><B>Index</B>=" << selfIndex;
4170 const bool isRemapped = tc->isRemapped();
4171 if (isHypoAlgNode) ss << " <B>linksRemapped</B>=" << (isRemapped ? "Y" : "N");
4172 if (decisions.size() > 0) {
4173 ss << "<BR/><B>Pass</B>=";
4174 size_t c = 0;
4175 for (unsigned decisionID : decisions) {
4176 HLT::Identifier dID(decisionID);
4177 std::string highlight = (dID.numeric() == chainID.numeric() ? "<B>[CHAIN:" : "");
4178 if (highlight == "" and chainIDs.count(dID.numeric()) == 1 and TrigCompositeUtils::isLegId(dID)) {
4179 highlight = "<B>[LEG" + std::to_string(TrigCompositeUtils::getIndexFromLeg(dID)) + ":";
4180 }
4181 ss << std::hex << highlight << decisionID << (!highlight.empty() ? "]</B>" : "") << std::dec << ",";
4182 if (c++ == 5) {
4183 ss << "<BR/>";
4184 c = 0;
4185 }
4186 }
4187 }
4188 ss << ">]" << std::endl;
4189 // Output all the things I link to
4190 size_t seedCount = 0;
4191 for (size_t i = 0; i < tc->linkColNames().size(); ++i) {
4192 const std::string link = tc->linkColNames().at(i);
4193 if (link == "seed" || link == "seed__COLL") {
4194 ElementLink<DecisionContainer> seedEL = seedELs.at(seedCount++);
4195 const uint32_t seedKey = tc->linkColKeys().at(i);
4196 const uint32_t seedIndex = tc->linkColIndices().at(i);
4197 ATH_CHECK( seedKey == seedEL.key() );
4198 ATH_CHECK( seedIndex == seedEL.index() );
4199 if (m_dumpNavForChain != "") { // Only print "seed" link to nodes we include in our search
4200 const std::vector<DecisionID> seedDecisions = (*seedEL)->decisions();
4201 bool doSeedLink = false;
4202 for (DecisionID id : seedDecisions) {
4203 if (chainIDs.count(id) == 1) {
4204 doSeedLink = true;
4205 break;
4206 }
4207 }
4208 if (!doSeedLink) {
4209 continue;
4210 }
4211 }
4212 ss << " \"" << selfKey << "_" << selfIndex << "\" -> \"" << seedKey << "_" << seedIndex << "\" [colorscheme="<<scheme<<",color=9,fontcolor=8,label=\"seed\"]" << std::endl;
4213 } else {
4214 // Start with my class ID
4215 std::string linkColour = "12";
4216 std::string linkBackground = "11";
4217 const std::string extScheme = "paired12";
4218 if (link == "roi") { linkColour="2"; linkBackground="1"; }
4219 else if (link == "initialRoI") { linkColour="2"; linkBackground="1"; }
4220 else if (link == "initialRecRoI") { linkColour="8"; linkBackground="7"; }
4221 else if (link == "feature") { linkColour="4"; linkBackground="3"; }
4222 else if (link == "view") { linkColour="10"; linkBackground="9"; }
4223 const CLID linkCLID = static_cast<CLID>( tc->linkColClids().at(i) );
4224 // Use it to get my class name
4225 std::string tname;
4226 ATH_CHECK(m_clidSvc->getTypeNameOfID(linkCLID, tname));
4227 // Now get the sgkey I'm linking to & the index
4228 const SG::sgkey_t key = (isRemapped ? static_cast<SG::sgkey_t>( tc->linkColKeysRemap().at(i) ) : static_cast<SG::sgkey_t>( tc->linkColKeys().at(i) ));
4229 const unsigned index = (isRemapped ? tc->linkColIndicesRemap().at(i) : tc->linkColIndices().at(i));
4230 // Look it up
4231 CLID checkCLID;
4232 const std::string* keyStr = evtStore()->keyToString(key, checkCLID); // I don't own this str
4233 if (keyStr != nullptr && checkCLID != linkCLID) {
4234 std::string tnameOfCheck;
4235 m_clidSvc->getTypeNameOfID(checkCLID, tnameOfCheck).ignore(); // Might be invalid. But we don't care.
4236 ATH_MSG_ERROR("Inconsistent CLID " << checkCLID << " [" << tnameOfCheck << "] stored in storegate for key " << key
4237 << ". We were expecting " << linkCLID << " [" << tname << "]");
4238 }
4239
4240 std::string tnameEscape;
4241 for (std::string::const_iterator i = tname.begin(); i != tname.end(); ++i) {
4242 unsigned char c = *i;
4243 if (c == '<') {
4244 tnameEscape += "&lt;";
4245 } else if (c == '>') {
4246 tnameEscape += "&gt;";
4247 } else {
4248 tnameEscape += c;
4249 }
4250 }
4251
4252 // Print
4253 ss << " \"" << selfKey << "_" << selfIndex << "\" -> \"" << key << "_" << index << "\" ";
4254 ss << "[colorscheme="<<extScheme<<",color="<<linkColour<<",fontcolor="<<linkColour<<",arrowhead=empty,label=\"" << link << "\"]" << std::endl;
4255
4256 // Check if we are linking to self (e.g. a dummy-feature), don't output a new box for this
4257 const bool linkToSelf = (selfKey == key and selfIndex == index);
4258
4259 if (converted.count(key + index) == 0 and not linkToSelf) {
4260 ss << " \"" << key << "_" << index << "\" [colorscheme="<<extScheme<<",style=filled,fillcolor="<<linkBackground<<",label=<<B>Container</B>=" << tnameEscape << "<BR/><B>Key</B>=";
4261 if (keyStr != nullptr) ss << *keyStr;
4262 else ss << "[<I>KEY "<< key <<" NOT IN STORE</I>] ";
4263 ss << "<BR/><B>Index</B>=" << index << ">]";
4264 }
4265
4266 converted.insert(key + index);
4267 }
4268 }
4269 }
4270 if (writtenHeader) {
4271 ss << " }" << std::endl;
4272 }
4273 }
4274
4275 ss << "}" << std::endl;
4276
4277 returnValue.assign( ss.str() );
4278 return StatusCode::SUCCESS;
4279}
4280
4281StatusCode TrigEDMChecker::dumpNavigation(const EventContext& ctx)
4282{
4283 // Get object from store
4284 const xAOD::TrigNavigation * navigationHandle = nullptr;
4285 ATH_CHECK( evtStore()->retrieve( navigationHandle, m_navigationHandleKey.key() ) );
4286 // Proper version doesn't work - conversion issue?
4287 //SG::ReadHandle< xAOD::TrigNavigation > navigationHandle = SG::ReadHandle< xAOD::TrigNavigation >( m_navigationHandleKey );
4288 //if ( !navigationHandle.isValid() ) ATH_MSG_FATAL( "Could not retrieve navigation" );
4289
4290 // Get serialised navigation info
4291 const std::vector< unsigned int > serialisedNavigation = navigationHandle->serialized();
4292 ATH_MSG_INFO( "Serialised navigation size: " << serialisedNavigation.size() );
4293
4294 // Convert the input
4295 HLT::Navigation* testNav = m_navigationTool.get();
4296 testNav->deserialize( serialisedNavigation );
4297
4298 // Make a map of TE name hashes
4299 const xAOD::TriggerMenuContainer * testMenu = nullptr;
4300 ATH_CHECK( inputMetaStore()->retrieve( testMenu, "TriggerMenu" ) );
4301 std::map< int, std::string > hash2string;
4302 for ( auto const& sequence : testMenu->front()->sequenceInputTEs() ) {
4303 for ( auto const& name : sequence ) {
4305 hash2string[ hash ] = name;
4306 }
4307 }
4308
4309 // Map TE names to chain names
4310 unsigned int chainCounter = 0;
4311 std::map< int, std::string > hash2chain;
4312 for ( auto const& chain : testMenu->front()->chainSignatureOutputTEs() ) {
4313
4314 // Find the chain name
4315 std::string chainName = testMenu->front()->chainNames()[ chainCounter ];
4316 ++chainCounter;
4317
4318 // Find all associated TEs
4319 for ( auto const& signature : chain ) {
4320 for ( auto const& name : signature ) {
4322 hash2string[ hash ] = name; // for decoding
4323 hash2chain[ hash ] = chainName;
4324 }
4325 }
4326 }
4327
4328 // Define a map of TE features, to the TEs that use them. Needs a custom sort lambda
4329 auto cmpLambda = []( const HLT::TriggerElement::FeatureAccessHelper &lhs, const HLT::TriggerElement::FeatureAccessHelper &rhs) {
4330
4331 // Compare indices if CLID matches
4332 if ( lhs.getCLID() == rhs.getCLID() ) return ( lhs.getIndex() < rhs.getIndex() );
4333
4334 // Compare CLIDs
4335 else return ( lhs.getCLID() < rhs.getCLID() );
4336 };
4337 std::map< HLT::TriggerElement::FeatureAccessHelper, std::vector< HLT::TriggerElement* >, decltype(cmpLambda) > feature2element(cmpLambda);
4338
4339 // Retrieve all TE features and add them to the map
4340 std::vector< HLT::TriggerElement* > allTEs;
4341 testNav->getAll( allTEs, false );
4342 for ( auto element : allTEs ) {
4343
4344 // Add TE features to the big map
4345 for ( auto helper : element->getFeatureAccessHelpers() ) {
4346 feature2element[ helper ].push_back( element );
4347 }
4348 }
4349
4350 // Debug - output all TEs and their ancestors
4351 // No duplication - only print terminal nodes
4352 for ( auto element : allTEs ) {
4353 if ( testNav->isTerminalNode( element ) ) {
4354 ATH_MSG_INFO( "+++++++++++ " << hash2string[ element->getId() ] << " is terminal node" );
4355 ATH_MSG_INFO( "ptr: " << element );
4356 std::queue< HLT::TriggerElement* > allAncestors;
4357 allAncestors.push( element );
4358 while ( allAncestors.size() ) {
4359
4360 HLT::TriggerElement * thisElement = allAncestors.front();
4361 allAncestors.pop();
4362 auto theseAncestors = thisElement->getRelated( HLT::TriggerElement::Relation::seededByRelation );
4363
4364 // Dump TE
4365 ATH_MSG_INFO( "te: " << thisElement->getId() << " " << hash2string[ thisElement->getId() ] );
4366 ATH_MSG_INFO( " chain: " << hash2chain[ thisElement->getId() ] );
4367 for ( const auto& helper : thisElement->getFeatureAccessHelpers() ) {
4368 ATH_MSG_INFO( " feat: " << helper );
4369 }
4370 ATH_MSG_INFO( theseAncestors.size() << " ancestors" );
4371
4372 // Examine ancestors
4373 for ( auto ancestor : theseAncestors ) {
4374 allAncestors.push( ancestor );
4375 }
4376 }
4377 }
4378 }
4379
4380 // Make the decision container
4382 auto decisionOutput = outputNavigation.ptr();
4383
4384 // Find unique chains associated with a feature
4385 std::map< HLT::TriggerElement const*, std::vector< int > > element2decisions;
4386 for ( const auto& pair : feature2element ) {
4387
4388 // Get the feature info
4389 std::string featureName = testNav->label( pair.first.getCLID(), pair.first.getIndex().subTypeIndex() );
4390 auto sgKey = evtStore()->stringToKey( featureName, pair.first.getCLID() );
4391
4392 // Store RoIs with appropriate label ?
4393 std::string storeFeatureName = "feature";
4394/* if ( pair.first.getCLID() == ClassID_traits< TrigRoiDescriptor >::ID() ) {
4395 storeFeatureName = "roi";
4396 }*/
4397
4398 // Make a decision object for the feature
4399 auto decision = TrigCompositeUtils::newDecisionIn( decisionOutput );
4400 decision->typelessSetObjectLink( storeFeatureName, sgKey, pair.first.getCLID(), pair.first.getIndex().objectsBegin(), pair.first.getIndex().objectsEnd() );
4401
4402 // Examine associated TEs, look for chains
4403 std::set< std::string > passedChains;
4404 for ( HLT::TriggerElement const* element : pair.second ) {
4405
4406 // TODO - find out what chains actually passed!
4407 passedChains.insert( hash2chain[ element->getId() ] );
4408
4409 // Index the TE
4410 int decisionNumber = decisionOutput->size() - 1;
4411 element2decisions[ element ].push_back( decisionNumber );
4412 }
4413
4414 // Store unique chains in the decision
4415 for ( auto& chain : passedChains ) {
4417 }
4418 }
4419
4420 // Store decision ancestry (had to go through once before to ensure indices populated)
4421 unsigned int decisionCounter = 0;
4422 for ( const auto& pair : feature2element ) {
4423
4424 // Get current decision
4425 auto decision = decisionOutput->at( decisionCounter );
4426 ++decisionCounter;
4427
4428 // Find ancestor TEs
4429 for ( auto element : pair.second ) {
4430 auto theseAncestors = element->getRelated( HLT::TriggerElement::Relation::seededByRelation );
4431 for ( auto ancestor : theseAncestors ) {
4432 for ( int decisionIndex : element2decisions[ ancestor ] ) {
4433 TrigCompositeUtils::linkToPrevious( decision, m_decisionsKey.key(), decisionIndex );
4434 }
4435 }
4436 }
4437 }
4438
4439 return StatusCode::SUCCESS;
4440}
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
Scalar theta() const
theta method
#define endmsg
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
#define ATH_MSG_INFO(x)
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
Helper functions intended to be called from the debugger.
uint32_t CLID
The Class ID type.
ElementLink< xAOD::TrackParticleContainer > linkTrack(const xAOD::TrackParticle *trk)
This file defines helper classes to deal with jet constituents.
bool passed(DecisionID id, const DecisionIDContainer &)
checks if required decision ID is in the set of IDs in the container
unsigned int uint
static Double_t ss
static Double_t tc
static Double_t sc
unsigned int DecisionID
std::set< DecisionID > DecisionIDContainer
xAOD::TrigCompositeContainer DecisionContainer
void diff(const Jet &rJet1, const Jet &rJet2, std::map< std::string, double > varDiff)
Difference between jets - Non-Class function required by trigger.
Definition Jet.cxx:631
Declaration of tau jet transient class.
size_t size() const
Number of registered mappings.
static const int maxRepWarnings
Adapted from code by A.Hamilton to check trigger EDM; R.Goncalo 21/11/07.
StatusCode TrigEDMChecker::dumpTrigMissingET ATLAS_NOT_THREAD_SAFE()
Install fatal handler with default options.
@ TauJet
DataVector< SG::View > ViewContainer
View container for recording in StoreGate.
Definition View.h:290
Define macros for attributes used to control the static checker.
#define ATLAS_THREAD_SAFE
Basic detail class containing information for track and calo seeded tau reconstruction algorithms.
Object for taus common for ESD and AOD.
const ElementLink< CaloClusterContainer > cellClusterLink() const
ElementLink to cell CaloCluster, might be invalid the ID variables are calculated from this cluster i...
unsigned int numTrack() const
number of Tracks associated to Tau candidate, CAUTION not to be confused with numberOfTracks()!
const ElementLinkVector< Rec::TrackParticleContainer > & trackLinkVector() const
Get track link vector.
const ElementLink< CaloClusterContainer > clusterLink() const
ElementLink to seed CaloCluster, DEPRECATED as of release 13
const ElementLink< JetCollection > jetLink() const
ElementLink to seed Jet, might be invalid if not seeded from a Jet
TauJetParameters::Author author() const
Author of this object (DO NOT USE! only for backward compatibility).
const ServiceHandle< StoreGateSvc > & inputMetaStore() const
Const accessor for the input metadata store.
AthAnalysisAlgorithm(const std::string &name)
Constructor taking just a name.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
ServiceHandle< StoreGateSvc > & evtStore()
hash_t hash(const std::string &histName) const
Method to calculate a 32-bit hash from a string.
const ElementLink< MuonFeatureContainer > & muFastTrackLink(void) const
const ElementLink< TrigInDetTrackCollection > & IDTrackLink(void) const
Derived DataVector<T>.
Definition DataVector.h:795
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:838
const T * at(size_type n) const
Access an element, as an rvalue.
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
size_type size() const noexcept
Returns the number of elements in the collection.
HLT::HLTResult is sumarising result of trigger decision evaluation (online/offline) It contains basic...
Definition HLTResult.h:49
bool isAccepted() const
gets HLT decision
Definition HLTResult.h:129
bool isPassThrough() const
forced-accepted (FA) event configuration the FA request(s) are set per chain and hlt level by the tig...
Definition HLTResult.h:144
bool isEmpty() const
true if result is empty
unsigned int size() const
TrigCompositeUtils::DecisionID numeric() const
numeric ID
bool deserialize(const std::vector< uint32_t > &input)
The Navigation class, organizes TriggerElements into the tree structure.
Definition Navigation.h:100
void getAll(std::vector< TriggerElement * > &output, const bool activeOnly=true) const
The query returning a collection of all TriggerElements.
static bool isTerminalNode(const TriggerElement *te)
queries if node is terminal (no more TriggerElement are seeded by it)
std::string label(class_id_type clid, const index_or_label_type &sti_or_label) const
the FeatureAccessHelper is a class used to keep track of features attached to this TE.
const ObjectIndex & getIndex() const
index in the external ojects array
TriggerElement is the basic ingreedient of the interface between HLT algorithms and the navigation It...
const std::vector< TriggerElement * > & getRelated(Relation rel) const
returns reference to the likns to other TriggerElements related by relation r
const std::vector< FeatureAccessHelper > & getFeatureAccessHelpers() const
returns all features which ara attached to this TE
virtual double phi() const =0
phi in [-pi,pi[
virtual double pt() const =0
transverse momentum
virtual double p() const =0
momentum magnitude
virtual double eta() const =0
pseudo rapidity
Top level AOD object storing LVL1 RoIs.
Definition LVL1_ROI.h:43
const emtaus_type & getEmTauROIs() const
Get all the em/tau RoIs in the event.
Definition LVL1_ROI.h:65
float zeta(void) const
Definition MuonFeature.h:53
int saddress(void) const
Definition MuonFeature.h:47
float pt(void) const
Definition MuonFeature.h:48
int roiId(void) const
Definition MuonFeature.h:46
float beta(void) const
Definition MuonFeature.h:55
float phi(void) const
Definition MuonFeature.h:51
float dir_zeta(void) const
Definition MuonFeature.h:54
float radius(void) const
Definition MuonFeature.h:49
float dir_phi(void) const
Definition MuonFeature.h:52
float eta(void) const
Definition MuonFeature.h:50
virtual double pt() const
transverse momentum
virtual double pt() const
get pt data member
virtual double eta() const
get eta data member
virtual double phi() const
get phi data member
const Trk::Perigee * measuredPerigee() const
Accessor method for Perigee.
a const_iterator facade to DataHandle.
Definition SGIterator.h:164
pointer_type ptr()
Dereference the pointer.
const std::string & key() const
Get the key string with which the current object was stored.
Class to store TileMuId quantities.
Definition TileMu.h:25
float eta() const
Eta (computed as the average of the eta values of the TileCal cells where the muon goes through).
Definition TileMu.h:43
float phi() const
Phi (average value at the TileCal radius).
Definition TileMu.h:46
float quality() const
Quality flag (0 or 1): set to 0 if the "energy deposition path" is MIP like in all three samples (tig...
Definition TileMu.h:60
const std::vector< float > & enedep() const
Energy deposition by the muons in TileCal: 1st component: energy deposited in innermost layer (A cell...
Definition TileMu.h:54
HLT chain configuration information.
const std::vector< size_t > & leg_multiplicities() const
static HLTHash string2hash(const std::string &, const std::string &category="TE")
hash function translating TE names into identifiers
SG::WriteHandleKey< TrigCompositeUtils::DecisionContainer > m_decisionsKey
StatusCode dumpTrigPassBits()
virtual StatusCode execute(const EventContext &ctx) override
Execute method.
StatusCode dumpTrigEFBphysContainer()
bool m_doDumpxAODTrigMissingET
StatusCode dumpxAODTrackParticle()
StatusCode dumpNavigation(const EventContext &ctx)
ToolHandle< Rec::IMuonPrintingTool > m_muonPrinter
PublicToolHandle< Trig::TrigDecisionTool > m_trigDec
StatusCode dumpHLTResult()
StatusCode dumpTrigComposite()
Dump information on TrigComposite collections.
StatusCode dumpxAODTrigMinBias()
StatusCode dumpTrigL2BphysContainer()
bool m_doDumpTrigTauContainer
bool m_doDumpTrigVertexCollection
bool m_doDumpTrigEFBphysContainer
StatusCode TrigCompositeNavigationToDot(std::string &returnValue, bool &pass)
Construct graph of HLT navigation in Run-3.
StatusCode checkTrigCompositeElementLink(const xAOD::TrigComposite *tc, size_t element)
Dump details on element links within TrigComposites.
bool m_doDumpTrigPhotonContainer
bool m_doDumpxAODTrigEMClusterContainer
bool m_doDumpTrigMuonEFContainer
SG::ReadHandleKey< xAOD::TrigNavigation > m_navigationHandleKey
bool m_doDumpxAODTrigElectronContainer
StatusCode dumpLVL1_ROI()
StatusCode dumpxAODTrigMissingET()
ToolHandle< HLT::Navigation > m_navigationTool
ServiceHandle< ::IClassIDSvc > m_clidSvc
bool m_doDumpxAODElectronContainer
bool m_doDumpTrigL2BjetContainer
StatusCode dumpTrackParticleContainer()
bool m_doDumpTrigElectronContainer
StatusCode dumpxAODElectronContainer()
StatusCode dumpxAODPhotonContainer()
bool m_doDumpTrigEMClusterContainer
bool m_doDumpxAODTauJetContainer
StatusCode dumpxAODVertex()
bool m_doDumpTrigL2BphysContainer
bool m_doDumpAll
a handle on Store Gate for access to the Event Store
std::vector< std::string > m_dumpTrigCompositeContainers
bool m_doDumpTrigEFBjetContainer
StatusCode dumpxAODTrigPhotonContainer()
bool m_doDumpTrigMuonEFIsolationContainer
void dumpTrigSpacePointCounts()
bool m_doDumpTrigTauTracksInfo
bool m_doDumpTrackParticleContainer
bool m_doDumpTrigMuonEFInfoContainer
bool m_doDumpCombinedMuonFeature
bool m_doDumpTileTrackMuFeature
bool m_doDumpTrigCompsiteNavigation
Gaudi::Property< bool > m_excludeFailedHypoNodes
bool m_doDumpxAODTrigPhotonContainer
bool m_doDumpxAODPhotonContainer
StatusCode dumpxAODMuonContainer()
TrigEDMChecker(const std::string &name, ISvcLocator *pSvcLocator)
bool m_doDumpxAODTrackParticle
virtual ~TrigEDMChecker()
bool m_doDumpxAODJetContainer
StatusCode dumpxAODTrigElectronContainer()
bool m_doDumpTrigTauClusterContainer
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_muonTracksKey
bool m_doDumpxAODTrigEMCluster
bool m_doDumpAllTrigComposite
bool m_doDumpxAODMuonContainer
StatusCode dumpTDT()
void printMuonTrk(const TrigMuonEFTrack *muonTrack)
Gaudi::Property< std::string > m_dumpNavForChain
StatusCode dumpxAODJetContainer()
virtual StatusCode initialize() override
Class with calibrated variables for egamma clustering.
float ehad1() const
get hadronic Energy (first hadronic layer)
float weta2() const
get cluster width (based on a 3x5 cluster - 2nd layer)
float e277() const
get Energy in a 7x7 cluster (no calibration) around hottest cell
float fracs1() const
get Energy in a 7 strips (around hottest strip) minus energy in 3 strips divided by energy in 3 strip...
float Eta1() const
get Eta sampling 1 (strip layer)
float e237() const
get Energy in a 3x7 cluster (no calibration) around hottest cell
represents a LVL2 ID track
const Rec::TrackParticle * getIDTrackParticle() const
Get associated ID track.
TrigMuonEFCbTrack * CombinedTrack()
unsigned short int MuonType() const
TrigMuonEFTrack * ExtrapolatedTrack()
TrigMuonEFTrack * SpectrometerTrack()
const TrigMuonEFInfoTrackContainer * TrackContainer() const
bool hasTrack() const
EDM class for holding results of EF muon isolation calculation.
int trackPosition() const
Position of the muon in the TrigMuonEFInfoTrack container.
const TrigMuonEFInfoTrack * getEFMuonInfoTrack() const
Access the muon we calculated the isolation for.
const TrigMuonEFInfo * getMuonInfo() const
Access the muon info object we calculated the isolation for.
Contains basic information about trackc collection associated with Tau RoI.
float scalarPtSumCore() const
const P4PtEtaPhiM & threeFastestTracks() const
float leadingTrackPt() const
float scalarPtSumIso() const
bool isPassed(unsigned int condition=TrigDefs::Physics) const
tells if chain group passed
std::vector< std::string > getListOfTriggers() const
const Amg::Vector3D & momentum() const
Access method for the momentum.
Trk::RecVertex inherits from Trk::Vertex.
Definition RecVertex.h:44
const TrackSummary * trackSummary() const
accessor function for TrackSummary.
const Track * originalTrack() const
Return pointer to associated track.
double charge() const
Return charge of the particle.
const VxCandidate * reconstructedVertex() const
Get a pointer to the primary vertex.
A summary of the information contained by a track.
const Amg::Vector3D & position() const
return position of vertex
Definition Vertex.cxx:63
STL class.
virtual double eta() const
The pseudorapidity ( ) of the particle.
virtual double e() const
The total energy of the particle.
virtual double phi() const
The azimuthal angle ( ) of the particle.
@ ETACALOFRAME
Eta in the calo frame (for egamma).
@ PHICALOFRAME
Phi in the calo frame (for egamma).
A vector of jet constituents at the scale used during jet finding.
iterator begin() const
iterator on the first constituent
size_t size() const
number of constituents
iterator end() const
iterator after the last constituent
JetConstituentVector getConstituents() const
Return a vector of consituents. The object behaves like vector<const IParticle*>. See JetConstituentV...
Definition Jet_v1.cxx:149
uint32_t roiId() const
accessor method: ID of L1 RoI
float eta() const
accessor method: eta
pType particleType() const
accessor method: particle Type
float phi() const
accessor method: phi
float fitmass() const
accessor method: mass from vertex fit
float mass() const
accessor method: mass
float eta() const
get Eta (calibrated)
float phi() const
get Phi (calibrated)
float e237() const
get Energy in a 3x7 cluster (no calibration) around hottest cell
float eta1() const
get Eta sampling 1 (strip layer)
float e277() const
get Energy in a 7x7 cluster (no calibration) around hottest cell
float ehad1() const
get hadronic Energy (first hadronic layer)
float weta2() const
get cluster width (based on a 3x5 cluster - 2nd layer)
float energy() const
get Energy (calibrated)
float fracs1() const
get Energy in a 7 strips (around hottest strip) minus energy in 3 strips divided by energy in 3 strip...
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.
const std::string & nameOfComponent(unsigned int index) const
Get the name of a component.
float eyComponent(unsigned int index) const
Get the y component fo the energy of a component.
uint32_t roiWord() const
Get the ROI word.
float sumE() const
Get the sum of the E of the missing energy.
float calib0Component(unsigned int index) const
Get Calib0.
float calib1Component(unsigned int index) const
Get Calib1.
unsigned int getNumberOfComponents() const
Get the number of components.
float ezComponent(unsigned int index) const
Get the z 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 sumOfSignsComponent(unsigned int index) const
Get SumOfSigns.
float sumEComponent(unsigned int index) const
Get SumE.
float ey() const
Get the y component of the missing energy.
float sumEtComponent(unsigned int index) const
Get SumEt.
unsigned short usedChannelsComponent(unsigned int index) const
Get used Channels.
const std::vector< unsigned int > & serialized() const
expose the navigation information (in serialized form)
unsigned int sctSpEndcapA() const
unsigned int pixelClusTotBins() const
unsigned int sctSpBarrel() const
unsigned int pixelClusSizeBins() const
const std::vector< float > & contentsPixelClusEndcapC() const
getters
const std::vector< float > & contentsPixelClusEndcapA() const
unsigned int sctSpEndcapC() const
const std::vector< float > & contentsPixelClusBarrel() const
const std::vector< float > & triggerEnergies() const
Return the trigger energies of each counter.
const std::vector< float > & triggerTimes() const
Return the relative times of the triggers.
const std::vector< float > & eta_phi() const
unsigned int phiBins() const
unsigned int etaBins() const
const std::vector< float > & z0_pt() const
getters
unsigned int z0Bins() const
unsigned int ptBins() const
const std::vector< float > & vtxTrkPtSqSum() const
const std::vector< unsigned int > & vtxNtrks() const
getters
double chi2(TH1 *h0, TH1 *h1)
bool contains(const std::string &s, const std::string &regx)
does a string contain the substring
Definition hcg.cxx:116
int count(std::string s, const std::string &regx)
count how many occurances of a regx are in a string
Definition hcg.cxx:148
Eigen::Matrix< double, 3, 1 > Vector3D
The namespace of all packages in PhysicsAnalysis/JetTagging.
::StatusCode StatusCode
StatusCode definition for legacy code.
uint32_t sgkey_t
Type used for hashed StoreGate key+CLID pairs.
Definition sgkey_t.h:32
const SG::AuxVectorData * container() const
Return the container holding this element.
float j(const xAOD::IParticle &, const xAOD::TrackMeasurementValidation &hit, const Eigen::Matrix3d &jab_inv)
HLT::Identifier createLegName(const HLT::Identifier &chainIdentifier, size_t counter)
Generate the HLT::Identifier which corresponds to a specific leg of a given chain.
@ UNSET
Default property of state.
Definition ActiveState.h:19
@ INACTIVE
The link was inactive for all of the HLT Chains requested in the TDT.
Definition ActiveState.h:21
Decision * newDecisionIn(DecisionContainer *dc, const std::string &name)
Helper method to create a Decision object, place it in the container and return a pointer to it.
int32_t getIndexFromLeg(const HLT::Identifier &legIdentifier)
Extract the numeric index of a leg identifier.
SG::WriteHandle< DecisionContainer > createAndStore(const SG::WriteHandleKey< DecisionContainer > &key, const EventContext &ctx)
Creates and right away records the DecisionContainer with the key.
void linkToPrevious(Decision *d, const std::string &previousCollectionKey, size_t previousIndex)
Links to the previous object, location of previous 'seed' decision supplied by hand.
void addDecisionID(DecisionID id, Decision *d)
Appends the decision (given as ID) to the decision object.
bool isLegId(const HLT::Identifier &legIdentifier)
Recognise whether the chain ID is a leg ID.
static const unsigned int includeFailedDecisions
Run3 synonym of alsoDeactivateTEs.
static const unsigned int allFeaturesOfType
Run 3 "enum". Return all features along legs (still with type and container checks).
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
@ theta
Definition ParamDefs.h:66
@ qOverP
perigee
Definition ParamDefs.h:67
@ phi
Definition ParamDefs.h:75
@ d0
Definition ParamDefs.h:63
@ px
Definition ParamDefs.h:59
@ z0
Definition ParamDefs.h:64
@ py
Definition ParamDefs.h:60
ParametersBase< TrackParametersDim, Charged > TrackParameters
@ numberOfPixelHits
number of pixel layers on track with absence of hits
@ numberOfBLayerHits
these are the hits in the 0th pixel layer?
-event-from-file
Definition index.py:1
@ deltaPhi2
difference between the cluster phi (second sampling) and the phi of the track extrapolated to the sec...
@ deltaEta1
difference between the cluster eta (first sampling) and the eta of the track extrapolated to the firs...
@ e237
uncalibrated energy (sum of cells) of the middle sampling in a rectangle of size 3x7
Definition EgammaEnums.h:78
@ ethad
ET leakage into hadronic calorimeter with exclusion of energy in CaloSampling::TileGap3.
Definition EgammaEnums.h:46
@ e2ts1
2nd max in strips calc by summing 3 strips
@ e335
uncalibrated energy (sum of cells) of the third sampling in a rectangle of size 3x5
Definition EgammaEnums.h:87
@ e132
uncalibrated energy (sum of cells) in strips in a 3x2 window in cells in eta X phi
Definition EgammaEnums.h:37
@ e011
uncalibrated energy (sum of cells) in presampler in a 1x1 window in cells in eta X phi
Definition EgammaEnums.h:31
@ e2tsts1
energy of the cell corresponding to second energy maximum in the first sampling
@ etcone20
Calorimeter isolation.
@ ptcone20
Track isolation.
@ hadRadius
Get hadron calorimeter radius.
Definition TauDefs.h:192
@ EMRadius
Get E_T radius.
Definition TauDefs.h:190
@ etHadAtEMScale
Get Hadronic energy at EM scale.
Definition TauDefs.h:196
@ isolFrac
Get isolation fraction.
Definition TauDefs.h:198
@ trkAvgDist
Get calibrated EM transverse energy (DEPRECATED since r19).
Definition TauDefs.h:214
@ etEMAtEMScale
Get EM energy at EM scale.
Definition TauDefs.h:194
@ centFrac
Get centrality fraction.
Definition TauDefs.h:200
@ dRmax
Get maximal dR of tracks associated to calo-seeded tau.
Definition TauDefs.h:226
Jet_v1 Jet
Definition of the current "jet version".
TrigVertexCountsContainer_v1 TrigVertexCountsContainer
PhotonContainer_v1 PhotonContainer
Definition of the current "photon container version".
TrigPassBitsContainer_v1 TrigPassBitsContainer
Define the latest version of the trig pass bits container class.
TrigMissingETContainer_v1 TrigMissingETContainer
DataVector of TrigMissingET - the current version.
TrigCompositeContainer_v1 TrigCompositeContainer
Declare the latest version of the container.
TrigElectronContainer_v1 TrigElectronContainer
Declare the latest version of the container.
ElectronContainer_v1 ElectronContainer
Definition of the current "electron container version".
TrigBphys_v1 TrigBphys
Definition TrigBphys.h:18
TriggerMenuContainer_v1 TriggerMenuContainer
Define the latest version of the trigger menu container class.
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
TrigComposite_v1 TrigComposite
Declare the latest version of the class.
TrigSpacePointCountsContainer_v1 TrigSpacePointCountsContainer
TrigEMClusterContainer_v1 TrigEMClusterContainer
Define the latest version of the trigger EM cluster container.
TrigTrackCountsContainer_v1 TrigTrackCountsContainer
TrigPhotonContainer_v1 TrigPhotonContainer
Declare the latest version of the container.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
TrigPassBits_v1 TrigPassBits
Define the latest version of the trigger pass bits class.
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".
TrigEMCluster_v1 TrigEMCluster
Define the latest version of the trigger EM cluster class.
TrigNavigation_v1 TrigNavigation
Define the latest version of the trigger navigation class.
JetContainer_v1 JetContainer
Definition of the current "jet container version".
TauJetContainer_v3 TauJetContainer
Definition of the current "taujet container version".
MuonContainer_v1 MuonContainer
Definition of the current "Muon container version".
TrigBphysContainer_v1 TrigBphysContainer
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
@ numberOfTRTHits
number of TRT hits [unit8_t].
@ numberOfTRTHoles
number of TRT holes [unit8_t].
@ numberOfBLayerHits
these are the hits in the first pixel layer, i.e.
@ numberOfSCTHits
number of hits in SCT [unit8_t].
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
@ numberOfSCTHoles
number of SCT holes [unit8_t].
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.
Default, invalid implementation of ClassID_traits.
Helper to keep a Decision object, ElementLink and ActiveState (with respect to some requested ChainGr...
Definition LinkInfo.h:22
MsgStream & msg
Definition testRead.cxx:32