diff --git a/Calorimeter/CaloRec/python/CaloClusterTopoGetter.py b/Calorimeter/CaloRec/python/CaloClusterTopoGetter.py
index 3bee11446d5c8cf340cf8806f8dda52dddc567ed..19abbaa981f4e0c09cd815f6c9fa3381e62d5528 100644
--- a/Calorimeter/CaloRec/python/CaloClusterTopoGetter.py
+++ b/Calorimeter/CaloRec/python/CaloClusterTopoGetter.py
@@ -368,7 +368,7 @@ class CaloClusterTopoGetter ( Configured )  :
         TopoMaker.SeedCutsInT = jobproperties.CaloTopoClusterFlags.doTimeCut()
         TopoMaker.CutOOTseed = jobproperties.CaloTopoClusterFlags.extendTimeCut() and jobproperties.CaloTopoClusterFlags.doTimeCut()
         TopoMaker.UseTimeCutUpperLimit = jobproperties.CaloTopoClusterFlags.useUpperLimitForTimeCut()
-        TopoMaker.TimeCutUpperLimit = 20.0
+        TopoMaker.TimeCutUpperLimit = jobproperties.CaloTopoClusterFlags.timeCutUpperLimit()
 
         # note E or AbsE 
         #
diff --git a/Calorimeter/CaloRec/python/CaloConfigFlags.py b/Calorimeter/CaloRec/python/CaloConfigFlags.py
index 97fa67a45f7a51b66e1cd05b164be0ac902366a7..7130ff64dd2233ab3e5a155f3692536f4580fb59 100644
--- a/Calorimeter/CaloRec/python/CaloConfigFlags.py
+++ b/Calorimeter/CaloRec/python/CaloConfigFlags.py
@@ -23,6 +23,7 @@ def createCaloConfigFlags():
     ccf.addFlag("Calo.TopoCluster.doTimeCut", False)
     ccf.addFlag("Calo.TopoCluster.extendTimeCut", False)
     ccf.addFlag("Calo.TopoCluster.useUpperLimitForTimeCut", False)
+    ccf.addFlag("Calo.TopoCluster.timeCutUpperLimit", 20.0)
     ccf.addFlag("Calo.TopoCluster.writeExtendedClusterMoments",True)
     #### Cluster correction flags:
     # If true, then reweight cells to prevent double-counting between clusters.
diff --git a/Calorimeter/CaloRec/python/CaloTopoClusterConfig.py b/Calorimeter/CaloRec/python/CaloTopoClusterConfig.py
index ce7f4dc78899425fdb966bf2f776da1eb26b2b31..ed7ccfe59e93e03012042fcc9d958a5da40d4200 100644
--- a/Calorimeter/CaloRec/python/CaloTopoClusterConfig.py
+++ b/Calorimeter/CaloRec/python/CaloTopoClusterConfig.py
@@ -258,7 +258,7 @@ def CaloTopoClusterToolCfg(configFlags, cellsname):
     TopoMaker.SeedCutsInT = configFlags.Calo.TopoCluster.doTimeCut
     TopoMaker.CutOOTseed = configFlags.Calo.TopoCluster.extendTimeCut and configFlags.Calo.TopoCluster.doTimeCut
     TopoMaker.UseTimeCutUpperLimit = configFlags.Calo.TopoCluster.useUpperLimitForTimeCut
-    TopoMaker.TimeCutUpperLimit = 20.0
+    TopoMaker.TimeCutUpperLimit = configFlags.Calo.TopoCluster.timeCutUpperLimit
 
     # note E or AbsE
     #
diff --git a/Calorimeter/CaloRec/python/CaloTopoClusterFlags.py b/Calorimeter/CaloRec/python/CaloTopoClusterFlags.py
index 8870666a20b1cdeed22dffe86b3d827a1655d190..efcddf5d77b8afff1a72abbe3ede22f737c6e14b 100644
--- a/Calorimeter/CaloRec/python/CaloTopoClusterFlags.py
+++ b/Calorimeter/CaloRec/python/CaloTopoClusterFlags.py
@@ -1,5 +1,5 @@
 
-# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
 
 #
 # $Id: CaloTopoClusterFlags.py,v 1.5 2009-05-04 16:23:04 lochp Exp $
@@ -119,19 +119,27 @@ class doTimeCut(JobProperty):
 
 
 class extendTimeCut(JobProperty):
-    """                                                                                                                    
+    """
     """
     statusOn=True
     allowedTypes=['bool']
     StoredValue=False
 
 class useUpperLimitForTimeCut(JobProperty):
-    """                                                                                                                    
+    """
     """
     statusOn=True
     allowedTypes=['bool']
     StoredValue=False
 
+class timeCutUpperLimit(JobProperty):
+    """
+    """
+    statusOn=True
+    allowedTypes=['float']
+    StoredValue=20.0
+
+
 # add the flags container to the top container 
 jobproperties.add_Container(CaloTopoClusterFlags)
 
