diff --git a/Control/AthenaMonitoring/share/DataQualitySteering_jobOptions.py b/Control/AthenaMonitoring/share/DataQualitySteering_jobOptions.py
index b5c2e04adbe7dacb7699327c4cc66f0752cd64c5..99cd920a96c6cc834749f6c7f4cf8ca5771b64f6 100644
--- a/Control/AthenaMonitoring/share/DataQualitySteering_jobOptions.py
+++ b/Control/AthenaMonitoring/share/DataQualitySteering_jobOptions.py
@@ -336,6 +336,7 @@ if DQMonFlags.doMonitoring():
       ConfigFlags.Detector.GeometrySCT=DetFlags.SCT_on()
       ConfigFlags.Detector.GeometryTRT=DetFlags.TRT_on()
       ConfigFlags.InDet.usePixelDCS=InDetFlags.usePixelDCS()
+      ConfigFlags.InDet.doTIDE_Ambi=InDetFlags.doTIDE_Ambi()
 
       ConfigFlags.Output.HISTFileName=DQMonFlags.histogramFile()
       ConfigFlags.DQ.FileKey=DQMonFlags.monManFileKey()
diff --git a/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py b/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py
index 3f173947ffbf5606304c88a44b11ba64023215f5..a91384df66ac5edd0b2469f7b4ab7bf6a91afb0e 100644
--- a/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py
+++ b/InnerDetector/InDetDigitization/PixelDigitization/python/PixelDigitizationConfig.py
@@ -100,225 +100,236 @@ def EndcapFEI3SimTool(name="EndcapFEI3SimTool", **kwargs):
     kwargs.setdefault("BarrelEC", 2)
     return CfgMgr.FEI3SimTool(name, **kwargs)
 
-def BasicPixelDigitizationTool(name="PixelDigitizationTool", **kwargs):
-    from AthenaCommon.AppMgr import ServiceMgr
-    from AthenaCommon.AppMgr import ToolSvc
-    from IOVDbSvc.CondDB import conddb
-    from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags as commonGeoFlags
+def IdMapping():
     from AtlasGeoModel.InDetGMJobProperties import InDetGeometryFlags as geoFlags
-    from AthenaCommon.GlobalFlags import globalflags
 
-############################################################################################
-# Set up Pixel Module data (2018 condition)
-############################################################################################
+    IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_2016.dat"
+
+    # ITk:
+    if geoFlags.isSLHC():
+        IdMappingDat = "ITk_Atlas_IdMapping.dat"
+        if "BrlIncl4.0_ref" == commonGeoFlags.GeoType():
+            IdMappingDat = "ITk_Atlas_IdMapping_InclBrl4.dat"
+        elif "IBrlExt4.0ref" == commonGeoFlags.GeoType():
+            IdMappingDat = "ITk_Atlas_IdMapping_IExtBrl4.dat"
+        elif "BrlExt4.0_ref" == commonGeoFlags.GeoType():
+            IdMappingDat = "ITk_Atlas_IdMapping_ExtBrl4.dat"
+        elif "BrlExt3.2_ref" == commonGeoFlags.GeoType():
+            IdMappingDat = "ITk_Atlas_IdMapping_ExtBrl32.dat"
+    elif not geoFlags.isIBL():
+        IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping.dat"
+    else:
+        # Planar IBL
+        if (geoFlags.IBLLayout() == "planar"):
+            if geoFlags.isDBM():
+                IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_inclIBL_DBM.dat"
+            else:
+                IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_inclIBL.dat"
+        # Hybrid IBL plus DBM
+        elif (geoFlags.IBLLayout() == "3D"):
+            IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_Run2.dat"
+
+    return IdMappingDat
+
+def PixelConfigCondAlg_MC():
+    ############################################################################################
+    # Set up Pixel Module data (2018 condition)
+    ############################################################################################
+    from IOVDbSvc.CondDB import conddb
+    from AtlasGeoModel.InDetGMJobProperties import InDetGeometryFlags as geoFlags
     from AthenaCommon.AlgSequence import AthSequencer
-    condSeq = AthSequencer("AthCondSeq")
 
     #################
     # Module status #
     #################
     useNewDeadmapFormat = False
-    useNewChargeFormat  = False
-
     if not useNewDeadmapFormat:
         if not (conddb.folderRequested("/PIXEL/PixMapOverlay") or conddb.folderRequested("/PIXEL/Onl/PixMapOverlay")):
             conddb.addFolderSplitOnline("PIXEL","/PIXEL/Onl/PixMapOverlay","/PIXEL/PixMapOverlay", className='CondAttrListCollection')
 
