From 8c7a39ee883825557cd811679a64aa48b4426d89 Mon Sep 17 00:00:00 2001
From: Christian Nass <christian.nass@cern.ch>
Date: Wed, 24 Jun 2020 14:22:25 +0200
Subject: [PATCH] ComponentAccumulator __setProperties add lines to also set
 NONE values

---
 .../python/ComponentAccumulator.py            |  3 +
 .../python/JetTagCalibConfig.py               | 73 +++++++++++++------
 .../test/exec_TrigUpgradeTest_art_athenaMT.sh |  1 -
 .../test/test_trigUpgr_full_menu_cf_build.sh  |  2 +-
 .../test_trig_mc_v1Dev_slice_bjet_build.py    |  2 +-
 .../TriggerJobOpts/share/runHLT_standalone.py |  3 +-
 .../Bjet/BjetFlavourTaggingConfiguration.py   |  2 +-
 7 files changed, 58 insertions(+), 28 deletions(-)

diff --git a/Control/AthenaConfiguration/python/ComponentAccumulator.py b/Control/AthenaConfiguration/python/ComponentAccumulator.py
index 6013dbf569fd..d3a43f99da0f 100644
--- a/Control/AthenaConfiguration/python/ComponentAccumulator.py
+++ b/Control/AthenaConfiguration/python/ComponentAccumulator.py
@@ -827,6 +827,9 @@ def __setProperties( destConfigurableInstance, sourceConf2Instance, indent="" ):
                 pass
             if pvalue is not None:
                 setattr( destConfigurableInstance, pname, conf2toConfigurable( pvalue, indent=__indent( indent ) ) )
+            else:
+                setattr( destConfigurableInstance, pname, pvalue )
+
         else: # plain data
             if isinstance(pvalue,(GaudiConfig2.semantics._ListHelper,GaudiConfig2.semantics._DictHelper)):
                 pvalue=pvalue.data
diff --git a/PhysicsAnalysis/JetTagging/JetTagCalibration/python/JetTagCalibConfig.py b/PhysicsAnalysis/JetTagging/JetTagCalibration/python/JetTagCalibConfig.py
index 36dbdff34013..88cfbf63265b 100644
--- a/PhysicsAnalysis/JetTagging/JetTagCalibration/python/JetTagCalibConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagCalibration/python/JetTagCalibConfig.py
@@ -1,6 +1,7 @@
 # Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 from AthenaConfiguration.ComponentFactory import CompFactory
 from BTagging.BTaggingFlags import BTaggingFlags
+from IOVDbSvc.IOVDbSvcConfig import addFolders
 
 def JetTagCalibCfg(ConfigFlags, scheme="", TaggerList = [], ChannelAlias = ""):
 
@@ -40,17 +41,42 @@ def JetTagCalibCfg(ConfigFlags, scheme="", TaggerList = [], ChannelAlias = ""):
     CalibrationChannelAliases += ChannelAlias
 
 
+    from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
+    result=ComponentAccumulator()
+    JetTagCalibCondAlg = CompFactory.Analysis.JetTagCalibCondAlg
+    jettagcalibcondalg = "JetTagCalibCondAlg"
+    connSchema = "GLOBAL_OFL"
     if scheme == "Trig":
-        JetTagCalibCondAlg,=CompFactory.getComps("Analysis__JetTagCalibCondAlg",)
-        jettagcalibcondalg = "JetTagCalibCondAlg"
         histoskey = "JetTagTrigCalibHistosKey"
         readkeycalibpath = "/GLOBAL/TrigBTagCalib/RUN12"
-        connSchema = "GLOBAL_OFL"
         if not ConfigFlags.Input.isMC:
             readkeycalibpath = readkeycalibpath.replace("/GLOBAL/","/GLOBAL/Onl/")
             connSchema = connSchema.replace("OFL","ONL")
-        from IOVDbSvc.CondDB import conddb
-        conddb.addFolder(connSchema, readkeycalibpath, className='CondAttrListCollection')
+    else:
+        histoskey = "JetTagCalibHistosKey"
+        readkeycalibpath = "/GLOBAL/BTagCalib/RUN12"
+        if not ConfigFlags.Input.isMC:
+            readkeycalibpath = readkeycalibpath.replace("/GLOBAL/","/GLOBAL/Onl/")
+            connSchema = connSchema.replace("_OFL","")
+
+    result.merge(addFolders(ConfigFlags,[readkeycalibpath], connSchema, className='CondAttrListCollection'))
+    JetTagCalib = JetTagCalibCondAlg(jettagcalibcondalg, ReadKeyCalibPath=readkeycalibpath, HistosKey = histoskey, taggers = TaggerList, channelAliases = BTaggingFlags.CalibrationChannelAliases, IP2D_TrackGradePartitions = grades, RNNIP_NetworkConfig = BTaggingFlags.RNNIPConfig)
+    result.addCondAlgo(JetTagCalib)
+    return result
+
+
+
+#    if scheme == "Trig":
+#        JetTagCalibCondAlg,=CompFactory.getComps("Analysis__JetTagCalibCondAlg",)
+#        jettagcalibcondalg = "JetTagCalibCondAlg"
+#        histoskey = "JetTagTrigCalibHistosKey"
+#        readkeycalibpath = "/GLOBAL/TrigBTagCalib/RUN12"
+#        connSchema = "GLOBAL_OFL"
+#        if not ConfigFlags.Input.isMC:
+#            readkeycalibpath = readkeycalibpath.replace("/GLOBAL/","/GLOBAL/Onl/")
+#            connSchema = connSchema.replace("OFL","ONL")
+#        from IOVDbSvc.CondDB import conddb
+#        conddb.addFolder(connSchema, readkeycalibpath, className='CondAttrListCollection')
         #if conddb.dbdata == 'COMP200':
         #  conddb.addFolder("GLOBAL_ONL", "/GLOBAL/Onl/BTagCalib/RUN12", className='CondAttrListCollection')
         #  if globalflags.DataSource()!='data':
