From a97741f25daa742b98a43e1bdc6d0c087e386212 Mon Sep 17 00:00:00 2001
From: Christian Nass <christian.nass@cern.ch>
Date: Sat, 27 Jun 2020 17:56:04 +0200
Subject: [PATCH] Adding ConfigFlags in runHLT_standalone to prevent self
 configuration from inputfile

---
 .../python/JetTagCalibConfig.py               | 75 +++++++++----------
 .../test_trig_mc_v1Dev_slice_bjet_build.py    |  3 +-
 .../TriggerJobOpts/share/runHLT_standalone.py |  8 +-
 .../Bjet/BjetFlavourTaggingConfiguration.py   |  7 +-
 .../HLTMenuConfig/Bjet/BjetSequenceSetup.py   | 21 +-----
 5 files changed, 48 insertions(+), 66 deletions(-)

diff --git a/PhysicsAnalysis/JetTagging/JetTagCalibration/python/JetTagCalibConfig.py b/PhysicsAnalysis/JetTagging/JetTagCalibration/python/JetTagCalibConfig.py
index 88cfbf63265b..f291c9aa18d0 100644
--- a/PhysicsAnalysis/JetTagging/JetTagCalibration/python/JetTagCalibConfig.py
+++ b/PhysicsAnalysis/JetTagging/JetTagCalibration/python/JetTagCalibConfig.py
@@ -1,7 +1,6 @@
 # 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,70 +39,64 @@ 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')
+
+        JetTagCalib = JetTagCalibCondAlg(jettagcalibcondalg, ReadKeyCalibPath=readkeycalibpath, HistosKey = histoskey, taggers = TaggerList, 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'))
 
-    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 = CalibrationChannelAliases, IP2D_TrackGradePartitions = grades, RNNIP_NetworkConfig = BTaggingFlags.RNNIPConfig)
+        result.addCondAlgo(JetTagCalib)
+        return result
 
 
+#    #conf2toConfigurable is not working for this at the moment, thats why we need old-config style for trigger
+#    #if this option would be working, need the following line in runHLT_standalone.py
+#    #CAtoGlobalWrapper(JetTagCalibCfg, ConfigFlags, scheme="Trig", TaggerList=ConfigFlags.BTagging.TrigTaggersList, ChannelAlias = alias)
+#
+#    from IOVDbSvc.IOVDbSvcConfig import addFolders
+#    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')
-        #if conddb.dbdata == 'COMP200':
-        #  conddb.addFolder("GLOBAL_ONL", "/GLOBAL/Onl/BTagCalib/RUN12", className='CondAttrListCollection')
-        #  if globalflags.DataSource()!='data':
-        #    conddb.addFolder("GLOBAL_ONL", "/GLOBAL/Onl/TrigBTagCalib/RUN12", className='CondAttrListCollection')
-        #elif conddb.isMC:
-        #  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
-
 #    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
-
-
+#
+#    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
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 a616193f4690..42aeda6d7c68 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,8 @@ 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;" -l DEBUG'
+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 7c4dc4e00d77..7be946a361b3 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/share/runHLT_standalone.py
@@ -130,6 +130,7 @@ if len(athenaCommonFlags.FilesInput())>0:
     af = athFile.fopen(athenaCommonFlags.FilesInput()[0])
     globalflags.InputFormat = 'bytestream' if af.fileinfos['file_type']=='bs' else 'pool'
     globalflags.DataSource = 'data' if af.fileinfos['evt_type'][0]=='IS_DATA' else 'geant4'
+    ConfigFlags.Input.isMC = False if globalflags.DataSource=='data' else True
     # Set isOnline=False for MC inputs unless specified in the options
     if globalflags.DataSource() != 'data' and 'isOnline' not in globals():
         log.info("Setting isOnline = False for MC input")
@@ -145,6 +146,7 @@ if len(athenaCommonFlags.FilesInput())>0:
 else:   # athenaHLT
     globalflags.InputFormat = 'bytestream'
     globalflags.DataSource = 'data' if not opt.setupForMC else 'data'
+    ConfigFlags.Input.isMC = False
     if '_run_number' not in dir():
         import PyUtils.AthFile as athFile
         from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
@@ -161,11 +163,15 @@ else:   # athenaHLT
 # Set final Cond/Geo tag based on input file, command line or default
 globalflags.DetDescrVersion = opt.setDetDescr or TriggerFlags.OnlineGeoTag()
 globalflags.ConditionsTag = opt.setGlobalTag or TriggerFlags.OnlineCondTag()
+ConfigFlags.GeoModel.AtlasVersion = opt.setDetDescr or TriggerFlags.OnlineGeoTag()
+ConfigFlags.IOVDb.GlobalTag = opt.setGlobalTag or TriggerFlags.OnlineCondTag()
 
 # Other defaults
 jobproperties.Beam.beamType = 'collisions'
+ConfigFlags.Beam.Type = 'collisions'
 jobproperties.Beam.bunchSpacing = 25
 globalflags.DatabaseInstance='CONDBR2' if opt.useCONDBR2 else 'COMP200'
+ConfigFlags.IOVDb.DatabaseInstance='CONDBR2' if opt.useCONDBR2 else 'COMP200'
 athenaCommonFlags.isOnline.set_Value_and_Lock(opt.isOnline)
 
 log.info('Configured the following global flags:')
