From b144b172991bbee153cf8e9a926c510ccadb0ecd Mon Sep 17 00:00:00 2001
From: John Chapman <jchapman@cern.ch>
Date: Tue, 11 Aug 2020 12:42:47 +0200
Subject: [PATCH] DetectorConfigFlags updates

Rename `ConfigFlags.Detector.(Pixel/SCT/TRT)On` to  `ConfigFlags.Detector.Reco(Pixel/SCT/TRT)`
to make the meaning of the flag clearer. Add `ConfigFlags.Detector.RecoIBL` as discussed.
---
 .../python/DetectorConfigFlags.py                | 16 +++++++++++-----
 .../InDetConfig/python/InDetConfigFlags.py       |  4 ++--
 .../InDetConfig/python/InDetRecToolConfig.py     |  6 +++---
 3 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/Control/AthenaConfiguration/python/DetectorConfigFlags.py b/Control/AthenaConfiguration/python/DetectorConfigFlags.py
index 7e8fa160fb2b..b66f9323971b 100644
--- a/Control/AthenaConfiguration/python/DetectorConfigFlags.py
+++ b/Control/AthenaConfiguration/python/DetectorConfigFlags.py
@@ -133,9 +133,15 @@ def createDetectorConfigFlags():
                                                              prevFlags.Detector.OverlaysTGC or prevFlags.Detector.OverlayMM))
     dcf.addFlag('Detector.Overlay',      lambda prevFlags : (prevFlags.Detector.OverlayID or prevFlags.Detector.OverlayCalo or
                                                              prevFlags.Detector.OverlayMuon))
-    # flag to generally turn off the Pixel detector
-    # TODO: can these replace other (more fine-grained) flags that only turned off subdetector systems for certain tasks (e.g. DCS)?
-    dcf.addFlag('Detector.PixelOn', True)
-    dcf.addFlag('Detector.SCTOn', True)
-    dcf.addFlag('Detector.TRTOn', True)
+
+    dcf.addFlag('Detector.RecoBCM',   False)
+    dcf.addFlag('Detector.RecoIBL', lambda prevFlags : (prevFlags.Detector.RecoPixel and prevFlags.GeoModel.Run in ["RUN2", "RUN3"])) # TODO Review if a separate RecoIBL flag is really required here
+    dcf.addFlag('Detector.RecoPixel', False)
+    dcf.addFlag('Detector.RecoSCT',   False)
+    dcf.addFlag('Detector.RecoTRT',   False)
+    dcf.addFlag('Detector.RecoID',    lambda prevFlags : (prevFlags.Detector.RecoBCM or prevFlags.Detector.RecoIBL or
+                                                          prevFlags.Detector.RecoPixel or prevFlags.Detector.RecoSCT or
+                                                          prevFlags.Detector.RecoTRT))
+#    dcf.addFlag('Detector.Reco',      lambda prevFlags : (prevFlags.Detector.RecoID or prevFlags.Detector.RecoCalo or
+#                                                          prevFlags.Detector.RecoMuon))
     return dcf
diff --git a/InnerDetector/InDetConfig/python/InDetConfigFlags.py b/InnerDetector/InDetConfig/python/InDetConfigFlags.py
index 1c3c920e8dcb..fc36ba07c72b 100644
--- a/InnerDetector/InDetConfig/python/InDetConfigFlags.py
+++ b/InnerDetector/InDetConfig/python/InDetConfigFlags.py
@@ -181,6 +181,6 @@ def createInDetConfigFlags():
   icf.addFlag("InDet.doHIP300", False) # Switch for running MinBias settings with a 300 MeV pT cut (for Heavy Ion Proton)
   icf.addFlag("InDet.checkDeadElementsOnTrack", True) # Enable check for dead modules and FEs 
   icf.addFlag("InDet.doDigitalROTCreation",False) # use PixelClusterOnTrackToolDigital during ROT creation to save CPU 
-  icf.addFlag("InDet.usePixelDCS",  lambda prevFlags : (prevFlags.InDet.useDCS and prevFlags.Detector.PixelOn))
-  icf.addFlag("InDet.useSctDCS",  lambda prevFlags : (prevFlags.InDet.useDCS and prevFlags.Detector.SCTOn))
+  icf.addFlag("InDet.usePixelDCS",  lambda prevFlags : (prevFlags.InDet.useDCS and prevFlags.Detector.RecoPixel))
+  icf.addFlag("InDet.useSctDCS",  lambda prevFlags : (prevFlags.InDet.useDCS and prevFlags.Detector.RecoSCT))
   return icf
diff --git a/InnerDetector/InDetConfig/python/InDetRecToolConfig.py b/InnerDetector/InDetConfig/python/InDetRecToolConfig.py
index d14bcad6591e..08ed16b2ed40 100644
--- a/InnerDetector/InDetConfig/python/InDetRecToolConfig.py
+++ b/InnerDetector/InDetConfig/python/InDetRecToolConfig.py
@@ -27,7 +27,7 @@ def InDetBoundaryCheckToolCfg(flags, name='InDetBoundaryCheckTool', **kwargs):
   result = ComponentAccumulator()
 
   if 'SctSummaryTool' not in kwargs:
-    if flags.Detector.SCTOn:
+    if flags.Detector.RecoSCT:
       tmpAcc = InDetSCT_ConditionsSummaryToolCfg(flags)
       kwargs.setdefault("SctSummaryTool", tmpAcc.popPrivateTools())
       result.merge(tmpAcc)
@@ -39,8 +39,8 @@ def InDetBoundaryCheckToolCfg(flags, name='InDetBoundaryCheckTool', **kwargs):
     kwargs.setdefault("PixelLayerTool", tmpAcc.getPrimary())
     result.merge(tmpAcc)
 
-  kwargs.setdefault("UsePixel", flags.Detector.PixelOn)
-  kwargs.setdefault("UseSCT", flags.Detector.SCTOn)
+  kwargs.setdefault("UsePixel", flags.Detector.RecoPixel)
+  kwargs.setdefault("UseSCT", flags.Detector.RecoSCT)
 
   indet_boundary_check_tool = CompFactory.InDet.InDetBoundaryCheckTool(name, **kwargs)
   result.setPrivateTools(indet_boundary_check_tool)
-- 
GitLab