+    from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelConfigCondAlg
+    alg = PixelConfigCondAlg(name="PixelConfigCondAlg")
+    alg.UseCablingConditions=False
+
+    from AthenaCommon.BeamFlags import jobproperties
+    if jobproperties.Beam.beamType == "cosmics" :
+        alg.UseComTime=True
+        alg.BarrelTimeJitter=[25.0,25.0,25.0,25.0]
+        alg.EndcapTimeJitter=[25.0,25.0,25.0]
+        alg.DBMTimeJitter=[25.0,25.0,25.0]
+        alg.BarrelNumberOfBCID=[8,8,8,8]
+        alg.EndcapNumberOfBCID=[8,8,8]
+        alg.DBMNumberOfBCID=[8,8,8]
+        alg.BarrelTimeOffset=[100.0,100.0,100.0,100.0]
+        alg.EndcapTimeOffset=[100.0,100.0,100.0]
+        alg.DBMTimeOffset=[100.0,100.0,100.0]
+    else:
+        alg.UseComTime=False
+        alg.BarrelTimeJitter=[0.0,0.0,0.0,0.0]
+        alg.EndcapTimeJitter=[0.0,0.0,0.0]
+        alg.DBMTimeJitter=[0.0,0.0,0.0]
+        alg.BarrelNumberOfBCID=[1,1,1,1]
+        alg.EndcapNumberOfBCID=[1,1,1]
+        alg.DBMNumberOfBCID=[1,1,1]
+        alg.BarrelTimeOffset=[5.0,5.0,5.0,5.0]
+        alg.EndcapTimeOffset=[5.0,5.0,5.0]
+        alg.DBMTimeOffset=[5.0,5.0,5.0]
+
+    alg.BunchSpace=25.0
+    alg.FEI4BarrelHitDiscConfig=[2]
+
+    #====================================================================================
+    # Run-dependent SIMULATION(digitization) parameters:
+    #====================================================================================
+    # RUN2 2015/2016
+    alg.BarrelToTThreshold2016       = [   -1,    5,    5,    5]
+    alg.FEI3BarrelLatency2016        = [    0,  151,  256,  256]
+    alg.FEI3BarrelHitDuplication2016 = [False,False,False,False]
+    alg.FEI3BarrelSmallHitToT2016    = [   -1,   -1,   -1,   -1]
+    alg.FEI3BarrelTimingSimTune2016  = [   -1, 2015, 2015, 2015]
+    alg.BarrelCrossTalk2016          = [ 0.30, 0.06, 0.06, 0.06]
+    alg.BarrelNoiseOccupancy2016     = [ 5e-8, 5e-8, 5e-8, 5e-8]
+    alg.BarrelDisableProbability2016 = [ 9e-3, 9e-3, 9e-3, 9e-3]
+
+    alg.EndcapToTThreshold2016       = [    5,    5,    5]
+    alg.FEI3EndcapLatency2016        = [  256,  256,  256]
+    alg.FEI3EndcapHitDuplication2016 = [False,False,False]
+    alg.FEI3EndcapSmallHitToT2016    = [   -1,   -1,   -1]
+    alg.FEI3EndcapTimingSimTune2016  = [ 2015, 2015, 2015]
+    alg.EndcapCrossTalk2016          = [ 0.06, 0.06, 0.06]
+    alg.EndcapNoiseOccupancy2016     = [ 5e-8, 5e-8, 5e-8]
+    alg.EndcapDisableProbability2016 = [ 9e-3, 9e-3, 9e-3]
+
+    alg.DBMToTThreshold2016       = [   -1,   -1,   -1]
+    alg.DBMCrossTalk2016          = [ 0.06, 0.06, 0.06]
+    alg.DBMNoiseOccupancy2016     = [ 5e-8, 5e-8, 5e-8]
+    alg.DBMDisableProbability2016 = [ 9e-3, 9e-3, 9e-3]
+
+    alg.IBLNoiseShape2016    = [0.0, 0.0330, 0.0, 0.3026, 0.5019, 0.6760, 0.8412, 0.9918, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0]
+    alg.BLayerNoiseShape2016 = [0.0, 0.0, 0.0, 0.0, 0.2204, 0.5311, 0.7493, 0.8954, 0.9980, 1.0]
+    alg.PixelNoiseShape2016  = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2418, 0.4397, 0.5858, 0.6949, 0.7737, 0.8414, 0.8959, 0.9414, 0.9828, 1.0]
+    # Layer-2 noise shape                     [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2129, 0.4016, 0.5477, 0.6599, 0.7435, 0.8160, 0.8779, 0.9340, 0.9798, 1.0]
+
+    # So far, Gaudi::Property does not support 2D vector.
+    #alg.EndcapNoiseShape=[[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1748, 0.3409, 0.4760, 0.5850, 0.6754, 0.7538, 0.8264, 0.8962, 0.9655, 1.0],
+    #                                     [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1852, 0.3528, 0.4881, 0.5961, 0.6855, 0.7640, 0.8374, 0.9068, 0.9749, 1.0],
+    #                                     [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1735, 0.3380, 0.4733, 0.5829, 0.6730, 0.7516, 0.8234, 0.8916, 0.9595, 1.0]]
+
+    #====================================================================================
+    # RUN2 2017
+    alg.BarrelToTThreshold2017       = [   -1,    5,    5,    5]
+    alg.FEI3BarrelLatency2017        = [    0,  151,  256,  256]
+    alg.FEI3BarrelHitDuplication2017 = [False,False,False,False]
+    alg.FEI3BarrelSmallHitToT2017    = [   -1,   -1,   -1,   -1]
+    alg.FEI3BarrelTimingSimTune2017  = [   -1, 2018, 2018, 2018]
+    alg.BarrelCrossTalk2017          = [ 0.30, 0.06, 0.06, 0.06]
+    alg.BarrelNoiseOccupancy2017     = [ 5e-8, 5e-8, 5e-8, 5e-8]
+    alg.BarrelDisableProbability2017 = [ 9e-3, 9e-3, 9e-3, 9e-3]
+
+    alg.EndcapToTThreshold2017       = [    5,    5,    5]
+    alg.FEI3EndcapLatency2017        = [  256,  256,  256]
+    alg.FEI3EndcapHitDuplication2017 = [False,False,False]
+    alg.FEI3EndcapSmallHitToT2017    = [   -1,   -1,   -1]
+    alg.FEI3EndcapTimingSimTune2017  = [ 2018, 2018, 2018]
+    alg.EndcapCrossTalk2017          = [ 0.06, 0.06, 0.06]
+    alg.EndcapNoiseOccupancy2017     = [ 5e-8, 5e-8, 5e-8]
+    alg.EndcapDisableProbability2017 = [ 9e-3, 9e-3, 9e-3]
+
+    alg.DBMToTThreshold2017       = [   -1,   -1,   -1]
+    alg.DBMCrossTalk2017          = [ 0.06, 0.06, 0.06]
+    alg.DBMNoiseOccupancy2017     = [ 5e-8, 5e-8, 5e-8]
+    alg.DBMDisableProbability2017 = [ 9e-3, 9e-3, 9e-3]
+
+    alg.IBLNoiseShape2017    = [0.0, 0.0330, 0.0, 0.3026, 0.5019, 0.6760, 0.8412, 0.9918, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0]
+    alg.BLayerNoiseShape2017 = [0.0, 0.0, 0.0, 0.0, 0.2204, 0.5311, 0.7493, 0.8954, 0.9980, 1.0]
+    alg.PixelNoiseShape2017  = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2418, 0.4397, 0.5858, 0.6949, 0.7737, 0.8414, 0.8959, 0.9414, 0.9828, 1.0]
+
+    #====================================================================================
+    # RUN2 2018
+    alg.BarrelToTThreshold2018       = [   -1,    3,    5,    5]
+    alg.FEI3BarrelLatency2018        = [    0,  151,  256,  256]
+    alg.FEI3BarrelHitDuplication2018 = [False,False,False,False]
+    alg.FEI3BarrelSmallHitToT2018    = [   -1,   -1,   -1,   -1]
+    alg.FEI3BarrelTimingSimTune2018  = [   -1, 2018, 2018, 2018]
+    alg.BarrelCrossTalk2018          = [ 0.30, 0.06, 0.06, 0.06]
+    alg.BarrelNoiseOccupancy2018     = [ 5e-8, 5e-8, 5e-8, 5e-8]
+    alg.BarrelDisableProbability2018 = [ 9e-3, 9e-3, 9e-3, 9e-3]
+
+    alg.EndcapToTThreshold2018       = [    5,    5,    5]
+    alg.FEI3EndcapLatency2018        = [  256,  256,  256]
+    alg.FEI3EndcapHitDuplication2018 = [False,False,False]
+    alg.FEI3EndcapSmallHitToT2018    = [   -1,   -1,   -1]
+    alg.FEI3EndcapTimingSimTune2018  = [ 2018, 2018, 2018]
+    alg.EndcapCrossTalk2018          = [ 0.06, 0.06, 0.06]
+    alg.EndcapNoiseOccupancy2018     = [ 5e-8, 5e-8, 5e-8]
+    alg.EndcapDisableProbability2018 = [ 9e-3, 9e-3, 9e-3]
+
+    alg.DBMToTThreshold2018       = [   -1,   -1,   -1]
+    alg.DBMCrossTalk2018          = [ 0.06, 0.06, 0.06]
+    alg.DBMNoiseOccupancy2018     = [ 5e-8, 5e-8, 5e-8]
+    alg.DBMDisableProbability2018 = [ 9e-3, 9e-3, 9e-3]
+
+    alg.IBLNoiseShape2018    = [0.0, 0.0330, 0.0, 0.3026, 0.5019, 0.6760, 0.8412, 0.9918, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0]
+    alg.BLayerNoiseShape2018 = [0.0, 0.0, 0.0, 0.0, 0.2204, 0.5311, 0.7493, 0.8954, 0.9980, 1.0]
+    alg.PixelNoiseShape2018  = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2418, 0.4397, 0.5858, 0.6949, 0.7737, 0.8414, 0.8959, 0.9414, 0.9828, 1.0]
+
+    #====================================================================================
+    # RUN1
+    alg.BarrelToTThresholdRUN1       = [    3,    3,    3]
+    alg.FEI3BarrelLatencyRUN1        = [  256,  256,  256]
+    alg.FEI3BarrelHitDuplicationRUN1 = [ True, True, True]
+    alg.FEI3BarrelSmallHitToTRUN1    = [    7,    7,    7]
+    alg.FEI3BarrelTimingSimTuneRUN1  = [ 2009, 2009, 2009]
+    alg.BarrelCrossTalkRUN1          = [ 0.06, 0.06, 0.06]
+    alg.BarrelNoiseOccupancyRUN1     = [ 5e-8, 5e-8, 5e-8]
+    alg.BarrelDisableProbabilityRUN1 = [ 9e-3, 9e-3, 9e-3]
+
+    alg.EndcapToTThresholdRUN1       = [    3,    3,    3]
+    alg.FEI3EndcapLatencyRUN1        = [  256,  256,  256]
+    alg.FEI3EndcapHitDuplicationRUN1 = [ True, True, True]
+    alg.FEI3EndcapSmallHitToTRUN1    = [    7,    7,    7]
+    alg.FEI3EndcapTimingSimTuneRUN1  = [ 2009, 2009, 2009]
+    alg.EndcapCrossTalkRUN1          = [ 0.06, 0.06, 0.06]
+    alg.EndcapNoiseOccupancyRUN1     = [ 5e-8, 5e-8, 5e-8]
+    alg.EndcapDisableProbabilityRUN1 = [ 9e-3, 9e-3, 9e-3]
+
+    alg.BLayerNoiseShapeRUN1 = [0.0, 0.0, 0.0, 0.0, 0.2204, 0.5311, 0.7493, 0.8954, 0.9980, 1.0]
+    alg.PixelNoiseShapeRUN1  = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2418, 0.4397, 0.5858, 0.6949, 0.7737, 0.8414, 0.8959, 0.9414, 0.9828, 1.0]
+
+    #====================================================================================
+    # ITK
+    alg.BarrelToTThresholdITK       = [    3,    3,    3,    3,    3]
+    alg.BarrelCrossTalkITK          = [ 0.06, 0.06, 0.06, 0.06, 0.06]
+    alg.BarrelNoiseOccupancyITK     = [ 5e-8, 5e-8, 5e-8, 5e-8, 5e-8]
+    alg.BarrelDisableProbabilityITK = [ 9e-3, 9e-3, 9e-3, 9e-3, 9e-3]
+
+    alg.EndcapToTThresholdITK       = [    3,    3,    3,    3,    3,    3,    3,    3,    3,    3,    3,    3,    3,    3]
+    alg.EndcapCrossTalkITK          = [ 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06]
+    alg.EndcapNoiseOccupancyITK     = [ 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8]
+    alg.EndcapDisableProbabilityITK = [ 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3]
+
+    alg.InnermostNoiseShapeITK     = [0.0, 1.0]
+    alg.NextInnermostNoiseShapeITK = [0.0, 1.0]
+    alg.PixelNoiseShapeITK         = [0.0, 1.0]
+
+    alg.CablingMapFileName=IdMapping()
+
+    return alg
+
+def BasicPixelDigitizationTool(name="PixelDigitizationTool", **kwargs):
+    from AthenaCommon.AppMgr import ServiceMgr
+    from AthenaCommon.AppMgr import ToolSvc
+    from IOVDbSvc.CondDB import conddb
+    from AtlasGeoModel.CommonGMJobProperties import CommonGeometryFlags as commonGeoFlags
+    from AtlasGeoModel.InDetGMJobProperties import InDetGeometryFlags as geoFlags
+    from AthenaCommon.GlobalFlags import globalflags
+    from AthenaCommon.AlgSequence import AthSequencer
+    condSeq = AthSequencer("AthCondSeq")
+
     if not hasattr(condSeq, 'PixelConfigCondAlg'):