@@ -59,24 +85,25 @@ def JetTagCalibCfg(ConfigFlags, scheme="", TaggerList = [], ChannelAlias = ""):
         #  conddb.addFolder("GLOBAL_OFL", "/GLOBAL/BTagCalib/RUN12", className='CondAttrListCollection')
         #  conddb.addFolder("GLOBAL_OFL", "/GLOBAL/TrigBTagCalib/RUN12", className='CondAttrListCollection')
 
-        JetTagCalib = JetTagCalibCondAlg(jettagcalibcondalg, ReadKeyCalibPath=readkeycalibpath, HistosKey = histoskey, taggers = ConfigFlags.BTagging.TrigTaggersList, channelAliases = CalibrationChannelAliases, IP2D_TrackGradePartitions = grades, RNNIP_NetworkConfig = BTaggingFlags.RNNIPConfig)
-        return JetTagCalib
+#        JetTagCalib = JetTagCalibCondAlg(jettagcalibcondalg, ReadKeyCalibPath=readkeycalibpath, HistosKey = histoskey, taggers = ConfigFlags.BTagging.TrigTaggersList, channelAliases = CalibrationChannelAliases, IP2D_TrackGradePartitions = grades, RNNIP_NetworkConfig = BTaggingFlags.RNNIPConfig)
+#        return JetTagCalib
 
-    else:
-        from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
-        result=ComponentAccumulator()
-        JetTagCalibCondAlg = CompFactory.Analysis.JetTagCalibCondAlg
-        jettagcalibcondalg = "JetTagCalibCondAlg"
-        histoskey = "JetTagCalibHistosKey"
-        readkeycalibpath = "/GLOBAL/BTagCalib/RUN12"
-        connSchema = "GLOBAL_OFL"
-        if not ConfigFlags.Input.isMC:
-            readkeycalibpath = readkeycalibpath.replace("/GLOBAL/","/GLOBAL/Onl/")
-            connSchema = connSchema.replace("_OFL","")
-        from IOVDbSvc.IOVDbSvcConfig import addFolders
-        result.merge(addFolders(ConfigFlags,[readkeycalibpath], connSchema, className='CondAttrListCollection'))
+#    else:
+#        from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
+#        result=ComponentAccumulator()
+#        JetTagCalibCondAlg = CompFactory.Analysis.JetTagCalibCondAlg
+#        jettagcalibcondalg = "JetTagCalibCondAlg"
+#        histoskey = "JetTagCalibHistosKey"
+#        readkeycalibpath = "/GLOBAL/BTagCalib/RUN12"
+#        connSchema = "GLOBAL_OFL"
+#        if not ConfigFlags.Input.isMC:
+#            readkeycalibpath = readkeycalibpath.replace("/GLOBAL/","/GLOBAL/Onl/")
+#            connSchema = connSchema.replace("_OFL","")
+#        from IOVDbSvc.IOVDbSvcConfig import addFolders
+#        result.merge(addFolders(ConfigFlags,[readkeycalibpath], connSchema, className='CondAttrListCollection'))
+
+#        JetTagCalib = JetTagCalibCondAlg(jettagcalibcondalg, ReadKeyCalibPath=readkeycalibpath, HistosKey = histoskey, taggers = TaggerList, channelAliases = BTaggingFlags.CalibrationChannelAliases, IP2D_TrackGradePartitions = grades, RNNIP_NetworkConfig = BTaggingFlags.RNNIPConfig)
+#        result.addCondAlgo(JetTagCalib)
+#        return result
 
