From c9c546b7fa643cd044b46768ab30f6263999d943 Mon Sep 17 00:00:00 2001 From: Tomasz Bold <tomasz.bold@gmail.com> Date: Tue, 25 May 2021 08:17:06 +0000 Subject: [PATCH] Fixed new JO flags use in the new JO ID trigger --- .../TrigInDetConfig/python/TrigInDetConfig.py | 18 ++------ .../python/TrigTrackingCutFlags.py | 44 ++++++++----------- .../python/HLTMenuConfig/Muon/generateMuon.py | 21 ++++----- 3 files changed, 32 insertions(+), 51 deletions(-) diff --git a/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetConfig.py b/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetConfig.py index 4c14c9663c32..b7b584048c7f 100644 --- a/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetConfig.py +++ b/Trigger/TrigTools/TrigInDetConfig/python/TrigInDetConfig.py @@ -598,9 +598,6 @@ def ftfCfg(flags, roisKey, signature, signatureName): ReadKey = "PixelDetectorElementCollection", WriteKey = "PixelDetElementBoundaryLinks_xk") ) - from TrigInDetConfig.ConfigSettings import getInDetTrigConfig - config = getInDetTrigConfig(signatureName) - ftf = CompFactory.TrigFastTrackFinder( name = "TrigFastTrackFinder_" + signature, LayerNumberTool = acc.getPublicTool( "TrigL2LayerNumberTool_FTF" ), SpacePointProviderTool = acc.getPublicTool( "TrigSpacePointConversionTool" + signature ), @@ -613,7 +610,7 @@ def ftfCfg(flags, roisKey, signature, signatureName): doZFinder = False, SeedRadBinWidth = flags.InDet.Tracking.SeedRadBinWidth, TrackInitialD0Max = 1000. if flags.InDet.Tracking.extension == 'cosmics' else 20.0, - TracksName = config.trkTracks_FTF(), + TracksName = flags.InDet.Tracking.trkTracks_FTF, TripletDoPSS = False, Triplet_D0Max = flags.InDet.Tracking.Triplet_D0Max, Triplet_D0_PPS_Max = flags.InDet.Tracking.Triplet_D0_PPS_Max, @@ -648,9 +645,6 @@ def TrigTrackToVertexCfg(flags, name = 'TrigTrackToVertexTool', **kwargs ): def trackConverterCfg(flags, signature, signatureName): acc = ComponentAccumulator() - from TrigInDetConfig.ConfigSettings import getInDetTrigConfig - config = getInDetTrigConfig(signatureName) - acc.merge( TrackSummaryToolCfg(flags, name="InDetTrigFastTrackSummaryTool") ) track_to_vertex = acc.popToolsAndMerge( TrigTrackToVertexCfg(flags) ) creatorTool = CompFactory.Trk.TrackParticleCreatorTool( name = "InDetTrigParticleCreatorToolFTF", @@ -661,8 +655,8 @@ def trackConverterCfg(flags, signature, signatureName): ExtraSummaryTypes = ['eProbabilityComb', 'eProbabilityHT', 'TRTTrackOccupancy', 'TRTdEdx', 'TRTdEdxUsedHits']) acc.addPublicTool(creatorTool) trackParticleCnv=CompFactory.InDet.TrigTrackingxAODCnvMT(name = "InDetTrigTrackParticleCreatorAlg" + signature, - TrackName = config.trkTracks_FTF(), - TrackParticlesName = config.tracks_FTF(), + TrackName = flags.InDet.Tracking.trkTracks_FTF, + TrackParticlesName = flags.InDet.Tracking.tracks_FTF, ParticleCreatorTool = creatorTool) acc.addEventAlgo(trackParticleCnv) @@ -672,12 +666,8 @@ def trackConverterCfg(flags, signature, signatureName): def trigInDetFastTrackingCfg( inflags, roisKey="EMRoIs", signatureName='' ): # redirect InDet.Tracking flags to point to a specific trigger setting - if 'Muon' in signatureName: - signatureFlags='Muon' - else: - signatureFlags = signatureName - flags = inflags.cloneAndReplace("InDet.Tracking", "Trigger.InDetTracking."+signatureFlags) + flags = inflags.cloneAndReplace("InDet.Tracking", "Trigger.InDetTracking."+signatureName) #If signature specified add suffix to the name of each algorithms signature = ("_" + signatureName if signatureName else '').lower() diff --git a/Trigger/TrigTools/TrigInDetConfig/python/TrigTrackingCutFlags.py b/Trigger/TrigTools/TrigInDetConfig/python/TrigTrackingCutFlags.py index fa7b304b69fc..09b2c149b396 100644 --- a/Trigger/TrigTools/TrigInDetConfig/python/TrigTrackingCutFlags.py +++ b/Trigger/TrigTools/TrigInDetConfig/python/TrigTrackingCutFlags.py @@ -4,51 +4,42 @@ from AthenaConfiguration.AthConfigFlags import AthConfigFlags from InDetConfig.TrackingCutsFlags import createTrackingFlags # for the time when the two config systems coexist we reuse flags -from TrigInDetConfig.ConfigSettings import _ConfigSettings_electron, _ConfigSettings_muon, _ConfigSettings_muonLRT -from TrigInDetConfig.ConfigSettingsBase import _ConfigSettingsBase +from TrigInDetConfig.ConfigSettings import _ConfigSettings_electron, _ConfigSettings_muon, _ConfigSettings_muonLRT, _ConfigSettings_muonIso -def copyValues(flags, configClass): - settings = configClass - for setting, value in settings.__dict__.items(): - setting = setting.lstrip("_") - if value is None: - flags._set(setting, lambda pf: None ) - else: - flags._set(setting, value) - -def __sliceFlags(): +def __flagsFromConfigSettings(settings): flags = createTrackingFlags() - for setting, value in _ConfigSettingsBase().__dict__.items(): + for setting, value in settings.__dict__.items(): setting = setting.lstrip("_") if value is None: flags.addFlag(setting, lambda pf: None) else: flags.addFlag(setting, value) - return flags -def __electronFlags(): - flags = __sliceFlags() - copyValues(flags, _ConfigSettings_electron()) + flags.addFlag("trkTracks_FTF", f'HLT_IDTrkTrack_{flags.suffix}_FTF') + flags.addFlag("tracks_FTF", f'HLT_IDTrack_{flags.suffix}_FTF') flags.minPT = flags.pTmin # hack to sync pT threshold used in offline and trigger return flags +def __electronFlags(): + return __flagsFromConfigSettings(_ConfigSettings_electron()) + def __muonFlags(): - flags = __sliceFlags() - copyValues(flags, _ConfigSettings_muon()) - flags.minPT = flags.pTmin - return flags + return __flagsFromConfigSettings(_ConfigSettings_muon()) + +def __muonIsoFlags(): + return __flagsFromConfigSettings(_ConfigSettings_muonIso()) def _muonLRTFlags(): - flags = __sliceFlags() - copyValues(flags, _ConfigSettings_muonLRT()) - flags.minPT = flags.pTmin - return flags + return __flagsFromConfigSettings( _ConfigSettings_muonLRT()) def createTrigTrackingFlags(): flags = AthConfigFlags() flags.addFlagsCategory('Trigger.InDetTracking.Electron', __electronFlags, prefix=True) flags.addFlagsCategory('Trigger.InDetTracking.Muon', __muonFlags, prefix=True) + flags.addFlagsCategory('Trigger.InDetTracking.MuonIso', __muonIsoFlags, prefix=True) + flags.addFlagsCategory('Trigger.InDetTracking.MuonFS', __muonFlags, prefix=True) + flags.addFlagsCategory('Trigger.InDetTracking.MuonLRT', _muonLRTFlags, prefix=True) return flags @@ -61,13 +52,16 @@ class FlagsCopiedTest(unittest.TestCase): flags.Trigger.doID flags.Trigger.InDetTracking.Muon flags.Trigger.InDetTracking.Electron.minPT = 2.0 * Units.GeV + flags.loadAllDynamicFlags() self.newflags = flags.cloneAndReplace('InDet.Tracking', 'Trigger.InDetTracking.Electron') + self.newflags.dump(".*InDet") def runTest(self): self.assertEqual(self.newflags.InDet.Tracking.minPT, 2.0 * Units.GeV, msg="Flags are not copied") + class UnsetFlagsTest(FlagsCopiedTest): def runTest(self): self.assertEqual(self.newflags.InDet.Tracking.vertex_jet, None) diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py index 87e142a0c2cd..65e4cf5676a3 100644 --- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py +++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Muon/generateMuon.py @@ -32,7 +32,6 @@ from MuonCombinedConfig.MuonCombinedReconstructionConfig import MuonCombinedInDe from TrigMuonEF.TrigMuonEFConfig_newJO import TrigMuonEFTrackIsolationAlgCfg, MuonFilterAlgCfg, MergeEFMuonsAlgCfg from AthenaCommon.CFElements import seqAND, parOR, seqOR -from TrigInDetConfig.ConfigSettings import getInDetTrigConfig import pprint @@ -43,8 +42,7 @@ def fakeHypoAlgCfg(flags, name="FakeHypoForMuon"): HLTTest__TestHypoAlg=CompFactory.HLTTest.TestHypoAlg return HLTTest__TestHypoAlg( name, Input="" ) -def EFMuonCBViewDataVerifierCfg(name): - config = getInDetTrigConfig( "muon" ) +def EFMuonCBViewDataVerifierCfg(flags, name): EFMuonCBViewDataVerifier = CompFactory.AthViews.ViewDataVerifier("VDVEFCBMuon_"+name) EFMuonCBViewDataVerifier.DataObjects = [( 'Muon::MdtPrepDataContainer' , 'StoreGateSvc+MDT_DriftCircles' ), ( 'Muon::TgcPrepDataContainer' , 'StoreGateSvc+TGC_Measurements' ), @@ -57,7 +55,7 @@ def EFMuonCBViewDataVerifierCfg(name): EFMuonCBViewDataVerifier.DataObjects += [( 'MuonCandidateCollection' , 'StoreGateSvc+MuonCandidates_FS' )] else: EFMuonCBViewDataVerifier.DataObjects += [( 'MuonCandidateCollection' , 'StoreGateSvc+MuonCandidates' ), - ( 'xAOD::TrackParticleContainer' , 'StoreGateSvc+'+config.tracks_FTF() ), + ( 'xAOD::TrackParticleContainer' , 'StoreGateSvc+'+flags.Trigger.InDetTracking.Muon.tracks_FTF ), ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+SCT_FlaggedCondData' ), ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+PixelByteStreamErrs' ), ( 'IDCInDetBSErrContainer' , 'StoreGateSvc+SCT_ByteStreamErrs' )] @@ -393,13 +391,10 @@ def muEFCBStep(flags, chainDict, name='RoI'): #EF combined muons selAccEFCB = SelectionCA("EFCBMuon_"+name) - config = getInDetTrigConfig( "muon" ) - viewName = 'EFMuCBReco_'+name - trackName = config.tracks_FTF() + trackName = flags.Trigger.InDetTracking.Muon.tracks_FTF muonCandName = "MuonCandidates" if 'FS' in name: - config = getInDetTrigConfig( "muonFS" ) muonCandName = "MuonCandidates_FS" ViewCreatorCentredOnIParticleROITool=CompFactory.ViewCreatorCentredOnIParticleROITool roiTool = ViewCreatorCentredOnIParticleROITool(RoisWriteHandleKey="MuonCandidates_FS_ROIs") @@ -417,12 +412,12 @@ def muEFCBStep(flags, chainDict, name='RoI'): recoCB = InViewRecoCA("EFMuCBReco_"+name, viewMaker=viewMakerAlg) #ID tracking recoCB.mergeReco(trigInDetFastTrackingCfg( flags, roisKey=recoCB.inputMaker().InViewRoIs, signatureName="MuonFS" )) - trackName = config.tracks_FTF() + trackName = flags.Trigger.InDetTracking.MuonFS.tracks_FTF else: recoCB = InViewRecoCA(viewName) recoCB.inputMaker().RequireParentView = True - recoCB.mergeReco(EFMuonCBViewDataVerifierCfg(name)) + recoCB.mergeReco(EFMuonCBViewDataVerifierCfg(flags, name)) indetCandCfg = MuonCombinedInDetCandidateAlgCfg(flags, name="TrigMuonCombinedInDetCandidateAlg_"+name, TrackParticleLocation=[trackName], InDetCandidateLocation="IndetCandidates_"+name, DoSiliconAssocForwardMuons=False, InDetForwardTrackSelector="") @@ -495,10 +490,12 @@ def muEFIsoStep(flags, chainDict): ViewNodeName = viewName+"InView") recoIso = InViewRecoCA("EFMuIsoReco", viewMaker=viewMakerAlg) #ID tracking - config = getInDetTrigConfig( "muonIso" ) recoIso.mergeReco(trigInDetFastTrackingCfg( flags, roisKey=recoIso.inputMaker().InViewRoIs, signatureName="MuonIso" )) recoIso.mergeReco(MuIsoViewDataVerifierCfg()) - recoIso.mergeReco(TrigMuonEFTrackIsolationAlgCfg(flags, IdTrackParticles=config.tracks_FTF(), MuonEFContainer="InViewIsoMuons", ptcone02Name="InViewIsoMuons.ptcone02", ptcone03Name="InViewIsoMuons.ptcone03")) + recoIso.mergeReco(TrigMuonEFTrackIsolationAlgCfg(flags, IdTrackParticles=flags.Trigger.InDetTracking.MuonIso.tracks_FTF, + MuonEFContainer="InViewIsoMuons", + ptcone02Name="InViewIsoMuons.ptcone02", + ptcone03Name="InViewIsoMuons.ptcone03")) selAccEFIso.mergeReco(recoIso) efmuIsoHypo = efMuIsoHypoCfg( flags, -- GitLab