-        from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelConfigCondAlg
-        PixelConfigCondAlg.UseCablingConditions=False
-
-        from AthenaCommon.BeamFlags import jobproperties
-        if jobproperties.Beam.beamType == "cosmics" :
-            PixelConfigCondAlg.UseComTime=True
-            PixelConfigCondAlg.BarrelTimeJitter=[25.0,25.0,25.0,25.0]
-            PixelConfigCondAlg.EndcapTimeJitter=[25.0,25.0,25.0]
-            PixelConfigCondAlg.DBMTimeJitter=[25.0,25.0,25.0]
-            PixelConfigCondAlg.BarrelNumberOfBCID=[8,8,8,8]
-            PixelConfigCondAlg.EndcapNumberOfBCID=[8,8,8]
-            PixelConfigCondAlg.DBMNumberOfBCID=[8,8,8]
-            PixelConfigCondAlg.BarrelTimeOffset=[100.0,100.0,100.0,100.0]
-            PixelConfigCondAlg.EndcapTimeOffset=[100.0,100.0,100.0]
-            PixelConfigCondAlg.DBMTimeOffset=[100.0,100.0,100.0]
-        else:
-            PixelConfigCondAlg.UseComTime=False
-            PixelConfigCondAlg.BarrelTimeJitter=[0.0,0.0,0.0,0.0]
-            PixelConfigCondAlg.EndcapTimeJitter=[0.0,0.0,0.0]
-            PixelConfigCondAlg.DBMTimeJitter=[0.0,0.0,0.0]
-            PixelConfigCondAlg.BarrelNumberOfBCID=[1,1,1,1]
-            PixelConfigCondAlg.EndcapNumberOfBCID=[1,1,1]
-            PixelConfigCondAlg.DBMNumberOfBCID=[1,1,1]
-            PixelConfigCondAlg.BarrelTimeOffset=[5.0,5.0,5.0,5.0]
-            PixelConfigCondAlg.EndcapTimeOffset=[5.0,5.0,5.0]
-            PixelConfigCondAlg.DBMTimeOffset=[5.0,5.0,5.0]
-
-        PixelConfigCondAlg.BunchSpace=25.0
-        PixelConfigCondAlg.FEI4BarrelHitDiscConfig=[2]
-
-        #====================================================================================
-        # Run-dependent SIMULATION(digitization) parameters:
-        #====================================================================================
-        # RUN2 2015/2016
-        PixelConfigCondAlg.BarrelToTThreshold2016       = [   -1,    5,    5,    5]
-        PixelConfigCondAlg.FEI3BarrelLatency2016        = [    0,  151,  256,  256]
-        PixelConfigCondAlg.FEI3BarrelHitDuplication2016 = [False,False,False,False]
-        PixelConfigCondAlg.FEI3BarrelSmallHitToT2016    = [   -1,   -1,   -1,   -1]
-        PixelConfigCondAlg.FEI3BarrelTimingSimTune2016  = [   -1, 2015, 2015, 2015]
-        PixelConfigCondAlg.BarrelCrossTalk2016          = [ 0.30, 0.06, 0.06, 0.06]
-        PixelConfigCondAlg.BarrelNoiseOccupancy2016     = [ 5e-8, 5e-8, 5e-8, 5e-8]
-        PixelConfigCondAlg.BarrelDisableProbability2016 = [ 9e-3, 9e-3, 9e-3, 9e-3]
-
-        PixelConfigCondAlg.EndcapToTThreshold2016       = [    5,    5,    5]
-        PixelConfigCondAlg.FEI3EndcapLatency2016        = [  256,  256,  256]
-        PixelConfigCondAlg.FEI3EndcapHitDuplication2016 = [False,False,False]
-        PixelConfigCondAlg.FEI3EndcapSmallHitToT2016    = [   -1,   -1,   -1]
-        PixelConfigCondAlg.FEI3EndcapTimingSimTune2016  = [ 2015, 2015, 2015]
-        PixelConfigCondAlg.EndcapCrossTalk2016          = [ 0.06, 0.06, 0.06]
-        PixelConfigCondAlg.EndcapNoiseOccupancy2016     = [ 5e-8, 5e-8, 5e-8]
-        PixelConfigCondAlg.EndcapDisableProbability2016 = [ 9e-3, 9e-3, 9e-3]
-
-        PixelConfigCondAlg.DBMToTThreshold2016       = [   -1,   -1,   -1]
-        PixelConfigCondAlg.DBMCrossTalk2016          = [ 0.06, 0.06, 0.06]
-        PixelConfigCondAlg.DBMNoiseOccupancy2016     = [ 5e-8, 5e-8, 5e-8]
-        PixelConfigCondAlg.DBMDisableProbability2016 = [ 9e-3, 9e-3, 9e-3]
-
-        PixelConfigCondAlg.IBLNoiseShape2016    = [0.0, 0.0330, 0.0, 0.3026, 0.5019, 0.6760, 0.8412, 0.9918, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0]
-        PixelConfigCondAlg.BLayerNoiseShape2016 = [0.0, 0.0, 0.0, 0.0, 0.2204, 0.5311, 0.7493, 0.8954, 0.9980, 1.0]
-        PixelConfigCondAlg.PixelNoiseShape2016  = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2418, 0.4397, 0.5858, 0.6949, 0.7737, 0.8414, 0.8959, 0.9414, 0.9828, 1.0]
-        # Layer-2 noise shape                     [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2129, 0.4016, 0.5477, 0.6599, 0.7435, 0.8160, 0.8779, 0.9340, 0.9798, 1.0]
-
-        # So far, Gaudi::Property does not support 2D vector.
-        #PixelConfigCondAlg.EndcapNoiseShape=[[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1748, 0.3409, 0.4760, 0.5850, 0.6754, 0.7538, 0.8264, 0.8962, 0.9655, 1.0],
-        #                                     [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1852, 0.3528, 0.4881, 0.5961, 0.6855, 0.7640, 0.8374, 0.9068, 0.9749, 1.0],
-        #                                     [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.1735, 0.3380, 0.4733, 0.5829, 0.6730, 0.7516, 0.8234, 0.8916, 0.9595, 1.0]]
-
-        #====================================================================================
-        # RUN2 2017
-        PixelConfigCondAlg.BarrelToTThreshold2017       = [   -1,    5,    5,    5]
-        PixelConfigCondAlg.FEI3BarrelLatency2017        = [    0,  151,  256,  256]
-        PixelConfigCondAlg.FEI3BarrelHitDuplication2017 = [False,False,False,False]
-        PixelConfigCondAlg.FEI3BarrelSmallHitToT2017    = [   -1,   -1,   -1,   -1]
-        PixelConfigCondAlg.FEI3BarrelTimingSimTune2017  = [   -1, 2018, 2018, 2018]
-        PixelConfigCondAlg.BarrelCrossTalk2017          = [ 0.30, 0.06, 0.06, 0.06]
-        PixelConfigCondAlg.BarrelNoiseOccupancy2017     = [ 5e-8, 5e-8, 5e-8, 5e-8]
-        PixelConfigCondAlg.BarrelDisableProbability2017 = [ 9e-3, 9e-3, 9e-3, 9e-3]
-
-        PixelConfigCondAlg.EndcapToTThreshold2017       = [    5,    5,    5]
-        PixelConfigCondAlg.FEI3EndcapLatency2017        = [  256,  256,  256]
-        PixelConfigCondAlg.FEI3EndcapHitDuplication2017 = [False,False,False]
-        PixelConfigCondAlg.FEI3EndcapSmallHitToT2017    = [   -1,   -1,   -1]
-        PixelConfigCondAlg.FEI3EndcapTimingSimTune2017  = [ 2018, 2018, 2018]
-        PixelConfigCondAlg.EndcapCrossTalk2017          = [ 0.06, 0.06, 0.06]
-        PixelConfigCondAlg.EndcapNoiseOccupancy2017     = [ 5e-8, 5e-8, 5e-8]
-        PixelConfigCondAlg.EndcapDisableProbability2017 = [ 9e-3, 9e-3, 9e-3]
-
-        PixelConfigCondAlg.DBMToTThreshold2017       = [   -1,   -1,   -1]
-        PixelConfigCondAlg.DBMCrossTalk2017          = [ 0.06, 0.06, 0.06]
-        PixelConfigCondAlg.DBMNoiseOccupancy2017     = [ 5e-8, 5e-8, 5e-8]
-        PixelConfigCondAlg.DBMDisableProbability2017 = [ 9e-3, 9e-3, 9e-3]
-
-        PixelConfigCondAlg.IBLNoiseShape2017    = [0.0, 0.0330, 0.0, 0.3026, 0.5019, 0.6760, 0.8412, 0.9918, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0]
-        PixelConfigCondAlg.BLayerNoiseShape2017 = [0.0, 0.0, 0.0, 0.0, 0.2204, 0.5311, 0.7493, 0.8954, 0.9980, 1.0]
-        PixelConfigCondAlg.PixelNoiseShape2017  = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2418, 0.4397, 0.5858, 0.6949, 0.7737, 0.8414, 0.8959, 0.9414, 0.9828, 1.0]
-
-        #====================================================================================
-        # RUN2 2018
-        PixelConfigCondAlg.BarrelToTThreshold2018       = [   -1,    3,    5,    5]
-        PixelConfigCondAlg.FEI3BarrelLatency2018        = [    0,  151,  256,  256]
-        PixelConfigCondAlg.FEI3BarrelHitDuplication2018 = [False,False,False,False]
-        PixelConfigCondAlg.FEI3BarrelSmallHitToT2018    = [   -1,   -1,   -1,   -1]
-        PixelConfigCondAlg.FEI3BarrelTimingSimTune2018  = [   -1, 2018, 2018, 2018]
-        PixelConfigCondAlg.BarrelCrossTalk2018          = [ 0.30, 0.06, 0.06, 0.06]
-        PixelConfigCondAlg.BarrelNoiseOccupancy2018     = [ 5e-8, 5e-8, 5e-8, 5e-8]
-        PixelConfigCondAlg.BarrelDisableProbability2018 = [ 9e-3, 9e-3, 9e-3, 9e-3]
-
-        PixelConfigCondAlg.EndcapToTThreshold2018       = [    5,    5,    5]
-        PixelConfigCondAlg.FEI3EndcapLatency2018        = [  256,  256,  256]
-        PixelConfigCondAlg.FEI3EndcapHitDuplication2018 = [False,False,False]
-        PixelConfigCondAlg.FEI3EndcapSmallHitToT2018    = [   -1,   -1,   -1]
-        PixelConfigCondAlg.FEI3EndcapTimingSimTune2018  = [ 2018, 2018, 2018]
-        PixelConfigCondAlg.EndcapCrossTalk2018          = [ 0.06, 0.06, 0.06]
-        PixelConfigCondAlg.EndcapNoiseOccupancy2018     = [ 5e-8, 5e-8, 5e-8]
-        PixelConfigCondAlg.EndcapDisableProbability2018 = [ 9e-3, 9e-3, 9e-3]
-
-        PixelConfigCondAlg.DBMToTThreshold2018       = [   -1,   -1,   -1]
-        PixelConfigCondAlg.DBMCrossTalk2018          = [ 0.06, 0.06, 0.06]
-        PixelConfigCondAlg.DBMNoiseOccupancy2018     = [ 5e-8, 5e-8, 5e-8]
-        PixelConfigCondAlg.DBMDisableProbability2018 = [ 9e-3, 9e-3, 9e-3]
-
-        PixelConfigCondAlg.IBLNoiseShape2018    = [0.0, 0.0330, 0.0, 0.3026, 0.5019, 0.6760, 0.8412, 0.9918, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0]
-        PixelConfigCondAlg.BLayerNoiseShape2018 = [0.0, 0.0, 0.0, 0.0, 0.2204, 0.5311, 0.7493, 0.8954, 0.9980, 1.0]
-        PixelConfigCondAlg.PixelNoiseShape2018  = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2418, 0.4397, 0.5858, 0.6949, 0.7737, 0.8414, 0.8959, 0.9414, 0.9828, 1.0]
-
-        #====================================================================================
-        # RUN1
-        PixelConfigCondAlg.BarrelToTThresholdRUN1       = [    3,    3,    3]
-        PixelConfigCondAlg.FEI3BarrelLatencyRUN1        = [  256,  256,  256]
-        PixelConfigCondAlg.FEI3BarrelHitDuplicationRUN1 = [ True, True, True]
-        PixelConfigCondAlg.FEI3BarrelSmallHitToTRUN1    = [    7,    7,    7]
-        PixelConfigCondAlg.FEI3BarrelTimingSimTuneRUN1  = [ 2009, 2009, 2009]
-        PixelConfigCondAlg.BarrelCrossTalkRUN1          = [ 0.06, 0.06, 0.06]
-        PixelConfigCondAlg.BarrelNoiseOccupancyRUN1     = [ 5e-8, 5e-8, 5e-8]
-        PixelConfigCondAlg.BarrelDisableProbabilityRUN1 = [ 9e-3, 9e-3, 9e-3]
-
-        PixelConfigCondAlg.EndcapToTThresholdRUN1       = [    3,    3,    3]
-        PixelConfigCondAlg.FEI3EndcapLatencyRUN1        = [  256,  256,  256]
-        PixelConfigCondAlg.FEI3EndcapHitDuplicationRUN1 = [ True, True, True]
-        PixelConfigCondAlg.FEI3EndcapSmallHitToTRUN1    = [    7,    7,    7]
-        PixelConfigCondAlg.FEI3EndcapTimingSimTuneRUN1  = [ 2009, 2009, 2009]
-        PixelConfigCondAlg.EndcapCrossTalkRUN1          = [ 0.06, 0.06, 0.06]
-        PixelConfigCondAlg.EndcapNoiseOccupancyRUN1     = [ 5e-8, 5e-8, 5e-8]
-        PixelConfigCondAlg.EndcapDisableProbabilityRUN1 = [ 9e-3, 9e-3, 9e-3]
-
-        PixelConfigCondAlg.BLayerNoiseShapeRUN1 = [0.0, 0.0, 0.0, 0.0, 0.2204, 0.5311, 0.7493, 0.8954, 0.9980, 1.0]
-        PixelConfigCondAlg.PixelNoiseShapeRUN1  = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.2418, 0.4397, 0.5858, 0.6949, 0.7737, 0.8414, 0.8959, 0.9414, 0.9828, 1.0]
-
-        #====================================================================================
-        # ITK
-        PixelConfigCondAlg.BarrelToTThresholdITK       = [    3,    3,    3,    3,    3]
-        PixelConfigCondAlg.BarrelCrossTalkITK          = [ 0.06, 0.06, 0.06, 0.06, 0.06]
-        PixelConfigCondAlg.BarrelNoiseOccupancyITK     = [ 5e-8, 5e-8, 5e-8, 5e-8, 5e-8]
-        PixelConfigCondAlg.BarrelDisableProbabilityITK = [ 9e-3, 9e-3, 9e-3, 9e-3, 9e-3]
-
-        PixelConfigCondAlg.EndcapToTThresholdITK       = [    3,    3,    3,    3,    3,    3,    3,    3,    3,    3,    3,    3,    3,    3]
-        PixelConfigCondAlg.EndcapCrossTalkITK          = [ 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06, 0.06]
-        PixelConfigCondAlg.EndcapNoiseOccupancyITK     = [ 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8, 5e-8]
-        PixelConfigCondAlg.EndcapDisableProbabilityITK = [ 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3, 9e-3]
-
-        PixelConfigCondAlg.InnermostNoiseShapeITK     = [0.0, 1.0]
-        PixelConfigCondAlg.NextInnermostNoiseShapeITK = [0.0, 1.0]
-        PixelConfigCondAlg.PixelNoiseShapeITK         = [0.0, 1.0]
-
-
-        IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_2016.dat"
-
-        # ITk:
-        if geoFlags.isSLHC():
-            IdMappingDat = "ITk_Atlas_IdMapping.dat"
-            if "BrlIncl4.0_ref" == commonGeoFlags.GeoType():
-                IdMappingDat = "ITk_Atlas_IdMapping_InclBrl4.dat"
-            elif "IBrlExt4.0ref" == commonGeoFlags.GeoType():
-                IdMappingDat = "ITk_Atlas_IdMapping_IExtBrl4.dat"
-            elif "BrlExt4.0_ref" == commonGeoFlags.GeoType():
-                IdMappingDat = "ITk_Atlas_IdMapping_ExtBrl4.dat"
-            elif "BrlExt3.2_ref" == commonGeoFlags.GeoType():
-                IdMappingDat = "ITk_Atlas_IdMapping_ExtBrl32.dat"
-        elif not geoFlags.isIBL():
-            IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping.dat"
-        else:
-            # Planar IBL
-            if (geoFlags.IBLLayout() == "planar"):
-                if geoFlags.isDBM():
-                    IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_inclIBL_DBM.dat"
-                else:
-                    IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_inclIBL.dat"
-            # Hybrid IBL plus DBM
-            elif (geoFlags.IBLLayout() == "3D"):
-                IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_Run2.dat"
-
-        PixelConfigCondAlg.CablingMapFileName=IdMappingDat
-
-        condSeq += PixelConfigCondAlg(name="PixelConfigCondAlg")
+        condSeq += PixelConfigCondAlg_MC()
+    useNewDeadmapFormat = False
+    useNewChargeFormat  = False
 
     ############################################################################################
     # Set up Conditions DB