-        JetTagCalib = JetTagCalibCondAlg(jettagcalibcondalg, ReadKeyCalibPath=readkeycalibpath, HistosKey = histoskey, taggers = TaggerList, channelAliases = BTaggingFlags.CalibrationChannelAliases, IP2D_TrackGradePartitions = grades, RNNIP_NetworkConfig = BTaggingFlags.RNNIPConfig)
-        result.addCondAlgo(JetTagCalib)
-        return result
 
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/exec_TrigUpgradeTest_art_athenaMT.sh b/Trigger/TrigValidation/TrigUpgradeTest/test/exec_TrigUpgradeTest_art_athenaMT.sh
index 9c0f0c315ca8..77ec8f579678 100755
--- a/Trigger/TrigValidation/TrigUpgradeTest/test/exec_TrigUpgradeTest_art_athenaMT.sh
+++ b/Trigger/TrigValidation/TrigUpgradeTest/test/exec_TrigUpgradeTest_art_athenaMT.sh
@@ -115,7 +115,6 @@ else
   --filesInput "${DS}" \
   --evtMax ${EVENTS} \
   --skipEvents ${SKIPEVENTS} \
-  -l DEBUG \
   -c "${EXTRA}" \
   ${JOBOPTION} >${JOB_LOG} 2>&1
   ) 2>&1
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_cf_build.sh b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_cf_build.sh
index e6409262207d..cd18c2a59066 100755
--- a/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_cf_build.sh
+++ b/Trigger/TrigValidation/TrigUpgradeTest/test/test_trigUpgr_full_menu_cf_build.sh
@@ -5,7 +5,7 @@
 # Skipping art-output which has no effect for build tests.
 # If you create a grid version, check art-output in existing grid tests.
 
-export EVENTS=2500
+export EVENTS=20
 export THREADS=1
 export SLOTS=1
 export JOBOPTION="TrigUpgradeTest/full_menu_cf.py"
diff --git a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bjet_build.py b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bjet_build.py
index d6fca0ae3d6b..a616193f4690 100755
--- a/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bjet_build.py
+++ b/Trigger/TrigValidation/TriggerTest/test/test_trig_mc_v1Dev_slice_bjet_build.py
@@ -14,7 +14,7 @@ ex.job_options = 'TriggerJobOpts/runHLT_standalone.py'
 ex.input = 'ttbar'
 ex.threads = 1
 # LS2_v1 soon to be renamed to Dev_pp_run3_v1
-ex.args = '-c "setMenu=\'LS2_v1\';doEmptyMenu=True;doBjetSlice=True;doWriteBS=False;doWriteRDOTrigger=True;"'
+ex.args = '-c "setMenu=\'LS2_v1\';doEmptyMenu=True;doBjetSlice=True;doWriteBS=False;doWriteRDOTrigger=True;" -l DEBUG'
 
 test = Test.Test()
 test.art_type = 'build'
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py
index 1a7ceea1c73c..7c4dc4e00d77 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py
@@ -585,9 +585,10 @@ CAtoGlobalWrapper(triggerIDCCacheCreatorsCfg,ConfigFlags)
 
 # B-jet output file
 if opt.doBjetSlice or opt.forceEnableAllChains:
+    print("In JetTagCalibCfg")
     from JetTagCalibration.JetTagCalibConfig import JetTagCalibCfg
     alias = ["HLT_b->HLT_b,AntiKt4EMTopo"] #"HLT_bJets" is the name of the b-jet JetContainer
-    topSequence+=JetTagCalibCfg(ConfigFlags, scheme="Trig", ChannelAlias = alias)
+    CAtoGlobalWrapper(JetTagCalibCfg, ConfigFlags, scheme="Trig", TaggerList=ConfigFlags.BTagging.TrigTaggersList, ChannelAlias = alias)
 
 # Trigger output
 if opt.doWriteBS or opt.doWriteRDOTrigger:
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetFlavourTaggingConfiguration.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetFlavourTaggingConfiguration.py
index 13123e7ed9ac..2f02109e3ffc 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetFlavourTaggingConfiguration.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetFlavourTaggingConfiguration.py
@@ -54,7 +54,7 @@ def getFlavourTagging( inputJets, inputVertex, inputTracks ):
         acc.merge(JetSecVertexingAlg)
     
     JetBTaggingAlg = JetBTaggingAlgCfg(ConfigFlags, JetCollection = inputJets.replace("Jets",""), PrimaryVertexCollectionName=inputVertex, TaggerList = ConfigFlags.BTagging.TrigTaggersList, SetupScheme = "Trig", SVandAssoc = SecVertexingAndAssociators, **kwargs)
-    BTaggingAlg = JetBTaggingAlg.getEventAlgo((ConfigFlags.BTagging.OutputFiles.Prefix + inputJets.replace("Jets","") + ConfigFlags.BTagging.GeneralToolSuffix).lower()) #Defined in JetBTaggingAlgConfig.py; Ends up to be "btagging_hlt_bjets"
+    BTaggingAlg = JetBTaggingAlg.getEventAlgo((ConfigFlags.BTagging.OutputFiles.Prefix + inputJets.replace("Jets","") + ConfigFlags.BTagging.GeneralToolSuffix).lower()) #Defined in JetBTaggingAlgConfig.py; Ends up to be "btagging_hlt_b(Jets)"
     BTaggingAlg.BTaggingCollectionName = recordable( btagname )
     BTaggingAlg.BTagJFVtxCollectionName = btagname_JFVtx
     BTaggingAlg.BTagSVCollectionName = btagname_SecVtx
-- 
GitLab