From 530b561bbf906f9ac8c8c9ef106694d92f755870 Mon Sep 17 00:00:00 2001 From: Emmanuel Le Guirriec <emmanuel.le.guirriec@cern.ch> Date: Tue, 28 Jul 2020 10:08:16 +0200 Subject: [PATCH] =?UTF-8?q?New=20style=20configuration=20in=20Reco=20after?= =?UTF-8?q?=20Walter=C2=B4s=20fixes?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BTagging/python/BTagRun3Config.py | 29 ++++++++++++++----- .../BTagging/python/JetBTaggerAlgConfig.py | 8 ++--- .../python/JetParticleAssociationAlgConfig.py | 3 +- .../RecExCommon/share/CombinedRec_config.py | 16 ++++++++-- 4 files changed, 38 insertions(+), 18 deletions(-) diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagRun3Config.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagRun3Config.py index 983a47b620fd..5df3a82d129a 100644 --- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagRun3Config.py +++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/BTagRun3Config.py @@ -149,17 +149,27 @@ def PrepareStandAloneBTagCfg(inputFlags): return result +def BTagRecoCfg(inputFlags, JetCollection = ['AntiKt4EMTopo'], **kwargs): + + result=ComponentAccumulator() + + taggerList = inputFlags.BTagging.run2TaggersList + result.merge(JetTagCalibCfg(inputFlags, TaggerList = taggerList, **kwargs)) + + result.merge(JetBTaggerAlgCfg(inputFlags, JetCollection = JetCollection[0], PrimaryVertexCollectionName="PrimaryVertices", TaggerList = taggerList, **kwargs)) + + return result + def BTagCfg(inputFlags, JetCollection = [], **kwargs): #This is monolithic for now. #Once a first complete example runs, this will be split into small modular chunks. - #Some such items may be best placed elsewehere (e.g. put magnetic field setup in magnetic field git folder etc) result=ComponentAccumulator() + timestamp = kwargs.get('TimeStamp', None) if timestamp: del kwargs['TimeStamp'] splitAlg = kwargs.get('SplitAlg', None) - del kwargs['SplitAlg'] - + if splitAlg: del kwargs['SplitAlg'] TrainedTaggers = inputFlags.BTagging.run2TaggersList + ['MultiSVbb1','MultiSVbb2'] result.merge(JetTagCalibCfg(inputFlags, TaggerList = TrainedTaggers, **kwargs)) @@ -198,7 +208,9 @@ def BTagCfg(inputFlags, JetCollection = [], **kwargs): secVertexingAndAssociators = {'JetFitter':'BTagTrackToJetAssociator','SV1':'BTagTrackToJetAssociator', 'MSV':'BTagTrackToJetAssociatorBB'} result.merge(JetBTaggerSplitAlgsCfg(inputFlags, JetCollection = jet, TaggerList = taggerList, SecVertexingAndAssociators = secVertexingAndAssociators, **kwargs)) else: - result.merge(JetBTaggerAlgCfg(inputFlags, JetCollection = jet, TaggerList = taggerList, **kwargs)) + if kwargs.get('Release', None): + del kwargs['Release'] + result.merge(JetBTaggerAlgCfg(inputFlags, JetCollection = jet, PrimaryVertexCollectionName="PrimaryVertices", TaggerList = taggerList, **kwargs)) return result @@ -236,8 +248,9 @@ def JetBTaggerSplitAlgsCfg(inputFlags, JetCollection="", TaggerList=[], SecVerte for assoc in TrackToJetAssociators: result.merge(JetParticleAssociationAlgCfg(inputFlags, jet, "InDetTrackParticles", assoc, **kwargs)) - - del kwargs['Release'] + + if kwargs.get('Release', None): + del kwargs['Release'] #Sec vertex finding for k, v in SecVertexingAndAssociators.items(): @@ -344,7 +357,6 @@ if __name__=="__main__": from AthenaConfiguration.AllConfigFlags import ConfigFlags as cfgFlags - cfgFlags.Input.isMC=True cfgFlags.Input.Files= args.filesIn.split(",") #cfgFlags.Input.isMC=False #cfgFlags.Input.Files=["/atlas/guirriec/git-athena/q431_2019-03-02T2147/myESD_2019.pool.root"] @@ -378,7 +390,8 @@ if __name__=="__main__": if args.release == "21.2": kwargs["TimeStamp"] = ['201810','201903'] kwargs['Release'] = '21' - kwargs["SplitAlg"] = args.splitAlg + if args.splitAlg: + kwargs["SplitAlg"] = args.splitAlg acc.merge(BTagCfg(cfgFlags, JetCollection = JetCollection, **kwargs)) diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetBTaggerAlgConfig.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetBTaggerAlgConfig.py index df5f1f4e7e6e..c83f80f92249 100644 --- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetBTaggerAlgConfig.py +++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetBTaggerAlgConfig.py @@ -14,11 +14,9 @@ def JetBTaggerAlgCfg(ConfigFlags, JetCollection="", PrimaryVertexCollectionName= acc=ComponentAccumulator() jetcol = JetCollection - del options['Release'] - # setup the Analysis__BTagTrackAssociation tool options.setdefault('BTagTrackAssocTool', acc.popToolsAndMerge(BTagTrackAssociationCfg(ConfigFlags, 'TrackAssociation'+ ConfigFlags.BTagging.GeneralToolSuffix, jetcol, TaggerList ))) - + options.setdefault('BTagTool', acc.popToolsAndMerge(BTagToolCfg(ConfigFlags, TaggerList, PrimaryVertexCollectionName, SetupScheme))) timestamp = options.get('TimeStamp', None) @@ -26,7 +24,7 @@ def JetBTaggerAlgCfg(ConfigFlags, JetCollection="", PrimaryVertexCollectionName= timestamp = [''] else: del options['TimeStamp'] - + for ts in timestamp: # setup the secondary vertexing tool options['BTagSecVertexing'] = acc.popToolsAndMerge(BTagSecVtxToolCfg(ConfigFlags, 'SecVx'+ConfigFlags.BTagging.GeneralToolSuffix, jetcol, TimeStamp = ts, **options)) @@ -43,5 +41,5 @@ def JetBTaggerAlgCfg(ConfigFlags, JetCollection="", PrimaryVertexCollectionName= # -- create main BTagging algorithm acc.addEventAlgo(JetBTaggerAlg(**options)) - + return acc diff --git a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetParticleAssociationAlgConfig.py b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetParticleAssociationAlgConfig.py index 0b0d35e81730..c9e7c44ffd9f 100644 --- a/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetParticleAssociationAlgConfig.py +++ b/PhysicsAnalysis/JetTagging/JetTagAlgs/BTagging/python/JetParticleAssociationAlgConfig.py @@ -14,8 +14,7 @@ def JetParticleAssociationAlgCfg(ConfigFlags, JetCollection="", ParticleCollecti jetcol = JetCollection partcol = ParticleCollection - - release = options.get('Release', None) + release = options.get('Release', '21') optionAssoc = {} if release == '21': diff --git a/Reconstruction/RecExample/RecExCommon/share/CombinedRec_config.py b/Reconstruction/RecExample/RecExCommon/share/CombinedRec_config.py index 3ea4098ff55b..67b84f9900a7 100755 --- a/Reconstruction/RecExample/RecExCommon/share/CombinedRec_config.py +++ b/Reconstruction/RecExample/RecExCommon/share/CombinedRec_config.py @@ -5,6 +5,7 @@ mlog = logging.getLogger( 'CombinedRec_config' ) from AthenaCommon.GlobalFlags import globalflags +from AthenaConfiguration.ComponentAccumulator import CAtoGlobalWrapper from RecExConfig.RecFlags import rec from RecExConfig.RecAlgsFlags import recAlgs from RecExConfig.ObjKeyStore import objKeyStore @@ -125,12 +126,21 @@ pdr.flag_domain('btagging') btaggingOK = False if jetOK and rec.doBTagging() and DetFlags.ID_on() and DetFlags.Muon_on(): try: - from BTagging.BTaggingFlags import BTaggingFlags - protectedInclude( "BTagging/BTagging_jobOptions.py") + from AthenaCommon.Configurable import Configurable + Configurable.configurableRun3Behavior=1 + from AthenaConfiguration.AllConfigFlags import ConfigFlags + # Translate all needed flags from old jobProperties to a new AthConfigFlag Container + from AthenaCommon.AthenaCommonFlags import jobproperties as jps + ConfigFlags.Input.Files = jps.AthenaCommonFlags.FilesInput.get_Value() + ConfigFlags.IOVDb.GlobalTag=globalflags.ConditionsTag() + # Configure BTagging algorithm + from BTagging.BTagRun3Config import BTagRecoCfg + CAtoGlobalWrapper(BTagRecoCfg, ConfigFlags) except Exception: treatException("Could not set up btagging reconstruction") btaggingOK=False - pass + finally: + Configurable.configurableRun3Behavior=0 pass # -- GitLab