@@ -396,7 +407,7 @@ def BasicPixelDigitizationTool(name="PixelDigitizationTool", **kwargs):
         from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelCablingCondAlg
         condSeq += PixelCablingCondAlg(name="PixelCablingCondAlg",
                                        ReadKey = pixelReadKey,
-                                       MappingFile=IdMappingDat,
+                                       MappingFile=IdMapping(),
                                        RodIDForSingleLink40=0,
                                        RecordInInitialize=not globalflags.isOverlay())
 
diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecConditionsAccess.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecConditionsAccess.py
index 80ec30c3f5f9d32059dd8961f1a7149443db943b..4bd12cf7a3828311228fb4314348d90c45f98a8a 100644
--- a/InnerDetector/InDetExample/InDetRecExample/share/InDetRecConditionsAccess.py
+++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetRecConditionsAccess.py
@@ -59,29 +59,9 @@ if DetFlags.pixel_on():
         IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_2016.dat"
         rodIDForSingleLink40=0
         if (globalflags.DataSource()=='geant4'):
-            # ITk:
-            if geoFlags.isSLHC():
-                IdMappingDat = "ITk_Atlas_IdMapping.dat"
-                if "BrlIncl4.0_ref" == commonGeoFlags.GeoType():
-                    IdMappingDat = "ITk_Atlas_IdMapping_InclBrl4.dat"
-                elif "IBrlExt4.0ref" == commonGeoFlags.GeoType():
-                    IdMappingDat = "ITk_Atlas_IdMapping_IExtBrl4.dat"
-                elif "BrlExt4.0_ref" == commonGeoFlags.GeoType():
-                    IdMappingDat = "ITk_Atlas_IdMapping_ExtBrl4.dat"
-                elif "BrlExt3.2_ref" == commonGeoFlags.GeoType():
-                    IdMappingDat = "ITk_Atlas_IdMapping_ExtBrl32.dat"
-            elif (geoFlags.isIBL() == False):
-                IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping.dat"
-            else:
-                # Planar IBL
-                if (geoFlags.IBLLayout() == "planar"):
-                    if (geoFlags.isDBM() == True):
-                        IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_inclIBL_DBM.dat"
-                    else:
-                        IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_inclIBL.dat"
-                # Hybrid IBL plus DBM
-                elif (geoFlags.IBLLayout() == "3D"):
-                    IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_Run2.dat"
+            from PixelDigitization.PixelDigitizationConfig import PixelConfigCondAlg_MC, IdMapping
+            condSeq += PixelConfigCondAlg_MC()
+            IdMappingDat=IdMapping()
         
         elif (globalflags.DataSource=='data'):
             from RecExConfig.AutoConfiguration import GetRunNumber
