From 1428201699536f354bcbe864e7e82e9dda24fef0 Mon Sep 17 00:00:00 2001 From: Tim Martin <Tim.Martin@cern.ch> Date: Tue, 29 Oct 2019 16:12:14 +0100 Subject: [PATCH] * The initial navigation collections produced by the L1Decoder are prefixed "HLTNav_" (like all other navigation collections) * The initial ROI and initial Rec ROI collections produced by the L1Decoder are prefixed "HLT_" (like all other persistifiable collections produced during HLT execution) * The white listing of ROI containers in the `recordable()` checking function is removed. * The white listing of "HLTNav_" containers in the `recordable()` checking function is changed to an ERROR. * All "HLTNav_" containers are added to the EDM (online) via TriggerConfig.py so they should never be specified by hand in TriggerEDMRun3.py * Added some missing navigation containers to the collection script (L1Decoder fullscan output and HLT summary maker output) * When exporting "HLTNav_", dynamic variables were removed. The output of HypoAlgs requires dynamic variables to re-map element links. * Both decObj and decObjFilterOut are now passed to triggerOutputCfg such that the sub-set in decObjFilterOut get the correct aux dyn added. --- .../python/MuonBytestreamDecodeConfig.py | 2 +- .../MuonConfig/python/MuonRdoDecodeConfig.py | 8 +-- .../share/skeleton.RDOtoRDOtrigger.py | 4 +- .../TrigL2MuonSA/MuFastSteering.h | 4 +- .../python/TrigL2MuonSAConfig_newJO.py | 4 +- .../TrigT2CaloCommon/python/CaloDef.py | 4 +- .../share/testDataAccessService.py | 4 +- .../L1Decoder/python/L1DecoderConfig.py | 45 ++++++++-------- .../L1Decoder/src/CTPUnpackingTool.h | 1 + .../L1Decoder/src/EMRoIsUnpackingTool.h | 4 +- .../L1Decoder/src/JRoIsUnpackingTool.h | 6 +-- Trigger/TrigSteer/L1Decoder/src/L1Decoder.h | 4 +- .../L1Decoder/src/METRoIsUnpackingTool.h | 2 +- .../L1Decoder/src/MURoIsUnpackingTool.h | 4 +- .../src/RoIsUnpackingEmulationTool.h | 3 +- .../L1Decoder/src/RoIsUnpackingToolBase.cxx | 16 +++--- .../L1Decoder/src/TAURoIsUnpackingTool.h | 4 +- .../TrigSteer/ViewAlgsTest/share/EVTest.py | 6 +-- .../ViewAlgsTest/share/creatingEVTest.ref | 23 ++++---- .../ViewAlgsTest/share/mergingEVTest.ref | 23 ++++---- .../python/EmuStepProcessingConfig.py | 8 +-- .../TrigUpgradeTest/python/TestUtils.py | 4 +- .../TrigUpgradeTest/share/Calo.py | 6 +-- .../TrigUpgradeTest/share/CaloRinger.py | 6 +-- .../TrigUpgradeTest/share/EmuScalingCFTest.py | 4 +- .../TrigUpgradeTest/share/IDCalo.py | 2 +- .../TrigUpgradeTest/share/L1CF.py | 4 +- .../TrigUpgradeTest/share/MinBias.py | 4 +- .../TrigUpgradeTest/share/cfTest.py | 6 +-- .../TrigUpgradeTest/share/egammaRinger.py | 2 +- .../TrigUpgradeTest/share/full_menu.py | 21 ++++---- .../TrigUpgradeTest/share/full_menu_cf.py | 21 ++++---- .../TrigUpgradeTest/share/met.fromCells.py | 2 +- .../TrigUpgradeTest/share/met.fromClusters.py | 2 +- .../share/met.fromClustersPufit.py | 2 +- .../TrigUpgradeTest/share/met.fromJets.py | 2 +- .../TrigUpgradeTest/share/met.seq.test.py | 2 +- .../TrigUpgradeTest/share/simpleJetJob.py | 2 +- .../TrigEDMConfig/python/TriggerEDMRun3.py | 27 +++------- .../TriggerJobOpts/python/TriggerConfig.py | 53 +++++++++++++------ .../python/HLTMenuConfig/Menu/HLTCFConfig.py | 8 +-- .../python/HLTMenuConfig/Muon/MuonSetup.py | 4 +- 42 files changed, 193 insertions(+), 170 deletions(-) diff --git a/MuonSpectrometer/MuonConfig/python/MuonBytestreamDecodeConfig.py b/MuonSpectrometer/MuonConfig/python/MuonBytestreamDecodeConfig.py index 1e41a120ebc..6d21d423a6c 100644 --- a/MuonSpectrometer/MuonConfig/python/MuonBytestreamDecodeConfig.py +++ b/MuonSpectrometer/MuonConfig/python/MuonBytestreamDecodeConfig.py @@ -67,7 +67,7 @@ def RpcBytestreamDecodeCfg(flags, forTrigger=False): if forTrigger: # Configure the RAW data provider for ROI access - RpcRawDataProvider.RoIs = "MURoIs" # Maybe we don't want to hard code this? + RpcRawDataProvider.RoIs = "HLT_MURoIs" # Maybe we don't want to hard code this? acc.addEventAlgo(RpcRawDataProvider, primary=True) return acc diff --git a/MuonSpectrometer/MuonConfig/python/MuonRdoDecodeConfig.py b/MuonSpectrometer/MuonConfig/python/MuonRdoDecodeConfig.py index 7b742a887e8..518adbeb454 100644 --- a/MuonSpectrometer/MuonConfig/python/MuonRdoDecodeConfig.py +++ b/MuonSpectrometer/MuonConfig/python/MuonRdoDecodeConfig.py @@ -62,7 +62,7 @@ def RpcRDODecodeCfg(flags, forTrigger=False): if forTrigger: # Set the algorithm to RoI mode RpcRdoToRpcPrepData.DoSeededDecoding = True - RpcRdoToRpcPrepData.RoIs = "MURoIs" + RpcRdoToRpcPrepData.RoIs = "HLT_MURoIs" acc.addEventAlgo(RpcRdoToRpcPrepData) @@ -93,7 +93,7 @@ def TgcRDODecodeCfg(flags, forTrigger=False): if forTrigger: # Set the algorithm to RoI mode TgcRdoToTgcPrepData.DoSeededDecoding = True - TgcRdoToTgcPrepData.RoIs = "MURoIs" + TgcRdoToTgcPrepData.RoIs = "HLT_MURoIs" acc.addEventAlgo(TgcRdoToTgcPrepData) return acc @@ -126,7 +126,7 @@ def MdtRDODecodeCfg(flags, forTrigger=False): if forTrigger: # Set the algorithm to RoI mode MdtRdoToMdtPrepData.DoSeededDecoding = True - MdtRdoToMdtPrepData.RoIs = "MURoIs" + MdtRdoToMdtPrepData.RoIs = "HLT_MURoIs" acc.addEventAlgo(MdtRdoToMdtPrepData) return acc @@ -159,7 +159,7 @@ def CscRDODecodeCfg(flags, forTrigger=False): if forTrigger: # Set the algorithm to RoI mode CscRdoToCscPrepData.DoSeededDecoding = True - CscRdoToCscPrepData.RoIs = "MURoIs" + CscRdoToCscPrepData.RoIs = "HLT_MURoIs" acc.addEventAlgo(CscRdoToCscPrepData) return acc diff --git a/Reconstruction/RecJobTransforms/share/skeleton.RDOtoRDOtrigger.py b/Reconstruction/RecJobTransforms/share/skeleton.RDOtoRDOtrigger.py index 809f621921b..2eb0c0bed39 100644 --- a/Reconstruction/RecJobTransforms/share/skeleton.RDOtoRDOtrigger.py +++ b/Reconstruction/RecJobTransforms/share/skeleton.RDOtoRDOtrigger.py @@ -264,7 +264,9 @@ for i in outSequence.getAllChildren(): from TriggerJobOpts.TriggerConfig import collectHypos, collectFilters, collectDecisionObjects hypos = collectHypos( findSubSequence(topSequence, "HLTAllSteps") ) filters = collectFilters( findSubSequence(topSequence, "HLTAllSteps") ) - decObj = collectDecisionObjects( hypos, filters, findAlgorithm(topSequence, "L1Decoder") ) + decObj = collectDecisionObjects( hypos, filters, + findAlgorithm(topSequence, "L1Decoder"), + findAlgorithm(topSequence, "DecisionSummaryMakerAlg") ) StreamRDO.ItemList += [ "xAOD::TrigCompositeContainer#"+obj for obj in decObj ] StreamRDO.ItemList += [ "xAOD::TrigCompositeAuxContainer#"+obj+"Aux." for obj in decObj ] StreamRDO.MetadataItemList += [ "xAOD::TriggerMenuContainer#*", "xAOD::TriggerMenuAuxContainer#*" ] diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuFastSteering.h b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuFastSteering.h index a4ea16b7e8a..e6ead1e5dad 100644 --- a/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuFastSteering.h +++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/TrigL2MuonSA/MuFastSteering.h @@ -244,11 +244,11 @@ class MuFastSteering : public HLT::FexAlgo, //ReadHandle MURoIs SG::ReadHandleKey<TrigRoiDescriptorCollection> m_roiCollectionKey{ - this, "MuRoIs", "MURoIs", "Name of the input data from L1Decoder"}; + this, "MuRoIs", "HLT_MURoIs", "Name of the input data from L1Decoder"}; //ReadHandle RecMuonRoIs SG::ReadHandleKey<DataVector<LVL1::RecMuonRoI>> m_recRoiCollectionKey{ - this, "RecMuonRoI", "RecMURoIs", "Name of the input data on LVL1::RecMuonRoI produced by L1Decoder"}; + this, "RecMuonRoI", "HLT_RecMURoIs", "Name of the input data on LVL1::RecMuonRoI produced by L1Decoder"}; //WriteHandle <xAOD::L2StandAloneMuonContainer> SG::WriteHandleKey<xAOD::L2StandAloneMuonContainer> m_muFastContainerKey{ diff --git a/Trigger/TrigAlgorithms/TrigL2MuonSA/python/TrigL2MuonSAConfig_newJO.py b/Trigger/TrigAlgorithms/TrigL2MuonSA/python/TrigL2MuonSAConfig_newJO.py index 711856784f3..5f0c241191a 100644 --- a/Trigger/TrigAlgorithms/TrigL2MuonSA/python/TrigL2MuonSAConfig_newJO.py +++ b/Trigger/TrigAlgorithms/TrigL2MuonSA/python/TrigL2MuonSAConfig_newJO.py @@ -273,14 +273,14 @@ def AlignmentBarrelLUTSvcCfg( flags ): # In the future, above functions should be moved to TrigL2MuonSA package(?) -def l2MuFastAlgCfg( flags, roisKey="MURoIs" ): +def l2MuFastAlgCfg( flags, roisKey="HLT_MURoIs" ): acc = ComponentAccumulator() # Get Reco alg of muFast step muFastAcc, muFastFex = muFastSteeringCfg( flags, roisKey ) muFastFex.MuRoIs = roisKey - muFastFex.RecMuonRoI = "RecMURoIs" + muFastFex.RecMuonRoI = "HLT_RecMURoIs" muFastFex.MuonL2SAInfo = muFastInfo muFastFex.forID = "forID" muFastFex.forMS = "forMS" diff --git a/Trigger/TrigAlgorithms/TrigT2CaloCommon/python/CaloDef.py b/Trigger/TrigAlgorithms/TrigT2CaloCommon/python/CaloDef.py index 8ce862cadb6..d5dc4604ef5 100644 --- a/Trigger/TrigAlgorithms/TrigT2CaloCommon/python/CaloDef.py +++ b/Trigger/TrigAlgorithms/TrigT2CaloCommon/python/CaloDef.py @@ -15,7 +15,7 @@ def setMinimalCaloSetup() : # defined as private within this module, so that they can be configured only in functions in this module ######################## -def _algoHLTCaloCell(name="HLTCaloCellMaker", inputEDM='FSRoI', outputEDM='CellsClusters', RoIMode=True, OutputLevel=ERROR) : +def _algoHLTCaloCell(name="HLTCaloCellMaker", inputEDM='HLT_FSRoI', outputEDM='CellsClusters', RoIMode=True, OutputLevel=ERROR) : setMinimalCaloSetup() from AthenaCommon.AppMgr import ServiceMgr as svcMgr from TrigCaloRec.TrigCaloRecConfig import HLTCaloCellMaker @@ -43,7 +43,7 @@ def _algoHLTTopoClusterLC(inputEDM="CellsClusters", OutputLevel=ERROR, algSuffix algo.OutputLevel=OutputLevel return algo -def _algoL2Egamma(inputEDM="EMRoIs",OutputLevel=ERROR,doRinger=False, ClustersName="HLT_L2CaloEMClusters", RingerKey="HLT_L2CaloRinger"): +def _algoL2Egamma(inputEDM="HLT_EMRoIs",OutputLevel=ERROR,doRinger=False, ClustersName="HLT_L2CaloEMClusters", RingerKey="HLT_L2CaloRinger"): setMinimalCaloSetup() from TrigT2CaloEgamma.TrigT2CaloEgammaConfig import T2CaloEgamma_ReFastAlgo algo=T2CaloEgamma_ReFastAlgo("FastCaloL2EgammaAlg", doRinger=doRinger, RingerKey=RingerKey) diff --git a/Trigger/TrigAlgorithms/TrigT2CaloCommon/share/testDataAccessService.py b/Trigger/TrigAlgorithms/TrigT2CaloCommon/share/testDataAccessService.py index f83fbf8cd1e..53337c24d21 100644 --- a/Trigger/TrigAlgorithms/TrigT2CaloCommon/share/testDataAccessService.py +++ b/Trigger/TrigAlgorithms/TrigT2CaloCommon/share/testDataAccessService.py @@ -44,7 +44,7 @@ if TriggerFlags.doCalo: from TrigCaloRec.TrigCaloRecConf import HLTCaloCellMaker, HLTCaloCellSumMaker algo1=HLTCaloCellMaker("testFastAlgo1") - algo1.RoIs="StoreGateSvc+EMRoIs" + algo1.RoIs="StoreGateSvc+HLT_EMRoIs" algo1.TrigDataAccessMT=svcMgr.TrigCaloDataAccessSvc #algo1.roiMode=False algo1.OutputLevel=VERBOSE @@ -60,7 +60,7 @@ if TriggerFlags.doCalo: algo=T2CaloEgamma_ReFastAlgo("testReFastAlgo") algo.OutputLevel=VERBOSE - algo.RoIs="StoreGateSvc+EMRoIs" + algo.RoIs="StoreGateSvc+HLT_EMRoIs" topSequence += algo diff --git a/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py b/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py index 37ce1c086af..a1073c1dc5e 100644 --- a/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py +++ b/Trigger/TrigSteer/L1Decoder/python/L1DecoderConfig.py @@ -10,15 +10,15 @@ def mapThresholdToL1DecisionCollection(threshold): Translates L1 threshold name of the DecisionsContainer name in the L1Decoder unpacking tools """ if threshold == "" or threshold == "FS": - return "L1FS" + return "HLTNav_L1FS" - mapThresholdToL1Decoder = { "EM" : "L1EM", - "MU" : "L1MU", - "J" : "L1J", - "TAU": "L1TAU", - "XE" : "L1MET", - "XS" : "L1MET", - "TE" : "L1MET" } + mapThresholdToL1Decoder = { "EM" : "HLTNav_L1EM", + "MU" : "HLTNav_L1MU", + "J" : "HLTNav_L1J", + "TAU": "HLTNav_L1TAU", + "XE" : "HLTNav_L1MET", + "XS" : "HLTNav_L1MET", + "TE" : "HLTNav_L1MET" } # remove actual threshold value from L1 threshold string for thresholdType, l1Collection in mapThresholdToL1Decoder.iteritems(): @@ -34,26 +34,26 @@ def createCaloRoIUnpackers(): from L1Decoder.L1DecoderConf import EMRoIsUnpackingTool, METRoIsUnpackingTool, JRoIsUnpackingTool, RerunRoIsUnpackingTool, TAURoIsUnpackingTool from L1Decoder.L1DecoderMonitoring import RoIsUnpackingMonitoring from TrigEDMConfig.TriggerEDMRun3 import recordable - emUnpacker = EMRoIsUnpackingTool(Decisions = recordable("L1EM"), - OutputTrigRoIs = recordable("EMRoIs"), + emUnpacker = EMRoIsUnpackingTool(Decisions = "HLTNav_L1EM", + OutputTrigRoIs = recordable("HLT_EMRoIs"), MonTool = RoIsUnpackingMonitoring( prefix="EM", maxCount=30 )) # emUnpacker.MonTool = RoIsUnpackingMonitoring( prefix="EM", maxCount=30 ) emRerunUnpacker = RerunRoIsUnpackingTool("EMRerunRoIsUnpackingTool", - SourceDecisions="L1EM", - Decisions="RerunL1EM" ) + SourceDecisions="HLTNav_L1EM", + Decisions="HLTNav_RerunL1EM" ) - metUnpacker = METRoIsUnpackingTool(Decisions = recordable("L1MET")) + metUnpacker = METRoIsUnpackingTool(Decisions = "HLTNav_L1MET") - tauUnpacker = TAURoIsUnpackingTool(Decisions = "L1TAU", - OutputTrigRoIs = "TAURoIs") + tauUnpacker = TAURoIsUnpackingTool(Decisions = "HLTNav_L1TAU", + OutputTrigRoIs = recordable("HLT_TAURoI")) tauUnpacker.MonTool = RoIsUnpackingMonitoring( prefix="TAU", maxCount=30 ) - jUnpacker = JRoIsUnpackingTool(Decisions = recordable("L1J"), - OutputTrigRoIs = recordable("JETRoI") ) + jUnpacker = JRoIsUnpackingTool(Decisions = "HLTNav_L1J", + OutputTrigRoIs = recordable("HLT_JETRoI") ) jUnpacker.MonTool = RoIsUnpackingMonitoring( prefix="J", maxCount=30 ) @@ -65,14 +65,14 @@ def createMuonRoIUnpackers(): from L1Decoder.L1DecoderMonitoring import RoIsUnpackingMonitoring from TrigEDMConfig.TriggerEDMRun3 import recordable - muUnpacker = MURoIsUnpackingTool(Decisions = recordable("L1MU"), - OutputTrigRoIs = recordable("MURoIs")) + muUnpacker = MURoIsUnpackingTool(Decisions = "HLTNav_L1MU", + OutputTrigRoIs = recordable("HLT_MURoIs")) muUnpacker.MonTool = RoIsUnpackingMonitoring( prefix="MU", maxCount=20 ) muRerunUnpacker = RerunRoIsUnpackingTool("MURerunRoIsUnpackingTool", - SourceDecisions="L1MU", - Decisions="RerunL1MU" ) + SourceDecisions="HLTNav_L1MU", + Decisions="HLTNav_RerunL1MU" ) return [muUnpacker],[muRerunUnpacker] @@ -114,7 +114,6 @@ class L1Decoder(L1Decoder) : def L1DecoderCfg(flags): - from TrigEDMConfig.TriggerEDMRun3 import recordable from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator from L1Decoder.L1DecoderConf import L1Decoder, CTPUnpackingTool @@ -122,7 +121,7 @@ def L1DecoderCfg(flags): acc = ComponentAccumulator() decoderAlg = L1Decoder() - decoderAlg.L1DecoderSummaryKey = recordable("L1DecoderSummary") + decoderAlg.L1DecoderSummaryKey = "L1DecoderSummary" # Transient, consumed by DecisionSummaryMakerAlg decoderAlg.ctpUnpacker = CTPUnpackingTool( ForceEnableAllChains = flags.Trigger.L1Decoder.forceEnableAllChains, MonTool = CTPUnpackingMonitoring(512, 200) ) diff --git a/Trigger/TrigSteer/L1Decoder/src/CTPUnpackingTool.h b/Trigger/TrigSteer/L1Decoder/src/CTPUnpackingTool.h index f83f3c0abc7..a202b4aa64e 100644 --- a/Trigger/TrigSteer/L1Decoder/src/CTPUnpackingTool.h +++ b/Trigger/TrigSteer/L1Decoder/src/CTPUnpackingTool.h @@ -30,6 +30,7 @@ public: private: + // TODO Remove if HLTConfigSvc and LVL1ConfigSvc are no longer needed to put the HLTTriggerMenu and L1Menu in the DetectorStore ServiceHandle<TrigConf::ILVL1ConfigSvc> m_lvl1ConfigSvc{this, "LVL1ConfigSvc", "TrigConf::LVL1ConfigSvc/LVL1ConfigSvc", ""}; ServiceHandle<TrigConf::IHLTConfigSvc> m_hltConfigSvc{this, "HLTConfigSvc", "TrigConf::HLTConfigSvc/HLTConfigSvc", ""}; diff --git a/Trigger/TrigSteer/L1Decoder/src/EMRoIsUnpackingTool.h b/Trigger/TrigSteer/L1Decoder/src/EMRoIsUnpackingTool.h index 6ae9f68c35e..9f31b15ac34 100644 --- a/Trigger/TrigSteer/L1Decoder/src/EMRoIsUnpackingTool.h +++ b/Trigger/TrigSteer/L1Decoder/src/EMRoIsUnpackingTool.h @@ -42,10 +42,10 @@ private: ///@{ @name Properties SG::WriteHandleKey<TrigRoiDescriptorCollection> m_trigRoIsKey{ - this, "OutputTrigRoIs", "EMRoIs", "Name of the RoIs object produced by the unpacker"}; + this, "OutputTrigRoIs", "HLT_EMRoIs", "Name of the RoIs object produced by the unpacker"}; SG::WriteHandleKey< DataVector<LVL1::RecEmTauRoI> > m_recRoIsKey{ - this, "OutputRecRoIs", "RecEMRoIs", "Name of the RoIs object produced by the unpacker"}; + this, "OutputRecRoIs", "HLT_RecEMRoIs", "Name of the RoIs object produced by the unpacker"}; Gaudi::Property<float> m_roIWidth{this, "RoIWidth", 0.1, "Size of RoI in eta/ phi"}; ///@} diff --git a/Trigger/TrigSteer/L1Decoder/src/JRoIsUnpackingTool.h b/Trigger/TrigSteer/L1Decoder/src/JRoIsUnpackingTool.h index 0ebe26d3162..541a5da2fa4 100644 --- a/Trigger/TrigSteer/L1Decoder/src/JRoIsUnpackingTool.h +++ b/Trigger/TrigSteer/L1Decoder/src/JRoIsUnpackingTool.h @@ -33,17 +33,17 @@ public: virtual StatusCode start() override; private: SG::WriteHandleKey<TrigRoiDescriptorCollection> m_trigRoIsKey{ - this, "OutputTrigRoIs", "JETRoIs", "Name of the RoIs object produced by the unpacker"}; + this, "OutputTrigRoIs", "HLT_JETRoIs", "Name of the RoIs object produced by the unpacker"}; SG::WriteHandleKey< DataVector<LVL1::RecJetRoI> > m_recRoIsKey{ - this, "OutputRecRoIs", "RecJETRoIs", "Name of the RoIs object produced by the unpacker"}; + this, "OutputRecRoIs", "HLT_RecJETRoIs", "Name of the RoIs object produced by the unpacker"}; Gaudi::Property<float> m_roIWidth{ this, "RoIWidth", 0.4, "Size of RoI in eta/ phi"}; - Gaudi::Property<std::string> m_fsRoIKey{ this, "FSRoIKey", "FSRoI", "The key of FS RoI made earlier by the L1Decoder" }; + Gaudi::Property<std::string> m_fsRoIKey{ this, "FSRoIKey", "HLT_FSRoI", "The key of FS RoI made earlier by the L1Decoder" }; ServiceHandle<TrigConf::ILVL1ConfigSvc> m_configSvc; std::vector<TrigConf::TriggerThreshold*> m_jetThresholds; diff --git a/Trigger/TrigSteer/L1Decoder/src/L1Decoder.h b/Trigger/TrigSteer/L1Decoder/src/L1Decoder.h index 0b2fd0b6b92..5b34bfb786c 100644 --- a/Trigger/TrigSteer/L1Decoder/src/L1Decoder.h +++ b/Trigger/TrigSteer/L1Decoder/src/L1Decoder.h @@ -55,10 +55,10 @@ private: "Object with the time stamp when decoding started" }; SG::WriteHandleKey<TrigRoiDescriptorCollection> m_trigFSRoIKey{ - this, "OutputFSTrigRoI", "FSRoI", "Name of the RoIs object containing the single FS RoI tagged with all chains in which FS reconstruction happens and have no dependencey on L1 information"}; + this, "OutputFSTrigRoI", "HLT_FSRoI", "Name of the RoIs object containing the single FS RoI tagged with all chains in which FS reconstruction happens and have no dependencey on L1 information"}; SG::WriteHandleKey<TrigCompositeUtils::DecisionContainer> m_FSDecisions{ - this, "FSDecisions", "L1FS", "Name of the decisions container (suitable for filters) containing all unprescaled chains"}; + this, "FSDecisions", "HLTNav_L1FS", "Name of the decisions container (suitable for filters) containing all unprescaled chains"}; Gaudi::Property<bool> m_doCostMonitoring{this, "DoCostMonitoring", false, "Enables start-of-event cost monitoring behavior."}; diff --git a/Trigger/TrigSteer/L1Decoder/src/METRoIsUnpackingTool.h b/Trigger/TrigSteer/L1Decoder/src/METRoIsUnpackingTool.h index 60f98749fe3..2360f3c5a1b 100644 --- a/Trigger/TrigSteer/L1Decoder/src/METRoIsUnpackingTool.h +++ b/Trigger/TrigSteer/L1Decoder/src/METRoIsUnpackingTool.h @@ -30,7 +30,7 @@ public: virtual StatusCode start() override; private: - Gaudi::Property<std::string> m_fsRoIKey{ this, "FSRoIKey", "FSRoI", "The key of FS RoI made earlier by the L1Decoder" }; + Gaudi::Property<std::string> m_fsRoIKey{ this, "FSRoIKey", "HLT_FSRoI", "The key of FS RoI made earlier by the L1Decoder" }; ServiceHandle<TrigConf::ILVL1ConfigSvc> m_configSvc; LVL1::JEPRoIDecoder m_jepDecoder; diff --git a/Trigger/TrigSteer/L1Decoder/src/MURoIsUnpackingTool.h b/Trigger/TrigSteer/L1Decoder/src/MURoIsUnpackingTool.h index fa972de7236..2af1e894ef9 100644 --- a/Trigger/TrigSteer/L1Decoder/src/MURoIsUnpackingTool.h +++ b/Trigger/TrigSteer/L1Decoder/src/MURoIsUnpackingTool.h @@ -40,10 +40,10 @@ private: ///@{ @name Properties SG::WriteHandleKey< TrigRoiDescriptorCollection > m_trigRoIsKey{ - this, "OutputTrigRoIs", "MURoIs", "Name of the RoIs object produced by the unpacker"}; + this, "OutputTrigRoIs", "HLT_MURoIs", "Name of the RoIs object produced by the unpacker"}; SG::WriteHandleKey< DataVector<LVL1::RecMuonRoI> > m_recRoIsKey{ - this, "OutputRecRoIs", "RecMURoIs", "Name of the RoIs object produced by the unpacker"}; + this, "OutputRecRoIs", "HLT_RecMURoIs", "Name of the RoIs object produced by the unpacker"}; Gaudi::Property<float> m_roIWidth{"RoIWidth", 0.1, "Size of RoI in eta/ phi"}; ///@} diff --git a/Trigger/TrigSteer/L1Decoder/src/RoIsUnpackingEmulationTool.h b/Trigger/TrigSteer/L1Decoder/src/RoIsUnpackingEmulationTool.h index ce907e35bc4..692c146aacc 100644 --- a/Trigger/TrigSteer/L1Decoder/src/RoIsUnpackingEmulationTool.h +++ b/Trigger/TrigSteer/L1Decoder/src/RoIsUnpackingEmulationTool.h @@ -32,12 +32,13 @@ class RoIsUnpackingEmulationTool : public RoIsUnpackingToolBase { virtual StatusCode start() override; private: + // Used indirectly to place the HLT JSON object into the DetStore ServiceHandle<TrigConf::IHLTConfigSvc> m_hltConfigSvc{this, "HLTConfigSvc", "TrigConf::HLTConfigSvc/HLTConfigSvc", ""}; ///@{ @name Properties SG::WriteHandleKey<TrigRoiDescriptorCollection> m_trigRoIsKey{ - this, "OutputTrigRoIs", "EMRoIs", "Name of the RoIs object produced by the unpacker"}; + this, "OutputTrigRoIs", "HLT_EMRoIs", "Name of the RoIs object produced by the unpacker"}; Gaudi::Property<float> m_roIWidth{"RoIWidth", 0.1, "Size of RoI in eta/ phi"}; diff --git a/Trigger/TrigSteer/L1Decoder/src/RoIsUnpackingToolBase.cxx b/Trigger/TrigSteer/L1Decoder/src/RoIsUnpackingToolBase.cxx index 4e1ec6337b9..8e9eae747f5 100644 --- a/Trigger/TrigSteer/L1Decoder/src/RoIsUnpackingToolBase.cxx +++ b/Trigger/TrigSteer/L1Decoder/src/RoIsUnpackingToolBase.cxx @@ -41,14 +41,14 @@ StatusCode RoIsUnpackingToolBase::decodeMapping( std::function< bool(const std:: for ( const std::string& th: thresholds ) { counter++; if ( filter(th) ) { - m_thresholdToChainMapping[ HLT::Identifier( th ) ].push_back( HLT::Identifier( chain.name() ) ); - ATH_MSG_DEBUG( "Associating " << chain.name() << " with threshold " << th ); - if ( thresholds.size() > 1 ) { - std::string legName = createLegName( chain.name(), counter); - m_thresholdToChainMapping[ HLT::Identifier(th) ].push_back( HLT::Identifier( legName ) ); - m_legToChainMapping.insert( std::make_pair( HLT::Identifier( legName ), HLT::Identifier( chain.name() ) ) ); - ATH_MSG_INFO( "Associating additional chain leg " << legName << " with threshold " << th ); - } + m_thresholdToChainMapping[ HLT::Identifier( th ) ].push_back( HLT::Identifier( chain.name() ) ); + ATH_MSG_DEBUG( "Associating " << chain.name() << " with threshold " << th ); + if ( thresholds.size() > 1 ) { + std::string legName = createLegName( chain.name(), counter); + m_thresholdToChainMapping[ HLT::Identifier(th) ].push_back( HLT::Identifier( legName ) ); + m_legToChainMapping.insert( std::make_pair( HLT::Identifier( legName ), HLT::Identifier( chain.name() ) ) ); + ATH_MSG_INFO( "Associating additional chain leg " << legName << " with threshold " << th ); + } } } } diff --git a/Trigger/TrigSteer/L1Decoder/src/TAURoIsUnpackingTool.h b/Trigger/TrigSteer/L1Decoder/src/TAURoIsUnpackingTool.h index 2e4c1d16a1b..d284a69e9ff 100644 --- a/Trigger/TrigSteer/L1Decoder/src/TAURoIsUnpackingTool.h +++ b/Trigger/TrigSteer/L1Decoder/src/TAURoIsUnpackingTool.h @@ -41,10 +41,10 @@ private: ///@{ @name Properties SG::WriteHandleKey<TrigRoiDescriptorCollection> m_trigRoIsKey{ - this, "OutputTrigRoIs", "TAURoIs", "Name of the RoIs object produced by the unpacker"}; + this, "OutputTrigRoIs", "HLT_TAURoIs", "Name of the RoIs object produced by the unpacker"}; SG::WriteHandleKey< DataVector<LVL1::RecEmTauRoI> > m_recRoIsKey{ - this, "OutputRecRoIs", "RecTAURoIs", "Name of the RoIs object produced by the unpacker"}; + this, "OutputRecRoIs", "HLT_RecTAURoIs", "Name of the RoIs object produced by the unpacker"}; Gaudi::Property<float> m_roIWidth{this, "RoIWidth", 0.1, "Size of RoI in eta/ phi"}; ///@} diff --git a/Trigger/TrigSteer/ViewAlgsTest/share/EVTest.py b/Trigger/TrigSteer/ViewAlgsTest/share/EVTest.py index abdd0f49aa0..1cf07537337 100644 --- a/Trigger/TrigSteer/ViewAlgsTest/share/EVTest.py +++ b/Trigger/TrigSteer/ViewAlgsTest/share/EVTest.py @@ -37,7 +37,7 @@ ctpUnpacker = CTPUnpackingEmulationTool( OutputLevel = DEBUG, ForceEnableAllCha #ctpUnpacker.CTPToChainMapping = [ "0:HLT_g100", "1:HLT_e20", "2:HLT_mu20", "3:HLT_2mu8", "3:HLT_mu8", "33:HLT_2mu8", "15:HLT_mu8_e8" ] l1Decoder.ctpUnpacker = ctpUnpacker -emUnpacker = RoIsUnpackingEmulationTool("EMRoIsUnpackingTool", OutputLevel=DEBUG, InputFilename="rois.dat", OutputTrigRoIs="L1EMRoIs", Decisions="L1EM" ) +emUnpacker = RoIsUnpackingEmulationTool("EMRoIsUnpackingTool", OutputLevel=DEBUG, InputFilename="rois.dat", OutputTrigRoIs="HLT_L1EMRoIs", Decisions="HLTNav_L1EM" ) ThresholdToChainMapping = ["EM7 : HLT_e8", "EM7 : HLT_mu8_e8", "EM20 : HLT_e20", "EM50 : HLT_2g50", "EM100 : HLT_g100" ] l1Decoder.roiUnpackers = [emUnpacker] @@ -52,7 +52,7 @@ viewAlgsContainer = seqAND( "ViewAlgsContainer" ) steps = [ parOR("step0Filtering"), parOR("step1InViewReco") ] -steps[0] += seqFilter( "Step0EM", Inputs=["L1EM"], Outputs=["step0EM"], +steps[0] += seqFilter( "Step0EM", Inputs=["HLTNav_L1EM"], Outputs=["step0EM"], Chains=[ x.split(':')[-1].strip() for x in ThresholdToChainMapping ] ) # all chains @@ -64,7 +64,7 @@ viewAlgsContainer += viewAlg algs=[ useExisting( "Step0EM" ) ] from ViewAlgsTest.ViewAlgsTestConf import TestViewDriver EMViewsMaker = TestViewDriver( "EMViewsMaker", OutputLevel = DEBUG, - RoIsContainer = 'L1EMRoIs', RoIsViewOutput="InViewRoI", + RoIsContainer = 'HLTNav_L1EMRoIs', RoIsViewOutput="InViewRoI", ClustersViewInput="ViewClusters", Views="EMClusterViews", ViewNodeName = viewAlgsContainer.name(), Scheduler = AlgScheduler.getScheduler() ) algs.append( EMViewsMaker ) diff --git a/Trigger/TrigSteer/ViewAlgsTest/share/creatingEVTest.ref b/Trigger/TrigSteer/ViewAlgsTest/share/creatingEVTest.ref index 9ea78db835d..777867ae03a 100644 --- a/Trigger/TrigSteer/ViewAlgsTest/share/creatingEVTest.ref +++ b/Trigger/TrigSteer/ViewAlgsTest/share/creatingEVTest.ref @@ -1,11 +1,12 @@ -EMViewsMaker 0 DEBUG Property update for OutputLevel : new value = 2 -EMViewsMaker 0 DEBUG input handles: 1 -EMViewsMaker 0 DEBUG output handles: 2 -EMViewsMaker 0 DEBUG Data Deps for EMViewsMaker -algInView 0 DEBUG Property update for OutputLevel : new value = 2 -algInView 0 DEBUG input handles: 1 -algInView 0 DEBUG output handles: 1 -algInView 0 DEBUG Data Deps for algInView -EMViewsMaker 0 DEBUG input handles: 1 -EMViewsMaker 0 DEBUG output handles: 2 -EMViewsMaker 0 DEBUG Data Deps for EMViewsMaker +EMViewsMaker 0 DEBUG Property update for OutputLevel : new value = 2 +EMViewsMaker 0 DEBUG input handles: 1 +EMViewsMaker 0 DEBUG output handles: 2 +EMViewsMaker 0 DEBUG Data Deps for EMViewsMaker +algInView 0 DEBUG Property update for OutputLevel : new value = 2 +algInView 0 DEBUG input handles: 1 +algInView 0 DEBUG output handles: 1 +algInView 0 DEBUG Data Deps for algInView + * EMViewsMaker +EMViewsMaker 0 DEBUG input handles: 1 +EMViewsMaker 0 DEBUG output handles: 2 +EMViewsMaker 0 DEBUG Data Deps for EMViewsMaker diff --git a/Trigger/TrigSteer/ViewAlgsTest/share/mergingEVTest.ref b/Trigger/TrigSteer/ViewAlgsTest/share/mergingEVTest.ref index 9ea78db835d..777867ae03a 100644 --- a/Trigger/TrigSteer/ViewAlgsTest/share/mergingEVTest.ref +++ b/Trigger/TrigSteer/ViewAlgsTest/share/mergingEVTest.ref @@ -1,11 +1,12 @@ -EMViewsMaker 0 DEBUG Property update for OutputLevel : new value = 2 -EMViewsMaker 0 DEBUG input handles: 1 -EMViewsMaker 0 DEBUG output handles: 2 -EMViewsMaker 0 DEBUG Data Deps for EMViewsMaker -algInView 0 DEBUG Property update for OutputLevel : new value = 2 -algInView 0 DEBUG input handles: 1 -algInView 0 DEBUG output handles: 1 -algInView 0 DEBUG Data Deps for algInView -EMViewsMaker 0 DEBUG input handles: 1 -EMViewsMaker 0 DEBUG output handles: 2 -EMViewsMaker 0 DEBUG Data Deps for EMViewsMaker +EMViewsMaker 0 DEBUG Property update for OutputLevel : new value = 2 +EMViewsMaker 0 DEBUG input handles: 1 +EMViewsMaker 0 DEBUG output handles: 2 +EMViewsMaker 0 DEBUG Data Deps for EMViewsMaker +algInView 0 DEBUG Property update for OutputLevel : new value = 2 +algInView 0 DEBUG input handles: 1 +algInView 0 DEBUG output handles: 1 +algInView 0 DEBUG Data Deps for algInView + * EMViewsMaker +EMViewsMaker 0 DEBUG input handles: 1 +EMViewsMaker 0 DEBUG output handles: 2 +EMViewsMaker 0 DEBUG Data Deps for EMViewsMaker diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/EmuStepProcessingConfig.py b/Trigger/TrigValidation/TrigUpgradeTest/python/EmuStepProcessingConfig.py index ac537f0b74c..db3c13ebe3e 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/python/EmuStepProcessingConfig.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/python/EmuStepProcessingConfig.py @@ -214,12 +214,12 @@ def generateL1DecoderAndChains(): ctpUnpacker = CTPUnpackingEmulationTool( ForceEnableAllChains=False , InputFilename="ctp.dat" ) l1Decoder.ctpUnpacker = ctpUnpacker - emUnpacker = RoIsUnpackingEmulationTool("EMRoIsUnpackingTool", InputFilename="l1emroi.dat", OutputTrigRoIs="L1EMRoIs", Decisions="L1EM", ThresholdPrefix="EM" ) - emUnpacker.Decisions="L1EM" + emUnpacker = RoIsUnpackingEmulationTool("EMRoIsUnpackingTool", InputFilename="l1emroi.dat", OutputTrigRoIs="HLT_L1EMRoIs", Decisions="HLTNav_L1EM", ThresholdPrefix="EM" ) + emUnpacker.Decisions="HLTNav_L1EM" - muUnpacker = RoIsUnpackingEmulationTool("MURoIsUnpackingTool", InputFilename="l1muroi.dat", OutputTrigRoIs="L1MURoIs", Decisions="L1MU", ThresholdPrefix="MU" ) - muUnpacker.Decisions="L1MU" + muUnpacker = RoIsUnpackingEmulationTool("MURoIsUnpackingTool", InputFilename="l1muroi.dat", OutputTrigRoIs="HLT_L1MURoIs", Decisions="HLTNav_L1MU", ThresholdPrefix="MU" ) + muUnpacker.Decisions="HLTNav_L1MU" l1Decoder.roiUnpackers = [emUnpacker, muUnpacker] diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/TestUtils.py b/Trigger/TrigValidation/TrigUpgradeTest/python/TestUtils.py index a7f55a9e0f8..eb9cbf6c25b 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/python/TestUtils.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/python/TestUtils.py @@ -49,7 +49,7 @@ class L1EmulationTest(L1Decoder): if TriggerFlags.doID() or TriggerFlags.doCalo(): emUnpacker = RoIsUnpackingEmulationTool("EMRoIsUnpackingTool", Decisions = "EMRoIDecisions", - OutputTrigRoIs = "EMRoIs", + OutputTrigRoIs = "HLT_EMRoIs", OutputLevel = self.getDefaultProperty("OutputLevel")) self.roiUnpackers += [emUnpacker] print emUnpacker @@ -59,7 +59,7 @@ class L1EmulationTest(L1Decoder): if TriggerFlags.doMuon(): muUnpacker = RoIsUnpackingEmulationTool("MURoIsUnpackingTool", Decisions = "MURoIDecisions", - OutputTrigRoIs = "MURoIs", + OutputTrigRoIs = "HLT_MURoIs", OutputLevel=self.getDefaultProperty("OutputLevel")) self.roiUnpackers += [muUnpacker] diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/Calo.py b/Trigger/TrigValidation/TrigUpgradeTest/share/Calo.py index 6e4e2167087..08652747d81 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/Calo.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/Calo.py @@ -30,7 +30,7 @@ if TriggerFlags.doCalo: if ( doHLTCaloTopo ) : from TrigT2CaloCommon.CaloDef import HLTFSTopoRecoSequence - recosequence, caloclusters = HLTFSTopoRecoSequence("FSRoI") + recosequence, caloclusters = HLTFSTopoRecoSequence("HLT_FSRoI") steps+=recosequence if ( doL2Egamma ) : @@ -38,8 +38,8 @@ if TriggerFlags.doCalo: from TrigT2CaloCommon.CaloDef import createFastCaloSequence filterL1RoIsAlg = RoRSeqFilter( "filterL1RoIsAlg") - filterL1RoIsAlg.Input = ["L1EM"] - filterL1RoIsAlg.Output = ["FilteredEMRoIDecisions"] + filterL1RoIsAlg.Input = ["HLTNav_L1EM"] + filterL1RoIsAlg.Output = ["HLTNav_FilteredEMRoIDecisions"] filterL1RoIsAlg.Chains = [ "HLT_e3_etcut", "HLT_e5_etcut", "HLT_e7_etcut" ] (fastCaloSequence, sequenceOut) = createFastCaloSequence(filterL1RoIsAlg.Output[0]) steps+=stepSeq("finalCaloSequence", filterL1RoIsAlg, [ fastCaloSequence ]) diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/CaloRinger.py b/Trigger/TrigValidation/TrigUpgradeTest/share/CaloRinger.py index b2cbf79e6f6..f69fac9b2b6 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/CaloRinger.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/CaloRinger.py @@ -30,7 +30,7 @@ if TriggerFlags.doCalo: if ( doHLTCaloTopo ) : from TrigT2CaloCommon.CaloDef import HLTFSTopoRecoSequence - recosequence, caloclusters = HLTFSTopoRecoSequence("FSRoI") + recosequence, caloclusters = HLTFSTopoRecoSequence("HLT_FSRoI") steps+=recosequence if ( doL2Egamma ) : @@ -38,8 +38,8 @@ if TriggerFlags.doCalo: from TrigT2CaloCommon.CaloDef import createFastCaloSequence filterL1RoIsAlg = RoRSeqFilter( "filterL1RoIsAlg") - filterL1RoIsAlg.Input = ["L1EM"] - filterL1RoIsAlg.Output = ["FilteredEMRoIDecisions"] + filterL1RoIsAlg.Input = ["HLTNav_L1EM"] + filterL1RoIsAlg.Output = ["HLTNav_FilteredEMRoIDecisions"] filterL1RoIsAlg.Chains = [ "HLT_e3_etcut", "HLT_e5_etcut", "HLT_e7_etcut" ] (fastCaloSequence, sequenceOut) = createFastCaloSequence(filterL1RoIsAlg.Output[0], doRinger=True, ClustersName="HLT_L2CaloEMClusters", diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/EmuScalingCFTest.py b/Trigger/TrigValidation/TrigUpgradeTest/share/EmuScalingCFTest.py index bd9216290c8..996ddd5f732 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/EmuScalingCFTest.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/EmuScalingCFTest.py @@ -104,9 +104,9 @@ def process(): ctpUnpacker = CTPUnpackingEmulationTool( ForceEnableAllChains=False , InputFilename="ctp.dat" ) l1Decoder.ctpUnpacker = ctpUnpacker - emUnpacker = RoIsUnpackingEmulationTool("EMRoIsUnpackingTool", InputFilename="l1emroi.dat", OutputTrigRoIs="L1EMRoIs", Decisions="L1EM", ThresholdPrefix="EM" ) + emUnpacker = RoIsUnpackingEmulationTool("EMRoIsUnpackingTool", InputFilename="l1emroi.dat", OutputTrigRoIs="HLT_L1EMRoIs", Decisions="HLTNav_L1EM", ThresholdPrefix="EM" ) from TrigUpgradeTest.EmuStepProcessingConfig import thresholdToChains - emUnpacker.Decisions="L1EM" + emUnpacker.Decisions="HLTNav_L1EM" l1Decoder.roiUnpackers = [emUnpacker] diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/IDCalo.py b/Trigger/TrigValidation/TrigUpgradeTest/share/IDCalo.py index 9f86957c523..068aa76ae9f 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/IDCalo.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/IDCalo.py @@ -14,7 +14,7 @@ from AthenaCommon.AlgSequence import AthSequencer viewSeq = AthSequencer("AthViewSeq", Sequential=True, ModeOR=False, StopOverride=False) topSequence += viewSeq -roiCollectionName = "EMRoIs" +roiCollectionName = "HLT_EMRoIs" # View maker alg from AthenaCommon import CfgMgr diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/L1CF.py b/Trigger/TrigValidation/TrigUpgradeTest/share/L1CF.py index 8904a8bdbed..df5de9375e5 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/L1CF.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/L1CF.py @@ -17,10 +17,10 @@ ctpUnpacker = CTPUnpackingEmulationTool( ForceEnableAllChains=False , InputFilen #ctpUnpacker.CTPToChainMapping = [ "0:HLT_g100", "1:HLT_e20", "2:HLT_mu20", "3:HLT_2mu8", "3:HLT_mu8", "33:HLT_2mu8", "15:HLT_mu8_e8" ] l1Decoder.ctpUnpacker = ctpUnpacker -emUnpacker = RoIsUnpackingEmulationTool("EMRoIsUnpackingTool", InputFilename="l1emroi.dat", OutputTrigRoIs="L1EMRoIs", Decisions="L1EM" ) +emUnpacker = RoIsUnpackingEmulationTool("EMRoIsUnpackingTool", InputFilename="l1emroi.dat", OutputTrigRoIs="HLT_L1EMRoIs", Decisions="HLTNav_L1EM" ) emUnpacker.ThresholdToChainMapping = ["EM7 : HLT_mu8_e8", "EM20 : HLT_e20", "EM50 : HLT_2g50", "EM100 : HLT_g100" ] -muUnpacker = RoIsUnpackingEmulationTool("MURoIsUnpackingTool", InputFilename="l1muroi.dat", OutputTrigRoIs="L1MURoIs", Decisions="L1MU" ) +muUnpacker = RoIsUnpackingEmulationTool("MURoIsUnpackingTool", InputFilename="l1muroi.dat", OutputTrigRoIs="HLT_L1MURoIs", Decisions="HLTNav_L1MU" ) muUnpacker.ThresholdToChainMapping = ["MU6 : HLT_mu6", "MU8 : HLT_mu8", "MU8 : HLT_2mu8", "MU8 : HLT_mu8_e8", "MU10 : HLT_mu20", "EM100 : HLT_g100" ] l1Decoder.roiUnpackers = [emUnpacker, muUnpacker] diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/MinBias.py b/Trigger/TrigValidation/TrigUpgradeTest/share/MinBias.py index 904d5bfd7b9..615f20e9345 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/MinBias.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/MinBias.py @@ -9,9 +9,9 @@ viewAlgs = makeInDetAlgs(whichSignature='MinBias', separateTrackParticleCreator= for viewAlg in viewAlgs: if "RoIs" in viewAlg.properties(): - viewAlg.RoIs = "FSRoI" + viewAlg.RoIs = "HLT_FSRoI" if "roiCollectionName" in viewAlg.properties(): - viewAlg.roiCollectionName = "FSRoI" + viewAlg.roiCollectionName = "HLT_FSRoI" from AthenaCommon.AlgSequence import AlgSequence topSequence = AlgSequence() diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/cfTest.py b/Trigger/TrigValidation/TrigUpgradeTest/share/cfTest.py index 93e5c12d3f9..a8bfc112254 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/cfTest.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/cfTest.py @@ -91,9 +91,9 @@ mueChains = [ 'HLT_mu8_e8' ] steps = [ parOR("step%i" % i) for i in range(5)] stepNo = 0 -steps[stepNo] += seqFilter( "Step1MU", Inputs=["L1MU"], Outputs=["step0MU"], Chains=muChains ) -steps[stepNo] += seqFilter( "Step1MU_E", Inputs=["L1MU", "L1EM"], Outputs=["step0MU","step0EM"], Chains=mueChains ) -steps[stepNo] += seqFilter( "Step1EM", Inputs=["L1EM"], Outputs=["step0EM"], Chains=(eChains + gChains) ) +steps[stepNo] += seqFilter( "Step1MU", Inputs=["HLTNav_L1MU"], Outputs=["step0MU"], Chains=muChains ) +steps[stepNo] += seqFilter( "Step1MU_E", Inputs=["HLTNav_L1MU", "HLTNav_L1EM"], Outputs=["step0MU","step0EM"], Chains=mueChains ) +steps[stepNo] += seqFilter( "Step1EM", Inputs=["HLTNav_L1EM"], Outputs=["step0EM"], Chains=(eChains + gChains) ) emHypo = hypo("Step1ElGamHypo", Input="EMClusters", Output="EMDecisions") emHypoTools = [ emHTool("HLT_e2"), emHTool("HLT_e3"), emHTool("HLT_e5"), diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/egammaRinger.py b/Trigger/TrigValidation/TrigUpgradeTest/share/egammaRinger.py index a4e22f5f48d..2a67c14ca3f 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/egammaRinger.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/egammaRinger.py @@ -36,7 +36,7 @@ steps+=_algoHLTTopoCluster(OutputLevel=DEBUG) filterL1RoIsAlg = RoRSeqFilter( "filterL1RoIsAlg") -filterL1RoIsAlg.Input = ["L1EM"] +filterL1RoIsAlg.Input = ["HLTNav_L1EM"] filterL1RoIsAlg.Output = ["FilteredEMRoIDecisions"] filterL1RoIsAlg.Chains = [ "HLT_e3_etcut", diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu.py b/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu.py index 5d89b34f893..2e9c943d1f7 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu.py @@ -44,32 +44,35 @@ if opt.reverseViews: # Configure trigger output using parts of the NewJO configuration # in a somewhat hacky way ########################################## -from TriggerJobOpts.TriggerConfig import collectHypos, collectFilters, collectDecisionObjects, triggerOutputCfg +from TriggerJobOpts.TriggerConfig import collectHypos, collectFilters, collectDecisionObjects, triggerOutputCfg, collectFilterDecisionObjects from AthenaCommon.CFElements import findAlgorithm,findSubSequence hypos = collectHypos(findSubSequence(topSequence, "HLTAllSteps")) filters = collectFilters(findSubSequence(topSequence, "HLTAllSteps")) +# find DecisionSummaryMakerAlg +summaryMakerAlg = findAlgorithm(topSequence, "DecisionSummaryMakerAlg") +if not summaryMakerAlg: + __log.warning("Failed to find DecisionSummaryMakerAlg") + # try to find L1Decoder l1decoder = findAlgorithm(topSequence,'L1Decoder') if not l1decoder: l1decoder = findAlgorithm(topSequence,'L1EmulationTest') -if l1decoder: - decObj = collectDecisionObjects( hypos, filters, l1decoder ) +if l1decoder and summaryMakerAlg: + decObj = collectDecisionObjects( hypos, filters, l1decoder, summaryMakerAlg ) + decObjFilterOut = collectFilterDecisionObjects(filters, inputs=False, outputs=True) __log.debug("Decision Objects to write to output [hack method - should be replaced with triggerRunCfg()]") __log.debug(decObj) else: - __log.warning("Failed to find L1Decoder, cannot determine Decision names for output configuration") + __log.warning("Failed to find L1Decoder or DecisionSummaryMakerAlg, cannot determine Decision names for output configuration") decObj = [] + decObjFilterOut = [] -# find DecisionSummaryMakerAlg -summaryMakerAlg = findAlgorithm(topSequence, "DecisionSummaryMakerAlg") -if not summaryMakerAlg: - __log.warning("Failed to find DecisionSummaryMakerAlg") from AthenaConfiguration.AllConfigFlags import ConfigFlags from AthenaCommon.Configurable import Configurable Configurable.configurableRun3Behavior+=1 -acc, edmSet = triggerOutputCfg(ConfigFlags, decObj, summaryMakerAlg) +acc, edmSet = triggerOutputCfg(ConfigFlags, decObj, decObjFilterOut, summaryMakerAlg) Configurable.configurableRun3Behavior-=1 acc.appendToGlobals() diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu_cf.py b/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu_cf.py index 9fb6ba15abb..ae0dbf8766c 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu_cf.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/full_menu_cf.py @@ -288,32 +288,35 @@ makeHLTTree( triggerConfigHLT=TriggerConfigHLT ) # Configure trigger output using parts of the NewJO configuration # in a somewhat hacky way - copy-pasted from full_menu.py ########################################## -from TriggerJobOpts.TriggerConfig import collectHypos, collectFilters, collectDecisionObjects, triggerOutputCfg +from TriggerJobOpts.TriggerConfig import collectHypos, collectFilters, collectDecisionObjects, collectFilterDecisionObjects, triggerOutputCfg from AthenaCommon.CFElements import findAlgorithm,findSubSequence hypos = collectHypos(findSubSequence(topSequence, "HLTAllSteps")) filters = collectFilters(findSubSequence(topSequence, "HLTAllSteps")) +# find DecisionSummaryMakerAlg +summaryMakerAlg = findAlgorithm(topSequence, "DecisionSummaryMakerAlg") +if not summaryMakerAlg: + __log.warning("Failed to find DecisionSummaryMakerAlg") + # try to find L1Decoder l1decoder = findAlgorithm(topSequence,'L1Decoder') if not l1decoder: l1decoder = findAlgorithm(topSequence,'L1EmulationTest') -if l1decoder: - decObj = collectDecisionObjects( hypos, filters, l1decoder ) +if l1decoder and summaryMakerAlg: + decObj = collectDecisionObjects( hypos, filters, l1decoder, summaryMakerAlg ) + decObjFilterOut = collectFilterDecisionObjects(filters, inputs=False, outputs=True) __log.debug("Decision Objects to write to output [hack method - should be replaced with triggerRunCfg()]") __log.debug(decObj) else: - __log.warning("Failed to find L1Decoder, cannot determine Decision names for output configuration") + __log.warning("Failed to find L1Decoder or summaryMakerAlg, cannot determine Decision names for output configuration") decObj = [] + decObjFilterOut = [] -# find DecisionSummaryMakerAlg -summaryMakerAlg = findAlgorithm(topSequence, "DecisionSummaryMakerAlg") -if not summaryMakerAlg: - __log.warning("Failed to find DecisionSummaryMakerAlg") from AthenaConfiguration.AllConfigFlags import ConfigFlags from AthenaCommon.Configurable import Configurable Configurable.configurableRun3Behavior+=1 -acc, edmSet = triggerOutputCfg(ConfigFlags, decObj, summaryMakerAlg) +acc, edmSet = triggerOutputCfg(ConfigFlags, decObj, decObjFilterOut, summaryMakerAlg) Configurable.configurableRun3Behavior-=1 acc.appendToGlobals() diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/met.fromCells.py b/Trigger/TrigValidation/TrigUpgradeTest/share/met.fromCells.py index c46d6e88fb0..16d2f0e6852 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/met.fromCells.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/met.fromCells.py @@ -63,7 +63,7 @@ hypoAlg.HypoTools=[makeMETHypoTool()] hypoAlg.METContainerKey=metAlg.METContainerKey hypoAlg.OutputLevel = DEBUG -hypoAlg.HypoInputDecisions = "L1MET" +hypoAlg.HypoInputDecisions = "HLTNav_L1MET" hypoAlg.HypoOutputDecisions = "EFMETDecisions" topSequence += hypoAlg diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/met.fromClusters.py b/Trigger/TrigValidation/TrigUpgradeTest/share/met.fromClusters.py index 3ce0d9c441e..f92ecec9a03 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/met.fromClusters.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/met.fromClusters.py @@ -61,7 +61,7 @@ hypoAlg.HypoTools=[makeMETHypoTool()] hypoAlg.METContainerKey=metAlg.METContainerKey hypoAlg.OutputLevel = DEBUG -hypoAlg.HypoInputDecisions = "L1MET" +hypoAlg.HypoInputDecisions = "HLTNav_L1MET" hypoAlg.HypoOutputDecisions = "EFMETDecisions" topSequence += hypoAlg diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/met.fromClustersPufit.py b/Trigger/TrigValidation/TrigUpgradeTest/share/met.fromClustersPufit.py index bcc689af6f2..18922cf35b0 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/met.fromClustersPufit.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/met.fromClustersPufit.py @@ -53,7 +53,7 @@ hypoAlg.HypoTools=[makeMETHypoTool()] hypoAlg.METContainerKey=metAlg.METContainerKey hypoAlg.OutputLevel = DEBUG -hypoAlg.HypoInputDecisions = "L1MET" +hypoAlg.HypoInputDecisions = "HLTNav_L1MET" hypoAlg.HypoOutputDecisions = "EFMETDecisions" topSequence += hypoAlg diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/met.fromJets.py b/Trigger/TrigValidation/TrigUpgradeTest/share/met.fromJets.py index d4d9dec5a95..0a339755f59 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/met.fromJets.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/met.fromJets.py @@ -71,7 +71,7 @@ hypoAlg.HypoTools=[makeMETHypoTool()] hypoAlg.METContainerKey=metAlg.METContainerKey hypoAlg.OutputLevel = DEBUG -hypoAlg.HypoInputDecisions = "L1MET" +hypoAlg.HypoInputDecisions = "HLTNav_L1MET" hypoAlg.HypoOutputDecisions = "EFMETDecisions" topSequence += hypoAlg diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/met.seq.test.py b/Trigger/TrigValidation/TrigUpgradeTest/share/met.seq.test.py index ee843e5434d..1eaa2a5b575 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/met.seq.test.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/met.seq.test.py @@ -11,7 +11,7 @@ topSequence = AlgSequence() from DecisionHandling.DecisionHandlingConf import InputMakerForRoI InputMakerAlg = InputMakerForRoI("MetCellInputMaker", RoIsLink="initialRoI") InputMakerAlg.RoIs='METCellRoI' -InputMakerAlg.InputMakerInputDecisions=["L1MET"] +InputMakerAlg.InputMakerInputDecisions=["HLTNav_L1MET"] InputMakerAlg.InputMakerOutputDecisions=["InputMaker_from_L1MET"] topSequence += InputMakerAlg diff --git a/Trigger/TrigValidation/TrigUpgradeTest/share/simpleJetJob.py b/Trigger/TrigValidation/TrigUpgradeTest/share/simpleJetJob.py index 86cd3117a01..c71d9cb2021 100644 --- a/Trigger/TrigValidation/TrigUpgradeTest/share/simpleJetJob.py +++ b/Trigger/TrigValidation/TrigUpgradeTest/share/simpleJetJob.py @@ -35,7 +35,7 @@ if TriggerFlags.doCalo: L1JetDecisions=unpack.Decisions - inputRoIs="FSRoI" + inputRoIs="HLT_FSRoI" hypoDecisions=L1JetDecisions addFiltering=True diff --git a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py index 57b095848c1..579a116906f 100644 --- a/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py +++ b/Trigger/TriggerCommon/TrigEDMConfig/python/TriggerEDMRun3.py @@ -31,7 +31,8 @@ def recordable( name ): If the names are correct the outputKey is assigned with SomeKey, if there is a missmatch an exception is thrown. """ - if name in ["HLTNav_Summary", "L1DecoderSummary"] or "L1" in name or "RoI" in name: + if "HLTNav_" in name: + __log.error( "Don't call recordable({0}), or add any \"HLTNav_\" collection manually to the EDM. See:collectDecisionObjects.".format( name ) ) pass else: #negative filtering if not name.startswith( "HLT_" ): @@ -63,32 +64,20 @@ JetVars = '.'.join(JetVarsToKeep) TriggerHLTListRun3 = [ #framework/steering - ('xAOD::TrigCompositeContainer#HLTNav_Summary', 'BS ESD AODFULL AODSLIM', 'Steer'), - ('xAOD::TrigCompositeAuxContainer#HLTNav_SummaryAux.', 'BS ESD AODFULL AODSLIM', 'Steer'), - ('xAOD::TrigCompositeContainer#L1DecoderSummary', 'BS ESD AODFULL AODSLIM', 'Steer'), - ('xAOD::TrigCompositeAuxContainer#L1DecoderSummaryAux.', 'BS ESD AODFULL AODSLIM', 'Steer'), - ('xAOD::TrigDecision#xTrigDecision' , 'ESD AODFULL AODSLIM', 'Steer'), ('xAOD::TrigDecisionAuxInfo#xTrigDecisionAux.', 'ESD AODFULL AODSLIM', 'Steer'), ('xAOD::TrigConfKeys#TrigConfKeys' , 'ESD AODFULL AODSLIM', 'Steer'), - ('TrigRoiDescriptorCollection#EMRoIs', 'BS ESD AODFULL AODSLIM', 'Steer'), - ('TrigRoiDescriptorCollection#MURoIs', 'BS ESD AODFULL AODSLIM', 'Steer'), - ('TrigRoiDescriptorCollection#METRoI', 'BS ESD AODFULL AODSLIM', 'Steer'), - ('TrigRoiDescriptorCollection#JETRoI', 'BS ESD AODFULL AODSLIM', 'Steer'), + ('TrigRoiDescriptorCollection#HLT_EMRoIs', 'BS ESD AODFULL AODSLIM', 'Steer'), + ('TrigRoiDescriptorCollection#HLT_MURoIs', 'BS ESD AODFULL AODSLIM', 'Steer'), + ('TrigRoiDescriptorCollection#HLT_METRoI', 'BS ESD AODFULL AODSLIM', 'Steer'), + ('TrigRoiDescriptorCollection#HLT_JETRoI', 'BS ESD AODFULL AODSLIM', 'Steer'), + ('TrigRoiDescriptorCollection#HLT_TAURoI', 'BS ESD AODFULL AODSLIM', 'Steer'), + ('TrigRoiDescriptorCollection#HLT_FSRoI', 'BS ESD AODFULL AODSLIM', 'Steer'), ('TrigRoiDescriptorCollection#HLT_RoiForTau', 'BS ESD AODFULL AODSLIM', 'Steer', 'inViews = TAUCaloViews'), ('TrigRoiDescriptorCollection#HLT_RoiForID2', 'BS ESD AODFULL AODSLIM', 'Steer', 'inViews = TAUIDViews'), ('TrigRoiDescriptorCollection#HLT_RoiForID1', 'BS ESD AODFULL AODSLIM', 'Steer', 'inViews = TAUID2Views'), - ('xAOD::TrigCompositeContainer#L1EM', 'BS ESD AODFULL AODSLIM', 'Steer'), - ('xAOD::TrigCompositeAuxContainer#L1EMAux.', 'BS ESD AODFULL AODSLIM', 'Steer'), - ('xAOD::TrigCompositeContainer#L1MU', 'BS ESD AODFULL AODSLIM', 'Steer'), - ('xAOD::TrigCompositeAuxContainer#L1MUAux.', 'BS ESD AODFULL AODSLIM', 'Steer'), - ('xAOD::TrigCompositeContainer#L1MET', 'BS ESD AODFULL AODSLIM', 'Steer'), - ('xAOD::TrigCompositeAuxContainer#L1METAux.', 'BS ESD AODFULL AODSLIM', 'Steer'), - ('xAOD::TrigCompositeContainer#L1J', 'BS ESD AODFULL AODSLIM', 'Steer'), - ('xAOD::TrigCompositeAuxContainer#L1JAux.', 'BS ESD AODFULL AODSLIM', 'Steer'), - ('xAOD::TrigCompositeContainer#HLT_TrigCostContainer', 'CostMonDS ESD', 'Steer'), ('xAOD::TrigCompositeAuxContainer#HLT_TrigCostContainerAux.alg.store.view.thread.slot.roi.start.stop.', 'CostMonDS ESD', 'Steer'), diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py index daa08bd5527..ec5bfc3e65b 100644 --- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py +++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfig.py @@ -82,6 +82,8 @@ def collectL1DecoderDecisionObjects(l1decoder): __log.info("Collecting decision objects from L1 decoder instance") decisionObjects.update([ d.Decisions for d in l1decoder.roiUnpackers ]) decisionObjects.update([ d.Decisions for d in l1decoder.rerunRoiUnpackers ]) + # decisionObjects.add( l1decoder.FSDecisions ) # Crashes? + decisionObjects.add( "HLTNav_L1FS" ) # Hard-coded, but should be l1decoder.FSDecisions return decisionObjects def collectHypoDecisionObjects(hypos, inputs = True, outputs = True): @@ -114,17 +116,28 @@ def collectFilterDecisionObjects(filters, inputs = True, outputs = True): decisionObjects.update( filt.Output ) return decisionObjects -def collectDecisionObjects( hypos, filters, l1decoder ): +def collectHLTSummaryDecisionObjects(hltSummary): + decisionObjects = set() + __log.info("Collecting decision objects from hltSummary") + decisionObjects.update( hltSummary.DecisionsSummaryKey ) + return decisionObjects + +def collectDecisionObjects( hypos, filters, l1decoder, hltSummary ): """ Returns the set of all decision objects of HLT """ decObjL1 = collectL1DecoderDecisionObjects(l1decoder) - decObjHypo = collectHypoDecisionObjects(hypos) - decObjFilter = collectFilterDecisionObjects(filters) + decObjHypo = collectHypoDecisionObjects(hypos, inputs = True, outputs = True) + decObjFilter = collectFilterDecisionObjects(filters, inputs = True, outputs = True) + # InputMaker are not needed explicitly as the Filter Outputs = InputMaker Inputs + # and InputMaker Outputs = Hypo Inputs + # Therefore we implicitly collect all navigaiton I/O of all InputMakers + decObjSummary = collectHLTSummaryDecisionObjects(hltSummary) decisionObjects = set() decisionObjects.update(decObjL1) decisionObjects.update(decObjHypo) decisionObjects.update(decObjFilter) + decisionObjects.update(decObjSummary) return decisionObjects def triggerSummaryCfg(flags, hypos): @@ -188,7 +201,7 @@ def triggerMonitoringCfg(flags, hypos, filters, l1Decoder): return acc, mon -def triggerOutputCfg(flags, decObj, summaryAlg): +def triggerOutputCfg(flags, decObj, decObjFilterOut, summaryAlg): # Following cases are considered: # 1) Running in partition or athenaHLT - configure BS output written by the HLT framework # 2) Running offline athena and writing BS - configure BS output written by OutputStream alg @@ -227,13 +240,13 @@ def triggerOutputCfg(flags, decObj, summaryAlg): # Create the configuration if onlineWriteBS: __log.info("Configuring online ByteStream HLT output") - acc = triggerBSOutputCfg(flags, decObj, summaryAlg) + acc = triggerBSOutputCfg(flags, decObj, decObjFilterOut, summaryAlg) elif offlineWriteBS: __log.info("Configuring offline ByteStream HLT output") - acc = triggerBSOutputCfg(flags, decObj, summaryAlg, offline=True) + acc = triggerBSOutputCfg(flags, decObj, decObjFilterOut, summaryAlg, offline=True) elif writePOOL: __log.info("Configuring POOL HLT output") - acc = triggerPOOLOutputCfg(flags, decObj, edmSet) + acc = triggerPOOLOutputCfg(flags, decObj, decObjFilterOut, edmSet) else: __log.info("No HLT output writing is configured") acc = ComponentAccumulator() @@ -241,7 +254,7 @@ def triggerOutputCfg(flags, decObj, summaryAlg): return acc, edmSet -def triggerBSOutputCfg(flags, decObj, summaryAlg, offline=False): +def triggerBSOutputCfg(flags, decObj, decObjFilterOut, summaryAlg, offline=False): from TriggerMenuMT.HLTMenuConfig.Menu import EventBuildingInfo from TrigEDMConfig.TriggerEDM import getTriggerEDMList from TrigEDMConfig.TriggerEDMRun3 import persistent @@ -260,8 +273,11 @@ def triggerBSOutputCfg(flags, decObj, summaryAlg, offline=False): # Add decision containers (navigation) for item in decObj: + dynamic = '.-' + if item in decObjFilterOut: + dynamic = '.remap_linkColKeys.remap_linkColIndices.' typeName = 'xAOD::TrigCompositeContainer#{:s}'.format(item) - typeNameAux = 'xAOD::TrigCompositeAuxContainer#{:s}Aux.-'.format(item) + typeNameAux = 'xAOD::TrigCompositeAuxContainer#{:s}Aux{:s}'.format(item, dynamic) if typeName not in ItemModuleDict.keys(): ItemModuleDict[typeName] = [EventBuildingInfo.getFullHLTResultID()] if typeNameAux not in ItemModuleDict.keys(): @@ -319,7 +335,7 @@ def triggerBSOutputCfg(flags, decObj, summaryAlg, offline=False): return acc -def triggerPOOLOutputCfg(flags, decObj, edmSet): +def triggerPOOLOutputCfg(flags, decObj, decObjFilterOut, edmSet): # Get the list from TriggerEDM from TrigEDMConfig.TriggerEDM import getTriggerEDMList edmList = getTriggerEDMList(edmSet, flags.Trigger.EDMDecodingVersion) @@ -331,8 +347,11 @@ def triggerPOOLOutputCfg(flags, decObj, edmSet): # Add decision containers (navigation) for item in decObj: + dynamic = '.-' + if item in decObjFilterOut: + dynamic = '.remap_linkColKeys.remap_linkColIndices.' itemsToRecord.append('xAOD::TrigCompositeContainer#{:s}'.format(item)) - itemsToRecord.append('xAOD::TrigCompositeAuxContainer#{:s}Aux.-'.format(item)) + itemsToRecord.append('xAOD::TrigCompositeAuxContainer#{:s}Aux{:s}'.format(item, dynamic)) # Create OutputStream outputType = '' @@ -365,7 +384,7 @@ def triggerPOOLOutputCfg(flags, decObj, edmSet): return acc -def triggerMergeViewsAndAddMissingEDMCfg( edmSet, hypos, viewMakers, decObj ): +def triggerMergeViewsAndAddMissingEDMCfg( edmSet, hypos, viewMakers, decObj, decObjFilterOut ): from TrigOutputHandling.TrigOutputHandlingConf import HLTEDMCreatorAlg, HLTEDMCreator from TrigEDMConfig.TriggerEDMRun3 import TriggerHLTListRun3 @@ -435,7 +454,7 @@ def triggerMergeViewsAndAddMissingEDMCfg( edmSet, hypos, viewMakers, decObj ): __log.debug("The GapFiller is ensuring the creation of all the decision object collections: '{}'".format( decObj ) ) # Append and hence confirm all TrigComposite collections # Gap filler is also used to perform re-mapping of the HypoAlg outputs which is a sub-set of decObj - tool.FixLinks = list(collectHypoDecisionObjects(hypos, inputs=False, outputs=True)) + tool.FixLinks = list(decObjFilterOut) tool.TrigCompositeContainer += list(decObj) alg.OutputTools += [tool] @@ -484,8 +503,10 @@ def triggerRunCfg( flags, menu=None ): from TrigCostMonitorMT.TrigCostMonitorMTConfig import TrigCostMonitorMTCfg acc.merge( TrigCostMonitorMTCfg( flags ) ) - decObj = collectDecisionObjects( hypos, filters, l1DecoderAlg ) + decObj = collectDecisionObjects( hypos, filters, l1DecoderAlg, summaryAlg ) + decObjFilterOut = collectFilterDecisionObjects(filters, inputs=False, outputs=True) __log.info( "Number of decision objects found in HLT CF %d", len( decObj ) ) + __log.info( "Of which, %d are the outputs of filters", len( decObjFilterOut ) ) __log.info( str( decObj ) ) HLTTop = seqOR( "HLTTop", [ l1DecoderAlg, HLTSteps, summaryAlg, monitoringAlg ] ) @@ -497,11 +518,11 @@ def triggerRunCfg( flags, menu=None ): # configure components need to normalise output before writing out viewMakers = collectViewMakers( HLTSteps ) - outputAcc, edmSet = triggerOutputCfg( flags, decObj, summaryAlg ) + outputAcc, edmSet = triggerOutputCfg( flags, decObj, decObjFilterOut, summaryAlg ) acc.merge( outputAcc ) if edmSet: - mergingAlg = triggerMergeViewsAndAddMissingEDMCfg( [edmSet] , hypos, viewMakers, decObj ) + mergingAlg = triggerMergeViewsAndAddMissingEDMCfg( [edmSet] , hypos, viewMakers, decObj, decObjFilterOut ) acc.addEventAlgo( mergingAlg, sequenceName="HLTTop" ) return acc diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py index 572f6294d23..4e6f8fb06ec 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Menu/HLTCFConfig.py @@ -160,10 +160,11 @@ def makeHLTTree(newJO=False, triggerConfigHLT = None): summary= makeSummary("TriggerSummaryFinal", flatDecisions) hltTop += summary + # TODO - check we are not running things twice. Once here and once in TriggerConfig.py # add signature monitor from TriggerJobOpts.TriggerConfig import collectHypos, collectFilters, collectViewMakers, collectDecisionObjects,\ - triggerMonitoringCfg, triggerSummaryCfg, triggerMergeViewsAndAddMissingEDMCfg + triggerMonitoringCfg, triggerSummaryCfg, triggerMergeViewsAndAddMissingEDMCfg, collectFilterDecisionObjects from AthenaConfiguration.AllConfigFlags import ConfigFlags from AthenaCommon.Configurable import Configurable Configurable.configurableRun3Behavior+=1 @@ -171,17 +172,18 @@ def makeHLTTree(newJO=False, triggerConfigHLT = None): hypos = collectHypos(steps) filters = collectFilters(steps) viewMakers = collectViewMakers(steps) - decObj = collectDecisionObjects( hypos, filters, l1decoder[0] ) summaryAcc, summaryAlg = triggerSummaryCfg( ConfigFlags, hypos ) hltTop += summaryAlg summaryAcc.appendToGlobals() + decObj = collectDecisionObjects( hypos, filters, l1decoder[0], summaryAlg ) + decObjFilterOut = collectFilterDecisionObjects(filters, inputs=False, outputs=True) monAcc, monAlg = triggerMonitoringCfg( ConfigFlags, hypos, filters, l1decoder[0] ) monAcc.appendToGlobals() hltTop += monAlg # this is a shotcut for now, we always assume we may be writing ESD & AOD outputs, so all gaps will be filled - edmAlg = triggerMergeViewsAndAddMissingEDMCfg(['AOD', 'ESD'], hypos, viewMakers, decObj ) + edmAlg = triggerMergeViewsAndAddMissingEDMCfg(['AOD', 'ESD'], hypos, viewMakers, decObj, decObjFilterOut) hltTop += edmAlg Configurable.configurableRun3Behavior-=1 diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py index ac44b94b0e2..52eece3a63e 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/MuonSetup.py @@ -298,7 +298,7 @@ def muFastRecoSequence( RoIs ): muFastAlg.DataPreparator = MuFastDataPreparator - muFastAlg.RecMuonRoI = "RecMURoIs" + muFastAlg.RecMuonRoI = "HLT_RecMURoIs" muFastAlg.MuRoIs = RoIs muFastAlg.MuonL2SAInfo = muNames.L2SAName muFastAlg.MuonCalibrationStream = "MuonCalibrationStream" @@ -492,7 +492,7 @@ def muEFSARecoSequence( RoIs, name ): for efAlg in efAlgs: if "RoIs" in efAlg.properties(): if name == "FS": - efAlg.RoIs = "FSRoI" + efAlg.RoIs = "HLT_FSRoI" else: efAlg.RoIs = RoIs muEFSARecoSequence += efAlg -- GitLab