From 38b6f1bfbee0e92660366cadb674071c0bccb2e6 Mon Sep 17 00:00:00 2001
From: Dave Casper <dcasper@uci.edu>
Date: Wed, 6 Feb 2019 18:59:13 -0800
Subject: [PATCH] Emulate ATLAS geometry initialization scripts

---
 .../GeoModel/FaserGeoModel/CMakeLists.txt     |  3 ++
 .../FaserGeoModel/python/GeoModelInit.py      | 30 +++++++++++++++++++
 .../python/SetGeometryVersion.py              | 24 +++++++++++++++
 .../GeoModel/FaserGeoModel/python/__init__.py |  1 +
 .../GeoModel/GeoModelSvc/share/geoDebug.py    | 30 +++----------------
 5 files changed, 62 insertions(+), 26 deletions(-)
 create mode 100644 DetectorDescription/GeoModel/FaserGeoModel/python/GeoModelInit.py
 create mode 100644 DetectorDescription/GeoModel/FaserGeoModel/python/SetGeometryVersion.py
 create mode 100644 DetectorDescription/GeoModel/FaserGeoModel/python/__init__.py

diff --git a/DetectorDescription/GeoModel/FaserGeoModel/CMakeLists.txt b/DetectorDescription/GeoModel/FaserGeoModel/CMakeLists.txt
index 47bc90e70..7e5a002f6 100644
--- a/DetectorDescription/GeoModel/FaserGeoModel/CMakeLists.txt
+++ b/DetectorDescription/GeoModel/FaserGeoModel/CMakeLists.txt
@@ -16,3 +16,6 @@ add_custom_target( geomDB ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/geomDB_sqlite
 # Install the generated file:
 install( FILES ${CMAKE_CURRENT_BINARY_DIR}/geomDB_sqlite
          DESTINATION ${CMAKE_INSTALL_DATADIR} )
+
+# Install python files from the package:
+atlas_install_python_modules( python/*.py )
diff --git a/DetectorDescription/GeoModel/FaserGeoModel/python/GeoModelInit.py b/DetectorDescription/GeoModel/FaserGeoModel/python/GeoModelInit.py
new file mode 100644
index 000000000..fd8bdd276
--- /dev/null
+++ b/DetectorDescription/GeoModel/FaserGeoModel/python/GeoModelInit.py
@@ -0,0 +1,30 @@
+# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+
+## @file: AtlasGeoModel/python/GeoModelInit.py
+## @brief: Encapsulate GeoModel configuration
+ 
+def _setupGeoModel():
+    from AthenaCommon.JobProperties import jobproperties
+    from AthenaCommon.AppMgr import theApp
+    from AthenaCommon.AppMgr import ServiceMgr as svcMgr
+ 
+    import DetDescrCnvSvc.DetStoreConfig
+    svcMgr.DetDescrCnvSvc.IdDictFromRDB = True
+
+    # Conditions DB setup and TagInfo
+    from IOVDbSvc.CondDB import conddb
+    import EventInfoMgt.EventInfoMgtInit
+ 
+    from GeoModelSvc.GeoModelSvcConf import GeoModelSvc
+    svcMgr += GeoModelSvc()
+    theApp.CreateSvc += [ "GeoModelSvc"]
+
+    # Set up detector tools here
+
+    pass
+
+## setup GeoModel at module import
+_setupGeoModel()
+
+## clean-up: avoid running multiple times this method
+del _setupGeoModel
diff --git a/DetectorDescription/GeoModel/FaserGeoModel/python/SetGeometryVersion.py b/DetectorDescription/GeoModel/FaserGeoModel/python/SetGeometryVersion.py
new file mode 100644
index 000000000..aeb522cc7
--- /dev/null
+++ b/DetectorDescription/GeoModel/FaserGeoModel/python/SetGeometryVersion.py
@@ -0,0 +1,24 @@
+# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+
+from AthenaCommon.JobProperties import jobproperties
+#from AthenaCommon.DetFlags    import DetFlags
+
+DDversion    = jobproperties.Global.DetDescrVersion()
+
+from GeoModelSvc.GeoModelSvcConf import GeoModelSvc
+from DetDescrCnvSvc.DetDescrCnvSvcConf import DetDescrCnvSvc
+
+GeoModelSvc = GeoModelSvc()
+DetDescrCnvSvc = DetDescrCnvSvc()
+
+GeoModelSvc.FaserVersion = DDversion
+
+# Set the SupportedGeometry flag
+from AthenaCommon.AppMgr import release_metadata
+rel_metadata = release_metadata()
+relversion = rel_metadata['release'].split('.')
+if len(relversion) < 3:
+    relversion = rel_metadata['base release'].split('.')
+
+print "SetGeometryVersion.py obtained major release version %s" % relversion[0]
+GeoModelSvc.SupportedGeometry = int(relversion[0])
diff --git a/DetectorDescription/GeoModel/FaserGeoModel/python/__init__.py b/DetectorDescription/GeoModel/FaserGeoModel/python/__init__.py
new file mode 100644
index 000000000..c3ff304a0
--- /dev/null
+++ b/DetectorDescription/GeoModel/FaserGeoModel/python/__init__.py
@@ -0,0 +1 @@
+#  __author__ = 'Dave Casper'
diff --git a/DetectorDescription/GeoModel/GeoModelSvc/share/geoDebug.py b/DetectorDescription/GeoModel/GeoModelSvc/share/geoDebug.py
index 73bdcab7c..fc263220d 100644
--- a/DetectorDescription/GeoModel/GeoModelSvc/share/geoDebug.py
+++ b/DetectorDescription/GeoModel/GeoModelSvc/share/geoDebug.py
@@ -15,36 +15,14 @@ globalflags.DetDescrVersion.set_Value_and_Lock( "FASER-00" )
 #DetFlags.detdescr.SCT_setOn()
 
 #include('ISF_Config/AllDet_detDescr.py')
-# from SetGeometryVersion
-from GeoModelSvc.GeoModelSvcConf import GeoModelSvc
-from DetDescrCnvSvc.DetDescrCnvSvcConf import DetDescrCnvSvc
-
-GeoModelSvc = GeoModelSvc()
-DetDescrCnvSvc = DetDescrCnvSvc()
 
-GeoModelSvc.FaserVersion = "FASER-00"
+from FaserGeoModel import SetGeometryVersion
+from FaserGeoModel import GeoModelInit
 
-from AthenaCommon.AppMgr import release_metadata
-rel_metadata = release_metadata()
-relversion = rel_metadata['release'].split('.')
-if len(relversion) < 3:
-    relversion = rel_metadata['base release'].split('.')
-
-print "SetGeometryVersion.py obtained major release version %s" % relversion[0]
-GeoModelSvc.SupportedGeometry = int(relversion[0])
+from GeoModelSvc.GeoModelSvcConf import GeoModelSvc
+GeoModelSvc = GeoModelSvc()
 GeoModelSvc.PrintMaterials = True
 
-# from GeoModelInit
-
-import DetDescrCnvSvc.DetStoreConfig
-svcMgr.DetDescrCnvSvc.IdDictFromRDB = True
-import EventInfoMgt.EventInfoMgtInit
-
-# from GeoModelInitStandard
-
-ServiceMgr += GeoModelSvc
-theApp.CreateSvc += [ "GeoModelSvc"]
-
 #DetFlags.Print()
 
 from AthenaCommon.AppMgr import theApp
-- 
GitLab