From ccc344f34ce7d1114db4c14c7e013ecb1014e6d5 Mon Sep 17 00:00:00 2001
From: Susumu Oda <susumu.oda@cern.ch>
Date: Fri, 19 Jun 2020 11:04:03 +0000
Subject: [PATCH] Add ATLAS_CHECK_THREAD_SAFETY to PixelConditionsData with
 fixing constness issues.

---
 .../ATLAS_CHECK_THREAD_SAFETY                 |  1 +
 .../PixelClusterOnTrackErrorData.h            | 32 +++++++++----------
 .../PixelOfflineCalibData.h                   | 28 ++++++++++++----
 .../src/PixelClusterOnTrackErrorData.cxx      | 28 ++++++----------
 .../src/SpecialPixelMap.cxx                   |  4 +--
 5 files changed, 51 insertions(+), 42 deletions(-)
 create mode 100644 InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/ATLAS_CHECK_THREAD_SAFETY

diff --git a/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/ATLAS_CHECK_THREAD_SAFETY b/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/ATLAS_CHECK_THREAD_SAFETY
new file mode 100644
index 00000000000..eed4ad1258e
--- /dev/null
+++ b/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/ATLAS_CHECK_THREAD_SAFETY
@@ -0,0 +1 @@
+InnerDetector/InDetConditions/PixelConditionsData
diff --git a/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelClusterOnTrackErrorData.h b/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelClusterOnTrackErrorData.h
index f40cef7ad2d..bc9ba56fc70 100644
--- a/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelClusterOnTrackErrorData.h
+++ b/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelClusterOnTrackErrorData.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 ///////////////////////////////////////////////////////////////////
@@ -44,24 +44,24 @@ class PixelClusterOnTrackErrorData {
 
 
     // get parametrizations
-    const std::vector<float> getClusterSizeBinsX(){return m_csx;}
-    const std::vector<float> getClusterSizeBinsY(){return m_csy;}
-    const std::vector<float> getEtaBins(){return m_etaref;}
-    const std::vector<float> getIncidenceAngleBins(){return m_phibins;}
+    const std::vector<float> getClusterSizeBinsX() const {return m_csx;}
+    const std::vector<float> getClusterSizeBinsY() const {return m_csy;}
+    const std::vector<float> getEtaBins() const {return m_etaref;}
+    const std::vector<float> getIncidenceAngleBins() const {return m_phibins;}
     // IBL
-    const std::vector<float> getEtaIBLBins(){return m_ibletaref;}
-    const std::vector<float> getIncidenceAngleIBLBins(){return m_iblphibins;}
+    const std::vector<float> getEtaIBLBins() const {return m_ibletaref;}
+    const std::vector<float> getIncidenceAngleIBLBins() const {return m_iblphibins;}
 
 
     // old parametrization (analytical formula)
-    double getPixelBarrelPhiError(double ang, int phiClusterSize); 
+    double getPixelBarrelPhiError(double ang, int phiClusterSize) const; 
 
     // new parametrization (read from DB)
-    float getPixelBarrelEtaError(int ibin);
-    float getPixelBarrelPhiError(int ibin);
+    float getPixelBarrelEtaError(int ibin) const;
+    float getPixelBarrelPhiError(int ibin) const;
     // IBL
-    float getPixelIBLEtaError(int ibin);
-    float getPixelIBLPhiError(int ibin);
+    float getPixelIBLEtaError(int ibin) const;
+    float getPixelIBLPhiError(int ibin) const;
 
     void setParameters(const int ncsx, const int ncsy, const int neta, const int nalpha, 
                        int offset, std::vector<float> constants);
@@ -76,13 +76,13 @@ class PixelClusterOnTrackErrorData {
       m_ibletaerror[ibin] = error; }
 
 
-    int getBarrelBinPhi(double angle, int phiClusterSize);
+    int getBarrelBinPhi(double angle, int phiClusterSize) const;
 
     int getBarrelBinEta(double eta, int etaClusterSize, 
-		      int phiClusterSize);
+		      int phiClusterSize) const;
     // IBL
-    int getIBLBinPhi(double angle, int phiClusterSize);
-    int getIBLBinEta(double eta, int etaClusterSize);
+    int getIBLBinPhi(double angle, int phiClusterSize) const;
+    int getIBLBinEta(double eta, int etaClusterSize) const;
 
     // save constants on text file
     void Print(std::string file) const;
