From 0abecf4aaede03f10d577eb2e0eb61bea3a0aabb Mon Sep 17 00:00:00 2001
From: Tomasz Bold <tomasz.bold@gmail.com>
Date: Wed, 20 Nov 2019 13:45:20 +0000
Subject: [PATCH] Made the output do* flags depend on the output file names

---
 .../python/AllConfigFlags.py                  | 26 ++++++++++---------
 .../test/EventInfoOverlayLegacy_test.py       |  1 +
 .../test/EventInfoOverlay_test.py             |  1 +
 .../test/PixelOverlayConfig_test.py           |  2 +-
 .../test/SCTOverlayConfig_test.py             |  2 +-
 .../test/TRTOverlayConfig_test.py             |  2 +-
 .../TileL2Algs/python/TileL2Config.py         |  2 +-
 .../python/TileDigitsFilterConfig.py          |  1 +
 .../python/TileCellMakerConfig.py             |  2 +-
 .../python/TileRawChannelMakerConfig.py       |  2 +-
 .../TileSimAlgs/python/TileHitToTTL1Config.py |  2 +-
 11 files changed, 24 insertions(+), 19 deletions(-)

diff --git a/Control/AthenaConfiguration/python/AllConfigFlags.py b/Control/AthenaConfiguration/python/AllConfigFlags.py
index d60f1a1e362..ab0329c534c 100644
--- a/Control/AthenaConfiguration/python/AllConfigFlags.py
+++ b/Control/AthenaConfiguration/python/AllConfigFlags.py
@@ -63,19 +63,21 @@ def _createCfgFlags():
         (25./prevFlags.Beam.BunchSpacing)) # former flobal.estimatedLuminosity
 
 
-    acf.addFlag('Output.doESD', False) # produce ESD containers
-    acf.addFlag('Output.doWriteRDO', False) # write out RDO file
-    acf.addFlag('Output.doWriteESD', False) # write out ESD file
-    acf.addFlag('Output.doWriteAOD', False) # write out AOD file
-    acf.addFlag('Output.doWriteBS', False) # write out RDO ByteStream file
-
-    acf.addFlag('Output.EVNTFileName','myEVNT.pool.root')
-    acf.addFlag('Output.HITSFileName','myHITS.pool.root')
-    acf.addFlag('Output.RDOFileName','myRDO.pool.root')
-    acf.addFlag('Output.ESDFileName','myESD.pool.root')
-    acf.addFlag('Output.AODFileName','myAOD.pool.root')
-    acf.addFlag('Output.HISTFileName','myHIST.root')
+
+    acf.addFlag('Output.EVNTFileName', '')
+    acf.addFlag('Output.HITSFileName', '')
+    acf.addFlag('Output.RDOFileName',  '')
+    acf.addFlag('Output.ESDFileName',  '')
+    acf.addFlag('Output.AODFileName',  '')
+    acf.addFlag('Output.HISTFileName', '')
     
+
+    acf.addFlag('Output.doWriteRDO', lambda prevFlags: bool(prevFlags.Output.RDOFileName)) # write out RDO file
+    acf.addFlag('Output.doWriteESD', lambda prevFlags: bool(prevFlags.Output.ESDFileName)) # write out ESD file
+    acf.addFlag('Output.doESD',      lambda prevFlags: prevFlags.Output.doWriteESD) # produce ESD containers
+    acf.addFlag('Output.doWriteAOD', lambda prevFlags: bool(prevFlags.Output.AODFileName)) # write out AOD file
+    acf.addFlag('Output.doWriteBS',  False) # write out RDO ByteStream file
+
     # Might move this elsewhere in the future.
     # Some flags from https://gitlab.cern.ch/atlas/athena/blob/master/Tracking/TrkDetDescr/TrkDetDescrSvc/python/TrkDetDescrJobProperties.py
     # (many, e.g. those that set properties of one tool are not needed)
diff --git a/Event/EventOverlay/OverlayCommonAlgs/test/EventInfoOverlayLegacy_test.py b/Event/EventOverlay/OverlayCommonAlgs/test/EventInfoOverlayLegacy_test.py
index 4d2b8a4c975..84046346d7b 100755
--- a/Event/EventOverlay/OverlayCommonAlgs/test/EventInfoOverlayLegacy_test.py
+++ b/Event/EventOverlay/OverlayCommonAlgs/test/EventInfoOverlayLegacy_test.py
@@ -26,6 +26,7 @@ ConfigFlags.Input.SecondaryFiles = defaultTestFiles.HITS
 ConfigFlags.IOVDb.GlobalTag = "OFLCOND-MC16-SDR-16"
 ConfigFlags.Concurrency.NumThreads = 0
 ConfigFlags.Overlay.DataOverlay = False
