From 41f151345df0b1b96874b682c5d5710fa5a0de3e Mon Sep 17 00:00:00 2001
From: Soshi Tsuno <Soshi.Tsuno@cern.ch>
Date: Wed, 16 Jan 2019 19:24:57 +0100
Subject: [PATCH] update

---
 .../src/PixelDCSCondHVAlg.cxx                 | 14 ++++-----
 .../src/PixelDCSCondHVAlg.h                   |  4 +--
 .../src/PixelDCSCondTempAlg.cxx               | 14 ++++-----
 .../src/PixelDCSCondTempAlg.h                 |  4 +--
 .../src/PixelSiliconConditionsTestAlg.h       |  7 ++---
 .../PixelDCSConditionsData.h                  | 30 -------------------
 .../PixelConditionsData/PixelModuleData.h     |  9 ++++++
 .../src/PixelDCSConditionsData.cxx            | 30 -------------------
 .../src/PixelModuleData.cxx                   | 24 +++++++++++++++
 .../src/PixelSiLorentzAngleCondAlg.cxx        | 18 ++++-------
 .../src/PixelSiLorentzAngleCondAlg.h          |  8 ++---
 .../src/PixelSiPropertiesCondAlg.cxx          | 18 ++++-------
 .../src/PixelSiPropertiesCondAlg.h            |  7 +++--
 .../src/PixelPrepDataToxAOD.cxx               | 11 ++-----
 .../src/PixelPrepDataToxAOD.h                 |  5 ++--
 15 files changed, 77 insertions(+), 126 deletions(-)
 delete mode 100644 InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelDCSConditionsData.h
 delete mode 100644 InnerDetector/InDetConditions/PixelConditionsData/src/PixelDCSConditionsData.cxx

