115 return StatusCode::SUCCESS;
125 if (
sc.isFailure()) {
132 if (
sc.isFailure()) {
139 if (
sc.isFailure()) {
146 if (
sc.isFailure()) {
147 ATH_MSG_ERROR(
"The method dumpxAODTrigEMClusterContainer() failed");
153 if (
sc.isFailure()) {
160 if (
sc.isFailure()) {
161 ATH_MSG_ERROR(
"The method dumpTrigL2BphysContainer() failed");
167 if (
sc.isFailure()) {
168 ATH_MSG_ERROR(
"The method dumpTrigEFBphysContainer() failed");
181 if (
sc.isFailure()) {
182 ATH_MSG_ERROR(
"The method dumpxAODTrigElectronContainer() failed");
188 if (
sc.isFailure()) {
189 ATH_MSG_ERROR(
"The method dumpxAODTrigElectronContainer() failed");
195 if (
sc.isFailure()) {
196 ATH_MSG_ERROR(
"The method dumpxAODTrigElectronContainer() failed");
202 if (
sc.isFailure()) {
203 ATH_MSG_ERROR(
"The method dumpxAODTrigElectronContainer() failed");
209 if (
sc.isFailure()) {
210 ATH_MSG_ERROR(
"The method dumpxAODTauJetContainer() failed");
216 if (
sc.isFailure()) {
223 if (
sc.isFailure()) {
230 if (
sc.isFailure()) {
237 if (
sc.isFailure()) {
248 if (
sc.isFailure() ) {
262 std::string trigCompositeSteering;
265 const std::string evtNumber = std::to_string(ctx.eventID().event_number());
266 const std::string passStr = (pass ?
"Pass" :
"Fail");
267 std::ofstream ofile(std::string(
"NavGraph_" +
m_dumpNavForChain +
"_Ev" + evtNumber +
"_" + passStr +
".dot").c_str());
268 ofile << trigCompositeSteering;
274 return StatusCode::SUCCESS;
280 const std::string name=
"HLT_xAOD__TrigPassBitsContainer_passbits";
282 StatusCode
sc =
evtStore()->retrieve(xbitscont,name);
283 if (
sc.isFailure() ){
288 for(
const auto bits:*xbitscont){
293 ATH_MSG_DEBUG(
"Analyzing bits for " << bits->containerClid() <<
" of size " << bits->size() <<
" with bit size " << bits->passBits().size());
301 ATH_MSG_DEBUG(
"Analyzing bits for " << bits->containerClid() <<
" of size " << bits->size() <<
" with bit size " << bits->passBits().size());
304 return StatusCode::SUCCESS;
311 std::string METTag=
"HLT_xAOD__TrigSpacePointCountsContainer_spacepoints";
314 StatusCode
sc =
evtStore()->retrieve(SpacePointCountsCont,METTag);
319 ATH_MSG_INFO(
"Accessing " << METTag <<
" with " << SpacePointCountsCont->
size() <<
" elements");
321 std::string s;
char buff[128];
322 std::vector<float> getVec;
326 for(
uint i = 0; i < SpacePointCountsCont->
size(); i++) {
329 for (
uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
330 snprintf(buff,
sizeof(buff),
"REGTEST %s SUM of contentsPixelClusEndcapC() = %10.2f ", s.c_str(), sum );
335 for (
uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
336 snprintf(buff,
sizeof(buff),
"REGTEST %s SUM of contentsPixelClusBarrel() = %10.2f ", s.c_str(), sum );
341 for (
uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
342 snprintf(buff,
sizeof(buff),
"REGTEST %s SUM of contentsPixelClusEndcapA() = %10.2f ", s.c_str(), sum );
345 snprintf(buff,
sizeof(buff),
"REGTEST %s pixelClusTotBins() = %u ", s.c_str(), SpacePointCountsCont->
at(i)->
pixelClusTotBins() );
348 snprintf(buff,
sizeof(buff),
"REGTEST %s pixelClusTotMin() = %10.2f ", s.c_str(), SpacePointCountsCont->
at(i)->
pixelClusTotMin() );
351 snprintf(buff,
sizeof(buff),
"REGTEST %s pixelClusTotMax() = %10.2f ", s.c_str(), SpacePointCountsCont->
at(i)->
pixelClusTotMax() );
354 snprintf(buff,
sizeof(buff),
"REGTEST %s pixelClusSizeBins() = %u ", s.c_str(), SpacePointCountsCont->
at(i)->
pixelClusSizeBins() );
357 snprintf(buff,
sizeof(buff),
"REGTEST %s pixelClusSizeMin() = %10.2f ", s.c_str(), SpacePointCountsCont->
at(i)->
pixelClusSizeMin() );
360 snprintf(buff,
sizeof(buff),
"REGTEST %s pixelClusSizeMax() = %10.2f ", s.c_str(), SpacePointCountsCont->
at(i)->
pixelClusSizeMax() );
363 snprintf(buff,
sizeof(buff),
"REGTEST %s sctSpEndcapC() = %u ", s.c_str(), SpacePointCountsCont->
at(i)->
sctSpEndcapC() );
366 snprintf(buff,
sizeof(buff),
"REGTEST %s sctSpBarrel() = %u ", s.c_str(), SpacePointCountsCont->
at(i)->
sctSpBarrel() );
369 snprintf(buff,
sizeof(buff),
"REGTEST %s sctSpEndcapA() = %u ", s.c_str(), SpacePointCountsCont->
at(i)->
sctSpEndcapA() );
378 std::string METTag=
"HLT_xAOD__TrigT2MbtsBitsContainer_T2Mbts";
381 StatusCode
sc =
evtStore()->retrieve(T2MbtsBitsCont,METTag);
386 ATH_MSG_INFO(
"Accessing " << METTag <<
" with " << T2MbtsBitsCont->
size() <<
" elements");
388 std::string s;
char buff[380];
389 std::vector<float> getVec;
393 for(
uint i = 0; i < T2MbtsBitsCont->
size(); i++) {
396 for (
uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
397 snprintf(buff,
sizeof(buff),
"REGTEST %s SUM of triggerEnergies() = %10.2f ", s.c_str(), sum );
402 for (
uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
403 snprintf(buff,
sizeof(buff),
"REGTEST %s SUM of triggerTimes() = %10.2f ", s.c_str(), sum );
412 std::string METTag=
"HLT_xAOD__TrigVertexCountsContainer_vertexcounts";
415 StatusCode
sc =
evtStore()->retrieve(T2VertexCountsCont,METTag);
420 ATH_MSG_INFO(
"Accessing " << METTag <<
" with " << T2VertexCountsCont->
size() <<
" elements");
422 std::string s;
char buff[380];
423 std::vector<float> fgetVec;
425 std::vector<unsigned int> ugetVec;
426 unsigned int usum(0);
429 for(
uint i = 0; i < T2VertexCountsCont->
size(); i++) {
430 ugetVec = T2VertexCountsCont->
at(i)->
vtxNtrks();
431 for (
uint j = 0; j < ugetVec.size(); ++j) usum += ugetVec[j];
432 snprintf(buff,
sizeof(buff),
"REGTEST %s SUM of vtxNtrks() = %u ", s.c_str(), usum );
436 for (
uint j = 0; j < fgetVec.size(); ++j) fsum += fgetVec[j];
437 snprintf(buff,
sizeof(buff),
"REGTEST %s SUM of vtxTrkPtSqSum() = %10.2f ", s.c_str(), fsum );
446 std::string METTag=
"HLT_xAOD__TrigTrackCountsContainer_trackcounts";
449 StatusCode
sc =
evtStore()->retrieve(T2TrackCountsCont,METTag);
454 ATH_MSG_INFO(
"Accessing " << METTag <<
" with " << T2TrackCountsCont->
size() <<
" elements");
456 std::string s;
char buff[380];
457 std::vector<float> getVec;
461 for(
uint i = 0; i < T2TrackCountsCont->
size(); i++) {
462 getVec = T2TrackCountsCont->
at(i)->
z0_pt();
464 for (
uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
465 snprintf(buff,
sizeof(buff),
"REGTEST %s SUM of z0_pt = %10.2f ", s.c_str(), sum );
468 getVec = T2TrackCountsCont->
at(i)->
eta_phi();
470 for (
uint j = 0; j < getVec.size(); ++j) sum += getVec[j];
471 snprintf(buff,
sizeof(buff),
"REGTEST %s SUM of eta_phi() = %10.2f ", s.c_str(), sum );
474 snprintf(buff,
sizeof(buff),
"REGTEST %s z0Bins() = %u ", s.c_str(), T2TrackCountsCont->
at(i)->
z0Bins() );
477 snprintf(buff,
sizeof(buff),
"REGTEST %s z0Min() = %10.2f ", s.c_str(), T2TrackCountsCont->
at(i)->
z0Min() );
480 snprintf(buff,
sizeof(buff),
"REGTEST %s z0Max() = %10.2f ", s.c_str(), T2TrackCountsCont->
at(i)->
z0Max() );
483 snprintf(buff,
sizeof(buff),
"REGTEST %s ptBins() = %u ", s.c_str(), T2TrackCountsCont->
at(i)->
ptBins() );
486 snprintf(buff,
sizeof(buff),
"REGTEST %s ptMin() = %10.2f ", s.c_str(), T2TrackCountsCont->
at(i)->
ptMin() );
489 snprintf(buff,
sizeof(buff),
"REGTEST %s ptMax() = %10.2f ", s.c_str(), T2TrackCountsCont->
at(i)->
ptMax() );
492 snprintf(buff,
sizeof(buff),
"REGTEST %s etaBins() = %u ", s.c_str(), T2TrackCountsCont->
at(i)->
etaBins() );
495 snprintf(buff,
sizeof(buff),
"REGTEST %s etaMin() = %10.2f ", s.c_str(), T2TrackCountsCont->
at(i)->
etaMin() );
498 snprintf(buff,
sizeof(buff),
"REGTEST %s etaMax() = %10.2f ", s.c_str(), T2TrackCountsCont->
at(i)->
etaMax() );
501 snprintf(buff,
sizeof(buff),
"REGTEST %s phiBins() = %u ", s.c_str(), T2TrackCountsCont->
at(i)->
phiBins() );
504 snprintf(buff,
sizeof(buff),
"REGTEST %s phiMin() = %10.2f ", s.c_str(), T2TrackCountsCont->
at(i)->
phiMin() );
507 snprintf(buff,
sizeof(buff),
"REGTEST %s phiMax() = %10.2f ", s.c_str(), T2TrackCountsCont->
at(i)->
phiMax() );
520 return StatusCode::SUCCESS;
532 std::string METTags[]={
"HLT_xAOD__TrigMissingETContainer_EFJetEtSum",
"HLT_xAOD__TrigMissingETContainer_TrigEFMissingET",
"HLT_xAOD__TrigMissingETContainer_TrigL2MissingET_FEB",
"HLT_xAOD__TrigMissingETContainer_TrigEFMissingET_topocl"};
534 for(
int itag=0; itag <ntag; itag++) {
537 StatusCode
sc =
evtStore()->retrieve(MissingETCont,METTags[itag]);
541 ATH_MSG_INFO(
"Accessing " << METTags[itag] <<
" with " << MissingETCont->
size() <<
" elements");
544 for(
uint i = 0; i < MissingETCont->
size(); i++) {
546 std::string s;
char buff[3000];
548 snprintf(buff,
sizeof(buff),
"REGTEST %s Ex = %10.2f CLHEP::MeV", s.c_str(), MissingETCont->
at(i)->
ex() );
550 snprintf(buff,
sizeof(buff),
"REGTEST %s Ey = %10.2f CLHEP::MeV", s.c_str(), MissingETCont->
at(i)->
ey() );
552 snprintf(buff,
sizeof(buff),
"REGTEST %s Ez = %10.2f CLHEP::MeV", s.c_str(), MissingETCont->
at(i)->
ez() );
554 snprintf(buff,
sizeof(buff),
"REGTEST %s SumET = %10.2f CLHEP::MeV", s.c_str(), MissingETCont->
at(i)->
sumEt() );
556 snprintf(buff,
sizeof(buff),
"REGTEST %s SumE = %10.2f CLHEP::MeV", s.c_str(), MissingETCont->
at(i)->
sumE() );
558 snprintf(buff,
sizeof(buff),
"REGTEST %s Flag = %d", s.c_str(), MissingETCont->
at(i)->
flag() );
560 snprintf(buff,
sizeof(buff),
"REGTEST %s Flag = %d", s.c_str(), MissingETCont->
at(i)->
roiWord() );
565 s=
"REGTEST __name____status_usedChannels__sumOfSigns__calib1_calib0";
566 s+=
"/MeV__ex/MeV_____ey/MeV_____ez/MeV___sumE/MeV__sumEt/CLHEP::MeV";
570 for(
uint j = 0; j < Nc; j++) {
584 snprintf(buff,
sizeof(buff),
585 "REGTEST %s %6d %12d %10d %6.2f %6.3f %10.2f %10.2f %10.2f %10.2f %10.2f",
586 name.c_str(), status, usedChan, sumOfSigns, calib1, calib0,
587 ex, ey, ez, sumE, sumEt);
594 return StatusCode::SUCCESS;
603 ATH_MSG_INFO(
"REGTEST ==========START of LVL1_ROI DUMP===========");
606 StatusCode
sc =
evtStore()->retrieve(lvl1ROI);
607 if (
sc.isFailure() ) {
609 return StatusCode::SUCCESS;
614 LVL1_ROI::emtaus_type::const_iterator itEMTau =
616 LVL1_ROI::emtaus_type::const_iterator itEMTau_e =
619 for( ; itEMTau != itEMTau_e; ++itEMTau, ++j) {
621 ATH_MSG_INFO(
"REGTEST LVL1 EmTauROI Eta is " << itEMTau->getEta());
622 ATH_MSG_INFO(
"REGTEST LVL1 EmTauROI Phi is " << itEMTau->getPhi());
623 ATH_MSG_INFO(
"REGTEST LVL1 EmTauROI EMClus is " << itEMTau->getEMClus());
624 ATH_MSG_INFO(
"REGTEST LVL1 EmTauROI TauClus is " << itEMTau->getTauClus());
625 ATH_MSG_INFO(
"REGTEST LVL1 EmTauROI EMIsol is " << itEMTau->getEMIsol());
626 ATH_MSG_INFO(
"REGTEST LVL1 EmTauROI HadIsol is " << itEMTau->getHadIsol());
627 ATH_MSG_INFO(
"REGTEST LVL1 EmTauROI Core is " << itEMTau->getCore());
628 ATH_MSG_INFO(
"REGTEST LVL1 EmTauROI HadCore is " << itEMTau->getHadCore());
629 ATH_MSG_INFO(
"REGTEST LVL1 EmTauROI roiWord is " << itEMTau->getROIWord());
632 ATH_MSG_INFO(
"REGTEST ==========END of LVL1_ROI DUMP===========");
634 return StatusCode::SUCCESS;
643 ATH_MSG_INFO(
"REGTEST ==========START of xAOD::MuonContainer DUMP===========" );
646 StatusCode
sc =
evtStore()->retrieve(muonCont,
"HLT_xAOD__MuonContainer_MuonEFInfo");
647 if (
sc.isFailure()) {
648 ATH_MSG_INFO(
"REGTEST No muon container HLT_xAOD__MuonContainer_MuonEFInfo");
649 return StatusCode::SUCCESS;
655 ATH_MSG_INFO(
"REGTEST ==========END of xAOD::MuonContainer DUMP===========" );
657 return StatusCode::SUCCESS;
667 ATH_MSG_INFO(
"REGTEST ==========START of xAOD::TrigElectronContainer DUMP===========" );
670 StatusCode
sc =
evtStore()->retrieve(elCont,
"HLT_xAOD__TrigElectronContainer_L2ElectronFex");
671 if (
sc.isFailure()) {
672 ATH_MSG_INFO(
"REGTEST No TrigElectron container HLT_xAOD__TrigElectronContainer_L2ElectronFex");
673 return StatusCode::SUCCESS;
676 for (
const auto eg : *elCont){
677 ATH_MSG_INFO(
"REGTEST TrigElectron->Phi() returns " << eg->phi());
678 ATH_MSG_INFO(
"REGTEST TrigElectron->Eta() returns " << eg->eta());
679 ATH_MSG_INFO(
"REGTEST TrigElectron->rEta returns " << eg->rcore());
680 ATH_MSG_INFO(
"REGTEST TrigElectron->eratio() returns " << eg->eratio());
681 ATH_MSG_INFO(
"REGTEST TrigElectron->pt() returns " << eg->pt());
682 ATH_MSG_INFO(
"REGTEST TrigElectron->etHad() returns " << eg->etHad());
683 ATH_MSG_INFO(
"REGTEST TrigElectron->f1() returns " << eg->f1());
684 ATH_MSG_INFO(
"REGTEST TrigElectron caloEta = " << eg->caloEta());
685 ATH_MSG_INFO(
"REGTEST TrigElectron dPhiCalo" << eg->trkClusDphi());
686 ATH_MSG_INFO(
"REGTEST TrigElectron dEtaCalo" << eg->trkClusDeta());
687 ATH_MSG_INFO(
"REGTEST TrigElectron pTcalo" << eg->pt());
688 ATH_MSG_INFO(
"REGTEST TrigElectron eTOverPt" << eg->etOverPt());
689 ATH_MSG_INFO(
"REGTEST TrigElectron nTRTHits" << eg->nTRTHits());
690 ATH_MSG_INFO(
"REGTEST TrigElectron nStrawHits" << eg->nTRTHiThresholdHits());
693 ATH_MSG_INFO(
"REGTEST TrigElectron EMCluster retrieved");
694 ATH_MSG_INFO(
"REGTEST TrigElectron emCluster->energy() returns " << eg->emCluster()->energy());
695 ATH_MSG_INFO(
"REGTEST TrigElectron emCluster->phi() returns " << eg->emCluster()->phi());
696 ATH_MSG_INFO(
"REGTEST TrigElectron emCluster->eta() returns " << eg->emCluster()->eta());
697 ATH_MSG_INFO(
"REGTEST TrigElectron emCluster check Element Link");
698 ATH_MSG_INFO(
"REGTEST TrigElectron emCluster energy = " << eg->emCluster()->energy());
699 ATH_MSG_INFO(
"REGTEST TrigElectron ElementLink emCluster energy = " << (*eg->emClusterLink())->energy());
701 else ATH_MSG_INFO(
"REGTEST TrigElectron No EMCluster retrieved!");
702 ATH_MSG_INFO(
"REGTEST TrigElectron Check TrackParticle");
703 if(eg->trackParticle()){
704 ATH_MSG_INFO(
"REGTEST TrigElectron TrackParticle retrieved");
705 ATH_MSG_INFO(
"REGTEST TrigElectron trackParticle->pt() returns " << eg->trackParticle()->pt());
706 ATH_MSG_INFO(
"REGTEST TrigElectron trackParticle->phi() returns " << eg->trackParticle()->phi());
707 ATH_MSG_INFO(
"REGTEST TrigElectron trackParticle->eta() returns " << eg->trackParticle()->eta());
708 ATH_MSG_INFO(
"REGTEST TrigElectron check TrackParticle Element Link");
709 ATH_MSG_INFO(
"REGTEST TrigElectron TrackParticle pt = " << eg->trackParticle()->pt());
710 ATH_MSG_INFO(
"REGTEST TrigElectron ElementLink TrackParticle pt = " << (*eg->trackParticleLink())->pt());
712 else ATH_MSG_INFO(
"REGTEST TrigElectron No TrackParticle retrieved!");
714 ATH_MSG_INFO(
"REGTEST ==========END of xAOD::TrigElectronContainer DUMP===========" );
716 return StatusCode::SUCCESS;
725 ATH_MSG_INFO(
"REGTEST ==========START of xAOD::TrigPhotonContainer DUMP===========" );
728 StatusCode
sc =
evtStore()->retrieve(phCont,
"HLT_xAOD__TrigPhotonContainer_L2PhotonFex");
729 if (
sc.isFailure()) {
730 ATH_MSG_INFO(
"REGTEST No TrigPhoton container HLT_xAOD__TrigPhotonContainer_L2PhotonFex");
731 return StatusCode::SUCCESS;
734 for (
const auto eg : *phCont){
736 ATH_MSG_INFO(
"REGTEST TrigPhoton->Phi() returns " << eg->phi());
737 ATH_MSG_INFO(
"REGTEST TrigPhoton->Eta() returns " << eg->eta());
738 ATH_MSG_INFO(
"REGTEST TrigPhoton->dPhi() returns " << eg->dPhi());
739 ATH_MSG_INFO(
"REGTEST TrigPhoton->dEta() returns " << eg->dEta());
740 ATH_MSG_INFO(
"REGTEST TrigPhoton->rEta returns " << eg->rcore());
741 ATH_MSG_INFO(
"REGTEST TrigPhoton->eratio() returns " << eg->eratio());
742 ATH_MSG_INFO(
"REGTEST TrigPhoton->pt() returns " << eg->pt());
743 ATH_MSG_INFO(
"REGTEST TrigPhoton->etHad() returns " << eg->etHad());
744 ATH_MSG_INFO(
"REGTEST TrigPhoton->f1() returns " << eg->f1());
748 ATH_MSG_INFO(
"REGTEST TrigPhoton emCluster->energy() returns " << eg->emCluster()->energy());
749 ATH_MSG_INFO(
"REGTEST TrigPhoton emCluster->phi() returns " << eg->emCluster()->phi());
750 ATH_MSG_INFO(
"REGTEST TrigPhoton emCluster->eta() returns " << eg->emCluster()->eta());
751 ATH_MSG_INFO(
"REGTEST TrigPhoton emCluster check Element Link");
752 ATH_MSG_INFO(
"REGTEST TrigPhoton emCluster energy = " << eg->emCluster()->energy());
753 ATH_MSG_INFO(
"REGTEST TrigPhoton ElementLink emCluster energy = " << (*eg->emClusterLink())->energy());
755 else ATH_MSG_INFO(
"REGTEST TrigPhoton No EMCluster retrieved!");
757 ATH_MSG_INFO(
"REGTEST ==========END of xAOD::TrigPhotonContainer DUMP===========" );
759 return StatusCode::SUCCESS;
768 ATH_MSG_INFO(
"REGTEST ==========START of xAOD::ElectronContainer DUMP===========" );
771 StatusCode
sc =
evtStore()->retrieve(elCont,
"HLT_xAOD__ElectronContainer_egamma_Electrons");
772 if (
sc.isFailure()) {
773 ATH_MSG_INFO(
"REGTEST No Electron container HLT_xAOD__ElectronContainer_egamma_Electrons");
774 return StatusCode::SUCCESS;
777 unsigned int isEMbit=0;
780 ATH_MSG_INFO(
" REGTEST: xAOD Reconstruction variables: ");
783 static const SG::AuxElement::Accessor< float > accLH(
"LHValue");
784 static const SG::AuxElement::Accessor< float > accLHCalo(
"LHCaloValue");
785 static const SG::AuxElement::Accessor<ElementLink<xAOD::CaloClusterContainer> > orig (
"originalCaloCluster");
786 for (
const auto eg : *elCont){
792 if(eg->selectionisEM(isEMbit,
"isEMVLoose"))
793 ATH_MSG_INFO(
" REGTEST: isEMVLoose " << std::hex << isEMbit << std::dec);
795 if(eg->selectionisEM(isEMbit,
"isEMLoose"))
796 ATH_MSG_INFO(
" REGTEST: isEMLoose " << std::hex << isEMbit << std::dec);
798 if(eg->selectionisEM(isEMbit,
"isEMMedium"))
799 ATH_MSG_INFO(
" REGTEST: isEMMedium " << std::hex << isEMbit << std::dec);
801 if(eg->selectionisEM(isEMbit,
"isEMTight"))
802 ATH_MSG_INFO(
" REGTEST: isEMTight " << std::hex << isEMbit << std::dec);
804 if(eg->selectionisEM(isEMbit,
"isEMLHVLoose"))
805 ATH_MSG_INFO(
" REGTEST: isEMLHVLoose " << std::hex << isEMbit << std::dec);
807 if(eg->selectionisEM(isEMbit,
"isEMLHLoose"))
808 ATH_MSG_INFO(
" REGTEST: isEMLHLoose " << std::hex << isEMbit << std::dec);
810 if(eg->selectionisEM(isEMbit,
"isEMLHMedium"))
811 ATH_MSG_INFO(
" REGTEST: isEMLHMedium " << std::hex << isEMbit << std::dec);
813 if(eg->selectionisEM(isEMbit,
"isEMLHTight"))
814 ATH_MSG_INFO(
" REGTEST: isEMLHTight " << std::hex << isEMbit << std::dec);
816 if(accLH.isAvailable(*eg))
820 if(accLHCalo.isAvailable(*eg))
824 if(eg->passSelection(pid,
"LHVLoose"))
828 if(eg->passSelection(pid,
"LHLoose"))
832 if(eg->passSelection(pid,
"LHMedium"))
836 if(eg->passSelection(pid,
"LHTight"))
841 ATH_MSG_INFO(
" REGTEST: problems with egamma pointer" );
842 return StatusCode::SUCCESS;
845 if (eg->caloCluster()) {
846 ATH_MSG_INFO(
" REGTEST: egamma cluster transverse energy: " << eg->caloCluster()->et() );
847 ATH_MSG_INFO(
" REGTEST: egamma cluster eta: " << eg->caloCluster()->eta() );
848 ATH_MSG_INFO(
" REGTEST: egamma cluster phi: " << eg->caloCluster()->phi() );
849 double tmpeta = -999.;
850 double tmpphi = -999.;
853 ATH_MSG_INFO(
" REGTEST: egamma cluster calo-frame coords. etaCalo = " << tmpeta);
854 ATH_MSG_INFO(
" REGTEST: egamma cluster calo-frame coords. phiCalo = " << tmpphi);
856 ATH_MSG_INFO(
" REGTEST: problems with egamma cluster pointer" );
858 ATH_MSG_INFO(
"REGTEST: Check the original (uncalibrated)");
859 if (!orig.isAvailable(*eg->caloCluster()) || !orig(*eg->caloCluster()).isValid()){
865 ATH_MSG_INFO(
"REGTEST:: Original Cluster e,eta,phi" << origClus->
e() <<
" " << origClus->
eta() <<
" " << origClus->
phi());
866 ATH_MSG_INFO(
"REGTEST:: MVA Cluster e,eta,phi" << eg->caloCluster()->e() <<
" " << eg->caloCluster()->eta() <<
" " << eg->caloCluster()->phi());
869 if(eg->trackParticle()){
870 ATH_MSG_INFO(
" REGTEST: pt= " << eg->trackParticle()->pt());
871 ATH_MSG_INFO(
" REGTEST: charge= " << eg->trackParticle()->charge());
872 ATH_MSG_INFO(
" REGTEST: E/p= " << eg->caloCluster()->et() / eg->trackParticle()->pt() );
874 ATH_MSG_INFO(
" REGTEST: Delta eta 1st sampling= " << val_float);
876 ATH_MSG_INFO(
" REGTEST: Delta phi 2nd sampling= " << val_float);
878 ATH_MSG_INFO(
" REGTEST: no electron eg->trackParticle() pointer");
913 ATH_MSG_INFO(
"REGTEST ==========END of xAOD::ElectronContainer DUMP===========" );
915 return StatusCode::SUCCESS;
924 ATH_MSG_INFO(
"REGTEST ==========START of xAOD::PhotonContainer DUMP===========" );
927 StatusCode
sc =
evtStore()->retrieve(phCont,
"HLT_xAOD__PhotonContainer_egamma_Photons");
928 if (
sc.isFailure()) {
929 ATH_MSG_INFO(
"REGTEST No Photon container HLT_xAOD__PhotonContainer_egamma_Photons");
930 return StatusCode::SUCCESS;
934 unsigned int isEMbit=0;
936 ATH_MSG_INFO(
" REGTEST: xAOD Reconstruction variables: ");
938 static const SG::AuxElement::Accessor<ElementLink<xAOD::CaloClusterContainer> > orig (
"originalCaloCluster");
939 for (
const auto eg : *phCont){
945 ATH_MSG_INFO(
" REGTEST: isEMLoose " << eg->selectionisEM(isEMbit,
"isEMLoose"));
946 ATH_MSG_INFO(
" REGTEST: isEMLoose bit " << std::hex << isEMbit << std::dec);
947 ATH_MSG_INFO(
" REGTEST: isEMMedium " << eg->selectionisEM(isEMbit,
"isEMMedium"));
948 ATH_MSG_INFO(
" REGTEST: isEMMedium bit " << std::hex << isEMbit << std::dec);
949 ATH_MSG_INFO(
" REGTEST: isEMTight " << eg->selectionisEM(isEMbit,
"isEMTight"));
950 ATH_MSG_INFO(
" REGTEST: isEMTight bit " << std::hex << isEMbit << std::dec);
952 ATH_MSG_INFO(
" REGTEST: problems with egamma pointer" );
953 return StatusCode::SUCCESS;
956 if (eg->caloCluster()) {
957 ATH_MSG_INFO(
" REGTEST: egamma cluster transverse energy: " << eg->caloCluster()->et() );
958 ATH_MSG_INFO(
" REGTEST: egamma cluster eta: " << eg->caloCluster()->eta() );
959 ATH_MSG_INFO(
" REGTEST: egamma cluster phi: " << eg->caloCluster()->phi() );
960 double tmpeta = -999.;
961 double tmpphi = -999.;
964 ATH_MSG_INFO(
" REGTEST: egamma cluster calo-frame coords. etaCalo = " << tmpeta);
965 ATH_MSG_INFO(
" REGTEST: egamma cluster calo-frame coords. phiCalo = " << tmpphi);
967 ATH_MSG_INFO(
" REGTEST: problems with egamma cluster pointer" );
969 ATH_MSG_INFO(
"REGTEST: Check the original (uncalibrated)");
970 if (!orig.isAvailable(*eg->caloCluster()) || !orig(*eg->caloCluster()).isValid()){
976 ATH_MSG_INFO(
"REGTEST:: Original Cluster e,eta,phi" << origClus->
e() <<
" " << origClus->
eta() <<
" " << origClus->
phi());
977 ATH_MSG_INFO(
"REGTEST:: MVA Cluster e,eta,phi" << eg->caloCluster()->e() <<
" " << eg->caloCluster()->eta() <<
" " << eg->caloCluster()->phi());
1005 ATH_MSG_INFO(
"REGTEST ==========END of xAOD::PhotonContainer DUMP===========" );
1007 return StatusCode::SUCCESS;
1017 ATH_MSG_INFO(
"REGTEST ==========START of TrigEFBphysContainer DUMP===========");
1019 std::string EFBphysTags[]={
"HLT_xAOD__TrigBphysContainer_EFBMuMuFex",
1020 "HLT_xAOD__TrigBphysContainer_EFBMuMuXFex",
1021 "HLT_xAOD__TrigBphysContainer_EFDsPhiPiFex",
1022 "HLT_xAOD__TrigBphysContainer_EFMuPairs",
1023 "HLT_xAOD__TrigBphysContainer_EFMultiMuFex",
1024 "HLT_xAOD__TrigBphysContainer_EFTrackMass"
1027 int ntag= (int)
sizeof(EFBphysTags) /
sizeof(EFBphysTags[0]);
1030 for (
int itag=0; itag<ntag; itag++){
1032 StatusCode
sc =
evtStore()->retrieve(trigEFBphys, EFBphysTags[itag]);
1033 if (
sc.isFailure()) {
1034 ATH_MSG_INFO(
"REGTEST No TrigEFBphysContainer found with tag " << EFBphysTags[itag]);
1038 ATH_MSG_INFO(
"REGTEST TrigEFBphysContainer found with tag " << EFBphysTags[itag]
1039 <<
" and size " << trigEFBphys->
size());
1048 for (
int j=0; EFBphysItr != EFBphysItrE; ++EFBphysItr, ++j ) {
1052 ATH_MSG_INFO(
"REGTEST TrigEFBphys->eta() returns " << (*EFBphysItr)->eta());
1053 ATH_MSG_INFO(
"REGTEST TrigEFBphys->phi() returns " << (*EFBphysItr)->phi());
1054 ATH_MSG_INFO(
"REGTEST TrigEFBphys->mass() returns " << (*EFBphysItr)->mass());
1055 ATH_MSG_INFO(
"REGTEST TrigEFBphys->fitmass() returns " << (*EFBphysItr)->fitmass());
1057 ATH_MSG_INFO(
"REGTEST TrigEFBphys->roiId() returns " << (*EFBphysItr)->roiId());
1058 ATH_MSG_INFO(
"REGTEST TrigEFBphys->particleType() returns " << (*EFBphysItr)->particleType());
1060 if( (*EFBphysItr)->secondaryDecay() != NULL){
1063 ATH_MSG_INFO(
"REGTEST pSecondDecay->eta() returns " << psecond->
eta());
1064 ATH_MSG_INFO(
"REGTEST pSecondDecay->phi() returns " << psecond->
phi());
1075 const std::vector<ElementLink<xAOD::TrackParticleContainer> > trackVector = (*EFBphysItr)->trackParticleLinks();
1076 if (trackVector.size() != 0) {
1077 ATH_MSG_INFO(
" REGTEST got track vector size: " << trackVector.size());
1081 std::vector<ElementLink<xAOD::TrackParticleContainer> >
::const_iterator trkIt=trackVector.begin();
1082 for (
int itrk=0 ; trkIt!= trackVector.end(); ++itrk, ++trkIt) {
1083 if (!(trkIt->isValid())) {
1084 ATH_MSG_WARNING(
"TrackParticleContainer::Invalid ElementLink to track ");
1088 const Trk::Perigee* trackPerigee=&((*(*trkIt))->perigeeParameters());
1091 double phi = trackPerigee->parameters()[
Trk::phi];
1095 double pt = sqrt(px*px + py*py);
1096 double eta = -std::log(tan(
theta/2));
1098 ATH_MSG_INFO(
"track " << itrk <<
" pt phi eta " << pt <<
" " <<
1104 ATH_MSG_INFO(
"REGTEST ==========END of TrigEFBphysContainer DUMP===========");
1107 return StatusCode::SUCCESS;
1114 ATH_MSG_INFO(
"REGTEST ==========START of TrigL2BphysContainer DUMP===========");
1116 std::string L2BphysTags[]={
"HLT_xAOD__TrigBphysContainer_L2BMuMuFex",
1117 "HLT_xAOD__TrigBphysContainer_L2BMuMuXFex",
1118 "HLT_xAOD__TrigBphysContainer_L2DsPhiPiFexDs",
1119 "HLT_xAOD__TrigBphysContainer_L2DsPhiPiFexPhi",
1120 "HLT_xAOD__TrigBphysContainer_L2JpsieeFex",
1121 "HLT_xAOD__TrigBphysContainer_L2MultiMuFex",
1122 "HLT_xAOD__TrigBphysContainer_L2TrackMass",
1124 const int ntag = (int)
sizeof(L2BphysTags) /
sizeof(L2BphysTags[0]);
1127 for (
int itag=0; itag<ntag; itag++){
1129 StatusCode
sc =
evtStore()->retrieve(trigL2Bphys, L2BphysTags[itag]);
1130 if (
sc.isFailure()) {
1131 ATH_MSG_INFO(
"REGTEST No TrigL2BphysContainer found with tag " << L2BphysTags[itag]);
1135 ATH_MSG_INFO(
"REGTEST TrigL2BphysContainer found with tag " << L2BphysTags[itag]
1136 <<
" and size " << trigL2Bphys->
size());
1145 for (
int j=0; L2BphysItr != L2BphysItrE; ++L2BphysItr, ++j ) {
1149 ATH_MSG_INFO(
"REGTEST TrigL2Bphys->eta() returns " << (*L2BphysItr)->eta());
1150 ATH_MSG_INFO(
"REGTEST TrigL2Bphys->phi() returns " << (*L2BphysItr)->phi());
1151 ATH_MSG_INFO(
"REGTEST TrigL2Bphys->mass() returns " << (*L2BphysItr)->mass());
1152 ATH_MSG_INFO(
"REGTEST TrigL2Bphys->fitmass() returns " << (*L2BphysItr)->fitmass());
1154 ATH_MSG_INFO(
"REGTEST TrigL2Bphys->roiId() returns " << (*L2BphysItr)->roiId());
1155 ATH_MSG_INFO(
"REGTEST TrigL2Bphys->particleType() returns " << (*L2BphysItr)->particleType());
1157 if( (*L2BphysItr)->secondaryDecay() != NULL){
1160 ATH_MSG_INFO(
"REGTEST pSecondDecay->eta() returns " << psecond->
eta());
1161 ATH_MSG_INFO(
"REGTEST pSecondDecay->phi() returns " << psecond->
phi());
1169 const std::vector<ElementLink<xAOD::TrackParticleContainer> > trackVector = (*L2BphysItr)->trackParticleLinks();
1170 if (trackVector.size() != 0) {
1171 ATH_MSG_INFO(
" REGTEST got track vector size: " << trackVector.size());
1175 std::vector<ElementLink<xAOD::TrackParticleContainer> >
::const_iterator trkIt=trackVector.begin();
1176 for (
int itrk=0 ; trkIt!= trackVector.end(); ++itrk, ++trkIt) {
1177 if (!(trkIt->isValid())) {
1178 ATH_MSG_WARNING(
"TrackParticleContainer::Invalid ElementLink to track ");
1182 const Trk::Perigee* trackPerigee=&((*(*trkIt))->perigeeParameters());
1185 double phi = trackPerigee->parameters()[
Trk::phi];
1189 double pt = sqrt(px*px + py*py);
1190 double eta = -std::log(tan(
theta/2));
1192 ATH_MSG_INFO(
"track " << itrk <<
" pt phi eta " << pt <<
" " <<
1198 ATH_MSG_INFO(
"REGTEST ==========END of TrigL2BphysContainer DUMP===========");
1201 return StatusCode::SUCCESS;
1212 ATH_MSG_INFO(
"REGTEST ==========START of xAOD::JetContainer DUMP===========");
1214 std::string containerName[30] = {
"HLT_xAOD__JetContainer_a4tcemjesFS",
1215 "HLT_xAOD__JetContainer_a4tcemsubFS",
1216 "HLT_xAOD__JetContainer_a4tcemsubjesFS",
1217 "HLT_xAOD__JetContainer_a4tcemnojcalibFS",
1218 "HLT_xAOD__JetContainer_a4tcemjesPS",
1219 "HLT_xAOD__JetContainer_a4tcemnojcalibPS",
1220 "HLT_xAOD__JetContainer_a4tclcwjesFS",
1221 "HLT_xAOD__JetContainer_a4tclcwsubFS",
1222 "HLT_xAOD__JetContainer_a4tclcwsubjesFS",
1223 "HLT_xAOD__JetContainer_a4tclcwnojcalibFS",
1224 "HLT_xAOD__JetContainer_a4tclcwjesPS",
1225 "HLT_xAOD__JetContainer_a4tclcwnojcalibPS",
1226 "HLT_xAOD__JetContainer_a4TTemnojcalibFS",
1227 "HLT_xAOD__JetContainer_a4TThadnojcalibFS",
1228 "HLT_xAOD__JetContainer_a10tcemjesFS",
1229 "HLT_xAOD__JetContainer_a10tcemsubFS",
1230 "HLT_xAOD__JetContainer_a10tcemsubjesFS",
1231 "HLT_xAOD__JetContainer_a10tcemnojcalibFS",
1232 "HLT_xAOD__JetContainer_a10tcemjesPS",
1233 "HLT_xAOD__JetContainer_a10tcemnojcalibPS",
1234 "HLT_xAOD__JetContainer_a10tclcwjesFS",
1235 "HLT_xAOD__JetContainer_a10tclcwsubFS",
1236 "HLT_xAOD__JetContainer_a10tclcwsubjesFS",
1237 "HLT_xAOD__JetContainer_a10tclcwnojcalibFS",
1238 "HLT_xAOD__JetContainer_a10tclcwjesPS",
1239 "HLT_xAOD__JetContainer_a10tclcwnojcalibPS",
1240 "HLT_xAOD__JetContainer_a10TTemnojcalibFS",
1241 "HLT_xAOD__JetContainer_a10TThadnojcalibFS",
1242 "HLT_xAOD__JetContainer_a10r_tcemsubjesFS",
1243 "HLT_xAOD__JetContainer_TrigHLTJetDSSelectorCollection"};
1244 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,
1245 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};
1246 int containerInputType[30] = {1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2,
1247 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 2, 2, 1, 1};
1248 int containerSignalState[30] = {0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1,
1249 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 0, 1, 0, 0};
1250 bool onefilled =
false;
1252 for (
int icont=0; icont<30; ++icont) {
1255 StatusCode
sc =
evtStore()->retrieve(jetCont, containerName[icont]) ;
1257 if (
sc.isFailure()) {
1262 int jetContsize = jetCont->
size();
1263 ATH_MSG_INFO(
"REGTEST Got jet container " << containerName[icont] <<
", size: " << jetContsize);
1264 if (jetContsize != 0) {
1267 for(
const auto thisjet : *jetCont) {
1278 ATH_MSG_INFO(
"REGTEST rapidity: " << thisjet->rapidity() );
1283 ATH_MSG_INFO(
"REGTEST algorithm (kt: 0, cam: 1, antikt: 2, ...): " << thisjet->getAlgorithmType() <<
"; should be 2");
1284 if(thisjet->getAlgorithmType() != 2)
ATH_MSG_WARNING(
"Jet algorithm different from container");
1285 ATH_MSG_INFO(
"REGTEST size parameter: " << thisjet->getSizeParameter() <<
"; should be " << containerSizeParameter[icont]);
1286 if(thisjet->getSizeParameter() != containerSizeParameter[icont])
ATH_MSG_WARNING(
"Jet size different from container");
1287 ATH_MSG_INFO(
"REGTEST input (LCTopo: 0, EMTopo: 1, TopoTower: 2, ...): " << thisjet->getInputType() <<
"; should be " << containerInputType[icont]);
1288 if(thisjet->getInputType() != containerInputType[icont])
ATH_MSG_WARNING(
"Jet input different from container");
1289 ATH_MSG_INFO(
"REGTEST constituents signal state (uncalibrated: 0, calibrated: 1): " << thisjet->getConstituentsSignalState() <<
"; should be " << containerSignalState[icont]);
1290 if(thisjet->getConstituentsSignalState() != containerSignalState[icont])
ATH_MSG_WARNING(
"Jet constituents' signal state different from container");
1291 ATH_MSG_INFO(
"REGTEST number of constituents: " << thisjet->numConstituents() );
1298 unsigned int constitContsize = constitCont.
size();
1299 ATH_MSG_INFO(
"REGTEST Got constituent vector, size: " << constitContsize <<
"; should be " << thisjet->numConstituents());
1300 if(constitContsize != thisjet->numConstituents())
ATH_MSG_WARNING(
"Constituents container size different from number of constituents");
1302 if (constitContsize != 0) {
1400 std::vector<int> vecvalueint;
1402 int vecsize = vecvalueint.size();
1403 ATH_MSG_INFO(
"REGTEST Got NumTrkPt1000 vector, size: " << vecsize);
1406 for(
const auto & thisvalue : vecvalueint){
1408 ATH_MSG_INFO(
"REGTEST NumTrkPt1000 #" << j <<
": " << thisvalue);
1410 ATH_MSG_INFO(
"REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
1411 if (vecsize != j)
ATH_MSG_WARNING(
"REGTEST Problem with displaying this attribute");
1415 int vecsize = vecvalueint.size();
1416 ATH_MSG_INFO(
"REGTEST Got Got NumTrkPt500 vector, size: " << vecsize);
1419 for(
const auto & thisvalue : vecvalueint){
1421 ATH_MSG_INFO(
"REGTEST NumTrkPt500 #" << j <<
": " << thisvalue);
1423 ATH_MSG_INFO(
"REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
1424 if (vecsize != j)
ATH_MSG_WARNING(
"REGTEST Problem with displaying this attribute");
1430 std::vector<float> vecvalue;
1432 int vecsize = vecvalue.size();
1433 ATH_MSG_INFO(
"REGTEST Got JVF vector, size: " << vecsize);
1436 for(
const auto & thisvalue : vecvalue){
1438 ATH_MSG_INFO(
"REGTEST JVF #" << j <<
": " << thisvalue);
1440 ATH_MSG_INFO(
"REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
1441 if (vecsize != j)
ATH_MSG_WARNING(
"REGTEST Problem with displaying this attribute");
1445 int vecsize = vecvalue.size();
1446 ATH_MSG_INFO(
"REGTEST Got SumPtTrkPt1000 vector, size: " << vecsize);
1449 for(
const auto & thisvalue : vecvalue){
1451 ATH_MSG_INFO(
"REGTEST SumPtTrkPt1000 #" << j <<
": " << thisvalue);
1453 ATH_MSG_INFO(
"REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
1454 if (vecsize != j)
ATH_MSG_WARNING(
"REGTEST Problem with displaying this attribute");
1458 int vecsize = vecvalue.size();
1459 ATH_MSG_INFO(
"REGTEST Got SumPtTrkPt500 vector, size: " << vecsize);
1462 for(
const auto & thisvalue : vecvalue){
1464 ATH_MSG_INFO(
"REGTEST SumPtTrkPt500 #" << j <<
": " << thisvalue);
1466 ATH_MSG_INFO(
"REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
1467 if (vecsize != j)
ATH_MSG_WARNING(
"REGTEST Problem with displaying this attribute");
1471 int vecsize = vecvalue.size();
1472 ATH_MSG_INFO(
"REGTEST Got TrackWidthPt1000 vector, size: " << vecsize);
1475 for(
const auto & thisvalue : vecvalue){
1477 ATH_MSG_INFO(
"REGTEST TrackWidthPt1000 #" << j <<
": " << thisvalue);
1479 ATH_MSG_INFO(
"REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
1480 if (vecsize != j)
ATH_MSG_WARNING(
"REGTEST Problem with displaying this attribute");
1484 int vecsize = vecvalue.size();
1485 ATH_MSG_INFO(
"REGTEST Got TrackWidthPt500 vector, size: " << vecsize);
1488 for(
const auto & thisvalue : vecvalue){
1490 ATH_MSG_INFO(
"REGTEST TrackWidthPt500 #" << j <<
": " << thisvalue);
1492 ATH_MSG_INFO(
"REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
1493 if (vecsize != j)
ATH_MSG_WARNING(
"REGTEST Problem with displaying this attribute");
1497 int vecsize = vecvalue.size();
1498 ATH_MSG_INFO(
"REGTEST Got EnergyPerSampling vector, size: " << vecsize);
1501 for(
const auto & thisvalue : vecvalue){
1503 ATH_MSG_INFO(
"REGTEST EnergyPerSampling #" << j <<
": " << thisvalue);
1505 ATH_MSG_INFO(
"REGTEST size of attribute vector == number of displayed attributes: " << (vecsize == j) );
1506 if (vecsize != j)
ATH_MSG_WARNING(
"REGTEST Problem with displaying this attribute");
1535 return StatusCode::SUCCESS;
1539 if (jetContsize == i)
ATH_MSG_INFO(
"REGTEST size of jet container == number of displayed jets: " << (jetContsize == i) );
1544 if (!onefilled)
ATH_MSG_DEBUG(
"There was no filled jet containers");
1546 ATH_MSG_INFO(
"REGTEST ==========END of xAOD::JetContainer DUMP===========");
1550 return StatusCode::SUCCESS;
1559 ATH_MSG_INFO(
"REGTEST ==========START of TrigEMCluster DUMP===========");
1564 StatusCode
sc =
evtStore()->retrieve(EMCluster,lastEMCluster);
1565 if (
sc.isFailure()) {
1567 return StatusCode::SUCCESS;
1572 for (
int i=0; EMCluster != lastEMCluster; ++EMCluster, ++i) {
1576 ATH_MSG_INFO(
"REGTEST Looking at xAOD::TrigEMCluster " << i);
1578 ATH_MSG_INFO(
"REGTEST xAOD::TrigEMCluster->energy() returns " << thisEMCluster->
energy());
1579 ATH_MSG_INFO(
"REGTEST xAOD::TrigEMCluster->e() returns " << thisEMCluster->
energy());
1580 ATH_MSG_INFO(
"REGTEST xAOD::TrigEMCluster->phi() returns " << thisEMCluster->
phi());
1582 ATH_MSG_INFO(
"REGTEST xAOD::TrigEMCluster->eta() returns " << thisEMCluster->
eta());
1583 ATH_MSG_INFO(
"REGTEST xAOD::TrigEMCluster->e237() returns " << thisEMCluster->
e237());
1584 ATH_MSG_INFO(
"REGTEST xAOD::TrigEMCluster->e277() returns " << thisEMCluster->
e277());
1585 ATH_MSG_INFO(
"REGTEST xAOD::TrigEMCluster->fracs1() returns " << thisEMCluster->
fracs1());
1586 ATH_MSG_INFO(
"REGTEST xAOD::TrigEMCluster->weta2() returns " << thisEMCluster->
weta2());
1587 ATH_MSG_INFO(
"REGTEST xAOD::TrigEMCluster->ehad1() returns " << thisEMCluster->
ehad1());
1588 ATH_MSG_INFO(
"REGTEST xAOD::TrigEMCluster->Eta1() returns " << thisEMCluster->
eta1());
1591 ATH_MSG_INFO(
"REGTEST ==========END of xAOD::TrigEMCluster DUMP===========");
1594 return StatusCode::SUCCESS;
1603 ATH_MSG_INFO(
"REGTEST ==========START of xAODTrigEMClusterContainer DUMP===========");
1608 StatusCode
sc =
evtStore()->retrieve(EMCluster,lastEMCluster);
1609 if (
sc.isFailure()) {
1610 ATH_MSG_INFO(
"REGTEST No xAOD::TrigEMClusterContainer found");
1611 return StatusCode::SUCCESS;
1613 ATH_MSG_INFO(
"REGTEST xAOD::TrigEMClusterContainer retrieved");
1616 for (
int i=0; EMCluster != lastEMCluster; ++EMCluster, ++i) {
1618 ATH_MSG_INFO(
"REGTEST Looking at xAOD::TrigEMClusterContainer " << i);
1623 for (
int j=0; EMClusterItr != EMClusterItrE; ++EMClusterItr, ++j ) {
1625 ATH_MSG_INFO(
"REGTEST Looking at xAOD::TrigEMCluster " << j);
1626 ATH_MSG_INFO(
"REGTEST xAOD::TrigEMCluster->energy() returns " << (*EMClusterItr)->energy());
1627 ATH_MSG_INFO(
"REGTEST xAOD::TrigEMCluster->et() returns " << (*EMClusterItr)->et());
1628 ATH_MSG_INFO(
"REGTEST xAOD::TrigEMCluster->eta() returns " << (*EMClusterItr)->eta());
1629 ATH_MSG_INFO(
"REGTEST xAOD::TrigEMCluster->phi() returns " << (*EMClusterItr)->phi());
1639 ATH_MSG_INFO(
"REGTEST ==========END of TrigEMClusterContainer DUMP===========");
1642 return StatusCode::SUCCESS;
1649 ATH_MSG_INFO(
"REGTEST ==========START of xAOD::TauJetContainer DUMP===========" );
1651 StatusCode
sc =
evtStore() -> retrieve (TauJetcont,
"HLT_xAOD__TauJetContainer_TrigTauRecMerged");
1653 if (
sc.isFailure()) {
1655 ATH_MSG_INFO(
"REGTEST No Tau container HLT_xAOD__TauJetContainer_TrigTauRecMerged");
1658 return StatusCode::SUCCESS;
1664 ATH_MSG_INFO(
"REGTEST (*tauIt)->eta() returns " << (*tauIt)->eta() );
1665 ATH_MSG_INFO(
"REGTEST (*tauIt)->phi() returns " << (*tauIt)->phi() );
1666 ATH_MSG_INFO(
"REGTEST (*tauIt)->pt() returns " << (*tauIt)->pt() );
1670 #ifndef XAODTAU_VERSIONS_TAUJET_V3_H
1671 EFnTracks = (*tauIt)->nTracks();
1676 ATH_MSG_INFO(
"REGTEST (*tauIt)->nTracks() returns " << EFnTracks );
1679 int EFWidenTrack = -1;
1680 #ifndef XAODTAU_VERSIONS_TAUJET_V3_H
1681 EFWidenTrack = (*tauIt)->nWideTracks();
1686 ATH_MSG_INFO(
"REGTEST (*tauIt)->nWideTracks() returns " << EFWidenTrack );
1695 float ipSigLeadTrk=0;
1696 float trFlightPathSig=0;
1699 float PSSFraction=0;
1700 float EMPOverTrkSysP=0;
1701 float ChPiEMEOverCaloEME=0;
1706 ATH_MSG_INFO(
"REGTEST TauDetails->trkAvgDist() returns " << trkAvgDist);
1709 ATH_MSG_INFO(
"REGTEST TauDetails->etOverPtLeadTrk() returns " << etOvPtLead);
1712 ATH_MSG_INFO(
"REGTEST TauDetails->EMRadius() returns " << emRadius);
1715 ATH_MSG_INFO(
"REGTEST TauDetails->hadRadius() returns " << hadRadius);
1718 ATH_MSG_INFO(
"REGTEST TauDetails->isolFrac() returns " << IsoFrac);
1721 ATH_MSG_INFO(
"REGTEST TauDetails->centFrac() returns " << centFrac);
1724 ATH_MSG_INFO(
"REGTEST TauDetails->ipSigLeadTrk() returns " << ipSigLeadTrk);
1727 ATH_MSG_INFO(
"REGTEST TauDetails->trFlightPathSig() returns " << trFlightPathSig);
1730 ATH_MSG_INFO(
"REGTEST TauDetails->dRmax() returns " << dRmax);
1734 ATH_MSG_INFO(
"REGTEST TauDetails->massTrkSys() returns " << massTrkSys);}
1737 ATH_MSG_INFO(
"REGTEST TauDetails->PSSFraction() returns " << PSSFraction);
1740 ATH_MSG_INFO(
"REGTEST TauDetails->EMPOverTrkSysP() returns " << EMPOverTrkSysP);
1743 ATH_MSG_INFO(
"REGTEST TauDetails->ChPiEMEOverCaloEME() returns " << ChPiEMEOverCaloEME);
1747 ATH_MSG_INFO(
"REGTEST TauDetails->etEMAtEMScale() returns " << EtEm);}
1751 ATH_MSG_INFO(
"REGTEST TauDetails->etHadAtEMScale() returns " << EtHad);}
1754 if( !(*tauIt)->jetLink().isValid() ) {
1756 return StatusCode::SUCCESS;
1759 const xAOD::Jet* pJetSeed = *((*tauIt)->jetLink());
1764 for (
int clusCount = 0; clusItr != clusItrE; ++clusItr, ++clusCount) {
1766 ATH_MSG_INFO(
"REGTEST Tau Cluster " << clusCount <<
" pt = " << (*clusItr)->pt()
1767 <<
" eta = " << (*clusItr)->eta()
1768 <<
" phi = " << (*clusItr)->phi() );
1773 for (
unsigned int trackNum = 0; trackNum < (*tauIt)->nTracks(); ++trackNum) {
1778 return StatusCode::SUCCESS;
1792 return StatusCode::SUCCESS;
1802 ATH_MSG_INFO(
"REGTEST ==========START of xAOD::TrackParticle DUMP===========");
1804 std::vector<std::string> SGkeys;
1805 SGkeys.push_back(
"HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bjet_EFID");
1806 SGkeys.push_back(
"HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Bphysics_EFID");
1807 SGkeys.push_back(
"HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Electron_EFID");
1808 SGkeys.push_back(
"HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_FullScan_EFID");
1809 SGkeys.push_back(
"HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Muon_EFID");
1810 SGkeys.push_back(
"HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Photon_EFID");
1811 SGkeys.push_back(
"HLT_xAOD__TrackParticleContainer_InDetTrigTrackingxAODCnv_Tau_EFID");
1813 StatusCode returnsc = StatusCode::SUCCESS;
1815 for (
unsigned int SGkey = 0; SGkey < SGkeys.size(); ++SGkey) {
1817 StatusCode
sc =
evtStore()->retrieve(trackParticleContainer,SGkeys.at(SGkey));
1818 if (
sc.isFailure()) {
1819 ATH_MSG_INFO(
"REGTEST No track particle container found with key " << SGkeys.at(SGkey));
1822 ATH_MSG_INFO(
"REGTEST TrackParticleContainer retrieved with key " << SGkeys.at(SGkey)
1823 <<
" and size " << trackParticleContainer->
size());
1828 for (
int index = 0; trackParticleItr != trackParticleLast; ++trackParticleItr, ++
index) {
1832 ATH_MSG_INFO(
"REGTEST pt: " << (*trackParticleItr)->pt()
1833 <<
"/eta: " << (*trackParticleItr)->eta()
1834 <<
"/phi: " << (*trackParticleItr)->phi()
1835 <<
"/m: " << (*trackParticleItr)->m()
1836 <<
"/e: " << (*trackParticleItr)->e()
1837 <<
"/rapidity: " << (*trackParticleItr)->rapidity());
1839 ATH_MSG_INFO(
"REGTEST Defining parameters functions:");
1840 ATH_MSG_INFO(
"REGTEST charge: " << (*trackParticleItr)->charge()
1841 <<
"/d0: " << (*trackParticleItr)->d0()
1842 <<
"/z0: " << (*trackParticleItr)->z0()
1843 <<
"/phi0: " << (*trackParticleItr)->phi0()
1844 <<
"/theta: " << (*trackParticleItr)->theta()
1845 <<
"/qOverP: " << (*trackParticleItr)->qOverP()
1846 <<
"/vx: " << (*trackParticleItr)->vx()
1847 <<
"/vy: " << (*trackParticleItr)->vy()
1848 <<
"/vz: " << (*trackParticleItr)->vz());
1853 ATH_MSG_INFO(
"REGTEST chiSquared: " << (*trackParticleItr)->chiSquared()
1854 <<
"/numberDoF: " << (*trackParticleItr)->numberDoF());
1859 msg() << MSG::INFO <<
"REGTEST ";
1860 uint8_t numberOfBLayerHits = 0;
1862 msg() <<
"/numberOfBLayerHits: " <<
static_cast<int>(numberOfBLayerHits);
1864 msg() <<
"/numberOfBLayerHits not found";
1867 uint8_t numberOfPixelHits = 0;
1869 msg() <<
"/numberOfPixelHits: " <<
static_cast<int>(numberOfPixelHits);
1871 msg() <<
"/numberOfPixelHits not found";
1874 uint8_t numberOfPixelHoles = 0;
1876 msg() <<
"/numberOfPixelHoles: " <<
static_cast<int>(numberOfPixelHoles);
1878 msg() <<
"/numberOfPixelHoles not found";
1881 uint8_t numberOfSCTHits = 0;
1883 msg() <<
"/numberOfSCTHits: " <<
static_cast<int>(numberOfSCTHits);
1885 msg() <<
"/numberOfSCTHits not found";
1888 uint8_t numberOfSCTHoles = 0;
1890 msg() <<
"/numberOfSCTHoles: " <<
static_cast<int>(numberOfSCTHoles);
1892 msg() <<
"/numberOfSCTHoles not found";
1895 uint8_t numberOfTRTHits = 0;
1897 msg() <<
"/numberOfTRTHits: " <<
static_cast<int>(numberOfTRTHits);
1899 msg() <<
"/numberOfTRTHits not found";
1902 uint8_t numberOfTRTHoles = 0;
1904 msg() <<
"/numberOfTRTHoles: " <<
static_cast<int>(numberOfTRTHoles);
1906 msg() <<
"/numberOfTRTHoles not found";
1912 ATH_MSG_INFO(
"REGTEST ==========END of xAOD::TrackParticle DUMP===========");
1922 ATH_MSG_INFO(
"REGTEST ==========START of xAOD::Vertex DUMP===========");
1925 StatusCode
sc =
evtStore()->retrieve(vertexContainer,
"HLT_xAOD__VertexContainer_xPrimVx");
1926 if (
sc.isFailure()) {
1928 return StatusCode::FAILURE;
1935 for (
int index = 0; vertexItr != vertexLast; ++vertexItr, ++
index) {
1940 <<
"/y: " << (*vertexItr)->y()
1941 <<
"/z: " << (*vertexItr)->z());
1944 ATH_MSG_INFO(
"REGTEST chiSquared: " << (*vertexItr)->chiSquared()
1945 <<
"/numberDoF: " << (*vertexItr)->numberDoF());
1948 ATH_MSG_INFO(
"REGTEST ==========END of xAOD::Vertex DUMP===========");
1951 return StatusCode::SUCCESS;
1956 ATH_MSG_INFO(
"REGTEST ==========START of TDT DUMP===========" );
1959 if (chain.empty()) {
1962 std::vector<std::string> confChains =
m_trigDec->getListOfTriggers(chain);
1963 for (
const auto& item : confChains) {
1966 if (
m_trigDec->getNavigationFormat() ==
"TriggerElement") {
1971 if (passFeatures.size()) {
1972 ATH_MSG_INFO(
" " << item <<
" Passed Final IParticle features size: " << passFeatures.size());
1974 if (!li.isValid()) {
1978 std::string state =
"ACTIVE";
1981 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);
1982 }
catch (
const std::exception& e) {
1983 ATH_MSG_WARNING(
" Unable to dereference feature {" << e.what() <<
"}");
1989 if (passAndFailFeatures.size()) {
1990 ATH_MSG_INFO(
" " << item <<
" Passed+Failed Final IParticle features size: " << passAndFailFeatures.size());
1992 if (!li.isValid()) {
1996 std::string state =
"ACTIVE";
1999 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);
2000 }
catch (
const std::exception& e) {
2001 ATH_MSG_WARNING(
" Unable to dereference feature {" << e.what() <<
"}");
2007 if (allFeatures.size()) {
2008 ATH_MSG_INFO(
" " << item <<
" Passed+Failed ALL IParticle features size: " << allFeatures.size());
2010 if (!li.isValid()) {
2014 std::string state =
"ACTIVE";
2017 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);
2018 }
catch (
const std::exception& e) {
2019 ATH_MSG_WARNING(
" Unable to dereference feature {" << e.what() <<
"}");
2026 if (
m_trigDec->getNavigationFormat() ==
"TrigComposite") {
2035 ATH_MSG_INFO(
"Muon pT: " << (*mu.link)->pt() <<
" is from the same ROI as tracks with index "
2036 << std::distance(muonTracksReadHandle->
begin(), startIt) <<
"-" << std::distance(muonTracksReadHandle->
begin(), stopIt)
2037 <<
", which is " << std::distance(startIt, stopIt) <<
" tracks, out of " << muonTracksReadHandle->
size() <<
" total tracks.");
2039 ATH_MSG_VERBOSE(
" -- Track " << std::distance(startIt, it) <<
" in this ROI, pT: " << (*it)->pt() );
2044 ATH_MSG_INFO(
"REGTEST ==========END of TDT DUMP===========" );
2045 return StatusCode::SUCCESS;
2049 ATH_MSG_INFO(
"REGTEST ==========START of xAOD::TrigCompositeContainer DUMP===========" );
2055 std::string typeNameTC;
2068 ATH_MSG_DEBUG(
"#################### Dumping container of : " << key );
2073 for (
auto tc: *cont ) {
2080 ATH_MSG_INFO(
"REGTEST ==========END of xAOD::TrigCompositeContainer DUMP===========" );
2081 return StatusCode::SUCCESS;
2088 const std::string name =
tc->linkColNames().at(element);
2089 const CLID clid =
static_cast<CLID>(
tc->linkColClids().at(element));
2094 if (!elementLink.
isValid())
ATH_MSG_WARNING(
" Invalid element link to TrigRoiDescriptorCollection, link name:'" << name <<
"'");
2095 else ATH_MSG_DEBUG(
" Dereferenced link '" << name <<
"'' to TrigRoiDescriptor:" << *elementLink);
2101 if (!elementLink.
isValid())
ATH_MSG_WARNING(
" Invalid element link to LVL1::RecEmTauRoI, link name:'" << name <<
"'");
2102 else ATH_MSG_DEBUG(
" Dereferenced link '" << name <<
"' to LVL1::RecEmTauRoI:" << *elementLink);
2107 if (!elementLink.
isValid())
ATH_MSG_WARNING(
" Invalid element link to TrigComposite, link name:'" << name <<
"'");
2108 else ATH_MSG_DEBUG(
" Dereferenced link '" << name <<
"' to TrigComposite, TC name:'" << (*elementLink)->name() <<
"'");
2113 if (!elementLink.
isValid())
ATH_MSG_WARNING(
" Invalid element link to View, link name:'" << name <<
"'");
2114 else ATH_MSG_DEBUG(
" Dereferenced link '" << name <<
"' to View:'" << *elementLink);
2116 }
else if (name ==
"feature") {
2121 if (!elementLink.
isValid())
ATH_MSG_WARNING(
" Invalid element link to xAOD::TrigEMClusterContainer 'feature'");
2122 else ATH_MSG_DEBUG(
" Dereferenced xAOD::TrigEMClusterContainer link 'feature', Energy:" << (*elementLink)->energy());
2127 if (!elementLink.
isValid())
ATH_MSG_WARNING(
" Invalid element link to xAOD::TrigMissingETContainer 'feature'");
2128 else ATH_MSG_DEBUG(
" Dereferenced xAOD::TrigMissingETContainer link 'feature', ex:" << (*elementLink)->ex() <<
" ey:" << (*elementLink)->ey());
2135 else ATH_MSG_DEBUG(
" Dereferenced IParticle link 'feature', pt:" << (*elementLink)->pt() <<
" eta:" << (*elementLink)->eta() <<
" phi:" << (*elementLink)->phi());
2136 }
catch(std::runtime_error& e) {
2137 ATH_MSG_WARNING(
" Cannot dereference 'feature' as IParticle: '" << e.what() <<
"'");
2143 ATH_MSG_DEBUG(
" Ignoring link to '" << name <<
"' with link CLID " << clid);
2146 return StatusCode::SUCCESS;
2157 std::vector<std::string> keys;
2159 evtStore()->keys(TrigCompositeCLID, keys);
2164 std::string typeNameTC;
2166 ATH_MSG_DEBUG(
"Got " << keys.size() <<
" keys for " << typeNameTC);
2170 chainIDs.insert( chainID.
numeric() );
2172 std::set<int> converted;
2177 for (
const std::string& chain : chains) {
2180 chainIDs.insert( chainID_tmp.
numeric() );
2182 if (legMultiplicites.size() == 0) {
2183 ATH_MSG_ERROR(
"chain " << chainID_tmp <<
" has invalid configuration, no multiplicity data.");
2184 }
else if (legMultiplicites.size() > 1) {
2187 for (
size_t legNumeral = 0; legNumeral < legMultiplicites.size(); ++legNumeral) {
2189 chainIDs.insert( legID.
numeric() );
2196 for (
const std::string& key : keys)
ATH_CHECK(
evtStore()->retrieve( container, key ) );
2198 std::stringstream
ss;
2199 ss <<
"digraph {" << std::endl;
2200 ss <<
" node [shape=rectangle]" << std::endl;
2201 ss <<
" rankdir = BT" << std::endl;
2204 for (
const std::string& key : keys) {
2206 if ( not key.starts_with(
"HLTNav_") ) {
2211 ATH_MSG_DEBUG(
"Processing collection " << key <<
" to be added to the navigation graph");
2213 bool writtenHeader =
false;
2218 std::vector<ElementLink<DecisionContainer>> seedELs =
tc->objectCollectionLinks<
DecisionContainer>(
"seed");
2219 const bool isHypoAlgNode =
tc->name() ==
"H";
2220 const bool isComboHypoAlgNode =
tc->name() ==
"CH";
2221 const std::vector<DecisionID>& decisions =
tc->decisions();
2222 const uint32_t selfKey = selfEL.
key();
2223 const uint32_t selfIndex = selfEL.
index();
2225 bool doDump =
false;
2228 if (chainIDs.count(
id) == 1) {
2236 const std::vector<DecisionID>& seedDecisions = (*s)->decisions();
2238 if (chainIDs.count(
id) == 1) {
2249 if (!writtenHeader) {
2250 writtenHeader =
true;
2251 ss <<
" subgraph " << key <<
" {" << std::endl;
2252 ss <<
" label=\"" << key <<
"\"" << std::endl;
2254 const std::string scheme =
"rdpu9";
2255 std::string
color =
"1";
2256 if (
tc->name() ==
"L1") {
color =
"1"; }
2257 else if (
tc->name() ==
"F") {
color =
"2"; }
2258 else if (
tc->name() ==
"IM") {
color =
"3"; }
2259 else if (
tc->name() ==
"H") {
color =
"4"; }
2260 else if (
tc->name() ==
"CH") {
color =
"5"; }
2261 else if (
tc->name() ==
"SF") {
color =
"6"; }
2262 else if (
tc->name() ==
"HLTPassRaw") {
color =
"7"; }
2263 ss <<
" \"" << selfKey <<
"_" << selfIndex <<
"\" [colorscheme="<<scheme<<
",style=filled,fillcolor="<<
color<<
",label=<<B>Container</B>=" << typeNameTC;
2264 if (
tc->name() !=
"")
ss <<
" <B>Name</B>=" <<
tc->name();
2265 ss <<
"<BR/><B>Key</B>=" << key <<
"<BR/><B>Index</B>=" << selfIndex;
2266 const bool isRemapped =
tc->isRemapped();
2267 if (isHypoAlgNode)
ss <<
" <B>linksRemapped</B>=" << (isRemapped ?
"Y" :
"N");
2268 if (decisions.size() > 0) {
2269 ss <<
"<BR/><B>Pass</B>=";
2271 for (
unsigned decisionID : decisions) {
2273 std::string highlight = (dID.
numeric() == chainID.
numeric() ?
"<B>[CHAIN:" :
"");
2277 ss << std::hex << highlight << decisionID << (!highlight.empty() ?
"]</B>" :
"") << std::dec <<
",";
2284 ss <<
">]" << std::endl;
2286 size_t seedCount = 0;
2287 for (
size_t i = 0; i <
tc->linkColNames().
size(); ++i) {
2288 const std::string link =
tc->linkColNames().at(i);
2289 if (link ==
"seed" || link ==
"seed__COLL") {
2291 const uint32_t seedKey =
tc->linkColKeys().at(i);
2292 const uint32_t seedIndex =
tc->linkColIndices().at(i);
2296 const std::vector<DecisionID> seedDecisions = (*seedEL)->decisions();
2297 bool doSeedLink =
false;
2299 if (chainIDs.count(
id) == 1) {
2308 ss <<
" \"" << selfKey <<
"_" << selfIndex <<
"\" -> \"" << seedKey <<
"_" << seedIndex <<
"\" [colorscheme="<<scheme<<
",color=9,fontcolor=8,label=\"seed\"]" << std::endl;
2311 std::string linkColour =
"12";
2312 std::string linkBackground =
"11";
2313 const std::string extScheme =
"paired12";
2314 if (link ==
"roi") { linkColour=
"2"; linkBackground=
"1"; }
2315 else if (link ==
"initialRoI") { linkColour=
"2"; linkBackground=
"1"; }
2316 else if (link ==
"initialRecRoI") { linkColour=
"8"; linkBackground=
"7"; }
2317 else if (link ==
"feature") { linkColour=
"4"; linkBackground=
"3"; }
2318 else if (link ==
"view") { linkColour=
"10"; linkBackground=
"9"; }
2319 const CLID linkCLID =
static_cast<CLID>(
tc->linkColClids().at(i) );
2325 const unsigned index = (isRemapped ?
tc->linkColIndicesRemap().at(i) :
tc->linkColIndices().at(i));
2328 const std::string* keyStr =
evtStore()->keyToString(key, checkCLID);
2329 if (keyStr !=
nullptr && checkCLID != linkCLID) {
2330 std::string tnameOfCheck;
2331 m_clidSvc->getTypeNameOfID(checkCLID, tnameOfCheck).ignore();
2332 ATH_MSG_ERROR(
"Inconsistent CLID " << checkCLID <<
" [" << tnameOfCheck <<
"] stored in storegate for key " << key
2333 <<
". We were expecting " << linkCLID <<
" [" << tname <<
"]");
2336 std::string tnameEscape;
2337 for (std::string::const_iterator i = tname.begin(); i != tname.end(); ++i) {
2338 unsigned char c = *i;
2340 tnameEscape +=
"<";
2341 }
else if (c ==
'>') {
2342 tnameEscape +=
">";
2349 ss <<
" \"" << selfKey <<
"_" << selfIndex <<
"\" -> \"" << key <<
"_" <<
index <<
"\" ";
2350 ss <<
"[colorscheme="<<extScheme<<
",color="<<linkColour<<
",fontcolor="<<linkColour<<
",arrowhead=empty,label=\"" << link <<
"\"]" << std::endl;
2353 const bool linkToSelf = (selfKey == key and selfIndex ==
index);
2355 if (converted.count(key +
index) == 0 and not linkToSelf) {
2356 ss <<
" \"" << key <<
"_" <<
index <<
"\" [colorscheme="<<extScheme<<
",style=filled,fillcolor="<<linkBackground<<
",label=<<B>Container</B>=" << tnameEscape <<
"<BR/><B>Key</B>=";
2357 if (keyStr !=
nullptr)
ss << *keyStr;
2358 else ss <<
"[<I>KEY "<< key <<
" NOT IN STORE</I>] ";
2359 ss <<
"<BR/><B>Index</B>=" <<
index <<
">]";
2362 converted.insert(key +
index);
2366 if (writtenHeader) {
2367 ss <<
" }" << std::endl;
2371 ss <<
"}" << std::endl;
2373 returnValue.assign(
ss.str() );
2374 return StatusCode::SUCCESS;
2387 const std::vector< unsigned int > serialisedNavigation = navigationHandle->
serialized();
2388 ATH_MSG_INFO(
"Serialised navigation size: " << serialisedNavigation.size() );
2397 std::map< int, std::string > hash2string;
2398 for (
auto const& sequence : testMenu->front()->sequenceInputTEs() ) {
2399 for (
auto const& name : sequence ) {
2401 hash2string[
hash ] = name;
2406 unsigned int chainCounter = 0;
2407 std::map< int, std::string > hash2chain;
2408 for (
auto const& chain : testMenu->front()->chainSignatureOutputTEs() ) {
2411 std::string chainName = testMenu->front()->chainNames()[ chainCounter ];
2415 for (
auto const& signature : chain ) {
2416 for (
auto const& name : signature ) {
2418 hash2string[
hash ] = name;
2419 hash2chain[
hash ] = chainName;
2428 if ( lhs.
getCLID() == rhs.getCLID() )
return ( lhs.
getIndex() < rhs.getIndex() );
2431 else return ( lhs.
getCLID() < rhs.getCLID() );
2433 std::map< HLT::TriggerElement::FeatureAccessHelper, std::vector< HLT::TriggerElement* >,
decltype(cmpLambda) > feature2element(cmpLambda);
2436 std::vector< HLT::TriggerElement* > allTEs;
2437 testNav->
getAll( allTEs,
false );
2438 for (
auto element : allTEs ) {
2441 for (
auto helper : element->getFeatureAccessHelpers() ) {
2442 feature2element[ helper ].push_back( element );
2448 for (
auto element : allTEs ) {
2450 ATH_MSG_INFO(
"+++++++++++ " << hash2string[ element->getId() ] <<
" is terminal node" );
2452 std::queue< HLT::TriggerElement* > allAncestors;
2453 allAncestors.push( element );
2454 while ( allAncestors.size() ) {
2469 for (
auto ancestor : theseAncestors ) {
2470 allAncestors.push( ancestor );
2478 auto decisionOutput = outputNavigation.
ptr();
2481 std::map< HLT::TriggerElement const*, std::vector< int > > element2decisions;
2482 for (
const auto&
pair : feature2element ) {
2485 std::string featureName = testNav->
label(
pair.first.getCLID(),
pair.first.getIndex().subTypeIndex() );
2486 auto sgKey =
evtStore()->stringToKey( featureName,
pair.first.getCLID() );
2489 std::string storeFeatureName =
"feature";
2496 decision->typelessSetObjectLink( storeFeatureName, sgKey,
pair.first.getCLID(),
pair.first.getIndex().objectsBegin(),
pair.first.getIndex().objectsEnd() );
2499 std::set< std::string > passedChains;
2503 passedChains.insert( hash2chain[ element->
getId() ] );
2506 int decisionNumber = decisionOutput->size() - 1;
2507 element2decisions[ element ].push_back( decisionNumber );
2511 for (
auto& chain : passedChains ) {
2517 unsigned int decisionCounter = 0;
2518 for (
const auto&
pair : feature2element ) {
2521 auto decision = decisionOutput->at( decisionCounter );
2525 for (
auto element :
pair.second ) {
2527 for (
auto ancestor : theseAncestors ) {
2528 for (
int decisionIndex : element2decisions[ ancestor ] ) {
2535 return StatusCode::SUCCESS;
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
Scalar theta() const
theta method
#define ATH_CHECK
Evaluate an expression and check for errors.
ElementLink()
Default constructor.
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
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.
xAOD::TrigComposite Decision
std::set< DecisionID > DecisionIDContainer
xAOD::TrigCompositeContainer DecisionContainer
size_t size() const
Number of registered mappings.
DataVector< SG::View > ViewContainer
View container for recording in StoreGate.
const ServiceHandle< StoreGateSvc > & inputMetaStore() const
Const accessor for the input metadata store.
ServiceHandle< StoreGateSvc > & evtStore()
hash_t hash(const std::string &histName) const
Method to calculate a 32-bit hash from a string.
DataModel_detail::const_iterator< DataVector > const_iterator
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.
ElementLink implementation for ROOT usage.
index_type index() const
Get the index of the element inside of its container.
bool isValid() const
Check if the element can be found.
sgkey_t key() const
Get the key that we reference, as a hash.
TrigCompositeUtils::DecisionID numeric() const
numeric ID
bool deserialize(const std::vector< uint32_t > &input)
The Navigation class, organizes TriggerElements into the tree structure.
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
class_id_type getCLID() const
Class ID of object.
TriggerElement is the basic ingreedient of the interface between HLT algorithms and the navigation It...
@ seededByRelation
what TEs are seeding me
te_id_type getId() const
reset internals.
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
Top level AOD object storing LVL1 RoIs.
const emtaus_type & getEmTauROIs() const
Get all the em/tau RoIs in the event.
a const_iterator facade to DataHandle.
pointer_type ptr()
Dereference the pointer.
HLT chain configuration information.
const std::string & chain_name() const
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
Gaudi::Property< bool > m_doDumpxAODElectronContainer
StatusCode dumpxAODTrigEMClusterContainer()
Gaudi::Property< bool > m_doTDTCheck
StatusCode dumpTrigPassBits()
virtual StatusCode execute(const EventContext &ctx) override
Execute method.
StatusCode dumpTrigEFBphysContainer()
StatusCode dumpxAODTrackParticle()
StatusCode dumpNavigation(const EventContext &ctx)
ToolHandle< Rec::IMuonPrintingTool > m_muonPrinter
PublicToolHandle< Trig::TrigDecisionTool > m_trigDec
Gaudi::Property< bool > m_doDumpxAODPhotonContainer
Gaudi::Property< bool > m_doDumpxAODMuonContainer
StatusCode dumpTrigComposite()
Dump information on TrigComposite collections.
Gaudi::Property< bool > m_doDumpxAODJetContainer
StatusCode dumpxAODTrigMinBias()
StatusCode dumpTrigL2BphysContainer()
Gaudi::Property< std::vector< std::string > > m_dumpTrigCompositeContainers
Gaudi::Property< bool > m_doDumpLVL1_ROI
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.
StatusCode dumpxAODTauJetContainer()
Gaudi::Property< bool > m_doDumpTrigPassBits
Gaudi::Property< bool > m_doDumpTrigEFBphysContainer
SG::ReadHandleKey< xAOD::TrigNavigation > m_navigationHandleKey
StatusCode dumpxAODTrigEMCluster()
StatusCode dumpLVL1_ROI()
StatusCode dumpxAODTrigMissingET()
ToolHandle< HLT::Navigation > m_navigationTool
Gaudi::Property< bool > m_doDumpxAODVertex
Gaudi::Property< bool > m_doDumpxAODTrackParticle
StatusCode dumpxAODElectronContainer()
StatusCode dumpxAODPhotonContainer()
Gaudi::Property< bool > m_doDumpTrigL2BphysContainer
void dumpTrigT2MBTSBits()
Gaudi::Property< bool > m_doDumpxAODTrigElectronContainer
ServiceHandle< IClassIDSvc > m_clidSvc
StatusCode dumpxAODVertex()
void dumpTrigVertexCounts()
Gaudi::Property< bool > m_doDumpAllTrigComposite
StatusCode dumpxAODTrigPhotonContainer()
void dumpTrigSpacePointCounts()
Gaudi::Property< bool > m_doDumpAll
Gaudi::Property< bool > m_doDumpStoreGate
Gaudi::Property< bool > m_doDumpTrigCompsiteNavigation
void dumpTrigTrackCounts()
StatusCode dumpTDT(const EventContext &ctx)
Gaudi::Property< bool > m_excludeFailedHypoNodes
Gaudi::Property< bool > m_doDumpxAODTrigEMClusterContainer
StatusCode dumpxAODMuonContainer()
Gaudi::Property< bool > m_doDumpxAODTrigMinBias
Gaudi::Property< bool > m_doDumpxAODTauJetContainer
StatusCode dumpxAODTrigElectronContainer()
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_muonTracksKey
Gaudi::Property< std::string > m_dumpNavForChain
StatusCode dumpxAODJetContainer()
Gaudi::Property< bool > m_doDumpNavigation
Gaudi::Property< bool > m_doDumpxAODTrigPhotonContainer
Gaudi::Property< bool > m_doDumpxAODTrigMissingET
Gaudi::Property< bool > m_doDumpxAODTrigEMCluster
virtual StatusCode initialize() override
Adapted from code by A.Hamilton to check trigger EDM; R.Goncalo 21/11/07.
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.
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...
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
float pixelClusSizeMin() 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
float pixelClusSizeMax() const
float pixelClusTotMax() const
float pixelClusTotMin() 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
bool contains(const std::string &s, const std::string ®x)
does a string contain the substring
int count(std::string s, const std::string ®x)
count how many occurances of a regx are in a string
uint32_t sgkey_t
Type used for hashed StoreGate key+CLID pairs.
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.
@ INACTIVE
The link was inactive for all of the HLT Chains requested in the TDT.
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 requireDecision
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).
static const unsigned int Physics
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
@ 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
@ ethad
ET leakage into hadronic calorimeter with exclusion of energy in CaloSampling::TileGap3.
@ 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
@ e132
uncalibrated energy (sum of cells) in strips in a 3x2 window in cells in eta X phi
@ e011
uncalibrated energy (sum of cells) in presampler in a 1x1 window in cells in eta X phi
@ 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.
@ EMRadius
Get E_T radius.
@ etHadAtEMScale
Get Hadronic energy at EM scale.
@ isolFrac
Get isolation fraction.
@ trkAvgDist
Get calibrated EM transverse energy (DEPRECATED since r19).
@ etEMAtEMScale
Get EM energy at EM scale.
@ centFrac
Get centrality fraction.
@ dRmax
Get maximal dR of tracks associated to calo-seeded tau.
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".
TrigT2MbtsBitsContainer_v1 TrigT2MbtsBitsContainer
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.
static constexpr CLID ID()
Helper to keep a Decision object, ElementLink and ActiveState (with respect to some requested ChainGr...
@ GhostTruthParticleCount