@@ -105,12 +85,23 @@ if DetFlags.pixel_on():
                 else:
                     IdMappingDat="PixelCabling/Pixels_Atlas_IdMapping_344494.dat"
 
-        alg = PixelConfigCondAlg(name="PixelConfigCondAlg", 
-                                 UseCablingConditions=useCablingConditions,
-                                 CablingMapFileName=IdMappingDat)
-        if athenaCommonFlags.isOnline():
-            alg.ReadDeadMapKey = ""
-        condSeq += alg
+            alg = PixelConfigCondAlg(name="PixelConfigCondAlg", 
+                                    UseCablingConditions=useCablingConditions,
+                                    CablingMapFileName=IdMappingDat)
+            if jobproperties.Beam.beamType() == 'cosmics':
+                alg.BarrelTimeJitter=[25.0,25.0,25.0,25.0]
+                alg.EndcapTimeJitter=[25.0,25.0,25.0]
+                alg.DBMTimeJitter=[25.0,25.0,25.0]
+                alg.BarrelNumberOfBCID=[8,8,8,8]
+                alg.EndcapNumberOfBCID=[8,8,8]
+                alg.DBMNumberOfBCID=[8,8,8]
+                alg.BarrelTimeOffset=[100.0,100.0,100.0,100.0]
+                alg.EndcapTimeOffset=[100.0,100.0,100.0]
+                alg.DBMTimeOffset=[100.0,100.0,100.0]
+
+            if athenaCommonFlags.isOnline():
+                alg.ReadDeadMapKey = ""
+            condSeq += alg
 
     if useNewDeadmapFormat:
         if not conddb.folderRequested("/PIXEL/PixelModuleFeMask"):