diff --git a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondHVAlg.cxx b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondHVAlg.cxx
index ba5d9028c046..e76b564eeaca 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondHVAlg.cxx
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondHVAlg.cxx
@@ -37,7 +37,7 @@ StatusCode PixelDCSCondHVAlg::initialize() {
 StatusCode PixelDCSCondHVAlg::execute() {
   ATH_MSG_DEBUG("PixelDCSCondHVAlg::execute()");
 
-  SG::WriteCondHandle<PixelDCSConditionsData> writeHandle(m_writeKey);
+  SG::WriteCondHandle<PixelModuleData> writeHandle(m_writeKey);
   if (writeHandle.isValid()) {
     ATH_MSG_DEBUG("CondHandle " << writeHandle.fullKey() << " is already valid.. In theory this should not be called, but may happen if multiple concurrent events are being processed out of order.");
     return StatusCode::SUCCESS; 
@@ -59,7 +59,7 @@ StatusCode PixelDCSCondHVAlg::execute() {
   ATH_MSG_INFO("Range of input is " << rangeW);
   
   // Construct the output Cond Object and fill it in
-  std::unique_ptr<PixelDCSConditionsData> writeCdo(std::make_unique<PixelDCSConditionsData>());
+  std::unique_ptr<PixelModuleData> writeCdo(std::make_unique<PixelModuleData>());
 
   // Read HV info
   std::string param("HV");
@@ -70,26 +70,26 @@ StatusCode PixelDCSCondHVAlg::execute() {
       if (payload.exists(param) and not payload[param].isNull()) {
         float val = payload[param].data<float>();
         if (val>1000.0 || val<-1000.0) {
-          writeCdo -> setValue((int)channelNumber, m_defaultBiasVoltage);
+          writeCdo -> setBiasVoltage((int)channelNumber, m_defaultBiasVoltage);
         }
         else {
-          writeCdo -> setValue((int)channelNumber, val);
+          writeCdo -> setBiasVoltage((int)channelNumber, val);
         }
       } 
       else {
         ATH_MSG_WARNING(param << " does not exist for ChanNum " << channelNumber);
-        writeCdo -> setValue((int)channelNumber, m_defaultBiasVoltage);
+        writeCdo -> setBiasVoltage((int)channelNumber, m_defaultBiasVoltage);
       }
     }
   }
   else {
     for (int i=0; i<(int)m_pixelID->wafer_hash_max(); i++) {
-      writeCdo->setValue(i, m_defaultBiasVoltage);
+      writeCdo -> setBiasVoltage(i, m_defaultBiasVoltage);
     }
   }
 
   if (writeHandle.record(rangeW, std::move(writeCdo)).isFailure()) {
-    ATH_MSG_FATAL("Could not record PixelDCSConditionsData " << writeHandle.key() << " with EventRange " << rangeW << " into Conditions Store");
+    ATH_MSG_FATAL("Could not record PixelModuleData " << writeHandle.key() << " with EventRange " << rangeW << " into Conditions Store");
     return StatusCode::FAILURE;
   }
   ATH_MSG_INFO("recorded new CDO " << writeHandle.key() << " with range " << rangeW << " into Conditions Store");
diff --git a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondHVAlg.h b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondHVAlg.h
index 46bfc1e9f8b5..3a4490f4e2b5 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondHVAlg.h
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondHVAlg.h
@@ -11,7 +11,7 @@
 #include "AthenaPoolUtilities/CondAttrListCollection.h"
 
 #include "StoreGate/WriteCondHandleKey.h"
-#include "PixelConditionsData/PixelDCSConditionsData.h"
+#include "PixelConditionsData/PixelModuleData.h"
 
 #include "InDetIdentifier/PixelID.h"
 
@@ -34,7 +34,7 @@ class PixelDCSCondHVAlg : public AthAlgorithm {
     float m_defaultBiasVoltage;
 
     SG::ReadCondHandleKey<CondAttrListCollection> m_readKey{this, "ReadKey", "/PIXEL/DCS/HV", "Key of input (raw) HV conditions folder"};
-    SG::WriteCondHandleKey<PixelDCSConditionsData> m_writeKey{this, "WriteKey", "PixelDCSHVCondData", "Key of output (derived) HV conditions data"};
+    SG::WriteCondHandleKey<PixelModuleData> m_writeKey{this, "WriteKey", "PixelDCSHVCondData", "Key of output (derived) HV conditions data"};
 
     ServiceHandle<ICondSvc> m_condSvc;
 };
diff --git a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondTempAlg.cxx b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondTempAlg.cxx
index b7e1a4eed18f..e754e7dea802 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondTempAlg.cxx
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondTempAlg.cxx
@@ -39,7 +39,7 @@ StatusCode PixelDCSCondTempAlg::initialize() {
 StatusCode PixelDCSCondTempAlg::execute() {
   ATH_MSG_DEBUG("PixelDCSCondTempAlg::execute()");
 
-  SG::WriteCondHandle<PixelDCSConditionsData> writeHandle(m_writeKey);
+  SG::WriteCondHandle<PixelModuleData> writeHandle(m_writeKey);
   // Do we have a valid Write Cond Handle for current time?
   if (writeHandle.isValid()) {
     ATH_MSG_DEBUG("CondHandle " << writeHandle.fullKey() << " is already valid.. In theory this should not be called, but may happen if multiple concurrent events are being processed out of order.");
@@ -63,7 +63,7 @@ StatusCode PixelDCSCondTempAlg::execute() {
   ATH_MSG_INFO("Range of input is " << rangeW);
   
   // Construct the output Cond Object and fill it in
-  std::unique_ptr<PixelDCSConditionsData> writeCdo(std::make_unique<PixelDCSConditionsData>());
+  std::unique_ptr<PixelModuleData> writeCdo(std::make_unique<PixelModuleData>());
 
   // Read temperature info
   std::string param{"temperature"};
@@ -74,26 +74,26 @@ StatusCode PixelDCSCondTempAlg::execute() {
       if (payload.exists(param) and not payload[param].isNull()) {
         float val = payload[param].data<float>();
         if (val>100.0 || val<-80.0) {
-          writeCdo->setValue((int)channelNumber, m_defaultTemperature);
+          writeCdo->setTemperature((int)channelNumber, m_defaultTemperature);
         }
         else {
-          writeCdo->setValue((int)channelNumber, val);
+          writeCdo->setTemperature((int)channelNumber, val);
         }
       } 
       else {
         ATH_MSG_WARNING(param << " does not exist for ChanNum " << channelNumber);
-        writeCdo->setValue((int)channelNumber, m_defaultTemperature);
+        writeCdo->setTemperature((int)channelNumber, m_defaultTemperature);
       }
     }
   }
   else {
     for (int i=0; i<(int)m_pixelID->wafer_hash_max(); i++) {
-      writeCdo->setValue(i, m_defaultTemperature);
+      writeCdo->setTemperature(i, m_defaultTemperature);
     }
   }
 
   if (writeHandle.record(rangeW, std::move(writeCdo)).isFailure()) {
-    ATH_MSG_FATAL("Could not record PixelDCSConditionsData " << writeHandle.key() << " with EventRange " << rangeW << " into Conditions Store");
+    ATH_MSG_FATAL("Could not record PixelModuleData " << writeHandle.key() << " with EventRange " << rangeW << " into Conditions Store");
     return StatusCode::FAILURE;
   }
   ATH_MSG_INFO("recorded new CDO " << writeHandle.key() << " with range " << rangeW << " into Conditions Store");
diff --git a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondTempAlg.h b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondTempAlg.h
index 5eff0e7de142..d8cace7ce588 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondTempAlg.h
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondTempAlg.h
@@ -11,7 +11,7 @@
 #include "AthenaPoolUtilities/CondAttrListCollection.h"
 
 #include "StoreGate/WriteCondHandleKey.h"
-#include "PixelConditionsData/PixelDCSConditionsData.h"
+#include "PixelConditionsData/PixelModuleData.h"
 
 #include "InDetIdentifier/PixelID.h"
 
@@ -34,7 +34,7 @@ class PixelDCSCondTempAlg : public AthAlgorithm {
     float m_defaultTemperature;
 
     SG::ReadCondHandleKey<CondAttrListCollection> m_readKey{this, "ReadKey", "/PIXEL/DCS/TEMPERATURE", "Key of input (raw) temperature conditions folder"};
-    SG::WriteCondHandleKey<PixelDCSConditionsData> m_writeKey{this, "WriteKey", "PixelDCSTempCondData", "Key of output (derived) temperature conditions folder"};
+    SG::WriteCondHandleKey<PixelModuleData> m_writeKey{this, "WriteKey", "PixelDCSTempCondData", "Key of output (derived) temperature conditions folder"};
 
     ServiceHandle<ICondSvc> m_condSvc;
 };
diff --git a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelSiliconConditionsTestAlg.h b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelSiliconConditionsTestAlg.h
index c8882800d8bb..ca43fd8b8404 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelSiliconConditionsTestAlg.h
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelSiliconConditionsTestAlg.h
@@ -9,7 +9,6 @@
 #include "AthenaBaseComps/AthAlgorithm.h"
 #include "GaudiKernel/ToolHandle.h"
 
-#include "PixelConditionsData/PixelDCSConditionsData.h"
 #include "PixelConditionsData/PixelModuleData.h"
 #include "StoreGate/ReadCondHandleKey.h"
 
@@ -23,11 +22,9 @@ class PixelSiliconConditionsTestAlg : public AthAlgorithm {
     virtual StatusCode finalize() override;
 
   private:
-    SG::ReadCondHandleKey<PixelDCSConditionsData> m_readKeyTemp{this, "ReadKeyeTemp", "PixelDCSTempCondData",         "Key of input sensor temperature conditions folder"};
-    SG::ReadCondHandleKey<PixelDCSConditionsData> m_readKeyHV  {this, "ReadKeyHV",    "PixelDCSHVCondData",           "Key of input bias voltage conditions folder"};
-
+    SG::ReadCondHandleKey<PixelModuleData> m_readKeyTemp{this, "ReadKeyeTemp", "PixelDCSTempCondData",         "Key of input sensor temperature conditions folder"};
+    SG::ReadCondHandleKey<PixelModuleData> m_readKeyHV  {this, "ReadKeyHV",    "PixelDCSHVCondData",           "Key of input bias voltage conditions folder"};
     SG::ReadCondHandleKey<PixelModuleData> m_moduleDataKey{this, "PixelModuleData", "PixelModuleData", "Output key"};
-
 };
 
 #endif
diff --git a/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelDCSConditionsData.h b/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelDCSConditionsData.h
deleted file mode 100644
index ca7ea0511429..000000000000
--- a/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelDCSConditionsData.h
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef PIXELDCSCONDDATA_H
-#define PIXELDCSCONDDATA_H
-
-#include "AthenaKernel/CLASS_DEF.h"
-#include <map>
-
-class PixelDCSConditionsData {
-  public:
-    PixelDCSConditionsData();
-    virtual ~PixelDCSConditionsData();
-
-    void setValue(const int chanNum, const float value);
-    bool getValue(const int chanNum, float& value) const;
-    void clear();
-
-  private:
-    typedef std::map<int, float> FloatConditions;
-    FloatConditions  m_channelValues;
-};
-
-CLASS_DEF( PixelDCSConditionsData , 345532773 , 1 )
-
-#include "AthenaKernel/CondCont.h"
-CONDCONT_DEF( PixelDCSConditionsData, 578786393 );
-
-#endif // PIXELDCSCONDDATA_H
diff --git a/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelModuleData.h b/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelModuleData.h
index 1b8e36aede03..1ace713919d3 100644
--- a/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelModuleData.h
+++ b/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelModuleData.h
@@ -13,6 +13,12 @@ class PixelModuleData {
     PixelModuleData();
     virtual ~PixelModuleData();
 
+    void setBiasVoltage(const int chanNum, const float value);
+    float getBiasVoltage(const int chanNum) const;
+
+    void setTemperature(const int chanNum, const float value);
+    float getTemperature(const int chanNum) const;
+
     void setModuleStatus(const int chanNum, const int value);
     int getModuleStatus(const int chanNum) const;
 
@@ -64,7 +70,10 @@ class PixelModuleData {
     void clear();
 
   private:
+    typedef std::map<int, float> FloatConditions;
     typedef std::map<int, int> IntConditions;
+    FloatConditions  m_biasVoltage;
+    FloatConditions  m_temperature;
     IntConditions  m_moduleStatus;
     IntConditions  m_chipStatus;
 
diff --git a/InnerDetector/InDetConditions/PixelConditionsData/src/PixelDCSConditionsData.cxx b/InnerDetector/InDetConditions/PixelConditionsData/src/PixelDCSConditionsData.cxx
deleted file mode 100644
index a3ba08686b99..000000000000
--- a/InnerDetector/InDetConditions/PixelConditionsData/src/PixelDCSConditionsData.cxx
+++ /dev/null
@@ -1,30 +0,0 @@
-/*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "PixelConditionsData/PixelDCSConditionsData.h"
-
-PixelDCSConditionsData::PixelDCSConditionsData():
-  m_channelValues()
-{
-}
-
-PixelDCSConditionsData::~PixelDCSConditionsData() { }
-
-void PixelDCSConditionsData::setValue(const int chanNum, const float value) {
-  m_channelValues[chanNum] = value;
-}
-
-bool PixelDCSConditionsData::getValue(const int chanNum, float& value) const {
-  auto itr = m_channelValues.find(chanNum);
-  if (itr!=m_channelValues.end()) {
-    value = itr->second;
-    return true;
-  }
-  return false;
-}
-
-void PixelDCSConditionsData::clear() {
-  m_channelValues.clear();
-}
-
diff --git a/InnerDetector/InDetConditions/PixelConditionsData/src/PixelModuleData.cxx b/InnerDetector/InDetConditions/PixelConditionsData/src/PixelModuleData.cxx
index 3802584b839f..002284217284 100644
--- a/InnerDetector/InDetConditions/PixelConditionsData/src/PixelModuleData.cxx
+++ b/InnerDetector/InDetConditions/PixelConditionsData/src/PixelModuleData.cxx
@@ -5,6 +5,8 @@
 #include "PixelConditionsData/PixelModuleData.h"
 
 PixelModuleData::PixelModuleData():
+  m_biasVoltage(),
+  m_temperature(),
   m_moduleStatus(),
   m_chipStatus()
 {
@@ -12,6 +14,26 @@ PixelModuleData::PixelModuleData():
 
 PixelModuleData::~PixelModuleData() { }
 
+void PixelModuleData::setBiasVoltage(const int chanNum, const float value) {
+  m_biasVoltage[chanNum] = value;
+}
+
+float PixelModuleData::getBiasVoltage(const int chanNum) const {
+  auto itr = m_biasVoltage.find(chanNum);
+  if (itr!=m_biasVoltage.end()) { return itr->second; }
+  return 0;
+}
+
+void PixelModuleData::setTemperature(const int chanNum, const float value) {
+  m_temperature[chanNum] = value;
+}
+
+float PixelModuleData::getTemperature(const int chanNum) const {
+  auto itr = m_temperature.find(chanNum);
+  if (itr!=m_temperature.end()) { return itr->second; }
+  return 0;
+}
+
 // Module status
 void PixelModuleData::setModuleStatus(const int chanNum, const int value) {
   m_moduleStatus[chanNum] = value;
@@ -128,6 +150,8 @@ int PixelModuleData::getIBLOverflowToT() const {
 }
 
 void PixelModuleData::clear() {
+  m_biasVoltage.clear();
+  m_temperature.clear();
   m_moduleStatus.clear();
   m_chipStatus.clear();
 }
diff --git a/InnerDetector/InDetConditions/SiLorentzAngleSvc/src/PixelSiLorentzAngleCondAlg.cxx b/InnerDetector/InDetConditions/SiLorentzAngleSvc/src/PixelSiLorentzAngleCondAlg.cxx
index a5060adb1b82..4606c7616105 100644
--- a/InnerDetector/InDetConditions/SiLorentzAngleSvc/src/PixelSiLorentzAngleCondAlg.cxx
+++ b/InnerDetector/InDetConditions/SiLorentzAngleSvc/src/PixelSiLorentzAngleCondAlg.cxx
@@ -74,8 +74,8 @@ PixelSiLorentzAngleCondAlg::execute() {
   EventIDRange rangeBField{eidStart, eidStop};
 
   // Read Cond Handle (temperature)
-  SG::ReadCondHandle<PixelDCSConditionsData> readHandleTemp(m_readKeyTemp);
-  const PixelDCSConditionsData* readCdoTemp(*readHandleTemp);
+  SG::ReadCondHandle<PixelModuleData> readHandleTemp(m_readKeyTemp);
+  const PixelModuleData* readCdoTemp(*readHandleTemp);
   if (readCdoTemp==nullptr) {
     ATH_MSG_FATAL("Null pointer to the read conditions object");
     return StatusCode::FAILURE;
@@ -89,8 +89,8 @@ PixelSiLorentzAngleCondAlg::execute() {
   ATH_MSG_DEBUG("Input is " << readHandleTemp.fullKey() << " with the range of " << rangeTemp);
 
   // Read Cond Handle (HV)
-  SG::ReadCondHandle<PixelDCSConditionsData> readHandleHV(m_readKeyHV);
-  const PixelDCSConditionsData* readCdoHV(*readHandleHV);
+  SG::ReadCondHandle<PixelModuleData> readHandleHV(m_readKeyHV);
+  const PixelModuleData* readCdoHV(*readHandleHV);
   if (readCdoHV==nullptr) {
     ATH_MSG_FATAL("Null pointer to the read conditions object");
     return StatusCode::FAILURE;
@@ -152,15 +152,9 @@ PixelSiLorentzAngleCondAlg::execute() {
   for (PixelID::size_type hash=0; hash<wafer_hash_max; hash++) {
     const IdentifierHash elementHash = static_cast<IdentifierHash::value_type>(hash);
 
-    float tempCdo = 0.0;
-    readCdoTemp->getValue(elementHash,tempCdo);
-    double temperature = tempCdo+273.15;
-
+    double temperature = readCdoTemp->getTemperature(elementHash)+273.15;
     double deplVoltage = 0.0*CLHEP::volt;
-
-    float hvCdo = 0.0;
-    readCdoHV->getValue(elementHash,hvCdo);
-    double biasVoltage = hvCdo*CLHEP::volt;
+    double biasVoltage = readCdoHV->getBiasVoltage(elementHash)*CLHEP::volt;
 
     ATH_MSG_DEBUG("Pixel Hash = " << elementHash << " Temperature = " << temperature << " [deg K], BiasV = " << biasVoltage << " DeplV = " << deplVoltage);
 
diff --git a/InnerDetector/InDetConditions/SiLorentzAngleSvc/src/PixelSiLorentzAngleCondAlg.h b/InnerDetector/InDetConditions/SiLorentzAngleSvc/src/PixelSiLorentzAngleCondAlg.h
index 93830438787a..14c5466c5e7c 100644
--- a/InnerDetector/InDetConditions/SiLorentzAngleSvc/src/PixelSiLorentzAngleCondAlg.h
+++ b/InnerDetector/InDetConditions/SiLorentzAngleSvc/src/PixelSiLorentzAngleCondAlg.h
@@ -10,7 +10,7 @@
 #include "StoreGate/ReadCondHandleKey.h"
 #include "StoreGate/WriteCondHandleKey.h"
 #include "AthenaPoolUtilities/CondAttrListCollection.h"
-#include "PixelConditionsData/PixelDCSConditionsData.h"
+#include "PixelConditionsData/PixelModuleData.h"
 #include "GaudiKernel/ICondSvc.h"
 #include "SiPropertiesSvc/ISiPropertiesTool.h"
 
@@ -42,10 +42,10 @@ class PixelSiLorentzAngleCondAlg: public AthAlgorithm {
     ServiceHandle<ICondSvc> m_condSvc;
     ServiceHandle<MagField::IMagFieldSvc> m_magFieldSvc;
 
-    SG::ReadCondHandleKey<PixelDCSConditionsData> m_readKeyTemp{this, "ReadKeyeTemp", "PixelDCSTempCondData",         "Key of input sensor temperature conditions folder"};
-    SG::ReadCondHandleKey<PixelDCSConditionsData> m_readKeyHV  {this, "ReadKeyHV",    "PixelDCSHVCondData",           "Key of input bias voltage conditions folder"};
-
+    SG::ReadCondHandleKey<PixelModuleData> m_readKeyTemp{this, "ReadKeyeTemp", "PixelDCSTempCondData",         "Key of input sensor temperature conditions folder"};
+    SG::ReadCondHandleKey<PixelModuleData> m_readKeyHV  {this, "ReadKeyHV",    "PixelDCSHVCondData",           "Key of input bias voltage conditions folder"};
     SG::ReadCondHandleKey<CondAttrListCollection> m_readKeyBFieldSensor{this, "ReadKeyBFieldSensor", "/EXT/DCS/MAGNETS/SENSORDATA", "Key of input B-field sensor"};
+
     SG::WriteCondHandleKey<SiLorentzAngleCondData> m_writeKey{this, "WriteKey", "PixelSiLorentzAngleCondData", "Key of output SiLorentzAngleCondData"};
 
     ToolHandle<ISiPropertiesTool>   m_siPropertiesTool{this, "SiPropertiesTool", "SiPropertiesTool", "Tool to retrieve SiProperties"};
diff --git a/InnerDetector/InDetConditions/SiPropertiesSvc/src/PixelSiPropertiesCondAlg.cxx b/InnerDetector/InDetConditions/SiPropertiesSvc/src/PixelSiPropertiesCondAlg.cxx
index c8edf9a86f30..1eddd274b864 100644
--- a/InnerDetector/InDetConditions/SiPropertiesSvc/src/PixelSiPropertiesCondAlg.cxx
+++ b/InnerDetector/InDetConditions/SiPropertiesSvc/src/PixelSiPropertiesCondAlg.cxx
@@ -46,8 +46,8 @@ StatusCode PixelSiPropertiesCondAlg::execute() {
   }
 
   // Read Cond Handle (temperature)
-  SG::ReadCondHandle<PixelDCSConditionsData> readHandleTemp(m_readKeyTemp);
-  const PixelDCSConditionsData* readCdoTemp(*readHandleTemp);
+  SG::ReadCondHandle<PixelModuleData> readHandleTemp(m_readKeyTemp);
+  const PixelModuleData* readCdoTemp(*readHandleTemp);
   if (readCdoTemp==nullptr) {
     ATH_MSG_FATAL("Null pointer to the read conditions object");
     return StatusCode::FAILURE;
@@ -60,8 +60,8 @@ StatusCode PixelSiPropertiesCondAlg::execute() {
   ATH_MSG_INFO("Input is " << readHandleTemp.fullKey() << " with the range of " << rangeTemp);
 
   // Read Cond Handle (HV)
-  SG::ReadCondHandle<PixelDCSConditionsData> readHandleHV(m_readKeyHV);
-  const PixelDCSConditionsData* readCdoHV(*readHandleHV);
+  SG::ReadCondHandle<PixelModuleData> readHandleHV(m_readKeyHV);
+  const PixelModuleData* readCdoHV(*readHandleHV);
   if (readCdoHV==nullptr) {
     ATH_MSG_FATAL("Null pointer to the read conditions object");
     return StatusCode::FAILURE;
@@ -87,15 +87,9 @@ StatusCode PixelSiPropertiesCondAlg::execute() {
   for (PixelID::size_type hash=0; hash<wafer_hash_max; hash++) {
     const IdentifierHash elementHash = static_cast<IdentifierHash::value_type>(hash);
 
-    float tempCdo = 0.0;
-    readCdoTemp->getValue(elementHash,tempCdo);
-    double temperature = tempCdo+273.15;
-    
+    double temperature = readCdoTemp->getTemperature(elementHash)+273.15;
     double deplVoltage = 0.0*CLHEP::volt;
-
-    float hvCdo = 0.0;
-    readCdoHV->getValue(elementHash,hvCdo);
-    double biasVoltage = hvCdo*CLHEP::volt;
+    double biasVoltage = readCdoHV->getBiasVoltage(elementHash)*CLHEP::volt;
 
     const InDetDD::SiDetectorElement* element = m_detManager->getDetectorElement(elementHash);
     double depletionDepth = element->thickness();
diff --git a/InnerDetector/InDetConditions/SiPropertiesSvc/src/PixelSiPropertiesCondAlg.h b/InnerDetector/InDetConditions/SiPropertiesSvc/src/PixelSiPropertiesCondAlg.h
index 421b02721382..3e0be4071512 100644
--- a/InnerDetector/InDetConditions/SiPropertiesSvc/src/PixelSiPropertiesCondAlg.h
+++ b/InnerDetector/InDetConditions/SiPropertiesSvc/src/PixelSiPropertiesCondAlg.h
@@ -9,7 +9,7 @@
 
 #include "StoreGate/ReadCondHandleKey.h"
 #include "StoreGate/WriteCondHandleKey.h"
-#include "PixelConditionsData/PixelDCSConditionsData.h"
+#include "PixelConditionsData/PixelModuleData.h"
 #include "GaudiKernel/ICondSvc.h"
 
 #include "SiPropertiesSvc/SiliconPropertiesVector.h"
@@ -29,8 +29,9 @@ class PixelSiPropertiesCondAlg : public AthAlgorithm {
     const InDetDD::PixelDetectorManager * m_detManager;
     
     ServiceHandle<ICondSvc> m_condSvc;
-    SG::ReadCondHandleKey<PixelDCSConditionsData> m_readKeyTemp      {this, "ReadKeyeTemp", "PixelDCSTempCondData",         "Key of input sensor temperature conditions folder"};
-    SG::ReadCondHandleKey<PixelDCSConditionsData> m_readKeyHV        {this, "ReadKeyHV",    "PixelDCSHVCondData",           "Key of input bias voltage conditions folder"};
+
+    SG::ReadCondHandleKey<PixelModuleData> m_readKeyTemp      {this, "ReadKeyeTemp", "PixelDCSTempCondData",         "Key of input sensor temperature conditions folder"};
+    SG::ReadCondHandleKey<PixelModuleData> m_readKeyHV        {this, "ReadKeyHV",    "PixelDCSHVCondData",           "Key of input bias voltage conditions folder"};
     SG::WriteCondHandleKey<InDet::SiliconPropertiesVector> m_writeKey{this, "WriteKey",     "PixelSiliconPropertiesVector", "Key of output silicon properties conditions folder"};
 
 };
diff --git a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/PixelPrepDataToxAOD.cxx b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/PixelPrepDataToxAOD.cxx
index 58842c43177b..f643b6928825 100644
--- a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/PixelPrepDataToxAOD.cxx
+++ b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/PixelPrepDataToxAOD.cxx
@@ -229,16 +229,9 @@ StatusCode PixelPrepDataToxAOD::execute()
         AUXDATA(xprd,int,isBSError) = (int)m_pixelBSErrorsSvc->isActive(moduleHash);
         AUXDATA(xprd,int,DCSState) = SG::ReadCondHandle<PixelModuleData>(m_condDCSStateKey)->getModuleStatus(moduleHash);
 
-        float temperature = 0.0;
-        SG::ReadCondHandle<PixelDCSConditionsData>(m_readKeyTemp)->getValue(moduleHash,temperature);
-
         float deplVoltage = 0.0;
-
-        float biasVoltage = 0.0;
-        SG::ReadCondHandle<PixelDCSConditionsData>(m_readKeyHV)->getValue(moduleHash,biasVoltage);
-
-        AUXDATA(xprd,float,BiasVoltage) = biasVoltage;
-        AUXDATA(xprd,float,Temperature) = temperature;
+        AUXDATA(xprd,float,BiasVoltage) = SG::ReadCondHandle<PixelModuleData>(m_readKeyHV)->getBiasVoltage(moduleHash);
+        AUXDATA(xprd,float,Temperature) = SG::ReadCondHandle<PixelModuleData>(m_readKeyTemp)->getTemperature(moduleHash);
         AUXDATA(xprd,float,DepletionVoltage) = deplVoltage;
 
         AUXDATA(xprd,float,LorentzShift) = (float)m_lorentzAngleTool->getLorentzShift(moduleHash);
diff --git a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/PixelPrepDataToxAOD.h b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/PixelPrepDataToxAOD.h
index 044fc086808e..bb5b9b0e8613 100644
--- a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/PixelPrepDataToxAOD.h
+++ b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/PixelPrepDataToxAOD.h
@@ -20,7 +20,6 @@
 #include "xAODTracking/TrackMeasurementValidation.h"
 #include "xAODTracking/TrackMeasurementValidationContainer.h"
 
-#include "PixelConditionsData/PixelDCSConditionsData.h"
 #include "PixelConditionsData/PixelModuleData.h"
 #include "InDetCondServices/ISiLorentzAngleTool.h"
 #include "PixelConditionsServices/IPixelByteStreamErrorsSvc.h"
@@ -108,8 +107,8 @@ private:
   SG::ReadCondHandleKey<PixelModuleData> m_condDCSStateKey{this, "PixelDCSStateCondData", "PixelDCSStateCondData", "Pixel FSM state key"};
   SG::ReadCondHandleKey<PixelModuleData> m_condDCSStatusKey{this, "PixelDCSStatusCondData", "PixelDCSStatusCondData", "Pixel FSM status key"};
 
-  SG::ReadCondHandleKey<PixelDCSConditionsData> m_readKeyTemp{this, "ReadKeyeTemp", "PixelDCSTempCondData",         "Key of input sensor temperature conditions folder"};
-  SG::ReadCondHandleKey<PixelDCSConditionsData> m_readKeyHV  {this, "ReadKeyHV",    "PixelDCSHVCondData",           "Key of input bias voltage conditions folder"};
+  SG::ReadCondHandleKey<PixelModuleData> m_readKeyTemp{this, "ReadKeyeTemp", "PixelDCSTempCondData",         "Key of input sensor temperature conditions folder"};
+  SG::ReadCondHandleKey<PixelModuleData> m_readKeyHV  {this, "ReadKeyHV",    "PixelDCSHVCondData",           "Key of input bias voltage conditions folder"};
 
   ServiceHandle<IPixelByteStreamErrorsSvc> m_pixelBSErrorsSvc;
   ToolHandle<ISiLorentzAngleTool> m_lorentzAngleTool{this, "LorentzAngleTool", "SiLorentzAngleTool", "Tool to retreive Lorentz angle"};
-- 
GitLab