From a3201723e115494d90a4980617e6ffeb0548f5e6 Mon Sep 17 00:00:00 2001
From: Tim Martin <Tim.Martin@cern.ch>
Date: Wed, 24 Mar 2021 18:10:39 +0100
Subject: [PATCH] Also support conversion of MC

---
 .../python/TriggerConfigGetter.py             | 24 ++++++++++++++-----
 .../TriggerJobOpts/python/TriggerFlags.py     |  1 +
 2 files changed, 19 insertions(+), 6 deletions(-)

diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigGetter.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigGetter.py
index c05805d0ac63..37e61805f231 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigGetter.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerConfigGetter.py
@@ -436,7 +436,7 @@ class TriggerConfigGetter(Configured):
             if ConfigFlags.Trigger.doEDMVersionConversion:
                 # also save the menu in JSON format
                 from RecExConfig.AutoConfiguration  import GetRunNumber, GetLBNumber
-                dbKeys = fetchRun3ConfigFiles(GetRunNumber(), GetLBNumber())
+                dbKeys = fetchRun3ConfigFiles(isMC=self.readMC, run=GetRunNumber(), lb=GetLBNumber())
 
                 from TrigConfigSvc.TrigConfigSvcConf import TrigConf__LVL1ConfigSvc, TrigConf__HLTConfigSvc, TrigConf__HLTPrescaleCondAlg, TrigConf__L1PrescaleCondAlg
                 from AthenaCommon.AlgSequence import AthSequencer
@@ -528,11 +528,23 @@ class TriggerConfigGetter(Configured):
             topAlgs += conf2toConfigurable( enhancedBiasWeightCompAlg )
 
 
-def fetchRun3ConfigFiles(run, lb):
+""" Retrieve Run2 trigger configuration from the database and save as Run3 .JSON files with known name.
+    The Run3 offline trigger infrastructure should then be configured from these .JSON files.
+"""
+def fetchRun3ConfigFiles(isMC, run, lb):
     import subprocess
-    from TrigConfigSvc.TrigConfigSvcCfg import getTrigConfFromCool
-    triggerDBKeys = getTrigConfFromCool(run, lb)
-    triggerDBKeys['DB'] = 'TRIGGERDB' if run > 230000 else 'TRIGGERDB_RUN1' 
+    triggerDBKeys = {}
+    if isMC:
+        triggerDBKeys['DB'] = TriggerFlags.triggerDbConnection()
+        triggerDBKeys['SMK'] = TriggerFlags.triggerDbKeys()[0]
+        triggerDBKeys['L1PSK'] = TriggerFlags.triggerDbKeys()[1]
+        triggerDBKeys['HLTPSK'] = TriggerFlags.triggerDbKeys()[2]
+        triggerDBKeys['BGSK'] = TriggerFlags.triggerDbKeys()[3]
+    else:
+        from TrigConfigSvc.TrigConfigSvcCfg import getTrigConfFromCool
+        triggerDBKeys = getTrigConfFromCool(run, lb)
+        triggerDBKeys['DB'] = 'TRIGGERDB' if run > 230000 else 'TRIGGERDB_RUN1'
+
     filesFetchStatus = subprocess.run("TrigConfReadWrite -i {DB} {SMK},{L1PSK},{HLTPSK},{BGSK} -o r3json > Run3ConfigFetchJSONFiles.log".format(**triggerDBKeys), shell=True)
     assert filesFetchStatus.returncode == 0, "TrigConfReadWrite failed to fetch JSON files"
     return triggerDBKeys
@@ -540,7 +552,7 @@ def fetchRun3ConfigFiles(run, lb):
 
 
 if __name__ == "__main__":
-    keys = fetchRun3ConfigFiles(360026, 151)
+    keys = fetchRun3ConfigFiles(isMC=False, run=360026, lb=151)
     for k,v in {"SMK" : 2749, "L1PSK" : 23557, "HLTPSK" : 17824, "BGSK" : 2181}.items():
         assert  k in keys, "Missing key {}".format(k)
         assert v == keys[k], "Wrong value {}".format(v)
\ No newline at end of file
diff --git a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py
index 23d2b89dca5c..c6c00c0674b1 100644
--- a/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py
+++ b/Trigger/TriggerCommon/TriggerJobOpts/python/TriggerFlags.py
@@ -789,6 +789,7 @@ class triggerMenuSetup(JobProperty):
         'Physics_pp_run3_v1', # Physics_pp_run3 for AthenaMT
         'PhysicsP1_HI_run3_v1',  # PhysicsP1_HI_run3 for AthenaMT
         'Dev_HI_run3_v1', # Dev_HI_run3 for AthenaMT
+        'MC_pp_v7_TriggerValidation_mc_prescale', # MC trigger simulated in 21.0 but reconstructed in 22.0
         'MC_pp_v8', 'Physics_pp_v8', 'MC_pp_v8_no_prescale', 'MC_pp_v8_tight_mc_prescale', 'MC_pp_v8_tightperf_mc_prescale', 'MC_pp_v8_loose_mc_prescale','Physics_pp_v8_tight_physics_prescale',
         'Cosmic_run3_v1',
         'LS2_v1_TriggerValidation_prescale',
-- 
GitLab