+ConfigFlags.Output.RDOFileName="myRDO.pool.root"
 ConfigFlags.lock()
 
 # Function tests
diff --git a/Event/EventOverlay/OverlayCommonAlgs/test/EventInfoOverlay_test.py b/Event/EventOverlay/OverlayCommonAlgs/test/EventInfoOverlay_test.py
index 7607f4a96ba..284a15271ce 100755
--- a/Event/EventOverlay/OverlayCommonAlgs/test/EventInfoOverlay_test.py
+++ b/Event/EventOverlay/OverlayCommonAlgs/test/EventInfoOverlay_test.py
@@ -26,6 +26,7 @@ ConfigFlags.Input.SecondaryFiles = ["/cvmfs/atlas-nightlies.cern.ch/repo/data/da
 ConfigFlags.IOVDb.GlobalTag = "OFLCOND-MC16-SDR-16"
 ConfigFlags.Concurrency.NumThreads = 0
 ConfigFlags.Overlay.DataOverlay = False
+ConfigFlags.Output.RDOFileName="myRDO.pool.root"
 ConfigFlags.lock()
 
 # Function tests
diff --git a/InnerDetector/InDetRawAlgs/InDetOverlay/test/PixelOverlayConfig_test.py b/InnerDetector/InDetRawAlgs/InDetOverlay/test/PixelOverlayConfig_test.py
index be48f3288cb..8a1b85221fd 100755
--- a/InnerDetector/InDetRawAlgs/InDetOverlay/test/PixelOverlayConfig_test.py
+++ b/InnerDetector/InDetRawAlgs/InDetOverlay/test/PixelOverlayConfig_test.py
@@ -25,7 +25,7 @@ ConfigFlags.Input.SecondaryFiles = defaultTestFiles.HITS
 ConfigFlags.IOVDb.GlobalTag = "OFLCOND-MC16-SDR-16"
 ConfigFlags.GeoModel.Align.Dynamic = False
 ConfigFlags.Overlay.DataOverlay = False
-
+ConfigFlags.Output.RDOFileName = "myRDO.pool.root"
 # Flags relating to multithreaded execution
 ConfigFlags.Concurrency.NumThreads = nThreads
 if nThreads > 0:
diff --git a/InnerDetector/InDetRawAlgs/InDetOverlay/test/SCTOverlayConfig_test.py b/InnerDetector/InDetRawAlgs/InDetOverlay/test/SCTOverlayConfig_test.py
index d571d7400c7..1ab20eb1600 100755
--- a/InnerDetector/InDetRawAlgs/InDetOverlay/test/SCTOverlayConfig_test.py
+++ b/InnerDetector/InDetRawAlgs/InDetOverlay/test/SCTOverlayConfig_test.py
@@ -25,7 +25,7 @@ ConfigFlags.Input.SecondaryFiles = defaultTestFiles.HITS
 ConfigFlags.IOVDb.GlobalTag = "OFLCOND-MC16-SDR-16"
 ConfigFlags.GeoModel.Align.Dynamic = False
 ConfigFlags.Overlay.DataOverlay = False
-
+ConfigFlags.Output.RDOFileName = "myRDO.pool.root"
 # Flags relating to multithreaded execution
 ConfigFlags.Concurrency.NumThreads = nThreads
 if nThreads > 0:
diff --git a/InnerDetector/InDetRawAlgs/InDetOverlay/test/TRTOverlayConfig_test.py b/InnerDetector/InDetRawAlgs/InDetOverlay/test/TRTOverlayConfig_test.py
index 55613c239c2..5e66224b7fc 100755
--- a/InnerDetector/InDetRawAlgs/InDetOverlay/test/TRTOverlayConfig_test.py
+++ b/InnerDetector/InDetRawAlgs/InDetOverlay/test/TRTOverlayConfig_test.py
@@ -26,7 +26,7 @@ ConfigFlags.IOVDb.GlobalTag = "OFLCOND-MC16-SDR-16"
 ConfigFlags.GeoModel.Align.Dynamic = False
 ConfigFlags.Overlay.DataOverlay = False
 ConfigFlags.Detector.OverlayTRT = True
-
+ConfigFlags.Output.RDOFileName = "myRDO.pool.root"
 # Flags relating to multithreaded execution
 ConfigFlags.Concurrency.NumThreads = nThreads
 if nThreads > 0:
diff --git a/TileCalorimeter/TileL2Algs/python/TileL2Config.py b/TileCalorimeter/TileL2Algs/python/TileL2Config.py
index a6ad835a264..9caec96f361 100644
--- a/TileCalorimeter/TileL2Algs/python/TileL2Config.py
+++ b/TileCalorimeter/TileL2Algs/python/TileL2Config.py
@@ -102,8 +102,8 @@ if __name__ == "__main__":
     log.setLevel(DEBUG)
 
     ConfigFlags.Input.Files = defaultTestFiles.RAW
-
     ConfigFlags.fillFromArgs()
+    ConfigFlags.Output.ESDFileName = "myESD.pool.root"
     ConfigFlags.lock()
 
     # Construct our accumulator to run
diff --git a/TileCalorimeter/TileRecAlgs/python/TileDigitsFilterConfig.py b/TileCalorimeter/TileRecAlgs/python/TileDigitsFilterConfig.py
index e5e7978e668..89b71c1c879 100644
--- a/TileCalorimeter/TileRecAlgs/python/TileDigitsFilterConfig.py
+++ b/TileCalorimeter/TileRecAlgs/python/TileDigitsFilterConfig.py
@@ -68,6 +68,7 @@ if __name__ == "__main__":
     log.setLevel(DEBUG)
 
     ConfigFlags.Input.Files = defaultTestFiles.RAW
+    ConfigFlags.Output.ESDFileName = "myESD.pool.root"
     ConfigFlags.Tile.RunType = 'PHY'
     ConfigFlags.lock()
 
diff --git a/TileCalorimeter/TileRecUtils/python/TileCellMakerConfig.py b/TileCalorimeter/TileRecUtils/python/TileCellMakerConfig.py
index 34f45072ddf..3795ee90199 100644
--- a/TileCalorimeter/TileRecUtils/python/TileCellMakerConfig.py
+++ b/TileCalorimeter/TileRecUtils/python/TileCellMakerConfig.py
@@ -121,7 +121,7 @@ if __name__ == "__main__":
     ConfigFlags.Tile.RunType = 'PHY'
     ConfigFlags.Tile.doOptATLAS = True
     ConfigFlags.Tile.NoiseFilter = 1
-
+    ConfigFlags.Output.ESDFileName = "myESD.pool.root"
     ConfigFlags.fillFromArgs()
 
     ConfigFlags.lock()
diff --git a/TileCalorimeter/TileRecUtils/python/TileRawChannelMakerConfig.py b/TileCalorimeter/TileRecUtils/python/TileRawChannelMakerConfig.py
index f8c71dbfda6..a53dbc2ea45 100644
--- a/TileCalorimeter/TileRecUtils/python/TileRawChannelMakerConfig.py
+++ b/TileCalorimeter/TileRecUtils/python/TileRawChannelMakerConfig.py
@@ -158,7 +158,7 @@ if __name__ == "__main__":
     ConfigFlags.Tile.doOpt2 = True
     ConfigFlags.Tile.doOptATLAS = True
     ConfigFlags.Tile.NoiseFilter = 1
-
+    ConfigFlags.Output.ESDFileName = "myESD.pool.root"
     ConfigFlags.fillFromArgs()
 
     ConfigFlags.lock()
diff --git a/TileCalorimeter/TileSimAlgs/python/TileHitToTTL1Config.py b/TileCalorimeter/TileSimAlgs/python/TileHitToTTL1Config.py
index 6e0273d9187..c3a212a632a 100644
--- a/TileCalorimeter/TileSimAlgs/python/TileHitToTTL1Config.py
+++ b/TileCalorimeter/TileSimAlgs/python/TileHitToTTL1Config.py
@@ -127,7 +127,7 @@ if __name__ == "__main__":
     ConfigFlags.Input.Files = defaultTestFiles.HITS
     ConfigFlags.IOVDb.GlobalTag = 'OFLCOND-MC16-SDR-16'
     ConfigFlags.Digitization.Pileup = False
-
+    ConfigFlags.Output.RDOFileName = "myRDO.pool.root"
     ConfigFlags.fillFromArgs()
     ConfigFlags.lock()
 
-- 
GitLab