@@ -155,6 +163,7 @@ list_jobproperties = [
     ,doTimeCut
     ,extendTimeCut
     ,useUpperLimitForTimeCut
+    ,timeCutUpperLimit
     ]
 
 for i in list_jobproperties:
diff --git a/Reconstruction/HeavyIonRec/HIJetRec/python/SubtractedCaloClusterTopoGetter.py b/Reconstruction/HeavyIonRec/HIJetRec/python/SubtractedCaloClusterTopoGetter.py
index 9b7133c846056bfd75fe911e005fee1c92fb8974..9fa94094cf5fa64428deb5711b802c423593d432 100644
--- a/Reconstruction/HeavyIonRec/HIJetRec/python/SubtractedCaloClusterTopoGetter.py
+++ b/Reconstruction/HeavyIonRec/HIJetRec/python/SubtractedCaloClusterTopoGetter.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
 # Getter class duplicated from CaloRec/python/CaloClusterTopoGetter.py, in order to create a topo cluster collection using UE subtracted cells 
 # exact version at https://gitlab.cern.ch/qhu/athena/-/blob/50cbc0b97a726b71b3bb0e02d9c4f5fb09ee900a/Calorimeter/CaloRec/python/CaloClusterTopoGetter.py
 # please refer to the original version for details settings of clustering and calibration
@@ -293,7 +293,7 @@ class SubtractedCaloClusterTopoGetter ( Configured )  :
         TopoMaker.SeedCutsInT = jobproperties.CaloTopoClusterFlags.doTimeCut()
         TopoMaker.CutOOTseed = jobproperties.CaloTopoClusterFlags.extendTimeCut() and jobproperties.CaloTopoClusterFlags.doTimeCut()
         TopoMaker.UseTimeCutUpperLimit = jobproperties.CaloTopoClusterFlags.useUpperLimitForTimeCut()
-        TopoMaker.TimeCutUpperLimit = 20.0
+        TopoMaker.TimeCutUpperLimit = jobproperties.CaloTopoClusterFlags.timeCutUpperLimit()
 
         # note E or AbsE 
         #
diff --git a/Reconstruction/tauRec/python/TauToolHolder.py b/Reconstruction/tauRec/python/TauToolHolder.py
index 3df12d8dd618f7078f1b8ba9a4b0ac319945e4e5..f3669eaba58ed0dfebcf7aaa47147b565123e89f 100644
--- a/Reconstruction/tauRec/python/TauToolHolder.py
+++ b/Reconstruction/tauRec/python/TauToolHolder.py
@@ -539,6 +539,12 @@ def TauCaloTopoClusterMakerCfg(flags):
     TopoClusterForTaus.SeedCutsInAbsE                    = True
     TopoClusterForTaus.ClusterEtorAbsEtCut               = 0.5*GeV # 0.0*MeV in standard CaloCalTopoCluster JobOptions!
     TopoClusterForTaus.TwoGaussianNoise                  = flags.Calo.TopoCluster.doTwoGaussianNoise
+    # timing cut on seed cell
+    TopoClusterForTaus.SeedCutsInT = flags.Calo.TopoCluster.doTimeCut
+    TopoClusterForTaus.CutOOTseed = flags.Calo.TopoCluster.extendTimeCut and flags.Calo.TopoCluster.doTimeCut
+    TopoClusterForTaus.UseTimeCutUpperLimit = flags.Calo.TopoCluster.useUpperLimitForTimeCut
+    # may have to be tuned for EM clusters and/or LLP->tau reconstruction
+    TopoClusterForTaus.TimeCutUpperLimit = flags.Calo.TopoCluster.timeCutUpperLimit
 
     result.setPrivateTools(TopoClusterForTaus)
     return result
diff --git a/Reconstruction/tauRec/share/Pi0ClusterMaker_jobOptions.py b/Reconstruction/tauRec/share/Pi0ClusterMaker_jobOptions.py
index a9798a4716423cd8a84a6dac7674fb05f4045d72..30242681c39223536ac2cc8aae5f494ee10e7f7c 100644
--- a/Reconstruction/tauRec/share/Pi0ClusterMaker_jobOptions.py
+++ b/Reconstruction/tauRec/share/Pi0ClusterMaker_jobOptions.py
@@ -236,7 +236,7 @@ TopoClusterForTaus.SeedCutsInT = jobproperties.CaloTopoClusterFlags.doTimeCut()
 TopoClusterForTaus.CutOOTseed = jobproperties.CaloTopoClusterFlags.extendTimeCut() and jobproperties.CaloTopoClusterFlags.doTimeCut()
 TopoClusterForTaus.UseTimeCutUpperLimit = jobproperties.CaloTopoClusterFlags.useUpperLimitForTimeCut()
 # may have to be tuned for EM clusters and/or LLP->tau reconstruction
-TopoClusterForTaus.TimeCutUpperLimit = 20.0
+TopoClusterForTaus.TimeCutUpperLimit = jobproperties.CaloTopoClusterFlags.timeCutUpperLimit()
 
 TopoSplitterForTaus = CaloTopoClusterSplitter("TauPi0TopoSplitter")
 # cells from the following samplings will be able to form local