diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/TrigDetCalib/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigDetCalib/TrigDetCalib/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..eaa981fd24ffdb72b37ad6fffe61ec2ed4e26a91
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigDetCalib/TrigDetCalib/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigDetCalib
diff --git a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBSelector.cxx b/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBSelector.cxx
index c9416a25df240f91eab3ae000e59812e39f0d145..4e88ea3b06c51c159455fe6f0c570786410766d1 100644
--- a/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBSelector.cxx
+++ b/Trigger/TrigAlgorithms/TrigDetCalib/src/TrigROBSelector.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "GaudiKernel/MsgStream.h"
@@ -159,12 +159,8 @@ HLT::ErrorCode TrigROBSelector::fillPEBInfo(PartialEventBuildingInfo& pebInfo,
     if (nRobs) (*nRobs).push_back(detectorROBs.size());
     
     TH1I*& robHist = m_robHists[*detector];
-    static bool warnedAlready = false; 
     if (!robHist) {
-      if (!warnedAlready) {
-        ATH_MSG_DEBUG("Monitoring of detector " << *detector << " not implemented yet.");
-        warnedAlready = true;
-      }
+      ATH_MSG_DEBUG("Monitoring of detector " << *detector << " not implemented yet.");
       continue;
     }
 
diff --git a/Trigger/TrigAlgorithms/TrigEFLongLivedParticles/TrigEFLongLivedParticles/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigEFLongLivedParticles/TrigEFLongLivedParticles/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..b8e1cbf00d0304be5ae227d2431a1d15ca6c419f
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigEFLongLivedParticles/TrigEFLongLivedParticles/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigEFLongLivedParticles
diff --git a/Trigger/TrigAlgorithms/TrigEgammaRec/TrigEgammaRec/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigEgammaRec/TrigEgammaRec/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..4f866eade019d749ea7b60727d8ba2416a4e130c
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigEgammaRec/TrigEgammaRec/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigEgammaRec
diff --git a/Trigger/TrigAlgorithms/TrigEgammaRec/src/TrigEgammaRec.cxx b/Trigger/TrigAlgorithms/TrigEgammaRec/src/TrigEgammaRec.cxx
index 8b95163cef42217d4667e2e1e546c1264740c7e8..902b40a328283b8ed750ff219f94602f37c8bcbc 100755
--- a/Trigger/TrigAlgorithms/TrigEgammaRec/src/TrigEgammaRec.cxx
+++ b/Trigger/TrigAlgorithms/TrigEgammaRec/src/TrigEgammaRec.cxx
@@ -996,7 +996,7 @@ HLT::ErrorCode TrigEgammaRec::hltExecute( const HLT::TriggerElement* inputTE,
             for (unsigned int i = 0 ; i < egRec->getNumberOfClusters(); ++i){
                 const xAOD::CaloCluster *clus = egRec->caloCluster(i);
                 // Also check the original (non-calibrated cluster)
-                static SG::AuxElement::Accessor<ElementLink<xAOD::CaloClusterContainer> > orig ("originalCaloCluster");
+                static const SG::AuxElement::Accessor<ElementLink<xAOD::CaloClusterContainer> > orig ("originalCaloCluster");
                 if (!orig.isAvailable(*clus) || !orig(*clus).isValid()){
                     ATH_MSG_DEBUG("Problem with original cluster link");
                 }
@@ -1076,7 +1076,7 @@ HLT::ErrorCode TrigEgammaRec::hltExecute( const HLT::TriggerElement* inputTE,
             std::vector< ElementLink< xAOD::CaloClusterContainer > > ph_clusterLinks;
             for (unsigned int i = 0 ; i < egRec->getNumberOfClusters(); ++i){
                 const xAOD::CaloCluster *clus = egRec->caloCluster(i);
-                static SG::AuxElement::Accessor<ElementLink<xAOD::CaloClusterContainer> > orig ("originalCaloCluster");
+                static const SG::AuxElement::Accessor<ElementLink<xAOD::CaloClusterContainer> > orig ("originalCaloCluster");
                 if (!orig.isAvailable(*clus) || !orig(*clus).isValid()){
                     ATH_MSG_DEBUG("Problem with original cluster link");
                 }
diff --git a/Trigger/TrigAlgorithms/TrigFastTrackFinder/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigFastTrackFinder/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..e485a0efffacbf0bafcd382a170caeda9154dc3b
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigFastTrackFinder/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigFastTrackFinder
diff --git a/Trigger/TrigAlgorithms/TrigGenericAlgs/TrigGenericAlgs/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigGenericAlgs/TrigGenericAlgs/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..203f89a60d0b74867a7cf45f8000e68a543c1457
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigGenericAlgs/TrigGenericAlgs/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigGenericAlgs
diff --git a/Trigger/TrigAlgorithms/TrigGenericAlgs/src/AcceptWhenInputMissing.cxx b/Trigger/TrigAlgorithms/TrigGenericAlgs/src/AcceptWhenInputMissing.cxx
index 42de1884e05bb37892ae013e0b27d277137a0f86..c7fe5c843c5b830bebb585d7e3e325984a771bbc 100644
--- a/Trigger/TrigAlgorithms/TrigGenericAlgs/src/AcceptWhenInputMissing.cxx
+++ b/Trigger/TrigAlgorithms/TrigGenericAlgs/src/AcceptWhenInputMissing.cxx
@@ -1,12 +1,10 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "TrigGenericAlgs/AcceptWhenInputMissing.h"
 #include "boost/foreach.hpp"
 
-std::vector<HLT::TriggerElement*> fake_seed;
-
 AcceptWhenInputMissing::AcceptWhenInputMissing(const std::string& name, ISvcLocator* pSvcLocator) 
   : HLT::AllTEAlgo(name, pSvcLocator) {
 }
@@ -24,7 +22,9 @@ HLT::ErrorCode AcceptWhenInputMissing::hltExecute(std::vector<std::vector<HLT::T
       msg() << MSG::DEBUG << "Not creating output because " <<  count << " input TEs present" << endmsg;    
   } else {
     if ( msgLvl() <= MSG::DEBUG )
-      msg() << MSG::DEBUG << "Creating output TE" << endmsg;      
+      msg() << MSG::DEBUG << "Creating output TE" << endmsg;
+
+    std::vector<HLT::TriggerElement*> fake_seed;
     HLT::TriggerElement* te = config()->getNavigation()->addNode(fake_seed, output);
     te->setActiveState(true);
   }
diff --git a/Trigger/TrigAlgorithms/TrigHLTJetHemisphereRec/TrigHLTJetHemisphereRec/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigHLTJetHemisphereRec/TrigHLTJetHemisphereRec/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..2e2d0a29eadbc7e874fea536cb72318bc84c80a9
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigHLTJetHemisphereRec/TrigHLTJetHemisphereRec/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigHLTJetHemisphereRec
diff --git a/Trigger/TrigAlgorithms/TrigHLTJetRec/CMakeLists.txt b/Trigger/TrigAlgorithms/TrigHLTJetRec/CMakeLists.txt
index ec07e72ecc6437029c8ec9b59e02660fcae8b858..5470790b5d6c8db682f8be40c46a269d9386afe0 100644
--- a/Trigger/TrigAlgorithms/TrigHLTJetRec/CMakeLists.txt
+++ b/Trigger/TrigAlgorithms/TrigHLTJetRec/CMakeLists.txt
@@ -24,6 +24,7 @@ atlas_depends_on_subdirs( PUBLIC
                           Trigger/TrigEvent/TrigSteeringEvent
                           Trigger/TrigSteer/TrigInterfaces
                           PRIVATE
+                          Control/CxxUtils
                           Calorimeter/CaloEvent
                           Event/xAOD/xAODEventShape
                           Reconstruction/EventShapes/EventShapeTools
diff --git a/Trigger/TrigAlgorithms/TrigHLTJetRec/TrigHLTJetRec/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigHLTJetRec/TrigHLTJetRec/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..f3fa35f18be08b0bcc30b9b9c8426d208911f57a
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigHLTJetRec/TrigHLTJetRec/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigHLTJetRec
diff --git a/Trigger/TrigAlgorithms/TrigHLTJetRec/TrigHLTJetRec/TrigHLTPSvsFSDiagnostics.h b/Trigger/TrigAlgorithms/TrigHLTJetRec/TrigHLTJetRec/TrigHLTPSvsFSDiagnostics.h
index d24d1a7e9fa284f1b1a11201715fa71904a641c1..761c235e1f6124890b7492a5f43ca996322f8909 100644
--- a/Trigger/TrigAlgorithms/TrigHLTJetRec/TrigHLTJetRec/TrigHLTPSvsFSDiagnostics.h
+++ b/Trigger/TrigAlgorithms/TrigHLTJetRec/TrigHLTJetRec/TrigHLTPSvsFSDiagnostics.h
@@ -11,6 +11,8 @@
 #include "TrigSteeringEvent/TrigRoiDescriptor.h"
 #include "xAODJet/JetContainer.h"
 
+#include "CxxUtils/checker_macros.h"
+ATLAS_NO_CHECK_FILE_THREAD_SAFETY;  // legacy trigger code
 
 class TH1D;
 class TH2D;
diff --git a/Trigger/TrigAlgorithms/TrigHLTJetRec/src/TrigHLTPSvsFSDiagnostics.cxx b/Trigger/TrigAlgorithms/TrigHLTJetRec/src/TrigHLTPSvsFSDiagnostics.cxx
index a2cadc2376c6ff39ad183760bb26fa97e7a6771f..52c4a865a401c81fce4592ba0552c0d22163c499 100644
--- a/Trigger/TrigAlgorithms/TrigHLTJetRec/src/TrigHLTPSvsFSDiagnostics.cxx
+++ b/Trigger/TrigAlgorithms/TrigHLTJetRec/src/TrigHLTPSvsFSDiagnostics.cxx
@@ -22,6 +22,7 @@
 #include <cmath>
 #include "TrigSteeringEvent/PhiHelper.h"
 
+ATLAS_NO_CHECK_FILE_THREAD_SAFETY;  // legacy trigger code
 
 TrigHLTPSvsFSDiagnostics::TrigHLTPSvsFSDiagnostics(const std::string& name, ISvcLocator* pSvcLocator):
 HLT::HypoAlgo(name, pSvcLocator) {
diff --git a/Trigger/TrigAlgorithms/TrigL2LongLivedParticles/TrigL2LongLivedParticles/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigL2LongLivedParticles/TrigL2LongLivedParticles/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..19d05402785413953afef25f9d3b41c4fcb73c77
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigL2LongLivedParticles/TrigL2LongLivedParticles/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigL2LongLivedParticles
diff --git a/Trigger/TrigAlgorithms/TrigL2SiTrackFinder/TrigL2SiTrackFinder/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigL2SiTrackFinder/TrigL2SiTrackFinder/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..4b0632a32dfa03d4bcf4419526310dbaf1b4c5d0
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigL2SiTrackFinder/TrigL2SiTrackFinder/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigL2SiTrackFinder
diff --git a/Trigger/TrigAlgorithms/TrigL2TRTSegFinder/TrigL2TRTSegFinder/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigL2TRTSegFinder/TrigL2TRTSegFinder/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..2b6fed6cf715c9262c06d4b1fa373038ae709ed4
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigL2TRTSegFinder/TrigL2TRTSegFinder/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigL2TRTSegFinder
diff --git a/Trigger/TrigAlgorithms/TrigMinBias/TrigMinBias/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigMinBias/TrigMinBias/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..90cf7858f1bd88931cd4b6d2af02ccc5dc29e7b6
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigMinBias/TrigMinBias/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigMinBias
diff --git a/Trigger/TrigAlgorithms/TrigPartialEventBuilding/TrigPartialEventBuilding/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigPartialEventBuilding/TrigPartialEventBuilding/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..5c7de71a6cbf797ff40a9a8432c14e216d9a3d4f
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigPartialEventBuilding/TrigPartialEventBuilding/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigPartialEventBuilding
diff --git a/Trigger/TrigAlgorithms/TrigSecVtxFinder/CMakeLists.txt b/Trigger/TrigAlgorithms/TrigSecVtxFinder/CMakeLists.txt
index e3cf6dafa61b44ebd37448b040665f86690a2f32..86d57d14bcfbc0bc1910c3a0d08587ab1aca52f1 100644
--- a/Trigger/TrigAlgorithms/TrigSecVtxFinder/CMakeLists.txt
+++ b/Trigger/TrigAlgorithms/TrigSecVtxFinder/CMakeLists.txt
@@ -14,6 +14,7 @@ atlas_depends_on_subdirs( PUBLIC
                           Trigger/TrigTools/TrigTrackJetFinderTool
                           InnerDetector/InDetConditions/BeamSpotConditionsData
                           PRIVATE
+                          Control/CxxUtils
                           DetectorDescription/GeoPrimitives
                           Trigger/TrigEvent/TrigInDetEvent
                           Trigger/TrigEvent/TrigSteeringEvent )
diff --git a/Trigger/TrigAlgorithms/TrigSecVtxFinder/TrigSecVtxFinder/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigSecVtxFinder/TrigSecVtxFinder/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..51a8ff02b2bd3df37695b10092d62eb2dbfcfcd0
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigSecVtxFinder/TrigSecVtxFinder/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigSecVtxFinder
diff --git a/Trigger/TrigAlgorithms/TrigSecVtxFinder/TrigSecVtxFinder/TrigSecVtxFinder.h b/Trigger/TrigAlgorithms/TrigSecVtxFinder/TrigSecVtxFinder/TrigSecVtxFinder.h
index 1eb73718464e8286b94e964b1b0af6e19ab7f02f..ddcbc45947fd9052a5b0f9ee28a3528ce43c1485 100755
--- a/Trigger/TrigAlgorithms/TrigSecVtxFinder/TrigSecVtxFinder/TrigSecVtxFinder.h
+++ b/Trigger/TrigAlgorithms/TrigSecVtxFinder/TrigSecVtxFinder/TrigSecVtxFinder.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 // ************************************************
@@ -23,6 +23,9 @@
 #include "TrigInDetVxInJetTool/ITrigInDetVxInJetTool.h"
 #include "BeamSpotConditionsData/BeamSpotData.h"
 
+#include "CxxUtils/checker_macros.h"
+ATLAS_NO_CHECK_FILE_THREAD_SAFETY;  // legacy trigger code
+
 namespace CLHEP {
   class HepLorentzVector;
 }
diff --git a/Trigger/TrigAlgorithms/TrigSecVtxFinder/src/TrigSecVtxFinder.cxx b/Trigger/TrigAlgorithms/TrigSecVtxFinder/src/TrigSecVtxFinder.cxx
index a411f5f2b53f0e51b0521044751ba509c65a56a7..46f1046692fc10109fbb69d9191f8b2dc8d924ee 100644
--- a/Trigger/TrigAlgorithms/TrigSecVtxFinder/src/TrigSecVtxFinder.cxx
+++ b/Trigger/TrigAlgorithms/TrigSecVtxFinder/src/TrigSecVtxFinder.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "TrigSecVtxFinder/TrigSecVtxFinder.h"
@@ -14,6 +14,8 @@
 
 #include <sstream>
 
+ATLAS_NO_CHECK_FILE_THREAD_SAFETY;  // legacy trigger code
+
 TrigSecVtxFinder::TrigSecVtxFinder(const std::string &name, ISvcLocator *pSvcLocator):
   HLT::FexAlgo(name, pSvcLocator),
   m_algo(6),
diff --git a/Trigger/TrigAlgorithms/TrigT2BeamSpot/TrigT2BeamSpot/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigT2BeamSpot/TrigT2BeamSpot/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..a4209cd81c140c530270d0e82a6dd524a83a38e2
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigT2BeamSpot/TrigT2BeamSpot/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigT2BeamSpot
diff --git a/Trigger/TrigAlgorithms/TrigT2BeamSpot/src/T2Track.h b/Trigger/TrigAlgorithms/TrigT2BeamSpot/src/T2Track.h
index 476ffb45c581a91580b93ea1eca170b9b6474813..0a90bf5fcf187977a0392eb4bfe76a5870c3e255 100644
--- a/Trigger/TrigAlgorithms/TrigT2BeamSpot/src/T2Track.h
+++ b/Trigger/TrigAlgorithms/TrigT2BeamSpot/src/T2Track.h
@@ -1,10 +1,9 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /**********************************************************************************
  *
- * @version: $Id: T2Track.h 793162 2017-01-20 03:48:25Z ssnyder $
  *
  * @project: HLT, PESA algorithms
  * @package: TrigT2BeamSpot
@@ -146,7 +145,7 @@ namespace PESA {
     double m_D0err;
     double m_NDF;
     double m_Qual;
-    mutable double m_Chi2Prob;
+    mutable std::atomic<double> m_Chi2Prob;
     int    m_SiHits;
     int    m_PIXHits;
     int    m_SCTHits;
diff --git a/Trigger/TrigAlgorithms/TrigT2BeamSpot/src/T2Vertex.h b/Trigger/TrigAlgorithms/TrigT2BeamSpot/src/T2Vertex.h
index 98e820a03f741bb2f57a281c92325868c8de8577..00cf90b19fe9bf6d4b02313096799094b239269a 100644
--- a/Trigger/TrigAlgorithms/TrigT2BeamSpot/src/T2Vertex.h
+++ b/Trigger/TrigAlgorithms/TrigT2BeamSpot/src/T2Vertex.h
@@ -1,10 +1,9 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /**********************************************************************************
  *
- * @version: $Id: T2Vertex.h 702277 2015-10-22 10:33:51Z smh $
  *
  * @project: HLT, PESA algorithms
  * @package: TrigT2BeamSpot
@@ -192,12 +191,12 @@ namespace PESA
 
   private:
     // Data members
-    mutable double   m_SumPt   ;
-    mutable double   m_SumPt2  ;
+    double   m_SumPt   ;
+    double   m_SumPt2  ;
     double   m_Mass    ;
     double   m_NDF     ;
     double   m_Qual    ;
-    mutable double   m_Chi2Prob;
+    mutable std::atomic<double>   m_Chi2Prob;
     double   m_XZoom   ;
     double   m_YZoom   ;
     double   m_ZZoom   ;
diff --git a/Trigger/TrigAlgorithms/TrigT2HistoPrmVtx/TrigT2HistoPrmVtx/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigT2HistoPrmVtx/TrigT2HistoPrmVtx/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..c07a233412a18ac833e7219044644c8f6aa25d6f
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigT2HistoPrmVtx/TrigT2HistoPrmVtx/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigT2HistoPrmVtx
diff --git a/Trigger/TrigAlgorithms/TrigT2IDTau/TrigT2IDTau/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigT2IDTau/TrigT2IDTau/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..8c4fafadafcc39d54468a5ff6cf410d754830145
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigT2IDTau/TrigT2IDTau/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigT2IDTau
diff --git a/Trigger/TrigAlgorithms/TrigT2MinBias/TrigT2MinBias/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigT2MinBias/TrigT2MinBias/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..0e4b7dcfa063cf7eb64698f78299f3bea2022efc
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigT2MinBias/TrigT2MinBias/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigT2MinBias
diff --git a/Trigger/TrigAlgorithms/TrigT2Tau/CMakeLists.txt b/Trigger/TrigAlgorithms/TrigT2Tau/CMakeLists.txt
index d0da2c2ef5e8d08bb0754d44e3ccdbb67aa3b919..52e74468abcd7f078e44f5560fca5b4e87616731 100644
--- a/Trigger/TrigAlgorithms/TrigT2Tau/CMakeLists.txt
+++ b/Trigger/TrigAlgorithms/TrigT2Tau/CMakeLists.txt
@@ -15,6 +15,7 @@ atlas_depends_on_subdirs( PUBLIC
                           Trigger/TrigEvent/TrigSteeringEvent
                           Trigger/TrigSteer/TrigInterfaces
                           PRIVATE
+                          Control/CxxUtils
                           Event/FourMom )
 
 # Component(s) in the package:
diff --git a/Trigger/TrigAlgorithms/TrigT2Tau/TrigT2Tau/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigT2Tau/TrigT2Tau/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..fc278ed8f08521893f04155c273dee75ad517c06
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigT2Tau/TrigT2Tau/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigT2Tau
diff --git a/Trigger/TrigAlgorithms/TrigT2Tau/TrigT2Tau/T2TauFinal.h b/Trigger/TrigAlgorithms/TrigT2Tau/TrigT2Tau/T2TauFinal.h
index 6c34c8273846eea9796be57b33fc07edfb2077c6..f084ec30e73db1323a30487151209802eb69c4ec 100755
--- a/Trigger/TrigAlgorithms/TrigT2Tau/TrigT2Tau/T2TauFinal.h
+++ b/Trigger/TrigAlgorithms/TrigT2Tau/TrigT2Tau/T2TauFinal.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 // ********************************************************************
@@ -19,6 +19,9 @@
 #include "TrigInterfaces/FexAlgo.h"
 #include "GaudiKernel/ToolHandle.h"
 
+#include "CxxUtils/checker_macros.h"
+ATLAS_NO_CHECK_FILE_THREAD_SAFETY;  // legacy trigger code
+
 namespace HLT {
   class TriggerElement;
 }
diff --git a/Trigger/TrigAlgorithms/TrigT2Tau/src/T2TauFinal.cxx b/Trigger/TrigAlgorithms/TrigT2Tau/src/T2TauFinal.cxx
index 57ac9d00180af8bf978bf34f81ff9b74ecc88231..b2041af63224eee1b2708bdff6055d1095141675 100755
--- a/Trigger/TrigAlgorithms/TrigT2Tau/src/T2TauFinal.cxx
+++ b/Trigger/TrigAlgorithms/TrigT2Tau/src/T2TauFinal.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 // ********************************************************************
@@ -30,6 +30,8 @@
 #include "TrigParticle/TrigTau.h"
 #include "TrigParticle/TrigTauContainer.h"
 
+ATLAS_NO_CHECK_FILE_THREAD_SAFETY;  // legacy trigger code
+
 class ISvcLocator;
 
 T2TauFinal::T2TauFinal(const std::string & name, ISvcLocator* pSvcLocator):
diff --git a/Trigger/TrigAlgorithms/TrigTRTHighTHitCounter/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigTRTHighTHitCounter/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..eb284e97a744c73074ad6777476adaad606adcce
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigTRTHighTHitCounter/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigTRTHighTHitCounter
diff --git a/Trigger/TrigAlgorithms/TrigTauDiscriminant/CMakeLists.txt b/Trigger/TrigAlgorithms/TrigTauDiscriminant/CMakeLists.txt
index 1b5ee90bbff0876009a071d37b020881cf794500..5fdce736f38df26d9b6e405dde59081a9e4447f5 100644
--- a/Trigger/TrigAlgorithms/TrigTauDiscriminant/CMakeLists.txt
+++ b/Trigger/TrigAlgorithms/TrigTauDiscriminant/CMakeLists.txt
@@ -12,6 +12,7 @@ atlas_depends_on_subdirs( PUBLIC
                           Trigger/TrigSteer/TrigInterfaces
                           Trigger/TrigTools/TrigTimeAlgs
                           PRIVATE
+                          Control/CxxUtils
                           Event/xAOD/xAODTau
                           Trigger/TrigEvent/TrigParticle
                           Trigger/TrigEvent/TrigSteeringEvent
diff --git a/Trigger/TrigAlgorithms/TrigTauDiscriminant/TrigTauDiscriminant/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigTauDiscriminant/TrigTauDiscriminant/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..f4ac6f82b23f2a1e0a33296c803374787c44f4a8
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigTauDiscriminant/TrigTauDiscriminant/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigTauDiscriminant
diff --git a/Trigger/TrigAlgorithms/TrigTauDiscriminant/TrigTauDiscriminant/TrigTauDiscriBuilder.h b/Trigger/TrigAlgorithms/TrigTauDiscriminant/TrigTauDiscriminant/TrigTauDiscriBuilder.h
index 8341cf6f5e54b8ef4925a3977310aa4c5a65fc4d..601c158c7a5b6e8329df5512f69620f3c65c4a8e 100755
--- a/Trigger/TrigAlgorithms/TrigTauDiscriminant/TrigTauDiscriminant/TrigTauDiscriBuilder.h
+++ b/Trigger/TrigAlgorithms/TrigTauDiscriminant/TrigTauDiscriminant/TrigTauDiscriBuilder.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 //
@@ -23,6 +23,9 @@
 #include "tauRecTools/ITauToolBase.h"
 #include <vector>
 
+#include "CxxUtils/checker_macros.h"
+ATLAS_NO_CHECK_FILE_THREAD_SAFETY;  // legacy trigger code
+
 namespace HLT {
   class TriggerElement;
 }
diff --git a/Trigger/TrigAlgorithms/TrigTauDiscriminant/src/TrigTauDiscriBuilder.cxx b/Trigger/TrigAlgorithms/TrigTauDiscriminant/src/TrigTauDiscriBuilder.cxx
index 16242b137cff4cb8b87d168d5117d91d92d5234e..9255ea28a1652d27e9028d8eedf5d809701e7209 100644
--- a/Trigger/TrigAlgorithms/TrigTauDiscriminant/src/TrigTauDiscriBuilder.cxx
+++ b/Trigger/TrigAlgorithms/TrigTauDiscriminant/src/TrigTauDiscriBuilder.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 /********************************************************************
@@ -21,6 +21,8 @@
 #include "TrigTauDiscriminant/TrigTauDiscriBuilder.h"
 #include "tauRecTools/ITauToolBase.h"
 
+ATLAS_NO_CHECK_FILE_THREAD_SAFETY;  // legacy trigger code
+
 using namespace std;
 
 /////////////////////////////////////////////////////////////////
diff --git a/Trigger/TrigAlgorithms/TrigTauRec/TrigTauRec/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigTauRec/TrigTauRec/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..1bdff0706463bba668ed92901e333f640976dcad
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigTauRec/TrigTauRec/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigTauRec
diff --git a/Trigger/TrigAlgorithms/TrigTileMuId/TrigTileMuId/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigTileMuId/TrigTileMuId/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..1674bed49456bf783a4e254741e9cd0278e3494b
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigTileMuId/TrigTileMuId/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigTileMuId
diff --git a/Trigger/TrigAlgorithms/TrigmuComb/CMakeLists.txt b/Trigger/TrigAlgorithms/TrigmuComb/CMakeLists.txt
index 3e72c8c215d48443a9a413ec605ceafc15ec65d9..ac70437532a1ca143f2e31f288879a2e133076ba 100644
--- a/Trigger/TrigAlgorithms/TrigmuComb/CMakeLists.txt
+++ b/Trigger/TrigAlgorithms/TrigmuComb/CMakeLists.txt
@@ -19,6 +19,7 @@ atlas_depends_on_subdirs( PUBLIC
                           Trigger/TrigTools/TrigTimeAlgs
                           PRIVATE
                           Control/AthenaKernel
+                          Control/CxxUtils
                           Control/StoreGate
                           Tools/PathResolver
                           Trigger/TrigConfiguration/TrigConfHLTData
diff --git a/Trigger/TrigAlgorithms/TrigmuComb/TrigmuComb/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigmuComb/TrigmuComb/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..243a5a252619ad7dadf54d68124fa6008c56d03c
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigmuComb/TrigmuComb/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigmuComb
diff --git a/Trigger/TrigAlgorithms/TrigmuComb/TrigmuComb/muComb.h b/Trigger/TrigAlgorithms/TrigmuComb/TrigmuComb/muComb.h
index f71330bcd9fc40331a54e5a75bfbb42c4d3e710b..2dd7d3f9c4dab2102ff4ab6ba16b79b52f1ec8a2 100755
--- a/Trigger/TrigAlgorithms/TrigmuComb/TrigmuComb/muComb.h
+++ b/Trigger/TrigAlgorithms/TrigmuComb/TrigmuComb/muComb.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 // ********************************************************************
@@ -28,6 +28,9 @@
 #include "xAODTrigMuon/L2CombinedMuonContainer.h"
 #include "xAODTracking/TrackParticle.h"
 
+#include "CxxUtils/checker_macros.h"
+ATLAS_NO_CHECK_FILE_THREAD_SAFETY;  // legacy trigger code
+
 /** Main LVL2 Algorithm. Sided by a xAOD::L2StandaloneMuon, match the muon spectrometer track with an ID track, and produces a xAOD::L2CombinedMuon. */
 class muComb : public HLT::FexAlgo
 {
diff --git a/Trigger/TrigAlgorithms/TrigmuComb/src/muComb.cxx b/Trigger/TrigAlgorithms/TrigmuComb/src/muComb.cxx
index ad325e3c4640b073a3c0e05d2687fa25c496b933..c74f43027c95402d2d6e07016fe0b7b3aa5e5f67 100755
--- a/Trigger/TrigAlgorithms/TrigmuComb/src/muComb.cxx
+++ b/Trigger/TrigAlgorithms/TrigmuComb/src/muComb.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 // ********************************************************************
@@ -37,6 +37,8 @@
 
 #include "CLHEP/Units/SystemOfUnits.h"
 
+ATLAS_NO_CHECK_FILE_THREAD_SAFETY;  // legacy trigger code
+
 muComb::muComb(const std::string& name, ISvcLocator* pSvcLocator):
    HLT::FexAlgo(name, pSvcLocator),
    m_pStoreGate(NULL),
diff --git a/Trigger/TrigAlgorithms/TrigmuIso/CMakeLists.txt b/Trigger/TrigAlgorithms/TrigmuIso/CMakeLists.txt
index b763a53b58020594f5095a40488cf610c396000e..af28f049685328011846f74ff997a1ec4d1d84ef 100644
--- a/Trigger/TrigAlgorithms/TrigmuIso/CMakeLists.txt
+++ b/Trigger/TrigAlgorithms/TrigmuIso/CMakeLists.txt
@@ -17,6 +17,7 @@ atlas_depends_on_subdirs( PUBLIC
                           Trigger/TrigTools/TrigTimeAlgs
                           PRIVATE
                           Control/AthenaKernel
+                          Control/CxxUtils
                           Event/xAOD/xAODEventInfo
                           Event/xAOD/xAODTracking
                           Trigger/TrigConfiguration/TrigConfHLTData
diff --git a/Trigger/TrigAlgorithms/TrigmuIso/TrigmuIso/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigmuIso/TrigmuIso/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..e9af1816887b3a090cf9bc63b8e76dfbbae11420
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigmuIso/TrigmuIso/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigmuIso
diff --git a/Trigger/TrigAlgorithms/TrigmuIso/TrigmuIso/muIso.h b/Trigger/TrigAlgorithms/TrigmuIso/TrigmuIso/muIso.h
index 15a540c93395cc6cc5925c12881624fe37a460ea..0eb5872df1e13ada2f2c42dca9094d0914b31e2c 100755
--- a/Trigger/TrigAlgorithms/TrigmuIso/TrigmuIso/muIso.h
+++ b/Trigger/TrigAlgorithms/TrigmuIso/TrigmuIso/muIso.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 // ********************************************************************
@@ -33,6 +33,9 @@
 #include "StoreGate/WriteHandleKey.h"  
 #include "AthenaMonitoring/GenericMonitoringTool.h"  
 
+#include "CxxUtils/checker_macros.h"
+ATLAS_NO_CHECK_FILE_THREAD_SAFETY;  // legacy trigger code
+
 class StoreGateSvc;
 class TrigTimer;
 
diff --git a/Trigger/TrigAlgorithms/TrigmuIso/src/muIso.cxx b/Trigger/TrigAlgorithms/TrigmuIso/src/muIso.cxx
index 0f016dd4a42a8dae5e07791f28288837eff78598..7f6c04968d60db89c49d914cac37a1c9475d7244 100644
--- a/Trigger/TrigAlgorithms/TrigmuIso/src/muIso.cxx
+++ b/Trigger/TrigAlgorithms/TrigmuIso/src/muIso.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 // ********************************************************************
@@ -45,6 +45,8 @@
 #include "AthenaBaseComps/AthMsgStreamMacros.h"
 #include "AthenaMonitoring/Monitored.h"
 
+ATLAS_NO_CHECK_FILE_THREAD_SAFETY;  // legacy trigger code
+
 class ISvcLocator;
 
 muIso::muIso(const std::string & name, ISvcLocator* pSvcLocator):
diff --git a/Trigger/TrigAlgorithms/TrigmuRoI/TrigmuRoI/ATLAS_CHECK_THREAD_SAFETY b/Trigger/TrigAlgorithms/TrigmuRoI/TrigmuRoI/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 0000000000000000000000000000000000000000..aa1f4a975ff93915cc450f0ab5c46c15028a0142
--- /dev/null
+++ b/Trigger/TrigAlgorithms/TrigmuRoI/TrigmuRoI/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+Trigger/TrigAlgorithms/TrigmuRoI