diff --git a/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelOfflineCalibData.h b/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelOfflineCalibData.h
index f6b9af934b5..c77c29d0da4 100644
--- a/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelOfflineCalibData.h
+++ b/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelOfflineCalibData.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 ///////////////////////////////////////////////////////////////////
@@ -51,9 +51,12 @@ class PixelOfflineCalibData{
   int size() const;
   
   // get the pointer to pixel cluster error data
-  PixelClusterErrorData* getPixelClusterErrorData() const; 
-  PixelChargeInterpolationParameters* getPixelChargeInterpolationParameters() const; 
-  PixelClusterOnTrackErrorData* getPixelClusterOnTrackErrorData() const;
+  PixelClusterErrorData* getPixelClusterErrorData();
+  PixelChargeInterpolationParameters* getPixelChargeInterpolationParameters();
+  PixelClusterOnTrackErrorData* getPixelClusterOnTrackErrorData();
+  const PixelClusterErrorData* getPixelClusterErrorData() const; 
+  const PixelChargeInterpolationParameters* getPixelChargeInterpolationParameters() const; 
+  const PixelClusterOnTrackErrorData* getPixelClusterOnTrackErrorData() const;
 
   // Get/Set the numerical constants 
   int GetNumberOfConstants() const;
@@ -109,15 +112,28 @@ inline bool PixelOfflineCalibData::update(const PixelClusterOnTrackErrorData& id
   return true;
 }
 
-inline PixelClusterErrorData* PixelOfflineCalibData::getPixelClusterErrorData() const {
+inline PixelClusterErrorData* PixelOfflineCalibData::getPixelClusterErrorData() {
   return m_clustererrordata;
 }
 
-inline PixelChargeInterpolationParameters* PixelOfflineCalibData::getPixelChargeInterpolationParameters() const {
+inline PixelChargeInterpolationParameters* PixelOfflineCalibData::getPixelChargeInterpolationParameters() {
   return m_chargeinterpolationparameters;
 }
 
 inline PixelClusterOnTrackErrorData* 
+    PixelOfflineCalibData::getPixelClusterOnTrackErrorData() {
+  return m_clusterontrackerrordata;
+}
+
+inline const PixelClusterErrorData* PixelOfflineCalibData::getPixelClusterErrorData() const {
+  return m_clustererrordata;
+}
+
+inline const PixelChargeInterpolationParameters* PixelOfflineCalibData::getPixelChargeInterpolationParameters() const {
+  return m_chargeinterpolationparameters;
+}
+
+inline const PixelClusterOnTrackErrorData* 
     PixelOfflineCalibData::getPixelClusterOnTrackErrorData() const {
   return m_clusterontrackerrordata;
 }
diff --git a/InnerDetector/InDetConditions/PixelConditionsData/src/PixelClusterOnTrackErrorData.cxx b/InnerDetector/InDetConditions/PixelConditionsData/src/PixelClusterOnTrackErrorData.cxx
index 569e6aa6886..83f75b2a922 100644
--- a/InnerDetector/InDetConditions/PixelConditionsData/src/PixelClusterOnTrackErrorData.cxx
+++ b/InnerDetector/InDetConditions/PixelConditionsData/src/PixelClusterOnTrackErrorData.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "PixelConditionsData/PixelClusterOnTrackErrorData.h"
@@ -124,7 +124,7 @@ int PixelClusterOnTrackErrorData::getNumberOfEtaIBLBins() const{
 }
 
 double PixelClusterOnTrackErrorData::getPixelBarrelPhiError(double ang, 
-                                                    int deltax){ 
+                                                    int deltax) const { 
    double errphi=50*CLHEP::micrometer/pow(12,0.5);
    // error on phi coordinate
     if(deltax == 1){
@@ -159,39 +159,35 @@ double PixelClusterOnTrackErrorData::getPixelBarrelPhiError(double ang,
     return errphi; 
 }
 
-float PixelClusterOnTrackErrorData::getPixelBarrelEtaError(int ibin){
+float PixelClusterOnTrackErrorData::getPixelBarrelEtaError(int ibin) const {
   if(ibin < 0) return -1;
   if(static_cast<unsigned int>(ibin) >= m_barreletaerror.size()) return -2;
   return m_barreletaerror[ibin];
 }
 
-float PixelClusterOnTrackErrorData::getPixelBarrelPhiError(int ibin){
+float PixelClusterOnTrackErrorData::getPixelBarrelPhiError(int ibin) const {
   if(ibin < 0){ return -1; }
   if(static_cast<unsigned int>(ibin) >= m_barrelphierror.size()){ return -2;}
   return m_barrelphierror[ibin];
 }
 
-float PixelClusterOnTrackErrorData::getPixelIBLEtaError(int ibin){
+float PixelClusterOnTrackErrorData::getPixelIBLEtaError(int ibin) const {
     if(ibin < 0||m_version>-2) return -1;
     if(static_cast<unsigned int>(ibin) >= m_ibletaerror.size()) return -2;
     return m_ibletaerror[ibin];
 }
 
-float PixelClusterOnTrackErrorData::getPixelIBLPhiError(int ibin){
+float PixelClusterOnTrackErrorData::getPixelIBLPhiError(int ibin) const {
     if(ibin < 0||m_version>-2){ return -1; }
     if(static_cast<unsigned int>(ibin) >= m_iblphierror.size()){ return -2;}
     return m_iblphierror[ibin];
 }
 
 int PixelClusterOnTrackErrorData::getBarrelBinPhi(double angle, 
-                                   int phiClusterSize){
+                                   int phiClusterSize) const {
 
   int iang =0;
   int nang = m_phibins.size();
-  if(nang == 0) {
-    Initialize();
-    nang = m_phibins.size();
-  }
   for(int i=0; i<nang; i++){  
     if(angle > m_phibins[i]) iang=i;  
   } 
@@ -205,14 +201,10 @@ int PixelClusterOnTrackErrorData::getBarrelBinPhi(double angle,
 }
 
 int PixelClusterOnTrackErrorData::getBarrelBinEta(double eta, int etaClusterSize, 
-    int phiClusterSize){
+    int phiClusterSize) const {
 
   int ieta=0;
   int neta = m_etaref.size();
-  if(neta == 0) {
-    Initialize();
-    neta = m_etaref.size();
-  }
   for(int i=0; i<neta; i++){  
     if(eta>m_etaref[i]) ieta=i;  
   } 
@@ -232,7 +224,7 @@ int PixelClusterOnTrackErrorData::getBarrelBinEta(double eta, int etaClusterSize
 }
 
 int PixelClusterOnTrackErrorData::getIBLBinPhi(double angle,
-						    int phiClusterSize){
+						    int phiClusterSize) const {
     if(m_version>-2) return -1;
     int iang =0;
     int nang = m_iblphibins.size();
@@ -246,7 +238,7 @@ int PixelClusterOnTrackErrorData::getIBLBinPhi(double angle,
     return m_csxbinsibl*iang+iphi;
 }
 
-int PixelClusterOnTrackErrorData::getIBLBinEta(double eta, int etaClusterSize){
+int PixelClusterOnTrackErrorData::getIBLBinEta(double eta, int etaClusterSize) const {
 
     if(m_version>-2) return -1;
     int ieta=0;
diff --git a/InnerDetector/InDetConditions/PixelConditionsData/src/SpecialPixelMap.cxx b/InnerDetector/InDetConditions/PixelConditionsData/src/SpecialPixelMap.cxx
index 51aa639ac91..c8296aaf9b9 100755
--- a/InnerDetector/InDetConditions/PixelConditionsData/src/SpecialPixelMap.cxx
+++ b/InnerDetector/InDetConditions/PixelConditionsData/src/SpecialPixelMap.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "PixelConditionsData/SpecialPixelMap.h"
@@ -20,7 +20,7 @@
 
 //***** DetectorSpecialPixelMap *****//
 const int nmtype(5);
-static unsigned int columnsPerFEIX[5]={18,80,132,80,132}; // number of columns per FEI3, 4, 50, 51, 52 
+static const unsigned int columnsPerFEIX[5]={18,80,132,80,132}; // number of columns per FEI3, 4, 50, 51, 52 
 //static unsigned int rowsPerFEIX[5]={164, 336, 672, 339, 678}; // number of rows per FEI3, 4, 50, 51, 52
 //static unsigned int rowsRdoPerFEIX[5]={160, 336, 672, 336, 672}; // number of rows readout per FEI3, 4, 50, 51, 52
 
-- 
GitLab