From 8f3ce0261aaea84d657aef0866c2bb94d32dcfeb Mon Sep 17 00:00:00 2001
From: Nikita Belyaev <nikita.belyaev@cern.ch>
Date: Mon, 9 Aug 2021 18:30:34 +0000
Subject: [PATCH] TRTMonitoringRun3 release for the M9

---
 .../data/postprocessing/TRTmon.yaml           |   43 +-
 .../TRTMonitoringRun3ESD_Alg.h                |    8 +-
 .../TRTMonitoringRun3RAW_Alg.h                |    5 +
 .../python/TRTMonitoringRun3ESD_Alg.py        |   36 +-
 .../python/TRTMonitoringRun3RAW_Alg.py        |  124 +-
 .../python/TRTPostProcessing.py               |   79 +-
 .../TRTMonitoringRun3RAW_Alg_jobOptions.py    |  133 +-
 .../src/TRTMonitoringRun3ESD_Alg.cxx          |  140 +-
 .../src/TRTMonitoringRun3RAW_Alg.cxx          | 1738 ++++++++++-------
 9 files changed, 1444 insertions(+), 862 deletions(-)

diff --git a/DataQuality/DataQualityUtils/data/postprocessing/TRTmon.yaml b/DataQuality/DataQualityUtils/data/postprocessing/TRTmon.yaml
index 16f185e825e..aa5eba91145 100644
--- a/DataQuality/DataQualityUtils/data/postprocessing/TRTmon.yaml
+++ b/DataQuality/DataQualityUtils/data/postprocessing/TRTmon.yaml
@@ -3,12 +3,37 @@
 # Separate blocks with ---
 #
 ---
-Input:  [ 'run_(?P<n>\d.....)/TRT/Barrel/Stack(?P<stack>\d.)(?P<side>[A,C]*)/hHitAMapS' ]
-Output: [ 'run_{n}/TRT/Barrel/Stack{stack}{side}/hOccupancyS' ]
-Function: TRTMonitoringRun3.TRTPostProcessing.occupancyS
-Description: TRTOCCS
----
-Input:  [ 'run_(?P<n>\d.....)/TRT/Barrel/Stack(?P<stack>\d.)(?P<side>[A,C]*)/hHitAMapC' ]
-Output: [ 'run_{n}/TRT/Barrel/Stack{stack}{side}/hOccupancyC' ]
-Function: TRTMonitoringRun3.TRTPostProcessing.occupancyC
-Description: TRTOCCC
\ No newline at end of file
+Input:  [ 'run_(?P<n>\d.....)/TRT/(?P<region>Barrel/Stack\d.[A,C]*|[EndcapA|EndcapC]*/Sector\d.)/hHitAMap(?P<element>S|C)' ]
+Output: [ 'run_{n}/TRT/{region}/hOccupancy{element}' ]
+Function: TRTMonitoringRun3.TRTPostProcessing.hOccupancy
+Description: TRTOCCUPANCY
+---
+Input:  [ 'run_(?P<n>\d.....)/TRT/(?P<region>Barrel/Stack\d.[A,C]*|[EndcapA|EndcapC]*/Sector\d.)/(?P<histogram>unscaled_hHitHWonTMap|hEfficiency)(?P<element>S|C)' ]
+Output: [ 'run_{n}/TRT/{region}/hHitHWonTMap{element}' ]
+Function: TRTMonitoringRun3.TRTPostProcessing.hHitXonTMap
+Description: TRTHITHWONTMAP
+---
+Input:  [ 'run_(?P<n>\d.....)/TRT/(?P<region>Barrel/Stack\d.[A,C]*|[EndcapA|EndcapC]*/Sector\d.)/(?P<histogram>unscaled_hHitWonTMap|hEfficiency)(?P<element>S|C)' ]
+Output: [ 'run_{n}/TRT/{region}/hHitWonTMap{element}' ]
+Function: TRTMonitoringRun3.TRTPostProcessing.hHitXonTMap
+Description: TRTHITWONTMAP
+---
+Input:  [ 'run_(?P<n>\d.....)/TRT/(?P<region>Barrel/Stack\d.[A,C]*|[EndcapA|EndcapC]*/Sector\d.)/(?P<histogram>unscaled_hHitAonTMap|hEfficiency)(?P<element>S|C)' ]
+Output: [ 'run_{n}/TRT/{region}/hHitAonTMap{element}' ]
+Function: TRTMonitoringRun3.TRTPostProcessing.hHitXonTMap
+Description: TRTHITAONTMAP
+---
+Input:  [ 'run_(?P<n>\d.....)/TRT/(?P<region>Barrel/Stack\d.[A,C]*|[EndcapA|EndcapC]*/Sector\d.)/(?P<histogram>unscaled_hHitAWonTMap|hEfficiency)(?P<element>S|C)' ]
+Output: [ 'run_{n}/TRT/{region}/hHitAWonTMap{element}' ]
+Function: TRTMonitoringRun3.TRTPostProcessing.hHitXonTMap
+Description: TRTHITAWONTMAP
+---
+Input:  [ 'run_(?P<n>\d.....)/TRT/(?P<region>Barrel/Stack\d.[A,C]*|[EndcapA|EndcapC]*/Sector\d.)/(?P<histogram>unscaled_hHitHonTMap|hEfficiency)(?P<element>S|C)' ]
+Output: [ 'run_{n}/TRT/{region}/hHitHonTMap{element}' ]
+Function: TRTMonitoringRun3.TRTPostProcessing.hHitXonTMap
+Description: TRTHITHONTMAP
+---
+Input:  [ 'run_(?P<n>\d.....)/TRT/(?P<region>Barrel/Stack\d.[A,C]*|[EndcapA|EndcapC]*/Sector\d.)/(?P<histogram>unscaled_hHitAonTMap|hHitAMap|unscaled_hHitAMap)(?P<element>S|C)' ]
+Output: [ 'run_{n}/TRT/{region}/hHitOnTrackVsAll{element}' ]
+Function: TRTMonitoringRun3.TRTPostProcessing.hHitOnTrackVsAll
+Description: TRTHITONTRACKVSALL
diff --git a/InnerDetector/InDetMonitoring/TRTMonitoringRun3/TRTMonitoringRun3/TRTMonitoringRun3ESD_Alg.h b/InnerDetector/InDetMonitoring/TRTMonitoringRun3/TRTMonitoringRun3/TRTMonitoringRun3ESD_Alg.h
index e447bf5f7d5..cfda0e201ac 100644
--- a/InnerDetector/InDetMonitoring/TRTMonitoringRun3/TRTMonitoringRun3/TRTMonitoringRun3ESD_Alg.h
+++ b/InnerDetector/InDetMonitoring/TRTMonitoringRun3/TRTMonitoringRun3/TRTMonitoringRun3ESD_Alg.h
@@ -45,7 +45,7 @@ namespace Trk {
 namespace InDetDD {
     class TRT_DetectorManager;
 }
- 
+
 class AtlasDetectorID;
 class TRT_ID;
 class Identifier;
@@ -72,9 +72,9 @@ private:
     StatusCode fillTRTTracks(const xAOD::TrackParticleContainer& trackCollection,
                          const xAOD::TrigDecision* trigDecision,
                          const ComTime* comTimeObject,
-                         const xAOD::EventInfo& eventInfo) const;                             
+                         const xAOD::EventInfo& eventInfo) const;
     StatusCode fillTRTHighThreshold(const xAOD::TrackParticleContainer& trackCollection,
-                                const xAOD::EventInfo& eventInfo) const;
+                                const xAOD::EventInfo& eventInfo, const EventContext& ctx) const;
     int strawLayerNumber(int strawLayerNumber, int LayerNumber) const;
 
 
@@ -159,7 +159,7 @@ private:
         }
         return Gas;
     }
-    
+
     int  m_EventBurstCut;
 };
 #endif
diff --git a/InnerDetector/InDetMonitoring/TRTMonitoringRun3/TRTMonitoringRun3/TRTMonitoringRun3RAW_Alg.h b/InnerDetector/InDetMonitoring/TRTMonitoringRun3/TRTMonitoringRun3/TRTMonitoringRun3RAW_Alg.h
index 22b858b6bdd..c8439de79d0 100644
--- a/InnerDetector/InDetMonitoring/TRTMonitoringRun3/TRTMonitoringRun3/TRTMonitoringRun3RAW_Alg.h
+++ b/InnerDetector/InDetMonitoring/TRTMonitoringRun3/TRTMonitoringRun3/TRTMonitoringRun3RAW_Alg.h
@@ -67,6 +67,7 @@ private:
     enum GasType{ Xe = 0, Ar = 1, Kr = 2 };
     
     static const int s_Straw_max[2];
+    static const int s_iChip_max[2];
     
     static const int s_numberOfBarrelStacks;
 	static const int s_numberOfEndCapStacks;
@@ -82,6 +83,7 @@ private:
     bool m_useHoleFinder;
     bool m_doHitsMon;
     float m_DistToStraw;
+    float m_usedEvents;
     
     BooleanProperty m_ArgonXenonSplitter{this, "doArgonXenonSeparation", true};
     
@@ -111,11 +113,14 @@ private:
     int chipToBoard(int chip) const;
     int chipToBoard_EndCap(int chip) const;
     StatusCode checkTRTReadoutIntegrity(const xAOD::EventInfo& eventInfo) const;
+    std::vector<std::vector<std::vector<int>>>  initScaleVectors() const;
     bool checkEventBurst(const TRT_RDO_Container& rdoContainer) const;
     int strawNumberEndCap(int strawNumber, int strawLayerNumber, int LayerNumber, int phi_stack, int side) const;
     int strawNumber(int strawNumber, int strawlayerNumber, int LayerNumber) const;
     int strawLayerNumber(int strawLayerNumber, int LayerNumber) const;
     float radToDegrees(float radValue) const;
+    int strawNumber_reverse(int inp_strawnumber,  int* strawNumber, int* strawlayerNumber, int* LayerNumber) const;
+	int strawLayerNumber_reverse(int strawLayerNumInp,int* strawLayerNumber, int* LayerNumber) const;
 
     // Services
     ToolHandle<ITRT_StrawStatusSummaryTool> m_sumTool;
diff --git a/InnerDetector/InDetMonitoring/TRTMonitoringRun3/python/TRTMonitoringRun3ESD_Alg.py b/InnerDetector/InDetMonitoring/TRTMonitoringRun3/python/TRTMonitoringRun3ESD_Alg.py
index b2660039ee6..4835963b407 100644
--- a/InnerDetector/InDetMonitoring/TRTMonitoringRun3/python/TRTMonitoringRun3ESD_Alg.py
+++ b/InnerDetector/InDetMonitoring/TRTMonitoringRun3/python/TRTMonitoringRun3ESD_Alg.py
@@ -39,7 +39,7 @@ def TRTMonitoringRun3ESD_AlgConfig(inputFlags):
     from SCT_Monitoring.TrackSummaryToolWorkaround import TrackSummaryToolWorkaround
     algTRTMonitoringRun3ESD.TrackSummaryTool = result.popToolsAndMerge(TrackSummaryToolWorkaround(inputFlags))
     ############################## WORKAROUND (END) ############################
-    
+
 #     # To run job only with ID
 #    if hasattr(inputFlags, "Detector") and hasattr(inputFlags.Detector, "GeometryMuon") and hasattr(inputFlags.Detector, "GeometryID"):
 #        TrkEventCnvSuperTool = CompFactory.Trk.EventCnvSuperTool(name = "EventCnvSuperTool",
@@ -81,7 +81,7 @@ def TRTMonitoringRun3ESD_AlgConfig(inputFlags):
                     oss = 'TRT/EndcapA/Sector{0}'.format(nBarrelModules)
                 elif i >= numberOfStacks[ibe]:
                     nBarrelModules = i + 1 - 32
-                    oss = 'TRT/EndcapC/Sector{0}'.format(nBarrelModules)      
+                    oss = 'TRT/EndcapC/Sector{0}'.format(nBarrelModules)
 
             trackGroup.defineHistogram('HitTronTMapS_x,HitTronTMapS_y;hHitTronTMapS',type='TProfile',title='Mean Trailing Edge on Track: Straws;Straw Number in Stack;Time (ns)',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe],duration='run')
             trackGroup.defineHistogram('HitToTonTMapS_x,HitToTonTMapS_y;hHitToTonTMapS',type='TProfile',title='Mean ToT on Track: Straws;Straw Number in Stack;Time (ns)',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe],duration='run')