diff --git a/InnerDetector/InDetMonitoring/SCT_Monitoring/python/TrackSummaryToolWorkaround.py b/InnerDetector/InDetMonitoring/SCT_Monitoring/python/TrackSummaryToolWorkaround.py
index 94ec785dcd39a027db823c8d24c85b5cd9f7c37c..0df7e5c1dc1dfab10eb03c67dbea10d429cb9823 100644
--- a/InnerDetector/InDetMonitoring/SCT_Monitoring/python/TrackSummaryToolWorkaround.py
+++ b/InnerDetector/InDetMonitoring/SCT_Monitoring/python/TrackSummaryToolWorkaround.py
@@ -89,7 +89,7 @@ def TrackSummaryToolWorkaround(flags):
                                                                      AssoTool        = InDetPrdAssociationTool,
                                                                      PixelToTPIDTool = '',
                                                                      TestBLayerTool  = '',
-                                                                     RunningTIDE_Ambi = True,
+                                                                     RunningTIDE_Ambi = flags.InDet.doTIDE_Ambi,
                                                                      DoSharedHits    = False,
                                                                      HoleSearch      = InDetHoleSearchTool,
                                                                      usePixel        = flags.Detector.GeometryPixel,
diff --git a/LArCalorimeter/LArMonitoring/src/LArFEBMonAlg.cxx b/LArCalorimeter/LArMonitoring/src/LArFEBMonAlg.cxx
index ca69e2a5bf0131340e06ba4525c560f95d24b873..dc9494549db0e60f222b0e69c92b7fc288db9f90 100755
--- a/LArCalorimeter/LArMonitoring/src/LArFEBMonAlg.cxx
+++ b/LArCalorimeter/LArMonitoring/src/LArFEBMonAlg.cxx
@@ -120,8 +120,7 @@ StatusCode LArFEBMonAlg::fillHistograms(const EventContext& ctx) const {
   }
   
   if (hdrCont->size()==0) {
-    ATH_MSG_ERROR( "Got empty LArFebHeaderContainer. Do nothing" );
-    return StatusCode::FAILURE;
+    ATH_MSG_WARNING( "Got empty LArFebHeaderContainer. Do nothing" );
   }
 
   if (!lArFebErrorSummary.isValid()) {
diff --git a/LumiBlock/LumiBlockComps/python/BunchCrossingCondAlgConfig.py b/LumiBlock/LumiBlockComps/python/BunchCrossingCondAlgConfig.py
index 42674515bcb927ddb6c3f238e65e6bf4f2008046..d97136146acbb3bbc27208def83979a13411a5c5 100644
--- a/LumiBlock/LumiBlockComps/python/BunchCrossingCondAlgConfig.py
+++ b/LumiBlock/LumiBlockComps/python/BunchCrossingCondAlgConfig.py
@@ -15,13 +15,14 @@ def BunchCrossingCondAlgCfg(configFlags):
 
     if (configFlags.Input.isMC):
         folder = "/Digitization/Parameters"
-        result.merge(addFolders(configFlags,folder,None,className="AthenaAttributeList"))
+        result.merge(addFolders(configFlags,folder,None,className="AthenaAttributeList",tag='HEAD'))
     else: #data case
         folder = '/TDAQ/OLC/LHC/FILLPARAMS'
         result.merge(addFolders(configFlags,folder,'TDAQ',className = 'AthenaAttributeList',tag='HEAD'))
 
 
-    alg = BunchCrossingCondAlg(Run1=run1,
+    alg = BunchCrossingCondAlg('BunchCrossingCondAlgDefault',
+                               Run1=run1,
                                isMC=configFlags.Input.isMC,
                                FillParamsFolderKey =folder )
 
diff --git a/LumiBlock/LumiBlockComps/python/BunchCrossingCondAlgTest.py b/LumiBlock/LumiBlockComps/python/BunchCrossingCondAlgTest.py
index 9fd8e749c5f0bd413567b28d6d0950f2542ba87b..6bca9610d8c0df07cd8468ba67e19a1c0d500fe0 100644
--- a/LumiBlock/LumiBlockComps/python/BunchCrossingCondAlgTest.py
+++ b/LumiBlock/LumiBlockComps/python/BunchCrossingCondAlgTest.py
@@ -124,7 +124,7 @@ result.addService(EvtPersistencySvc("EventPersistencySvc",CnvServices=[mccnvsvc.
 result.merge(BunchCrossingCondAlgCfg(ConfigFlags))
     
 result.getService("IOVDbSvc").Folders=["<db>sqlite://;schema=test.db;dbname=CONDBR2</db><tag>HEAD</tag>/TDAQ/OLC/LHC/FILLPARAMS"]
-result.getCondAlgo("BunchCrossingCondAlg").OutputLevel=1
+result.getCondAlgo("BunchCrossingCondAlgDefault").OutputLevel=1
     
 BunchCrossingCondTest=CompFactory.BunchCrossingCondTest
 result.addEventAlgo(BunchCrossingCondTest(FileName="BCData.txt",compact=True))
diff --git a/Tracking/TrkConfig/python/AtlasTrackingGeometrySvcConfig.py b/Tracking/TrkConfig/python/AtlasTrackingGeometrySvcConfig.py
index 9bceb44f315766b2584f30d7054c36d83c0ce3fc..ee09b77c6b78972ff9fc75fc2bb8a64812a3bdb7 100644
--- a/Tracking/TrkConfig/python/AtlasTrackingGeometrySvcConfig.py
+++ b/Tracking/TrkConfig/python/AtlasTrackingGeometrySvcConfig.py
@@ -221,7 +221,8 @@ def TrackingGeometrySvcCfg( flags , name = 'AtlasTrackingGeometrySvc', doMateria
     if flags.Detector.GeometryID:
       # TODO Not sure how to handle TrkDetFlags, specifically ISF_FatrasCustomGeometry, XMLFastCustomGeometry, SLHC_Geometry
       # So, here we only setup the default InDet geometry builder!
-      inDetTrackingGeometryBuilder = _getInDetTrackingGeometryBuilder(name ='InDetTrackingGeometryBuilder', flags=flags, result=result, envelopeDefinitionSvc=atlas_env_def_service)
+      inDetTrackingGeometryBuilder = _getInDetTrackingGeometryBuilder(name ='InDetTrackingGeometryBuilder', flags=flags, result=result, envelopeDefinitionSvc=atlas_env_def_service,
+                                                                      buildTrtStrawLayers=flags.Beam.Type=='cosmics')
       
       atlas_geometry_builder.InDetTrackingGeometryBuilder = inDetTrackingGeometryBuilder
       
diff --git a/Trigger/TrigMonitoring/TrigHLTMonitoring/python/TrigHLTMonitorAlgorithm.py b/Trigger/TrigMonitoring/TrigHLTMonitoring/python/TrigHLTMonitorAlgorithm.py
index 12576dc04759831b41554f8f397d680d94cd6f50..eae0321b0e6e50870a217bdd2a1d001421154f3e 100644
--- a/Trigger/TrigMonitoring/TrigHLTMonitoring/python/TrigHLTMonitorAlgorithm.py
+++ b/Trigger/TrigMonitoring/TrigHLTMonitoring/python/TrigHLTMonitorAlgorithm.py
@@ -10,9 +10,12 @@
 
 def createHLTDQConfigFlags():
     from AthenaConfiguration.AthConfigFlags import AthConfigFlags
+    from AthenaConfiguration.AutoConfigFlags import GetFileMD
     acf=AthConfigFlags()
 
-    acf.addFlag('DQ.Steering.HLT.doGeneral', True)
+    # need to (temporarily) block General monitoring by default when it is
+    # running on bytestream
+    acf.addFlag('DQ.Steering.HLT.doGeneral', lambda flags: 'TriggerMenu' in GetFileMD(flags.Input.Files))
     acf.addFlag('DQ.Steering.HLT.doBjet', True)
     acf.addFlag('DQ.Steering.HLT.doBphys', True)
     acf.addFlag('DQ.Steering.HLT.doCalo', True)
@@ -38,45 +41,47 @@ def TrigHLTMonTopConfig(inputFlags):
     from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
     result = ComponentAccumulator()
 
-    if inputFlags.DQ.Steering.HLT.doGeneral:
-        from TrigHLTMonitoring.TrigGeneralMonitorAlgorithm import TrigGeneralMonConfig
-        result.merge(TrigGeneralMonConfig(inputFlags))
+    # do not run in RAWtoESD, if we have two-step reco
+    if inputFlags.DQ.Environment in ('online', 'tier0', 'tier0ESD', 'AOD'):
+        if inputFlags.DQ.Steering.HLT.doGeneral:
+            from TrigHLTMonitoring.TrigGeneralMonitorAlgorithm import TrigGeneralMonConfig
+            result.merge(TrigGeneralMonConfig(inputFlags))
 
-    if inputFlags.DQ.Steering.HLT.doBjet:
-        from TrigBjetMonitoring.TrigBjetMonitorAlgorithm import TrigBjetMonConfig
-        result.merge(TrigBjetMonConfig(inputFlags))
+        if inputFlags.DQ.Steering.HLT.doBjet:
+            from TrigBjetMonitoring.TrigBjetMonitorAlgorithm import TrigBjetMonConfig
+            result.merge(TrigBjetMonConfig(inputFlags))
 
-    if inputFlags.DQ.Steering.HLT.doBphys:
-        from TrigBphysMonitoring.TrigBphysMonitorAlgorithm import TrigBphysMonConfig
-        result.merge(TrigBphysMonConfig(inputFlags))
+        if inputFlags.DQ.Steering.HLT.doBphys:
+            from TrigBphysMonitoring.TrigBphysMonitorAlgorithm import TrigBphysMonConfig
+            result.merge(TrigBphysMonConfig(inputFlags))
 
-    if inputFlags.DQ.Steering.HLT.doCalo:
-        from TrigCaloMonitoring.TrigCaloMonitorAlgorithm import TrigCaloMonConfig
-        result.merge(TrigCaloMonConfig(inputFlags))
+        if inputFlags.DQ.Steering.HLT.doCalo:
+            from TrigCaloMonitoring.TrigCaloMonitorAlgorithm import TrigCaloMonConfig
+            result.merge(TrigCaloMonConfig(inputFlags))
 
-    if inputFlags.DQ.Steering.HLT.doEgamma:
-        from TrigEgammaMonitoring.TrigEgammaMonitorAlgorithm import TrigEgammaMonConfig
-        result.merge(TrigEgammaMonConfig(inputFlags))
+        if inputFlags.DQ.Steering.HLT.doEgamma:
+            from TrigEgammaMonitoring.TrigEgammaMonitorAlgorithm import TrigEgammaMonConfig
+            result.merge(TrigEgammaMonConfig(inputFlags))
 
-    if inputFlags.DQ.Steering.HLT.doJet:
-        from TrigJetMonitoring.TrigJetMonitorAlgorithm import TrigJetMonConfig
-        result.merge(TrigJetMonConfig(inputFlags))
+        if inputFlags.DQ.Steering.HLT.doJet:
+            from TrigJetMonitoring.TrigJetMonitorAlgorithm import TrigJetMonConfig
+            result.merge(TrigJetMonConfig(inputFlags))
 
-    if inputFlags.DQ.Steering.HLT.doMET:
-        from TrigMETMonitoring.TrigMETMonitorAlgorithm import TrigMETMonConfig
-        result.merge(TrigMETMonConfig(inputFlags))
+        if inputFlags.DQ.Steering.HLT.doMET:
+            from TrigMETMonitoring.TrigMETMonitorAlgorithm import TrigMETMonConfig
+            result.merge(TrigMETMonConfig(inputFlags))
 
-    if inputFlags.DQ.Steering.HLT.doMinBias:
-        from TrigMinBiasMonitoring.TrigMinBiasMonitoringMT import TrigMinBias
-        result.merge(TrigMinBias(inputFlags))
+        if inputFlags.DQ.Steering.HLT.doMinBias:
+            from TrigMinBiasMonitoring.TrigMinBiasMonitoringMT import TrigMinBias
+            result.merge(TrigMinBias(inputFlags))
 
-    if inputFlags.DQ.Steering.HLT.doMuon:
-        from TrigMuonMonitoringMT.TrigMuonMonitoringMTConfig import TrigMuonMonConfig
-        result.merge(TrigMuonMonConfig(inputFlags))
+        if inputFlags.DQ.Steering.HLT.doMuon:
+            from TrigMuonMonitoringMT.TrigMuonMonitoringMTConfig import TrigMuonMonConfig
+            result.merge(TrigMuonMonConfig(inputFlags))
 
-    if inputFlags.DQ.Steering.HLT.doTau:
-        from TrigTauMonitoring.TrigTauMonitorAlgorithm import TrigTauMonConfig
-        result.merge(TrigTauMonConfig(inputFlags))
+        if inputFlags.DQ.Steering.HLT.doTau:
+            from TrigTauMonitoring.TrigTauMonitorAlgorithm import TrigTauMonConfig
+            result.merge(TrigTauMonConfig(inputFlags))
 
     return result
 
diff --git a/Trigger/TrigMonitoring/TrigJetMonitoring/python/TrigJetMonitorAlgorithm.py b/Trigger/TrigMonitoring/TrigJetMonitoring/python/TrigJetMonitorAlgorithm.py
index bfd4127d19a26615f1a58e8b1996fa0463336ee5..05eae3edd3ee58507ba713d160a78d761729eb14 100644
--- a/Trigger/TrigMonitoring/TrigJetMonitoring/python/TrigJetMonitorAlgorithm.py
+++ b/Trigger/TrigMonitoring/TrigJetMonitoring/python/TrigJetMonitorAlgorithm.py
@@ -109,6 +109,8 @@ TurnOnCurves['Legacy'] = { # ref chain, offline jet coll
   'HLT_2j330_a10t_lcw_jes_35smcINF_L1J100' : ['HLT_j175','AntiKt4EMTopoJets'],
   'HLT_3j200'                              : ['HLT_j175','AntiKt4EMTopoJets'],
 }
+JetColls2Match['Legacy'] = {
+}
 
 #########################################################
 # Helpful functions
diff --git a/Trigger/TrigMonitoring/TrigTauMonitoring/python/TrigTauMonitoringConfigMT.py b/Trigger/TrigMonitoring/TrigTauMonitoring/python/TrigTauMonitoringConfigMT.py
index 42295b44a3a372387ba8db8377cd49dc580b0f76..3bbf0ade1af4c02fd75ad4c07bff9b518c34a399 100644
--- a/Trigger/TrigMonitoring/TrigTauMonitoring/python/TrigTauMonitoringConfigMT.py
+++ b/Trigger/TrigMonitoring/TrigTauMonitoring/python/TrigTauMonitoringConfigMT.py
@@ -198,10 +198,11 @@ class TrigTauMonAlgBuilder:
   #
   def bookRNNInputVars( self, monAlg, trigger,nProng, online ):
 
-    monGroupName = trigger+'/RNN/'+('HLT' if online else 'Offline')+'/InputScalar_'+nProng
+    monGroupName = trigger+'_RNN_'+('HLT' if online else 'Offline')+'_InputScalar_'+nProng
+    monGroupPath = trigger+'/RNN/'+('HLT' if online else 'Offline')+'/InputScalar_'+nProng
 
     monGroup = self.helper.addGroup( monAlg, monGroupName, 
-                              self.basePath+'/'+monGroupName )
+                              self.basePath+'/'+monGroupPath )
 
     monGroup.defineHistogram('centFrac', title='Centrality Fraction ('+nProng+'); centFrac; Events',xbins=50,xmin=-0.05,xmax=1.2)
     monGroup.defineHistogram('etOverPtLeadTrk', title='etOverPtLeadTrk log ('+nProng+'); etOverPtLeadTrk_log; Events',xbins=60,xmin=-3.,xmax=3.)
@@ -216,10 +217,11 @@ class TrigTauMonAlgBuilder:
 
   def bookRNNTrack( self, monAlg, trigger, online ):
 
-    monGroupName = trigger+'/RNN/'+('HLT' if online else 'Offline')+'/InputTrack'
+    monGroupName = trigger+'_RNN_'+('HLT' if online else 'Offline')+'_InputTrack'
+    monGroupPath = trigger+'/RNN/'+('HLT' if online else 'Offline')+'/InputTrack'
 
     monGroup = self.helper.addGroup( monAlg, monGroupName,
-                              self.basePath+'/'+monGroupName )
+                              self.basePath+'/'+monGroupPath )
 
     monGroup.defineHistogram('track_pt_log',title='track_pt_log;track_pt_log;Events',xbins=20,xmin=2,xmax=7)
     monGroup.defineHistogram('track_pt_jetseed_log',title='track_pt_jetseed_log;track_pt_jetseed_log;Events',xbins=50,xmin=2,xmax=7)
@@ -233,10 +235,11 @@ class TrigTauMonAlgBuilder:
 
   def bookRNNCluster( self, monAlg, trigger, online ):
 
-    monGroupName = trigger+'/RNN/'+('HLT' if online else 'Offline')+'/InputCluster'
+    monGroupName = trigger+'_RNN_'+('HLT' if online else 'Offline')+'_InputCluster'
+    monGroupPath = trigger+'/RNN/'+('HLT' if online else 'Offline')+'/InputCluster'
 
     monGroup = self.helper.addGroup( monAlg, monGroupName,
-                              self.basePath+'/'+monGroupName )
+                              self.basePath+'/'+monGroupPath )
                               
     monGroup.defineHistogram('cluster_et_log',title='cluster_et_log; cluster_et_log;Events',xbins=30,xmin=0,xmax=6)
     monGroup.defineHistogram('cluster_pt_jetseed_log',title='cluster_pt_jetseed_log; cluster_pt_jetseed_log;Events',xbins=50,xmin=2,xmax=7)
diff --git a/Trigger/TrigMonitoring/TrigTauMonitoring/src/TrigTauMonitorAlgorithm.cxx b/Trigger/TrigMonitoring/TrigTauMonitoring/src/TrigTauMonitorAlgorithm.cxx
index f764c4bb49571483703de5a4ee9648a34e4f5aa9..1fc9586e8c947a8318b8fab52184361bdf85137d 100644
--- a/Trigger/TrigMonitoring/TrigTauMonitoring/src/TrigTauMonitorAlgorithm.cxx
+++ b/Trigger/TrigMonitoring/TrigTauMonitoring/src/TrigTauMonitorAlgorithm.cxx
@@ -14,6 +14,7 @@ TrigTauMonitorAlgorithm::~TrigTauMonitorAlgorithm() {}
 
 StatusCode TrigTauMonitorAlgorithm::initialize() {
 
+  ATH_CHECK( AthMonitorAlgorithm::initialize() );
   ATH_CHECK( m_offlineTauJetKey.initialize() );
   ATH_CHECK( m_l1TauRoIKey.initialize() );
   ATH_CHECK( m_hltTauJetKey.initialize() );
@@ -34,7 +35,7 @@ StatusCode TrigTauMonitorAlgorithm::initialize() {
      }
   }
 
-  return AthMonitorAlgorithm::initialize();
+  return StatusCode::SUCCESS;
 }
 
 
@@ -183,7 +184,7 @@ void TrigTauMonitorAlgorithm::fillRNNInputVars(const std::string trigger, std::v
 {
   ATH_MSG_DEBUG("Fill RNN input variables: " << trigger);
 
-  auto monGroup = getGroup(trigger+( online ? "/RNN/HLT/InputScalar_"+nProng : "/RNN/Offline/InputScalar_"+nProng));  
+  auto monGroup = getGroup(trigger+( online ? "_RNN_HLT_InputScalar_"+nProng : "_RNN_Offline_InputScalar_"+nProng));  
 
   auto centFrac           = Monitored::Collection("centFrac", tau_vec,  [] (const xAOD::TauJet* tau){
                                                     float detail = -999;
@@ -241,7 +242,7 @@ void TrigTauMonitorAlgorithm::fillRNNTrack(const std::string trigger, std::vecto
   ATH_MSG_DEBUG("Fill RNN input Track: " << trigger);
   
 
-  auto monGroup = getGroup(trigger+( online ? "/RNN/HLT/InputTrack" : "/RNN/Offline/InputTrack"));
+  auto monGroup = getGroup(trigger+( online ? "_RNN_HLT_InputTrack" : "_RNN_Offline_InputTrack"));
   
     for(auto tau: tau_vec){
       // Don't call ->allTracks() unless the element links are valid
@@ -319,7 +320,7 @@ void TrigTauMonitorAlgorithm::fillRNNCluster(const std::string trigger, std::vec
 {
   ATH_MSG_DEBUG("Fill RNN input Cluster: " << trigger);
   
-  auto monGroup = getGroup(trigger+( online ? "/RNN/HLT/InputCluster" : "/RNN/Offline/InputCluster"));
+  auto monGroup = getGroup(trigger+( online ? "_RNN_HLT_InputCluster" : "_RNN_Offline_InputCluster"));
   
   for(auto tau: tau_vec){