From 70deef348429a06a799edbcf3a13c931f56d85b4 Mon Sep 17 00:00:00 2001
From: Susumu Oda <susumu.oda@cern.ch>
Date: Thu, 7 Mar 2019 10:49:05 +0000
Subject: [PATCH] Add ATLAS_CHECK_THREAD_SAFETY to InDetPrepRawDataToxAOD
 package

---
 .../SCTRawHitValidationAuxContainer_v1.cxx    |  2 +-
 .../Root/SCTRawHitValidation_v1.cxx           |  7 +++-
 .../SCTRawHitValidationAuxContainer_v1.h      |  5 +++
 .../versions/SCTRawHitValidation_v1.h         | 33 ++++++++++++++++++-
 .../ATLAS_CHECK_THREAD_SAFETY                 |  1 +
 .../src/SCT_RawDataToxAOD.cxx                 | 18 +++-------
 6 files changed, 50 insertions(+), 16 deletions(-)
 create mode 100644 InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/ATLAS_CHECK_THREAD_SAFETY

diff --git a/Event/xAOD/xAODTracking/Root/SCTRawHitValidationAuxContainer_v1.cxx b/Event/xAOD/xAODTracking/Root/SCTRawHitValidationAuxContainer_v1.cxx
index 0cd4a40a380..bbae7be5766 100644
--- a/Event/xAOD/xAODTracking/Root/SCTRawHitValidationAuxContainer_v1.cxx
+++ b/Event/xAOD/xAODTracking/Root/SCTRawHitValidationAuxContainer_v1.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 "xAODTracking/versions/SCTRawHitValidationAuxContainer_v1.h"
diff --git a/Event/xAOD/xAODTracking/Root/SCTRawHitValidation_v1.cxx b/Event/xAOD/xAODTracking/Root/SCTRawHitValidation_v1.cxx
index b77313167b2..bad5f35683e 100644
--- a/Event/xAOD/xAODTracking/Root/SCTRawHitValidation_v1.cxx
+++ b/Event/xAOD/xAODTracking/Root/SCTRawHitValidation_v1.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 "xAODTracking/versions/SCTRawHitValidation_v1.h"
@@ -11,6 +11,11 @@ namespace xAOD {
   SCTRawHitValidation_v1::SCTRawHitValidation_v1() { }
 
   AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(SCTRawHitValidation_v1, uint64_t, identifier, setIdentifier)
+  AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(SCTRawHitValidation_v1, int, bec, setBec)
+  AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(SCTRawHitValidation_v1, int, layer, setLayer)
+  AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(SCTRawHitValidation_v1, int, eta_module, setEta_module)
+  AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(SCTRawHitValidation_v1, int, phi_module, setPhi_module)
+  AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(SCTRawHitValidation_v1, int, side, setSide)
 
   static const SG::AuxElement::Accessor<uint32_t> word_acc("dataword");
   void SCTRawHitValidation_v1::setWord(uint32_t new_word) {
diff --git a/Event/xAOD/xAODTracking/xAODTracking/versions/SCTRawHitValidationAuxContainer_v1.h b/Event/xAOD/xAODTracking/xAODTracking/versions/SCTRawHitValidationAuxContainer_v1.h
index 67157be1e9c..0627f07f838 100644
--- a/Event/xAOD/xAODTracking/xAODTracking/versions/SCTRawHitValidationAuxContainer_v1.h
+++ b/Event/xAOD/xAODTracking/xAODTracking/versions/SCTRawHitValidationAuxContainer_v1.h
@@ -21,6 +21,11 @@ namespace xAOD {
   private:
     std::vector<uint64_t> identifier;
     std::vector<uint32_t> dataword;
+    std::vector<int> bec;
+    std::vector<int> layer;
+    std::vector<int> phi_module;
+    std::vector<int> eta_module;
+    std::vector<int> side;
   };
 }
 
diff --git a/Event/xAOD/xAODTracking/xAODTracking/versions/SCTRawHitValidation_v1.h b/Event/xAOD/xAODTracking/xAODTracking/versions/SCTRawHitValidation_v1.h
index 559f906c79a..640ca40a54c 100644
--- a/Event/xAOD/xAODTracking/xAODTracking/versions/SCTRawHitValidation_v1.h
+++ b/Event/xAOD/xAODTracking/xAODTracking/versions/SCTRawHitValidation_v1.h
@@ -1,7 +1,7 @@
 // -*- C++ -*-
 
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef XAODTRACKING_VERSIONS_SCTRAWHITVALIDATION_V1_H
@@ -63,6 +63,37 @@ namespace xAOD {
     /// check if there is an error in the second hit's data
     bool SecondHitError() const;
     /// @}
+
+    /// set bec of this RDO
+    void setBec(int new_bec);
+
+    /// get bec of this RDO
+    int bec() const;
+
+    /// set layer of this RDO
+    void setLayer(int new_layer);
+
+    /// get layer of this RDO
+    int layer() const;
+    
+    /// set eta_module of this RDO
+    void setEta_module(int new_eta_module);
+    
+    /// get eta_module of this RDO
+    int eta_module() const;
+    
+    /// set phi_module of this RDO
+    void setPhi_module(int new_phi_module);
+    
+    /// get phi_module of this RDO
+    int phi_module() const;
+    
+    /// set side of this RDO
+    void setSide(int new_side);
+
+    /// get side of this RDO
+    int side() const;
+    
   }; // end of the SCTRawHitValidation_v1 class definition
 
 } // end of the xAOD namespace
