From 313262a9bad0dd88dfb9ed632be3b538e08067bd Mon Sep 17 00:00:00 2001
From: Nicholas Styles <nstyles@atlas07.desy.de>
Date: Tue, 22 Sep 2020 18:14:36 +0200
Subject: [PATCH] Add intial ITk flags implementation, and use to steer loading
 of local Geometry XML files

---
 Control/AthenaConfiguration/python/AllConfigFlags.py  |  7 ++++++-
 InnerDetector/InDetConfig/python/ITkConfigFlags.py    | 11 +++++++++++
 .../StripGeoModelXml/python/ITkStripGeoModelConfig.py |  3 +++
 3 files changed, 20 insertions(+), 1 deletion(-)
 create mode 100644 InnerDetector/InDetConfig/python/ITkConfigFlags.py

diff --git a/Control/AthenaConfiguration/python/AllConfigFlags.py b/Control/AthenaConfiguration/python/AllConfigFlags.py
index e44e8143355..89cfa2833b8 100644
--- a/Control/AthenaConfiguration/python/AllConfigFlags.py
+++ b/Control/AthenaConfiguration/python/AllConfigFlags.py
@@ -168,7 +168,12 @@ def _createCfgFlags():
     def __indet():
         from InDetConfig.InDetConfigFlags import createInDetConfigFlags
         return createInDetConfigFlags()
-    _addFlagsCategory(acf, "InDet", __indet, 'InDetConfig' )    
+    _addFlagsCategory(acf, "InDet", __indet, 'InDetConfig' )
+
+    def __itk():
+        from InDetConfig.ITkConfigFlags import createITkConfigFlags
+        return createITkConfigFlags()
+    _addFlagsCategory(acf, "ITk", __itk, 'InDetConfig' )
 
     def __muon():
         from MuonConfig.MuonConfigFlags import createMuonConfigFlags
diff --git a/InnerDetector/InDetConfig/python/ITkConfigFlags.py b/InnerDetector/InDetConfig/python/ITkConfigFlags.py
new file mode 100644
index 00000000000..077bb9d58ae
--- /dev/null
+++ b/InnerDetector/InDetConfig/python/ITkConfigFlags.py
@@ -0,0 +1,11 @@
+# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+
+from AthenaConfiguration.AthConfigFlags import AthConfigFlags
+# TODO: clean up flags, should only contain general settings but no alg config
+# TODO : Add some exta levels?
+
+def createITkConfigFlags():
+  itkcf=AthConfigFlags()
+  itkcf.addFlag("ITk.useLocalGeometry", False) #take geometry XML files from local instance rather than Detector Database, for development
+  itkcf.addFlag("ITk.stripGeometryFilename", 'ITkStrip.gmx')
+  return itkcf
diff --git a/InnerDetector/InDetDetDescr/StripGeoModelXml/python/ITkStripGeoModelConfig.py b/InnerDetector/InDetDetDescr/StripGeoModelXml/python/ITkStripGeoModelConfig.py
index 642c5a5b4f3..f4093350e75 100644
--- a/InnerDetector/InDetDetDescr/StripGeoModelXml/python/ITkStripGeoModelConfig.py
+++ b/InnerDetector/InDetDetDescr/StripGeoModelXml/python/ITkStripGeoModelConfig.py
@@ -15,6 +15,9 @@ def ITkStripGeometryCfg( flags ):
     #ITkStripDetectorTool.useDynamicAlignFolders = flags.GeoModel.Align.Dynamic
     ITkStripDetectorTool.Alignable = False # make this a flag? Set true as soon as decided on folder structure
     ITkStripDetectorTool.DetectorName = "ITkStrip"
+    if flags.ITk.useLocalGeometry:
+      #Setting this filename triggers reading from local file rather than DB  
+      ITkStripDetectorTool.GmxFilename = flags.ITk.stripGeometryFilename 
     geoModelSvc.DetectorTools += [ ITkStripDetectorTool ]
     
     """
-- 
GitLab