@@ -117,15 +117,21 @@ def TRTMonitoringRun3ESD_AlgConfig(inputFlags):
             shiftTrackGroup.defineHistogram('Pull_Biased_Barrel;hPull_Biased_Barrel',type='TH1F',title='Biased Track Pulls for Barrel Hits;Pulls;Entries',path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='run')
             shiftTrackGroup.defineHistogram('Residual_B_Ar;hResidual_Ar',type='TH1F',title='Residuals for Argon Straws{0};Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='lowStat')
             shiftTrackGroup.defineHistogram('Residual_B_Ar;hResidual_Ar',type='TH1F',title='Residuals for Argon Straws{0};Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='run')
+            shiftTrackGroup.defineHistogram('Residual_noTubeHits_B_Ar;hResidual_noTubeHits_Ar',type='TH1F',title='Residuals for Argon Straws{0} (no tube hits);Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='lowStat')
+            shiftTrackGroup.defineHistogram('Residual_noTubeHits_B_Ar;hResidual_noTubeHits_Ar',type='TH1F',title='Residuals for Argon Straws{0} (no tube hits);Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='run')
             shiftTrackGroup.defineHistogram('Residual_B_Ar_20GeV;hResidual_Ar_20GeV',type='TH1F',title='Residuals for Argon Straws{0} (After 20GeV pT cut);Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='run')
+            shiftTrackGroup.defineHistogram('Residual_noTubeHits_B_Ar_20GeV;hResidual_noTubeHits_Ar_20GeV',type='TH1F',title='Residuals for Argon Straws{0} (After 20GeV pT cut, no tube hits);Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='run')
             shiftTrackGroup.defineHistogram('AvgTroTDetPhi_B_Ar_x,AvgTroTDetPhi_B_Ar_y;hAvgTroTDetPhi_Ar',type='TProfile',title='Avg. Trailing Edge on Track vs #phi (2D) for Argon{0};#phi (deg);Trailing Edge (ns)'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=nPhiBins,xmin=0,xmax=360,duration='run')
             shiftTrackGroup.defineHistogram('TimeResidual_B_Ar;hTimeResidual_Ar',type='TH1F',title='Time Residuals for Argon Straws{0};Time Residual (ns);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-20,xmax=20,duration='run')
             shiftTrackGroup.defineHistogram('TimeResidual_noTubeHits_B_Ar;hTimeResidual_noTubeHits_Ar',type='TH1F',title='Time Residuals for Argon Straws{0} (no tube hits);Time Residual (ns);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-20,xmax=20,duration='run')
             shiftTrackGroup.defineHistogram('WireToTrkPosition_B_Ar;hWireToTrkPosition_Ar',type='TH1F',title='Track-to-Wire Distance for Argon{0};Track-to-Wire Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=100,xmin=-5,xmax=5,duration='run')
-            
+
             shiftTrackGroup.defineHistogram('Residual_B;hResidual_Xe',type='TH1F',title='Residuals for Xenon Straws{0};Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='lowStat')
             shiftTrackGroup.defineHistogram('Residual_B;hResidual_Xe',type='TH1F',title='Residuals for Xenon Straws{0};Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='run')
+            shiftTrackGroup.defineHistogram('Residual_noTubeHits_B;hResidual_noTubeHits_Xe',type='TH1F',title='Residuals for Xenon Straws{0} (no tube hits);Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='lowStat')
+            shiftTrackGroup.defineHistogram('Residual_noTubeHits_B;hResidual_noTubeHits_Xe',type='TH1F',title='Residuals for Xenon Straws{0} (no tube hits);Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='run')
             shiftTrackGroup.defineHistogram('Residual_B_20GeV;hResidual_Xe_20GeV',type='TH1F',title='Residuals for Xenon Straws{0} (After 20GeV pT cut);Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='run')
+            shiftTrackGroup.defineHistogram('Residual_noTubeHits_B_20GeV;hResidual_noTubeHits_Xe_20GeV',type='TH1F',title='Residuals for Xenon Straws{0} (After 20GeV pT cut, no tube hits);Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='run')
             shiftTrackGroup.defineHistogram('TimeResidual_B;hTimeResidual',type='TH1F',title='Time Residuals for Xenon Straws{0};Time Residual (ns);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-20,xmax=20,duration='run')
             shiftTrackGroup.defineHistogram('TimeResidual_noTubeHits_B;hTimeResidual_noTubeHits',type='TH1F',title='Time Residuals for Xenon Straws{0} (no tube hits);Time Residual (ns);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-20,xmax=20,duration='run')
             shiftTrackGroup.defineHistogram('WireToTrkPosition_B;hWireToTrkPosition',type='TH1F',title='Track-to-Wire Distance for Xenon{0};Track-to-Wire Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=100,xmin=-5,xmax=5,duration='run')
@@ -146,7 +152,10 @@ def TRTMonitoringRun3ESD_AlgConfig(inputFlags):
                 shiftTrackEndcapGroup.defineHistogram('NumTrksDetPhi_E;hNumTrksDetPhi_{0}'.format(sideId[iside]),type='TH1F',title='Number of Reconstructed Tracks vs #phi (2D){0};#phi (deg);Number of Tracks'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=60,xmin=0,xmax=360,duration='run')
                 shiftTrackEndcapGroup.defineHistogram('Residual_E;hResidual_Xe_{0}'.format(sideId[iside]),type='TH1F',title='Residuals for Xenon Straws{0};Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='lowStat')
                 shiftTrackEndcapGroup.defineHistogram('Residual_E;hResidual_Xe_{0}'.format(sideId[iside]),type='TH1F',title='Residuals for Xenon Straws{0};Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='run')
+                shiftTrackEndcapGroup.defineHistogram('Residual_noTubeHits_E;hResidual_noTubeHits_Xe_{0}'.format(sideId[iside]),type='TH1F',title='Residuals for Xenon Straws{0} (no tube hits);Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='lowStat')
+                shiftTrackEndcapGroup.defineHistogram('Residual_noTubeHits_E;hResidual_noTubeHits_Xe_{0}'.format(sideId[iside]),type='TH1F',title='Residuals for Xenon Straws{0} (no tube hits);Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='run')
                 shiftTrackEndcapGroup.defineHistogram('Residual_E_20GeV;hResidual_Xe_{0}_20GeV'.format(sideId[iside]),type='TH1F',title='Residuals for Xenon Straws{0} (After 20GeV pT cut);Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='run')
+                shiftTrackEndcapGroup.defineHistogram('Residual_noTubeHits_E_20GeV;hResidual_noTubeHits_Xe_{0}_20GeV'.format(sideId[iside]),type='TH1F',title='Residuals for Xenon Straws{0} (After 20GeV pT cut, no tube hits);Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='run')
                 shiftTrackEndcapGroup.defineHistogram('TimeResidual_E;hTimeResidual_{0}'.format(sideId[iside]),type='TH1F',title='Time Residuals for Xenon Straws{0};Time Residual (ns);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-20,xmax=20,duration='run')
                 shiftTrackEndcapGroup.defineHistogram('TimeResidual_noTubeHits_E;hTimeResidual_noTubeHits_{0}'.format(sideId[iside]),type='TH1F',title='Time Residuals for Xenon Straws{0} (no tube hits);Time Residual (ns);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-20,xmax=20,duration='run')
 
@@ -156,20 +165,23 @@ def TRTMonitoringRun3ESD_AlgConfig(inputFlags):
                 shiftTrackEndcapGroup.defineHistogram('DriftTimeonTrkDist_E_Ar;hDriftTimeonTrkDist_Ar_{0}'.format(sideId[iside]),type='TH1F',title='Drift Time Distribution on Track for Argon Straws{0};Drift Time (ns);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=32,xmin=0,xmax=100,duration='run')
                 shiftTrackEndcapGroup.defineHistogram('Residual_E_Ar;hResidual_Ar_{0}'.format(sideId[iside]),type='TH1F',title='Residuals for Argon Straws{0};Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='lowStat')
                 shiftTrackEndcapGroup.defineHistogram('Residual_E_Ar;hResidual_Ar_{0}'.format(sideId[iside]),type='TH1F',title='Residuals for Argon Straws{0};Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='run')
+                shiftTrackEndcapGroup.defineHistogram('Residual_noTubeHits_E_Ar;hResidual_noTubeHits_Ar_{0}'.format(sideId[iside]),type='TH1F',title='Residuals for Argon Straws{0} (no tube hits);Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='lowStat')
+                shiftTrackEndcapGroup.defineHistogram('Residual_noTubeHits_E_Ar;hResidual_noTubeHits_Ar_{0}'.format(sideId[iside]),type='TH1F',title='Residuals for Argon Straws{0} (no tube hits);Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='run')
                 shiftTrackEndcapGroup.defineHistogram('Residual_E_Ar_20GeV;hResidual_Ar_{0}_20GeV'.format(sideId[iside]),type='TH1F',title='Residuals for Argon Straws{0} (After 20GeV pT cut);Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='run')
+                shiftTrackEndcapGroup.defineHistogram('Residual_noTubeHits_E_Ar_20GeV;hResidual_noTubeHits_Ar_{0}_20GeV'.format(sideId[iside]),type='TH1F',title='Residuals for Argon Straws{0} (After 20GeV pT cut, no tube hits);Hit-to-Track Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-2.5,xmax=2.5,duration='run')
                 shiftTrackEndcapGroup.defineHistogram('TimeResidual_E_Ar;hTimeResidual_Ar_{0}'.format(sideId[iside]),type='TH1F',title='Time Residuals for Argon Straws{0};Time Residual (ns);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-20,xmax=20,duration='run')
                 shiftTrackEndcapGroup.defineHistogram('TimeResidual_noTubeHits_E_Ar;hTimeResidual_noTubeHits_Ar_{0}'.format(sideId[iside]),type='TH1F',title='Time Residuals for Argon Straws{0} (no tube hits);Time Residual (ns);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=200,xmin=-20,xmax=20,duration='run')
                 shiftTrackEndcapGroup.defineHistogram('WireToTrkPosition_E_Ar;hWireToTrkPosition_Ar_{0}'.format(sideId[iside]),type='TH1F',title='Track-to-Wire Distance for Argon{0};Track-to-Wire Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=100,xmin=-5,xmax=5,duration='run')
-                
+
                 shiftTrackEndcapGroup.defineHistogram('WireToTrkPosition_E;hWireToTrkPosition_{0}'.format(sideId[iside]),type='TH1F',title='Track-to-Wire Distance for Xenon{0};Track-to-Wire Distance (mm);Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=100,xmin=-5,xmax=5,duration='run')
                 shiftTrackEndcapGroup.defineHistogram('AvgTroTDetPhi_E_x,AvgTroTDetPhi_E_y;hAvgTroTDetPhi_{0}'.format(sideId[iside]),type='TProfile',title='Avg. Trailing Edge on Track vs #phi (2D) for Xenon{0};#phi (deg);Trailing Edge (ns)'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=nPhiBins,xmin=0,xmax=360,duration='run')
                 shiftTrackEndcapGroup.defineHistogram('NTrksperLB_x,NTrksperLB_y;hNTrksperLB_{0}'.format(sideId[iside]),type='TProfile',title='Avg. Number of Reconstructed Tracks per Even{0};Luminosity Block;Number of Tracks'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=maxLumiblock,xmin=-0.5,xmax=maxLumiblock-0.5,duration='run')
                 #CAN_REBIN(hNTrksperLB_[iside]);
-                
+
         #Initialize Aging plots
         for iL in range(5):
-            for iSide in range(2): 
-                if ibe == 0: 
+            for iSide in range(2):
+                if ibe == 0:
                     if iL < 3:
                         agingGroup = helper.addGroup(algTRTMonitoringRun3ESD,'TRTAgingHistograms0{0}{1}'.format(iL,iSide))
                         agingGroup.defineHistogram('Trackz_All;trackz_m{0}_{1}_All'.format(Mod[iL],sideId[iSide]),type='TH1F',title='Number All Hits side {0} Layer {1};z [mm];Number of Hits'.format(sideId[iSide],Mod[iL]),path='TRT/Aging/{0}'.format(barrelOrEndcap[ibe]),xbins=30,xmin=-750.,xmax=750.,duration='run')
@@ -190,7 +202,7 @@ def TRTMonitoringRun3ESD_AlgConfig(inputFlags):
                         agingGroup.defineHistogram('Trackz_HT;trackz_m1_{0}_HT_{1}'.format(sideId[iSide],Mod[iL]),type='TH1F',title='Number HT Hits side {0} Layer 1 {1};z [mm];Number of HT Hits'.format(sideId[iSide],Mod[iL]),path='TRT/Aging/{0}'.format(barrelOrEndcap[ibe]),xbins=30,xmin=-725.,xmax=0.,duration='lowStat')
                 elif ibe == 1:
                     # prevent double booking of histograms here
-                    if iL < 4: 
+                    if iL < 4:
                         agingGroup = helper.addGroup(algTRTMonitoringRun3ESD,'TRTAgingHistograms1{0}{1}'.format(iL,iSide))
                         agingGroup.defineHistogram('Trackr_All;trackr_E{0}_{1}_All'.format(sideId[iSide],gas[iL]),type='TH1F',title='Number All Hits E{0} {1};r [mm];Number of Hits'.format(sideId[iSide],gas[iL]),path='TRT/Aging/{0}'.format(barrelOrEndcap[ibe]),xbins=30,xmin=644.,xmax=1004.,duration='run')
                         agingGroup.defineHistogram('Trackr_All;trackr_E{0}_{1}_All'.format(sideId[iSide],gas[iL]),type='TH1F',title='Number All Hits E{0} {1};r [mm];Number of Hits'.format(sideId[iSide],gas[iL]),path='TRT/Aging/{0}'.format(barrelOrEndcap[ibe]),xbins=30,xmin=644.,xmax=1004.,duration='lowStat')
@@ -199,8 +211,10 @@ def TRTMonitoringRun3ESD_AlgConfig(inputFlags):
 
     smryGroup = helper.addGroup(algTRTMonitoringRun3ESD,'SmryHistograms')
     sumLabels = ['Events', 'Tracks Total', 'Tracks BA', 'Tracks BC', 'Tracks EA', 'Tracks EC', 'Transition Side A', 'Transition Side C']
-    smryGroup.defineHistogram('Summary;hSummary',weight='SummaryWeight',type='TH1F',title='Run Summary;;Entries',path='TRT/Shift/Summary',xbins=8,xmin=0,xmax=8,xlabels=sumLabels) 
-
+    smryGroup.defineHistogram('Summary;hSummary',weight='SummaryWeight',type='TH1F',title='Run Summary;;Entries',path='TRT/Shift/Summary',xbins=8,xmin=0,xmax=8,xlabels=sumLabels)
+    smryGroup.defineHistogram('IntLum;hIntLum',weight='IntLumWeight',type='TH1F',title='Luminosity;;Luminosity [#mub^{1}]',path='TRT/Shift/Summary',xbins=1,xmin=0.,xmax=1.)
+    smryGroup.defineHistogram('LBvsLum;hLBvsLum',weight='LBvsLumWeight',type='TH1F',title='Luminosity;Luminosity Bin;Luminosity [#mub^{1}]',path='TRT/Shift/Summary',xbins=2000,xmin=0.,xmax=2000.)
+    smryGroup.defineHistogram('LBvsTime;hLBvsTime',weight='LBvsTimeWeight',type='TH1F',title='Time;Luminosity Bin;Time [s]',path='TRT/Shift/Summary',xbins=2000,xmin=0.,xmax=2000.)
 
     acc = helper.result()
     result.merge(acc)
@@ -252,4 +266,4 @@ if __name__ == '__main__':
     ServiceMgr.Dump = False
 
     cfg.merge(TRTMonitoringRun3Acc)
-    cfg.run(200)
+    cfg.run(100)
diff --git a/InnerDetector/InDetMonitoring/TRTMonitoringRun3/python/TRTMonitoringRun3RAW_Alg.py b/InnerDetector/InDetMonitoring/TRTMonitoringRun3/python/TRTMonitoringRun3RAW_Alg.py
index 737aac03293..6690133d2ea 100644
--- a/InnerDetector/InDetMonitoring/TRTMonitoringRun3/python/TRTMonitoringRun3RAW_Alg.py
+++ b/InnerDetector/InDetMonitoring/TRTMonitoringRun3/python/TRTMonitoringRun3RAW_Alg.py
@@ -55,8 +55,8 @@ def TRTMonitoringRun3RAW_AlgConfig(inputFlags):
         algTRTMonitoringRun3RAW.trt_hole_search=TRTHoleSearch()
 
 
-    maxLumiBlock         = 200
-    maxLumiblock         = 720
+    maxLumiBlockSummary  = 200
+    maxLumiBlockShift    = 720
     numberOfBarrelStacks = 32
     distToStraw          = 0.4
     numberOfStacks       = (32, 32)
@@ -89,50 +89,44 @@ def TRTMonitoringRun3RAW_AlgConfig(inputFlags):
                 elif i >= numberOfStacks[ibe]:
                     oss = 'TRT/EndcapC/Sector' + str(i + 1 - 32)
 
-            rdoStackGroup.defineHistogram('HitWMapS_passed,strawNumber;hHitWMapS',type='TEfficiency',title='Leading Edge in Time Window: Straws;Straw Number in Stack;Probability per Event',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+            rdoStackGroup.defineHistogram('strawNumber,HitWMapS_passed;hHitWMapS',cutmask='HitWMapS_cut',type='TProfile',title='Leading Edge in Time Window: Straws;Straw Number in Stack;Probability per Event',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
             rdoStackGroup.defineHistogram('strawNumber,HitTrWMapS_y;hHitTrWMapS',cutmask='HitTrWMapS_cut',type='TProfile',title='Mean Trailing Edge in Time Window: Straws;Straw Number in Stack;Time (ns)',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
             rdoStackGroup.defineHistogram('strawNumber,HitTrMapS_y;hHitTrMapS',type='TProfile',title='Mean Trailing Edge: Straws;Straw Number in Stack;Time (ns)',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-            rdoStackGroup.defineHistogram('HitAWMapS_passed,strawNumber;hHitAWMapS',type='TEfficiency',title='LL in Time Window: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-            rdoStackGroup.defineHistogram('HitAMapS_passed,strawNumber;hHitAMapS',type='TEfficiency',title='Any LL Bit: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-            rdoStackGroup.defineHistogram('StrawOcc_passed,StrawOcc;hOccupancyS',type='TEfficiency',title='Straw Occupancy Distribution: Straws;Occupancy;Number of Straws',path=oss,xbins=201,xmin=0,xmax=1.005)
+            rdoStackGroup.defineHistogram('strawNumber,HitAWMapS_passed;hHitAWMapS',cutmask='HitAWMapS_cut',type='TProfile',title='LL in Time Window: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+            rdoStackGroup.defineHistogram('strawNumber,HitAMapS_passed;hHitAMapS',cutmask='HitAMapS_cut',type='TProfile',title='Any LL Bit: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+            rdoStackGroup.defineHistogram('strawNumber;unscaled_hHitAMapS',cutmask='HitAMapS_cut',type='TH1F',title='Any LL Bit: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+            rdoStackGroup.defineHistogram('StrawOcc,StrawOcc_passed;hOccupancyS',type='TProfile',title='Straw Occupancy Distribution: Straws;Occupancy;Number of Straws',path=oss,xbins=201,xmin=0,xmax=1.005)
             rdoStackGroup.defineHistogram('strawNumber,HitToTMapS_y;hHitToTMapS',type='TProfile',title='Mean ToT: Straws;Straw Number in Stack;Time (ns)',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
             rdoStackGroup.defineHistogram('strawNumber,HitToTMapS_y;hHitToTLongMapS',cutmask='HitToTLong_cut',type='TProfile',title='Mean ToT for Straws with ToT > LongToTCut: Straws;Straw Number in Stack;Time (ns)',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-            rdoStackGroup.defineHistogram('strawNumber,HitTrMapS_y;hHitToTLongTrMapS',cutmask='HitToTLong_cut',type='TProfile',title='Mean Trailing Edge for Straws with ToT > LongToTCut: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-            rdoStackGroup.defineHistogram('HitHMapS_passed,strawNumber;hHitHMapS',type='TEfficiency',title='Any HL Bit: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-            rdoStackGroup.defineHistogram('HitHWMapS_passed,strawNumber;hHitHWMapS',type='TEfficiency',title='HL in Time Window: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-            rdoStackGroup.defineHistogram('HtoLMapS_passed,HtoLMapS;hHtoLMapS',type='TEfficiency',title='HL/LL Ratio: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+            rdoStackGroup.defineHistogram('strawNumber,HitTrMapS_y;hHitToTLongTrMapS',cutmask='HitToTLong_cut',type='TProfile',title='Mean Trailing Edge for Straws with ToT > LongToTCut: Straws;Straw Number in Stack;Time (ns)',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+            rdoStackGroup.defineHistogram('strawNumber,HitHMapS_passed;hHitHMapS',cutmask='HitHMapS_cut',type='TProfile',title='Any HL Bit: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+            rdoStackGroup.defineHistogram('strawNumber,HitHWMapS_passed;hHitHWMapS',cutmask='HitHWMapS_cut',type='TProfile',title='HL in Time Window: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+            rdoStackGroup.defineHistogram('HtoLMapS,HtoLMapS_passed;hHtoLMapS',type='TProfile',title='HL/LL Ratio: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
 
-            rdoStackGroup.defineHistogram('HitWMapC_passed,chipNumber;hHitWMapC',type='TEfficiency',title='Leading Edge in Time Window: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+            rdoStackGroup.defineHistogram('chipNumber,HitWMapC_passed;hHitWMapC',cutmask='HitWMapC_cut',type='TProfile',title='Leading Edge in Time Window: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
             rdoStackGroup.defineHistogram('chipNumber,HitTrMapC_y;hHitTrMapC',type='TProfile',title='Mean Trailing Edge: Chips;Chip Number in Stack;Time (ns)',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
             rdoStackGroup.defineHistogram('chipNumber,HitTrMapC_y;hHitTrWMapC',cutmask='HitTrWMapC_cut',type='TProfile',title='Mean Trailing Edge in Time Window: Chips;Chip Number in Stack;Time (ns)',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-            rdoStackGroup.defineHistogram('HitAWMapC_passed,chipNumber;hHitAWMapC',type='TEfficiency',title='LL in Time Window: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-            rdoStackGroup.defineHistogram('HitAMapC_passed,chipNumber;hHitAMapC',type='TEfficiency',title='Any LL Bit: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+            rdoStackGroup.defineHistogram('chipNumber,HitAWMapC_passed;hHitAWMapC',cutmask='HitAWMapC_cut',type='TProfile',title='LL in Time Window: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+            rdoStackGroup.defineHistogram('chipNumber,HitAMapC_passed;hHitAMapC',cutmask='HitAMapC_cut',type='TProfile',title='Any LL Bit: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+            rdoStackGroup.defineHistogram('chipNumber;unscaled_hHitAMapC',cutmask='HitAMapC_cut',type='TH1F',title='Any LL Bit: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
             rdoStackGroup.defineHistogram('OccupancyC;hOccupancyC',type='TH1F',title='Chip Occupancy Distribution;Occupancy;Number of Chips',path=oss,xbins=201,xmin=0,xmax=1.005)
             rdoStackGroup.defineHistogram('chipNumber,HitToTMapC_y;hHitToTMapC',type='TProfile',title='Mean ToT: Chips;Chip Number in Stack;Time (ns)',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-            rdoStackGroup.defineHistogram('HitHMapC_passed,chipNumber;hHitHMapC',type='TEfficiency',title='Any HL Bit: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-            rdoStackGroup.defineHistogram('HitHWMapC_passed,chipNumber;hHitHWMapC',type='TEfficiency',title='HL in Time Window: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-            rdoStackGroup.defineHistogram('HtoLMapC_passed,HtoLMapC;hHtoLMapC',type='TEfficiency',title='HL/LL Ratio: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+            rdoStackGroup.defineHistogram('chipNumber,HitHMapC_passed;hHitHMapC',cutmask='HitHMapC_cut',type='TProfile',title='Any HL Bit: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+            rdoStackGroup.defineHistogram('chipNumber,HitHWMapC_passed;hHitHWMapC',cutmask='HitHWMapC_cut',type='TProfile',title='HL in Time Window: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+            rdoStackGroup.defineHistogram('HtoLMapC,HtoLMapC_passed;hHtoLMapC',type='TProfile',title='HL/LL Ratio: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
             rdoStackGroup.defineHistogram('HtoBCMapC_x,chipNumber;hHtoBCMapC',cutmask='HtoBCMap_cut',type='TH2F',title='HL in BC: Chips;Bunch Crossing ID;Chip Number in Stack',path=oss,xbins=3,xmin=0,xmax=3,ybins=iChipMax[ibe],ymin=0,ymax=iChipMax[ibe])
 
             if   ibe == 0: rdoStackGroup.defineHistogram('HtoBCMapB_x,HtoBCMapB_y;hHtoBCMapB',type='TH2F',title='HL in BC: Boards;Bunch Crossing ID;Board Number in Stack',path=oss,xbins=3,xmin=0,xmax=3,ybins=9,ymin=0,ymax=9)
             elif ibe == 1: rdoStackGroup.defineHistogram('HtoBCMapB_x,HtoBCMapB_y;hHtoBCMapB',type='TH2F',title='HL in BC: Boards;Bunch Crossing ID;Board Number in Stack',path=oss,xbins=3,xmin=0,xmax=3,ybins=20,ymin=-0.5,ymax=19.5)
 
-
     ### Registering Collisions Histograms ###
-    rdoShiftSmryGroup = helper.addGroup(algTRTMonitoringRun3RAW,'RDOShiftSmryHistograms')
-
-    # Luminosity summary histograms
-    rdoShiftSmryGroup.defineHistogram('IntLum_passed,IntLum;IntLum',type='TEfficiency',title='Luminosity;;Luminosity [#mub^{1}]',path='TRT/Shift/Summary',xbins=1,xmin=0.,xmax=1.)
-    rdoShiftSmryGroup.defineHistogram('LBvsLum_passed,LBvsLum;LBvsLum',type='TEfficiency',title='Luminosity;Luminosity Bin;Luminosity [#mub^{1}]',path='TRT/Shift/Summary',xbins=2000,xmin=0.,xmax=2000.)
-    rdoShiftSmryGroup.defineHistogram('LBvsTime_passed,LBvsTime;LBvsTime',type='TEfficiency',title='Time;Luminosity Bin;Time [s]',path='TRT/Shift/Summary',xbins=2000,xmin=0.,xmax=2000.)
-
     for ibe in range(2):
         for iside in range(2):
             regionTag = ' (' + beId[ibe] + sideId[iside] + ')'
             rdoShiftSmryRebinnedGroup = helper.addGroup(algTRTMonitoringRun3RAW,'RDOShiftSmryRebinnedHistograms{0}{1}'.format(ibe,iside))
-            rdoShiftSmryRebinnedGroup.defineHistogram('ChipBSErrorsVsLB_x,ChipBSErrorsVsLB_y;hChipBSErrorsVsLB{0}{1}'.format(beId[ibe],sideId[iside]),type='TProfile',title='Chip Bytestream Errors vs LB{0};Luminosity Block;Fraction of Chips with Errors'.format(regionTag),path='TRT/Shift/Summary',xbins=maxLumiBlock + 1,xmin=-0.5,xmax=maxLumiBlock + 0.5)
+            rdoShiftSmryRebinnedGroup.defineHistogram('ChipBSErrorsVsLB_x,ChipBSErrorsVsLB_y;hChipBSErrorsVsLB_{0}{1}'.format(beId[ibe],sideId[iside]),type='TProfile',title='Chip Bytestream Errors vs LB{0};Luminosity Block;Fraction of Chips with Errors'.format(regionTag),path='TRT/Shift/Summary',xbins=maxLumiBlockSummary + 1,xmin=-0.5,xmax=maxLumiBlockSummary + 0.5)
             #CAN_REBIN(m_hChipBSErrorsVsLB[ibe][iside]);
-            rdoShiftSmryRebinnedGroup.defineHistogram('RobBSErrorsVsLB_x,RobBSErrorsVsLB_y;hRobBSErrorsVsLB_{0}{1}'.format(beId[ibe],sideId[iside]),type='TProfile',title='Rob Bytestream Errors vs LB{0};Luminosity Block;Fraction of RODs with Errors'.format(regionTag),path='TRT/Shift/Summary',xbins=maxLumiBlock + 1,xmin=-0.5,xmax=maxLumiBlock + 0.5)
+            rdoShiftSmryRebinnedGroup.defineHistogram('RobBSErrorsVsLB_x,RobBSErrorsVsLB_y;hRobBSErrorsVsLB_{0}{1}'.format(beId[ibe],sideId[iside]),type='TProfile',title='Rob Bytestream Errors vs LB{0};Luminosity Block;Fraction of RODs with Errors'.format(regionTag),path='TRT/Shift/Summary',xbins=maxLumiBlockSummary + 1,xmin=-0.5,xmax=maxLumiBlockSummary + 0.5)
             #CAN_REBIN(m_hRobBSErrorsVsLB[ibe][iside]);
 
     # Barrel/Endcap Histograms
@@ -141,15 +135,15 @@ def TRTMonitoringRun3RAW_AlgConfig(inputFlags):
         rdoGroup = helper.addGroup(algTRTMonitoringRun3RAW,'RDOHistograms{0}'.format(ibe))
         rdoGroup.defineHistogram('BCIDvsOcc_x,BCIDvsOcc_y;hBCIDvsOcc',type='TProfile',title='Avg. Occupancy vs BCID{0};Bunch Crossing ID;Occupancy'.format(regionTag),path='TRT/{0}/Expert'.format(barrelOrEndcap[ibe]),xbins=3564,xmin=0,xmax=3564)
         if ibe == 0:
-            rdoGroup.defineHistogram('HitWMap_passed,strawNumber;hHitWMap',type='TEfficiency',title='Leading Edge in Time Window: Xenon Straws (Barrel);Straw Number in Stack;Probability',path='TRT/Shift/{0}'.format(str(barrelOrEndcap[ibe])),xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-            rdoGroup.defineHistogram('HitWMap_Ar_passed,strawNumber;hHitWMap_Ar',type='TEfficiency',title='Leading Edge in Time Window: Argon Straws (Barrel);Straw Number in Stack;Probability',path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+            rdoGroup.defineHistogram('strawNumber,HitWMap_passed;hHitWMap',cutmask='isNotAr',type='TProfile',title='Leading Edge in Time Window: Xenon Straws (Barrel);Straw Number in Stack;Probability',path='TRT/Shift/{0}'.format(str(barrelOrEndcap[ibe])),xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+            rdoGroup.defineHistogram('strawNumber,HitWMap_Ar_passed;hHitWMap_Ar',cutmask='isAr',type='TProfile',title='Leading Edge in Time Window: Argon Straws (Barrel);Straw Number in Stack;Probability',path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
             rdoGroup.defineHistogram('OccAll;hOccAll',type='TH1F',title='Occupancy per Event;Occupancy;Events',path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=400,xmin=0.0,xmax=1.0)
         elif ibe == 1:
             for iside in range(2):
                 side = ('A', 'C')
                 rdoEndcapGroup = helper.addGroup(algTRTMonitoringRun3RAW,'RDOHistograms1{0}'.format(iside))
-                rdoEndcapGroup.defineHistogram('HitWMap_passed,strawNumber;hHitWMap_{0}'.format(side[iside]),type='TEfficiency',title='Leading Edge in Time Window: Xenon Straws (E{0});Straw Number in Stack;Probability'.format(side[iside]),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-                rdoEndcapGroup.defineHistogram('HitWMap_Ar_passed,strawNumber;hHitWMap_Ar_{0}'.format(side[iside]),type='TEfficiency',title='Leading Edge in Time Window: Argon Straws (E{0});Straw Number in Stack;Probability'.format(side[iside]),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])   
+                rdoEndcapGroup.defineHistogram('strawNumber,HitWMap_passed;hHitWMap_{0}'.format(side[iside]),cutmask='isNotAr',type='TProfile',title='Leading Edge in Time Window: Xenon Straws (E{0});Straw Number in Stack;Probability'.format(side[iside]),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+                rdoEndcapGroup.defineHistogram('strawNumber,HitWMap_Ar_passed;hHitWMap_Ar_{0}'.format(side[iside]),cutmask='isAr',type='TProfile',title='Leading Edge in Time Window: Argon Straws (E{0});Straw Number in Stack;Probability'.format(side[iside]),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])   
         for iside in range(2):
             regionTag = ' (' + beId[ibe] + sideId[iside] + ')'
             regionMarker = (beId[ibe] + sideId[iside]) if isOnline is True else (sideId[iside])
@@ -160,22 +154,22 @@ def TRTMonitoringRun3RAW_AlgConfig(inputFlags):
             rdoLLHLOccGroup.defineHistogram('AvgHLOccMod_side_x,AvgHLOccMod_side_y;hAvgHLOccMod_{0}'.format(regionMarker),type='TProfile',title='Avg. HL Occupancy: {0}s{1};{2};Occupancy'.format(moduleOrWheel[ibe],regionTag,moduleNumAssign[ibe]),path='TRT/{0}/Expert'.format(barrelOrEndcap[ibe]),xbins=moduleNum[ibe],xmin=0,xmax=moduleNum[ibe])
 
     effGroup = helper.addGroup(algTRTMonitoringRun3RAW,'TRTEfficiencyHistograms')
-    effGroup.defineHistogram('Efficiency_eta_passed,Efficiency_eta;hefficiency_eta',type='TEfficiency',title='Efficiency vs #eta;#eta;Efficiency',path='TRT/Efficiency',xbins=50,xmin=-2.8,xmax=2.8)
-    effGroup.defineHistogram('Efficiency_phi_passed,Efficiency_phi;hefficiency_phi',type='TEfficiency',title='Efficiency vs #phi;#phi (deg);Efficiency',path='TRT/Efficiency',xbins=50,xmin=-3.2,xmax=3.2)
-    effGroup.defineHistogram('Efficiency_pt_passed,Efficiency_pt;hefficiency_pt',type='TEfficiency',title='Efficiency vs pT;pT (GeV);Efficiency',path='TRT/Efficiency',xbins=50,xmin=0,xmax=10)
-    effGroup.defineHistogram('Efficiency_z0_passed,Efficiency_z0;hefficiency_z0',type='TEfficiency',title='Efficiency vs z0;z0;Efficiency',path='TRT/Efficiency',xbins=50,xmin=-200,xmax=200)
-    effGroup.defineHistogram('EfficiencyBarrel_locR_passed,EfficiencyBarrel_locR;hefficiencyBarrel_locR',type='TEfficiency',title='Efficiency vs Track-to-Wire Distance for Xenon Straws (Barrel);Track-to-Wire Distance (mm);Efficiency',path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5)
-    effGroup.defineHistogram('EfficiencyBarrel_locR_Ar_passed,EfficiencyBarrel_locR_Ar;hefficiencyBarrel_locR_Ar',type='TEfficiency',title='Efficiency vs Track-to-Wire Distance for Argon Straws (Barrel);Track-to-Wire Distance (mm);Efficiency',path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5)
+    effGroup.defineHistogram('Efficiency_eta_passed,Efficiency_eta;hefficiency_eta',type='TProfile',title='Efficiency vs #eta;#eta;Efficiency',path='TRT/Efficiency',xbins=50,xmin=-2.8,xmax=2.8)
+    effGroup.defineHistogram('Efficiency_phi_passed,Efficiency_phi;hefficiency_phi',type='TProfile',title='Efficiency vs #phi;#phi (deg);Efficiency',path='TRT/Efficiency',xbins=50,xmin=-3.2,xmax=3.2)
+    effGroup.defineHistogram('Efficiency_pt_passed,Efficiency_pt;hefficiency_pt',type='TProfile',title='Efficiency vs pT;pT (GeV);Efficiency',path='TRT/Efficiency',xbins=50,xmin=0,xmax=10)
+    effGroup.defineHistogram('Efficiency_z0_passed,Efficiency_z0;hefficiency_z0',type='TProfile',title='Efficiency vs z0;z0;Efficiency',path='TRT/Efficiency',xbins=50,xmin=-200,xmax=200)
+    effGroup.defineHistogram('EfficiencyBarrel_locR,EfficiencyBarrel_locR_passed;hefficiencyBarrel_locR',type='TProfile',title='Efficiency vs Track-to-Wire Distance for Xenon Straws (Barrel);Track-to-Wire Distance (mm);Efficiency',path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5)
+    effGroup.defineHistogram('EfficiencyBarrel_locR_Ar,EfficiencyBarrel_locR_Ar_passed;hefficiencyBarrel_locR_Ar',type='TProfile',title='Efficiency vs Track-to-Wire Distance for Argon Straws (Barrel);Track-to-Wire Distance (mm);Efficiency',path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5)
     effBarrelGroup = helper.addGroup(algTRTMonitoringRun3RAW,'TRTEfficiencyHistogramsBarrel')
-    effBarrelGroup.defineHistogram('EfficiencyBarrelMap_passed,EfficiencyBarrelMap;hEfficiencyBarrelMap',type='TEfficiency',title='Straw Efficiency Map (Barrel);Straw Number;Efficiency',path='TRT/Efficiency',xbins=strawMax[0],xmin=0,xmax=strawMax[0])
+    effBarrelGroup.defineHistogram('EfficiencyBarrelMap,EfficiencyBarrelMap_passed;hEfficiencyBarrelMap',type='TProfile',title='Straw Efficiency Map (Barrel);Straw Number;Efficiency',path='TRT/Efficiency',xbins=strawMax[0],xmin=0,xmax=strawMax[0])
     effEndcapGroup = helper.addGroup(algTRTMonitoringRun3RAW,'TRTEfficiencyHistogramsEndCap')
-    effEndcapGroup.defineHistogram('EfficiencyEndCapMap_passed,EfficiencyEndCapMap;hEfficiencyEndCapMap',type='TEfficiency',title='Straw Efficiency Map (Endcap);Straw Number;Efficiency',path='TRT/Efficiency',xbins=strawMax[1],xmin=0,xmax=strawMax[1])
+    effEndcapGroup.defineHistogram('EfficiencyEndCapMap,EfficiencyEndCapMap_passed;hEfficiencyEndCapMap',type='TProfile',title='Straw Efficiency Map (Endcap);Straw Number;Efficiency',path='TRT/Efficiency',xbins=strawMax[1],xmin=0,xmax=strawMax[1])
 
     for iside in range(2):
         regionTag = ' (' + beId[1]   + sideId[iside] + ')'
         effTRTEndcapACGroup = helper.addGroup(algTRTMonitoringRun3RAW,'TRTEfficiencyHistogramsEndCap{0}'.format(iside))
-        effTRTEndcapACGroup.defineHistogram('EfficiencyEndCap_locR_passed,EfficiencyEndCap_locR;hEfficiencyEndCap{0}_locR'.format(sideId[iside]),type='TEfficiency',title='Efficiency vs Track-to-Wire Distance for Xenon Straws{0};Track-to-Wire Distance (mm);Efficiency'.format(regionTag),path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5)
-        effTRTEndcapACGroup.defineHistogram('EfficiencyEndCap_locR_Ar_passed,EfficiencyEndCap_locR_Ar;hEfficiencyEndCap{0}_locR_Ar'.format(sideId[iside]),type='TEfficiency',title='Efficiency vs Track-to-Wire Distance for Argon Straws{0};Track-to-Wire Distance (mm);Efficiency'.format(regionTag),path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5)
+        effTRTEndcapACGroup.defineHistogram('EfficiencyEndCap_locR,EfficiencyEndCap_locR_passed;hEfficiencyEndCap{0}_locR'.format(sideId[iside]),type='TProfile',title='Efficiency vs Track-to-Wire Distance for Xenon Straws{0};Track-to-Wire Distance (mm);Efficiency'.format(regionTag),path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5)
+        effTRTEndcapACGroup.defineHistogram('EfficiencyEndCap_locR_Ar,EfficiencyEndCap_locR_Ar_passed;hEfficiencyEndCap{0}_locR_Ar'.format(sideId[iside]),type='TProfile',title='Efficiency vs Track-to-Wire Distance for Argon Straws{0};Track-to-Wire Distance (mm);Efficiency'.format(regionTag),path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5)
 
     for ibe in range(2):
         for iside in range(2):
@@ -188,8 +182,8 @@ def TRTMonitoringRun3RAW_AlgConfig(inputFlags):
                 elif ibe == 1:
                     oss = 'TRT/Endcap' + str(sideId[iside]) + '/Sector' + str(i + 1 - 32*iside) 
                 effStrawChipGroup = helper.addGroup(algTRTMonitoringRun3RAW,'TRTEfficiencyHistograms{0}{1}'.format(ibe,i))
-                effStrawChipGroup.defineHistogram('EfficiencyS_passed,EfficiencyS;hHitEfficiencyS',type='TEfficiency',title='Straw Efficiency Map;Straw Number;Efficiency',path=oss,xbins=strawMax[ibe],xmin=0.5,xmax=strawMax[ibe])
-                effStrawChipGroup.defineHistogram('EfficiencyC_passed,EfficiencyC;hHitEfficiencyC',type='TEfficiency',title='Chip Efficiency Map;Chip Number;Efficiency',  path=oss,xbins=iChipMax[ibe],xmin=0.5,xmax=iChipMax[ibe])
+                effStrawChipGroup.defineHistogram('EfficiencyS,EfficiencyS_passed;hHitEfficiencyS',type='TProfile',title='Straw Efficiency Map;Straw Number;Efficiency',path=oss,xbins=strawMax[ibe],xmin=0.5,xmax=strawMax[ibe])
+                effStrawChipGroup.defineHistogram('EfficiencyC,EfficiencyC_passed;hHitEfficiencyC',type='TProfile',title='Chip Efficiency Map;Chip Number;Efficiency',  path=oss,xbins=iChipMax[ibe],xmin=0.5,xmax=iChipMax[ibe])
     ## Finished Booking TRT RDO Histograms ###
 
     ### Booking TRT Hits Histograms ###
@@ -215,24 +209,24 @@ def TRTMonitoringRun3RAW_AlgConfig(inputFlags):
                         nBarrelModules = i + 1 - 32
                         oss = 'TRT/EndcapC/Sector{0}'.format(nBarrelModules)      
 
-                trackGroup.defineHistogram('HitWonTMapS_passed,HitWonTMapS;hHitWonTMapS',type='TEfficiency',title='Leading Edge on Track in Time Window: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-                trackGroup.defineHistogram('HitAonTMapS_passed,HitAonTMapS;hHitAonTMapS',type='TEfficiency',title='Any LL Bit on Track: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-                trackGroup.defineHistogram('EfficiencyS_passed,EfficiencyS;hEfficiencyS',type='TEfficiency',title='Straw Efficiency with {0} mm Cut;Straw Number in Stack;Efficiency'.format(distance),path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-                trackGroup.defineHistogram('HitHonTMapS_passed,HitHonTMapS;hHitHonTMapS',type='TEfficiency',title='HL Hit on Track: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-                trackGroup.defineHistogram('HitHWonTMapS_passed,HitHWonTMapS;hHitHWonTMapS',type='TEfficiency',title='HL Hit(In Time Window) on Track: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-                trackGroup.defineHistogram('HitAWonTMapS_passed,HitAWonTMapS;hHitAWonTMapS',type='TEfficiency',title='Any LL Bit on Track in Time Window: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-                trackGroup.defineHistogram('HitWonTMapC_passed,HitWonTMapC;hHitWonTMapC',type='TEfficiency',title='Leading Edge on Track in Time Window: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-                trackGroup.defineHistogram('HitAonTMapC_passed,HitAonTMapC;hHitAonTMapC',type='TEfficiency',title='Any LL Bit on Track: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-                trackGroup.defineHistogram('EfficiencyC_passed,EfficiencyC;hEfficiencyC',type='TEfficiency',title='Chip Efficiency with {0} mm Cut;Chip Number in Stack;Efficiency'.format(distance),path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-                trackGroup.defineHistogram('HitAWonTMapC_passed,HitAWonTMapC;hHitAWonTMapC',type='TEfficiency',title='Any LL Bit on Track in Time Window: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-                trackGroup.defineHistogram('HitHonTMapC_passed,HitHonTMapC;hHitHonTMapC',type='TEfficiency',title='HL Hit on Track: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-                trackGroup.defineHistogram('HitHWonTMapC_passed,HitHWonTMapC;hHitHWonTMapC',type='TEfficiency',title='HL Hit(In time Window) on Track: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-                trackGroup.defineHistogram('HtoLonTMapS_passed,HtoLonTMapS;hHtoLonTMapS',type='TEfficiency',title='HL/LL Ratio on Track: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-                trackGroup.defineHistogram('HtoLWonTMapS_passed,HtoLWonTMapS;hHtoLWonTMapS',type='TEfficiency',title='HL/LL (In Time Window) Ratio on Track: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+                trackGroup.defineHistogram('HitWonTMapS;unscaled_hHitWonTMapS',type='TH1F',title='Leading Edge on Track in Time Window: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+                trackGroup.defineHistogram('HitAonTMapS;unscaled_hHitAonTMapS',type='TH1F',title='Any LL Bit on Track: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+                trackGroup.defineHistogram('HitHonTMapS;unscaled_hHitHonTMapS',type='TH1F',title='HL Hit on Track: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+                trackGroup.defineHistogram('HitHWonTMapS;unscaled_hHitHWonTMapS',type='TH1F',title='HL Hit(In Time Window) on Track: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+                trackGroup.defineHistogram('HitAWonTMapS;unscaled_hHitAWonTMapS',type='TH1F',title='Any LL Bit on Track in Time Window: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+                trackGroup.defineHistogram('EfficiencyS,EfficiencyS_passed;hEfficiencyS',type='TProfile',title='Straw Efficiency with {0} mm Cut;Straw Number in Stack;Efficiency'.format(distance),path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+                trackGroup.defineHistogram('EfficiencyC,EfficiencyC_passed;hEfficiencyC',type='TProfile',title='Chip Efficiency with {0} mm Cut;Chip Number in Stack;Efficiency'.format(distance),path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+                trackGroup.defineHistogram('HitWonTMapC;unscaled_hHitWonTMapC',type='TH1F',title='Leading Edge on Track in Time Window: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+                trackGroup.defineHistogram('HitAonTMapC;unscaled_hHitAonTMapC',type='TH1F',title='Any LL Bit on Track: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+                trackGroup.defineHistogram('HitAWonTMapC;unscaled_hHitAWonTMapC',type='TH1F',title='Any LL Bit on Track in Time Window: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+                trackGroup.defineHistogram('HitHonTMapC;unscaled_hHitHonTMapC',type='TH1F',title='HL Hit on Track: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+                trackGroup.defineHistogram('HitHWonTMapC;unscaled_hHitHWonTMapC',type='TH1F',title='HL Hit(In time Window) on Track: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+                trackGroup.defineHistogram('HtoLonTMapS,HtoLonTMapS_passed;hHtoLonTMapS',type='TProfile',title='HL/LL Ratio on Track: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+                trackGroup.defineHistogram('HtoLWonTMapS,HtoLWonTMapS_passed;hHtoLWonTMapS',type='TProfile',title='HL/LL (In Time Window) Ratio on Track: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
                 trackGroup.defineHistogram('HitonTrackVAllS_x,HitonTrackVAllS_y;hHitonTrackVAllS',type='TProfile',title='(Hit on Track) / (Any LL Bit): Straws;Straw Number in Stack;Ratio',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
                 trackGroup.defineHistogram('HitonTrackVAllC_x,HitonTrackVAllC_y;hHitonTrackVAllC',type='TProfile',title='(Hit on Track) / (Any LL Bit): Chips;Chip Number in Stack;Ratio',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-                trackGroup.defineHistogram('HtoLWonTMapC_passed,HtoLWonTMapC;hHtoLWonTMapC',type='TEfficiency',title='HL/LL(In Time Window) Ratio on Track: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-                trackGroup.defineHistogram('HtoLonTMapC_passed,HtoLonTMapC;hHtoLonTMapC',type='TEfficiency',title='HL/LL Ratio on Track: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+                trackGroup.defineHistogram('HtoLWonTMapC,HtoLWonTMapC_passed;hHtoLWonTMapC',type='TProfile',title='HL/LL(In Time Window) Ratio on Track: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+                trackGroup.defineHistogram('HtoLonTMapC,HtoLonTMapC_passed;hHtoLonTMapC',type='TProfile',title='HL/LL Ratio on Track: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
 
     for ibe in range(2):
         if ibe == 0:
@@ -244,7 +238,7 @@ def TRTMonitoringRun3RAW_AlgConfig(inputFlags):
             shiftTrackGroup.defineHistogram('HLhitOnTrack_B;hHLhitOnTrack',type='TH1F',title='Number of HL Hits per Reconstructed Track{0};Number of HL Hits per Track;Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=50,xmin=0,xmax=50)
             shiftTrackGroup.defineHistogram('HtoLRatioOnTrack_B;hHtoLRatioOnTrack',type='TH1F',title='HL/LL Ratio per Reconstructed Track for All{0};HL/LL Ratio;Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=50,xmin=0,xmax=1)
             shiftTrackGroup.defineHistogram('HitWonTMap_B;hHitWonTMap',type='TH1F',title='Leading Edge in Time Window per Reconstructed Track{0};Straw Number;Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=strawMax[0],xmin=0,xmax=strawMax[0])
-            shiftTrackGroup.defineHistogram('StrawEffDetPhi_B_passed,StrawEffDetPhi_B;hStrawEffDetPhi',type='TEfficiency',title='Straw Efficiency on Track with {0} mm Cut vs #phi(2D){1};Stack;Avg. Straw Efficiency'.format(distance,regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=32,xmin=0,xmax=32)
+            shiftTrackGroup.defineHistogram('StrawEffDetPhi_B_passed,StrawEffDetPhi_B;hStrawEffDetPhi',type='TProfile',title='Straw Efficiency on Track with {0} mm Cut vs #phi(2D){1};Stack;Avg. Straw Efficiency'.format(distance,regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=32,xmin=0,xmax=32)
         elif ibe == 1:
             for iside in range(2):
                 regionTag = ' (' + beId[ibe] + sideId[iside] + ')'
@@ -255,19 +249,21 @@ def TRTMonitoringRun3RAW_AlgConfig(inputFlags):
                 shiftTrackEndcapGroup.defineHistogram('HLhitOnTrack_E;hHLhitOnTrack_{0}'.format(sideId[iside]),type='TH1F',title='Number of HL Hits per Reconstructed Track{0};Number of HL Hits per Track;Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=50,xmin=0,xmax=50)
                 shiftTrackEndcapGroup.defineHistogram('HtoLRatioOnTrack_E;hHtoLRatioOnTrack_{0}'.format(sideId[iside]),type='TH1F',title='HL/LL Ratio per Reconstructed Track for All{0};HL/LL Ratio;Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=50,xmin=0,xmax=1)
                 shiftTrackEndcapGroup.defineHistogram('HitWonTMap_E;hHitWonTMap_{0}'.format(sideId[iside]),type='TH1F',title='Leading Edge in Time Window per Reconstructed Track{0};Straw Number;Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=strawMax[1],xmin=0,xmax=strawMax[1])
-                shiftTrackEndcapGroup.defineHistogram('StrawEffDetPhi_E_passed,StrawEffDetPhi_E;hStrawEffDetPhi_{0}'.format(sideId[iside]),type='TEfficiency',title='Straw Efficiency on Track with {0} mm Cut vs #phi(2D){1};Stack;Avg. Straw Efficiency'.format(distance,regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=32,xmin=0,xmax=32)
+                shiftTrackEndcapGroup.defineHistogram('StrawEffDetPhi_E_passed,StrawEffDetPhi_E;hStrawEffDetPhi_{0}'.format(sideId[iside]),type='TProfile',title='Straw Efficiency on Track with {0} mm Cut vs #phi(2D){1};Stack;Avg. Straw Efficiency'.format(distance,regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=32,xmin=0,xmax=32)
     ### Finished Booking TRT Hits Histograms ###
 
     for ibe in range(2):
+        regionTag = ' (' + barrelOrEndcap[ibe] + ')'
         if ibe == 0:
             rdoShiftRebinnedBarrelGroup = helper.addGroup(algTRTMonitoringRun3RAW,'RDOShiftRebinnedBarrelHistograms0')
-            rdoShiftRebinnedBarrelGroup.defineHistogram('NHitsperLB_x,NHitsperLB_y;hNHitsperLB',type='TProfile',title='Avg. Occupancy{0};Luminosity Block;Occupancy'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=maxLumiblock,xmin=-0.5,xmax=maxLumiblock-0.5,duration='run') #CAN_REBIN(m_hNHitsperLB_B);
-            rdoShiftRebinnedBarrelGroup.defineHistogram('NHLHitsperLB_x,NHLHitsperLB_y;hNHLHitsperLB',type='TProfile',title='Avg. HL Occupancy{0};Luminosity Block;Occupancy'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=maxLumiblock,xmin=-0.5,xmax=maxLumiblock-0.5,duration='run') #CAN_REBIN(m_hNHLHitsperLB_B);
+            rdoShiftRebinnedBarrelGroup.defineHistogram('NHitsperLB_x,NHitsperLB_y;hNHitsperLB',type='TProfile',title='Avg. Occupancy{0};Luminosity Block;Occupancy'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=maxLumiBlockShift,xmin=-0.5,xmax=maxLumiBlockShift-0.5,duration='run') #CAN_REBIN(m_hNHitsperLB_B);
+            rdoShiftRebinnedBarrelGroup.defineHistogram('NHLHitsperLB_x,NHLHitsperLB_y;hNHLHitsperLB',type='TProfile',title='Avg. HL Occupancy{0};Luminosity Block;Occupancy'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=maxLumiBlockShift,xmin=-0.5,xmax=maxLumiBlockShift-0.5,duration='run') #CAN_REBIN(m_hNHLHitsperLB_B);
         elif ibe == 1:
             for iside in range(2):
+                regionTag = ' (' + beId[ibe] + sideId[iside] + ')'
                 rdoShiftRebinnedEndcapGroup = helper.addGroup(algTRTMonitoringRun3RAW,'RDOShiftRebinnedEndcapHistograms1{0}'.format(iside))
-                rdoShiftRebinnedEndcapGroup.defineHistogram('NHitsperLB_x,NHitsperLB_y;hNHitsperLB_{0}'.format(sideId[iside]),type='TProfile',title='Avg. Occupancy{0};Luminosity Block;Occupancy'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=maxLumiblock,xmin=-0.5,xmax=maxLumiblock-0.5,duration='run') #CAN_REBIN(m_hNHitsperLB_E[iside]);
-                rdoShiftRebinnedEndcapGroup.defineHistogram('NHLHitsperLB_x,NHLHitsperLB_y;hNHLHitsperLB_{0}'.format(sideId[iside]),type='TProfile',title='Avg. HL Occupancy{0};Luminosity Block;Occupancy'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=maxLumiblock,xmin=-0.5,xmax=maxLumiblock-0.5,duration='run') #CAN_REBIN(m_hNHLHitsperLB_E[iside]);
+                rdoShiftRebinnedEndcapGroup.defineHistogram('NHitsperLB_x,NHitsperLB_y;hNHitsperLB_{0}'.format(sideId[iside]),type='TProfile',title='Avg. Occupancy{0};Luminosity Block;Occupancy'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=maxLumiBlockShift,xmin=-0.5,xmax=maxLumiBlockShift-0.5,duration='run') #CAN_REBIN(m_hNHitsperLB_E[iside]);
+                rdoShiftRebinnedEndcapGroup.defineHistogram('NHLHitsperLB_x,NHLHitsperLB_y;hNHLHitsperLB_{0}'.format(sideId[iside]),type='TProfile',title='Avg. HL Occupancy{0};Luminosity Block;Occupancy'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=maxLumiBlockShift,xmin=-0.5,xmax=maxLumiBlockShift-0.5,duration='run') #CAN_REBIN(m_hNHLHitsperLB_E[iside]);
 
 
     if isRun3Cfg():
diff --git a/InnerDetector/InDetMonitoring/TRTMonitoringRun3/python/TRTPostProcessing.py b/InnerDetector/InDetMonitoring/TRTMonitoringRun3/python/TRTPostProcessing.py
index 538e0873426..3049cd7a1c2 100644
--- a/InnerDetector/InDetMonitoring/TRTMonitoringRun3/python/TRTPostProcessing.py
+++ b/InnerDetector/InDetMonitoring/TRTMonitoringRun3/python/TRTPostProcessing.py
@@ -1,20 +1,79 @@
 #
 #  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 #
-def occupancyS(inputs):
+def hOccupancy(inputs):
     import ROOT
-    rh = ROOT.TH1F('hOccupancyS', 'Straw Occupancy Distribution', 201, 0, 1.005)
+    element = inputs[0][0]['element']
+    name = 'hOccupancy' + element
+    if element == 'C': title = 'Chip' 
+    if element == 'S': title = 'Straw' 
+    rh = ROOT.TH1F(name, title + ' Occupancy Distribution', 201, 0, 1.005)
+    rh.GetXaxis().SetTitle('Occupancy')
+    rh.GetYaxis().SetTitle('Number of ' + title + 's')
     plots = [_[1][0] for _ in inputs]  # all plots passed as first element of list
     for plot in plots:
-        for j in range(201):
-            rh.Fill(plot.GetEfficiency(j+1))
+        nBins = plot.GetNbinsX()
+        for j in range(nBins): #range of the input histogram, not the output
+            rh.Fill(plot.GetBinContent(j + 1))
+    return [rh]
+
+def hHitXonTMap(inputs):
+    import ROOT
+    hist = inputs[1][0]['histogram'][9:] #removing "unscaled_" prefix
+    element = inputs[1][0]['element']
+    if element == 'S':
+        name  = hist + 'S'
+        titleElement = 'Straws'
+    if element == 'C':
+        name  = hist + 'C'
+        titleElement = 'Chips'
+    if hist == 'hHitHWonTMap': title = 'HL Hit(In time Window) on Track: '
+    if hist == 'hHitWonTMap':  title = 'Leading Edge on Track in Time Window: '
+    if hist == 'hHitAonTMap':  title = 'Any LL Bit on Track: '
+    if hist == 'hHitAWonTMap': title = 'Any LL Bit on Track in Time Window: '
+    if hist == 'hHitHonTMap':  title = 'HL Hit on Track: '
+    rh = ROOT.TH1F(name, title + titleElement, 1, 0, 1)
+    rh.GetXaxis().SetTitle(titleElement[:-1] + ' Number in Stack')
+    rh.GetYaxis().SetTitle('Probability')
+    for i in range(len(inputs[0][1])):
+        plots = [_[1][i] for _ in inputs]
+        if i < 3:
+            for m in range(int(len(plots)/2)):
+                plot0 = plots[2*m]
+                plot1 = plots[2*m + 1]
+                nBins = plots[0].GetNbinsX()
+                rh.SetBins(nBins, 0, nBins)
+                for j in range(nBins): #range of the input histogram, not the output
+                    if plot0.GetBinEntries(j + 1) > 0:
+                        rh.SetBinContent(j + 1, plot1.GetBinContent(j + 1)*1./plot0.GetBinEntries(j + 1))
+                    else:
+                        rh.SetBinContent(j + 1, 0)
     return [rh]
     
-def occupancyC(inputs):
+def hHitOnTrackVsAll(inputs):
     import ROOT
-    rh = ROOT.TH1F('hOccupancyC', 'Chip Occupancy Distribution', 201, 0, 1.005)
-    plots = [_[1][0] for _ in inputs]  # all plots passed as first element of list
-    for plot in plots:
-        for j in range(201):
-            rh.Fill(plot.GetEfficiency(j+1))
+    element = inputs[0][0]['element']
+    if element == 'S':
+        name  ='S'
+        titleElement = 'Straws'
+    if element == 'C':
+        name  = 'C'
+        titleElement = 'Chips'
+    rh = ROOT.TH1F('hHitOnTrackVsAll' + name, '(Hit on Track) / (Any LL Bit): ' + titleElement, 1, 0, 1)
+    rh.GetXaxis().SetTitle(titleElement[:-1] + ' Number in Stack')
+    rh.GetYaxis().SetTitle('Ratio')
+    for i in range(len(inputs[0][1])):
+        plots = [_[1][i] for _ in inputs]
+        if i < 4:
+            for m in range(int(len(plots)/3)):
+                plot0 = plots[3*m]
+                plot1 = plots[3*m + 1]
+                plot2 = plots[3*m + 2]
+                nBins = plots[0].GetNbinsX()
+                rh.SetBins(nBins, 0, nBins)
+                for j in range(nBins): #range of the input histogram, not the output
+                    if (plot0.GetBinContent(j + 1)*plot1.GetBinContent(j + 1)) > 0:
+                        rh.SetBinContent(j + 1, plot2.GetBinContent(j + 1)/(plot0.GetBinContent(j + 1)*plot1.GetBinContent(j + 1)))
+                    else:
+                        rh.SetBinContent(j + 1, 0)
     return [rh]
\ No newline at end of file
diff --git a/InnerDetector/InDetMonitoring/TRTMonitoringRun3/share/TRTMonitoringRun3RAW_Alg_jobOptions.py b/InnerDetector/InDetMonitoring/TRTMonitoringRun3/share/TRTMonitoringRun3RAW_Alg_jobOptions.py
index 54702129036..68ef492e8ec 100644
--- a/InnerDetector/InDetMonitoring/TRTMonitoringRun3/share/TRTMonitoringRun3RAW_Alg_jobOptions.py
+++ b/InnerDetector/InDetMonitoring/TRTMonitoringRun3/share/TRTMonitoringRun3RAW_Alg_jobOptions.py
@@ -12,7 +12,8 @@ from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
 
 algTRTMonitoringRun3RAW.TrackSummaryTool = InDetTrackSummaryTool
 
-maxLumiBlock         = 200
+maxLumiBlockSummary  = 200
+maxLumiBlockShift    = 720
 numberOfBarrelStacks = 32
 distToStraw          = 0.4
 maxLumiblock         = 720
@@ -46,53 +47,44 @@ for ibe in range(2):
             elif i >= numberOfStacks[ibe]:
                 oss = 'TRT/EndcapC/Sector' + str(i + 1 - 32)
 
-        rdoStackGroup.defineHistogram('HitWMapS_passed,strawNumber;hHitWMapS',type='TEfficiency',title='Leading Edge in Time Window: Straws;Straw Number in Stack;Probability per Event',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+        rdoStackGroup.defineHistogram('strawNumber,HitWMapS_passed;hHitWMapS',cutmask='HitWMapS_cut',type='TProfile',title='Leading Edge in Time Window: Straws;Straw Number in Stack;Probability per Event',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
         rdoStackGroup.defineHistogram('strawNumber,HitTrWMapS_y;hHitTrWMapS',cutmask='HitTrWMapS_cut',type='TProfile',title='Mean Trailing Edge in Time Window: Straws;Straw Number in Stack;Time (ns)',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
         rdoStackGroup.defineHistogram('strawNumber,HitTrMapS_y;hHitTrMapS',type='TProfile',title='Mean Trailing Edge: Straws;Straw Number in Stack;Time (ns)',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-        rdoStackGroup.defineHistogram('HitAWMapS_passed,strawNumber;hHitAWMapS',type='TEfficiency',title='LL in Time Window: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-        rdoStackGroup.defineHistogram('HitAMapS_passed,strawNumber;hHitAMapS',type='TEfficiency',title='Any LL Bit: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-        rdoStackGroup.defineHistogram('StrawOcc_passed,StrawOcc;hOccupancyS',type='TEfficiency',title='Straw Occupancy Distribution: Straws;Occupancy;Number of Straws',path=oss,xbins=201,xmin=0,xmax=1.005)
+        rdoStackGroup.defineHistogram('strawNumber,HitAWMapS_passed;hHitAWMapS',cutmask='HitAWMapS_cut',type='TProfile',title='LL in Time Window: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+        rdoStackGroup.defineHistogram('strawNumber,HitAMapS_passed;hHitAMapS',cutmask='HitAMapS_cut',type='TProfile',title='Any LL Bit: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+        rdoStackGroup.defineHistogram('strawNumber;unscaled_hHitAMapS',cutmask='HitAMapS_cut',type='TH1F',title='Any LL Bit: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+        rdoStackGroup.defineHistogram('StrawOcc,StrawOcc_passed;hOccupancyS',type='TProfile',title='Straw Occupancy Distribution: Straws;Occupancy;Number of Straws',path=oss,xbins=201,xmin=0,xmax=1.005)
         rdoStackGroup.defineHistogram('strawNumber,HitToTMapS_y;hHitToTMapS',type='TProfile',title='Mean ToT: Straws;Straw Number in Stack;Time (ns)',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
         rdoStackGroup.defineHistogram('strawNumber,HitToTMapS_y;hHitToTLongMapS',cutmask='HitToTLong_cut',type='TProfile',title='Mean ToT for Straws with ToT > LongToTCut: Straws;Straw Number in Stack;Time (ns)',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-        rdoStackGroup.defineHistogram('strawNumber,HitTrMapS_y;hHitToTLongTrMapS',cutmask='HitToTLong_cut',type='TProfile',title='Mean Trailing Edge for Straws with ToT > LongToTCut: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-        rdoStackGroup.defineHistogram('HitHMapS_passed,strawNumber;hHitHMapS',type='TEfficiency',title='Any HL Bit: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-        rdoStackGroup.defineHistogram('HitHWMapS_passed,strawNumber;hHitHWMapS',type='TEfficiency',title='HL in Time Window: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-        rdoStackGroup.defineHistogram('HtoLMapS_passed,HtoLMapS;hHtoLMapS',type='TEfficiency',title='HL/LL Ratio: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+        rdoStackGroup.defineHistogram('strawNumber,HitTrMapS_y;hHitToTLongTrMapS',cutmask='HitToTLong_cut',type='TProfile',title='Mean Trailing Edge for Straws with ToT > LongToTCut: Straws;Straw Number in Stack;Time (ns)',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+        rdoStackGroup.defineHistogram('strawNumber,HitHMapS_passed;hHitHMapS',cutmask='HitHMapS_cut',type='TProfile',title='Any HL Bit: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+        rdoStackGroup.defineHistogram('strawNumber,HitHWMapS_passed;hHitHWMapS',cutmask='HitHWMapS_cut',type='TProfile',title='HL in Time Window: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+        rdoStackGroup.defineHistogram('HtoLMapS,HtoLMapS_passed;hHtoLMapS',type='TProfile',title='HL/LL Ratio: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
 
-        rdoStackGroup.defineHistogram('HitWMapC_passed,chipNumber;hHitWMapC',type='TEfficiency',title='Leading Edge in Time Window: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+        rdoStackGroup.defineHistogram('chipNumber,HitWMapC_passed;hHitWMapC',cutmask='HitWMapC_cut',type='TProfile',title='Leading Edge in Time Window: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
         rdoStackGroup.defineHistogram('chipNumber,HitTrMapC_y;hHitTrMapC',type='TProfile',title='Mean Trailing Edge: Chips;Chip Number in Stack;Time (ns)',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
         rdoStackGroup.defineHistogram('chipNumber,HitTrMapC_y;hHitTrWMapC',cutmask='HitTrWMapC_cut',type='TProfile',title='Mean Trailing Edge in Time Window: Chips;Chip Number in Stack;Time (ns)',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-        rdoStackGroup.defineHistogram('HitAWMapC_passed,chipNumber;hHitAWMapC',type='TEfficiency',title='LL in Time Window: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-        rdoStackGroup.defineHistogram('HitAMapC_passed,chipNumber;hHitAMapC',type='TEfficiency',title='Any LL Bit: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+        rdoStackGroup.defineHistogram('chipNumber,HitAWMapC_passed;hHitAWMapC',cutmask='HitAWMapC_cut',type='TProfile',title='LL in Time Window: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+        rdoStackGroup.defineHistogram('chipNumber,HitAMapC_passed;hHitAMapC',cutmask='HitAMapC_cut',type='TProfile',title='Any LL Bit: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+        rdoStackGroup.defineHistogram('chipNumber;unscaled_hHitAMapC',cutmask='HitAMapC_cut',type='TH1F',title='Any LL Bit: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
         rdoStackGroup.defineHistogram('OccupancyC;hOccupancyC',type='TH1F',title='Chip Occupancy Distribution;Occupancy;Number of Chips',path=oss,xbins=201,xmin=0,xmax=1.005)
         rdoStackGroup.defineHistogram('chipNumber,HitToTMapC_y;hHitToTMapC',type='TProfile',title='Mean ToT: Chips;Chip Number in Stack;Time (ns)',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-        rdoStackGroup.defineHistogram('HitHMapC_passed,chipNumber;hHitHMapC',type='TEfficiency',title='Any HL Bit: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-        rdoStackGroup.defineHistogram('HitHWMapC_passed,chipNumber;hHitHWMapC',type='TEfficiency',title='HL in Time Window: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-        rdoStackGroup.defineHistogram('HtoLMapC_passed,HtoLMapC;hHtoLMapC',type='TEfficiency',title='HL/LL Ratio: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+        rdoStackGroup.defineHistogram('chipNumber,HitHMapC_passed;hHitHMapC',cutmask='HitHMapC_cut',type='TProfile',title='Any HL Bit: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+        rdoStackGroup.defineHistogram('chipNumber,HitHWMapC_passed;hHitHWMapC',cutmask='HitHWMapC_cut',type='TProfile',title='HL in Time Window: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+        rdoStackGroup.defineHistogram('HtoLMapC,HtoLMapC_passed;hHtoLMapC',type='TProfile',title='HL/LL Ratio: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
         rdoStackGroup.defineHistogram('HtoBCMapC_x,chipNumber;hHtoBCMapC',cutmask='HtoBCMap_cut',type='TH2F',title='HL in BC: Chips;Bunch Crossing ID;Chip Number in Stack',path=oss,xbins=3,xmin=0,xmax=3,ybins=iChipMax[ibe],ymin=0,ymax=iChipMax[ibe])
-          
+
         if   ibe == 0: rdoStackGroup.defineHistogram('HtoBCMapB_x,HtoBCMapB_y;hHtoBCMapB',type='TH2F',title='HL in BC: Boards;Bunch Crossing ID;Board Number in Stack',path=oss,xbins=3,xmin=0,xmax=3,ybins=9,ymin=0,ymax=9)
         elif ibe == 1: rdoStackGroup.defineHistogram('HtoBCMapB_x,HtoBCMapB_y;hHtoBCMapB',type='TH2F',title='HL in BC: Boards;Bunch Crossing ID;Board Number in Stack',path=oss,xbins=3,xmin=0,xmax=3,ybins=20,ymin=-0.5,ymax=19.5)
 
-
 ### Registering Collisions Histograms ###
-rdoShiftSmryGroup = helper.addGroup(algTRTMonitoringRun3RAW,'RDOShiftSmryHistograms')
-
-sumLabels = ['Events', 'Tracks Total', 'Tracks BA', 'Tracks BA', 'Tracks BC', 'Tracks EA', 'Tracks EC', 'Transition Side A', 'Transition Side C']
-rdoShiftSmryGroup.defineHistogram('Summary;hSummary',weight='SummaryWeight',type='TH1F',title='Run Summary;;Entries',path='TRT/Shift/Summary',xbins=8,xmin=0,xmax=8,xlabels=sumLabels) 
-
-# Luminosity summary histograms
-rdoShiftSmryGroup.defineHistogram('IntLum_passed,IntLum;IntLum',type='TEfficiency',title='Luminosity;;Luminosity [#mub^{1}]',path='TRT/Shift/Summary',xbins=1,xmin=0.,xmax=1.)
-rdoShiftSmryGroup.defineHistogram('LBvsLum_passed,LBvsLum;LBvsLum',type='TEfficiency',title='Luminosity;Luminosity Bin;Luminosity [#mub^{1}]',path='TRT/Shift/Summary',xbins=2000,xmin=0.,xmax=2000.)
-rdoShiftSmryGroup.defineHistogram('LBvsTime_passed,LBvsTime;LBvsTime',type='TEfficiency',title='Time;Luminosity Bin;Time [s]',path='TRT/Shift/Summary',xbins=2000,xmin=0.,xmax=2000.)
-
 for ibe in range(2):
     for iside in range(2):
         regionTag = ' (' + beId[ibe] + sideId[iside] + ')'
         rdoShiftSmryRebinnedGroup = helper.addGroup(algTRTMonitoringRun3RAW,'RDOShiftSmryRebinnedHistograms{0}{1}'.format(ibe,iside))
-        rdoShiftSmryRebinnedGroup.defineHistogram('ChipBSErrorsVsLB_x,ChipBSErrorsVsLB_y;hChipBSErrorsVsLB{0}{1}'.format(beId[ibe],sideId[iside]),type='TProfile',title='Chip Bytestream Errors vs LB{0};Luminosity Block;Fraction of Chips with Errors'.format(regionTag),path='TRT/Shift/Summary',xbins=maxLumiBlock + 1,xmin=-0.5,xmax=maxLumiBlock + 0.5)
+        rdoShiftSmryRebinnedGroup.defineHistogram('ChipBSErrorsVsLB_x,ChipBSErrorsVsLB_y;hChipBSErrorsVsLB_{0}{1}'.format(beId[ibe],sideId[iside]),type='TProfile',title='Chip Bytestream Errors vs LB{0};Luminosity Block;Fraction of Chips with Errors'.format(regionTag),path='TRT/Shift/Summary',xbins=maxLumiBlockSummary + 1,xmin=-0.5,xmax=maxLumiBlockSummary + 0.5)
         #CAN_REBIN(m_hChipBSErrorsVsLB[ibe][iside]);
-        rdoShiftSmryRebinnedGroup.defineHistogram('RobBSErrorsVsLB_x,RobBSErrorsVsLB_y;hRobBSErrorsVsLB_{0}{1}'.format(beId[ibe],sideId[iside]),type='TProfile',title='Rob Bytestream Errors vs LB{0};Luminosity Block;Fraction of RODs with Errors'.format(regionTag),path='TRT/Shift/Summary',xbins=maxLumiBlock + 1,xmin=-0.5,xmax=maxLumiBlock + 0.5)
+        rdoShiftSmryRebinnedGroup.defineHistogram('RobBSErrorsVsLB_x,RobBSErrorsVsLB_y;hRobBSErrorsVsLB_{0}{1}'.format(beId[ibe],sideId[iside]),type='TProfile',title='Rob Bytestream Errors vs LB{0};Luminosity Block;Fraction of RODs with Errors'.format(regionTag),path='TRT/Shift/Summary',xbins=maxLumiBlockSummary + 1,xmin=-0.5,xmax=maxLumiBlockSummary + 0.5)
         #CAN_REBIN(m_hRobBSErrorsVsLB[ibe][iside]);
 
 # Barrel/Endcap Histograms
@@ -101,15 +93,15 @@ for ibe in range(2):
     rdoGroup = helper.addGroup(algTRTMonitoringRun3RAW,'RDOHistograms{0}'.format(ibe))
     rdoGroup.defineHistogram('BCIDvsOcc_x,BCIDvsOcc_y;hBCIDvsOcc',type='TProfile',title='Avg. Occupancy vs BCID{0};Bunch Crossing ID;Occupancy'.format(regionTag),path='TRT/{0}/Expert'.format(barrelOrEndcap[ibe]),xbins=3564,xmin=0,xmax=3564)
     if ibe == 0:
-        rdoGroup.defineHistogram('HitWMap_passed,strawNumber;hHitWMap',type='TEfficiency',title='Leading Edge in Time Window: Xenon Straws (Barrel);Straw Number in Stack;Probability',path='TRT/Shift/{0}'.format(str(barrelOrEndcap[ibe])),xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-        rdoGroup.defineHistogram('HitWMap_Ar_passed,strawNumber;hHitWMap_Ar',type='TEfficiency',title='Leading Edge in Time Window: Argon Straws (Barrel);Straw Number in Stack;Probability',path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+        rdoGroup.defineHistogram('strawNumber,HitWMap_passed;hHitWMap',cutmask='isNotAr',type='TProfile',title='Leading Edge in Time Window: Xenon Straws (Barrel);Straw Number in Stack;Probability',path='TRT/Shift/{0}'.format(str(barrelOrEndcap[ibe])),xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+        rdoGroup.defineHistogram('strawNumber,HitWMap_Ar_passed;hHitWMap_Ar',cutmask='isAr',type='TProfile',title='Leading Edge in Time Window: Argon Straws (Barrel);Straw Number in Stack;Probability',path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
         rdoGroup.defineHistogram('OccAll;hOccAll',type='TH1F',title='Occupancy per Event;Occupancy;Events',path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=400,xmin=0.0,xmax=1.0)
     elif ibe == 1:
         for iside in range(2):
             side = ('A', 'C')
             rdoEndcapGroup = helper.addGroup(algTRTMonitoringRun3RAW,'RDOHistograms1{0}'.format(iside))
-            rdoEndcapGroup.defineHistogram('HitWMap_passed,strawNumber;hHitWMap_{0}'.format(side[iside]),type='TEfficiency',title='Leading Edge in Time Window: Xenon Straws (E{0});Straw Number in Stack;Probability'.format(side[iside]),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-            rdoEndcapGroup.defineHistogram('HitWMap_Ar_passed,strawNumber;hHitWMap_Ar_{0}'.format(side[iside]),type='TEfficiency',title='Leading Edge in Time Window: Argon Straws (E{0});Straw Number in Stack;Probability'.format(side[iside]),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])   
+            rdoEndcapGroup.defineHistogram('strawNumber,HitWMap_passed;hHitWMap_{0}'.format(side[iside]),cutmask='isNotAr',type='TProfile',title='Leading Edge in Time Window: Xenon Straws (E{0});Straw Number in Stack;Probability'.format(side[iside]),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+            rdoEndcapGroup.defineHistogram('strawNumber,HitWMap_Ar_passed;hHitWMap_Ar_{0}'.format(side[iside]),cutmask='isAr',type='TProfile',title='Leading Edge in Time Window: Argon Straws (E{0});Straw Number in Stack;Probability'.format(side[iside]),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])   
     for iside in range(2):
         regionTag = ' (' + beId[ibe] + sideId[iside] + ')'
         regionMarker = (beId[ibe] + sideId[iside]) if athenaCommonFlags.isOnline is True else (sideId[iside])
@@ -120,22 +112,22 @@ for ibe in range(2):
         rdoLLHLOccGroup.defineHistogram('AvgHLOccMod_side_x,AvgHLOccMod_side_y;hAvgHLOccMod_{0}'.format(regionMarker),type='TProfile',title='Avg. HL Occupancy: {0}s{1};{2};Occupancy'.format(moduleOrWheel[ibe],regionTag,moduleNumAssign[ibe]),path='TRT/{0}/Expert'.format(barrelOrEndcap[ibe]),xbins=moduleNum[ibe],xmin=0,xmax=moduleNum[ibe])
 
 effGroup = helper.addGroup(algTRTMonitoringRun3RAW,'TRTEfficiencyHistograms')
-effGroup.defineHistogram('Efficiency_eta_passed,Efficiency_eta;hefficiency_eta',type='TEfficiency',title='Efficiency vs #eta;#eta;Efficiency',path='TRT/Efficiency',xbins=50,xmin=-2.8,xmax=2.8)
-effGroup.defineHistogram('Efficiency_phi_passed,Efficiency_phi;hefficiency_phi',type='TEfficiency',title='Efficiency vs #phi;#phi (deg);Efficiency',path='TRT/Efficiency',xbins=50,xmin=-3.2,xmax=3.2)
-effGroup.defineHistogram('Efficiency_pt_passed,Efficiency_pt;hefficiency_pt',type='TEfficiency',title='Efficiency vs pT;pT (GeV);Efficiency',path='TRT/Efficiency',xbins=50,xmin=0,xmax=10)
-effGroup.defineHistogram('Efficiency_z0_passed,Efficiency_z0;hefficiency_z0',type='TEfficiency',title='Efficiency vs z0;z0;Efficiency',path='TRT/Efficiency',xbins=50,xmin=-200,xmax=200)
-effGroup.defineHistogram('EfficiencyBarrel_locR_passed,EfficiencyBarrel_locR;hEfficiencyBarrel_locR',type='TEfficiency',title='Efficiency vs Track-to-Wire Distance for Xenon Straws (Barrel);Track-to-Wire Distance (mm);Efficiency',path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5)
-effGroup.defineHistogram('EfficiencyBarrel_locR_Ar_passed,EfficiencyBarrel_locR_Ar;hEfficiencyBarrel_locR_Ar',type='TEfficiency',title='Efficiency vs Track-to-Wire Distance for Argon Straws (Barrel);Track-to-Wire Distance (mm);Efficiency',path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5)
+effGroup.defineHistogram('Efficiency_eta_passed,Efficiency_eta;hefficiency_eta',type='TProfile',title='Efficiency vs #eta;#eta;Efficiency',path='TRT/Efficiency',xbins=50,xmin=-2.8,xmax=2.8)
+effGroup.defineHistogram('Efficiency_phi_passed,Efficiency_phi;hefficiency_phi',type='TProfile',title='Efficiency vs #phi;#phi (deg);Efficiency',path='TRT/Efficiency',xbins=50,xmin=-3.2,xmax=3.2)
+effGroup.defineHistogram('Efficiency_pt_passed,Efficiency_pt;hefficiency_pt',type='TProfile',title='Efficiency vs pT;pT (GeV);Efficiency',path='TRT/Efficiency',xbins=50,xmin=0,xmax=10)
+effGroup.defineHistogram('Efficiency_z0_passed,Efficiency_z0;hefficiency_z0',type='TProfile',title='Efficiency vs z0;z0;Efficiency',path='TRT/Efficiency',xbins=50,xmin=-200,xmax=200)
+effGroup.defineHistogram('EfficiencyBarrel_locR,EfficiencyBarrel_locR_passed;hefficiencyBarrel_locR',type='TProfile',title='Efficiency vs Track-to-Wire Distance for Xenon Straws (Barrel);Track-to-Wire Distance (mm);Efficiency',path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5)
+effGroup.defineHistogram('EfficiencyBarrel_locR_Ar,EfficiencyBarrel_locR_Ar_passed;hefficiencyBarrel_locR_Ar',type='TProfile',title='Efficiency vs Track-to-Wire Distance for Argon Straws (Barrel);Track-to-Wire Distance (mm);Efficiency',path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5)
 effBarrelGroup = helper.addGroup(algTRTMonitoringRun3RAW,'TRTEfficiencyHistogramsBarrel')
-effBarrelGroup.defineHistogram('EfficiencyBarrelMap_passed,EfficiencyBarrelMap;hEfficiencyBarrelMap',type='TEfficiency',title='Straw Efficiency Map (Barrel);Straw Number;Efficiency',path='TRT/Efficiency',xbins=strawMax[0],xmin=0,xmax=strawMax[0])
+effBarrelGroup.defineHistogram('EfficiencyBarrelMap,EfficiencyBarrelMap_passed;hEfficiencyBarrelMap',type='TProfile',title='Straw Efficiency Map (Barrel);Straw Number;Efficiency',path='TRT/Efficiency',xbins=strawMax[0],xmin=0,xmax=strawMax[0])
 effEndcapGroup = helper.addGroup(algTRTMonitoringRun3RAW,'TRTEfficiencyHistogramsEndCap')
-effEndcapGroup.defineHistogram('EfficiencyEndCapMap_passed,EfficiencyEndCapMap;hEfficiencyEndCapMap',type='TEfficiency',title='Straw Efficiency Map (Endcap);Straw Number;Efficiency',path='TRT/Efficiency',xbins=strawMax[1],xmin=0,xmax=strawMax[1])
+effEndcapGroup.defineHistogram('EfficiencyEndCapMap,EfficiencyEndCapMap_passed;hEfficiencyEndCapMap',type='TProfile',title='Straw Efficiency Map (Endcap);Straw Number;Efficiency',path='TRT/Efficiency',xbins=strawMax[1],xmin=0,xmax=strawMax[1])
 
 for iside in range(2):
     regionTag = ' (' + beId[1]   + sideId[iside] + ')'
     effTRTEndcapACGroup = helper.addGroup(algTRTMonitoringRun3RAW,'TRTEfficiencyHistogramsEndCap{0}'.format(iside))
-    effTRTEndcapACGroup.defineHistogram('EfficiencyEndCap_locR_passed,EfficiencyEndCap_locR;hEfficiencyEndCap{0}_locR'.format(sideId[iside]),type='TEfficiency',title='Efficiency vs Track-to-Wire Distance for Xenon Straws{0};Track-to-Wire Distance (mm);Efficiency'.format(regionTag),path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5)
-    effTRTEndcapACGroup.defineHistogram('EfficiencyEndCap_locR_Ar_passed,EfficiencyEndCap_locR_Ar;hEfficiencyEndCap{0}_locR_Ar'.format(sideId[iside]),type='TEfficiency',title='Efficiency vs Track-to-Wire Distance for Argon Straws{0};Track-to-Wire Distance (mm);Efficiency'.format(regionTag),path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5)
+    effTRTEndcapACGroup.defineHistogram('EfficiencyEndCap_locR,EfficiencyEndCap_locR_passed;hEfficiencyEndCap{0}_locR'.format(sideId[iside]),type='TProfile',title='Efficiency vs Track-to-Wire Distance for Xenon Straws{0};Track-to-Wire Distance (mm);Efficiency'.format(regionTag),path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5)
+    effTRTEndcapACGroup.defineHistogram('EfficiencyEndCap_locR_Ar,EfficiencyEndCap_locR_Ar_passed;hEfficiencyEndCap{0}_locR_Ar'.format(sideId[iside]),type='TProfile',title='Efficiency vs Track-to-Wire Distance for Argon Straws{0};Track-to-Wire Distance (mm);Efficiency'.format(regionTag),path='TRT/Efficiency',xbins=50,xmin=-2.5,xmax=2.5)
 
 for ibe in range(2):
     for iside in range(2):
@@ -148,8 +140,8 @@ for ibe in range(2):
             elif ibe == 1:
                 oss = 'TRT/Endcap' + str(sideId[iside]) + '/Sector' + str(i + 1 - 32*iside) 
             effStrawChipGroup = helper.addGroup(algTRTMonitoringRun3RAW,'TRTEfficiencyHistograms{0}{1}'.format(ibe,i))
-            effStrawChipGroup.defineHistogram('EfficiencyS_passed,EfficiencyS;hHitEfficiencyS',type='TEfficiency',title='Straw Efficiency Map;Straw Number;Efficiency',path=oss,xbins=strawMax[ibe],xmin=0.5,xmax=strawMax[ibe])
-            effStrawChipGroup.defineHistogram('EfficiencyC_passed,EfficiencyC;hHitEfficiencyC',type='TEfficiency',title='Chip Efficiency Map;Chip Number;Efficiency',  path=oss,xbins=iChipMax[ibe],xmin=0.5,xmax=iChipMax[ibe])
+            effStrawChipGroup.defineHistogram('EfficiencyS,EfficiencyS_passed;hHitEfficiencyS',type='TProfile',title='Straw Efficiency Map;Straw Number;Efficiency',path=oss,xbins=strawMax[ibe],xmin=0.5,xmax=strawMax[ibe])
+            effStrawChipGroup.defineHistogram('EfficiencyC,EfficiencyC_passed;hHitEfficiencyC',type='TProfile',title='Chip Efficiency Map;Chip Number;Efficiency',  path=oss,xbins=iChipMax[ibe],xmin=0.5,xmax=iChipMax[ibe])
 ## Finished Booking TRT RDO Histograms ###
 
 ### Booking TRT Hits Histograms ###
@@ -175,27 +167,26 @@ for ibe in range(2):
                     nBarrelModules = i + 1 - 32
                     oss = 'TRT/EndcapC/Sector{0}'.format(nBarrelModules)      
 
-            trackGroup.defineHistogram('HitWonTMapS_passed,HitWonTMapS;hHitWonTMapS',type='TEfficiency',title='Leading Edge on Track in Time Window: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-            trackGroup.defineHistogram('HitAonTMapS_passed,HitAonTMapS;hHitAonTMapS',type='TEfficiency',title='Any LL Bit on Track: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-            trackGroup.defineHistogram('EfficiencyS_passed,EfficiencyS;hEfficiencyS',type='TEfficiency',title='Straw Efficiency with {0} mm Cut;Straw Number in Stack;Efficiency'.format(distance),path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-            trackGroup.defineHistogram('HitHonTMapS_passed,HitHonTMapS;hHitHonTMapS',type='TEfficiency',title='HL Hit on Track: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-            trackGroup.defineHistogram('HitHWonTMapS_passed,HitHWonTMapS;hHitHWonTMapS',type='TEfficiency',title='HL Hit(In Time Window) on Track: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-            trackGroup.defineHistogram('HitAWonTMapS_passed,HitAWonTMapS;hHitAWonTMapS',type='TEfficiency',title='Any LL Bit on Track in Time Window: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-            trackGroup.defineHistogram('HitWonTMapC_passed,HitWonTMapC;hHitWonTMapC',type='TEfficiency',title='Leading Edge on Track in Time Window: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-            trackGroup.defineHistogram('HitTronTMapC_x,HitTronTMapC_y;hHitTronTMapC',type='TProfile',title='Mean Trailing Edge on Track: Chips;Chip Number in Stack;Time (ns)',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-            trackGroup.defineHistogram('HitAonTMapC_passed,HitAonTMapC;hHitAonTMapC',type='TEfficiency',title='Any LL Bit on Track: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-            trackGroup.defineHistogram('EfficiencyC_passed,EfficiencyC;hEfficiencyC',type='TEfficiency',title='Chip Efficiency with {0} mm Cut;Chip Number in Stack;Efficiency'.format(distance),path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-            trackGroup.defineHistogram('HitAWonTMapC_passed,HitAWonTMapC;hHitAWonTMapC',type='TEfficiency',title='Any LL Bit on Track in Time Window: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-            trackGroup.defineHistogram('HitHonTMapC_passed,HitHonTMapC;hHitHonTMapC',type='TEfficiency',title='HL Hit on Track: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-            trackGroup.defineHistogram('HitHWonTMapC_passed,HitHWonTMapC;hHitHWonTMapC',type='TEfficiency',title='HL Hit(In time Window) on Track: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-            trackGroup.defineHistogram('HtoLonTMapS_passed,HtoLonTMapS;hHtoLonTMapS',type='TEfficiency',title='HL/LL Ratio on Track: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
-            trackGroup.defineHistogram('HtoLWonTMapS_passed,HtoLWonTMapS;hHtoLWonTMapS',type='TEfficiency',title='HL/LL (In Time Window) Ratio on Track: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+            trackGroup.defineHistogram('HitWonTMapS;unscaled_hHitWonTMapS',type='TH1F',title='Leading Edge on Track in Time Window: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+            trackGroup.defineHistogram('HitAonTMapS;unscaled_hHitAonTMapS',type='TH1F',title='Any LL Bit on Track: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+            trackGroup.defineHistogram('HitHonTMapS;unscaled_hHitHonTMapS',type='TH1F',title='HL Hit on Track: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+            trackGroup.defineHistogram('HitHWonTMapS;unscaled_hHitHWonTMapS',type='TH1F',title='HL Hit(In Time Window) on Track: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+            trackGroup.defineHistogram('HitAWonTMapS;unscaled_hHitAWonTMapS',type='TH1F',title='Any LL Bit on Track in Time Window: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+            trackGroup.defineHistogram('EfficiencyS,EfficiencyS_passed;hEfficiencyS',type='TProfile',title='Straw Efficiency with {0} mm Cut;Straw Number in Stack;Efficiency'.format(distance),path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+            trackGroup.defineHistogram('EfficiencyC,EfficiencyC_passed;hEfficiencyC',type='TProfile',title='Chip Efficiency with {0} mm Cut;Chip Number in Stack;Efficiency'.format(distance),path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+            trackGroup.defineHistogram('HitWonTMapC;unscaled_hHitWonTMapC',type='TH1F',title='Leading Edge on Track in Time Window: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+            trackGroup.defineHistogram('HitAonTMapC;unscaled_hHitAonTMapC',type='TH1F',title='Any LL Bit on Track: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+            trackGroup.defineHistogram('HitAWonTMapC;unscaled_hHitAWonTMapC',type='TH1F',title='Any LL Bit on Track in Time Window: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+            trackGroup.defineHistogram('HitHonTMapC;unscaled_hHitHonTMapC',type='TH1F',title='HL Hit on Track: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+            trackGroup.defineHistogram('HitHWonTMapC;unscaled_hHitHWonTMapC',type='TH1F',title='HL Hit(In time Window) on Track: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+            trackGroup.defineHistogram('HtoLonTMapS,HtoLonTMapS_passed;hHtoLonTMapS',type='TProfile',title='HL/LL Ratio on Track: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
+            trackGroup.defineHistogram('HtoLWonTMapS,HtoLWonTMapS_passed;hHtoLWonTMapS',type='TProfile',title='HL/LL (In Time Window) Ratio on Track: Straws;Straw Number in Stack;Probability',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
             trackGroup.defineHistogram('HitonTrackVAllS_x,HitonTrackVAllS_y;hHitonTrackVAllS',type='TProfile',title='(Hit on Track) / (Any LL Bit): Straws;Straw Number in Stack;Ratio',path=oss,xbins=strawMax[ibe],xmin=0,xmax=strawMax[ibe])
             trackGroup.defineHistogram('HitonTrackVAllC_x,HitonTrackVAllC_y;hHitonTrackVAllC',type='TProfile',title='(Hit on Track) / (Any LL Bit): Chips;Chip Number in Stack;Ratio',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-            trackGroup.defineHistogram('HtoLWonTMapC_passed,HtoLWonTMapC;hHtoLWonTMapC',type='TEfficiency',title='HL/LL(In Time Window) Ratio on Track: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-            trackGroup.defineHistogram('HtoLonTMapC_passed,HtoLonTMapC;hHtoLonTMapC',type='TEfficiency',title='HL/LL Ratio on Track: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
-            
-for ibe in range(2): 
+            trackGroup.defineHistogram('HtoLWonTMapC,HtoLWonTMapC_passed;hHtoLWonTMapC',type='TProfile',title='HL/LL(In Time Window) Ratio on Track: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+            trackGroup.defineHistogram('HtoLonTMapC,HtoLonTMapC_passed;hHtoLonTMapC',type='TProfile',title='HL/LL Ratio on Track: Chips;Chip Number in Stack;Probability',path=oss,xbins=iChipMax[ibe],xmin=0,xmax=iChipMax[ibe])
+
+for ibe in range(2):
     if ibe == 0:
         regionTag = ' (' + barrelOrEndcap[ibe] + ')'
         shiftTrackGroup = helper.addGroup(algTRTMonitoringRun3RAW,'ShiftTRTTrackHistograms0')
@@ -205,7 +196,7 @@ for ibe in range(2):
         shiftTrackGroup.defineHistogram('HLhitOnTrack_B;hHLhitOnTrack',type='TH1F',title='Number of HL Hits per Reconstructed Track{0};Number of HL Hits per Track;Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=50,xmin=0,xmax=50)
         shiftTrackGroup.defineHistogram('HtoLRatioOnTrack_B;hHtoLRatioOnTrack',type='TH1F',title='HL/LL Ratio per Reconstructed Track for All{0};HL/LL Ratio;Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=50,xmin=0,xmax=1)
         shiftTrackGroup.defineHistogram('HitWonTMap_B;hHitWonTMap',type='TH1F',title='Leading Edge in Time Window per Reconstructed Track{0};Straw Number;Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=strawMax[0],xmin=0,xmax=strawMax[0])
-        shiftTrackGroup.defineHistogram('StrawEffDetPhi_B_passed,StrawEffDetPhi_B;hStrawEffDetPhi',type='TEfficiency',title='Straw Efficiency on Track with {0} mm Cut vs #phi(2D){1};Stack;Avg. Straw Efficiency'.format(distance,regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=32,xmin=0,xmax=32)
+        shiftTrackGroup.defineHistogram('StrawEffDetPhi_B_passed,StrawEffDetPhi_B;hStrawEffDetPhi',type='TProfile',title='Straw Efficiency on Track with {0} mm Cut vs #phi(2D){1};Stack;Avg. Straw Efficiency'.format(distance,regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=32,xmin=0,xmax=32)
     elif ibe == 1:
         for iside in range(2):
             regionTag = ' (' + beId[ibe] + sideId[iside] + ')'
@@ -216,18 +207,20 @@ for ibe in range(2):
             shiftTrackEndcapGroup.defineHistogram('HLhitOnTrack_E;hHLhitOnTrack_{0}'.format(sideId[iside]),type='TH1F',title='Number of HL Hits per Reconstructed Track{0};Number of HL Hits per Track;Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=50,xmin=0,xmax=50)
             shiftTrackEndcapGroup.defineHistogram('HtoLRatioOnTrack_E;hHtoLRatioOnTrack_{0}'.format(sideId[iside]),type='TH1F',title='HL/LL Ratio per Reconstructed Track for All{0};HL/LL Ratio;Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=50,xmin=0,xmax=1)
             shiftTrackEndcapGroup.defineHistogram('HitWonTMap_E;hHitWonTMap_{0}'.format(sideId[iside]),type='TH1F',title='Leading Edge in Time Window per Reconstructed Track{0};Straw Number;Entries'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=strawMax[1],xmin=0,xmax=strawMax[1])
-            shiftTrackEndcapGroup.defineHistogram('StrawEffDetPhi_E_passed,StrawEffDetPhi_E;hStrawEffDetPhi_{0}'.format(sideId[iside]),type='TEfficiency',title='Straw Efficiency on Track with {0} mm Cut vs #phi(2D){1};Stack;Avg. Straw Efficiency'.format(distance,regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=32,xmin=0,xmax=32)
+            shiftTrackEndcapGroup.defineHistogram('StrawEffDetPhi_E_passed,StrawEffDetPhi_E;hStrawEffDetPhi_{0}'.format(sideId[iside]),type='TProfile',title='Straw Efficiency on Track with {0} mm Cut vs #phi(2D){1};Stack;Avg. Straw Efficiency'.format(distance,regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=32,xmin=0,xmax=32)
 ### Finished Booking TRT Hits Histograms ###
 
 for ibe in range(2):
+    regionTag = ' (' + barrelOrEndcap[ibe] + ')'
     if ibe == 0:
         rdoShiftRebinnedBarrelGroup = helper.addGroup(algTRTMonitoringRun3RAW,'RDOShiftRebinnedBarrelHistograms0')
-        rdoShiftRebinnedBarrelGroup.defineHistogram('NHitsperLB_x,NHitsperLB_y;hNHitsperLB',type='TProfile',title='Avg. Occupancy{0};Luminosity Block;Occupancy'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=maxLumiblock,xmin=-0.5,xmax=maxLumiblock-0.5,duration='run') #CAN_REBIN(m_hNHitsperLB_B);
-        rdoShiftRebinnedBarrelGroup.defineHistogram('NHLHitsperLB_x,NHLHitsperLB_y;hNHLHitsperLB',type='TProfile',title='Avg. HL Occupancy{0};Luminosity Block;Occupancy'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=maxLumiblock,xmin=-0.5,xmax=maxLumiblock-0.5,duration='run') #CAN_REBIN(m_hNHLHitsperLB_B);
+        rdoShiftRebinnedBarrelGroup.defineHistogram('NHitsperLB_x,NHitsperLB_y;hNHitsperLB',type='TProfile',title='Avg. Occupancy{0};Luminosity Block;Occupancy'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=maxLumiBlockShift,xmin=-0.5,xmax=maxLumiBlockShift-0.5,duration='run') #CAN_REBIN(m_hNHitsperLB_B);
+        rdoShiftRebinnedBarrelGroup.defineHistogram('NHLHitsperLB_x,NHLHitsperLB_y;hNHLHitsperLB',type='TProfile',title='Avg. HL Occupancy{0};Luminosity Block;Occupancy'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=maxLumiBlockShift,xmin=-0.5,xmax=maxLumiBlockShift-0.5,duration='run') #CAN_REBIN(m_hNHLHitsperLB_B);
     elif ibe == 1:
         for iside in range(2):
+            regionTag = ' (' + beId[ibe] + sideId[iside] + ')'
             rdoShiftRebinnedEndcapGroup = helper.addGroup(algTRTMonitoringRun3RAW,'RDOShiftRebinnedEndcapHistograms1{0}'.format(iside))
-            rdoShiftRebinnedEndcapGroup.defineHistogram('NHitsperLB_x,NHitsperLB_y;hNHitsperLB_{0}'.format(sideId[iside]),type='TProfile',title='Avg. Occupancy{0};Luminosity Block;Occupancy'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=maxLumiblock,xmin=-0.5,xmax=maxLumiblock-0.5,duration='run') #CAN_REBIN(m_hNHitsperLB_E[iside]);
-            rdoShiftRebinnedEndcapGroup.defineHistogram('NHLHitsperLB_x,NHLHitsperLB_y;hNHLHitsperLB_{0}'.format(sideId[iside]),type='TProfile',title='Avg. HL Occupancy{0};Luminosity Block;Occupancy'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=maxLumiblock,xmin=-0.5,xmax=maxLumiblock-0.5,duration='run') #CAN_REBIN(m_hNHLHitsperLB_E[iside]);
+            rdoShiftRebinnedEndcapGroup.defineHistogram('NHitsperLB_x,NHitsperLB_y;hNHitsperLB_{0}'.format(sideId[iside]),type='TProfile',title='Avg. Occupancy{0};Luminosity Block;Occupancy'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=maxLumiBlockShift,xmin=-0.5,xmax=maxLumiBlockShift-0.5,duration='run') #CAN_REBIN(m_hNHitsperLB_E[iside]);
+            rdoShiftRebinnedEndcapGroup.defineHistogram('NHLHitsperLB_x,NHLHitsperLB_y;hNHLHitsperLB_{0}'.format(sideId[iside]),type='TProfile',title='Avg. HL Occupancy{0};Luminosity Block;Occupancy'.format(regionTag),path='TRT/Shift/{0}'.format(barrelOrEndcap[ibe]),xbins=maxLumiBlockShift,xmin=-0.5,xmax=maxLumiBlockShift-0.5,duration='run') #CAN_REBIN(m_hNHLHitsperLB_E[iside]);
 
 topSequence += helper.result()
diff --git a/InnerDetector/InDetMonitoring/TRTMonitoringRun3/src/TRTMonitoringRun3ESD_Alg.cxx b/InnerDetector/InDetMonitoring/TRTMonitoringRun3/src/TRTMonitoringRun3ESD_Alg.cxx
index 65fdd687bc3..b000d7fb3bd 100644
--- a/InnerDetector/InDetMonitoring/TRTMonitoringRun3/src/TRTMonitoringRun3ESD_Alg.cxx
+++ b/InnerDetector/InDetMonitoring/TRTMonitoringRun3/src/TRTMonitoringRun3ESD_Alg.cxx
@@ -24,7 +24,7 @@
 
 #include <sstream>
 #include <iomanip>
-#include <memory> 
+#include <memory>
 #include <cmath>
 using namespace std;
 
@@ -57,9 +57,9 @@ TRTMonitoringRun3ESD_Alg::TRTMonitoringRun3ESD_Alg( const std::string& name, ISv
     declareProperty("DoTracksMon",              m_doTracksMon         = true);
     declareProperty("doStraws",                 m_doStraws            = true);
     declareProperty("doChips",                  m_doChips             = true);
-    declareProperty("doExpert",                 m_doExpert            = true);
-    declareProperty("doShift",                  m_doShift             = true); 
-    declareProperty("DistanceToStraw",          m_DistToStraw         = 0.4);  
+    declareProperty("doExpert",                 m_doExpert            = false);
+    declareProperty("doShift",                  m_doShift             = true);
+    declareProperty("DistanceToStraw",          m_DistToStraw         = 0.4);
     declareProperty("min_si_hits",              m_min_si_hits         = 1);
     declareProperty("min_pixel_hits",           m_min_pixel_hits      = 0);
     declareProperty("min_sct_hits",             m_min_sct_hits        = 0);
@@ -68,17 +68,17 @@ TRTMonitoringRun3ESD_Alg::TRTMonitoringRun3ESD_Alg( const std::string& name, ISv
     declareProperty("MinTrackP",                m_minP                = 0.0 * CLHEP::GeV);
     declareProperty("min_pT",                   m_min_pT              = 0.5 * CLHEP::GeV);
 }
- 
+
 TRTMonitoringRun3ESD_Alg::~TRTMonitoringRun3ESD_Alg() {}
 
-StatusCode TRTMonitoringRun3ESD_Alg::initialize() { 
+StatusCode TRTMonitoringRun3ESD_Alg::initialize() {
     using namespace Monitored;
-    
+
     ATH_MSG_VERBOSE("Initializing TRT Monitoring");
 
     // Initialize superclass
     ATH_CHECK( AthMonitorAlgorithm::initialize() );
-    
+
     // Retrieve detector manager
     ATH_CHECK( detStore()->retrieve(m_mgr, "TRT") );
     // Get ID helper for TRT to access various detector components like straw, straw_layer, layer_or_wheel, phi_module, etc.
@@ -410,7 +410,7 @@ StatusCode TRTMonitoringRun3ESD_Alg::fillTRTTracks(const xAOD::TrackParticleCont
                                               const xAOD::EventInfo& eventInfo) const {
 //----------------------------------------------------------------------------------//
     ATH_MSG_VERBOSE("Filling TRT Tracks Histos");
-    
+
     // TProfile
     auto HitToTonTMapS_x                = Monitored::Scalar<float>("HitToTonTMapS_x", 0.0);
     auto HitToTonTMapS_y                = Monitored::Scalar<float>("HitToTonTMapS_y", 0.0);
@@ -446,8 +446,8 @@ StatusCode TRTMonitoringRun3ESD_Alg::fillTRTTracks(const xAOD::TrackParticleCont
     auto EvtPhaseDetPhi_E_y             = Monitored::Scalar<float>("EvtPhaseDetPhi_E_y", 0.0);
     auto NTrksperLB_x                   = Monitored::Scalar<float>("NTrksperLB_x", 0.0);
     auto NTrksperLB_y                   = Monitored::Scalar<float>("NTrksperLB_y", 0.0);
-    
-    
+
+
     // TH1F
     auto DriftTimeonTrkDist_B           = Monitored::Scalar<float>("DriftTimeonTrkDist_B", 0.0);
     auto DriftTimeonTrkDist_B_Ar        = Monitored::Scalar<float>("DriftTimeonTrkDist_B_Ar", 0.0);
@@ -465,6 +465,14 @@ StatusCode TRTMonitoringRun3ESD_Alg::fillTRTTracks(const xAOD::TrackParticleCont
     auto Residual_E_Ar                  = Monitored::Scalar<float>("Residual_E_Ar", 0.0);
     auto Residual_E_20GeV               = Monitored::Scalar<float>("Residual_E_20GeV", 0.0);
     auto Residual_E_Ar_20GeV            = Monitored::Scalar<float>("Residual_E_Ar_20GeV", 0.0);
+    auto Residual_noTubeHits_B          = Monitored::Scalar<float>("Residual_noTubeHits_B", 0.0);
+    auto Residual_noTubeHits_B_Ar       = Monitored::Scalar<float>("Residual_noTubeHits_B_Ar", 0.0);
+    auto Residual_noTubeHits_B_20GeV    = Monitored::Scalar<float>("Residual_noTubeHits_B_20GeV", 0.0);
+    auto Residual_noTubeHits_B_Ar_20GeV = Monitored::Scalar<float>("Residual_noTubeHits_B_Ar_20GeV", 0.0);
+    auto Residual_noTubeHits_E          = Monitored::Scalar<float>("Residual_noTubeHits_E", 0.0);
+    auto Residual_noTubeHits_E_Ar       = Monitored::Scalar<float>("Residual_noTubeHits_E_Ar", 0.0);
+    auto Residual_noTubeHits_E_20GeV    = Monitored::Scalar<float>("Residual_noTubeHits_E_20GeV", 0.0);
+    auto Residual_noTubeHits_E_Ar_20GeV = Monitored::Scalar<float>("Residual_noTubeHits_E_Ar_20GeV", 0.0);
     auto TimeResidual_B                 = Monitored::Scalar<float>("TimeResidual_B", 0.0);
     auto TimeResidual_B_Ar              = Monitored::Scalar<float>("TimeResidual_B_Ar", 0.0);
     auto TimeResidual_E                 = Monitored::Scalar<float>("TimeResidual_E", 0.0);
@@ -496,7 +504,7 @@ StatusCode TRTMonitoringRun3ESD_Alg::fillTRTTracks(const xAOD::TrackParticleCont
     auto RtRelation_E_y                 = Monitored::Scalar<float>("RtRelation_E_y", 0.0);
     auto EvtPhaseVsTrig_x               = Monitored::Scalar<float>("EvtPhaseVsTrig_x", 0.0);
     auto EvtPhaseVsTrig_y               = Monitored::Scalar<float>("EvtPhaseVsTrig_y", 0.0);
-    
+
     // Initialize a bunch of stuff before looping over the track collection. Fill some basic histograms.
     const float timeCor =  comTimeObject ? comTimeObject->getTime() : 0;
 
@@ -555,7 +563,7 @@ for (; p_trk != trackCollection.end(); ++p_trk) {
         DataVector<const Trk::TrackStateOnSurface>::const_iterator TSOSItBegin     = trackStates->begin();
         DataVector<const Trk::TrackStateOnSurface>::const_iterator TSOSItBeginTemp = trackStates->begin();
         DataVector<const Trk::TrackStateOnSurface>::const_iterator TSOSItEnd       = trackStates->end();
-        
+
         (*p_trk)->summaryValue(tempHitsVariable, xAOD::SummaryType::numberOfTRTHits);
         int n_trt_hits = unsigned(tempHitsVariable);
         (*p_trk)->summaryValue(tempHitsVariable, xAOD::SummaryType::numberOfSCTHits);
@@ -670,7 +678,7 @@ for (; p_trk != trackCollection.end(); ++p_trk) {
         for (int i = 0; i < 2; i++) {
             std::fill(trackfound[i], trackfound[i] + 64, false);
         }
-        
+
         for (TSOSItBegin = TSOSItBegin0; TSOSItBegin != TSOSItEnd; ++TSOSItBegin) {
             // Select a TSOS which is non-empty, measurement type and contains  both drift circle and track parameters informations
             if ((*TSOSItBegin) == 0) continue;
@@ -718,12 +726,12 @@ for (; p_trk != trackCollection.end(); ++p_trk) {
                 nTracksB[iside]++;
                 checkB[iside] = 1;
             }
-            
+
             if (checkEC[iside] == 0 && ibe == 1) {
                 nTracksEC[iside]++;
                 checkEC[iside] = 1;
             }
-            
+
             if (checkEC_B[iside] == 0 && checkB[iside] == 1 && ibe == 1 ) {
                 nTracksEC_B[iside]++;
                 checkEC_B[iside] = 1;
@@ -757,7 +765,7 @@ for (; p_trk != trackCollection.end(); ++p_trk) {
                         hitontrack_E_side[iside]++;
                     }
                 }
-            } 
+            }
             const InDet::TRT_DriftCircle *RawDriftCircle = dynamic_cast<const InDet::TRT_DriftCircle *>(trtCircle->prepRawData());
             bool isTubeHit = (mesb->localCovariance()(Trk::locX, Trk::locX) > 1.0) ? 1 : 0;
             if (RawDriftCircle) {
@@ -765,6 +773,12 @@ for (; p_trk != trackCollection.end(); ++p_trk) {
                 float timeOverThreshold = RawDriftCircle->timeOverThreshold();
                 double t0 = m_TRTCalDbTool->getT0(DCoTId, TRTCond::ExpandedIdentifier::STRAW);
 
+                if (m_doExpert && m_doStraws) {
+                    HitToTonTMapS_x = thisStrawNumber[ibe];
+                    HitToTonTMapS_y = timeOverThreshold;
+                    fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitToTonTMapS_x, HitToTonTMapS_y);
+                }
+
                 if (m_doExpert && m_doChips) {
                     HitToTonTMapC_x = chip[ibe] - 1;
                     HitToTonTMapC_y = timeOverThreshold;
@@ -856,10 +870,14 @@ for (; p_trk != trackCollection.end(); ++p_trk) {
                         if (isArgonStraw) {
                             Residual_B_Ar = loc - locR;
                             fill("ShiftTRTTrackHistograms"+std::to_string(ibe), Residual_B_Ar);
+                            Residual_noTubeHits_B_Ar = loc - locR;
+                            if (!isTubeHit) fill("ShiftTRTTrackHistograms"+std::to_string(ibe), Residual_noTubeHits_B_Ar);
 
                             if (cnst_is_pT_over_20GeV) {
                                 Residual_B_Ar_20GeV = loc - locR;
                                 fill("ShiftTRTTrackHistograms"+std::to_string(ibe), Residual_B_Ar_20GeV);
+                                Residual_noTubeHits_B_Ar_20GeV = loc - locR;
+                                if (!isTubeHit) fill("ShiftTRTTrackHistograms"+std::to_string(ibe), Residual_noTubeHits_B_Ar_20GeV);
                             }
                             TimeResidual_B_Ar = timeresidual;
                             fill("ShiftTRTTrackHistograms"+std::to_string(ibe), TimeResidual_B_Ar);
@@ -868,6 +886,8 @@ for (; p_trk != trackCollection.end(); ++p_trk) {
                         } else {
                             Residual_B = loc - locR;
                             fill("ShiftTRTTrackHistograms"+std::to_string(ibe), Residual_B);
+                            Residual_noTubeHits_B = loc - locR;
+                            if (!isTubeHit) fill("ShiftTRTTrackHistograms"+std::to_string(ibe), Residual_noTubeHits_B);
                             TimeResidual_B = timeresidual;
                             fill("ShiftTRTTrackHistograms"+std::to_string(ibe), TimeResidual_B);
                             TimeResidual_noTubeHits_B = timeresidual;
@@ -876,6 +896,8 @@ for (; p_trk != trackCollection.end(); ++p_trk) {
                             if (cnst_is_pT_over_20GeV) {
                                 Residual_B_20GeV = loc - locR;
                                 fill("ShiftTRTTrackHistograms"+std::to_string(ibe), Residual_B_20GeV);
+                                Residual_noTubeHits_B_20GeV = loc - locR;
+                                if (!isTubeHit) fill("ShiftTRTTrackHistograms"+std::to_string(ibe), Residual_noTubeHits_B_20GeV);
                             }
                         }
                     } else if (ibe == 1) {
@@ -889,6 +911,8 @@ for (; p_trk != trackCollection.end(); ++p_trk) {
                         if (isArgonStraw) {
                             Residual_E_Ar = loc - locR;
                             fill("ShiftTRTTrackHistograms"+std::to_string(ibe)+std::to_string(iside), Residual_E_Ar);
+                            Residual_noTubeHits_E_Ar = loc - locR;
+                            if (!isTubeHit) fill("ShiftTRTTrackHistograms"+std::to_string(ibe)+std::to_string(iside), Residual_noTubeHits_E_Ar);
                             TimeResidual_E_Ar = timeresidual;
                             fill("ShiftTRTTrackHistograms"+std::to_string(ibe)+std::to_string(iside), TimeResidual_E_Ar);
                             TimeResidual_noTubeHits_E_Ar = timeresidual;
@@ -897,10 +921,14 @@ for (; p_trk != trackCollection.end(); ++p_trk) {
                             if (cnst_is_pT_over_20GeV) {
                                 Residual_E_Ar_20GeV = loc - locR;
                                 fill("ShiftTRTTrackHistograms"+std::to_string(ibe)+std::to_string(iside), Residual_E_Ar_20GeV);
+                                Residual_noTubeHits_E_Ar_20GeV = loc - locR;
+                                if (!isTubeHit) fill("ShiftTRTTrackHistograms"+std::to_string(ibe)+std::to_string(iside), Residual_noTubeHits_E_Ar_20GeV);
                             }
                         } else {
                             Residual_E = loc - locR;
                             fill("ShiftTRTTrackHistograms"+std::to_string(ibe)+std::to_string(iside), Residual_E);
+                            Residual_noTubeHits_E = loc - locR;
+                            if (!isTubeHit) fill("ShiftTRTTrackHistograms"+std::to_string(ibe)+std::to_string(iside), Residual_noTubeHits_E);
                             TimeResidual_E = timeresidual;
                             fill("ShiftTRTTrackHistograms"+std::to_string(ibe)+std::to_string(iside), TimeResidual_E);
                             TimeResidual_noTubeHits_E = timeresidual;
@@ -909,6 +937,8 @@ for (; p_trk != trackCollection.end(); ++p_trk) {
                             if (cnst_is_pT_over_20GeV) {
                                 Residual_E_20GeV = loc - locR;
                                 fill("ShiftTRTTrackHistograms"+std::to_string(ibe)+std::to_string(iside), Residual_E_20GeV);
+                                Residual_noTubeHits_E_20GeV = loc - locR;
+                                if (!isTubeHit) fill("ShiftTRTTrackHistograms"+std::to_string(ibe)+std::to_string(iside), Residual_noTubeHits_E_20GeV);
                             }
                         }
                     }
@@ -1001,25 +1031,25 @@ for (; p_trk != trackCollection.end(); ++p_trk) {
                             HitTronTMapS_y = trailingEdgeScaled;
                             fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitTronTMapS_x, HitTronTMapS_y);
                         }
-    
+
                         if (m_doExpert && m_doChips) {
                             HitTronTMapC_x = chip[ibe] - 1;
                             HitTronTMapC_y = trailingEdgeScaled;
                             fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitTronTMapC_x, HitTronTMapC_y);
                         }
-    
+
                         if (m_doExpert && m_doStraws) {
                             HitTronTwEPCMapS_x = thisStrawNumber[ibe];
                             HitTronTwEPCMapS_y = trailingEdgeScaled - timeCor;
                             fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitTronTwEPCMapS_x, HitTronTwEPCMapS_y);
                         }
-    
+
                         if (m_doExpert && m_doChips) {
                             HitTronTwEPCMapC_x = chip[ibe] - 1;
                             HitTronTwEPCMapC_y = trailingEdgeScaled - timeCor;
                             fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitTronTwEPCMapC_x, HitTronTwEPCMapC_y);
                         }
-    
+
                         if (m_doShift && m_doStraws) {
                             if (RawDriftCircle->driftTimeValid()) {
                                 if (ibe == 0) {
@@ -1030,8 +1060,8 @@ for (; p_trk != trackCollection.end(); ++p_trk) {
                                         AvgTroTDetPhi_B_Ar_y = trailingEdgeScaled;
                                         fill("ShiftTRTTrackHistograms"+std::to_string(ibe), AvgTroTDetPhi_B_Ar_x, AvgTroTDetPhi_B_Ar_y);
                                     } else {
-                                        TronTDist_B_Ar = trailingEdgeScaled;
-                                        fill("ShiftTRTTrackHistograms"+std::to_string(ibe), TronTDist_B_Ar);
+                                        TronTDist_B = trailingEdgeScaled;
+                                        fill("ShiftTRTTrackHistograms"+std::to_string(ibe), TronTDist_B);
                                         AvgTroTDetPhi_B_x = phi2D[ibe];
                                         AvgTroTDetPhi_B_y = trailingEdgeScaled;
                                         fill("ShiftTRTTrackHistograms"+std::to_string(ibe), AvgTroTDetPhi_B_x, AvgTroTDetPhi_B_y);
@@ -1172,7 +1202,7 @@ for (; p_trk != trackCollection.end(); ++p_trk) {
             Summary = 0;
             SummaryWeight = 1.;
             fill("SmryHistograms", SummaryWeight, Summary);
-            
+
             if (m_doTracksMon) {
                 Summary = 1;
                 SummaryWeight = nTotalTracks;
@@ -1197,37 +1227,37 @@ for (; p_trk != trackCollection.end(); ++p_trk) {
                 fill("SmryHistograms", SummaryWeight, Summary);
             }
         }
-    
+
         if (m_doShift) {
             const unsigned int lumiBlock = eventInfo.lumiBlock();
             ATH_MSG_VERBOSE("This is lumiblock : " << lumiBlock);
-            int lastLumiBlock = -99;
+            int lastLumiBlock = -99; // ToDo - last lumiblock calculation is not correct
             if ((int)lumiBlock != lastLumiBlock) {
                 lastLumiBlock = lumiBlock;
             }
             float evtLumiBlock = 1.;
             float lumiBlockScale = (evtLumiBlock > 0) ? (1. / evtLumiBlock) : 0;
-    
+
             if (m_doTracksMon && evtLumiBlock > 0) {
                 NTrksperLB_x = lastLumiBlock;
                 NTrksperLB_y = (float)nTrksperLB_B * lumiBlockScale;
                 fill("ShiftTRTTrackHistograms0", NTrksperLB_x, NTrksperLB_y);
-    
+
                 for (int iside = 0; iside < 2; iside++) {
                     NTrksperLB_x = lastLumiBlock;
                     NTrksperLB_y = (float)nTrksperLB_E[iside] * lumiBlockScale;
                     fill("ShiftTRTTrackHistograms1"+std::to_string(iside), NTrksperLB_x, NTrksperLB_y);
                 }
-    
+
                 nTrksperLB_B = 0;
-    
+
                 for (int iside = 0; iside < 2; iside++) {
                     nTrksperLB_E[iside] = 0;
                 }
 
             }
         }
-        
+
         ATH_MSG_DEBUG("end of event and lumi block");
         //number of events in lumiblock counter setted to zero since it is end of the run or the lumiblock
     }
@@ -1235,26 +1265,56 @@ for (; p_trk != trackCollection.end(); ++p_trk) {
     return StatusCode::SUCCESS;
 }
 
-
 //----------------------------------------------------------------------------------//
 StatusCode TRTMonitoringRun3ESD_Alg::fillTRTHighThreshold(const xAOD::TrackParticleContainer& trackCollection,
-                                                     const xAOD::EventInfo& eventInfo) const {
+                                                     const xAOD::EventInfo& eventInfo, const EventContext& ctx) const {
 //----------------------------------------------------------------------------------//
+    int maxtimestamp = 0.; // ToDo - this should be outside the function, 
+                           // but such thing is restricted by the MT-safe paradigm
+
+    auto IntLum         = Monitored::Scalar<float>("IntLum", 0.0);
+    auto LBvsLum        = Monitored::Scalar<float>("LBvsLum", 0.0);
+    auto LBvsTime       = Monitored::Scalar<float>("LBvsTime", 0.0);
+    auto IntLumWeight   = Monitored::Scalar<float>("IntLumWeight", 0.0);
+    auto LBvsLumWeight  = Monitored::Scalar<float>("LBvsLumWeight", 0.0);
+    auto LBvsTimeWeight = Monitored::Scalar<float>("LBvsTimeWeight", 0.0);
+
+    int lumiBlockNumber;
+    int timeStamp;
+    lumiBlockNumber = eventInfo.lumiBlock();
+    timeStamp = eventInfo.timeStamp();
+
+    if (timeStamp > maxtimestamp) {
+        maxtimestamp = timeStamp;
+    }
+
+    int runNumber;
+    runNumber = eventInfo.runNumber();
+    // get Online Luminosity
+    double intLum = (lbDuration(ctx) * lbAverageLuminosity(ctx));
+    double timeStampAverage = (maxtimestamp - 0.5*lbDuration(ctx));
+    IntLum = 0.5;
+    IntLumWeight = intLum;
+    fill("SmryHistograms", IntLumWeight, IntLum);
+    LBvsLum = lumiBlockNumber;
+    LBvsLumWeight = intLum;
+    fill("SmryHistograms", LBvsLumWeight, LBvsLum);
+    LBvsTime = lumiBlockNumber;
+    LBvsTimeWeight = timeStampAverage;
+    fill("SmryHistograms", LBvsTimeWeight, LBvsTime);
+
     ATH_MSG_VERBOSE("Filling TRT Aging Histos");
-    
+
     auto Trackr_HT  = Monitored::Scalar<float>("Trackr_HT", 0.0);
     auto Trackr_All = Monitored::Scalar<float>("Trackr_All", 0.0);
     auto Trackz_HT  = Monitored::Scalar<float>("Trackz_HT", 0.0);
     auto Trackz_All = Monitored::Scalar<float>("Trackz_All", 0.0);
-  
+
     auto p_trk = trackCollection.begin();
     const Trk::Perigee *perigee = NULL;
     const DataVector<const Trk::TrackParameters> *AllTrkPar(0);
     DataVector<const Trk::TrackParameters>::const_iterator p_trkpariter;
 
-    int runNumber;
-    runNumber = eventInfo.runNumber();
-
     for (; p_trk != trackCollection.end(); ++p_trk) {
         AllTrkPar = ((*p_trk)->track())->trackParameters();
 
@@ -1493,9 +1553,9 @@ StatusCode TRTMonitoringRun3ESD_Alg::fillHistograms( const EventContext& ctx ) c
     }
 
     if (passEventBurst) { // ESD files does not have an RDO container to pass event burst, what to do?
-        ATH_CHECK( fillTRTHighThreshold(*trackCollection, *xAODEventInfo) );
+        ATH_CHECK( fillTRTHighThreshold(*trackCollection, *xAODEventInfo,  ctx) );
     }
-    
+
 
 
     return StatusCode::SUCCESS;
diff --git a/InnerDetector/InDetMonitoring/TRTMonitoringRun3/src/TRTMonitoringRun3RAW_Alg.cxx b/InnerDetector/InDetMonitoring/TRTMonitoringRun3/src/TRTMonitoringRun3RAW_Alg.cxx
index 1117b1e064a..5f0bb2e2535 100644
--- a/InnerDetector/InDetMonitoring/TRTMonitoringRun3/src/TRTMonitoringRun3RAW_Alg.cxx
+++ b/InnerDetector/InDetMonitoring/TRTMonitoringRun3/src/TRTMonitoringRun3RAW_Alg.cxx
@@ -33,14 +33,15 @@ for (int i = 1; i <= NBINS; i++) \
 
 #include <sstream>
 #include <iomanip>
-#include <memory> 
+#include <memory>
 #include <cmath>
 using namespace std;
 
 //Private Static Const data member initialization
-const int TRTMonitoringRun3RAW_Alg::s_numberOfBarrelStacks = 32;
-const int TRTMonitoringRun3RAW_Alg::s_numberOfEndCapStacks = 32;
-const int TRTMonitoringRun3RAW_Alg::s_Straw_max[2] = {1642, 3840};
+constexpr int TRTMonitoringRun3RAW_Alg::s_numberOfBarrelStacks = 32;
+constexpr int TRTMonitoringRun3RAW_Alg::s_numberOfEndCapStacks = 32;
+constexpr int TRTMonitoringRun3RAW_Alg::s_Straw_max[2] = {1642, 3840};
+constexpr int TRTMonitoringRun3RAW_Alg::s_iChip_max[2] = {104, 240};
 
 TRTMonitoringRun3RAW_Alg::TRTMonitoringRun3RAW_Alg( const std::string& name, ISvcLocator* pSvcLocator )
 :AthMonitorAlgorithm(name,pSvcLocator)
@@ -62,7 +63,8 @@ TRTMonitoringRun3RAW_Alg::TRTMonitoringRun3RAW_Alg( const std::string& name, ISv
     declareProperty("doMaskStraws",                   m_doMaskStraws     = true);
     declareProperty("useHoleFinder",                  m_useHoleFinder    = true);
     declareProperty("DoHitsMon",                      m_doHitsMon        = true);
-    declareProperty("DistanceToStraw",                m_DistToStraw      = 0.4); 
+    declareProperty("DistanceToStraw",                m_DistToStraw      = 0.4);
+    declareProperty("totalEvents",                    m_usedEvents      = -1);
     declareProperty("min_si_hits",                    m_min_si_hits      = 1);
     declareProperty("min_pixel_hits",                 m_min_pixel_hits   = 0);
     declareProperty("min_sct_hits",                   m_min_sct_hits     = 0);
@@ -75,24 +77,23 @@ TRTMonitoringRun3RAW_Alg::TRTMonitoringRun3RAW_Alg( const std::string& name, ISv
     declareProperty("MinTrackP",                      m_minP             = 0.0 * CLHEP::GeV);
     declareProperty("min_pT",                         m_min_pT           = 0.5 * CLHEP::GeV);
 }
- 
- 
+
 TRTMonitoringRun3RAW_Alg::~TRTMonitoringRun3RAW_Alg() {}
 
 StatusCode TRTMonitoringRun3RAW_Alg::initialize() {
     using namespace Monitored;
-    
+
     ATH_MSG_VERBOSE("Initializing TRT Monitoring");
 
     // initialize superclass
     ATH_CHECK( AthMonitorAlgorithm::initialize() );
-    
+
     // Retrieve detector manager.
     ATH_CHECK( detStore()->retrieve(m_mgr, "TRT") );
     // Get ID helper for TRT to access various detector components like straw, straw_layer, layer_or_wheel, phi_module, etc...
     ATH_CHECK( detStore()->retrieve(m_pTRTHelper, "TRT_ID") );
     ATH_CHECK( detStore()->retrieve(m_idHelper, "AtlasID") );
-    
+
     if (m_doExpert) {
         // Retrieve the TRT_Straw Status Service.
         if (m_sumTool.name().empty()) {
@@ -107,13 +108,13 @@ StatusCode TRTMonitoringRun3RAW_Alg::initialize() {
             ATH_MSG_VERBOSE("Trying " << m_sumTool << " isGood");
             ATH_MSG_VERBOSE("TRT_StrawStatusTool reports status = " << m_sumTool->getStatus(ident));
         }
-        
+
         // Retrieve the TRT_ByteStreamService.
-		if (m_BSSvc.name().empty()) {
-			ATH_MSG_WARNING("TRT_ByteStreamSvc not given.");
-		} else {
-			ATH_CHECK( m_BSSvc.retrieve() );
-		}
+        if (m_BSSvc.name().empty()) {
+            ATH_MSG_WARNING("TRT_ByteStreamSvc not given.");
+        } else {
+            ATH_CHECK( m_BSSvc.retrieve() );
+        }
     }//If do expert
 
     // Get Track summary tool
@@ -123,12 +124,12 @@ StatusCode TRTMonitoringRun3RAW_Alg::initialize() {
         ATH_MSG_DEBUG("Retrieved succesfully the track summary tool" << m_TrackSummaryTool);
 
     // Retrieve TRTTrackHoleSearchTool
-	if (m_doEfficiency || m_doExpert) {
-	  ATH_CHECK( m_trt_hole_finder.retrieve() );
-	}
-	else {
-	  m_trt_hole_finder.disable();
-	}
+    if (m_doEfficiency || m_doExpert) {
+      ATH_CHECK( m_trt_hole_finder.retrieve() );
+    }
+    else {
+      m_trt_hole_finder.disable();
+    }
 
     // Initialization of VarHandleKeys
     ATH_CHECK( m_rdoContainerKey.initialize() );
@@ -215,16 +216,83 @@ StatusCode TRTMonitoringRun3RAW_Alg::initialize() {
     return StatusCode::SUCCESS;
 }
 
+//----------------------------------------------------------------------------------//
+std::vector<std::vector<std::vector<int>>> TRTMonitoringRun3RAW_Alg::initScaleVectors() const {
+//----------------------------------------------------------------------------------//
+// if (m_flagforscale == 0 ) return 0;
+    std::vector<std::vector<std::vector<int>>> scale_hHitWMap;
+    std::vector<std::vector<int>> scale_hHitWMap_B, scale_hHitWMap_EA, scale_hHitWMap_EC;
+    std::vector<int> scale_B_Xe, scale_B_Ar, scale_EA_Xe, scale_EA_Ar, scale_EC_Xe, scale_EC_Ar;
+
+    scale_hHitWMap.clear();
+    scale_hHitWMap_B.clear();
+    scale_hHitWMap_EA.clear();
+    scale_hHitWMap_EC.clear();
+    scale_B_Xe.clear();
+    scale_B_Ar.clear();
+    scale_EA_Xe.clear();
+    scale_EA_Ar.clear();
+    scale_EC_Xe.clear();
+    scale_EC_Ar.clear();
+
+    for (int i = 0; i < s_Straw_max[0]; i++) {
+        float countAr = 0;
+        float countXe = 0;
+        int sN, sLN, lN;
+        strawNumber_reverse(i, &sN, &sLN, &lN);
+
+        for (int side = -1 ; side < 2; side += 2 ) {
+            for (int j = 0; j < 32; j++ ) {
+                Identifier Dummy_Identifier;
+                Dummy_Identifier = m_pTRTHelper->straw_id(side, j, lN, sLN, sN);
+                bool isArgonStraw = (Straw_Gastype( m_sumTool->getStatusHT(Dummy_Identifier) ) == GasType::Ar);
+
+                if (isArgonStraw)
+                    countAr += 1.0;
+                else
+                    countXe += 1.0;
+            }
+        }
+        scale_B_Xe.push_back(countXe);
+        scale_B_Ar.push_back(countAr);
+    }
+
+    for (int i = 0; i < s_Straw_max[1]; i++) {
+        scale_EA_Xe.push_back(32);
+        scale_EA_Ar.push_back(32);
+        scale_EC_Xe.push_back(32);
+        scale_EC_Ar.push_back(32);
+    }
+
+    scale_hHitWMap_B.push_back(scale_B_Xe);
+    scale_hHitWMap_B.push_back(scale_B_Ar);
+    scale_hHitWMap_EA.push_back(scale_EA_Xe);
+    scale_hHitWMap_EA.push_back(scale_EA_Ar);
+    scale_hHitWMap_EC.push_back(scale_EC_Xe);
+    scale_hHitWMap_EC.push_back(scale_EC_Ar);
+    scale_hHitWMap.push_back(scale_hHitWMap_B);
+    scale_hHitWMap.push_back(scale_hHitWMap_EA);
+    scale_hHitWMap.push_back(scale_hHitWMap_EC);
+
+// m_flagforscale = 0;
+    return scale_hHitWMap;
+}
+
 
 //-------------------------------------------------------------------------------------------------//
 StatusCode TRTMonitoringRun3RAW_Alg::checkTRTReadoutIntegrity(const xAOD::EventInfo& eventInfo) const {
 //-------------------------------------------------------------------------------------------------//
     StatusCode sc = StatusCode::SUCCESS;
 
+    auto ChipBSErrorsVsLB_x = Monitored::Scalar<float>("ChipBSErrorsVsLB_x", 0.0);
+    auto ChipBSErrorsVsLB_y = Monitored::Scalar<float>("ChipBSErrorsVsLB_y", 0.0);
+    auto RobBSErrorsVsLB_x  = Monitored::Scalar<float>("RobBSErrorsVsLB_x", 0.0);
+    auto RobBSErrorsVsLB_y  = Monitored::Scalar<float>("RobBSErrorsVsLB_y", 0.0);
+
     const TRT_BSErrContainer emptyErrCont;//Empty dummy instance for MC
     const TRT_BSErrContainer* bsErrCont=&emptyErrCont;
-	
-    if (!m_bsErrContKey.empty()) { 
+
+    if (!m_bsErrContKey.empty()) {
       //Regular real-data case, get the byte-stream errors from SG
       SG::ReadHandle<TRT_BSErrContainer> bsErrContHdl{m_bsErrContKey};
       bsErrCont=bsErrContHdl.cptr();
@@ -236,9 +304,9 @@ StatusCode TRTMonitoringRun3RAW_Alg::checkTRTReadoutIntegrity(const xAOD::EventI
     const unsigned int lumiBlock = eventInfo.lumiBlock();
     ATH_MSG_VERBOSE("This is lumiblock : " << lumiBlock);
 
-//    if ((int)lumiBlock != m_lastLumiBlock) {
-//        m_lastLumiBlock = lumiBlock;
-//    }
+    //if ((int)lumiBlock != m_lastLumiBlock) {
+    //    m_lastLumiBlock = lumiBlock;
+    //}
 
     //Get BSConversion errors
     const std::set<std::pair<uint32_t, uint32_t> > &L1IDErrorSet      = bsErrCont->getL1ErrorSet();
@@ -283,8 +351,10 @@ StatusCode TRTMonitoringRun3RAW_Alg::checkTRTReadoutIntegrity(const xAOD::EventI
 
     for (int ibe = 0; ibe < 2; ++ibe) {
         for (int iside = 0; iside < 2; ++iside) {
-//            m_hChipBSErrorsVsLB[ibe][iside]->Fill(lumiBlock, nBSErrors[ibe][iside]);
-//            m_hChipBSErrorsVsLB[ibe][iside]->SetEntries(lumiBlock); // we need this so the LastBinThreshold algorithm can find the last bin
+            ChipBSErrorsVsLB_x = lumiBlock;
+            ChipBSErrorsVsLB_y = nBSErrors[ibe][iside];
+        for (unsigned int i = 0; i < lumiBlock; i++) // we need this so the LastBinThreshold algorithm can find the last bin
+            fill("RDOShiftSmryRebinnedHistograms"+std::to_string(ibe)+std::to_string(iside), ChipBSErrorsVsLB_x, ChipBSErrorsVsLB_y);
         }
     }
 
@@ -300,8 +370,10 @@ StatusCode TRTMonitoringRun3RAW_Alg::checkTRTReadoutIntegrity(const xAOD::EventI
 
     for (int ibe = 0; ibe < 2; ++ibe) {
         for (int iside = 0; iside < 2; ++iside) {
-//            m_hRobBSErrorsVsLB[ibe][iside]->Fill(lumiBlock, nRobErrors[ibe][iside]);
-//            m_hRobBSErrorsVsLB[ibe][iside]->SetEntries(lumiBlock); // we need this so the LastBinThreshold algorithm can find the last bin
+            RobBSErrorsVsLB_x = lumiBlock;
+            RobBSErrorsVsLB_y = nRobErrors[ibe][iside];
+            for (unsigned int i = 0; i < lumiBlock; i++) // we need this so the LastBinThreshold algorithm can find the last bin
+                fill("RDOShiftSmryRebinnedHistograms"+std::to_string(ibe)+std::to_string(iside), RobBSErrorsVsLB_x, RobBSErrorsVsLB_y);
         }
     }
 
@@ -431,6 +503,45 @@ int TRTMonitoringRun3RAW_Alg::strawNumber(int strawNumber, int strawlayerNumber,
     return strawNumber;
 }
 
+//----------------------------------------------------------------------------------//
+int TRTMonitoringRun3RAW_Alg::strawNumber_reverse (int inp_strawnumber,  int *strawNumber, int *strawlayerNumber, int *LayerNumber) const {
+//----------------------------------------------------------------------------------//
+    const int numberOfStraws[75] = {
+        0,
+        15,
+        16, 16, 16, 16,
+        17, 17, 17, 17, 17,
+        18, 18, 18, 18, 18,
+        19, 19, 19,
+        18,
+        19,
+        20, 20, 20, 20, 20,
+        21, 21, 21, 21, 21,
+        22, 22, 22, 22, 22,
+        23, 23, 23, 23, 23,
+        24, 24,
+        23, 23,
+        24, 24, 24, 24,
+        25, 25, 25, 25, 25,
+        26, 26, 26, 26, 26,
+        27, 27, 27, 27, 27,
+        28, 28, 28, 28, 28,
+        29, 29, 29, 29,
+        28,
+        0
+    };
+    //ToDo check inp_strawnumber
+    int i = 1;
+
+    for (i = 1; inp_strawnumber >= 0; i++) {
+        inp_strawnumber -= numberOfStraws[i];
+    }
+
+    i -= 2;
+    strawLayerNumber_reverse(i, strawlayerNumber, LayerNumber);
+    *strawNumber = -inp_strawnumber - 1;
+    return 0;
+}
 
 //----------------------------------------------------------------------------------//
 int TRTMonitoringRun3RAW_Alg::strawNumberEndCap(int strawNumber, int strawLayerNumber, int LayerNumber, int phi_stack, int side) const {
@@ -529,24 +640,37 @@ int TRTMonitoringRun3RAW_Alg::strawLayerNumber(int strawLayerNumber, int LayerNu
     }
 }
 
+//----------------------------------------------------------------------------------//
+int TRTMonitoringRun3RAW_Alg::strawLayerNumber_reverse(int strawLayerNumInp, int *strawLayerNumber, int *LayerNumber) const {
+//----------------------------------------------------------------------------------//
+    //Danger? There are no checks on input
+    //use with care
+    if (strawLayerNumInp < 19) {
+        *strawLayerNumber = strawLayerNumInp;
+        *LayerNumber = 0;
+    } else if (strawLayerNumInp < 43) {
+        *strawLayerNumber = strawLayerNumInp - 19;
+        *LayerNumber = 1;
+    } else {
+        *strawLayerNumber = strawLayerNumInp - 43;
+        *LayerNumber = 2;
+    }
+
+    return 0;
+}
 
 //----------------------------------------------------------------------------------//
 float TRTMonitoringRun3RAW_Alg::radToDegrees(float radValue) const{
 //----------------------------------------------------------------------------------//
-	float degreeValue = radValue / M_PI * 180;
+    float degreeValue = radValue / M_PI * 180;
 
-	if (degreeValue < 0) degreeValue += 360;
+    if (degreeValue < 0) degreeValue += 360;
 
-	return degreeValue;
+    return degreeValue;
 }
 
 struct straw_struct {
     int strawNumber;
-    bool HitWMapS_passed;
-    bool HitAWMapS_passed;
-    bool HitAMapS_passed;
-    bool HitHMapS_passed;
-    bool HitHWMapS_passed;
     float HitTrMapS_y;
     float HitToTMapS_y;
     bool HitToTLong_cut;
@@ -554,18 +678,8 @@ struct straw_struct {
     float HitTrWMapS_y;
 };
 
-struct straw_norm_struct {
-    int strawNumber;
-    bool HitAMapS_passed;
-};
-
 struct chip_struct {
     int chipNumber;
-    bool HitWMapC_passed;
-    bool HitAWMapC_passed;
-    bool HitAMapC_passed;
-    bool HitHMapC_passed;
-    bool HitHWMapC_passed;
     float HitTrMapC_y;
     bool HitTrWMapC_cut;
     float HitToTMapC_y;
@@ -575,10 +689,39 @@ struct chip_struct {
     bool HtoBCMap_cut;
 };
 
+struct straw_struct_prob {
+    int strawNumber;
+    bool HitHWMapS_cut;
+    float HitHWMapS_passed;
+    bool HitWMapS_cut;
+    float HitWMapS_passed;
+    bool HitAMapS_cut;
+    float HitAMapS_passed;
+    bool HitAWMapS_cut;
+    float HitAWMapS_passed;
+    bool HitHMapS_cut;
+    float HitHMapS_passed;
+};
+
+struct chip_struct_prob {
+    int chipNumber;
+    bool HitHWMapC_cut;
+    float HitHWMapC_passed;
+    bool HitWMapC_cut;
+    float HitWMapC_passed;
+    bool HitAMapC_cut;
+    float HitAMapC_passed;
+    bool HitAWMapC_cut;
+    float HitAWMapC_passed;
+    bool HitHMapC_cut;
+    float HitHMapC_passed;
+};
+
 struct straw_shifter_struct {
     int strawNumber;
     bool isAr;
-    bool HitWMap_passed;
+    float HitWMap_passed;
+    float HitWMap_Ar_passed;
 };
 
 //Fill the TRT RDO Histograms
@@ -615,40 +758,23 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTRDOs(const TRT_RDO_Container& rdoCon
 
     // TH1F
     auto OccAll               = Monitored::Scalar<float>("OccAll", 0.0);
-    
+
     // TH2F
-    
+
     // TEfficiency
     auto HtoLMapS             = Monitored::Scalar<float>("HtoLMapS", 0.0);
     auto HtoLMapS_passed      = Monitored::Scalar<bool>("HtoLMapS_passed", false);
-    auto HitWMap_A            = Monitored::Scalar<float>("HitWMap_A", 0.0);
-    auto HitWMap_A_passed     = Monitored::Scalar<bool>("HitWMap_A_passed", false);
-    auto HitWMap_C            = Monitored::Scalar<float>("HitWMap_C", 0.0);
-    auto HitWMap_C_passed     = Monitored::Scalar<bool>("HitWMap_C_passed", false);
-    auto HitWMap_Ar_A         = Monitored::Scalar<float>("HitWMap_Ar_A", 0.0);
-    auto HitWMap_Ar_A_passed  = Monitored::Scalar<bool>("HitWMap_Ar_A_passed", false);
-    auto HitWMap_Ar_C         = Monitored::Scalar<float>("HitWMap_Ar_C", 0.0);
-    auto HitWMap_Ar_C_passed  = Monitored::Scalar<bool>("HitWMap_Ar_C_passed", false);
     auto HtoLMapC             = Monitored::Scalar<float>("HtoLMapC", 0.0);
     auto HtoLMapC_passed      = Monitored::Scalar<bool>("HtoLMapC_passed", false);
     auto OccupancyC           = Monitored::Scalar<float>("OccupancyC", 0.0);
     auto OccupancyC_passed    = Monitored::Scalar<bool>("OccupancyC_passed", false);
-    auto IntLum               = Monitored::Scalar<float>("IntLum", 0.0);
-    auto IntLum_passed        = Monitored::Scalar<bool>("IntLum_passed_passed", false);
-    auto LBvsLum              = Monitored::Scalar<float>("LBvsLum", 0.0);
-    auto LBvsLum_passed       = Monitored::Scalar<bool>("LBvsLum_passed", false);
-    auto LBvsTime             = Monitored::Scalar<float>("LBvsTime", 0.0);
-    auto LBvsTime_passed      = Monitored::Scalar<bool>("LBvsTime_passed", false);
     auto StrawOcc             = Monitored::Scalar<float>("StrawOcc", 0.0);
     auto StrawOcc_passed      = Monitored::Scalar<bool>("StrawOcc_passed", false);
-    
-    auto strawnumber          = Monitored::Scalar<int>("strawNumber", 0.0);
-    auto HitAMapS_passed      = Monitored::Scalar<bool>("HitAMapS_passed", false);
-    
+
     const unsigned int lumiBlock = eventInfo.lumiBlock();
     ATH_MSG_VERBOSE("This is lumiblock : " << lumiBlock);
     auto good_bcid = eventInfo.bcid();
-    
+
     TRT_RDO_Container::const_iterator RDO_CollectionBegin = rdoContainer.begin();
     TRT_RDO_Container::const_iterator RDO_CollectionEnd   = rdoContainer.end();
     //Check readout Integrity of TRT
@@ -672,7 +798,7 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTRDOs(const TRT_RDO_Container& rdoCon
     int nHLHitsperLB_B = 0;
     int nHitsperLB_E[2] = {0, 0};
     int nHLHitsperLB_E[2] = {0, 0};
-    
+
     for (int i = 0; i < 192; i++) {
         moduleHits_B[i] = 0;
         HLmoduleHits_B[i] = 0;
@@ -683,6 +809,79 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTRDOs(const TRT_RDO_Container& rdoCon
         HLmoduleHits_E[i] = 0;
     }
 
+    short int scale_hHitWMap_B_passed[2][s_Straw_max[0]];
+    short int scale_hHitWMap_E_passed[2][2][s_Straw_max[1]];
+
+    for (int i = 0; i < 2; i++) {
+        for (int j = 0; j < s_Straw_max[0]; j++) {
+            scale_hHitWMap_B_passed[i][j] = 0;
+        }
+    }
+
+    for (int i = 0; i < 2; i++) {
+        for (int j = 0; j < 2; j++) {
+            for (int k = 0; k < s_Straw_max[1]; k++) {
+                scale_hHitWMap_E_passed[i][j][k] = 0;
+            }
+        }
+    }
+
+    short int scale_hHitHWMapS_B_passed[s_numberOfBarrelStacks*2][s_Straw_max[0]];
+    short int scale_hHitHWMapC_B_passed[s_numberOfBarrelStacks*2][s_iChip_max[0]];
+    short int scale_hHitWMapS_B_passed[s_numberOfBarrelStacks*2][s_Straw_max[0]];
+    short int scale_hHitWMapC_B_passed[s_numberOfBarrelStacks*2][s_iChip_max[0]];
+    short int scale_hHitAMapS_B_passed[s_numberOfBarrelStacks*2][s_Straw_max[0]];
+    short int scale_hHitAMapC_B_passed[s_numberOfBarrelStacks*2][s_iChip_max[0]];
+    short int scale_hHitAWMapS_B_passed[s_numberOfBarrelStacks*2][s_Straw_max[0]];
+    short int scale_hHitAWMapC_B_passed[s_numberOfBarrelStacks*2][s_iChip_max[0]];
+    short int scale_hHitHMapS_B_passed[s_numberOfBarrelStacks*2][s_Straw_max[0]];
+    short int scale_hHitHMapC_B_passed[s_numberOfBarrelStacks*2][s_iChip_max[0]];
+
+    for (int i = 0; i < s_numberOfBarrelStacks*2; i++) {
+        for (int j = 0; j < s_iChip_max[0]; j++) {
+            scale_hHitHWMapC_B_passed[i][j] = 0;
+            scale_hHitWMapC_B_passed[i][j]  = 0;
+            scale_hHitAMapC_B_passed[i][j]  = 0;
+            scale_hHitAWMapC_B_passed[i][j] = 0;
+            scale_hHitHMapC_B_passed[i][j]  = 0;
+        }
+        for (int j = 0; j < s_Straw_max[0]; j++) {
+            scale_hHitHWMapS_B_passed[i][j] = 0;
+            scale_hHitWMapS_B_passed[i][j]  = 0;
+            scale_hHitAMapS_B_passed[i][j]  = 0;
+            scale_hHitAWMapS_B_passed[i][j] = 0;
+            scale_hHitHMapS_B_passed[i][j]  = 0;
+        }
+    }
+
+    short int scale_hHitHWMapS_E_passed[s_numberOfEndCapStacks*2][s_Straw_max[1]];
+    short int scale_hHitHWMapC_E_passed[s_numberOfEndCapStacks*2][s_iChip_max[1]];
+    short int scale_hHitWMapS_E_passed[s_numberOfEndCapStacks*2][s_Straw_max[1]];
+    short int scale_hHitWMapC_E_passed[s_numberOfEndCapStacks*2][s_iChip_max[1]];
+    short int scale_hHitAMapS_E_passed[s_numberOfEndCapStacks*2][s_Straw_max[1]];
+    short int scale_hHitAMapC_E_passed[s_numberOfEndCapStacks*2][s_iChip_max[1]];
+    short int scale_hHitAWMapS_E_passed[s_numberOfEndCapStacks*2][s_Straw_max[1]];
+    short int scale_hHitAWMapC_E_passed[s_numberOfEndCapStacks*2][s_iChip_max[1]];
+    short int scale_hHitHMapC_E_passed[s_numberOfEndCapStacks*2][s_iChip_max[1]];
+    short int scale_hHitHMapS_E_passed[s_numberOfEndCapStacks*2][s_Straw_max[1]];
+
+    for (int i = 0; i < s_numberOfEndCapStacks*2; i++) {
+        for (int j = 0; j < s_iChip_max[1]; j++) {
+            scale_hHitHWMapC_E_passed[i][j] = 0;
+            scale_hHitWMapC_E_passed[i][j]  = 0;
+            scale_hHitAMapC_E_passed[i][j]  = 0;
+            scale_hHitAWMapC_E_passed[i][j] = 0;
+            scale_hHitHMapC_E_passed[i][j]  = 0;
+        }
+        for (int j = 0; j < s_Straw_max[1]; j++) {
+            scale_hHitHWMapS_E_passed[i][j] = 0;
+            scale_hHitWMapS_E_passed[i][j]  = 0;
+            scale_hHitAMapS_E_passed[i][j]  = 0;
+            scale_hHitAWMapS_E_passed[i][j] = 0;
+            scale_hHitHMapS_E_passed[i][j]  = 0;
+        }
+    }
+
     int goodid_status = 0;
     int prev_bcid = 0;
 
@@ -711,7 +910,7 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTRDOs(const TRT_RDO_Container& rdoCon
         ATH_MSG_VERBOSE("Trying " << m_sumTool << " isGood");
         ATH_MSG_VERBOSE("TRT_StrawStatusTool reports status = " << m_sumTool->getStatus(TRT_Identifier));
     }
-    
+
     // ibe = 0 (Barrel), ibe = 1 (Endcap)
     int nTRTHits[2];
     for (int ibe = 0; ibe < 2; ibe++) {
@@ -719,15 +918,18 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTRDOs(const TRT_RDO_Container& rdoCon
 
     // Insert here
     // Scaling for online environment
-    
+
     }
 
     int nhitsall = 0;
 
-    std::map<int,std::map<int, std::vector<straw_norm_struct>>> straw_norm_map;
     std::map<int,std::map<int, std::vector<straw_struct>>> straw_map;
     std::map<int,std::map<int, std::vector<chip_struct>>> chip_map;
     std::map<int,std::vector<straw_shifter_struct>> straw_shifter_map;
+    std::map<int,std::map<int, std::vector<straw_struct_prob>>> straw_map_prob;
+    std::map<int,std::map<int, std::vector<chip_struct_prob>>> chip_map_prob;
+
+    std::vector<std::vector<std::vector<int>>> scale_hHitWMap = initScaleVectors();
 
     for (; RDO_CollectionBegin != RDO_CollectionEnd; ++RDO_CollectionBegin) {
         const InDetRawDataCollection<TRT_RDORawData> *TRT_Collection(*RDO_CollectionBegin);
@@ -784,7 +986,7 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTRDOs(const TRT_RDO_Container& rdoCon
             //ToDo: Check if that is really neccessary
             bool is_barrel = m_pTRTHelper->is_barrel(TRT_Identifier);
 
-            //check straw number and find the correct chip and m_ board values
+            //Сheck straw number and find the correct chip and m_ board values
             if ( is_barrel && ibe == 0 ) {
                 thisStrawNumber = strawNumber(straw, straw_layer, layer_or_wheel);
 
@@ -812,16 +1014,16 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTRDOs(const TRT_RDO_Container& rdoCon
             }
             const int driftTimeBin  = p_lolum->driftTimeBin();
             const int trailingEdge  = p_lolum->trailingEdge();
-            const bool highlevel    = is_middleHTbit_high;//Hardcoded Middle Bit
-            const bool firstBinHigh = p_lolum->firstBinHigh(); // if the first time bin is up then the hit is out of time window
-            const bool lastBinHigh  = p_lolum->lastBinHigh(); // if the last bin is up then the hit is out of time window.
+            const bool highlevel    = is_middleHTbit_high;     //Hardcoded Middle Bit
+            const bool firstBinHigh = p_lolum->firstBinHigh(); // If the first time bin is up then the hit is out of time window
+            const bool lastBinHigh  = p_lolum->lastBinHigh();  // If the last bin is up then the hit is out of time window.
             const float timeOverThreshold = p_lolum->timeOverThreshold();
             moduleNumber_barrel1[0] = phi_module;
             moduleNumber_barrel1[1] = phi_module + 96;
             moduleNumber_barrel2[0] = phi_module + s_numberOfBarrelStacks;
             moduleNumber_barrel2[1] = phi_module + s_numberOfBarrelStacks + 96;
-            moduleNumber_barrel3[0] = phi_module + 2 * s_numberOfBarrelStacks;
-            moduleNumber_barrel3[1] = phi_module + 2 * s_numberOfBarrelStacks + 96;
+            moduleNumber_barrel3[0] = phi_module + 2*s_numberOfBarrelStacks;
+            moduleNumber_barrel3[1] = phi_module + 2*s_numberOfBarrelStacks + 96;
             moduleNumber_endcapA[0] = phi_module;
             moduleNumber_endcapA[1] = phi_module + 64;
             moduleNumber_endcapB[0] = phi_module + s_numberOfEndCapStacks;
@@ -838,8 +1040,12 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTRDOs(const TRT_RDO_Container& rdoCon
                     straw_shifter_struct& this_struct = straw_shifter_map[barrel_ec].emplace_back();
                     this_struct.strawNumber = thisStrawNumber;
                     this_struct.isAr = isArgonStraw;
-                    this_struct.HitWMap_passed = false;
+                    this_struct.HitWMap_passed = true;
+                    this_struct.HitWMap_Ar_passed = true;
+                    if (abs(barrel_ec) == 1) scale_hHitWMap_B_passed[isArgonStraw ? 1 : 0][thisStrawNumber]++;
+                    if (abs(barrel_ec) == 2) scale_hHitWMap_E_passed[barrel_ec < 0 ? 1 : 0][isArgonStraw ? 1 : 0][thisStrawNumber]++;
             }
+
             nTRTHits[ibe]++;
             if (ibe == 0) {
 
@@ -863,64 +1069,96 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTRDOs(const TRT_RDO_Container& rdoCon
             }
 
             if (m_doExpert) {
+                if (m_doStraws) {
+                    straw_struct_prob& this_struct = straw_map_prob[ibe][iphi_module].emplace_back();
+                    this_struct.strawNumber        = thisStrawNumber;
+                    this_struct.HitHWMapS_cut      = highlevel && is_middleHTbit_high;
+                    this_struct.HitWMapS_cut       = (driftTimeBin > 2) && (driftTimeBin < 17);
+                    this_struct.HitAMapS_cut       = (firstBinHigh || lastBinHigh || (driftTimeBin > 0) || (trailingEdge < 23));
+                    this_struct.HitAWMapS_cut      = is_anybininVgate_high;
+                    this_struct.HitHMapS_cut       = highlevel;
+                    this_struct.HitHWMapS_passed   = 1.;
+                    this_struct.HitWMapS_passed    = 1.;
+                    this_struct.HitAMapS_passed    = 1.;
+                    this_struct.HitAWMapS_passed   = 1.;
+                    this_struct.HitHMapS_passed    = 1.;
+                    if (ibe == 0) {
+                        if (highlevel && is_middleHTbit_high) scale_hHitHWMapS_B_passed[iphi_module][thisStrawNumber]++;
+                        if ((driftTimeBin > 2) && (driftTimeBin < 17)) scale_hHitWMapS_B_passed[iphi_module][thisStrawNumber]++;
+                        if (firstBinHigh || lastBinHigh || (driftTimeBin > 0) || (trailingEdge < 23)) scale_hHitAMapS_B_passed[iphi_module][thisStrawNumber]++;
+                        if (is_anybininVgate_high) scale_hHitAWMapS_B_passed[iphi_module][thisStrawNumber]++;
+                        if (highlevel) scale_hHitHMapS_B_passed[iphi_module][thisStrawNumber]++;
+                    }
+                    if (ibe == 1) {
+                        if (highlevel && is_middleHTbit_high) scale_hHitHWMapS_E_passed[iphi_module][thisStrawNumber]++;
+                        if ((driftTimeBin > 2) && (driftTimeBin < 17)) scale_hHitWMapS_E_passed[iphi_module][thisStrawNumber]++;
+                        if (firstBinHigh || lastBinHigh || (driftTimeBin > 0) || (trailingEdge < 23)) scale_hHitAMapS_E_passed[iphi_module][thisStrawNumber]++;
+                        if (is_anybininVgate_high) scale_hHitAWMapS_E_passed[iphi_module][thisStrawNumber]++;
+                        if (highlevel) scale_hHitHMapS_E_passed[iphi_module][thisStrawNumber]++;
+                    }
+                }
+
                 float trailingEdgeScaled = (trailingEdge + 1)*3.125;
 
-                if (m_doStraws) { // Experimental
-                    straw_struct& this_struct = straw_map[ibe][iphi_module].emplace_back();
-                    this_struct.strawNumber=thisStrawNumber;
-                    this_struct.HitWMapS_passed=((driftTimeBin > 2) && (driftTimeBin < 17) ? 1 : 0);
-                    this_struct.HitHMapS_passed=highlevel;
-                    this_struct.HitHWMapS_passed=(highlevel && is_middleHTbit_high);
-                    this_struct.HitTrMapS_y=trailingEdgeScaled;
-                    this_struct.HitAMapS_passed=((firstBinHigh || lastBinHigh || driftTimeBin > 0 || trailingEdge < 23) ? 1 : 0);
-                    this_struct.HitAWMapS_passed=(is_anybininVgate_high ? 1 : 0);
-                    this_struct.HitToTMapS_y = timeOverThreshold;
+                if (m_doStraws) {
+                    straw_struct& this_struct  = straw_map[ibe][iphi_module].emplace_back();
+                    this_struct.strawNumber    = thisStrawNumber;
+                    this_struct.HitTrMapS_y    = trailingEdgeScaled;
+                    this_struct.HitToTMapS_y   = timeOverThreshold;
                     this_struct.HitToTLong_cut = (timeOverThreshold > m_longToTCut);
-                    this_struct.HitTrWMapS_y = trailingEdgeScaled;
+                    this_struct.HitTrWMapS_y   = trailingEdgeScaled;
                     this_struct.HitTrWMapS_cut = (trailingEdge < 23) && !lastBinHigh && !firstBinHigh;
-                }
 
-                if (m_doStraws) { // Experimental
-                    double histLow = 0.;
-                    double histBinWidth = 1.;
-                    straw_norm_struct& this_struct = straw_norm_map[ibe][iphi_module].emplace_back();
-                    for (int i = 1; i <= m_strawMax[ibe]; i++) {
-                        if (histLow + histBinWidth*(i-1) >= thisStrawNumber || histLow + histBinWidth*(i+1) <= thisStrawNumber) {
-                            this_struct.strawNumber = i;
-                            this_struct.HitAMapS_passed = 0;
-                        }
-                    } 
+                    if (highlevel) {
+                        HtoLMapS = thisStrawNumber;
+                        HtoLMapS_passed = 1.0;
+                        fill("RDOStackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HtoLMapS_passed, HtoLMapS);
+                    } else {
+                        HtoLMapS = thisStrawNumber;
+                        HtoLMapS_passed = 0.0;
+                        fill("RDOStackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HtoLMapS_passed, HtoLMapS);
+                    }
                 }
 
-            if (highlevel) {
-                if (m_doStraws) {    
-                    HtoLMapS = thisStrawNumber;
-                    HtoLMapS_passed = 1.0;
-                    fill("RDOStackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HtoLMapS_passed, HtoLMapS);
-                }
-            } else {
-                if (m_doStraws) {
-                    HtoLMapS = thisStrawNumber;
-                    HtoLMapS_passed = 0.0;
-                    fill("RDOStackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HtoLMapS_passed, HtoLMapS);
+                if (m_doChips) {
+                    chip_struct_prob& this_struct = chip_map_prob[ibe][iphi_module].emplace_back();
+                    this_struct.chipNumber         = chip - 1;
+                    this_struct.HitHWMapC_cut      = highlevel && is_middleHTbit_high;
+                    this_struct.HitWMapC_cut       = (driftTimeBin > 2) && (driftTimeBin < 17);
+                    this_struct.HitAMapC_cut       = (firstBinHigh || lastBinHigh || (driftTimeBin > 0) || (trailingEdge < 23));
+                    this_struct.HitAWMapC_cut      = is_anybininVgate_high;
+                    this_struct.HitHMapC_cut       = highlevel;
+                    this_struct.HitHWMapC_passed   = 1.;
+                    this_struct.HitWMapC_passed    = 1.;
+                    this_struct.HitAMapC_passed    = 1.;
+                    this_struct.HitAWMapC_passed   = 1.;
+                    this_struct.HitHMapC_passed    = 1.;
+                    if (ibe == 0) {
+                        if (highlevel && is_middleHTbit_high) scale_hHitHWMapC_B_passed[iphi_module][chip - 1]++;
+                        if ((driftTimeBin > 2) && (driftTimeBin < 17)) scale_hHitWMapC_B_passed[iphi_module][chip - 1]++;
+                        if (firstBinHigh || lastBinHigh || (driftTimeBin > 0) || (trailingEdge < 23)) scale_hHitAMapC_B_passed[iphi_module][chip - 1]++;
+                        if (is_anybininVgate_high) scale_hHitAWMapC_B_passed[iphi_module][chip - 1]++;
+                        if (highlevel) scale_hHitHMapC_B_passed[iphi_module][chip - 1]++;
+                    }
+                    if (ibe == 1) {
+                        if (highlevel && is_middleHTbit_high) scale_hHitHWMapC_E_passed[iphi_module][chip - 1]++;
+                        if ((driftTimeBin > 2) && (driftTimeBin < 17)) scale_hHitWMapC_E_passed[iphi_module][chip - 1]++;
+                        if (firstBinHigh || lastBinHigh || (driftTimeBin > 0) || (trailingEdge < 23)) scale_hHitAMapC_E_passed[iphi_module][chip - 1]++;
+                        if (is_anybininVgate_high) scale_hHitAWMapC_E_passed[iphi_module][chip - 1]++;
+                        if (highlevel) scale_hHitHMapC_E_passed[iphi_module][chip - 1]++;
+                    }
                 }
-            }
-                
-                if (m_doChips) { // Experimental
+
+                if (m_doChips) {
                     chip_struct& this_struct = chip_map[ibe][iphi_module].emplace_back();
                     this_struct.chipNumber = chip - 1;
-                    this_struct.HitWMapC_passed = (driftTimeBin > 2) && (driftTimeBin < 17) ? 1 : 0;
-                    this_struct.HitHMapC_passed = highlevel;
-                    this_struct.HitHWMapC_passed = highlevel && is_middleHTbit_high;
                     this_struct.HitTrMapC_y = trailingEdgeScaled;
-                    this_struct.HitAMapC_passed = ((firstBinHigh || lastBinHigh || driftTimeBin > 0 || trailingEdge < 23) ? 1 : 0);
-                    this_struct.HitAWMapC_passed = is_anybininVgate_high ? 1 : 0;
                     this_struct.HitToTMapC_y = timeOverThreshold;
                     this_struct.HitTrWMapC_cut = (trailingEdge < 23) && !lastBinHigh && !firstBinHigh;
-                    this_struct.HtoBCMap_cut=false;
-                    this_struct.HtoBCMapB_y = board - 1;
-                    this_struct.HtoBCMapC_x = -1;
-                    this_struct.HtoBCMapB_x = -1;
+                    this_struct.HtoBCMap_cut = false;
+                    this_struct.HtoBCMapB_y  = board - 1;
+                    this_struct.HtoBCMapC_x  = -1;
+                    this_struct.HtoBCMapB_x  = -1;
                     if (p_lolum->highLevel(1)) {
                         this_struct.HtoBCMapC_x = 0.;
                         this_struct.HtoBCMapB_x = 0.;
@@ -938,15 +1176,12 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTRDOs(const TRT_RDO_Container& rdoCon
                         this_struct.HtoBCMapB_x = 2.;
                         this_struct.HtoBCMap_cut=true;
                     }
-                }
-                if (highlevel) {
-                    if (m_doChips) {    
+
+                    if (highlevel) {
                         HtoLMapC = chip - 1;
                         HtoLMapC_passed = 1.0;
                         fill("RDOStackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HtoLMapC_passed, HtoLMapC);
-                    }
-                } else {
-                    if (m_doChips) {
+                    } else {
                         HtoLMapC = chip - 1;
                         HtoLMapC_passed = 0.0;
                         fill("RDOStackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HtoLMapC_passed, HtoLMapC);
@@ -1003,28 +1238,300 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTRDOs(const TRT_RDO_Container& rdoCon
         }
     }
 
+    // Barrel straw normalization
+    for (int k = 0; k < s_Straw_max[0]; k++) {
+        for (int iGas = 0; iGas < 2; iGas++) {
+            try {
+                if (scale_hHitWMap[0][iGas].at(k) - scale_hHitWMap_B_passed[iGas][k] >= 0) {
+                    for (int j = 0; j < scale_hHitWMap[0][iGas].at(k) - scale_hHitWMap_B_passed[iGas][k]; j++) {
+                        if (m_doStraws) {
+                            straw_shifter_struct& this_struct = straw_shifter_map[1].emplace_back(); // index 1 is Barrel
+                            this_struct.strawNumber = k;
+                            this_struct.isAr = iGas > 0 ? true : false;
+                            this_struct.HitWMap_passed = false;
+                            this_struct.HitWMap_Ar_passed = false;
+                        }
+                    }
+                } else {
+                    ATH_MSG_ERROR("Scale value " << scale_hHitWMap[0][iGas].at(k) - scale_hHitWMap_B_passed[iGas][k] <<
+                        " is less than zero in scaling for Barrel, iGas = " << iGas << ", k = " << k);
+                }
+            } catch (out_of_range &e) {
+                ATH_MSG_ERROR("Index " << k << " out of range in scaling for Barrel");
+            }
+        }
+    }
+
+    // Endcap straw normalization
+    for (int k = 0; k < s_Straw_max[1]; k++) {
+        for (int iside = 0; iside < 2; iside++) {
+            for (int iGas = 0; iGas < 2; iGas++) {
+                try {
+                    if (scale_hHitWMap[iside + 1][iGas].at(k) - scale_hHitWMap_E_passed[iside][iGas][k] >= 0) {
+                        for (int j = 0; j < scale_hHitWMap[iside + 1][iGas].at(k) - scale_hHitWMap_E_passed[iside][iGas][k]; j++) {
+                            if (m_doStraws) {
+                                straw_shifter_struct& this_struct = straw_shifter_map[iside == 0 ? 2 : -2].emplace_back(); // index 2 is EA, index -2 is EC
+                                this_struct.strawNumber = k;
+                                this_struct.isAr = iGas > 0 ? true : false;
+                                this_struct.HitWMap_passed = false;
+                                this_struct.HitWMap_Ar_passed = false;
+                            }
+                        }
+                    } else {
+                        ATH_MSG_ERROR("Scale value " << scale_hHitWMap[iside + 1][iGas].at(k) - scale_hHitWMap_E_passed[iside][iGas][k] <<
+                            " is less than zero in scaling for Endcap, iside = " << iside << ", iGas = " << iGas << ", k = " << k);
+                    }
+                } catch (out_of_range &e) {
+                    ATH_MSG_ERROR("Index " << k << " out of range in scaling for Endcap");
+                }
+            }
+        }
+    }
+
+    if (m_doExpert) {
+        // Barrel straw normalization
+        for (int k = 0; k < s_Straw_max[0]; k++) {
+            for (int iside = 0; iside < 2; iside++) {
+                for (int phi_module = 0; phi_module < s_numberOfBarrelStacks; phi_module++) {
+                    int iphi_module = -999;;
+                    if (iside == 0) iphi_module = phi_module; else if (iside == 1) iphi_module = phi_module + 32;
+                    if (scale_hHitHWMapS_B_passed[iphi_module][k] < 2 || scale_hHitWMapS_B_passed[iphi_module][k] < 2 ||
+                        scale_hHitAMapS_B_passed[iphi_module][k] < 2 || scale_hHitAWMapS_B_passed[iphi_module][k] < 2 ||
+                        scale_hHitHMapS_B_passed[iphi_module][k] < 2) {
+                        for (int l = 0; l < 1 - scale_hHitHWMapS_B_passed[iphi_module][k]; l++){
+                            straw_struct_prob& this_struct = straw_map_prob[0][iphi_module].emplace_back(); // index 0 is Barrel, A and C are splitted by iphi_module
+                            this_struct.strawNumber = k;
+                            this_struct.HitHWMapS_cut       = true;
+                            this_struct.HitHWMapS_passed    = false;
+                        }
+                        for (int l = 0; l < 1 - scale_hHitWMapS_B_passed[iphi_module][k]; l++){
+                            straw_struct_prob& this_struct = straw_map_prob[0][iphi_module].emplace_back();
+                            this_struct.strawNumber = k;
+                            this_struct.HitWMapS_cut       = true;
+                            this_struct.HitWMapS_passed    = false;
+                        }
+                        for (int l = 0; l < 1 - scale_hHitAMapS_B_passed[iphi_module][k]; l++){
+                            straw_struct_prob& this_struct = straw_map_prob[0][iphi_module].emplace_back();
+                            this_struct.strawNumber = k;
+                            this_struct.HitAMapS_cut       = true;
+                            this_struct.HitAMapS_passed    = false;
+                        }
+                        for (int l = 0; l < 1 - scale_hHitAWMapS_B_passed[iphi_module][k]; l++){
+                            straw_struct_prob& this_struct = straw_map_prob[0][iphi_module].emplace_back();
+                            this_struct.strawNumber = k;
+                            this_struct.HitAWMapS_cut       = true;
+                            this_struct.HitAWMapS_passed    = false;
+                        }
+                        for (int l = 0; l < 1 - scale_hHitHMapS_B_passed[iphi_module][k]; l++){
+                            straw_struct_prob& this_struct = straw_map_prob[0][iphi_module].emplace_back();
+                            this_struct.strawNumber = k;
+                            this_struct.HitHMapS_cut       = true;
+                            this_struct.HitHMapS_passed    = false;
+                        }
+                    } else{
+                        ATH_MSG_ERROR("Scale value is less than zero in normalization for Barrel straw!");
+                    }
+                }
+            }
+        }
+
+        // Barrel chip normalization
+        for (int k = 0; k < s_iChip_max[0]; k++) {
+            for (int iside = 0; iside < 2; iside++) {
+                for (int phi_module = 0; phi_module < s_numberOfBarrelStacks; phi_module++) {
+                    int iphi_module = -999;;
+                    if (iside == 0) iphi_module = phi_module; else if (iside == 1) iphi_module = phi_module + 32;
+                    if (scale_hHitHWMapC_B_passed[iphi_module][k] < 17 || scale_hHitWMapC_B_passed[iphi_module][k] < 17 ||
+                        scale_hHitAMapC_B_passed[iphi_module][k] < 17 || scale_hHitAWMapC_B_passed[iphi_module][k] < 17 ||
+                        scale_hHitHMapC_B_passed[iphi_module][k] < 17) {
+                        for (int l = 0; l < 16*1. - scale_hHitHWMapC_B_passed[iphi_module][k]; l++){
+                            chip_struct_prob& this_struct = chip_map_prob[0][iphi_module].emplace_back(); // index 0 is Barrel, A and C are splitted by iphi_module
+                            this_struct.chipNumber = k;
+                            this_struct.HitHWMapC_cut       = true;
+                            this_struct.HitHWMapC_passed    = false;
+                        }
+                        for (int l = 0; l < 16*1. - scale_hHitWMapC_B_passed[iphi_module][k]; l++){
+                            chip_struct_prob& this_struct = chip_map_prob[0][iphi_module].emplace_back();
+                            this_struct.chipNumber = k;
+                            this_struct.HitWMapC_cut       = true;
+                            this_struct.HitWMapC_passed    = false;
+                        }
+                        for (int l = 0; l < 16*1. - scale_hHitAMapC_B_passed[iphi_module][k]; l++){
+                            chip_struct_prob& this_struct = chip_map_prob[0][iphi_module].emplace_back();
+                            this_struct.chipNumber = k;
+                            this_struct.HitAMapC_cut       = true;
+                            this_struct.HitAMapC_passed    = false;
+                        }
+                        for (int l = 0; l < 16*1. - scale_hHitAWMapC_B_passed[iphi_module][k]; l++){
+                            chip_struct_prob& this_struct = chip_map_prob[0][iphi_module].emplace_back();
+                            this_struct.chipNumber = k;
+                            this_struct.HitAWMapC_cut       = true;
+                            this_struct.HitAWMapC_passed    = false;
+                        }
+                        for (int l = 0; l < 16*1. - scale_hHitHMapC_B_passed[iphi_module][k]; l++){
+                            chip_struct_prob& this_struct = chip_map_prob[0][iphi_module].emplace_back();
+                            this_struct.chipNumber = k;
+                            this_struct.HitHMapC_cut       = true;
+                            this_struct.HitHMapC_passed    = false;
+                        }
+                    } else{
+                        ATH_MSG_ERROR("Scale value is less than zero in normalization for Barrel chip!");
+                    }
+                }
+            }
+        }
+
+        // Endcap straw normalization
+        for (int k = 0; k < s_Straw_max[1]; k++) {
+            for (int iside = 0; iside < 2; iside++) {
+                for (int phi_module = 0; phi_module < s_numberOfEndCapStacks; phi_module++) {
+                    int iphi_module = -999;;
+                    if (iside == 0) iphi_module = phi_module; else if (iside == 1) iphi_module = phi_module + 32;
+                    if (scale_hHitHWMapS_E_passed[iphi_module][k] < 2 || scale_hHitWMapS_E_passed[iphi_module][k] < 2 ||
+                        scale_hHitAMapS_E_passed[iphi_module][k] < 2 || scale_hHitAWMapS_E_passed[iphi_module][k] < 2 ||
+                        scale_hHitHMapS_E_passed[iphi_module][k] < 2) {
+                        for (int l = 0; l < 1. - scale_hHitHWMapS_E_passed[iphi_module][k]; l++){
+                            straw_struct_prob& this_struct = straw_map_prob[1][iphi_module].emplace_back(); // index 1 is Endcap, A and C are splitted by iphi_module
+                            this_struct.strawNumber = k;
+                            this_struct.HitHWMapS_cut       = true;
+                            this_struct.HitHWMapS_passed    = false;
+                        }
+                        for (int l = 0; l < 1. - scale_hHitWMapS_E_passed[iphi_module][k]; l++){
+                            straw_struct_prob& this_struct = straw_map_prob[1][iphi_module].emplace_back();
+                            this_struct.strawNumber = k;
+                            this_struct.HitWMapS_cut       = true;
+                            this_struct.HitWMapS_passed    = false;
+                        }
+                        for (int l = 0; l < 1. - scale_hHitAMapS_E_passed[iphi_module][k]; l++){
+                            straw_struct_prob& this_struct = straw_map_prob[1][iphi_module].emplace_back();
+                            this_struct.strawNumber = k;
+                            this_struct.HitAMapS_cut       = true;
+                            this_struct.HitAMapS_passed    = false;
+                        }
+                        for (int l = 0; l < 1. - scale_hHitAWMapS_E_passed[iphi_module][k]; l++){
+                            straw_struct_prob& this_struct = straw_map_prob[1][iphi_module].emplace_back();
+                            this_struct.strawNumber = k;
+                            this_struct.HitAWMapS_cut       = true;
+                            this_struct.HitAWMapS_passed    = false;
+                        }
+                        for (int l = 0; l < 1. - scale_hHitHMapS_E_passed[iphi_module][k]; l++){
+                            straw_struct_prob& this_struct = straw_map_prob[1][iphi_module].emplace_back();
+                            this_struct.strawNumber = k;
+                            this_struct.HitHMapS_cut       = true;
+                            this_struct.HitHMapS_passed    = false;
+                        }
+                    } else{
+                        ATH_MSG_ERROR("Scale value is less than zero in normalization for Endcap straw!");
+                    }
+                }
+            }
+        }
+
+        // Endcap chip normalization
+        for (int k = 0; k < s_iChip_max[1]; k++) {
+            for (int iside = 0; iside < 2; iside++) {
+            for (int phi_module = 0; phi_module < s_numberOfEndCapStacks; phi_module++) {
+                    int iphi_module = -999;;
+                    if (iside == 0) iphi_module = phi_module; else if (iside == 1) iphi_module = phi_module + 32;
+                    if (scale_hHitHWMapC_E_passed[iphi_module][k] < 17 || scale_hHitWMapC_E_passed[iphi_module][k] < 17 ||
+                        scale_hHitAMapC_E_passed[iphi_module][k] < 17 || scale_hHitAWMapC_E_passed[iphi_module][k] < 17 ||
+                        scale_hHitHMapC_E_passed[iphi_module][k] < 17) {
+                        for (int l = 0; l < 16*1. - scale_hHitHWMapC_E_passed[iphi_module][k]; l++){
+                            chip_struct_prob& this_struct = chip_map_prob[1][iphi_module].emplace_back(); // index 0 is Barrel, A and C are splitted by iphi_module
+                            this_struct.chipNumber = k;
+                            this_struct.HitHWMapC_cut       = true;
+                            this_struct.HitHWMapC_passed    = false;
+                        }
+                        for (int l = 0; l < 16*1. - scale_hHitWMapC_E_passed[iphi_module][k]; l++){
+                            chip_struct_prob& this_struct = chip_map_prob[1][iphi_module].emplace_back();
+                            this_struct.chipNumber = k;
+                            this_struct.HitWMapC_cut       = true;
+                            this_struct.HitWMapC_passed    = false;
+                        }
+                        for (int l = 0; l < 16*1. - scale_hHitAMapC_E_passed[iphi_module][k]; l++){
+                            chip_struct_prob& this_struct = chip_map_prob[1][iphi_module].emplace_back();
+                            this_struct.chipNumber = k;
+                            this_struct.HitAMapC_cut       = true;
+                            this_struct.HitAMapC_passed    = false;
+                        }
+                        for (int l = 0; l < 16*1. - scale_hHitAWMapC_E_passed[iphi_module][k]; l++){
+                            chip_struct_prob& this_struct = chip_map_prob[1][iphi_module].emplace_back();
+                            this_struct.chipNumber = k;
+                            this_struct.HitAWMapC_cut       = true;
+                            this_struct.HitAWMapC_passed    = false;
+                        }
+                        for (int l = 0; l < 16*1. - scale_hHitHMapC_E_passed[iphi_module][k]; l++){
+                            chip_struct_prob& this_struct = chip_map_prob[1][iphi_module].emplace_back();
+                            this_struct.chipNumber = k;
+                            this_struct.HitHMapC_cut       = true;
+                            this_struct.HitHMapC_passed    = false;
+                        }
+                    } else{
+                        ATH_MSG_ERROR("Scale value is less than zero in normalization for Endcap chip!");
+                    }
+                }
+            }
+        }
+    }
+
     for (const auto& ibarrel_ecpair : straw_shifter_map) {
         int ibe = abs(ibarrel_ecpair.first) - 1;
         int iside = ibarrel_ecpair.first > 0 ? 0 : 1;
         auto strawNumber          = Monitored::Collection("strawNumber", ibarrel_ecpair.second, [](const auto& s){return s.strawNumber;});
         auto HitWMap_passed       = Monitored::Collection("HitWMap_passed", ibarrel_ecpair.second, [](const auto& s){return s.HitWMap_passed;});
-        auto isAr    = Monitored::Collection("isAr", ibarrel_ecpair.second, [](const auto& s){return s.isAr;});
-        auto isNotAr    = Monitored::Collection("isNotAr", ibarrel_ecpair.second, [](const auto& s){return not s.isAr;});
+        auto HitWMap_Ar_passed    = Monitored::Collection("HitWMap_Ar_passed", ibarrel_ecpair.second, [](const auto& s){return s.HitWMap_Ar_passed;});
+        auto isAr                 = Monitored::Collection("isAr", ibarrel_ecpair.second, [](const auto& s){return s.isAr;});
+        auto isNotAr              = Monitored::Collection("isNotAr", ibarrel_ecpair.second, [](const auto& s){return not s.isAr;});
         if (ibe == 0) {
-            fill("RDOHistograms0", strawNumber, HitWMap_passed, isAr, isNotAr);
+            fill("RDOHistograms0", strawNumber, HitWMap_passed, HitWMap_Ar_passed, isAr, isNotAr);
         } else if (ibe == 1) {
-            fill("RDOHistograms1"+std::to_string(iside), strawNumber, HitWMap_passed, isAr, isNotAr);
+            fill("RDOHistograms1"+std::to_string(iside), strawNumber, HitWMap_passed, HitWMap_Ar_passed, isAr, isNotAr);
+        }
+    }
+
+    if (m_doExpert) {
+        for (const auto& ibepair : straw_map_prob) {
+            for (const auto& iphi_modulepair : ibepair.second ) {
+                auto strawNumber          = Monitored::Collection("strawNumber", iphi_modulepair.second, [](const auto& s){return s.strawNumber;});
+                auto HitHWMapS_passed     = Monitored::Collection("HitHWMapS_passed", iphi_modulepair.second, [](const auto& s){return s.HitHWMapS_passed;});
+                auto HitWMapS_passed      = Monitored::Collection("HitWMapS_passed", iphi_modulepair.second, [](const auto& s){return s.HitWMapS_passed;});
+                auto HitAMapS_passed      = Monitored::Collection("HitAMapS_passed", iphi_modulepair.second, [](const auto& s){return s.HitAMapS_passed;});
+                auto HitAWMapS_passed     = Monitored::Collection("HitAWMapS_passed", iphi_modulepair.second, [](const auto& s){return s.HitAWMapS_passed;});
+                auto HitHMapS_passed      = Monitored::Collection("HitHMapS_passed", iphi_modulepair.second, [](const auto& s){return s.HitHMapS_passed;});
+                auto HitHWMapS_cut        = Monitored::Collection("HitHWMapS_cut", iphi_modulepair.second, [](const auto& s){return s.HitHWMapS_cut;});
+                auto HitWMapS_cut         = Monitored::Collection("HitWMapS_cut", iphi_modulepair.second, [](const auto& s){return s.HitWMapS_cut;});
+                auto HitAMapS_cut         = Monitored::Collection("HitAMapS_cut", iphi_modulepair.second, [](const auto& s){return s.HitAMapS_cut;});
+                auto HitAWMapS_cut        = Monitored::Collection("HitAWMapS_cut", iphi_modulepair.second, [](const auto& s){return s.HitAWMapS_cut;});
+                auto HitHMapS_cut         = Monitored::Collection("HitHMapS_cut", iphi_modulepair.second, [](const auto& s){return s.HitHMapS_cut;});
+
+                fill("RDOStackHistograms"+std::to_string(ibepair.first)+std::to_string(iphi_modulepair.first), strawNumber, HitHWMapS_passed, HitHWMapS_cut,
+                    HitWMapS_passed, HitWMapS_cut, HitAMapS_passed, HitAMapS_cut, HitAWMapS_passed, HitAWMapS_cut, HitHMapS_passed, HitHMapS_cut);
+                }
+        }
+
+        for (const auto& ibepair : chip_map_prob) {
+            for (const auto& iphi_modulepair : ibepair.second ) {
+                auto chipNumber           = Monitored::Collection("chipNumber", iphi_modulepair.second, [](const auto& s){return s.chipNumber;});
+                auto HitHWMapC_passed     = Monitored::Collection("HitHWMapC_passed", iphi_modulepair.second, [](const auto& s){return s.HitHWMapC_passed;});
+                auto HitWMapC_passed      = Monitored::Collection("HitWMapC_passed", iphi_modulepair.second, [](const auto& s){return s.HitWMapC_passed;});
+                auto HitAMapC_passed      = Monitored::Collection("HitAMapC_passed", iphi_modulepair.second, [](const auto& s){return s.HitAMapC_passed;});
+                auto HitAWMapC_passed     = Monitored::Collection("HitAWMapC_passed", iphi_modulepair.second, [](const auto& s){return s.HitAWMapC_passed;});
+                auto HitHMapC_passed      = Monitored::Collection("HitHMapC_passed", iphi_modulepair.second, [](const auto& s){return s.HitHMapC_passed;});
+                auto HitHWMapC_cut        = Monitored::Collection("HitHWMapC_cut", iphi_modulepair.second, [](const auto& s){return s.HitHWMapC_cut;});
+                auto HitWMapC_cut         = Monitored::Collection("HitWMapC_cut", iphi_modulepair.second, [](const auto& s){return s.HitWMapC_cut;});
+                auto HitAMapC_cut         = Monitored::Collection("HitAMapC_cut", iphi_modulepair.second, [](const auto& s){return s.HitAMapC_cut;});
+                auto HitAWMapC_cut        = Monitored::Collection("HitAWMapC_cut", iphi_modulepair.second, [](const auto& s){return s.HitAWMapC_cut;});
+                auto HitHMapC_cut         = Monitored::Collection("HitHMapC_cut", iphi_modulepair.second, [](const auto& s){return s.HitHMapC_cut;});
+
+                fill("RDOStackHistograms"+std::to_string(ibepair.first)+std::to_string(iphi_modulepair.first), chipNumber, HitHWMapC_passed, HitHWMapC_cut,
+                    HitWMapC_passed, HitWMapC_cut, HitAMapC_passed, HitAMapC_cut, HitAWMapC_passed, HitAWMapC_cut, HitHMapC_passed, HitHMapC_cut);
+                }
         }
     }
 
     for (const auto& ibepair : straw_map) {
         for (const auto& iphi_modulepair : ibepair.second ) {
             auto strawNumber          = Monitored::Collection("strawNumber", iphi_modulepair.second, [](const auto& s){return s.strawNumber;});
-            auto HitWMapS_passed      = Monitored::Collection("HitWMapS_passed", iphi_modulepair.second, [](const auto& s){return s.HitWMapS_passed;});
-            auto HitAWMapS_passed     = Monitored::Collection("HitAWMapS_passed", iphi_modulepair.second, [](const auto& s){return s.HitAWMapS_passed;});
-            auto HitAMapS_passed      = Monitored::Collection("HitAMapS_passed", iphi_modulepair.second, [](const auto& s){return s.HitAMapS_passed;});
-            auto HitHMapS_passed      = Monitored::Collection("HitHMapS_passed", iphi_modulepair.second, [](const auto& s){return s.HitHMapS_passed;});
-            auto HitHWMapS_passed     = Monitored::Collection("HitHWMapS_passed", iphi_modulepair.second, [](const auto& s){return s.HitHWMapS_passed;});
             auto HitTrMapS_y          = Monitored::Collection("HitTrMapS_y", iphi_modulepair.second, [](const auto& s){return s.HitTrMapS_y;});
             auto HitToTMapS_y         = Monitored::Collection("HitToTMapS_y", iphi_modulepair.second, [](const auto& s){return s.HitToTMapS_y;});
             auto HitToTLong_cut       = Monitored::Collection("HitToTLong_cut", iphi_modulepair.second, [](const auto& s){return s.HitToTLong_cut;});
@@ -1032,28 +1539,13 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTRDOs(const TRT_RDO_Container& rdoCon
             auto HitTrWMapS_cut       = Monitored::Collection("HitTrWMapS_cut", iphi_modulepair.second, [](const auto& s){return s.HitTrWMapS_cut;});
 
             fill("RDOStackHistograms"+std::to_string(ibepair.first)+std::to_string(iphi_modulepair.first), strawNumber,
-                 HitWMapS_passed, HitHWMapS_passed, HitHMapS_passed, HitAMapS_passed, HitAWMapS_passed,
                  HitTrMapS_y, HitToTMapS_y, HitToTLong_cut, HitTrWMapS_y, HitTrWMapS_cut);
         }
     }
-    
-    // Experimental
-    for (const auto& ibepair : straw_norm_map) {
-            for (const auto& iphi_modulepair : ibepair.second ) {
-                auto strawNumber          = Monitored::Collection("strawNumber", iphi_modulepair.second, [](const auto& s){return s.strawNumber;});
-                auto HitAMapS_passed      = Monitored::Collection("HitAMapS_passed", iphi_modulepair.second, [](const auto& s){return s.HitAMapS_passed;});
-                fill("RDOStackHistograms"+std::to_string(ibepair.first)+std::to_string(iphi_modulepair.first), strawNumber, HitAMapS_passed);
-            }
-    }
 
     for (const auto& ibepair : chip_map) {
         for (const auto& iphi_modulepair : ibepair.second ) {
             auto chipNumber           = Monitored::Collection("chipNumber", iphi_modulepair.second, [](const auto& s){return s.chipNumber;});
-            auto HitWMapC_passed      = Monitored::Collection("HitWMapC_passed", iphi_modulepair.second, [](const auto& s){return s.HitWMapC_passed;});
-            auto HitAWMapC_passed     = Monitored::Collection("HitAWMapC_passed", iphi_modulepair.second, [](const auto& s){return s.HitAWMapC_passed;});
-            auto HitAMapC_passed      = Monitored::Collection("HitAMapC_passed", iphi_modulepair.second, [](const auto& s){return s.HitAMapC_passed;});
-            auto HitHMapC_passed      = Monitored::Collection("HitHMapC_passed", iphi_modulepair.second, [](const auto& s){return s.HitHMapC_passed;});
-            auto HitHWMapC_passed     = Monitored::Collection("HitHWMapC_passed", iphi_modulepair.second, [](const auto& s){return s.HitHWMapC_passed;});
             auto HitTrMapC_y          = Monitored::Collection("HitTrMapC_y", iphi_modulepair.second, [](const auto& s){return s.HitTrMapC_y;});
             auto HitToTMapC_y         = Monitored::Collection("HitToTMapC_y", iphi_modulepair.second, [](const auto& s){return s.HitToTMapC_y;});
             auto HtoBCMapC_x          = Monitored::Collection("HtoBCMapC_x", iphi_modulepair.second, [](const auto& s){return s.HtoBCMapC_x;});
@@ -1062,11 +1554,8 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTRDOs(const TRT_RDO_Container& rdoCon
             auto HtoBCMap_cut = Monitored::Collection("HtoBCMap_cut", iphi_modulepair.second, [](const auto& s){return s.HtoBCMap_cut;});
             auto HitTrWMapC_cut = Monitored::Collection("HitTrWMapC_cut", iphi_modulepair.second, [](const auto& s){return s.HitTrWMapC_cut;});
 
-            fill("RDOStackHistograms"+std::to_string(ibepair.first)+std::to_string(iphi_modulepair.first), 
-                 chipNumber, HitWMapC_passed, HitHWMapC_passed, HitHMapC_passed,
-                 HitAMapC_passed, HitAWMapC_passed, HitTrMapC_y, HitToTMapC_y, 
-                 HtoBCMapC_x, HtoBCMapB_x, HtoBCMapB_y,
-                 HtoBCMap_cut, HitTrWMapC_cut);
+            fill("RDOStackHistograms"+std::to_string(ibepair.first)+std::to_string(iphi_modulepair.first),
+                 chipNumber, HitTrMapC_y, HitToTMapC_y, HtoBCMapC_x, HtoBCMapB_x, HtoBCMapB_y, HtoBCMap_cut, HitTrWMapC_cut);
         }
     }
 
@@ -1150,138 +1639,134 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTRDOs(const TRT_RDO_Container& rdoCon
         }
         // Normalization for online environmenmet
         // Insert here
-        
     }
-    
-    
-if (m_environment != Environment_t::online) {
-
-	if (m_doShift) {
-        const unsigned int lumiBlock = eventInfo.lumiBlock();
-        ATH_MSG_VERBOSE("This is lumiblock : " << lumiBlock);
-int lastLumiBlock = -99;
-        if ((int)lumiBlock != lastLumiBlock) {
-            lastLumiBlock = lumiBlock;
-        }
-        float evtLumiBlock = 1.;
-        float lumiBlockScale = (evtLumiBlock > 0) ? (1. / evtLumiBlock) : 0;
-		const float barrelConst = 1. / 105088;
-		const float endcapConst = 1. / 122880;
-
-		if (m_doTracksMon && evtLumiBlock > 0) {
-            NHitsperLB_x = lastLumiBlock;
-            NHitsperLB_y = (float)nHitsperLB_B * lumiBlockScale * barrelConst;
-            fill("RDOShiftRebinnedBarrelHistograms0", NHitsperLB_x, NHitsperLB_y);
-            NHLHitsperLB_x = lastLumiBlock;
-            NHLHitsperLB_y = (float)nHLHitsperLB_B * lumiBlockScale * barrelConst;
-            fill("RDOShiftRebinnedBarrelHistograms0", NHLHitsperLB_x, NHLHitsperLB_y);
-
-			for (int iside = 0; iside < 2; iside++) {
+
+
+    if (m_environment != Environment_t::online) {
+
+        if (m_doShift) {
+            const unsigned int lumiBlock = eventInfo.lumiBlock();
+            ATH_MSG_VERBOSE("This is lumiblock : " << lumiBlock);
+            int lastLumiBlock = -99; // ToDo - last lumiblock calculation is not correct
+            if ((int)lumiBlock != lastLumiBlock) {
+                lastLumiBlock = lumiBlock;
+            }
+            float evtLumiBlock = 1.;
+            float lumiBlockScale = (evtLumiBlock > 0) ? (1. / evtLumiBlock) : 0;
+            const float barrelConst = 1. / 105088;
+            const float endcapConst = 1. / 122880;
+
+            if (m_doTracksMon && evtLumiBlock > 0) {
                 NHitsperLB_x = lastLumiBlock;
-                NHitsperLB_y = (float)nHitsperLB_E[iside] * lumiBlockScale * endcapConst;
-                fill("RDOShiftRebinnedEndcapHistograms1"+std::to_string(iside), NHitsperLB_x, NHitsperLB_y);
+                NHitsperLB_y = (float)nHitsperLB_B * lumiBlockScale * barrelConst;
+                fill("RDOShiftRebinnedBarrelHistograms0", NHitsperLB_x, NHitsperLB_y);
                 NHLHitsperLB_x = lastLumiBlock;
-                NHLHitsperLB_y = (float)nHLHitsperLB_E[iside] * lumiBlockScale * endcapConst;
-                fill("RDOShiftRebinnedEndcapHistograms1"+std::to_string(iside), NHLHitsperLB_x, NHLHitsperLB_y);
-			}
-            
-			nHitsperLB_B = 0;
-			nHLHitsperLB_B = 0;
-
-			for (int iside = 0; iside < 2; iside++) {
-				nHitsperLB_E[iside] = 0;
-				nHLHitsperLB_E[iside] = 0;
-			}
-		}
-	}
-
-	ATH_MSG_DEBUG("end of event and lumi block");
-} // TODO!
-
-
-	//Get BSConversion Errors from BSConditionsServices:
-	std::set<std::pair<uint32_t, uint32_t> > *L1IDErrorSet      = m_BSSvc->getIdErrorSet(TRTByteStreamErrors::L1IDError);
-	std::set<std::pair<uint32_t, uint32_t> > *BCIDErrorSet      = m_BSSvc->getIdErrorSet(TRTByteStreamErrors::BCIDError);
-	std::set<uint32_t>                       *MissingErrorSet   = m_BSSvc->getErrorSet(TRTByteStreamErrors::MISSINGError);
-	std::set<uint32_t>                       *SidErrorSet       = m_BSSvc->getErrorSet(TRTByteStreamErrors::SIDError);
-	std::set<std::pair<uint32_t, uint32_t> > *RobStatusErrorSet = m_BSSvc->getRodRobErrorSet(TRTByteStreamErrors::RobStatusError);
-	const unsigned int rod_id_base[2][2] = { { 0x310000, 0x320000 }, { 0x330000, 0x340000 } };
-	const unsigned int nChipsTotal[2][2] = { {     3328,     3328 }, {     7680,     7680 } };
-	const unsigned int nRobsTotal[2][2]  = { {       32,       32 }, {       64,       64 } };
-	float nBSErrors[2][2]  = { { 0, 0 }, { 0, 0 } };
-	float nRobErrors[2][2] = { { 0, 0 }, { 0, 0 } };
-	const std::set<std::pair<uint32_t, uint32_t> > *errorset1[2] = { BCIDErrorSet, L1IDErrorSet };
-
-	for (int iset = 0; iset < 2; ++iset) {
-		for (auto setIt = errorset1[iset]->begin(); setIt != errorset1[iset]->end(); ++setIt) {
-			for (int ibe = 0; ibe < 2; ++ibe) {
-				for (int iside = 0; iside < 2; ++iside) {
-					if (((setIt->first >> 8) & 0xFF0000) == rod_id_base[ibe][iside]) {
-						nBSErrors[ibe][iside] += 1. / nChipsTotal[ibe][iside];
-					}
-				}
-			}
-		}
-	}
-
-	const std::set<uint32_t> *errorset2[2] = { MissingErrorSet, SidErrorSet };
-
-	for (int iset = 0; iset < 2; ++iset) {
-		for (auto setIt = errorset2[iset]->begin(); setIt != errorset2[iset]->end(); ++setIt) {
-			for (int ibe = 0; ibe < 2; ++ibe) {
-				for (int iside = 0; iside < 2; ++iside) {
-					if (((*setIt >> 8) & 0xFF0000) == rod_id_base[ibe][iside]) {
-						nBSErrors[ibe][iside] += 1. / nChipsTotal[ibe][iside];
-					}
-				}
-			}
-		}
-	}
-
-	for (int ibe = 0; ibe < 2; ++ibe) {
-		for (int iside = 0; iside < 2; ++iside) {
+                NHLHitsperLB_y = (float)nHLHitsperLB_B * lumiBlockScale * barrelConst;
+                fill("RDOShiftRebinnedBarrelHistograms0", NHLHitsperLB_x, NHLHitsperLB_y);
+
+                for (int iside = 0; iside < 2; iside++) {
+                    NHitsperLB_x = lastLumiBlock;
+                    NHitsperLB_y = (float)nHitsperLB_E[iside] * lumiBlockScale * endcapConst;
+                    fill("RDOShiftRebinnedEndcapHistograms1"+std::to_string(iside), NHitsperLB_x, NHitsperLB_y);
+                    NHLHitsperLB_x = lastLumiBlock;
+                    NHLHitsperLB_y = (float)nHLHitsperLB_E[iside] * lumiBlockScale * endcapConst;
+                    fill("RDOShiftRebinnedEndcapHistograms1"+std::to_string(iside), NHLHitsperLB_x, NHLHitsperLB_y);
+                }
+
+                nHitsperLB_B = 0;
+                nHLHitsperLB_B = 0;
+
+                for (int iside = 0; iside < 2; iside++) {
+                    nHitsperLB_E[iside] = 0;
+                    nHLHitsperLB_E[iside] = 0;
+                }
+            }
+        }
+
+        ATH_MSG_DEBUG("end of event and lumi block");
+    } // TODO!
+
+    //Get BSConversion Errors from BSConditionsServices:
+    std::set<std::pair<uint32_t, uint32_t> > *L1IDErrorSet      = m_BSSvc->getIdErrorSet(TRTByteStreamErrors::L1IDError);
+    std::set<std::pair<uint32_t, uint32_t> > *BCIDErrorSet      = m_BSSvc->getIdErrorSet(TRTByteStreamErrors::BCIDError);
+    std::set<uint32_t>                       *MissingErrorSet   = m_BSSvc->getErrorSet(TRTByteStreamErrors::MISSINGError);
+    std::set<uint32_t>                       *SidErrorSet       = m_BSSvc->getErrorSet(TRTByteStreamErrors::SIDError);
+    std::set<std::pair<uint32_t, uint32_t> > *RobStatusErrorSet = m_BSSvc->getRodRobErrorSet(TRTByteStreamErrors::RobStatusError);
+    const unsigned int rod_id_base[2][2] = { { 0x310000, 0x320000 }, { 0x330000, 0x340000 } };
+    const unsigned int nChipsTotal[2][2] = { {     3328,     3328 }, {     7680,     7680 } };
+    const unsigned int nRobsTotal[2][2]  = { {       32,       32 }, {       64,       64 } };
+    float nBSErrors[2][2]  = { { 0, 0 }, { 0, 0 } };
+    float nRobErrors[2][2] = { { 0, 0 }, { 0, 0 } };
+    const std::set<std::pair<uint32_t, uint32_t> > *errorset1[2] = { BCIDErrorSet, L1IDErrorSet };
+
+    for (int iset = 0; iset < 2; ++iset) {
+        for (auto setIt = errorset1[iset]->begin(); setIt != errorset1[iset]->end(); ++setIt) {
+            for (int ibe = 0; ibe < 2; ++ibe) {
+                for (int iside = 0; iside < 2; ++iside) {
+                    if (((setIt->first >> 8) & 0xFF0000) == rod_id_base[ibe][iside]) {
+                        nBSErrors[ibe][iside] += 1. / nChipsTotal[ibe][iside];
+                    }
+                }
+            }
+        }
+    }
+
+    const std::set<uint32_t> *errorset2[2] = { MissingErrorSet, SidErrorSet };
+
+    for (int iset = 0; iset < 2; ++iset) {
+        for (auto setIt = errorset2[iset]->begin(); setIt != errorset2[iset]->end(); ++setIt) {
+            for (int ibe = 0; ibe < 2; ++ibe) {
+                for (int iside = 0; iside < 2; ++iside) {
+                    if (((*setIt >> 8) & 0xFF0000) == rod_id_base[ibe][iside]) {
+                        nBSErrors[ibe][iside] += 1. / nChipsTotal[ibe][iside];
+                    }
+                }
+            }
+        }
+    }
+
+    for (int ibe = 0; ibe < 2; ++ibe) {
+        for (int iside = 0; iside < 2; ++iside) {
             ChipBSErrorsVsLB_x = lumiBlock;
             ChipBSErrorsVsLB_y = nBSErrors[ibe][iside];
-            fill("RDOShiftSmryRebinnedHistograms"+std::to_string(ibe)+std::to_string(iside), ChipBSErrorsVsLB_x, ChipBSErrorsVsLB_y);
-//			m_hChipBSErrorsVsLB[ibe][iside]->Fill(lumiBlock, nBSErrors[ibe][iside]);
-//			m_hChipBSErrorsVsLB[ibe][iside]->SetEntries(lumiBlock); // we need this so the LastBinThreshold algorithm can find the last bin
-		}
-	}
-
-	for (auto setIt = RobStatusErrorSet->begin(); setIt != RobStatusErrorSet->end(); ++setIt) {
-		for (int ibe = 0; ibe < 2; ++ibe) {
-			for (int iside = 0; iside < 2; ++iside) {
-				if (setIt->first % rod_id_base[ibe][iside] < 0xffff) {
-					nRobErrors[ibe][iside] += 1. / nRobsTotal[ibe][iside];
-				}
-			}
-		}
-	}
-
-	for (int ibe = 0; ibe < 2; ++ibe) {
-		for (int iside = 0; iside < 2; ++iside) {
+            for (unsigned int i = 0; i < lumiBlock; i++) {
+                // we need this so the LastBinThreshold algorithm can find the last bin
+                fill("RDOShiftSmryRebinnedHistograms"+std::to_string(ibe)+std::to_string(iside), ChipBSErrorsVsLB_x, ChipBSErrorsVsLB_y);
+            }
+        }
+    }
+
+    for (auto setIt = RobStatusErrorSet->begin(); setIt != RobStatusErrorSet->end(); ++setIt) {
+        for (int ibe = 0; ibe < 2; ++ibe) {
+            for (int iside = 0; iside < 2; ++iside) {
+                if (setIt->first % rod_id_base[ibe][iside] < 0xffff) {
+                    nRobErrors[ibe][iside] += 1. / nRobsTotal[ibe][iside];
+                }
+            }
+        }
+    }
+
+    for (int ibe = 0; ibe < 2; ++ibe) {
+        for (int iside = 0; iside < 2; ++iside) {
             RobBSErrorsVsLB_x = lumiBlock;
             RobBSErrorsVsLB_y = nRobErrors[ibe][iside];
-            fill("RDOShiftSmryRebinnedHistograms"+std::to_string(ibe)+std::to_string(iside), RobBSErrorsVsLB_x, RobBSErrorsVsLB_y);
-//			m_hRobBSErrorsVsLB[ibe][iside]->Fill(lumiBlock, nRobErrors[ibe][iside]);
-//			m_hRobBSErrorsVsLB[ibe][iside]->SetEntries(lumiBlock); // we need this so the LastBinThreshold algorithm can find the last bin
-		}
-	}  
+            for (unsigned int i = 0; i < lumiBlock; i++) {
+                // we need this so the LastBinThreshold algorithm can find the last bin
+                fill("RDOShiftSmryRebinnedHistograms"+std::to_string(ibe)+std::to_string(iside), RobBSErrorsVsLB_x, RobBSErrorsVsLB_y);
+            }
+        }
+    }
 
     ATH_MSG_VERBOSE("Leaving Fill TRT RDO Histograms");
     return StatusCode::SUCCESS;
 }
 
-
-
-
-
 // Fill the TRT Efficiency Histograms
 //----------------------------------------------------------------------------------//
 StatusCode TRTMonitoringRun3RAW_Alg::fillTRTEfficiency(const TrackCollection& combTrackCollection) const {
 //----------------------------------------------------------------------------------//
-	ATH_MSG_VERBOSE("Filling TRT Efficiency Histograms");
-    
+    ATH_MSG_VERBOSE("Filling TRT Efficiency Histograms");
+
     // TEfficiency
     auto Efficiency_eta                  = Monitored::Scalar<float>("Efficiency_eta", 0.0);
     auto Efficiency_phi                  = Monitored::Scalar<float>("Efficiency_phi", 0.0);
@@ -1295,10 +1780,10 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTEfficiency(const TrackCollection& co
     auto EfficiencyEndCap_locR_Ar        = Monitored::Scalar<float>("EfficiencyEndCap_locR_Ar", 0.0);
     auto EfficiencyS                     = Monitored::Scalar<float>("EfficiencyS", 0.0);
     auto EfficiencyC                     = Monitored::Scalar<float>("EfficiencyC", 0.0);
-    auto Efficiency_eta_passed           = Monitored::Scalar<bool>("Efficiency_eta_passed", false);
-    auto Efficiency_phi_passed           = Monitored::Scalar<bool>("Efficiency_phi_passed", false);
-    auto Efficiency_pt_passed            = Monitored::Scalar<bool>("Efficiency_pt_passed", false);
-    auto Efficiency_z0_passed            = Monitored::Scalar<bool>("Efficiency_z0_passed", false);
+    auto Efficiency_eta_passed           = Monitored::Scalar<float>("Efficiency_eta_passed", 0.0);
+    auto Efficiency_phi_passed           = Monitored::Scalar<float>("Efficiency_phi_passed", 0.0);
+    auto Efficiency_pt_passed            = Monitored::Scalar<float>("Efficiency_pt_passed", 0.0);
+    auto Efficiency_z0_passed            = Monitored::Scalar<float>("Efficiency_z0_passed", 0.0);
     auto EfficiencyBarrel_locR_passed    = Monitored::Scalar<bool>("EfficiencyBarrel_locR_passed", false);
     auto EfficiencyBarrel_locR_Ar_passed = Monitored::Scalar<bool>("EfficiencyBarrel_locR_Ar_passed", false);
     auto EfficiencyBarrelMap_passed      = Monitored::Scalar<bool>("EfficiencyBarrelMap_passed", false);
@@ -1308,148 +1793,148 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTEfficiency(const TrackCollection& co
     auto EfficiencyS_passed              = Monitored::Scalar<bool>("EfficiencyS_passed", false);
     auto EfficiencyC_passed              = Monitored::Scalar<bool>("EfficiencyC_passed", false);
 
-	// Reduce unnecessary divisions
-	const float invGeV = 1. / CLHEP::GeV;
-	const float invmm = 1. / CLHEP::mm;
-	int itrack = 0;
+    // Reduce unnecessary divisions
+    const float invGeV = 1. / CLHEP::GeV;
+    const float invmm = 1. / CLHEP::mm;
+    int itrack = 0;
     float track_pt  = 0;
     float track_eta = 0;
     float track_phi = 0;
     float track_d0  = 0;
     float track_z0  = 0;
 
-	for (auto track = combTrackCollection.begin(); track != combTrackCollection.end(); ++track) {
-		// Online: use all tracks, offline: use only every xth track, skip the rest
+    for (auto track = combTrackCollection.begin(); track != combTrackCollection.end(); ++track) {
+        // Online: use all tracks, offline: use only every xth track, skip the rest
         if (m_environment != Environment_t::online && (itrack % m_every_xth_track) != 0) continue;
- 
-		++itrack;
-		// Get perigee
-		const Trk::Perigee *perigee = (*track)->perigeeParameters();
-
-		if (perigee) {
-			track_pt  = perigee->pT();
-			track_eta = perigee->eta();
-			track_phi = perigee->parameters()[Trk::phi0];
-			track_d0  = perigee->parameters()[Trk::d0];
-			track_z0  = perigee->parameters()[Trk::z0];
-			ATH_MSG_DEBUG("This track has perigee parameters:\n"
-			              << "                 pT     = " << track_pt * invGeV  << " GeV" << "\n"
-			              << "                 eta =    " << track_eta << "\n"
-			              << "                 phi0 =   " << track_phi << "\n"
-			              << "                 d0 =     " << track_d0 * invmm << "\n"
-			              << "                 z0 =     " << track_z0 * invmm << "\n"
-			              << "                 theta =  " << perigee->parameters()[Trk::theta] << "\n"
-			              << "                 qOverP = " << perigee->parameters()[Trk::qOverP]);
-		} else {
-			ATH_MSG_DEBUG("This track has null perigeeParameters.");
-			continue;
-		}
-
-		const DataVector<const Trk::TrackStateOnSurface> *track_states = (*track)->trackStateOnSurfaces();
-
-		if (track_states) {
-			ATH_MSG_DEBUG("This track has " << track_states->size() << " track states on surface.");
-		} else {
-			ATH_MSG_DEBUG("This track has null track states on surface.");
-			continue;
-		}
-
-		const std::unique_ptr<const Trk::TrackSummary> summary(m_TrackSummaryTool->summary(*(*track)));
-		int n_trt_hits = summary->get(Trk::numberOfTRTHits);
-		int n_sct_hits = summary->get(Trk::numberOfSCTHits);
-		int n_pixel_hits = summary->get(Trk::numberOfPixelHits);
-		float p = 1.0e+08;
-
-		if (perigee) {
-			p = (perigee->parameters()[Trk::qOverP] != 0.) ? fabs(1. / (perigee->parameters()[Trk::qOverP])) : 1.0e+08;
-		}
-
-		float min_pt_new = m_min_pT;
-
-		if (m_isCosmics == false) {
-			min_pt_new = 2.0 * CLHEP::GeV;
-		}
-		// Preselect tracks
-		const bool passed_track_preselection =
-			(fabs(perigee->parameters()[Trk::d0]) < m_max_abs_d0) &&
-			(fabs(perigee->parameters()[Trk::z0]) < m_max_abs_z0) &&
-			(perigee->pT() > min_pt_new) &&
-			(p > m_minP) &&
-			(fabs(perigee->eta()) < m_max_abs_eta) &&
-			(n_pixel_hits >= m_min_pixel_hits) &&
-			(n_sct_hits >= m_min_sct_hits) &&
-			(n_trt_hits >= m_min_trt_hits);
-		ATH_MSG_DEBUG("track has ntrt = " << n_trt_hits
-		              << " and nsct = " << n_sct_hits
-		              << " and npix = " << n_pixel_hits);
-
-		if (!passed_track_preselection) {
-			ATH_MSG_DEBUG("This track failed preselection.");
-			continue;
-		}
-  
-		ATH_MSG_DEBUG("This track passed preselection.");
-
-		for (auto it = track_states->begin(); it != track_states->end(); it++) {
-			if ( !((*it)->type(Trk::TrackStateOnSurface::Measurement)) ) continue;
-
-			const Trk::TrackParameters *track_parameters = (*it)->trackParameters();
-
-			if (!track_parameters) continue;
-
-			Identifier id = track_parameters->associatedSurface().associatedDetectorElementIdentifier();
-
-			if ( !((m_pTRTHelper->is_trt(id)) )) continue;
-
-			float locR = track_parameters->parameters()[Trk::driftRadius];
-			int barrel_ec       = m_pTRTHelper->barrel_ec(id);
-			int layer_or_wheel  = m_pTRTHelper->layer_or_wheel(id);
-			int phi_module      = m_pTRTHelper->phi_module(id);
-			int straw_layer     = m_pTRTHelper->straw_layer(id);
-			int straw           = m_pTRTHelper->straw(id);
-			const bool isArgonStraw = (Straw_Gastype( m_sumTool->getStatusHT(id) ) == GasType::Ar);
-			// Assume always Xe if m_ArgonXenonSplitter is not enabled, otherwise check the straw status (good is Xe, non-good is Ar)
-			int ibe   = abs(barrel_ec) - 1;     // ibe   = 0 (Barrel), ibe   = 1 (Endcap)
-			int iside = barrel_ec > 0 ? 0 : 1;  // iside = 0 (Side A), iside = 1 (Side C)
- 
-			if (ibe == 0) {
-				if (isArgonStraw) {
+
+        ++itrack;
+        // Get perigee
+        const Trk::Perigee *perigee = (*track)->perigeeParameters();
+
+        if (perigee) {
+            track_pt  = perigee->pT();
+            track_eta = perigee->eta();
+            track_phi = perigee->parameters()[Trk::phi0];
+            track_d0  = perigee->parameters()[Trk::d0];
+            track_z0  = perigee->parameters()[Trk::z0];
+            ATH_MSG_DEBUG("This track has perigee parameters:\n"
+                          << "                 pT     = " << track_pt * invGeV  << " GeV" << "\n"
+                          << "                 eta =    " << track_eta << "\n"
+                          << "                 phi0 =   " << track_phi << "\n"
+                          << "                 d0 =     " << track_d0 * invmm << "\n"
+                          << "                 z0 =     " << track_z0 * invmm << "\n"
+                          << "                 theta =  " << perigee->parameters()[Trk::theta] << "\n"
+                          << "                 qOverP = " << perigee->parameters()[Trk::qOverP]);
+        } else {
+            ATH_MSG_DEBUG("This track has null perigeeParameters.");
+            continue;
+        }
+
+        const DataVector<const Trk::TrackStateOnSurface> *track_states = (*track)->trackStateOnSurfaces();
+
+        if (track_states) {
+            ATH_MSG_DEBUG("This track has " << track_states->size() << " track states on surface.");
+        } else {
+            ATH_MSG_DEBUG("This track has null track states on surface.");
+            continue;
+        }
+
+        const std::unique_ptr<const Trk::TrackSummary> summary(m_TrackSummaryTool->summary(*(*track)));
+        int n_trt_hits = summary->get(Trk::numberOfTRTHits);
+        int n_sct_hits = summary->get(Trk::numberOfSCTHits);
+        int n_pixel_hits = summary->get(Trk::numberOfPixelHits);
+        float p = 1.0e+08;
+
+        if (perigee) {
+            p = (perigee->parameters()[Trk::qOverP] != 0.) ? fabs(1. / (perigee->parameters()[Trk::qOverP])) : 1.0e+08;
+        }
+
+        float min_pt_new = m_min_pT;
+
+        if (m_isCosmics == false) {
+            min_pt_new = 2.0 * CLHEP::GeV;
+        }
+        // Preselect tracks
+        const bool passed_track_preselection =
+            (fabs(perigee->parameters()[Trk::d0]) < m_max_abs_d0) &&
+            (fabs(perigee->parameters()[Trk::z0]) < m_max_abs_z0) &&
+            (perigee->pT() > min_pt_new) &&
+            (p > m_minP) &&
+            (fabs(perigee->eta()) < m_max_abs_eta) &&
+            (n_pixel_hits >= m_min_pixel_hits) &&
+            (n_sct_hits >= m_min_sct_hits) &&
+            (n_trt_hits >= m_min_trt_hits);
+        ATH_MSG_DEBUG("track has ntrt = " << n_trt_hits
+                      << " and nsct = " << n_sct_hits
+                      << " and npix = " << n_pixel_hits);
+
+        if (!passed_track_preselection) {
+            ATH_MSG_DEBUG("This track failed preselection.");
+            continue;
+        }
+
+        ATH_MSG_DEBUG("This track passed preselection.");
+
+        for (auto it = track_states->begin(); it != track_states->end(); it++) {
+            if ( !((*it)->type(Trk::TrackStateOnSurface::Measurement)) ) continue;
+
+            const Trk::TrackParameters *track_parameters = (*it)->trackParameters();
+
+            if (!track_parameters) continue;
+
+            Identifier id = track_parameters->associatedSurface().associatedDetectorElementIdentifier();
+
+            if ( !((m_pTRTHelper->is_trt(id)) )) continue;
+
+            float locR = track_parameters->parameters()[Trk::driftRadius];
+            int barrel_ec       = m_pTRTHelper->barrel_ec(id);
+            int layer_or_wheel  = m_pTRTHelper->layer_or_wheel(id);
+            int phi_module      = m_pTRTHelper->phi_module(id);
+            int straw_layer     = m_pTRTHelper->straw_layer(id);
+            int straw           = m_pTRTHelper->straw(id);
+            const bool isArgonStraw = (Straw_Gastype( m_sumTool->getStatusHT(id) ) == GasType::Ar);
+            // Assume always Xe if m_ArgonXenonSplitter is not enabled, otherwise check the straw status (good is Xe, non-good is Ar)
+            int ibe   = abs(barrel_ec) - 1;     // ibe   = 0 (Barrel), ibe   = 1 (Endcap)
+            int iside = barrel_ec > 0 ? 0 : 1;  // iside = 0 (Side A), iside = 1 (Side C)
+
+            if (ibe == 0) {
+                if (isArgonStraw) {
                     EfficiencyBarrel_locR_Ar = locR;
                     EfficiencyBarrel_locR_Ar_passed = 1.0;
                     fill("TRTEfficiencyHistogramsBarrel", EfficiencyBarrel_locR_Ar_passed, EfficiencyBarrel_locR_Ar);
-				} else {
+                } else {
                     EfficiencyBarrel_locR = locR;
                     EfficiencyBarrel_locR_passed = 1.0;
                     fill("TRTEfficiencyHistogramsBarrel", EfficiencyBarrel_locR_passed, EfficiencyBarrel_locR);
-				}
-			} else if (ibe == 1) {
-				if (isArgonStraw) {
+                }
+            } else if (ibe == 1) {
+                if (isArgonStraw) {
                     EfficiencyBarrel_locR_Ar = locR;
                     EfficiencyBarrel_locR_Ar_passed = 1.0;
                     fill("TRTEfficiencyHistogramsEndCap"+std::to_string(iside), EfficiencyBarrel_locR_Ar_passed, EfficiencyBarrel_locR_Ar);
-				} else {
+                } else {
                     EfficiencyEndCap_locR = locR;
                     EfficiencyEndCap_locR_passed = 1.0;
                     fill("TRTEfficiencyHistogramsEndCap"+std::to_string(iside), EfficiencyEndCap_locR_passed, EfficiencyEndCap_locR);
-				}
-			}
+                }
+            }
 
-			if (fabs(locR) >= 1.3) continue;
+            if (fabs(locR) >= 1.3) continue;
 
-			int thisStrawNumber = 0;
-			int chip = 0;
+            int thisStrawNumber = 0;
+            int chip = 0;
 
-			if (ibe == 0) {
-				thisStrawNumber = strawNumber(straw, straw_layer, layer_or_wheel);
+            if (ibe == 0) {
+                thisStrawNumber = strawNumber(straw, straw_layer, layer_or_wheel);
 
-				if (thisStrawNumber >= 0 && thisStrawNumber < s_Straw_max[ibe])
-					chip = m_mat_chip_B[phi_module][thisStrawNumber];
-			} else if (ibe == 1) {
-				thisStrawNumber = strawNumberEndCap(straw, straw_layer, layer_or_wheel, phi_module, barrel_ec);
+                if (thisStrawNumber >= 0 && thisStrawNumber < s_Straw_max[ibe])
+                    chip = m_mat_chip_B[phi_module][thisStrawNumber];
+            } else if (ibe == 1) {
+                thisStrawNumber = strawNumberEndCap(straw, straw_layer, layer_or_wheel, phi_module, barrel_ec);
 
-				if (thisStrawNumber >= 0 && thisStrawNumber < s_Straw_max[ibe])
-					chip = m_mat_chip_E[phi_module][thisStrawNumber];
-			}
+                if (thisStrawNumber >= 0 && thisStrawNumber < s_Straw_max[ibe])
+                    chip = m_mat_chip_E[phi_module][thisStrawNumber];
+            }
 
             if (ibe == 0) {
                 EfficiencyBarrelMap = thisStrawNumber;
@@ -1461,110 +1946,110 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTEfficiency(const TrackCollection& co
                 fill("TRTEfficiencyHistogramsEndCap", EfficiencyEndCapMap_passed, EfficiencyEndCapMap);
             }
 
-			if (m_doExpert) {
-				if (iside == 0) {
+            if (m_doExpert) {
+                if (iside == 0) {
                     EfficiencyS = thisStrawNumber;
                     EfficiencyS_passed = 1.0;
                     fill("TRTEfficiencyHistograms"+std::to_string(ibe)+std::to_string(phi_module), EfficiencyS_passed, EfficiencyS);
                     EfficiencyC = chip;
                     EfficiencyC_passed = 1.0;
                     fill("TRTEfficiencyHistograms"+std::to_string(ibe)+std::to_string(phi_module), EfficiencyC_passed, EfficiencyC);
-				} else if (iside == 1) {
+                } else if (iside == 1) {
                     EfficiencyS = thisStrawNumber;
                     EfficiencyS_passed = 1.0;
                     fill("TRTEfficiencyHistograms"+std::to_string(ibe)+std::to_string(phi_module + 32), EfficiencyS_passed, EfficiencyS);
                     EfficiencyC = chip;
                     EfficiencyC_passed = 1.0;
                     fill("TRTEfficiencyHistograms"+std::to_string(ibe)+std::to_string(phi_module + 32), EfficiencyC_passed, EfficiencyC);
-				}
-			}
+                }
+            }
 
-            Efficiency_eta = track_eta;
-            Efficiency_eta_passed = 1.0;
+            Efficiency_eta_passed = track_eta;
+            Efficiency_eta = 1.0;
             fill("TRTEfficiencyHistograms", Efficiency_eta_passed, Efficiency_eta);
-            Efficiency_phi = track_phi;
-            Efficiency_phi_passed = 1.0;
+            Efficiency_phi_passed = track_phi;
+            Efficiency_phi = 1.0;
             fill("TRTEfficiencyHistograms", Efficiency_phi_passed, Efficiency_phi);
-            Efficiency_pt = track_pt*invGeV;
-            Efficiency_pt_passed = 1.0;
+            Efficiency_pt_passed = track_pt*invGeV;
+            Efficiency_pt = 1.0;
             fill("TRTEfficiencyHistograms", Efficiency_pt_passed, Efficiency_pt);
-            Efficiency_z0 = track_z0;
-            Efficiency_z0_passed = 1.0;
+            Efficiency_z0_passed = track_z0;
+            Efficiency_z0 = 1.0;
             fill("TRTEfficiencyHistograms", Efficiency_z0_passed, Efficiency_z0);
-		}
+        }
 
-		// Use hole finder to find holes on this track
-		if (m_useHoleFinder) {
-			const DataVector<const Trk::TrackStateOnSurface> *holes = m_trt_hole_finder->getHolesOnTrack(**track);
+        // Use hole finder to find holes on this track
+        if (m_useHoleFinder) {
+            const DataVector<const Trk::TrackStateOnSurface> *holes = m_trt_hole_finder->getHolesOnTrack(**track);
 
-			if (!holes) {
+            if (!holes) {
 
-				ATH_MSG_WARNING("TRTTrackHoleSearchTool returned null results.");
-				continue;
-			} else {
-				for (auto it = holes->begin(); it != holes->end(); ++it) {
-					if ( !((*it)->type(Trk::TrackStateOnSurface::Hole)) ) continue;
+                ATH_MSG_WARNING("TRTTrackHoleSearchTool returned null results.");
+                continue;
+            } else {
+                for (auto it = holes->begin(); it != holes->end(); ++it) {
+                    if ( !((*it)->type(Trk::TrackStateOnSurface::Hole)) ) continue;
 
-					const Trk::TrackParameters *track_parameters = (*it)->trackParameters();
+                    const Trk::TrackParameters *track_parameters = (*it)->trackParameters();
 
-					if (!track_parameters) continue;
+                    if (!track_parameters) continue;
 
-					Identifier id = track_parameters->associatedSurface().associatedDetectorElementIdentifier();
+                    Identifier id = track_parameters->associatedSurface().associatedDetectorElementIdentifier();
 
-					if ( !(m_pTRTHelper->is_trt(id)) ) continue;
+                    if ( !(m_pTRTHelper->is_trt(id)) ) continue;
 
-					float locR = track_parameters->parameters()[Trk::driftRadius];
-					int barrel_ec = m_pTRTHelper->barrel_ec(id);
-					int layer_or_wheel = m_pTRTHelper->layer_or_wheel(id);
-					int phi_module = m_pTRTHelper->phi_module(id);
-					int straw_layer = m_pTRTHelper->straw_layer(id);
-					int straw = m_pTRTHelper->straw(id);
-					const bool isArgonStraw = Straw_Gastype( m_sumTool->getStatusHT(id) ) == GasType::Ar;
-					// Assume always Xe if m_ArgonXenonSplitter is not enabled, otherwise check the straw status (good is Xe, non-good is Ar)
-					int ibe = abs(barrel_ec) - 1;      // ibe   = 0 (Barrel), ibe   = 1 (Endcap)
-					int iside = barrel_ec > 0 ? 0 : 1; // iside = 0 (Side A), iside = 1 (Side C)
+                    float locR = track_parameters->parameters()[Trk::driftRadius];
+                    int barrel_ec = m_pTRTHelper->barrel_ec(id);
+                    int layer_or_wheel = m_pTRTHelper->layer_or_wheel(id);
+                    int phi_module = m_pTRTHelper->phi_module(id);
+                    int straw_layer = m_pTRTHelper->straw_layer(id);
+                    int straw = m_pTRTHelper->straw(id);
+                    const bool isArgonStraw = Straw_Gastype( m_sumTool->getStatusHT(id) ) == GasType::Ar;
+                    // Assume always Xe if m_ArgonXenonSplitter is not enabled, otherwise check the straw status (good is Xe, non-good is Ar)
+                    int ibe = abs(barrel_ec) - 1;      // ibe   = 0 (Barrel), ibe   = 1 (Endcap)
+                    int iside = barrel_ec > 0 ? 0 : 1; // iside = 0 (Side A), iside = 1 (Side C)
 
-					if (ibe == 0) {
-						if (isArgonStraw) {
+                    if (ibe == 0) {
+                        if (isArgonStraw) {
                             EfficiencyBarrel_locR_Ar = locR;
                             EfficiencyBarrel_locR_Ar_passed = 0.0;
                             fill("TRTEfficiencyHistograms", EfficiencyBarrel_locR_Ar_passed, EfficiencyBarrel_locR_Ar);
-						} else {
+                        } else {
                             EfficiencyBarrel_locR = locR;
                             EfficiencyBarrel_locR_passed = 0.0;
                             fill("TRTEfficiencyHistograms", EfficiencyBarrel_locR_passed, EfficiencyBarrel_locR);
-						}
-					} else if (ibe == 1) {
-						if (isArgonStraw) {
+                        }
+                    } else if (ibe == 1) {
+                        if (isArgonStraw) {
                             EfficiencyEndCap_locR_Ar = locR;
                             EfficiencyEndCap_locR_Ar_passed = 0.0;
                             fill("TRTEfficiencyHistogramsEndCap"+std::to_string(iside), EfficiencyEndCap_locR_Ar_passed, EfficiencyEndCap_locR_Ar);
-						} else {
+                        } else {
                             EfficiencyEndCap_locR = locR;
                             EfficiencyEndCap_locR_passed = 0.0;
                             fill("TRTEfficiencyHistogramsEndCap"+std::to_string(iside), EfficiencyEndCap_locR_passed, EfficiencyEndCap_locR);
-						}
-					}
+                        }
+                    }
+
+                    if (fabs(locR) >= 1.3) continue;
 
-					if (fabs(locR) >= 1.3) continue;
+                    int thisStrawNumber = 0;
+                    int chip = 0;
 
-					int thisStrawNumber = 0;
-					int chip = 0;
+                    if (ibe == 0) {
+                        thisStrawNumber = strawNumber(straw, straw_layer, layer_or_wheel);
 
-					if (ibe == 0) {
-						thisStrawNumber = strawNumber(straw, straw_layer, layer_or_wheel);
+                        if (thisStrawNumber >= 0 && thisStrawNumber < s_Straw_max[ibe]) {
+                            chip = m_mat_chip_B[phi_module][thisStrawNumber];
+                        }
+                    } else if (ibe == 1) {
+                        thisStrawNumber = strawNumberEndCap(straw, straw_layer, layer_or_wheel, phi_module, barrel_ec);
 
-						if (thisStrawNumber >= 0 && thisStrawNumber < s_Straw_max[ibe]) {
-							chip = m_mat_chip_B[phi_module][thisStrawNumber];
-						}
-					} else if (ibe == 1) {
-						thisStrawNumber = strawNumberEndCap(straw, straw_layer, layer_or_wheel, phi_module, barrel_ec);
+                        if (thisStrawNumber >= 0 && thisStrawNumber < s_Straw_max[ibe]) {
+                            chip = m_mat_chip_E[phi_module][thisStrawNumber];
+                        }
+                    }
 
-						if (thisStrawNumber >= 0 && thisStrawNumber < s_Straw_max[ibe]) {
-							chip = m_mat_chip_E[phi_module][thisStrawNumber];
-						}
-					}
-                    
                     if (ibe == 0) {
                         EfficiencyBarrelMap = thisStrawNumber;
                         EfficiencyBarrelMap_passed = 0.0;
@@ -1575,46 +2060,46 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTEfficiency(const TrackCollection& co
                         fill("TRTEfficiencyHistogramsEndCap", EfficiencyEndCapMap_passed, EfficiencyEndCapMap);
                     }
 
-					if (m_doExpert) {
-						if (iside == 0) {
+                    if (m_doExpert) {
+                        if (iside == 0) {
                             EfficiencyS = thisStrawNumber;
                             EfficiencyS_passed = 0.0;
                             fill("TRTEfficiencyHistograms"+std::to_string(ibe)+std::to_string(phi_module), EfficiencyS_passed, EfficiencyS);
                             EfficiencyC = chip;
                             EfficiencyC_passed = 0.0;
                             fill("TRTEfficiencyHistograms"+std::to_string(ibe)+std::to_string(phi_module), EfficiencyC_passed, EfficiencyC);
-						} else if (iside == 1) {
+                        } else if (iside == 1) {
                             EfficiencyS = thisStrawNumber;
                             EfficiencyS_passed = 0.0;
                             fill("TRTEfficiencyHistograms"+std::to_string(ibe)+std::to_string(phi_module + 32), EfficiencyS_passed, EfficiencyS);
                             EfficiencyC = chip;
                             EfficiencyC_passed = 0.0;
                             fill("TRTEfficiencyHistograms"+std::to_string(ibe)+std::to_string(phi_module + 32), EfficiencyC_passed, EfficiencyC);
-						}
-					}
-                    Efficiency_eta = track_eta;
-                    Efficiency_eta_passed = 0.0;
+                        }
+                    }
+                    Efficiency_eta_passed = track_eta;
+                    Efficiency_eta = 0.0;
                     fill("TRTEfficiencyHistograms", Efficiency_eta_passed, Efficiency_eta);
-                    Efficiency_phi = track_phi;
-                    Efficiency_phi_passed = 0.0;
+                    Efficiency_phi_passed = track_phi;
+                    Efficiency_phi = 0.0;
                     fill("TRTEfficiencyHistograms", Efficiency_phi_passed, Efficiency_phi);
-                    Efficiency_pt = track_pt*invGeV;
-                    Efficiency_pt_passed = 0.0;
+                    Efficiency_pt_passed = track_pt*invGeV;
+                    Efficiency_pt = 0.0;
                     fill("TRTEfficiencyHistograms", Efficiency_pt_passed, Efficiency_pt);
-                    Efficiency_z0 = track_z0;
-                    Efficiency_z0_passed = 0.0;
-                    fill("TRTEfficiencyHistograms", Efficiency_z0_passed, Efficiency_z0);	
-				}
+                    Efficiency_z0_passed = track_z0;
+                    Efficiency_z0 = 0.0;
+                    fill("TRTEfficiencyHistograms", Efficiency_z0_passed, Efficiency_z0);
+                }
 
-				delete holes;
-			}
-		}
-	}
+                delete holes;
+            }
+        }
+    }
 
     // Efficiency calculations
     // Insert here
 
-	return StatusCode::SUCCESS;
+    return StatusCode::SUCCESS;
 }
 
 
@@ -1623,114 +2108,103 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTEfficiency(const TrackCollection& co
 StatusCode TRTMonitoringRun3RAW_Alg::fillTRTHits(const TrackCollection& trackCollection) const {
 //----------------------------------------------------------------------------------//
     ATH_MSG_VERBOSE("Filling TRT Tracks Histos");
-   
+
     // TH1F
-    auto HLhitOnTrack_B                 = Monitored::Scalar<float>("HLhitOnTrack_B", 0.0);
-    auto HLhitOnTrack_E                 = Monitored::Scalar<float>("HLhitOnTrack_E", 0.0);
-    auto HitWonTMap_B                   = Monitored::Scalar<float>("HitWonTMap_B", 0.0);
-    auto HitWonTMap_E                   = Monitored::Scalar<float>("HitWonTMap_E", 0.0);
-    auto HtoLRatioOnTrack_B_Ar          = Monitored::Scalar<float>("HtoLRatioOnTrack_B_Ar", 0.0);
-    auto HtoLRatioOnTrack_B_Xe          = Monitored::Scalar<float>("HtoLRatioOnTrack_B_Xe", 0.0);
-    auto HtoLRatioOnTrack_B             = Monitored::Scalar<float>("HtoLRatioOnTrack_B", 0.0);
-    auto HtoLRatioOnTrack_E             = Monitored::Scalar<float>("HtoLRatioOnTrack_E", 0.0);
-    auto HtoLRatioOnTrack_E_Ar          = Monitored::Scalar<float>("HtoLRatioOnTrack_E_Ar", 0.0);
-    auto HtoLRatioOnTrack_E_Xe          = Monitored::Scalar<float>("HtoLRatioOnTrack_E_Xe", 0.0);
-    auto NumSwLLWoT_E                   = Monitored::Scalar<float>("NumSwLLWoT_E", 0.0);
-    auto NumSwLLWoT_B                   = Monitored::Scalar<float>("NumSwLLWoT_B", 0.0);
-    
+    auto HLhitOnTrack_B          = Monitored::Scalar<float>("HLhitOnTrack_B", 0.0);
+    auto HLhitOnTrack_E          = Monitored::Scalar<float>("HLhitOnTrack_E", 0.0);
+    auto HitWonTMap_B            = Monitored::Scalar<float>("HitWonTMap_B", 0.0);
+    auto HitWonTMap_E            = Monitored::Scalar<float>("HitWonTMap_E", 0.0);
+    auto HtoLRatioOnTrack_B_Ar   = Monitored::Scalar<float>("HtoLRatioOnTrack_B_Ar", 0.0);
+    auto HtoLRatioOnTrack_B_Xe   = Monitored::Scalar<float>("HtoLRatioOnTrack_B_Xe", 0.0);
+    auto HtoLRatioOnTrack_B      = Monitored::Scalar<float>("HtoLRatioOnTrack_B", 0.0);
+    auto HtoLRatioOnTrack_E      = Monitored::Scalar<float>("HtoLRatioOnTrack_E", 0.0);
+    auto HtoLRatioOnTrack_E_Ar   = Monitored::Scalar<float>("HtoLRatioOnTrack_E_Ar", 0.0);
+    auto HtoLRatioOnTrack_E_Xe   = Monitored::Scalar<float>("HtoLRatioOnTrack_E_Xe", 0.0);
+    auto NumSwLLWoT_E            = Monitored::Scalar<float>("NumSwLLWoT_E", 0.0);
+    auto NumSwLLWoT_B            = Monitored::Scalar<float>("NumSwLLWoT_B", 0.0);
+    auto HitHWonTMapS            = Monitored::Scalar<float>("HitHWonTMapS", 0.0);
+    auto HitWonTMapS             = Monitored::Scalar<float>("HitWonTMapS", 0.0);
+    auto HitAonTMapS             = Monitored::Scalar<float>("HitAonTMapS", 0.0);
+    auto HitAWonTMapS            = Monitored::Scalar<float>("HitAWonTMapS", 0.0);
+    auto HitHonTMapS             = Monitored::Scalar<float>("HitHonTMapS", 0.0);
+    auto HitHWonTMapC            = Monitored::Scalar<float>("HitHWonTMapC", 0.0);
+    auto HitWonTMapC             = Monitored::Scalar<float>("HitWonTMapC", 0.0);
+    auto HitAonTMapC             = Monitored::Scalar<float>("HitAonTMapC", 0.0);
+    auto HitAWonTMapC            = Monitored::Scalar<float>("HitAWonTMapC", 0.0);
+    auto HitHonTMapC             = Monitored::Scalar<float>("HitHonTMapC", 0.0);
+
     // TEfficiency
-    auto StrawEffDetPhi_B               = Monitored::Scalar<float>("StrawEffDetPhi_B", 0.0);
-    auto StrawEffDetPhi_B_passed        = Monitored::Scalar<bool>("StrawEffDetPhi_B_passed", false);
-    auto StrawEffDetPhi_E               = Monitored::Scalar<float>("StrawEffDetPhi_E", 0.0);
-    auto StrawEffDetPhi_E_passed        = Monitored::Scalar<bool>("StrawEffDetPhi_E_passed", false);
-    auto EfficiencyS                    = Monitored::Scalar<float>("EfficiencyS", 0.0);
-    auto EfficiencyS_passed             = Monitored::Scalar<bool>("EfficiencyS_passed", false);
-    auto EfficiencyC                    = Monitored::Scalar<float>("EfficiencyC", 0.0);
-    auto EfficiencyC_passed             = Monitored::Scalar<bool>("EfficiencyC_passed", false);
-    auto HitHonTMapS                    = Monitored::Scalar<float>("HitHonTMapS", 0.0);
-    auto HitHonTMapS_passed             = Monitored::Scalar<bool>("HitHonTMapS_passed", false);
-    auto HitHWonTMapS                   = Monitored::Scalar<float>("HitHWonTMapS", 0.0);
-    auto HitHWonTMapS_passed            = Monitored::Scalar<bool>("HitHWonTMapS_passed", false);
-    auto HitHWonTMapC                   = Monitored::Scalar<float>("HitHWonTMapC", 0.0);
-    auto HitHWonTMapC_passed            = Monitored::Scalar<bool>("HitHWonTMapC_passed", false);
-    auto HitHonTMapC                    = Monitored::Scalar<float>("HitHonTMapC", 0.0);
-    auto HitHonTMapC_passed             = Monitored::Scalar<bool>("HitHonTMapC_passed", false);
-    auto HitWonTMapS                    = Monitored::Scalar<float>("HitWonTMapS", 0.0);
-    auto HitWonTMapS_passed             = Monitored::Scalar<bool>("HitWonTMapS_passed", false);
-    auto HitWonTMapC                    = Monitored::Scalar<float>("HitWonTMapC", 0.0);
-    auto HitWonTMapC_passed             = Monitored::Scalar<bool>("HitWonTMapC_passed", false);
-    auto HitAonTMapS                    = Monitored::Scalar<float>("HitAonTMapS", 0.0);
-    auto HitAonTMapS_passed             = Monitored::Scalar<bool>("HitAonTMapS_passed", false);
-    auto HitAonTMapC                    = Monitored::Scalar<float>("HitAonTMapC", 0.0);
-    auto HitAonTMapC_passed             = Monitored::Scalar<bool>("HitAonTMapC_passed", false);
-    auto HitAWonTMapS                   = Monitored::Scalar<float>("HitAWonTMapS", 0.0);
-    auto HitAWonTMapS_passed            = Monitored::Scalar<bool>("HitAWonTMapS_passed", false);
-    auto HitAWonTMapC                   = Monitored::Scalar<float>("HitAWonTMapC", 0.0);
-    auto HitAWonTMapC_passed            = Monitored::Scalar<bool>("HitAWonTMapC_passed", false);
-    auto HtoLonTMapS                    = Monitored::Scalar<float>("HtoLonTMapS", 0.0);
-    auto HtoLonTMapS_passed             = Monitored::Scalar<bool>("HtoLonTMapS_passed", false);
-    auto HtoLWonTMapS                   = Monitored::Scalar<float>("HtoLWonTMapS", 0.0);
-    auto HtoLWonTMapS_passed            = Monitored::Scalar<bool>("HtoLWonTMapS_passed", false);
-    auto HtoLonTMapC                    = Monitored::Scalar<float>("HtoLonTMapC", 0.0);
-    auto HtoLonTMapC_passed             = Monitored::Scalar<bool>("HtoLonTMapC_passed", false);
-    auto HtoLWonTMapC                   = Monitored::Scalar<float>("HtoLWonTMapC", 0.0);
-    auto HtoLWonTMapC_passed            = Monitored::Scalar<bool>("HtoLWonTMapC_passed", false);
-
-    auto HitTronTMapC_x                 = Monitored::Scalar<float>("HitTronTMapC_x", 0.0);
-    auto HitTronTMapC_y                 = Monitored::Scalar<float>("HitTronTMapC_y", 0.0);
-    auto HitonTrackVAllS_x              = Monitored::Scalar<float>("HitonTrackVAllS_x", 0.0);
-    auto HitonTrackVAllS_y              = Monitored::Scalar<float>("HitonTrackVAllS_y", 0.0);
-    
+    auto StrawEffDetPhi_B        = Monitored::Scalar<float>("StrawEffDetPhi_B", 0.0);
+    auto StrawEffDetPhi_B_passed = Monitored::Scalar<float>("StrawEffDetPhi_B_passed", 0.0);
+    auto StrawEffDetPhi_E        = Monitored::Scalar<float>("StrawEffDetPhi_E", 0.0);
+    auto StrawEffDetPhi_E_passed = Monitored::Scalar<float>("StrawEffDetPhi_E_passed", 0.0);
+    auto EfficiencyS             = Monitored::Scalar<float>("EfficiencyS", 0.0);
+    auto EfficiencyS_passed      = Monitored::Scalar<bool>("EfficiencyS_passed", false);
+    auto EfficiencyC             = Monitored::Scalar<float>("EfficiencyC", 0.0);
+    auto EfficiencyC_passed      = Monitored::Scalar<bool>("EfficiencyC_passed", false);
+    auto HtoLonTMapS             = Monitored::Scalar<float>("HtoLonTMapS", 0.0);
+    auto HtoLonTMapS_passed      = Monitored::Scalar<bool>("HtoLonTMapS_passed", false);
+    auto HtoLWonTMapS            = Monitored::Scalar<float>("HtoLWonTMapS", 0.0);
+    auto HtoLWonTMapS_passed     = Monitored::Scalar<bool>("HtoLWonTMapS_passed", false);
+    auto HtoLonTMapC             = Monitored::Scalar<float>("HtoLonTMapC", 0.0);
+    auto HtoLonTMapC_passed      = Monitored::Scalar<bool>("HtoLonTMapC_passed", false);
+    auto HtoLWonTMapC            = Monitored::Scalar<float>("HtoLWonTMapC", 0.0);
+    auto HtoLWonTMapC_passed     = Monitored::Scalar<bool>("HtoLWonTMapC_passed", false);
+    auto HitTronTMapC_x          = Monitored::Scalar<float>("HitTronTMapC_x", 0.0);
+    auto HitTronTMapC_y          = Monitored::Scalar<float>("HitTronTMapC_y", 0.0);
+    auto HitonTrackVAllS_x       = Monitored::Scalar<float>("HitonTrackVAllS_x", 0.0);
+    auto HitonTrackVAllS_y       = Monitored::Scalar<float>("HitonTrackVAllS_y", 0.0);
+
     auto p_trk = trackCollection.begin();
 
     const Trk::Perigee *mPer = nullptr;
     const DataVector<const Trk::TrackParameters> *AllTrkPar(0);
     DataVector<const Trk::TrackParameters>::const_iterator p_trkpariter;
 
-	int ntrackstack[2][64];
+    int ntrackstack[2][64];
 
-	for (int ibe = 0; ibe < 2; ibe++) {
-		std::fill(ntrackstack[ibe], ntrackstack[ibe] + 64, 0);
-	}
+    for (int ibe = 0; ibe < 2; ibe++) {
+        std::fill(ntrackstack[ibe], ntrackstack[ibe] + 64, 0);
+    }
 
-	for (; p_trk != trackCollection.end(); ++p_trk) {
-		const std::unique_ptr<const Trk::TrackSummary> summary(m_TrackSummaryTool->summary(*(*p_trk)));
-		int nTRTHits = summary->get(Trk::numberOfTRTHits);
+    for (; p_trk != trackCollection.end(); ++p_trk) {
+        const std::unique_ptr<const Trk::TrackSummary> summary(m_TrackSummaryTool->summary(*(*p_trk)));
+        int nTRTHits = summary->get(Trk::numberOfTRTHits);
 
-		if (nTRTHits < m_minTRThits) continue;
+        if (nTRTHits < m_minTRThits) continue;
 
-		AllTrkPar = (*p_trk)->trackParameters();
+        AllTrkPar = (*p_trk)->trackParameters();
 
-		// Search of MeasuredPerigee in TrackParameters
-		// The following algorithm only finds the First perigee measurement.
-		// As there should be one and only one perigee measurement then this assumption should be valid.
-		// But no check is done to see if there is more than one perigee measurement.
-		for (p_trkpariter = AllTrkPar->begin(); p_trkpariter != AllTrkPar->end(); ++p_trkpariter) {
-			//if track parameter does have a measured perigee then the track parameter is a keeper and break out of the loop
-			if ((mPer = dynamic_cast<const Trk::Perigee *>(*p_trkpariter))) break;
-		}
+        // Search of MeasuredPerigee in TrackParameters
+        // The following algorithm only finds the First perigee measurement.
+        // As there should be one and only one perigee measurement then this assumption should be valid.
+        // But no check is done to see if there is more than one perigee measurement.
+        for (p_trkpariter = AllTrkPar->begin(); p_trkpariter != AllTrkPar->end(); ++p_trkpariter) {
+            //if track parameter does have a measured perigee then the track parameter is a keeper and break out of the loop
+            if ((mPer = dynamic_cast<const Trk::Perigee *>(*p_trkpariter))) break;
+        }
 
-		if (!mPer) continue;
+        if (!mPer) continue;
 
-		float theta   =  mPer->parameters()[Trk::theta];
-		float p       =  (mPer->parameters()[Trk::qOverP] != 0.) ? fabs(1. / (mPer->parameters()[Trk::qOverP])) : 10e7;
-		float pT      =  (p * sin(theta));
-		pT = pT * 1e-3;  // GeV
+        float theta   =  mPer->parameters()[Trk::theta];
+        float p       =  (mPer->parameters()[Trk::qOverP] != 0.) ? fabs(1. / (mPer->parameters()[Trk::qOverP])) : 10e7;
+        float pT      =  (p * sin(theta));
+        pT = pT * 1e-3;  // GeV
 
-		if (p < m_minP) continue;
+        if (p < m_minP) continue;
 
-		const DataVector<const Trk::TrackStateOnSurface> *trackStates = (**p_trk).trackStateOnSurfaces();
+        const DataVector<const Trk::TrackStateOnSurface> *trackStates = (**p_trk).trackStateOnSurfaces();
 
-		if (trackStates == 0) continue;
+        if (trackStates == 0) continue;
 
-		DataVector<const Trk::TrackStateOnSurface>::const_iterator TSOSItBegin0    = trackStates->begin();
-		DataVector<const Trk::TrackStateOnSurface>::const_iterator TSOSItBegin     = trackStates->begin();
-		DataVector<const Trk::TrackStateOnSurface>::const_iterator TSOSItBeginTemp = trackStates->begin();
-		DataVector<const Trk::TrackStateOnSurface>::const_iterator TSOSItEnd       = trackStates->end();
-		int n_trt_hits = summary->get(Trk::numberOfTRTHits);
-		int n_sct_hits = summary->get(Trk::numberOfSCTHits);
-		int n_pixel_hits = summary->get(Trk::numberOfPixelHits);
-		const int n_si_hits = n_pixel_hits + n_sct_hits;
+        DataVector<const Trk::TrackStateOnSurface>::const_iterator TSOSItBegin0    = trackStates->begin();
+        DataVector<const Trk::TrackStateOnSurface>::const_iterator TSOSItBegin     = trackStates->begin();
+        DataVector<const Trk::TrackStateOnSurface>::const_iterator TSOSItBeginTemp = trackStates->begin();
+        DataVector<const Trk::TrackStateOnSurface>::const_iterator TSOSItEnd       = trackStates->end();
+        int n_trt_hits = summary->get(Trk::numberOfTRTHits);
+        int n_sct_hits = summary->get(Trk::numberOfSCTHits);
+        int n_pixel_hits = summary->get(Trk::numberOfPixelHits);
+        const int n_si_hits = n_pixel_hits + n_sct_hits;
 
         float min_pt_new = m_min_pT;
 
@@ -1838,7 +2312,7 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTHits(const TrackCollection& trackCol
         for (int i = 0; i < 2; i++) {
             std::fill(trackfound[i], trackfound[i] + 64, false);
         }
-        
+
         for (TSOSItBegin = TSOSItBegin0; TSOSItBegin != TSOSItEnd; ++TSOSItBegin) {
             // Select a TSOS which is non-empty, measurement type and contains  both drift circle and track parameters informations
             if ((*TSOSItBegin) == 0) continue;
@@ -1914,8 +2388,8 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTHits(const TrackCollection& trackCol
                         hitontrack[ibe]++;
 
                         if (m_doShift) {
-                            StrawEffDetPhi_B = phi_module;
-                            StrawEffDetPhi_B_passed = 1.0;
+                            StrawEffDetPhi_B_passed = phi_module;
+                            StrawEffDetPhi_B = 1.0;
                             fill("ShiftTRTTrackHistograms"+std::to_string(ibe), StrawEffDetPhi_B_passed, StrawEffDetPhi_B);
                         }
 
@@ -1924,8 +2398,8 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTHits(const TrackCollection& trackCol
                         hitontrack_E_side[iside]++;
 
                         if (m_doShift) {
-                            StrawEffDetPhi_E = phi_module;
-                            StrawEffDetPhi_E_passed = 1.0;
+                            StrawEffDetPhi_E_passed = phi_module;
+                            StrawEffDetPhi_E = 1.0;
                             fill("ShiftTRTTrackHistograms"+std::to_string(ibe)+std::to_string(iside), StrawEffDetPhi_E_passed, StrawEffDetPhi_E);
                         }
                     }
@@ -1946,8 +2420,8 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTHits(const TrackCollection& trackCol
                 if (m_idHelper->is_trt(DCoTId)) { // ToDo: Is this really needed?
                     if (ibe == 0) {
                         if (m_doShift) {
-                            StrawEffDetPhi_B = phi_module;
-                            StrawEffDetPhi_B_passed = 0.0;
+                            StrawEffDetPhi_B_passed = phi_module;
+                            StrawEffDetPhi_B = 0.0;
                             fill("ShiftTRTTrackHistograms"+std::to_string(ibe), StrawEffDetPhi_B_passed, StrawEffDetPhi_B);
                         }
 
@@ -1955,8 +2429,8 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTHits(const TrackCollection& trackCol
                         }
                     } else if (ibe == 1) {
                         if (m_doShift) {
-                            StrawEffDetPhi_E = phi_module;
-                            StrawEffDetPhi_E_passed = 0.0;
+                            StrawEffDetPhi_E_passed = phi_module;
+                            StrawEffDetPhi_E = 0.0;
                             fill("ShiftTRTTrackHistograms"+std::to_string(ibe)+std::to_string(iside), StrawEffDetPhi_E_passed, StrawEffDetPhi_E);
                         }
                     }
@@ -1985,21 +2459,12 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTHits(const TrackCollection& trackCol
                 bool is_anybininVgate_high = (hitinvaliditygate != 0);
 
                 if (m_doExpert && m_doStraws) {
-                    HitHonTMapS = thisStrawNumber[ibe];
-                    HitHonTMapS_passed = 0.0;
-                    fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitHonTMapS_passed, HitHonTMapS); // Experimental
-                    HitHWonTMapS = thisStrawNumber[ibe];
-                    HitHWonTMapS_passed = 0.0;
-                    fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitHWonTMapS_passed, HitHWonTMapS); // Experimental
-
                     if (is_middleHTbit_high) {
                         HitHonTMapS = thisStrawNumber[ibe];
-                        HitHonTMapS_passed = 1.0;
-                        fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitHonTMapS_passed, HitHonTMapS);
+                        fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitHonTMapS);
                         HitHWonTMapS = thisStrawNumber[ibe];
-                        HitHWonTMapS_passed = 1.0;
-                        fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitHWonTMapS_passed, HitHWonTMapS);
-                        
+                        fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitHWonTMapS);
+
                         HtoLonTMapS = thisStrawNumber[ibe];
                         HtoLonTMapS_passed = 1.0;
                         fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HtoLonTMapS_passed, HtoLonTMapS);
@@ -2008,23 +2473,13 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTHits(const TrackCollection& trackCol
                         fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HtoLWonTMapS_passed, HtoLWonTMapS);
                     }
                 }
-                
-                if (m_doExpert && m_doChips) { // Experimental
-                    HitHWonTMapC = chip[ibe] - 1;
-                    HitHWonTMapC_passed = 0.0;
-                    fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitHWonTMapC_passed, HitHWonTMapC);
-                    HitHonTMapC = chip[ibe] - 1;
-                    HitHonTMapC_passed = 0.0;
-                    fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitHonTMapC_passed, HitHonTMapC);
-                }
+
                 if (m_doExpert && m_doChips) {
                     if (is_middleHTbit_high) {
                         HitHWonTMapC = chip[ibe] - 1;
-                        HitHWonTMapC_passed = 1.0;
-                        fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitHWonTMapC_passed, HitHWonTMapC);
+                        fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitHWonTMapC);
                         HitHonTMapC = chip[ibe] - 1;
-                        HitHonTMapC_passed = 1.0;
-                        fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitHonTMapC_passed, HitHonTMapC);
+                        fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitHonTMapC);
                         HtoLonTMapC = chip[ibe] - 1;
                         HtoLonTMapC_passed = 1.0;
                         fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HtoLonTMapC_passed, HtoLonTMapC);
@@ -2050,34 +2505,21 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTHits(const TrackCollection& trackCol
                     }
                 }
 
-                if (m_doExpert && m_doStraws) { // Experimental
-                    HitWonTMapS = thisStrawNumber[ibe];
-                    HitWonTMapS_passed = 0.0;
-                    fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitWonTMapS_passed, HitWonTMapS);
-                }
-                if (m_doExpert && m_doChips) { // Experimental
-                    HitWonTMapC = chip[ibe] - 1;
-                    HitWonTMapC_passed = 0.0;
-                    fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitWonTMapC_passed, HitWonTMapC);
-                }
-                
                 if ((driftTimeBin > 2) && (driftTimeBin < 17)) {
                     if (m_doExpert && m_doStraws) {
                         HitWonTMapS = thisStrawNumber[ibe];
-                        HitWonTMapS_passed = 1.0;
-                        fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitWonTMapS_passed, HitWonTMapS);
+                        fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitWonTMapS);
 
                     }
                     if (m_doExpert && m_doChips) {
                         HitWonTMapC = chip[ibe] - 1;
-                        HitWonTMapC_passed = 1.0;
-                        fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitWonTMapC_passed, HitWonTMapC);
+                        fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitWonTMapC);
                     }
                 }
 
                 const int trailingEdge = RawDriftCircle->trailingEdge();
                 float trailingEdgeScaled = (trailingEdge + 1) * 3.125;
-                
+
                 if ((trailingEdge < 23) &&
                     !(RawDriftCircle->lastBinHigh()) &&
                     !(RawDriftCircle->firstBinHigh())) {
@@ -2094,9 +2536,8 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTHits(const TrackCollection& trackCol
                 if (firstBinHigh || lastBinHigh || driftTimeBin > 0 || trailingEdge < 23) {
                     if (m_doExpert && m_doStraws) {
                         HitAonTMapS = thisStrawNumber[ibe];
-                        HitAonTMapS_passed = 1.0;
-                        fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitAonTMapS_passed, HitAonTMapS);
-                        
+                        fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitAonTMapS);
+
                     if (!is_middleHTbit_high) {
                         HtoLonTMapS = thisStrawNumber[ibe];
                         HtoLonTMapS_passed = 0.0;
@@ -2106,8 +2547,7 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTHits(const TrackCollection& trackCol
 
                     if (m_doExpert && m_doChips) {
                         HitAonTMapC = chip[ibe] - 1;
-                        HitAonTMapC_passed = 1.0;
-                        fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitAonTMapC_passed, HitAonTMapC);
+                        fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitAonTMapC);
                         if (!is_middleHTbit_high) {
                             HtoLonTMapC = chip[ibe] - 1;
                             HtoLonTMapC_passed = 0.0;
@@ -2120,29 +2560,20 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTHits(const TrackCollection& trackCol
                     if (isArgonStraw) nTRTHitsW_Ar[ibe][iside]++;
                     else nTRTHitsW_Xe[ibe][iside]++;
 
-
                     nTRTHitsW_perwheel[iside][layer_or_wheel]++;
 
                     if (is_middleHTbit_high) {
                         nTRTHLHitsW[ibe][iside]++;
                         if (isArgonStraw) nTRTHLHitsW_Ar[ibe][iside]++;
-                        else nTRTHLHitsW_Xe[ibe][iside]++; 
+                        else nTRTHLHitsW_Xe[ibe][iside]++;
                     }
                 }
 
-                // Experimental
-                if (m_doExpert && m_doStraws) {
-                    double histLow = 0;
-                    double histBinWidth = 1;
-                    FILLEVENTNORMALIZATION(m_strawMax[ibe], histLow, histBinWidth, thisStrawNumber[ibe], HitAWonTMapS_passed, HitAWonTMapS, "TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module))
-                }
-
                 if (is_anybininVgate_high) {
                     if (m_doExpert && m_doStraws) {
                         HitAWonTMapS = thisStrawNumber[ibe];
-                        HitAWonTMapS_passed = 1.0;
-                        fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitAWonTMapS_passed, HitAWonTMapS);
-                        
+                        fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitAWonTMapS);
+
                         if (!is_middleHTbit_high) {
                             HtoLWonTMapS = thisStrawNumber[ibe];
                             HtoLWonTMapS_passed = 0.0;
@@ -2152,9 +2583,8 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTHits(const TrackCollection& trackCol
 
                     if (m_doExpert && m_doChips) {
                         HitAWonTMapC = chip[ibe] - 1;
-                        HitAWonTMapC_passed = 1.0;
-                        fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitAWonTMapC_passed, HitAWonTMapC);
-                        
+                        fill("TRTTrackHistograms"+std::to_string(ibe)+std::to_string(iphi_module), HitAWonTMapC);
+
                         if (!is_middleHTbit_high) {
                             HtoLWonTMapC = chip[ibe] - 1;
                             HtoLWonTMapC_passed = 0.0;
@@ -2242,7 +2672,7 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTHits(const TrackCollection& trackCol
                             NumSwLLWoT_E = nTRTHitsW[ibe][1];
                             fill("ShiftTRTTrackHistograms"+std::to_string(ibe)+"1", NumSwLLWoT_E);
                         }
-                    } 
+                    }
 
                     for (int iside = 0; iside < 2; iside++) {
                         if (nTRTHLHitsW[ibe][iside] > 0) {
@@ -2277,9 +2707,9 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillTRTHits(const TrackCollection& trackCol
 StatusCode TRTMonitoringRun3RAW_Alg::fillHistograms( const EventContext& ctx ) const {
     using namespace Monitored;
     bool passEventBurst;
-    
+
     ATH_MSG_VERBOSE("Monitoring Histograms being filled");
-    
+
     SG::ReadHandle<TRT_RDO_Container>   rdoContainer(m_rdoContainerKey, ctx);
     SG::ReadHandle<xAOD::EventInfo>     xAODEventInfo(m_xAODEventInfoKey, ctx);
     SG::ReadHandle<InDetTimeCollection> trtBCIDCollection(m_TRT_BCIDCollectionKey, ctx);
@@ -2303,25 +2733,25 @@ StatusCode TRTMonitoringRun3RAW_Alg::fillHistograms( const EventContext& ctx ) c
             ATH_CHECK( fillTRTRDOs(*rdoContainer, *xAODEventInfo, trtBCIDCollection.ptr()) );
         }
     } else passEventBurst = true;
-    
+
     if (m_doEfficiency) {
-		if (!combTrackCollection.isValid()) {
-			ATH_MSG_ERROR("Could not find track collection " << m_combTrackCollectionKey.key() <<
-			              " in store");
-			return StatusCode::FAILURE;
-		}
-		ATH_CHECK( fillTRTEfficiency(*combTrackCollection) );
-	}
-    
+        if (!combTrackCollection.isValid()) {
+            ATH_MSG_ERROR("Could not find track collection " << m_combTrackCollectionKey.key() <<
+                          " in store");
+            return StatusCode::FAILURE;
+        }
+        ATH_CHECK( fillTRTEfficiency(*combTrackCollection) );
+    }
+
     if (m_doHitsMon) {
         if (!trackCollection.isValid()) {
             ATH_MSG_ERROR("Could not find track collection " << m_trackCollectionKey.key() <<
                         " in store");
             return StatusCode::FAILURE;
         }
-	    if (passEventBurst) {
+        if (passEventBurst) {
             ATH_CHECK( fillTRTHits(*trackCollection) );
-	    }
+        }
     }
 
     return StatusCode::SUCCESS;
-- 
GitLab