diff --git a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/ATLAS_CHECK_THREAD_SAFETY b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 00000000000..1f133e2fc83
--- /dev/null
+++ b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD
diff --git a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/SCT_RawDataToxAOD.cxx b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/SCT_RawDataToxAOD.cxx
index 25ab40b25de..345d2abbc20 100644
--- a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/SCT_RawDataToxAOD.cxx
+++ b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/SCT_RawDataToxAOD.cxx
@@ -29,14 +29,6 @@ StatusCode SCT_RawDataToxAOD::initialize() {
   return StatusCode::SUCCESS;
 }
 
-// define accessors used by execute method; defining them once means fewer
-// string comparisons.
-static SG::AuxElement::Accessor<int> bec_acc("bec");
-static SG::AuxElement::Accessor<int> layer_acc("layer");
-static SG::AuxElement::Accessor<int> phi_module_acc("phi_module");
-static SG::AuxElement::Accessor<int> eta_module_acc("eta_module");
-static SG::AuxElement::Accessor<int> side_acc("side");
-
 StatusCode SCT_RawDataToxAOD::execute(const EventContext& ctx) const {
   SG::ReadHandle<SCT_RDO_Container> rdoContainer(m_rdoContainerName, ctx);
 
@@ -56,11 +48,11 @@ StatusCode SCT_RawDataToxAOD::execute(const EventContext& ctx) const {
       xrdo->setIdentifier(id.get_compact());
       xrdo->setWord(rdo->getWord());
       // setting additional decorations based on identifier
-      bec_acc(*xrdo) = m_SCTHelper->barrel_ec(id);
-      layer_acc(*xrdo) = m_SCTHelper->layer_disk(id);
-      phi_module_acc(*xrdo) = m_SCTHelper->phi_module(id);
-      eta_module_acc(*xrdo) = m_SCTHelper->eta_module(id);
-      side_acc(*xrdo) = m_SCTHelper->side(id);
+      xrdo->setBec(m_SCTHelper->barrel_ec(id));
+      xrdo->setLayer(m_SCTHelper->layer_disk(id));
+      xrdo->setPhi_module(m_SCTHelper->phi_module(id));
+      xrdo->setEta_module(m_SCTHelper->eta_module(id));
+      xrdo->setSide(m_SCTHelper->side(id));
     }
   }
   ATH_MSG_DEBUG(" recorded SCT_RawData objects: size " << xaod->size());
-- 
GitLab