@@ -588,7 +594,7 @@ 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
-    CAtoGlobalWrapper(JetTagCalibCfg, ConfigFlags, scheme="Trig", TaggerList=ConfigFlags.BTagging.TrigTaggersList, ChannelAlias = alias)
+    topSequence += 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 2f02109e3ffc..9219b742c39c 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetFlavourTaggingConfiguration.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetFlavourTaggingConfiguration.py
@@ -2,19 +2,14 @@
 
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
 from TrigEDMConfig.TriggerEDMRun3 import recordable
-#from AthenaCommon.Constants import DEBUG
+from AthenaConfiguration.AllConfigFlags import ConfigFlags
 
 def getFlavourTagging( inputJets, inputVertex, inputTracks ):
 
     acc = ComponentAccumulator()
 
-    #filesInput="/cvmfs/atlas-nightlies.cern.ch/repo/data/data-art/TrigP1Test/data18_13TeV.00360026.physics_EnhancedBias.merge.RAW._lb0151._SFO-1._0001.1"
     kwargs = {}
-    from AthenaConfiguration.AllConfigFlags import ConfigFlags
-    #ConfigFlags.Input.isMC=False
-    #ConfigFlags.Input.Files=filesInput.split(",")
 
-    #from BTagging.BTaggingConf import Analysis__BTagTrackAugmenterAlg
     from AthenaConfiguration.ComponentFactory import CompFactory
     Analysis__BTagTrackAugmenterAlg=CompFactory.Analysis.BTagTrackAugmenterAlg
     bTagTrackAugmenter = Analysis__BTagTrackAugmenterAlg( "Analysis__BTagTrackAugmenterAlg" )
diff --git a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetSequenceSetup.py b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetSequenceSetup.py
index 1283c77fe951..2a6df3d1356a 100644
--- a/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetSequenceSetup.py
+++ b/Trigger/TriggerCommon/TriggerMenuMT/python/HLTMenuConfig/Bjet/BjetSequenceSetup.py
@@ -3,9 +3,8 @@
 
 # menu components
 from AthenaCommon.CFElements import seqAND
-from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import MenuSequence, InViewReco
+from TriggerMenuMT.HLTMenuConfig.Menu.MenuComponents import MenuSequence
 from TrigEDMConfig.TriggerEDMRun3 import recordable
-from AthenaConfiguration.ComponentFactory import CompFactory
 
 #from AthenaCommon.Constants import DEBUG
 
@@ -69,31 +68,21 @@ def bJetStep2Sequence():
     from TriggerMenuMT.HLTMenuConfig.Bjet.BjetFlavourTaggingConfiguration import getFlavourTagging
     acc_flavourTaggingAlgs,bTaggingContainerName = getFlavourTagging( inputJets=InputMakerAlg.InViewJets, inputVertex=prmVtxKey, inputTracks=PTTrackParticles[0] )
     
-#======================This is running on Release 22.0.11, but not after Gaudi2 updates===================
-#    inViewReco = InViewReco("bJetBtagSequence", viewMaker=InputMakerAlg)
-#    inViewReco.addRecoAlg(secondStageAlgs)
-#    inViewReco.mergeReco(acc_flavourTaggingAlgs)
-#    acc_flavourTaggingAlgs.wasMerged()
-#    inViewReco.wasMerged()
-
-#    Configurable.configurableRun3Behavior=0
-
-#======================This is a new idea, since the function "conf2toConfigurable" was added recently, but is crashing when converting ATLASExtrapolator=====
     Configurable.configurableRun3Behavior=0
 
+    #Conversion of flavour-tagging algorithms from new to old-style
     from AthenaCommon.CFElements import findAllAlgorithms
     from AthenaConfiguration.ComponentAccumulator import conf2toConfigurable
     AllFlavourTaggingAlgs = []
     for alg in findAllAlgorithms(acc_flavourTaggingAlgs.getSequence("AthAlgSeq")):
         AllFlavourTaggingAlgs.append(conf2toConfigurable(alg))
 
-    acc_flavourTaggingAlgs.wasMerged()
+    acc_flavourTaggingAlgs.wasMerged() #Needed to remove error message; Next we add all algorithms to sequence so this is kind of an old-style merge
     bJetBtagSequence = seqAND( "bJetBtagSequence", secondStageAlgs + AllFlavourTaggingAlgs )
     InputMakerAlg.ViewNodeName = "bJetBtagSequence"
-
+    
     # Sequence
     BjetAthSequence = seqAND( "BjetAthSequence_step2",[InputMakerAlg,bJetBtagSequence] )
-#=============================================================================================================
 
     from TrigBjetHypo.TrigBjetHypoConf import TrigBjetBtagHypoAlgMT
     hypo = TrigBjetBtagHypoAlgMT( "TrigBjetBtagHypoAlg" )
@@ -110,8 +99,6 @@ def bJetStep2Sequence():
     hypo.MonTool = TrigBjetOnlineMonitoring()
 
     from TrigBjetHypo.TrigBjetBtagHypoTool import TrigBjetBtagHypoToolFromDict
-#    return MenuSequence( Sequence    = inViewReco.sequence(),
-#                         Maker       = inViewReco.inputMaker(),
     return MenuSequence( Sequence    = BjetAthSequence,
                          Maker       = InputMakerAlg,
                          Hypo        = hypo,
-- 
GitLab