diff --git a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/CMakeLists.txt b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/CMakeLists.txt
index 92013e6daa384bb493069b37a5a9873127d259a9..9665ffd0f1bc86df969b27aa812839be16298fed 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/CMakeLists.txt
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/CMakeLists.txt
@@ -15,6 +15,8 @@ atlas_depends_on_subdirs(
    InnerDetector/InDetConditions/InDetByteStreamErrors
    InnerDetector/InDetConditions/InDetConditionsSummaryService
    InnerDetector/InDetConditions/PixelConditionsData
+   InnerDetector/InDetConditions/PixelConditionsTools
+   InnerDetector/InDetConditions/SiPropertiesSvc
    PRIVATE
    Control/SGTools
    Control/StoreGate
@@ -24,7 +26,6 @@ atlas_depends_on_subdirs(
    DetectorDescription/GeoModel/GeoModelUtilities
    DetectorDescription/Identifier
    DetectorDescription/DetDescrCond/DetDescrConditions
-   InnerDetector/InDetConditions/PixelConditionsTools
    InnerDetector/InDetDetDescr/InDetIdentifier
    InnerDetector/InDetDetDescr/InDetReadoutGeometry
    InnerDetector/InDetDetDescr/PixelCabling
@@ -52,7 +53,7 @@ atlas_add_component( PixelConditionsAlgorithms
    ${CLHEP_LIBRARIES} AthenaBaseComps AthenaKernel AthenaPoolUtilities
    GaudiKernel PixelConditionsData SGTools StoreGateLib CoralDB
    GeoModelUtilities Identifier InDetIdentifier InDetReadoutGeometry
-   PixelCablingLib PixelConditionsAlgorithmsLib PathResolver )
+   PixelCablingLib PixelConditionsAlgorithmsLib SiPropertiesSvcLib PathResolver )
 
 # Install files from the package:
 #atlas_install_joboptions( share/*.py )
diff --git a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelConfigCondAlg.cxx b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelConfigCondAlg.cxx
index d3972db0c13a24403186af316652fb72825f315d..68bb88de45ac9ccfb2150f33fbcc463a08e7cfb0 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelConfigCondAlg.cxx
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelConfigCondAlg.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "PixelConfigCondAlg.h"
@@ -156,8 +156,8 @@ StatusCode PixelConfigCondAlg::execute(const EventContext& ctx) const {
           int moduleStatus = std::atoi(moduleStringStatus[0].c_str());
           int chipStatus   = std::atoi(moduleStringStatus[1].c_str());
 
-          writeCdo -> setModuleStatus(moduleHash, moduleStatus);
-          writeCdo -> setChipStatus(moduleHash, chipStatus);
+          if (moduleStatus>0) { writeCdo->setModuleStatus(moduleHash, moduleStatus); }
+          if (chipStatus>0)   { writeCdo->setChipStatus(moduleHash, chipStatus); }
         }
       }
       // RUN-1, RUN-2 format
@@ -179,15 +179,11 @@ StatusCode PixelConfigCondAlg::execute(const EventContext& ctx) const {
         int moduleStatus = std::atoi(moduleStringStatus[0].c_str());
         int chipStatus   = std::atoi(moduleStringStatus[1].c_str());
 
-        writeCdo -> setModuleStatus(moduleHash, moduleStatus);
-        writeCdo -> setChipStatus(moduleHash, chipStatus);
+        if (moduleStatus>0) { writeCdo->setModuleStatus(moduleHash, moduleStatus); }
+        if (chipStatus>0)   { writeCdo->setChipStatus(moduleHash, chipStatus); }
       } 
       else {
         ATH_MSG_WARNING("Can not retrieve " << channelNumber);
-        for (int i=0; i<2048; i++) {
-          writeCdo -> setModuleStatus(i, 0);
-          writeCdo -> setChipStatus(i, 0);
-        }
       }
     }
   }
diff --git a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondHVAlg.cxx b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondHVAlg.cxx
index 53972fc9f67452b02c172899921e04c9c38d21dd..80722855be2baaff6db2e44e946694d0bbb3e401 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondHVAlg.cxx
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondHVAlg.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "PixelDCSCondHVAlg.h"
@@ -9,13 +9,20 @@
 
 PixelDCSCondHVAlg::PixelDCSCondHVAlg(const std::string& name, ISvcLocator* pSvcLocator):
   ::AthReentrantAlgorithm(name, pSvcLocator),
+  m_pixelID(nullptr),
+  m_useConditions(true),
+  m_defaultBiasVoltage(150.0),
   m_condSvc("CondSvc", name)
 {
+  declareProperty("UseConditions", m_useConditions); 
+  declareProperty("BiasVoltage",   m_defaultBiasVoltage, "Default bias voltage in Volt." ); 
 }
 
 StatusCode PixelDCSCondHVAlg::initialize() {
   ATH_MSG_DEBUG("PixelDCSCondHVAlg::initialize()");
 
+  ATH_CHECK(detStore()->retrieve(m_pixelID,"PixelID"));
+
   ATH_CHECK(m_condSvc.retrieve());
 
   ATH_CHECK(m_readKey.initialize());
@@ -30,7 +37,7 @@ StatusCode PixelDCSCondHVAlg::initialize() {
 StatusCode PixelDCSCondHVAlg::execute(const EventContext& ctx) const {
   ATH_MSG_DEBUG("PixelDCSCondHVAlg::execute()");
 
-  SG::WriteCondHandle<PixelDCSConditionsData> writeHandle(m_writeKey, ctx);
+  SG::WriteCondHandle<PixelModuleData> writeHandle(m_writeKey, ctx);
   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; 
@@ -52,25 +59,37 @@ StatusCode PixelDCSCondHVAlg::execute(const EventContext& ctx) const {
   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");
-  for (CondAttrListCollection::const_iterator attrList=readCdo->begin(); attrList!=readCdo->end(); ++attrList) {
-    const CondAttrListCollection::ChanNum &channelNumber = attrList->first;
-    const CondAttrListCollection::AttributeList &payload = attrList->second;
-    if (payload.exists(param) and not payload[param].isNull()) {
-      float val = payload[param].data<float>();
-      writeCdo -> setValue(channelNumber, val);
-    } 
-    else {
-      ATH_MSG_WARNING(param << " does not exist for ChanNum " << channelNumber);
-      writeCdo -> setValue(channelNumber, 9999.0);
+  if (m_useConditions) {
+    for (CondAttrListCollection::const_iterator attrList=readCdo->begin(); attrList!=readCdo->end(); ++attrList) {
+      const CondAttrListCollection::ChanNum &channelNumber = attrList->first;
+      const CondAttrListCollection::AttributeList &payload = attrList->second;
+      if (payload.exists(param) and not payload[param].isNull()) {
+        float val = payload[param].data<float>();
+        if (val>1000.0 || val<-1000.0) {
+          writeCdo -> setBiasVoltage((int)channelNumber, m_defaultBiasVoltage);
+        }
+        else {
+          writeCdo -> setBiasVoltage((int)channelNumber, val);
+        }
+      } 
+      else {
+        ATH_MSG_WARNING(param << " does not exist for ChanNum " << channelNumber);
+        writeCdo -> setBiasVoltage((int)channelNumber, m_defaultBiasVoltage);
+      }
+    }
+  }
+  else {
+    for (int i=0; i<(int)m_pixelID->wafer_hash_max(); i++) {
+      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 fa71953fa1115643e30bafff85952efc9fd8b319..e800ba86984107e8bf72f7d9d5f2dde51bb93e23 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondHVAlg.h
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondHVAlg.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */ 
 
 #ifndef PIXELDCSCONDHVALG
@@ -11,7 +11,9 @@
 #include "AthenaPoolUtilities/CondAttrListCollection.h"
 
 #include "StoreGate/WriteCondHandleKey.h"
-#include "PixelConditionsData/PixelDCSConditionsData.h"
+#include "PixelConditionsData/PixelModuleData.h"
+
+#include "InDetIdentifier/PixelID.h"
 
 #include "GaudiKernel/ICondSvc.h"
 #include "GaudiKernel/Property.h"
@@ -26,8 +28,13 @@ class PixelDCSCondHVAlg : public AthReentrantAlgorithm {
     virtual StatusCode finalize() override;
 
   private:
+    const PixelID* m_pixelID;
+
+    bool m_useConditions;
+    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/PixelDCSCondStateAlg.cxx b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondStateAlg.cxx
index 431ae213043f5fd267336946243346fcc76dc87e..960be695123cf34114dc1c8bf6c74bf9e9e3478f 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondStateAlg.cxx
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondStateAlg.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "PixelDCSCondStateAlg.h"
@@ -40,95 +40,109 @@ StatusCode PixelDCSCondStateAlg::execute(const EventContext& ctx) const {
   //===========
   // FSM_STATE
   //===========
-  SG::WriteCondHandle<PixelDCSConditionsData> writeHandleState(m_writeKeyState, ctx);
+  SG::WriteCondHandle<PixelModuleData> writeHandleState(m_writeKeyState, ctx);
+
   if (writeHandleState.isValid()) {
     ATH_MSG_DEBUG("CondHandle " << writeHandleState.fullKey() << " is already valid.. In theory this should not be called, but may happen if multiple concurrent events are being processed out of order.");
-  }else{
-     SG::ReadCondHandle<CondAttrListCollection> readHandleState(m_readKeyState, ctx);
-     const CondAttrListCollection* readCdoState(*readHandleState); 
-     if (readCdoState==nullptr) {
-       ATH_MSG_FATAL("Null pointer to the read conditions object (state)");
-       return StatusCode::FAILURE;
-     }
-     // Get the validitiy range (state)
-     EventIDRange rangeState;
-     if (not readHandleState.range(rangeState)) {
-       ATH_MSG_FATAL("Failed to retrieve validity range for " << readHandleState.key());
-       return StatusCode::FAILURE;
-     }
-     ATH_MSG_INFO("Size of CondAttrListCollection " << readHandleState.fullKey() << " readCdo->size()= " << readCdoState->size());
-     ATH_MSG_INFO("Range of state input is " << rangeState);
-     
-     // Construct the output Cond Object and fill it in
-     std::unique_ptr<PixelDCSConditionsData> writeCdoState(std::make_unique<PixelDCSConditionsData>());
-   
-     // Read state info
-     std::string paramState = "FSM_state";
-     for (CondAttrListCollection::const_iterator attrListState=readCdoState->begin(); attrListState!=readCdoState->end(); ++attrListState) {
-       const CondAttrListCollection::ChanNum &channelNumber = attrListState->first;
-       const CondAttrListCollection::AttributeList &payload = attrListState->second;
-       if (payload.exists(paramState.c_str()) and not payload[paramState.c_str()].isNull()) {
-         const std::string &val = payload[paramState.c_str()].data<std::string>();
-         writeCdoState -> setValue(channelNumber, val);
-       } 
-       else {
-         ATH_MSG_WARNING(paramState << " does not exist for ChanNum " << channelNumber);
-         writeCdoState -> setValue(channelNumber, "NO_DATA");
-       }
-     }
-   
-     if (writeHandleState.record(rangeState, std::move(writeCdoState)).isFailure()) {
-       ATH_MSG_FATAL("Could not record PixelDCSConditionsData " << writeHandleState.key() << " with EventRange " << rangeState << " into Conditions Store");
-       return StatusCode::FAILURE;
-     }
-     ATH_MSG_INFO("recorded new CDO " << writeHandleState.key() << " with range " << rangeState << " into Conditions Store");
   }
+  else {
+    SG::ReadCondHandle<CondAttrListCollection> readHandleState(m_readKeyState, ctx);
+    const CondAttrListCollection* readCdoState(*readHandleState); 
+    if (readCdoState==nullptr) {
+      ATH_MSG_FATAL("Null pointer to the read conditions object (state)");
+      return StatusCode::FAILURE;
+    }
+    // Get the validitiy range (state)
+    EventIDRange rangeState;
+    if (not readHandleState.range(rangeState)) {
+      ATH_MSG_FATAL("Failed to retrieve validity range for " << readHandleState.key());
+      return StatusCode::FAILURE;
+    }
+    ATH_MSG_INFO("Size of CondAttrListCollection " << readHandleState.fullKey() << " readCdo->size()= " << readCdoState->size());
+    ATH_MSG_INFO("Range of state input is " << rangeState);
+
+    // Construct the output Cond Object and fill it in
+    std::unique_ptr<PixelModuleData> writeCdoState(std::make_unique<PixelModuleData>());
+
+    // Read state info
+    std::string paramState = "FSM_state";
+    for (CondAttrListCollection::const_iterator attrListState=readCdoState->begin(); attrListState!=readCdoState->end(); ++attrListState) {
+      const CondAttrListCollection::ChanNum &channelNumber = attrListState->first;
+      const CondAttrListCollection::AttributeList &payload = attrListState->second;
+      if (payload.exists(paramState.c_str()) and not payload[paramState.c_str()].isNull()) {
+        std::string val = payload[paramState.c_str()].data<std::string>();
+        if      (val=="READY")      { writeCdoState->setModuleStatus(channelNumber,PixelModuleData::DCSModuleState::READY); }
+        else if (val=="ON")         { writeCdoState->setModuleStatus(channelNumber,PixelModuleData::DCSModuleState::ON); }
+        else if (val=="UNKNOWN")    { writeCdoState->setModuleStatus(channelNumber,PixelModuleData::DCSModuleState::UNKNOWN); }
+        else if (val=="TRANSITION") { writeCdoState->setModuleStatus(channelNumber,PixelModuleData::DCSModuleState::TRANSITION); }
+        else if (val=="UNDEFINED")  { writeCdoState->setModuleStatus(channelNumber,PixelModuleData::DCSModuleState::UNDEFINED); }
+      } 
+      else {
+        ATH_MSG_WARNING(paramState << " does not exist for ChanNum " << channelNumber);
+        writeCdoState->setModuleStatus(channelNumber,PixelModuleData::DCSModuleState::NOSTATE);
+      }
+    }
+
+    if (writeHandleState.record(rangeState, std::move(writeCdoState)).isFailure()) {
+      ATH_MSG_FATAL("Could not record PixelModuleData " << writeHandleState.key() << " with EventRange " << rangeState << " into Conditions Store");
+      return StatusCode::FAILURE;
+    }
+    ATH_MSG_INFO("recorded new CDO " << writeHandleState.key() << " with range " << rangeState << " into Conditions Store");
+  }
+
   //============
   // FSM_STATUS
   //============
-  SG::WriteCondHandle<PixelDCSConditionsData> writeHandleStatus(m_writeKeyStatus, ctx);
+  SG::WriteCondHandle<PixelModuleData> writeHandleStatus(m_writeKeyStatus, ctx);
+
   if (writeHandleStatus.isValid()) {
     ATH_MSG_DEBUG("CondHandle " << writeHandleStatus.fullKey() << " is already valid.. In theory this should not be called, but may happen if multiple concurrent events are being processed out of order.");
-  }else{
-     SG::ReadCondHandle<CondAttrListCollection> readHandleStatus(m_readKeyStatus, ctx);
-     const CondAttrListCollection* readCdoStatus(*readHandleStatus); 
-     if (readCdoStatus==nullptr) {
-       ATH_MSG_FATAL("Null pointer to the read conditions object (state)");
-       return StatusCode::FAILURE;
-     }
-     // Get the validitiy range (state)
-     EventIDRange rangeStatus;
-     if (not readHandleStatus.range(rangeStatus)) {
-       ATH_MSG_FATAL("Failed to retrieve validity range for " << readHandleStatus.key());
-       return StatusCode::FAILURE;
-     }
-     ATH_MSG_INFO("Size of CondAttrListCollection " << readHandleStatus.fullKey() << " readCdo->size()= " << readCdoStatus->size());
-     ATH_MSG_INFO("Range of state input is " << rangeStatus);
-     
-     // Construct the output Cond Object and fill it in
-     std::unique_ptr<PixelDCSConditionsData> writeCdoStatus(std::make_unique<PixelDCSConditionsData>());
-   
-     // Read state info
-     std::string paramStatus = "FSM_status";
-     for (CondAttrListCollection::const_iterator attrListStatus=readCdoStatus->begin(); attrListStatus!=readCdoStatus->end(); ++attrListStatus) {
-       const CondAttrListCollection::ChanNum &channelNumber = attrListStatus->first;
-       const CondAttrListCollection::AttributeList &payload = attrListStatus->second;
-       if (payload.exists(paramStatus.c_str()) and not payload[paramStatus.c_str()].isNull()) {
-         const std::string &val = payload[paramStatus.c_str()].data<std::string>();
-         writeCdoStatus -> setValue(channelNumber, val);
-       } 
-       else {
-         ATH_MSG_WARNING(paramStatus << " does not exist for ChanNum " << channelNumber);
-         writeCdoStatus -> setValue(channelNumber, "NO_DATA");
-       }
-     }
-   
-     if (writeHandleStatus.record(rangeStatus, std::move(writeCdoStatus)).isFailure()) {
-       ATH_MSG_FATAL("Could not record PixelDCSConditionsData " << writeHandleStatus.key() << " with EventRange " << rangeStatus << " into Conditions Store");
-       return StatusCode::FAILURE;
-     }
-     ATH_MSG_INFO("recorded new CDO " << writeHandleStatus.key() << " with range " << rangeStatus << " into Conditions Store");
   }
+  else {
+    SG::ReadCondHandle<CondAttrListCollection> readHandleStatus(m_readKeyStatus, ctx);
+    const CondAttrListCollection* readCdoStatus(*readHandleStatus); 
+    if (readCdoStatus==nullptr) {
+      ATH_MSG_FATAL("Null pointer to the read conditions object (state)");
+      return StatusCode::FAILURE;
+    }
+
+    // Get the validitiy range (state)
+    EventIDRange rangeStatus;
+    if (not readHandleStatus.range(rangeStatus)) {
+      ATH_MSG_FATAL("Failed to retrieve validity range for " << readHandleStatus.key());
+      return StatusCode::FAILURE;
+    }
+    ATH_MSG_INFO("Size of CondAttrListCollection " << readHandleStatus.fullKey() << " readCdo->size()= " << readCdoStatus->size());
+    ATH_MSG_INFO("Range of state input is " << rangeStatus);
+
+    // Construct the output Cond Object and fill it in
+    std::unique_ptr<PixelModuleData> writeCdoStatus(std::make_unique<PixelModuleData>());
+
+    // Read state info
+    std::string paramStatus = "FSM_status";
+    for (CondAttrListCollection::const_iterator attrListStatus=readCdoStatus->begin(); attrListStatus!=readCdoStatus->end(); ++attrListStatus) {
+      const CondAttrListCollection::ChanNum &channelNumber = attrListStatus->first;
+      const CondAttrListCollection::AttributeList &payload = attrListStatus->second;
+      if (payload.exists(paramStatus.c_str()) and not payload[paramStatus.c_str()].isNull()) {
+        std::string val = payload[paramStatus.c_str()].data<std::string>();
+        if      (val=="OK")      { writeCdoStatus->setModuleStatus(channelNumber,PixelModuleData::DCSModuleStatus::OK); }
+        else if (val=="WARNING") { writeCdoStatus->setModuleStatus(channelNumber,PixelModuleData::DCSModuleStatus::WARNING); }
+        else if (val=="ERROR")   { writeCdoStatus->setModuleStatus(channelNumber,PixelModuleData::DCSModuleStatus::ERROR); }
+        else if (val=="FATAL")   { writeCdoStatus->setModuleStatus(channelNumber,PixelModuleData::DCSModuleStatus::FATAL); }
+      } 
+      else {
+        ATH_MSG_WARNING(paramStatus << " does not exist for ChanNum " << channelNumber);
+        writeCdoStatus->setModuleStatus(channelNumber,PixelModuleData::DCSModuleStatus::NOSTATUS);
+      }
+    }
+
+    if (writeHandleStatus.record(rangeStatus, std::move(writeCdoStatus)).isFailure()) {
+      ATH_MSG_FATAL("Could not record PixelModuleData " << writeHandleStatus.key() << " with EventRange " << rangeStatus << " into Conditions Store");
+      return StatusCode::FAILURE;
+    }
+    ATH_MSG_INFO("recorded new CDO " << writeHandleStatus.key() << " with range " << rangeStatus << " into Conditions Store");
+  }
+
   return StatusCode::SUCCESS;
 }
 
diff --git a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondStateAlg.h b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondStateAlg.h
index 546f92d4e5b24a860694aee9873e027b8e48f18b..1e064424d26ae6c50d9ad8f31b4c16b5f94e5bd2 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondStateAlg.h
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondStateAlg.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */ 
 
 #ifndef PIXELDCSCONDSTATEALG
@@ -11,7 +11,7 @@
 #include "AthenaPoolUtilities/CondAttrListCollection.h"
 
 #include "StoreGate/WriteCondHandleKey.h"
-#include "PixelConditionsData/PixelDCSConditionsData.h"
+#include "PixelConditionsData/PixelModuleData.h"
 
 #include "GaudiKernel/ICondSvc.h"
 #include "GaudiKernel/Property.h"
@@ -28,8 +28,9 @@ class PixelDCSCondStateAlg : public AthReentrantAlgorithm {
   private:
     SG::ReadCondHandleKey<CondAttrListCollection> m_readKeyState   {this, "ReadKeyState",   "/PIXEL/DCS/FSMSTATE",    "Key of input (raw) State conditions folder"};
     SG::ReadCondHandleKey<CondAttrListCollection> m_readKeyStatus  {this, "ReadKeyStatus",  "/PIXEL/DCS/FSMSTATUS",   "Key of input (raw) Status conditions folder"};
-    SG::WriteCondHandleKey<PixelDCSConditionsData> m_writeKeyState {this, "WriteKeyState",  "PixelDCSStateCondData",  "Key of output (derived) State conditions folder"};
-    SG::WriteCondHandleKey<PixelDCSConditionsData> m_writeKeyStatus{this, "WriteKeyStatus", "PixelDCSStatusCondData", "Key of output (derived) Status conditions folder"};
+
+    SG::WriteCondHandleKey<PixelModuleData> m_writeKeyState {this, "WriteKeyState",  "PixelDCSStateCondData",  "Key of output (derived) State conditions folder"};
+    SG::WriteCondHandleKey<PixelModuleData> m_writeKeyStatus{this, "WriteKeyStatus", "PixelDCSStatusCondData", "Key of output (derived) Status conditions folder"};
 
     ServiceHandle<ICondSvc> m_condSvc;
 };
diff --git a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondTempAlg.cxx b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondTempAlg.cxx
index 46e328a200bd35cc1570dffd34aab43677339e65..e754e7dea80258a7d1d99775e26371585aff3d76 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondTempAlg.cxx
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondTempAlg.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "PixelDCSCondTempAlg.h"
@@ -10,13 +10,20 @@
 
 PixelDCSCondTempAlg::PixelDCSCondTempAlg(const std::string& name, ISvcLocator* pSvcLocator):
   ::AthAlgorithm(name, pSvcLocator),
+  m_pixelID(nullptr),
+  m_useConditions(true),
+  m_defaultTemperature(-7.0),
   m_condSvc("CondSvc", name)
 {
+  declareProperty("UseConditions", m_useConditions); 
+  declareProperty("Temperature",   m_defaultTemperature, "Default temperature in Celcius."); 
 }
 
 StatusCode PixelDCSCondTempAlg::initialize() {
   ATH_MSG_DEBUG("PixelDCSCondTempAlg::initialize()");
 
+  ATH_CHECK(detStore()->retrieve(m_pixelID,"PixelID"));
+
   ATH_CHECK(m_condSvc.retrieve());
 
   ATH_CHECK(m_readKey.initialize());
@@ -32,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.");
@@ -56,25 +63,37 @@ 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"};
-  for (CondAttrListCollection::const_iterator attrList=readCdo->begin(); attrList!=readCdo->end(); ++attrList) {
-    const CondAttrListCollection::ChanNum &channelNumber{attrList->first};
-    const CondAttrListCollection::AttributeList &payload{attrList->second};
-    if (payload.exists(param) and not payload[param].isNull()) {
-      float val = payload[param].data<float>();
-      writeCdo->setValue(channelNumber, val);
-    } 
-    else {
-      ATH_MSG_WARNING(param << " does not exist for ChanNum " << channelNumber);
-      writeCdo->setValue(channelNumber, -88.0);
+  if (m_useConditions) {
+    for (CondAttrListCollection::const_iterator attrList=readCdo->begin(); attrList!=readCdo->end(); ++attrList) {
+      CondAttrListCollection::ChanNum channelNumber{attrList->first};
+      CondAttrListCollection::AttributeList payload{attrList->second};
+      if (payload.exists(param) and not payload[param].isNull()) {
+        float val = payload[param].data<float>();
+        if (val>100.0 || val<-80.0) {
+          writeCdo->setTemperature((int)channelNumber, m_defaultTemperature);
+        }
+        else {
+          writeCdo->setTemperature((int)channelNumber, val);
+        }
+      } 
+      else {
+        ATH_MSG_WARNING(param << " does not exist for ChanNum " << channelNumber);
+        writeCdo->setTemperature((int)channelNumber, m_defaultTemperature);
+      }
+    }
+  }
+  else {
+    for (int i=0; i<(int)m_pixelID->wafer_hash_max(); i++) {
+      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 f36cbd12d46f28ad6a2c88c9e0797564e430dc2a..d8cace7ce588ecedb0fbb13e1a36607cf4fb1710 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondTempAlg.h
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelDCSCondTempAlg.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */ 
 
 #ifndef PIXELDCSCONDTEMPALG
@@ -11,7 +11,9 @@
 #include "AthenaPoolUtilities/CondAttrListCollection.h"
 
 #include "StoreGate/WriteCondHandleKey.h"
-#include "PixelConditionsData/PixelDCSConditionsData.h"
+#include "PixelConditionsData/PixelModuleData.h"
+
+#include "InDetIdentifier/PixelID.h"
 
 #include "GaudiKernel/ICondSvc.h"
 #include "GaudiKernel/Property.h"
@@ -26,8 +28,13 @@ class PixelDCSCondTempAlg : public AthAlgorithm {
     virtual StatusCode finalize() override;
 
   private:
+    const PixelID* m_pixelID;
+
+    bool m_useConditions;
+    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.cxx b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelSiliconConditionsTestAlg.cxx
index 9e1b97fc60697b395c250b94a29026d93102b946..3477d414a0dd14f7252fdb3f56a29ccac2de43de 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelSiliconConditionsTestAlg.cxx
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelSiliconConditionsTestAlg.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "PixelSiliconConditionsTestAlg.h"
@@ -16,9 +16,11 @@ StatusCode PixelSiliconConditionsTestAlg::initialize()
 {  
   ATH_MSG_INFO("Calling initialize");
 
-  ATH_CHECK(m_siliconTool.retrieve());
-
+// OLD  ATH_CHECK(m_siliconTool.retrieve());
+  ATH_CHECK(m_readKeyTemp.initialize());
+  ATH_CHECK(m_readKeyHV.initialize());
   ATH_CHECK(m_moduleDataKey.initialize());
+  ATH_CHECK(m_lorentzAngleTool.retrieve());
 
   return StatusCode::SUCCESS;
 }
@@ -27,32 +29,23 @@ StatusCode PixelSiliconConditionsTestAlg::execute(){
   //This method is only used to test the summary service, and only used within this package,
   // so the INFO level messages have no impact on performance of these services when used by clients
 
-  for (int i=0; i<2048; i++) {
-    std::cout << "STSTST Hash ID=" << IdentifierHash(i) << " Bias Voltage=" << m_siliconTool->biasVoltage(IdentifierHash(i)) << " Temperature=" << m_siliconTool->temperature(IdentifierHash(i)) << " Depletion V=" << m_siliconTool->depletionVoltage(IdentifierHash(i)) << " FSM state=" << m_siliconTool->PixelFSMState(IdentifierHash(i)) << " FSM status=" << m_siliconTool->PixelFSMStatus(IdentifierHash(i)) << std::endl;
-  } 
-
-  for (int i=0; i<2048; i++) {
-    std::cout << "STSTST Hash ID=" << IdentifierHash(i)
-              << " ModuleStatus=" << SG::ReadCondHandle<PixelModuleData>(m_moduleDataKey)->getModuleStatus(IdentifierHash(i))
-              << " ChipStatus="   << SG::ReadCondHandle<PixelModuleData>(m_moduleDataKey)->getChipStatus(IdentifierHash(i))
-              << std::endl;
-  }
+  SG::ReadCondHandle<PixelModuleData> hv(m_readKeyHV);
+  SG::ReadCondHandle<PixelModuleData> temp(m_readKeyTemp);
+  SG::ReadCondHandle<PixelModuleData> deadmap(m_moduleDataKey);
 
-//  for (int i=0; i<2048; i++) {
-//    std::cout << "Hash ID=" << IdentifierHash(i) << " Bias Voltage=" << m_siliconTool->biasVoltage(IdentifierHash(i)) << " Temperature=" << m_siliconTool->temperature(IdentifierHash(i)) << " Depletion V=" << m_siliconTool->depletionVoltage(IdentifierHash(i)) << " FSM state=" << m_siliconTool->PixelFSMState(IdentifierHash(i)) << " FSM status=" << m_siliconTool->PixelFSMStatus(IdentifierHash(i)) << " ModuleStatus=" << m_deadmapTool->ModuleStatus(IdentifierHash(i)) << " ChipStatus=" << m_deadmapTool->ChipStatus(IdentifierHash(i)) << " TDAQModuleStatus=" << m_tdaqTool->ModuleStatus(IdentifierHash(i)) << std::endl;
-//  }
+  // Check HV
+  for (int i=0; i<2048; i++) { std::cout << "PIXEL HV : " << i << " " << hv->getBiasVoltage(i) << std::endl; }
+// OLD  for (int i=0; i<2048; i++) { std::cout << "PIXEL HV : " << i << " " << m_siliconTool->biasVoltage(IdentifierHash(i)) << std::endl; }
 
-//  for (int i=0; i<2048; i++) {
-//    std::cout << "Hash ID=" << IdentifierHash(i) 
-//              << " ModuleStatus=" << SG::ReadCondHandle<PixelModuleData>(m_condKey)->getModuleStatus(IdentifierHash(i))
-//              << " ChipStatus=" << SG::ReadCondHandle<PixelModuleData>(m_condKey)->getChipStatus(IdentifierHash(i))
-//              << " TDAQModuleStatus=" << SG::ReadCondHandle<PixelModuleData>(m_condKey)->getTDAQModuleStatus(IdentifierHash(i))
-//              << std::endl;
-//  }
+  // Check temperature
+  for (int i=0; i<2048; i++) { std::cout << "PIXEL Temperature : " << i << " " << temp->getTemperature(i) << std::endl; }
+// OLD  for (int i=0; i<2048; i++) { std::cout << "PIXEL Temperature : " << i << " " << m_siliconTool->temperature(IdentifierHash(i)) << std::endl; }
 
+  // Check deadmap
+  for (int i=0; i<2048; i++) { std::cout << "PIXEL Deadmap : " << i << " " << deadmap->getModuleStatus(i) << std::endl; }
+// OLD  for (int i=0; i<2048; i++) { std::cout << "PIXEL Deadmap : " << i << " " << deadmap->getModuleStatus(IdentifierHash(i)) << std::endl; }
 
-  int hitDiscConfig = SG::ReadCondHandle<PixelModuleData>(m_moduleDataKey)->getIBLHitDiscConfig();
-  std::cout << "STSTST PixelModuleData " << hitDiscConfig << std::endl;
+  for (int i=0; i<2048; i++) { std::cout << "PIXEL LorentzAngle : " << i << " " << m_lorentzAngleTool->getLorentzShift(IdentifierHash(i)) << std::endl; }
 
   return StatusCode::SUCCESS;
 }
diff --git a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelSiliconConditionsTestAlg.h b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelSiliconConditionsTestAlg.h
index e611035f889d5bf8983558c824ac4bce390d1033..2d53262b3743c37ef377ae2ec96efffdd3c392e1 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelSiliconConditionsTestAlg.h
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelSiliconConditionsTestAlg.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef PIXELSILICONcONDITIONSTESTALG_H
@@ -9,10 +9,11 @@
 #include "AthenaBaseComps/AthAlgorithm.h"
 #include "GaudiKernel/ToolHandle.h"
 
-#include "PixelConditionsTools/IPixelDCSConditionsTool.h"
-
 #include "PixelConditionsData/PixelModuleData.h"
 #include "StoreGate/ReadCondHandleKey.h"
+#include "InDetCondTools/ISiLorentzAngleTool.h"
+
+// OLD #include "PixelConditionsTools/IPixelDCSConditionsTool.h"
 
 class PixelSiliconConditionsTestAlg : public AthAlgorithm {
   public:
@@ -24,9 +25,11 @@ class PixelSiliconConditionsTestAlg : public AthAlgorithm {
     virtual StatusCode finalize() override;
 
   private:
-    ToolHandle<IPixelDCSConditionsTool> m_siliconTool{this, "PixelDCSConditionsTool", "PixelDCSConditionsTool", "Tool to retrieve Pixel information"};
+// OLD    ToolHandle<IPixelDCSConditionsTool>     m_siliconTool{this, "PixelDCSConditionsTool", "PixelDCSConditionsTool", "Tool to retrieve Pixel information"};
+    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"};
-
+    ToolHandle<ISiLorentzAngleTool> m_lorentzAngleTool{this, "LorentzAngleTool", "PixelLorentzAngleTool", "Tool to retreive Lorentz angle"};
 };
 
 #endif
diff --git a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelTDAQCondAlg.cxx b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelTDAQCondAlg.cxx
index 62b59832e2454d173e5218c418a20efb7bc6656d..f6343a0404dc9ff98d7e3ec611141b61e3562206 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelTDAQCondAlg.cxx
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelTDAQCondAlg.cxx
@@ -1,15 +1,15 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "PixelTDAQCondAlg.h"
-#include "Identifier/IdentifierHash.h"
 #include "GaudiKernel/EventIDRange.h"
 #include <memory>
 #include <sstream>
 
 PixelTDAQCondAlg::PixelTDAQCondAlg(const std::string& name, ISvcLocator* pSvcLocator):
   ::AthReentrantAlgorithm(name, pSvcLocator),
+  m_pixelID(nullptr),
   m_condSvc("CondSvc", name)
 {
 }
@@ -17,6 +17,8 @@ PixelTDAQCondAlg::PixelTDAQCondAlg(const std::string& name, ISvcLocator* pSvcLoc
 StatusCode PixelTDAQCondAlg::initialize() {
   ATH_MSG_INFO("PixelTDAQCondAlg::initialize()");
 
+  ATH_CHECK(detStore()->retrieve(m_pixelID,"PixelID"));
+
   ATH_CHECK(m_condSvc.retrieve());
 
   ATH_CHECK(m_readKey.initialize());
@@ -56,9 +58,16 @@ StatusCode PixelTDAQCondAlg::execute(const EventContext& ctx) const {
   std::unique_ptr<PixelModuleData> writeCdo(std::make_unique<PixelModuleData>());
 
   // Read dead map info
+  std::vector<int> checkActive;
   for (CondAttrListCollection::const_iterator attrList=readCdo->begin(); attrList!=readCdo->end(); ++attrList) {
-    const CondAttrListCollection::ChanNum &channelNumber = attrList->first;
-    writeCdo -> setTDAQModuleStatus(channelNumber-1, 0);
+    CondAttrListCollection::ChanNum channelNumber = attrList->first;
+    CondAttrListCollection::AttributeList payload = attrList->second;
+    checkActive.push_back((int)channelNumber-1);
+  }
+  
+  for (int i=0; i<(int)m_pixelID->wafer_hash_max(); i++) {
+    auto itr = std::find(checkActive.begin(),checkActive.end(),i);
+    if ((size_t)std::distance(checkActive.begin(),itr)==checkActive.size()) { writeCdo->setModuleStatus(i,1); }
   }
 
   if (writeHandle.record(rangeW, std::move(writeCdo)).isFailure()) {
diff --git a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelTDAQCondAlg.h b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelTDAQCondAlg.h
index 02722b898104cd2a38845d757f8d27d022863bec..a86395e104cf949fbb24cfa1f5037e204143f384 100644
--- a/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelTDAQCondAlg.h
+++ b/InnerDetector/InDetConditions/PixelConditionsAlgorithms/src/PixelTDAQCondAlg.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */ 
 
 #ifndef PIXELTDAQCONDALG
@@ -13,6 +13,8 @@
 #include "StoreGate/WriteCondHandleKey.h"
 #include "PixelConditionsData/PixelModuleData.h"
 
+#include "InDetIdentifier/PixelID.h"
+
 #include "GaudiKernel/ICondSvc.h"
 #include "GaudiKernel/Property.h"
 
@@ -26,8 +28,10 @@ class PixelTDAQCondAlg : public AthReentrantAlgorithm {
     virtual StatusCode finalize() override;
 
   private:
+    const PixelID* m_pixelID;
+
     SG::ReadCondHandleKey<CondAttrListCollection> m_readKey{this, "ReadKey", "/TDAQ/Resources/ATLAS/PIXEL/Modules", "Input key of TDAQ deadmap conditions folder"};
-    SG::WriteCondHandleKey<PixelModuleData> m_writeKey{this, "WriteKey", "PixelModuleData", "Output key of pixel module data"};
+    SG::WriteCondHandleKey<PixelModuleData> m_writeKey{this, "WriteKey", "PixelTDAQCondData", "Output key of pixel module data"};
 
     ServiceHandle<ICondSvc> m_condSvc;
 };
diff --git a/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelDCSConditionsData.h b/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelDCSConditionsData.h
deleted file mode 100644
index e8781680debc5d17f638577703cf6d0520fc5ae8..0000000000000000000000000000000000000000
--- a/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelDCSConditionsData.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef PIXELDCSCONDDATA_H
-#define PIXELDCSCONDDATA_H
-
-#include "AthenaKernel/CLASS_DEF.h"
-#include "AthenaPoolUtilities/CondAttrListCollection.h"
-#include <map>
-
-class PixelDCSConditionsData {
-  public:
-    PixelDCSConditionsData();
-    virtual ~PixelDCSConditionsData();
-
-    void setValue(const CondAttrListCollection::ChanNum& chanNum, const float value);
-    void setValue(const CondAttrListCollection::ChanNum& chanNum, const std::string value);
-    bool getValue(const CondAttrListCollection::ChanNum& chanNum, float& value) const;
-    bool getValue(const CondAttrListCollection::ChanNum& chanNum, std::string& value) const;
-    void clear();
-
-  private:
-    typedef std::map<CondAttrListCollection::ChanNum, float> FloatConditions;
-    typedef std::map<CondAttrListCollection::ChanNum, std::string> StringConditions;
-    FloatConditions  m_channelValues;
-    StringConditions m_channelStrings;
-};
-
-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 254b4c26df06957f67d3b2601f39d6d44a55f1d0..1ace713919d3a82e4f01fa144b4016792333d8f9 100644
--- a/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelModuleData.h
+++ b/InnerDetector/InDetConditions/PixelConditionsData/PixelConditionsData/PixelModuleData.h
@@ -1,12 +1,11 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef PIXELDEADMAPCONDDATA_H
 #define PIXELDEADMAPCONDDATA_H
 
 #include "AthenaKernel/CLASS_DEF.h"
-#include "AthenaPoolUtilities/CondAttrListCollection.h"
 #include <map>
 
 class PixelModuleData {
@@ -14,14 +13,20 @@ class PixelModuleData {
     PixelModuleData();
     virtual ~PixelModuleData();
 
-    void setModuleStatus(const CondAttrListCollection::ChanNum& chanNum, const int value);
-    int getModuleStatus(const CondAttrListCollection::ChanNum& chanNum) const;
+    void setBiasVoltage(const int chanNum, const float value);
+    float getBiasVoltage(const int chanNum) const;
 
-    void setChipStatus(const CondAttrListCollection::ChanNum& chanNum, const int value);
-    int getChipStatus(const CondAttrListCollection::ChanNum& chanNum) const;
+    void setTemperature(const int chanNum, const float value);
+    float getTemperature(const int chanNum) const;
 
-    void setTDAQModuleStatus(const CondAttrListCollection::ChanNum& chanNum, const int value);
-    int getTDAQModuleStatus(const CondAttrListCollection::ChanNum& chanNum) const;
+    void setModuleStatus(const int chanNum, const int value);
+    int getModuleStatus(const int chanNum) const;
+
+    void setChipStatus(const int chanNum, const int value);
+    int getChipStatus(const int chanNum) const;
+
+    enum DCSModuleStatus{OK,WARNING,ERROR,FATAL,NOSTATUS};
+    enum DCSModuleState{READY,ON,UNKNOWN,TRANSITION,UNDEFINED,NOSTATE};
 
     void setBarrelAnalogThreshold(std::vector<int> BarrelAnalogThreshold);
     void setEndcapAnalogThreshold(std::vector<int> EndcapAnalogThreshold);
@@ -65,10 +70,12 @@ class PixelModuleData {
     void clear();
 
   private:
-    typedef std::map<CondAttrListCollection::ChanNum, int> IntConditions;
+    typedef std::map<int, float> FloatConditions;
+    typedef std::map<int, int> IntConditions;
+    FloatConditions  m_biasVoltage;
+    FloatConditions  m_temperature;
     IntConditions  m_moduleStatus;
     IntConditions  m_chipStatus;
-    IntConditions  m_tdaqStatus;
 
     std::vector<int> m_BarrelAnalogThreshold;
     std::vector<int> m_EndcapAnalogThreshold;
diff --git a/InnerDetector/InDetConditions/PixelConditionsData/src/PixelDCSConditionsData.cxx b/InnerDetector/InDetConditions/PixelConditionsData/src/PixelDCSConditionsData.cxx
deleted file mode 100644
index af7f59903dfd9e3c29f919e758b052601d7d6d71..0000000000000000000000000000000000000000
--- a/InnerDetector/InDetConditions/PixelConditionsData/src/PixelDCSConditionsData.cxx
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
-*/
-
-#include "PixelConditionsData/PixelDCSConditionsData.h"
-
-PixelDCSConditionsData::PixelDCSConditionsData():
-  m_channelValues()
-{
-}
-
-PixelDCSConditionsData::~PixelDCSConditionsData() { }
-
-void PixelDCSConditionsData::setValue(const CondAttrListCollection::ChanNum& chanNum, const float value) {
-  m_channelValues[chanNum] = value;
-}
-
-void PixelDCSConditionsData::setValue(const CondAttrListCollection::ChanNum& chanNum, const std::string value) {
-  m_channelStrings[chanNum] = value;
-}
-
-bool PixelDCSConditionsData::getValue(const CondAttrListCollection::ChanNum& chanNum, float& value) const {
-  auto itr = m_channelValues.find(chanNum);
-  if (itr!=m_channelValues.end()) {
-    value = itr->second;
-    return true;
-  }
-  return false;
-}
-
-bool PixelDCSConditionsData::getValue(const CondAttrListCollection::ChanNum& chanNum, std::string& value) const {
-  auto itr = m_channelStrings.find(chanNum);
-  if (itr!=m_channelStrings.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 ff19da7355369bea198c9dbdd1ead8d750c80d4e..57d8e7a77e2e5f0b724262fcf25f772681aadf21 100644
--- a/InnerDetector/InDetConditions/PixelConditionsData/src/PixelModuleData.cxx
+++ b/InnerDetector/InDetConditions/PixelConditionsData/src/PixelModuleData.cxx
@@ -1,51 +1,61 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "PixelConditionsData/PixelModuleData.h"
 
 PixelModuleData::PixelModuleData():
+  m_biasVoltage(),
+  m_temperature(),
   m_moduleStatus(),
-  m_chipStatus(),
-  m_tdaqStatus()
+  m_chipStatus()
 {
 }
 
 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 -7.0; // this is temporaly fix
+}
+
 // Module status
-void PixelModuleData::setModuleStatus(const CondAttrListCollection::ChanNum& chanNum, const int value) {
+void PixelModuleData::setModuleStatus(const int chanNum, const int value) {
   m_moduleStatus[chanNum] = value;
 }
 
-int PixelModuleData::getModuleStatus(const CondAttrListCollection::ChanNum& chanNum) const {
+int PixelModuleData::getModuleStatus(const int chanNum) const {
   auto itr = m_moduleStatus.find(chanNum);
   if (itr!=m_moduleStatus.end()) { return itr->second; }
   return 0;
 }
 
 // Chip (FE) status
-void PixelModuleData::setChipStatus(const CondAttrListCollection::ChanNum& chanNum, const int value) {
+void PixelModuleData::setChipStatus(const int chanNum, const int value) {
   m_chipStatus[chanNum] = value;
 }
 
-int PixelModuleData::getChipStatus(const CondAttrListCollection::ChanNum& chanNum) const {
+int PixelModuleData::getChipStatus(const int chanNum) const {
   auto itr = m_chipStatus.find(chanNum);
   if (itr!=m_chipStatus.end()) { return itr->second; }
   return 0;
 }
 
-// TDAQ module status
-void PixelModuleData::setTDAQModuleStatus(const CondAttrListCollection::ChanNum& chanNum, const int value) {
-  m_tdaqStatus[chanNum] = value;
-}
-
-int PixelModuleData::getTDAQModuleStatus(const CondAttrListCollection::ChanNum& chanNum) const {
-  auto itr = m_tdaqStatus.find(chanNum);
-  if (itr!=m_tdaqStatus.end()) { return itr->second; }
-  return 1;
-}
-
 void PixelModuleData::setBarrelAnalogThreshold(std::vector<int> BarrelAnalogThreshold) { m_BarrelAnalogThreshold = BarrelAnalogThreshold; }
 void PixelModuleData::setEndcapAnalogThreshold(std::vector<int> EndcapAnalogThreshold) { m_EndcapAnalogThreshold = EndcapAnalogThreshold; }
 void PixelModuleData::setDBMAnalogThreshold(std::vector<int>    DBMAnalogThreshold)    { m_DBMAnalogThreshold = DBMAnalogThreshold; }
@@ -140,8 +150,9 @@ int PixelModuleData::getIBLOverflowToT() const {
 }
 
 void PixelModuleData::clear() {
+  m_biasVoltage.clear();
+  m_temperature.clear();
   m_moduleStatus.clear();
   m_chipStatus.clear();
-  m_tdaqStatus.clear();
 }
 
diff --git a/InnerDetector/InDetConditions/PixelConditionsTools/PixelConditionsTools/IPixelDCSConditionsTool.h b/InnerDetector/InDetConditions/PixelConditionsTools/PixelConditionsTools/IPixelDCSConditionsTool.h
deleted file mode 100644
index e619f657e76a37d23b6bd7124c85aac23e9975da..0000000000000000000000000000000000000000
--- a/InnerDetector/InDetConditions/PixelConditionsTools/PixelConditionsTools/IPixelDCSConditionsTool.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef IPIXELDCSCONDITIONSTOOL_H
-#define IPIXELDCSCONDITIONSTOOL_H
-
-#include "GaudiKernel/IAlgTool.h"
-#include "InDetConditionsSummaryService/ISiliconConditionsTool.h"
-
-#include "Identifier/Identifier.h"
-#include "Identifier/IdentifierHash.h"
-
-class IPixelDCSConditionsTool: virtual public ISiliconConditionsTool {
-  public:
-    virtual ~IPixelDCSConditionsTool() = default;
-
-    DeclareInterfaceID(IPixelDCSConditionsTool, 1, 0);
-
-    virtual std::string PixelFSMState(const Identifier& elementId) const = 0;
-    virtual std::string PixelFSMState(const IdentifierHash& elementHash) const = 0;
-
-    virtual std::string PixelFSMStatus(const Identifier& elementId) const = 0;
-    virtual std::string PixelFSMStatus(const IdentifierHash& elementHash) const = 0;
-
-}; 
-
-#endif // IPIXELDCSCONDITIONSTOOL_H
diff --git a/InnerDetector/InDetConditions/PixelConditionsTools/python/EnterCalibrationToDb.py b/InnerDetector/InDetConditions/PixelConditionsTools/python/EnterCalibrationToDb.py
deleted file mode 100755
index 325b631ae41adb7fb022ea3281fc445d387c3ded..0000000000000000000000000000000000000000
--- a/InnerDetector/InDetConditions/PixelConditionsTools/python/EnterCalibrationToDb.py
+++ /dev/null
@@ -1,104 +0,0 @@
-#!/usr/bin/python
-
-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-# Shaun Roe, 4 February 2015
-
-from IBLTotParser import *
-from PyCool import cool
-import sys, os
-
-def upload(connection, mydata, folderPath):
-  """Upload a dictionary of channelNum:string4kData to a local sqlite db
-  Shaun Roe February 9 2015
-  """
-  db=None
-  creation=False
-  dbSvc=cool.DatabaseSvcFactory.databaseService()
-  try:
-    db=dbSvc.openDatabase(connection,False)
-  except Exception,e:
-    print 'Problem opening database',e
-    print '..will try to create one instead'
-    try:
-      db=dbSvc.createDatabase(connection)
-      creation=True
-    except Exception,e:
-      print 'Problem creating database',e
-      return -1
-      
-  print "Opened database",connection
-  #all the data are simple strings, type String4k
-  dataType=cool.StorageType.String4k
-  # setup a folder payload specification
-  spec=cool.RecordSpecification()
-  spec.extend("data",cool.StorageType.String4k)
-  desc='<timeStamp>run-lumi</timeStamp><addrHeader><address_header service_type="71" clid="1238547719" /></addrHeader><typeName>CondAttrListCollection</typeName>'
-  myfolder=None
-  if creation: 
-    myfolder=db.createFolder(folderPath,spec,desc,cool.FolderVersioning.MULTI_VERSION,True)
-  else:
-    myfolder=db.getFolder(folderPath)
-  #iovMin=cool.ValidityKeyMin
-  iovMin=(222222 << 32)
-  iovMax=cool.ValidityKeyMax
-  uploadCount=0
-  try:
-    for hashId in mydata:
-      payload=cool.Record(spec)
-      payload['data'] = mydata[hashId]
-      print mydata[hashId]
-      channelID = cool.ChannelId(hashId)
-      myfolder.storeObject(iovMin,iovMax,payload,channelID)
-      uploadCount+=1
-  except Exception,e:
-    print "Problem uploading ", e
-    db.closeDatabase()
-    return 0
-  db.closeDatabase()
-  return uploadCount
-  
-
-def main():
-  """'main()' command to make an SQLite db from a pixel calibration text file.
-  The calibration file format is as sent by
-  Tayfun Ince, but the identifier format may be either the svn format one (link below) or
-  that prepared by Geraldine Conti. Different parsers are supplied in the IBLTotParser
-  module to cope with either format. 
-  Note that as of Feb 13 2015, this has *only* been tested on a calibration file 
-  containing IBL data, not a full calibration set.
-  The data were uploaded using the following procedure:
-  **FIRST set up an Athena release **
-  To generate a consistent 2048-module set, I downloaded a known tag to a local 
-  sqlite file:
-  AtlCoolCopy.exe ATLAS_COOLOFL_PIXEL/OFLP200 sqlite://;schema=mycool.db;dbname=OFLP200 -tag PixCalib-SIM-RUN12-000-01 -folder /PIXEL/PixCalib -run 222222 -ot HEAD -create 
-  This was checked with an sqlite browser.
-  Run this command with
-  python EnterCalibrationToDb.py
-  and then I checked the sqlite file again.
-  The final upload to the central db was performed with:
-  AtlCoolCopy.exe "sqlite://;schema=mycool.db;dbname=OFLP200" "oracle://ATLAS_COOLWRITE;schema=ATLAS_COOLOFL_PIXEL;dbname=OFLP200;user=<uname>;password=<password>" -folder /PIXEL/PixCalib -tag HEAD -ot PixCalib-SIM-RUN12-IBL-02
-  ..and checked with coolcherrypy:
-  http://coolcherrypy.cern.ch:8080/cooldb/ATLAS_COOLPROD/ATLAS_COOLOFL_PIXEL/OFLP200/PIXEL/PixCalib/timespan/954444812386304-954444812386306/tag/PixCalib-SIM-RUN12-IBL-02/channels/420
-  Fares checked this and created two new tags:
-  PixCalib-SIM-RUN12-000-02
-  PixCalib-DATA-RUN2-IBL-00
-  """
-  connection="sqlite://;schema=mycool.db;dbname=OFLP200"
-  calibrationFile="IBLCalibrationData.txt" #Calibration file from Tayfun Ince
-  hashIdFile="gcontiIdTable.txt" #Identifier file provided by Geraldine Conti
-  svnFilename="table_Run2.txt" # ...or... the in-svn identifier file from Fares Djama
-  # https://svnweb.cern.ch/trac/atlasoff/browser/InnerDetector/InDetCalibAlgs/PixelCalibAlgs/trunk/share/table_Run2.txt
-  mydata=parseFiles(calibrationFile,svnFilename)
-  #mydata=IBLTot(calibrationFile, hashIdFile)
-  folderPath="/PIXEL/PixCalib"
-  numUploads= upload(connection, mydata, folderPath)
-  print "Number of entries: ",numUploads
-  if numUploads==0:
-    return -1
-  return 0
-
-if __name__=="__main__":
-  sys.exit(main())
-  
-  
-  
diff --git a/InnerDetector/InDetConditions/PixelConditionsTools/python/IBLTotParser.py b/InnerDetector/InDetConditions/PixelConditionsTools/python/IBLTotParser.py
deleted file mode 100644
index 6e79c7b52144bc07f9597392b69e05d29af44995..0000000000000000000000000000000000000000
--- a/InnerDetector/InDetConditions/PixelConditionsTools/python/IBLTotParser.py
+++ /dev/null
@@ -1,2 +0,0 @@
-#!/usr/bin/python
# Geraldine Conti 3 February 2015

from collections import defaultdict
import sys,re
#
def IBLTot(calibrationFile, hashIdFile):
  """ Read and parse calibration data to return a dictionary of hashId: calibration_string
    The Calibration file has lines of format(note modules may have 1, 2 or 16 line entries):
    LI_S01_A_M1_A1
    I0 2559 71 115 2559 2550 63 130 2550 2550 63 130 2550 20.841 -889.378 16504.8 20.841 -889.378 16504.8 0.263637 2.34152e-05
    I1 2560 65 112 2560 2566 69 129 2566 2566 69 129 2566 19.8282 -1305.08 13770.5 19.8282 -1305.08 13770.5 0.143171 2.94417e-05
    The HashId correspondence is in a file with lines of format:
    20480 LI_S15_C_34_M3_C1_2 -4 0 0 0  
    and should have 2048 entries, the line number (from zero) being the hashId
    Geraldine Conti 3 February 2015
  """
  f = open(calibrationFile,'r')
  mylongstr = ""
  mydict = {}
  HashID = 10000
  parsed = {}
  for line in iter(f):
      data=line.strip().split(" ")
      # FIND LINES WITH MODULES IDs
      if(data[0].find('_')>0):
          if(not HashID==10000):
              key = HashID
              mydict[key]=mylongstr
          mylongstr = ""
          f2 = open(hashIdFile,'r')
          # LOOP ON ID FILE ########################
          HashID = 0      
          for line2 in iter(f2):
              data2=line2.strip().split(" ")
              if(data2[1]==data[0]):
                  myinfo = str(data2[2]+','+data2[3]+','+data2[4]+','+data2[5])
                  mylongstr += ''.join(myinfo)+' \n'
                  break
              HashID += 1
          f2.close()
          # END LOOP ON ID FILE ###################
          if(HashID==2048):
              print 'PROBLEM WITH:',data[0]
      if(data[0].find('_')<1):
          mylongstr += ' '.join(data)+' \n'
  #
  # TO FILL IN THE LAST ENTRY
  key = HashID
  mydict[key]=mylongstr
  f.close()
  return mydict

def marryCalibrationToHash(idDict, calDict):
  """ Join an idDictionary of hash: (identifier, positionIndices) to 
  a calibration dictionary of Identifier: CalibrationString to get the result
  hash: ModifiedCalibrationString
  Shaun Roe 9 Feb 2015
  """
  result=dict()
  hashIndex=0
  indicesIndex=1
  for humanReadableId in calDict:
    idTuple=idDict[humanReadableId]
    result[idTuple[hashIndex]] = idTuple[indicesIndex]+"\n"+calDict[humanReadableId]
  return result

def readTotCalibrationData(fname):
  """Open a calibration file and read data to dictionary of Identifier:CalibrationString
  Shaun Roe 9 Feb 2015
  """
  with open(fname,'rU') as fp:
    return dict([i for i in generateTotCalibrationData(fp)])

def generateTotCalibrationData(fp):
  """Generator to give key,value pairs of Identifier, CalibrationString
  Shaun Roe 9 Feb 2015
  """
  k,v="",""   #key, value pairs
  for line in fp:
    if ("_" in line):
      if v !="":
        yield k,v
      k=mapCalibId2SvnTableId(line.rstrip())
      v=""
    else:
      v+=line
  yield k,v
    
def readGeraldinesIdTable(fname):
  """Read an id correspondence table with lines of format 
  20480 LI_S15_C_34_M3_C1_2 -4 0 0 0 
  Shaun Roe 9 February 2015
  """
  try:
    lines = dict([idDictEntry(i,line) for i,line in enumerate (open(fname))])
  except ValueError as e:
    print "An error occurred: ",e.args
    lines = None
  return lines
  
def readSvnIdTable(fname):
  """Read an id correspondence table with lines of format 
  PixMapOverlayWr...   INFO  1967     56315904  [2.1.2.1.27.0.0.0] D2A-B03-S2-M5 
  Shaun Roe 9 February 2015
  """
  dataSignature = "PixMapOverlayWr...   INFO  "
  try:
    lines = dict([svnIdDictEntry(line) for line in open(fname) if dataSignature in line])
  except ValueError as e:
    print "An error occurred: ",e.args
    lines = None
  return lines
  
def svnIdDictEntry(line):
  """Form a dictionary entry from lines like
  PixMapOverlayWr...   INFO  1967     56315904  [2.1.2.1.27.0.0.0] D2A-B03-S2-M5
  PixMapOverlayWr...   INFO     0        20480  [2.1.-4.0.0.0.0.0] LI_S15_C_34_M3_C1_2   
  PixMapOverlayWr...   INFO   149     27873280  [2.1.-2.2.41.0.0.0]D3C-B04-S2-M1  
  Shaun Roe 9 February 2015
  """ 
  r="^PixMapOverlayWr\.\.\.\s+INFO\s+([0-9]+)\s+[0-9]+\s+\[2\.1\.([-0-9.]+)\.0\.0]\s*([-A-Z0-9_]+)\s*$"
  parsed=re.match(r, line)
  if (not parsed):
    raise ValueError("This string could not be parsed",textLine)
  return parsed.group(3), (int(parsed.group(1)), parsed.group(2).replace(".",","))
    
def idDictEntry(hash, textLine):
  """ Form an id dictionary entry from lines of format
  48504832 L2_B19_S02_M6C 0 3 36 -6
  Shaun Roe 9 February 2015
  """
  if hashOutOfRange(hash):
    raise ValueError("Hash out of range",hash)
  regexString="^([0-9]+)\s([A-Z0-9_]+)\s([0-9-]+\s[0-9-]+\s[0-9-]+\s[0-9-]+)\s*$"
  parsed = re.match(regexString, textLine)
  if (not parsed):
    raise ValueError("This string could not be parsed",textLine)
  return parsed.group(2), (hash, parsed.group(3).replace(" ",","))
  
def hashOutOfRange(hashId):
  #Check if the hash is in the valid range
  return (hashId<0) or (hashId>2047)
  
def parseFiles(calibFilename,idFilename,idFileParser=readSvnIdTable):
  """Parse a calibration data file and an id file into a dictionary
  of hash: calibrationString. NOTE: The parser chosen must be appropriate
  to the id file format
  Shaun Roe 9 February 2015
  """
  if idFileParser == IBLTot:
    return idFileParser(calibFilename,idFilename)
  idDict=idFileParser(idFilename)
  calDict=readTotCalibrationData(calibFilename)
  return marryCalibrationToHash(idDict, calDict)
  

def mapCalibId2SvnTableId(calibId):
  """Mapping from pixel calibration to svn id table nomenclatures"""
  component = calibId.split("_")
  layerDisk=component[0]
  if ("L0" in layerDisk) or ("L1" in layerDisk) or ("L2" in layerDisk):
    component[2]=component[2][0] + "0" + component[2][1]
    del component[3]
    return "-".join(component)
  if ("D" in layerDisk):
    return "-".join(component)
  return calibId
  
def main():
  idFilename="table_summaryNEW.txt"
  calibFilename = "IBLCalibrationData.txt"
  svnFilename="table_Run2.txt"
  d=parseFiles(calibFilename,svnFilename)
  print len(d)
 
  return 0

if __name__=="__main__":
  sys.exit(main())



-# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
diff --git a/InnerDetector/InDetConditions/PixelConditionsTools/python/PixelConditionsSummaryToolSetup.py b/InnerDetector/InDetConditions/PixelConditionsTools/python/PixelConditionsSummaryToolSetup.py
index f32b14808fe1b7dec097342aa2534bbafba8f725..4094ad6eee463d55c370765eecdf74e0db45e8c5 100644
--- a/InnerDetector/InDetConditions/PixelConditionsTools/python/PixelConditionsSummaryToolSetup.py
+++ b/InnerDetector/InDetConditions/PixelConditionsTools/python/PixelConditionsSummaryToolSetup.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 
 class PixelConditionsSummaryToolSetup:
   "Class to simplify setup of PixelConditionsSummaryTool and required conditions algorithms"
@@ -57,11 +57,15 @@ class PixelConditionsSummaryToolSetup:
     from AthenaCommon.AlgSequence import AthSequencer
     condSeq = AthSequencer("AthCondSeq")
 
-    if not hasattr(ToolSvc, "PixelDCSConditionsTool"):
-      from PixelConditionsTools.PixelDCSConditionsToolSetup import PixelDCSConditionsToolSetup
-      pixelDCSConditionsToolSetup = PixelDCSConditionsToolSetup()
-      pixelDCSConditionsToolSetup.setUseConditions(self.useConditions)
-      pixelDCSConditionsToolSetup.setup()
+    if (self.useDCSState):
+      if not conddb.folderRequested("/PIXEL/DCS/FSMSTATE"):
+        conddb.addFolder("DCS_OFL", "/PIXEL/DCS/FSMSTATE", className="CondAttrListCollection")
+      if not conddb.folderRequested("/PIXEL/DCS/FSMSTATUS"):
+        conddb.addFolder("DCS_OFL", "/PIXEL/DCS/FSMSTATUS", className="CondAttrListCollection")
+
+      if not hasattr(condSeq, "PixelDCSCondStateAlg"):
+        from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelDCSCondStateAlg
+        condSeq += PixelDCSCondStateAlg(name="PixelDCSCondStateAlg")
 
     if (self.useTDAQ):
       PixelTDAQFolder   = "/TDAQ/Resources/ATLAS/PIXEL/Modules"
@@ -93,7 +97,6 @@ class PixelConditionsSummaryToolSetup:
     if not hasattr(ToolSvc, self.toolName):
       from PixelConditionsTools.PixelConditionsToolsConf import PixelConditionsSummaryTool
       ToolSvc += PixelConditionsSummaryTool(name=self.toolName, 
-                                            PixelDCSConditionsTool=ToolSvc.PixelDCSConditionsTool, 
                                             UseDCSState=self.useDCSState, 
                                             UseByteStream=self.useByteStream, 
                                             UseTDAQ=self.useTDAQ, 
diff --git a/InnerDetector/InDetConditions/PixelConditionsTools/python/PixelDCSConditionsToolSetup.py b/InnerDetector/InDetConditions/PixelConditionsTools/python/PixelDCSConditionsToolSetup.py
deleted file mode 100644
index fc6eb8f85394d6ba59e47b96a0603c72e1b39826..0000000000000000000000000000000000000000
--- a/InnerDetector/InDetConditions/PixelConditionsTools/python/PixelDCSConditionsToolSetup.py
+++ /dev/null
@@ -1,88 +0,0 @@
-# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
-
-class PixelDCSConditionsToolSetup:
-  "Class to simplify setup of PixelDCSConditionsTool and required conditions algorithms"
-
-  def __init__(self):
-    self.stateFolder = "/PIXEL/DCS/FSMSTATE"
-    self.statusFolder = "/PIXEL/DCS/FSMSTATUS"
-    self.hvFolder = "/PIXEL/DCS/HV"
-    self.tempFolder = "/PIXEL/DCS/TEMPERATURE"
-    self.dbInstance = "DCS_OFL"
-
-    self.useConditions = True
-
-    self.stateAlgName = "PixelDCSCondStateAlg"
-    self.hvAlgName = "PixelDCSCondHVAlg"
-    self.tempAlgName = "PixelDCSCondTempAlg"
-
-    self.toolName = "PixelDCSConditionsTool"
-    self.tool = None
-
-  def getUseConditions(self):
-    return self.useConditions
-
-  def setUseConditions(self, useConditions):
-    self.useConditions = useConditions
-
-  def getToolName(self):
-    return self.toolName
-
-  def setToolName(self, toolName):
-    self.toolName = toolName
-
-  def getTool(self):
-    return self.tool
-
-  def setFolders(self):
-    from AthenaCommon.GlobalFlags import globalflags
-    from IOVDbSvc.CondDB import conddb
-
-    from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
-    if athenaCommonFlags.isOnline():
-      self.hvFolder = "/PIXEL/HLT/DCS/HV"
-      self.tempFolder = "/PIXEL/HLT/DCS/TEMPERATURE"
-      self.dbInstance = "PIXEL_ONL"
-
-    if (self.useConditions):
-      if not conddb.folderRequested(self.hvFolder):
-        conddb.addFolder(self.dbInstance, self.hvFolder, className="CondAttrListCollection")
-      if not conddb.folderRequested(self.tempFolder):
-        conddb.addFolder(self.dbInstance, self.tempFolder, className="CondAttrListCollection")
-      if ((globalflags.DataSource=='data')):
-        if not conddb.folderRequested(self.stateFolder):
-          conddb.addFolder(self.dbInstance, self.stateFolder, className="CondAttrListCollection")
-        if not conddb.folderRequested(self.statusFolder):
-          conddb.addFolder(self.dbInstance, self.statusFolder, className="CondAttrListCollection")
-
-  def setAlgs(self):
-    from AthenaCommon.GlobalFlags import globalflags
-    from AthenaCommon.AlgSequence import AthSequencer
-    condSeq = AthSequencer("AthCondSeq")
-    
-    if (self.useConditions):
-      if ((globalflags.DataSource=='data')):
-        if not hasattr(condSeq, self.stateAlgName):
-          from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelDCSCondStateAlg
-          condSeq += PixelDCSCondStateAlg(name = self.stateAlgName)
-
-      if not hasattr(condSeq, self.hvAlgName):
-        from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelDCSCondHVAlg
-        condSeq += PixelDCSCondHVAlg(name = self.hvAlgName, ReadKey = self.hvFolder)
-
-      if not hasattr(condSeq, self.tempAlgName):
-        from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelDCSCondTempAlg
-        condSeq += PixelDCSCondTempAlg(name = self.tempAlgName, ReadKey = self.tempFolder)
-
-  def setTool(self):
-    from AthenaCommon.GlobalFlags import globalflags
-    from AthenaCommon.AppMgr import ToolSvc
-    if not hasattr(ToolSvc, self.toolName):
-      from PixelConditionsTools.PixelConditionsToolsConf import PixelDCSConditionsTool
-      ToolSvc += PixelDCSConditionsTool(name=self.toolName, UseConditions=self.useConditions, IsDATA=(globalflags.DataSource=='data'))
-    self.tool = getattr(ToolSvc, self.toolName)
-
-  def setup(self):
-    self.setFolders()
-    self.setAlgs()
-    self.setTool()
diff --git a/InnerDetector/InDetConditions/PixelConditionsTools/python/gcontiIdTable.txt b/InnerDetector/InDetConditions/PixelConditionsTools/python/gcontiIdTable.txt
deleted file mode 100644
index 43ae31d4bd7add40b098f9a99271a946b811e63b..0000000000000000000000000000000000000000
--- a/InnerDetector/InDetConditions/PixelConditionsTools/python/gcontiIdTable.txt
+++ /dev/null
@@ -1,2048 +0,0 @@
-20480 LI_S15_C_34_M3_C1_2 -4 0 0 0  	
-86016 LI_S15_C_34_M4_C4_2 -4 0 1 0  	
-151552 LI_S15_C_12_M1_C1_1 -4 0 2 0  	
-217088 LI_S15_C_12_M2_C4_1 -4 0 3 0  	
-4214784 LI_S15_C_34_M3_C2_2 -4 1 0 0  	
-4280320 LI_S15_C_34_M4_C5_2 -4 1 1 0  	
-4345856 LI_S15_C_12_M1_C2_1 -4 1 2 0  	
-4411392 LI_S15_C_12_M2_C5_1 -4 1 3 0  	
-8409088 LI_S15_C_34_M3_C3_2 -4 2 0 0  	
-8474624 LI_S15_C_34_M4_C6_2 -4 2 1 0  	
-8540160 LI_S15_C_12_M1_C3_1 -4 2 2 0  	
-8605696 LI_S15_C_12_M2_C6_1 -4 2 3 0  	
-16797696 D1C_B01_S2_M4 -2 0 0 0   	
-16863232 D1C_B01_S2_M3 -2 0 1 0   	
-16928768 D1C_B01_S2_M5 -2 0 2 0   	
-16994304 D1C_B01_S2_M2 -2 0 3 0   	
-17059840 D1C_B01_S2_M6 -2 0 4 0   	
-17125376 D1C_B01_S2_M1 -2 0 5 0   	
-17190912 D1C_B02_S1_M4 -2 0 6 0   	
-17256448 D1C_B02_S1_M3 -2 0 7 0   	
-17321984 D1C_B02_S1_M5 -2 0 8 0   	
-17387520 D1C_B02_S1_M2 -2 0 9 0       	
-17453056 D1C_B02_S1_M6 -2 0 10 0   	
-17518592 D1C_B02_S1_M1 -2 0 11 0   	
-17584128 D1C_B02_S2_M4 -2 0 12 0   	
-17649664 D1C_B02_S2_M3 -2 0 13 0   	
-17715200 D1C_B02_S2_M5 -2 0 14 0   	
-17780736 D1C_B02_S2_M2 -2 0 15 0   	
-17846272 D1C_B02_S2_M6 -2 0 16 0   	
-17911808 D1C_B02_S2_M1 -2 0 17 0   	
-17977344 D1C_B03_S1_M4 -2 0 18 0   	
-18042880 D1C_B03_S1_M3 -2 0 19 0   	
-18108416 D1C_B03_S1_M5 -2 0 20 0   	
-18173952 D1C_B03_S1_M2 -2 0 21 0   	
-18239488 D1C_B03_S1_M6 -2 0 22 0   	
-18305024 D1C_B03_S1_M1 -2 0 23 0   	
-18370560 D1C_B03_S2_M4 -2 0 24 0   	
-18436096 D1C_B03_S2_M3 -2 0 25 0   	
-18501632 D1C_B03_S2_M5 -2 0 26 0   	
-18567168 D1C_B03_S2_M2 -2 0 27 0   	
-18632704 D1C_B03_S2_M6 -2 0 28 0   	
-18698240 D1C_B03_S2_M1 -2 0 29 0   	
-18763776 D1C_B04_S1_M4 -2 0 30 0   	
-18829312 D1C_B04_S1_M3 -2 0 31 0   	
-18894848 D1C_B04_S1_M5 -2 0 32 0   	
-18960384 D1C_B04_S1_M2 -2 0 33 0   	
-19025920 D1C_B04_S1_M6 -2 0 34 0   	
-19091456 D1C_B04_S1_M1 -2 0 35 0   	
-19156992 D1C_B04_S2_M4 -2 0 36 0   	
-19222528 D1C_B04_S2_M3 -2 0 37 0   	
-19288064 D1C_B04_S2_M5 -2 0 38 0   	
-19353600 D1C_B04_S2_M2 -2 0 39 0   	
-19419136 D1C_B04_S2_M6 -2 0 40 0   	
-19484672 D1C_B04_S2_M1 -2 0 41 0   	
-19550208 D1C_B01_S1_M4 -2 0 42 0   	
-19615744 D1C_B01_S1_M3 -2 0 43 0   	
-19681280 D1C_B01_S1_M5 -2 0 44 0   	
-19746816 D1C_B01_S1_M2 -2 0 45 0   	
-19812352 D1C_B01_S1_M6 -2 0 46 0   	
-19877888 D1C_B01_S1_M1 -2 0 47 0   	
-20992000 D2C_B01_S2_M4 -2 1 0 0  
-21057536 D2C_B01_S2_M3 -2 1 1 0  
-21123072 D2C_B01_S2_M5 -2 1 2 0  
-21188608 D2C_B01_S2_M2 -2 1 3 0  
-21254144 D2C_B01_S2_M6 -2 1 4 0  
-21319680 D2C_B01_S2_M1 -2 1 5 0  
-21385216 D2C_B02_S1_M4 -2 1 6 0  
-21450752 D2C_B02_S1_M3 -2 1 7 0  
-21516288 D2C_B02_S1_M5 -2 1 8 0  
-21581824 D2C_B02_S1_M2 -2 1 9 0  
-21647360 D2C_B02_S1_M6 -2 1 10 0   
-21712896 D2C_B02_S1_M1 -2 1 11 0   
-21778432 D2C_B02_S2_M4 -2 1 12 0   
-21843968 D2C_B02_S2_M3 -2 1 13 0   
-21909504 D2C_B02_S2_M5 -2 1 14 0   
-21975040 D2C_B02_S2_M2 -2 1 15 0   
-22040576 D2C_B02_S2_M6 -2 1 16 0   
-22106112 D2C_B02_S2_M1 -2 1 17 0   
-22171648 D2C_B03_S1_M4 -2 1 18 0   
-22237184 D2C_B03_S1_M3 -2 1 19 0   
-22302720 D2C_B03_S1_M5 -2 1 20 0   
-22368256 D2C_B03_S1_M2 -2 1 21 0   
-22433792 D2C_B03_S1_M6 -2 1 22 0   
-22499328 D2C_B03_S1_M1 -2 1 23 0   
-22564864 D2C_B03_S2_M4 -2 1 24 0   
-22630400 D2C_B03_S2_M3 -2 1 25 0   
-22695936 D2C_B03_S2_M5 -2 1 26 0   
-22761472 D2C_B03_S2_M2 -2 1 27 0   
-22827008 D2C_B03_S2_M6 -2 1 28 0   
-22892544 D2C_B03_S2_M1 -2 1 29 0   
-22958080 D2C_B04_S1_M4 -2 1 30 0   
-23023616 D2C_B04_S1_M3 -2 1 31 0   
-23089152 D2C_B04_S1_M5 -2 1 32 0   
-23154688 D2C_B04_S1_M2 -2 1 33 0   
-23220224 D2C_B04_S1_M6 -2 1 34 0   
-23285760 D2C_B04_S1_M1 -2 1 35 0   
-23351296 D2C_B04_S2_M4 -2 1 36 0   
-23416832 D2C_B04_S2_M3 -2 1 37 0   
-23482368 D2C_B04_S2_M5 -2 1 38 0   
-23547904 D2C_B04_S2_M2 -2 1 39 0   
-23613440 D2C_B04_S2_M6 -2 1 40 0   
-23678976 D2C_B04_S2_M1 -2 1 41 0   
-23744512 D2C_B01_S1_M4 -2 1 42 0   
-23810048 D2C_B01_S1_M3 -2 1 43 0   
-23875584 D2C_B01_S1_M5 -2 1 44 0   
-23941120 D2C_B01_S1_M2 -2 1 45 0   
-24006656 D2C_B01_S1_M6 -2 1 46 0   
-24072192 D2C_B01_S1_M1 -2 1 47 0   
-25186304 D3C_B01_S2_M4 -2 2 0 0    
-25251840 D3C_B01_S2_M3 -2 2 1 0    
-25317376 D3C_B01_S2_M5 -2 2 2 0    
-25382912 D3C_B01_S2_M2 -2 2 3 0    
-25448448 D3C_B01_S2_M6 -2 2 4 0    
-25513984 D3C_B01_S2_M1 -2 2 5 0    
-25579520 D3C_B02_S1_M4 -2 2 6 0    
-25645056 D3C_B02_S1_M3 -2 2 7 0    
-25710592 D3C_B02_S1_M5 -2 2 8 0    
-25776128 D3C_B02_S1_M2 -2 2 9 0    
-25841664 D3C_B02_S1_M6 -2 2 10 0  
-25907200 D3C_B02_S1_M1 -2 2 11 0  
-25972736 D3C_B02_S2_M4 -2 2 12 0  
-26038272 D3C_B02_S2_M3 -2 2 13 0  
-26103808 D3C_B02_S2_M5 -2 2 14 0  
-26169344 D3C_B02_S2_M2 -2 2 15 0  
-26234880 D3C_B02_S2_M6 -2 2 16 0  
-26300416 D3C_B02_S2_M1 -2 2 17 0  
-26365952 D3C_B03_S1_M4 -2 2 18 0  
-26431488 D3C_B03_S1_M3 -2 2 19 0  
-26497024 D3C_B03_S1_M5 -2 2 20 0  
-26562560 D3C_B03_S1_M2 -2 2 21 0  
-26628096 D3C_B03_S1_M6 -2 2 22 0  
-26693632 D3C_B03_S1_M1 -2 2 23 0  
-26759168 D3C_B03_S2_M4 -2 2 24 0  
-26824704 D3C_B03_S2_M3 -2 2 25 0  
-26890240 D3C_B03_S2_M5 -2 2 26 0  
-26955776 D3C_B03_S2_M2 -2 2 27 0  
-27021312 D3C_B03_S2_M6 -2 2 28 0  
-27086848 D3C_B03_S2_M1 -2 2 29 0  
-27152384 D3C_B04_S1_M4 -2 2 30 0  
-27217920 D3C_B04_S1_M3 -2 2 31 0  
-27283456 D3C_B04_S1_M5 -2 2 32 0  
-27348992 D3C_B04_S1_M2 -2 2 33 0  
-27414528 D3C_B04_S1_M6 -2 2 34 0  
-27480064 D3C_B04_S1_M1 -2 2 35 0  
-27545600 D3C_B04_S2_M4 -2 2 36 0  
-27611136 D3C_B04_S2_M3 -2 2 37 0  
-27676672 D3C_B04_S2_M5 -2 2 38 0  
-27742208 D3C_B04_S2_M2 -2 2 39 0  
-27807744 D3C_B04_S2_M6 -2 2 40 0  
-27873280 D3C_B04_S2_M1 -2 2 41 0  
-27938816 D3C_B01_S1_M4 -2 2 42 0  
-28004352 D3C_B01_S1_M3 -2 2 43 0  
-28069888 D3C_B01_S1_M5 -2 2 44 0  
-28135424 D3C_B01_S1_M2 -2 2 45 0  
-28200960 D3C_B01_S1_M6 -2 2 46 0  
-28266496 D3C_B01_S1_M1 -2 2 47 0  
-33554432 LI_S01_C_M4_C8_2 0 0 0 -10
-33556480 LI_S01_C_M4_C8_1 0 0 0 -9
-33558528 LI_S01_C_M4_C7_2 0 0 0 -8
-33560576 LI_S01_C_M4_C7_1 0 0 0 -7
-33562624 LI_S01_C_M3_C6 0 0 0 -6
-33564672 LI_S01_C_M3_C5 0 0 0 -5
-33566720 LI_S01_C_M2_C4 0 0 0 -4
-33568768 LI_S01_C_M2_C3 0 0 0 -3
-33570816 LI_S01_C_M1_C2 0 0 0 -2
-33572864 LI_S01_C_M1_C1 0 0 0 -1
-33574912 LI_S01_A_M1_A1 0 0 0 0
-33576960 LI_S01_A_M1_A2 0 0 0 1
-33579008 LI_S01_A_M2_A3 0 0 0 2
-33581056 LI_S01_A_M2_A4 0 0 0 3
-33583104 LI_S01_A_M3_A5 0 0 0 4
-33585152 LI_S01_A_M3_A6 0 0 0 5
-33587200 LI_S01_A_M4_A7_1 0 0 0 6
-33589248 LI_S01_A_M4_A7_2 0 0 0 7
-33591296 LI_S01_A_M4_A8_1 0 0 0 8
-33593344 LI_S01_A_M4_A8_2 0 0 0 9
-33619968 LI_S02_C_M4_C8_2 0 0 1 -10
-33622016 LI_S02_C_M4_C8_1 0 0 1 -9
-33624064 LI_S02_C_M4_C7_2 0 0 1 -8
-33626112 LI_S02_C_M4_C7_1 0 0 1 -7
-33628160 LI_S02_C_M3_C6 0 0 1 -6
-33630208 LI_S02_C_M3_C5 0 0 1 -5
-33632256 LI_S02_C_M2_C4 0 0 1 -4
-33634304 LI_S02_C_M2_C3 0 0 1 -3
-33636352 LI_S02_C_M1_C2 0 0 1 -2
-33638400 LI_S02_C_M1_C1 0 0 1 -1
-33640448 LI_S02_A_M1_A1 0 0 1 0
-33642496 LI_S02_A_M1_A2 0 0 1 1
-33644544 LI_S02_A_M2_A3 0 0 1 2
-33646592 LI_S02_A_M2_A4 0 0 1 3
-33648640 LI_S02_A_M3_A5 0 0 1 4
-33650688 LI_S02_A_M3_A6 0 0 1 5
-33652736 LI_S02_A_M4_A7_1 0 0 1 6
-33654784 LI_S02_A_M4_A7_2 0 0 1 7
-33656832 LI_S02_A_M4_A8_1 0 0 1 8
-33658880 LI_S02_A_M4_A8_2 0 0 1 9
-33685504 LI_S03_C_M4_C8_2 0 0 2 -10
-33687552 LI_S03_C_M4_C8_1 0 0 2 -9
-33689600 LI_S03_C_M4_C7_2 0 0 2 -8
-33691648 LI_S03_C_M4_C7_1 0 0 2 -7
-33693696 LI_S03_C_M3_C6 0 0 2 -6
-33695744 LI_S03_C_M3_C5 0 0 2 -5
-33697792 LI_S03_C_M2_C4 0 0 2 -4
-33699840 LI_S03_C_M2_C3 0 0 2 -3
-33701888 LI_S03_C_M1_C2 0 0 2 -2
-33703936 LI_S03_C_M1_C1 0 0 2 -1
-33705984 LI_S03_A_M1_A1 0 0 2 0
-33708032 LI_S03_A_M1_A2 0 0 2 1
-33710080 LI_S03_A_M2_A3 0 0 2 2
-33712128 LI_S03_A_M2_A4 0 0 2 3
-33714176 LI_S03_A_M3_A5 0 0 2 4
-33716224 LI_S03_A_M3_A6 0 0 2 5
-33718272 LI_S03_A_M4_A7_1 0 0 2 6
-33720320 LI_S03_A_M4_A7_2 0 0 2 7
-33722368 LI_S03_A_M4_A8_1 0 0 2 8
-33724416 LI_S03_A_M4_A8_2 0 0 2 9
-33751040 LI_S04_C_M4_C8_2 0 0 3 -10
-33753088 LI_S04_C_M4_C8_1 0 0 3 -9
-33755136 LI_S04_C_M4_C7_2 0 0 3 -8
-33757184 LI_S04_C_M4_C7_1 0 0 3 -7
-33759232 LI_S04_C_M3_C6 0 0 3 -6
-33761280 LI_S04_C_M3_C5 0 0 3 -5
-33763328 LI_S04_C_M2_C4 0 0 3 -4
-33765376 LI_S04_C_M2_C3 0 0 3 -3
-33767424 LI_S04_C_M1_C2 0 0 3 -2
-33769472 LI_S04_C_M1_C1 0 0 3 -1
-33771520 LI_S04_A_M1_A1 0 0 3 0
-33773568 LI_S04_A_M1_A2 0 0 3 1
-33775616 LI_S04_A_M2_A3 0 0 3 2
-33777664 LI_S04_A_M2_A4 0 0 3 3
-33779712 LI_S04_A_M3_A5 0 0 3 4
-33781760 LI_S04_A_M3_A6 0 0 3 5
-33783808 LI_S04_A_M4_A7_1 0 0 3 6
-33785856 LI_S04_A_M4_A7_2 0 0 3 7
-33787904 LI_S04_A_M4_A8_1 0 0 3 8
-33789952 LI_S04_A_M4_A8_2 0 0 3 9
-33816576 LI_S05_C_M4_C8_2 0 0 4 -10
-33818624 LI_S05_C_M4_C8_1 0 0 4 -9
-33820672 LI_S05_C_M4_C7_2 0 0 4 -8
-33822720 LI_S05_C_M4_C7_1 0 0 4 -7
-33824768 LI_S05_C_M3_C6 0 0 4 -6
-33826816 LI_S05_C_M3_C5 0 0 4 -5
-33828864 LI_S05_C_M2_C4 0 0 4 -4
-33830912 LI_S05_C_M2_C3 0 0 4 -3
-33832960 LI_S05_C_M1_C2 0 0 4 -2
-33835008 LI_S05_C_M1_C1 0 0 4 -1
-33837056 LI_S05_A_M1_A1 0 0 4 0
-33839104 LI_S05_A_M1_A2 0 0 4 1
-33841152 LI_S05_A_M2_A3 0 0 4 2
-33843200 LI_S05_A_M2_A4 0 0 4 3
-33845248 LI_S05_A_M3_A5 0 0 4 4
-33847296 LI_S05_A_M3_A6 0 0 4 5
-33849344 LI_S05_A_M4_A7_1 0 0 4 6
-33851392 LI_S05_A_M4_A7_2 0 0 4 7
-33853440 LI_S05_A_M4_A8_1 0 0 4 8
-33855488 LI_S05_A_M4_A8_2 0 0 4 9
-33882112 LI_S06_C_M4_C8_2 0 0 5 -10
-33884160 LI_S06_C_M4_C8_1 0 0 5 -9
-33886208 LI_S06_C_M4_C7_2 0 0 5 -8
-33888256 LI_S06_C_M4_C7_1 0 0 5 -7
-33890304 LI_S06_C_M3_C6 0 0 5 -6
-33892352 LI_S06_C_M3_C5 0 0 5 -5
-33894400 LI_S06_C_M2_C4 0 0 5 -4
-33896448 LI_S06_C_M2_C3 0 0 5 -3
-33898496 LI_S06_C_M1_C2 0 0 5 -2
-33900544 LI_S06_C_M1_C1 0 0 5 -1
-33902592 LI_S06_A_M1_A1 0 0 5 0
-33904640 LI_S06_A_M1_A2 0 0 5 1
-33906688 LI_S06_A_M2_A3 0 0 5 2
-33908736 LI_S06_A_M2_A4 0 0 5 3
-33910784 LI_S06_A_M3_A5 0 0 5 4
-33912832 LI_S06_A_M3_A6 0 0 5 5
-33914880 LI_S06_A_M4_A7_1 0 0 5 6
-33916928 LI_S06_A_M4_A7_2 0 0 5 7
-33918976 LI_S06_A_M4_A8_1 0 0 5 8
-33921024 LI_S06_A_M4_A8_2 0 0 5 9
-33947648 LI_S07_C_M4_C8_2 0 0 6 -10
-33949696 LI_S07_C_M4_C8_1 0 0 6 -9
-33951744 LI_S07_C_M4_C7_2 0 0 6 -8
-33953792 LI_S07_C_M4_C7_1 0 0 6 -7
-33955840 LI_S07_C_M3_C6 0 0 6 -6
-33957888 LI_S07_C_M3_C5 0 0 6 -5
-33959936 LI_S07_C_M2_C4 0 0 6 -4
-33961984 LI_S07_C_M2_C3 0 0 6 -3
-33964032 LI_S07_C_M1_C2 0 0 6 -2
-33966080 LI_S07_C_M1_C1 0 0 6 -1
-33968128 LI_S07_A_M1_A1 0 0 6 0
-33970176 LI_S07_A_M1_A2 0 0 6 1
-33972224 LI_S07_A_M2_A3 0 0 6 2
-33974272 LI_S07_A_M2_A4 0 0 6 3
-33976320 LI_S07_A_M3_A5 0 0 6 4
-33978368 LI_S07_A_M3_A6 0 0 6 5
-33980416 LI_S07_A_M4_A7_1 0 0 6 6
-33982464 LI_S07_A_M4_A7_2 0 0 6 7
-33984512 LI_S07_A_M4_A8_1 0 0 6 8
-33986560 LI_S07_A_M4_A8_2 0 0 6 9
-34013184 LI_S08_C_M4_C8_2 0 0 7 -10
-34015232 LI_S08_C_M4_C8_1 0 0 7 -9
-34017280 LI_S08_C_M4_C7_2 0 0 7 -8
-34019328 LI_S08_C_M4_C7_1 0 0 7 -7
-34021376 LI_S08_C_M3_C6 0 0 7 -6
-34023424 LI_S08_C_M3_C5 0 0 7 -5
-34025472 LI_S08_C_M2_C4 0 0 7 -4
-34027520 LI_S08_C_M2_C3 0 0 7 -3
-34029568 LI_S08_C_M1_C2 0 0 7 -2
-34031616 LI_S08_C_M1_C1 0 0 7 -1
-34033664 LI_S08_A_M1_A1 0 0 7 0
-34035712 LI_S08_A_M1_A2 0 0 7 1
-34037760 LI_S08_A_M2_A3 0 0 7 2
-34039808 LI_S08_A_M2_A4 0 0 7 3
-34041856 LI_S08_A_M3_A5 0 0 7 4
-34043904 LI_S08_A_M3_A6 0 0 7 5
-34045952 LI_S08_A_M4_A7_1 0 0 7 6
-34048000 LI_S08_A_M4_A7_2 0 0 7 7
-34050048 LI_S08_A_M4_A8_1 0 0 7 8
-34052096 LI_S08_A_M4_A8_2 0 0 7 9
-34078720 LI_S09_C_M4_C8_2 0 0 8 -10
-34080768 LI_S09_C_M4_C8_1 0 0 8 -9
-34082816 LI_S09_C_M4_C7_2 0 0 8 -8
-34084864 LI_S09_C_M4_C7_1 0 0 8 -7
-34086912 LI_S09_C_M3_C6 0 0 8 -6
-34088960 LI_S09_C_M3_C5 0 0 8 -5
-34091008 LI_S09_C_M2_C4 0 0 8 -4
-34093056 LI_S09_C_M2_C3 0 0 8 -3
-34095104 LI_S09_C_M1_C2 0 0 8 -2
-34097152 LI_S09_C_M1_C1 0 0 8 -1
-34099200 LI_S09_A_M1_A1 0 0 8 0
-34101248 LI_S09_A_M1_A2 0 0 8 1
-34103296 LI_S09_A_M2_A3 0 0 8 2
-34105344 LI_S09_A_M2_A4 0 0 8 3
-34107392 LI_S09_A_M3_A5 0 0 8 4
-34109440 LI_S09_A_M3_A6 0 0 8 5
-34111488 LI_S09_A_M4_A7_1 0 0 8 6
-34113536 LI_S09_A_M4_A7_2 0 0 8 7
-34115584 LI_S09_A_M4_A8_1 0 0 8 8
-34117632 LI_S09_A_M4_A8_2 0 0 8 9
-34144256 LI_S10_C_M4_C8_2 0 0 9 -10 
-34146304 LI_S10_C_M4_C8_1 0 0 9 -9 
-34148352 LI_S10_C_M4_C7_2 0 0 9 -8 
-34150400 LI_S10_C_M4_C7_1 0 0 9 -7 
-34152448 LI_S10_C_M3_C6 0 0 9 -6 
-34154496 LI_S10_C_M3_C5 0 0 9 -5 
-34156544 LI_S10_C_M2_C4 0 0 9 -4 
-34158592 LI_S10_C_M2_C3 0 0 9 -3 
-34160640 LI_S10_C_M1_C2 0 0 9 -2 
-34162688 LI_S10_C_M1_C1 0 0 9 -1 
-34164736 LI_S10_A_M1_A1 0 0 9 0  
-34166784 LI_S10_A_M1_A2 0 0 9 1  
-34168832 LI_S10_A_M2_A3 0 0 9 2  
-34170880 LI_S10_A_M2_A4 0 0 9 3  
-34172928 LI_S10_A_M3_A5 0 0 9 4  
-34174976 LI_S10_A_M3_A6 0 0 9 5  
-34177024 LI_S10_A_M4_A7_1 0 0 9 6  
-34179072 LI_S10_A_M4_A7_2 0 0 9 7  
-34181120 LI_S10_A_M4_A8_1 0 0 9 8  
-34183168 LI_S10_A_M4_A8_2 0 0 9 9  
-34209792 LI_S11_C_M4_C8_2 0 0 10 -10
-34211840 LI_S11_C_M4_C8_1 0 0 10 -9
-34213888 LI_S11_C_M4_C7_2 0 0 10 -8
-34215936 LI_S11_C_M4_C7_1 0 0 10 -7
-34217984 LI_S11_C_M3_C6 0 0 10 -6
-34220032 LI_S11_C_M3_C5 0 0 10 -5
-34222080 LI_S11_C_M2_C4 0 0 10 -4
-34224128 LI_S11_C_M2_C3 0 0 10 -3
-34226176 LI_S11_C_M1_C2 0 0 10 -2
-34228224 LI_S11_C_M1_C1 0 0 10 -1
-34230272 LI_S11_A_M1_A1 0 0 10 0 
-34232320 LI_S11_A_M1_A2 0 0 10 1 
-34234368 LI_S11_A_M2_A3 0 0 10 2 
-34236416 LI_S11_A_M2_A4 0 0 10 3 
-34238464 LI_S11_A_M3_A5 0 0 10 4 
-34240512 LI_S11_A_M3_A6 0 0 10 5 
-34242560 LI_S11_A_M4_A7_1 0 0 10 6 
-34244608 LI_S11_A_M4_A7_2 0 0 10 7 
-34246656 LI_S11_A_M4_A8_1 0 0 10 8 
-34248704 LI_S11_A_M4_A8_2 0 0 10 9 
-34275328 LI_S12_C_M4_C8_2 0 0 11 -10
-34277376 LI_S12_C_M4_C8_1 0 0 11 -9
-34279424 LI_S12_C_M4_C7_2 0 0 11 -8
-34281472 LI_S12_C_M4_C7_1 0 0 11 -7
-34283520 LI_S12_C_M3_C6 0 0 11 -6
-34285568 LI_S12_C_M3_C5 0 0 11 -5
-34287616 LI_S12_C_M2_C4 0 0 11 -4
-34289664 LI_S12_C_M2_C3 0 0 11 -3
-34291712 LI_S12_C_M1_C2 0 0 11 -2
-34293760 LI_S12_C_M1_C1 0 0 11 -1
-34295808 LI_S12_A_M1_A1 0 0 11 0 
-34297856 LI_S12_A_M1_A2 0 0 11 1 
-34299904 LI_S12_A_M2_A3 0 0 11 2 
-34301952 LI_S12_A_M2_A4 0 0 11 3 
-34304000 LI_S12_A_M3_A5 0 0 11 4 
-34306048 LI_S12_A_M3_A6 0 0 11 5 
-34308096 LI_S12_A_M4_A7_1 0 0 11 6 
-34310144 LI_S12_A_M4_A7_2 0 0 11 7 
-34312192 LI_S12_A_M4_A8_1 0 0 11 8 
-34314240 LI_S12_A_M4_A8_2 0 0 11 9 
-34340864 LI_S13_C_M4_C8_2 0 0 12 -10
-34342912 LI_S13_C_M4_C8_1 0 0 12 -9
-34344960 LI_S13_C_M4_C7_2 0 0 12 -8
-34347008 LI_S13_C_M4_C7_1 0 0 12 -7
-34349056 LI_S13_C_M3_C6 0 0 12 -6
-34351104 LI_S13_C_M3_C5 0 0 12 -5
-34353152 LI_S13_C_M2_C4 0 0 12 -4
-34355200 LI_S13_C_M2_C3 0 0 12 -3
-34357248 LI_S13_C_M1_C2 0 0 12 -2
-34359296 LI_S13_C_M1_C1 0 0 12 -1
-34361344 LI_S13_A_M1_A1 0 0 12 0 
-34363392 LI_S13_A_M1_A2 0 0 12 1 
-34365440 LI_S13_A_M2_A3 0 0 12 2 
-34367488 LI_S13_A_M2_A4 0 0 12 3 
-34369536 LI_S13_A_M3_A5 0 0 12 4 
-34371584 LI_S13_A_M3_A6 0 0 12 5 
-34373632 LI_S13_A_M4_A7_1 0 0 12 6 
-34375680 LI_S13_A_M4_A7_2 0 0 12 7 
-34377728 LI_S13_A_M4_A8_1 0 0 12 8 
-34379776 LI_S13_A_M4_A8_2 0 0 12 9 
-34406400 LI_S14_C_M4_C8_2 0 0 13 -10
-34408448 LI_S14_C_M4_C8_1 0 0 13 -9
-34410496 LI_S14_C_M4_C7_2 0 0 13 -8
-34412544 LI_S14_C_M4_C7_1 0 0 13 -7
-34414592 LI_S14_C_M3_C6 0 0 13 -6
-34416640 LI_S14_C_M3_C5 0 0 13 -5
-34418688 LI_S14_C_M2_C4 0 0 13 -4
-34420736 LI_S14_C_M2_C3 0 0 13 -3
-34422784 LI_S14_C_M1_C2 0 0 13 -2
-34424832 LI_S14_C_M1_C1 0 0 13 -1
-34426880 LI_S14_A_M1_A1 0 0 13 0 
-34428928 LI_S14_A_M1_A2 0 0 13 1 
-34430976 LI_S14_A_M2_A3 0 0 13 2 
-34433024 LI_S14_A_M2_A4 0 0 13 3 
-34435072 LI_S14_A_M3_A5 0 0 13 4 
-34437120 LI_S14_A_M3_A6 0 0 13 5 
-34439168 LI_S14_A_M4_A7_1 0 0 13 6 
-34441216 LI_S14_A_M4_A7_2 0 0 13 7 
-34443264 LI_S14_A_M4_A8_1 0 0 13 8 
-34445312 LI_S14_A_M4_A8_2 0 0 13 9 
-37756928 L0_B11_S02_M6C 0 1 0 -6 
-37758976 L0_B11_S02_M5C 0 1 0 -5 
-37761024 L0_B11_S02_M4C 0 1 0 -4 
-37763072 L0_B11_S02_M3C 0 1 0 -3 
-37765120 L0_B11_S02_M2C 0 1 0 -2 
-37767168 L0_B11_S02_M1C 0 1 0 -1 
-37769216 L0_B11_S02_M0 0 1 0 0  
-37771264 L0_B11_S02_M1A 0 1 0 1  
-37773312 L0_B11_S02_M2A 0 1 0 2  
-37775360 L0_B11_S02_M3A 0 1 0 3  
-37777408 L0_B11_S02_M4A 0 1 0 4  
-37779456 L0_B11_S02_M5A 0 1 0 5  
-37781504 L0_B11_S02_M6A 0 1 0 6  
-37822464 L0_B01_S01_M6C 0 1 1 -6 
-37824512 L0_B01_S01_M5C 0 1 1 -5 
-37826560 L0_B01_S01_M4C 0 1 1 -4 
-37828608 L0_B01_S01_M3C 0 1 1 -3 
-37830656 L0_B01_S01_M2C 0 1 1 -2 
-37832704 L0_B01_S01_M1C 0 1 1 -1 
-37834752 L0_B01_S01_M0 0 1 1 0  
-37836800 L0_B01_S01_M1A 0 1 1 1  
-37838848 L0_B01_S01_M2A 0 1 1 2  
-37840896 L0_B01_S01_M3A 0 1 1 3  
-37842944 L0_B01_S01_M4A 0 1 1 4  
-37844992 L0_B01_S01_M5A 0 1 1 5  
-37847040 L0_B01_S01_M6A 0 1 1 6  
-37888000 L0_B01_S02_M6C 0 1 2 -6 
-37890048 L0_B01_S02_M5C 0 1 2 -5 
-37892096 L0_B01_S02_M4C 0 1 2 -4 
-37894144 L0_B01_S02_M3C 0 1 2 -3 
-37896192 L0_B01_S02_M2C 0 1 2 -2 
-37898240 L0_B01_S02_M1C 0 1 2 -1 
-37900288 L0_B01_S02_M0 0 1 2 0  
-37902336 L0_B01_S02_M1A 0 1 2 1  
-37904384 L0_B01_S02_M2A 0 1 2 2  
-37906432 L0_B01_S02_M3A 0 1 2 3  
-37908480 L0_B01_S02_M4A 0 1 2 4  
-37910528 L0_B01_S02_M5A 0 1 2 5  
-37912576 L0_B01_S02_M6A 0 1 2 6  
-37953536 L0_B02_S01_M6C 0 1 3 -6 
-37955584 L0_B02_S01_M5C 0 1 3 -5 
-37957632 L0_B02_S01_M4C 0 1 3 -4 
-37959680 L0_B02_S01_M3C 0 1 3 -3 
-37961728 L0_B02_S01_M2C 0 1 3 -2 
-37963776 L0_B02_S01_M1C 0 1 3 -1 
-37965824 L0_B02_S01_M0 0 1 3 0  
-37967872 L0_B02_S01_M1A 0 1 3 1  
-37969920 L0_B02_S01_M2A 0 1 3 2  
-37971968 L0_B02_S01_M3A 0 1 3 3  
-37974016 L0_B02_S01_M4A 0 1 3 4  
-37976064 L0_B02_S01_M5A 0 1 3 5  
-37978112 L0_B02_S01_M6A 0 1 3 6  
-38019072 L0_B02_S02_M6C 0 1 4 -6 
-38021120 L0_B02_S02_M5C 0 1 4 -5 
-38023168 L0_B02_S02_M4C 0 1 4 -4 
-38025216 L0_B02_S02_M3C 0 1 4 -3 
-38027264 L0_B02_S02_M2C 0 1 4 -2 
-38029312 L0_B02_S02_M1C 0 1 4 -1 
-38031360 L0_B02_S02_M0 0 1 4 0  
-38033408 L0_B02_S02_M1A 0 1 4 1  
-38035456 L0_B02_S02_M2A 0 1 4 2  
-38037504 L0_B02_S02_M3A 0 1 4 3  
-38039552 L0_B02_S02_M4A 0 1 4 4  
-38041600 L0_B02_S02_M5A 0 1 4 5  
-38043648 L0_B02_S02_M6A 0 1 4 6  
-38084608 L0_B03_S01_M6C 0 1 5 -6 
-38086656 L0_B03_S01_M5C 0 1 5 -5 
-38088704 L0_B03_S01_M4C 0 1 5 -4 
-38090752 L0_B03_S01_M3C 0 1 5 -3 
-38092800 L0_B03_S01_M2C 0 1 5 -2 
-38094848 L0_B03_S01_M1C 0 1 5 -1 
-38096896 L0_B03_S01_M0 0 1 5 0  
-38098944 L0_B03_S01_M1A 0 1 5 1  
-38100992 L0_B03_S01_M2A 0 1 5 2  
-38103040 L0_B03_S01_M3A 0 1 5 3  
-38105088 L0_B03_S01_M4A 0 1 5 4  
-38107136 L0_B03_S01_M5A 0 1 5 5  
-38109184 L0_B03_S01_M6A 0 1 5 6  
-38150144 L0_B03_S02_M6C 0 1 6 -6 
-38152192 L0_B03_S02_M5C 0 1 6 -5 
-38154240 L0_B03_S02_M4C 0 1 6 -4 
-38156288 L0_B03_S02_M3C 0 1 6 -3 
-38158336 L0_B03_S02_M2C 0 1 6 -2 
-38160384 L0_B03_S02_M1C 0 1 6 -1 
-38162432 L0_B03_S02_M0 0 1 6 0  
-38164480 L0_B03_S02_M1A 0 1 6 1  
-38166528 L0_B03_S02_M2A 0 1 6 2  
-38168576 L0_B03_S02_M3A 0 1 6 3  
-38170624 L0_B03_S02_M4A 0 1 6 4  
-38172672 L0_B03_S02_M5A 0 1 6 5  
-38174720 L0_B03_S02_M6A 0 1 6 6  
-38215680 L0_B04_S01_M6C 0 1 7 -6 
-38217728 L0_B04_S01_M5C 0 1 7 -5 
-38219776 L0_B04_S01_M4C 0 1 7 -4 
-38221824 L0_B04_S01_M3C 0 1 7 -3 
-38223872 L0_B04_S01_M2C 0 1 7 -2 
-38225920 L0_B04_S01_M1C 0 1 7 -1 
-38227968 L0_B04_S01_M0 0 1 7 0  
-38230016 L0_B04_S01_M1A 0 1 7 1  
-38232064 L0_B04_S01_M2A 0 1 7 2  
-38234112 L0_B04_S01_M3A 0 1 7 3  
-38236160 L0_B04_S01_M4A 0 1 7 4  
-38238208 L0_B04_S01_M5A 0 1 7 5  
-38240256 L0_B04_S01_M6A 0 1 7 6  
-38281216 L0_B04_S02_M6C 0 1 8 -6 
-38283264 L0_B04_S02_M5C 0 1 8 -5 
-38285312 L0_B04_S02_M4C 0 1 8 -4 
-38287360 L0_B04_S02_M3C 0 1 8 -3 
-38289408 L0_B04_S02_M2C 0 1 8 -2 
-38291456 L0_B04_S02_M1C 0 1 8 -1 
-38293504 L0_B04_S02_M0 0 1 8 0  
-38295552 L0_B04_S02_M1A 0 1 8 1  
-38297600 L0_B04_S02_M2A 0 1 8 2  
-38299648 L0_B04_S02_M3A 0 1 8 3  
-38301696 L0_B04_S02_M4A 0 1 8 4  
-38303744 L0_B04_S02_M5A 0 1 8 5  
-38305792 L0_B04_S02_M6A 0 1 8 6  
-38346752 L0_B05_S01_M6C 0 1 9 -6 
-38348800 L0_B05_S01_M5C 0 1 9 -5 
-38350848 L0_B05_S01_M4C 0 1 9 -4 
-38352896 L0_B05_S01_M3C 0 1 9 -3 
-38354944 L0_B05_S01_M2C 0 1 9 -2 
-38356992 L0_B05_S01_M1C 0 1 9 -1 
-38359040 L0_B05_S01_M0 0 1 9 0  
-38361088 L0_B05_S01_M1A 0 1 9 1  
-38363136 L0_B05_S01_M2A 0 1 9 2  
-38365184 L0_B05_S01_M3A 0 1 9 3  
-38367232 L0_B05_S01_M4A 0 1 9 4  
-38369280 L0_B05_S01_M5A 0 1 9 5  
-38371328 L0_B05_S01_M6A 0 1 9 6  
-38412288 L0_B05_S02_M6C 0 1 10 -6
-38414336 L0_B05_S02_M5C 0 1 10 -5
-38416384 L0_B05_S02_M4C 0 1 10 -4
-38418432 L0_B05_S02_M3C 0 1 10 -3
-38420480 L0_B05_S02_M2C 0 1 10 -2
-38422528 L0_B05_S02_M1C 0 1 10 -1
-38424576 L0_B05_S02_M0 0 1 10 0 
-38426624 L0_B05_S02_M1A 0 1 10 1 
-38428672 L0_B05_S02_M2A 0 1 10 2 
-38430720 L0_B05_S02_M3A 0 1 10 3 
-38432768 L0_B05_S02_M4A 0 1 10 4 
-38434816 L0_B05_S02_M5A 0 1 10 5 
-38436864 L0_B05_S02_M6A 0 1 10 6 
-38477824 L0_B06_S01_M6C 0 1 11 -6
-38479872 L0_B06_S01_M5C 0 1 11 -5
-38481920 L0_B06_S01_M4C 0 1 11 -4
-38483968 L0_B06_S01_M3C 0 1 11 -3
-38486016 L0_B06_S01_M2C 0 1 11 -2
-38488064 L0_B06_S01_M1C 0 1 11 -1
-38490112 L0_B06_S01_M0 0 1 11 0 
-38492160 L0_B06_S01_M1A 0 1 11 1 
-38494208 L0_B06_S01_M2A 0 1 11 2 
-38496256 L0_B06_S01_M3A 0 1 11 3 
-38498304 L0_B06_S01_M4A 0 1 11 4 
-38500352 L0_B06_S01_M5A 0 1 11 5 
-38502400 L0_B06_S01_M6A 0 1 11 6 
-38543360 L0_B06_S02_M6C 0 1 12 -6
-38545408 L0_B06_S02_M5C 0 1 12 -5
-38547456 L0_B06_S02_M4C 0 1 12 -4
-38549504 L0_B06_S02_M3C 0 1 12 -3
-38551552 L0_B06_S02_M2C 0 1 12 -2
-38553600 L0_B06_S02_M1C 0 1 12 -1
-38555648 L0_B06_S02_M0 0 1 12 0 
-38557696 L0_B06_S02_M1A 0 1 12 1 
-38559744 L0_B06_S02_M2A 0 1 12 2 
-38561792 L0_B06_S02_M3A 0 1 12 3 
-38563840 L0_B06_S02_M4A 0 1 12 4 
-38565888 L0_B06_S02_M5A 0 1 12 5 
-38567936 L0_B06_S02_M6A 0 1 12 6 
-38608896 L0_B07_S01_M6C 0 1 13 -6
-38610944 L0_B07_S01_M5C 0 1 13 -5
-38612992 L0_B07_S01_M4C 0 1 13 -4
-38615040 L0_B07_S01_M3C 0 1 13 -3
-38617088 L0_B07_S01_M2C 0 1 13 -2
-38619136 L0_B07_S01_M1C 0 1 13 -1
-38621184 L0_B07_S01_M0 0 1 13 0 
-38623232 L0_B07_S01_M1A 0 1 13 1 
-38625280 L0_B07_S01_M2A 0 1 13 2 
-38627328 L0_B07_S01_M3A 0 1 13 3 
-38629376 L0_B07_S01_M4A 0 1 13 4 
-38631424 L0_B07_S01_M5A 0 1 13 5 
-38633472 L0_B07_S01_M6A 0 1 13 6 
-38674432 L0_B07_S02_M6C 0 1 14 -6
-38676480 L0_B07_S02_M5C 0 1 14 -5
-38678528 L0_B07_S02_M4C 0 1 14 -4
-38680576 L0_B07_S02_M3C 0 1 14 -3
-38682624 L0_B07_S02_M2C 0 1 14 -2
-38684672 L0_B07_S02_M1C 0 1 14 -1
-38686720 L0_B07_S02_M0 0 1 14 0 
-38688768 L0_B07_S02_M1A 0 1 14 1 
-38690816 L0_B07_S02_M2A 0 1 14 2 
-38692864 L0_B07_S02_M3A 0 1 14 3 
-38694912 L0_B07_S02_M4A 0 1 14 4 
-38696960 L0_B07_S02_M5A 0 1 14 5 
-38699008 L0_B07_S02_M6A 0 1 14 6 
-38739968 L0_B08_S01_M6C 0 1 15 -6
-38742016 L0_B08_S01_M5C 0 1 15 -5
-38744064 L0_B08_S01_M4C 0 1 15 -4
-38746112 L0_B08_S01_M3C 0 1 15 -3
-38748160 L0_B08_S01_M2C 0 1 15 -2
-38750208 L0_B08_S01_M1C 0 1 15 -1
-38752256 L0_B08_S01_M0 0 1 15 0 
-38754304 L0_B08_S01_M1A 0 1 15 1 
-38756352 L0_B08_S01_M2A 0 1 15 2 
-38758400 L0_B08_S01_M3A 0 1 15 3 
-38760448 L0_B08_S01_M4A 0 1 15 4 
-38762496 L0_B08_S01_M5A 0 1 15 5 
-38764544 L0_B08_S01_M6A 0 1 15 6 
-38805504 L0_B08_S02_M6C 0 1 16 -6
-38807552 L0_B08_S02_M5C 0 1 16 -5
-38809600 L0_B08_S02_M4C 0 1 16 -4
-38811648 L0_B08_S02_M3C 0 1 16 -3
-38813696 L0_B08_S02_M2C 0 1 16 -2
-38815744 L0_B08_S02_M1C 0 1 16 -1
-38817792 L0_B08_S02_M0 0 1 16 0 
-38819840 L0_B08_S02_M1A 0 1 16 1 
-38821888 L0_B08_S02_M2A 0 1 16 2 
-38823936 L0_B08_S02_M3A 0 1 16 3 
-38825984 L0_B08_S02_M4A 0 1 16 4 
-38828032 L0_B08_S02_M5A 0 1 16 5 
-38830080 L0_B08_S02_M6A 0 1 16 6 
-38871040 L0_B09_S01_M6C 0 1 17 -6
-38873088 L0_B09_S01_M5C 0 1 17 -5
-38875136 L0_B09_S01_M4C 0 1 17 -4
-38877184 L0_B09_S01_M3C 0 1 17 -3
-38879232 L0_B09_S01_M2C 0 1 17 -2
-38881280 L0_B09_S01_M1C 0 1 17 -1
-38883328 L0_B09_S01_M0 0 1 17 0 
-38885376 L0_B09_S01_M1A 0 1 17 1 
-38887424 L0_B09_S01_M2A 0 1 17 2 
-38889472 L0_B09_S01_M3A 0 1 17 3 
-38891520 L0_B09_S01_M4A 0 1 17 4 
-38893568 L0_B09_S01_M5A 0 1 17 5 
-38895616 L0_B09_S01_M6A 0 1 17 6 
-38936576 L0_B09_S02_M6C 0 1 18 -6
-38938624 L0_B09_S02_M5C 0 1 18 -5
-38940672 L0_B09_S02_M4C 0 1 18 -4
-38942720 L0_B09_S02_M3C 0 1 18 -3
-38944768 L0_B09_S02_M2C 0 1 18 -2
-38946816 L0_B09_S02_M1C 0 1 18 -1
-38948864 L0_B09_S02_M0 0 1 18 0 
-38950912 L0_B09_S02_M1A 0 1 18 1 
-38952960 L0_B09_S02_M2A 0 1 18 2 
-38955008 L0_B09_S02_M3A 0 1 18 3 
-38957056 L0_B09_S02_M4A 0 1 18 4 
-38959104 L0_B09_S02_M5A 0 1 18 5 
-38961152 L0_B09_S02_M6A 0 1 18 6 
-39002112 L0_B10_S01_M6C 0 1 19 -6
-39004160 L0_B10_S01_M5C 0 1 19 -5
-39006208 L0_B10_S01_M4C 0 1 19 -4
-39008256 L0_B10_S01_M3C 0 1 19 -3
-39010304 L0_B10_S01_M2C 0 1 19 -2
-39012352 L0_B10_S01_M1C 0 1 19 -1
-39014400 L0_B10_S01_M0 0 1 19 0 
-39016448 L0_B10_S01_M1A 0 1 19 1 
-39018496 L0_B10_S01_M2A 0 1 19 2 
-39020544 L0_B10_S01_M3A 0 1 19 3 
-39022592 L0_B10_S01_M4A 0 1 19 4 
-39024640 L0_B10_S01_M5A 0 1 19 5 
-39026688 L0_B10_S01_M6A 0 1 19 6 
-39067648 L0_B10_S02_M6C 0 1 20 -6
-39069696 L0_B10_S02_M5C 0 1 20 -5
-39071744 L0_B10_S02_M4C 0 1 20 -4
-39073792 L0_B10_S02_M3C 0 1 20 -3
-39075840 L0_B10_S02_M2C 0 1 20 -2
-39077888 L0_B10_S02_M1C 0 1 20 -1
-39079936 L0_B10_S02_M0 0 1 20 0 
-39081984 L0_B10_S02_M1A 0 1 20 1 
-39084032 L0_B10_S02_M2A 0 1 20 2 
-39086080 L0_B10_S02_M3A 0 1 20 3 
-39088128 L0_B10_S02_M4A 0 1 20 4 
-39090176 L0_B10_S02_M5A 0 1 20 5 
-39092224 L0_B10_S02_M6A 0 1 20 6 
-39133184 L0_B11_S01_M6C 0 1 21 -6
-39135232 L0_B11_S01_M5C 0 1 21 -5
-39137280 L0_B11_S01_M4C 0 1 21 -4
-39139328 L0_B11_S01_M3C 0 1 21 -3
-39141376 L0_B11_S01_M2C 0 1 21 -2
-39143424 L0_B11_S01_M1C 0 1 21 -1
-39145472 L0_B11_S01_M0 0 1 21 0 
-39147520 L0_B11_S01_M1A 0 1 21 1 
-39149568 L0_B11_S01_M2A 0 1 21 2 
-39151616 L0_B11_S01_M3A 0 1 21 3 
-39153664 L0_B11_S01_M4A 0 1 21 4 
-39155712 L0_B11_S01_M5A 0 1 21 5 
-39157760 L0_B11_S01_M6A 0 1 21 6 
-41951232 L1_B01_S01_M6C 0 2 0 -6 
-41953280 L1_B01_S01_M5C 0 2 0 -5 
-41955328 L1_B01_S01_M4C 0 2 0 -4 
-41957376 L1_B01_S01_M3C 0 2 0 -3 
-41959424 L1_B01_S01_M2C 0 2 0 -2 
-41961472 L1_B01_S01_M1C 0 2 0 -1 
-41963520 L1_B01_S01_M0 0 2 0 0  
-41965568 L1_B01_S01_M1A 0 2 0 1  
-41967616 L1_B01_S01_M2A 0 2 0 2  
-41969664 L1_B01_S01_M3A 0 2 0 3  
-41971712 L1_B01_S01_M4A 0 2 0 4  
-41973760 L1_B01_S01_M5A 0 2 0 5  
-41975808 L1_B01_S01_M6A 0 2 0 6  
-42016768 L1_B01_S02_M6C 0 2 1 -6 
-42018816 L1_B01_S02_M5C 0 2 1 -5 
-42020864 L1_B01_S02_M4C 0 2 1 -4 
-42022912 L1_B01_S02_M3C 0 2 1 -3 
-42024960 L1_B01_S02_M2C 0 2 1 -2 
-42027008 L1_B01_S02_M1C 0 2 1 -1 
-42029056 L1_B01_S02_M0 0 2 1 0  
-42031104 L1_B01_S02_M1A 0 2 1 1  
-42033152 L1_B01_S02_M2A 0 2 1 2  
-42035200 L1_B01_S02_M3A 0 2 1 3  
-42037248 L1_B01_S02_M4A 0 2 1 4  
-42039296 L1_B01_S02_M5A 0 2 1 5  
-42041344 L1_B01_S02_M6A 0 2 1 6  
-42082304 L1_B02_S01_M6C 0 2 2 -6 
-42084352 L1_B02_S01_M5C 0 2 2 -5 
-42086400 L1_B02_S01_M4C 0 2 2 -4 
-42088448 L1_B02_S01_M3C 0 2 2 -3 
-42090496 L1_B02_S01_M2C 0 2 2 -2 
-42092544 L1_B02_S01_M1C 0 2 2 -1 
-42094592 L1_B02_S01_M0 0 2 2 0  
-42096640 L1_B02_S01_M1A	0 2 2 1  
-42098688 L1_B02_S01_M2A 0 2 2 2  
-42100736 L1_B02_S01_M3A	0 2 2 3  
-42102784 L1_B02_S01_M4A	0 2 2 4  
-42104832 L1_B02_S01_M5A	0 2 2 5  
-42106880 L1_B02_S01_M6A 0 2 2 6  
-42147840 L1_B02_S02_M6C 0 2 3 -6 
-42149888 L1_B02_S02_M5C	0 2 3 -5 
-42151936 L1_B02_S02_M4C	0 2 3 -4 
-42153984 L1_B02_S02_M3C	0 2 3 -3 
-42156032 L1_B02_S02_M2C 0 2 3 -2 
-42158080 L1_B02_S02_M1C	0 2 3 -1 
-42160128 L1_B02_S02_M0 0 2 3 0  
-42162176 L1_B02_S02_M1A	0 2 3 1  
-42164224 L1_B02_S02_M2A 0 2 3 2  
-42166272 L1_B02_S02_M3A 0 2 3 3  
-42168320 L1_B02_S02_M4A 0 2 3 4  
-42170368 L1_B02_S02_M5A 0 2 3 5  
-42172416 L1_B02_S02_M6A 0 2 3 6  
-42213376 L1_B03_S01_M6C 0 2 4 -6 
-42215424 L1_B03_S01_M5C	0 2 4 -5 
-42217472 L1_B03_S01_M4C	0 2 4 -4 
-42219520 L1_B03_S01_M3C	0 2 4 -3 
-42221568 L1_B03_S01_M2C 0 2 4 -2 
-42223616 L1_B03_S01_M1C	0 2 4 -1 
-42225664 L1_B03_S01_M0 0 2 4 0  
-42227712 L1_B03_S01_M1A	0 2 4 1  
-42229760 L1_B03_S01_M2A 0 2 4 2  
-42231808 L1_B03_S01_M3A	0 2 4 3  
-42233856 L1_B03_S01_M4A	0 2 4 4  
-42235904 L1_B03_S01_M5A	0 2 4 5  
-42237952 L1_B03_S01_M6A 0 2 4 6  
-42278912 L1_B03_S02_M6C 0 2 5 -6 
-42280960 L1_B03_S02_M5C	0 2 5 -5 
-42283008 L1_B03_S02_M4C	0 2 5 -4 
-42285056 L1_B03_S02_M3C	0 2 5 -3 
-42287104 L1_B03_S02_M2C 0 2 5 -2 
-42289152 L1_B03_S02_M1C	0 2 5 -1 
-42291200 L1_B03_S02_M0 0 2 5 0  
-42293248 L1_B03_S02_M1A	0 2 5 1  
-42295296 L1_B03_S02_M2A 0 2 5 2  
-42297344 L1_B03_S02_M3A	0 2 5 3  
-42299392 L1_B03_S02_M4A	0 2 5 4  
-42301440 L1_B03_S02_M5A	0 2 5 5  
-42303488 L1_B03_S02_M6A 0 2 5 6  
-42344448 L1_B04_S01_M6C 0 2 6 -6 
-42346496 L1_B04_S01_M5C	0 2 6 -5 
-42348544 L1_B04_S01_M4C	0 2 6 -4 
-42350592 L1_B04_S01_M3C	0 2 6 -3 
-42352640 L1_B04_S01_M2C 0 2 6 -2 
-42354688 L1_B04_S01_M1C	0 2 6 -1 
-42356736 L1_B04_S01_M0 0 2 6 0  
-42358784 L1_B04_S01_M1A	0 2 6 1  
-42360832 L1_B04_S01_M2A 0 2 6 2  
-42362880 L1_B04_S01_M3A	0 2 6 3  
-42364928 L1_B04_S01_M4A	0 2 6 4  
-42366976 L1_B04_S01_M5A	0 2 6 5  
-42369024 L1_B04_S01_M6A 0 2 6 6  
-42409984 L1_B04_S02_M6C 0 2 7 -6 
-42412032 L1_B04_S02_M5C	0 2 7 -5 
-42414080 L1_B04_S02_M4C	0 2 7 -4 
-42416128 L1_B04_S02_M3C	0 2 7 -3 
-42418176 L1_B04_S02_M2C 0 2 7 -2 
-42420224 L1_B04_S02_M1C	0 2 7 -1 
-42422272 L1_B04_S02_M0 0 2 7 0  
-42424320 L1_B04_S02_M1A	0 2 7 1  
-42426368 L1_B04_S02_M2A 0 2 7 2  
-42428416 L1_B04_S02_M3A	0 2 7 3  
-42430464 L1_B04_S02_M4A	0 2 7 4  
-42432512 L1_B04_S02_M5A	0 2 7 5  
-42434560 L1_B04_S02_M6A 0 2 7 6  
-42475520 L1_B05_S01_M6C 0 2 8 -6 
-42477568 L1_B05_S01_M5C 0 2 8 -5 
-42479616 L1_B05_S01_M4C 0 2 8 -4 
-42481664 L1_B05_S01_M3C 0 2 8 -3 
-42483712 L1_B05_S01_M2C 0 2 8 -2 
-42485760 L1_B05_S01_M1C	0 2 8 -1 
-42487808 L1_B05_S01_M0 0 2 8 0  
-42489856 L1_B05_S01_M1A	0 2 8 1  
-42491904 L1_B05_S01_M2A 0 2 8 2  
-42493952 L1_B05_S01_M3A	0 2 8 3  
-42496000 L1_B05_S01_M4A	0 2 8 4  
-42498048 L1_B05_S01_M5A	0 2 8 5  
-42500096 L1_B05_S01_M6A 0 2 8 6  
-42541056 L1_B05_S02_M6C 0 2 9 -6
-42543104 L1_B05_S02_M5C	0 2 9 -5
-42545152 L1_B05_S02_M4C	0 2 9 -4
-42547200 L1_B05_S02_M3C	0 2 9 -3
-42549248 L1_B05_S02_M2C 0 2 9 -2
-42551296 L1_B05_S02_M1C	0 2 9 -1
-42553344 L1_B05_S02_M0 0 2 9 0
-42555392 L1_B05_S02_M1A	0 2 9 1
-42557440 L1_B05_S02_M2A 0 2 9 2
-42559488 L1_B05_S02_M3A	0 2 9 3
-42561536 L1_B05_S02_M4A	0 2 9 4
-42563584 L1_B05_S02_M5A	0 2 9 5
-42565632 L1_B05_S02_M6A 0 2 9 6
-42606592 L1_B06_S01_M6C 0 2 10 -6
-42608640 L1_B06_S01_M5C	0 2 10 -5
-42610688 L1_B06_S01_M4C	0 2 10 -4
-42612736 L1_B06_S01_M3C	0 2 10 -3
-42614784 L1_B06_S01_M2C 0 2 10 -2
-42616832 L1_B06_S01_M1C	0 2 10 -1
-42618880 L1_B06_S01_M0 0 2 10 0 
-42620928 L1_B06_S01_M1A	0 2 10 1 
-42622976 L1_B06_S01_M2A 0 2 10 2 
-42625024 L1_B06_S01_M3A	0 2 10 3 
-42627072 L1_B06_S01_M4A	0 2 10 4 
-42629120 L1_B06_S01_M5A	0 2 10 5 
-42631168 L1_B06_S01_M6A 0 2 10 6 
-42672128 L1_B06_S02_M6C 0 2 11 -6
-42674176 L1_B06_S02_M5C	0 2 11 -5
-42676224 L1_B06_S02_M4C	0 2 11 -4
-42678272 L1_B06_S02_M3C	0 2 11 -3
-42680320 L1_B06_S02_M2C 0 2 11 -2
-42682368 L1_B06_S02_M1C	0 2 11 -1
-42684416 L1_B06_S02_M0 0 2 11 0
-42686464 L1_B06_S02_M1A	0 2 11 1
-42688512 L1_B06_S02_M2A 0 2 11 2
-42690560 L1_B06_S02_M3A	0 2 11 3
-42692608 L1_B06_S02_M4A	0 2 11 4
-42694656 L1_B06_S02_M5A	0 2 11 5
-42696704 L1_B06_S02_M6A 0 2 11 6
-42737664 L1_B07_S01_M6C 0 2 12 -6
-42739712 L1_B07_S01_M5C	0 2 12 -5
-42741760 L1_B07_S01_M4C	0 2 12 -4
-42743808 L1_B07_S01_M3C	0 2 12 -3
-42745856 L1_B07_S01_M2C 0 2 12 -2
-42747904 L1_B07_S01_M1C	0 2 12 -1
-42749952 L1_B07_S01_M0 0 2 12 0
-42752000 L1_B07_S01_M1A	0 2 12 1
-42754048 L1_B07_S01_M2A 0 2 12 2
-42756096 L1_B07_S01_M3A 0 2 12 3
-42758144 L1_B07_S01_M4A 0 2 12 4
-42760192 L1_B07_S01_M5A 0 2 12 5
-42762240 L1_B07_S01_M6A 0 2 12 6
-42803200 L1_B07_S02_M6C 0 2 13 -6
-42805248 L1_B07_S02_M5C	0 2 13 -5
-42807296 L1_B07_S02_M4C	0 2 13 -4
-42809344 L1_B07_S02_M3C	0 2 13 -3
-42811392 L1_B07_S02_M2C 0 2 13 -2
-42813440 L1_B07_S02_M1C	0 2 13 -1
-42815488 L1_B07_S02_M0 0 2 13 0
-42817536 L1_B07_S02_M1A	0 2 13 1
-42819584 L1_B07_S02_M2A 0 2 13 2
-42821632 L1_B07_S02_M3A	0 2 13 3
-42823680 L1_B07_S02_M4A	0 2 13 4
-42825728 L1_B07_S02_M5A	0 2 13 5
-42827776 L1_B07_S02_M6A 0 2 13 6
-42868736 L1_B08_S01_M6C 0 2 14 -6
-42870784 L1_B08_S01_M5C	0 2 14 -5
-42872832 L1_B08_S01_M4C	0 2 14 -4
-42874880 L1_B08_S01_M3C	0 2 14 -3
-42876928 L1_B08_S01_M2C 0 2 14 -2
-42878976 L1_B08_S01_M1C	0 2 14 -1
-42881024 L1_B08_S01_M0 0 2 14 0
-42883072 L1_B08_S01_M1A	0 2 14 1
-42885120 L1_B08_S01_M2A 0 2 14 2
-42887168 L1_B08_S01_M3A	0 2 14 3
-42889216 L1_B08_S01_M4A	0 2 14 4
-42891264 L1_B08_S01_M5A	0 2 14 5
-42893312 L1_B08_S01_M6A 0 2 14 6
-42934272 L1_B08_S02_M6C 0 2 15 -6
-42936320 L1_B08_S02_M5C	0 2 15 -5
-42938368 L1_B08_S02_M4C	0 2 15 -4
-42940416 L1_B08_S02_M3C	0 2 15 -3
-42942464 L1_B08_S02_M2C 0 2 15 -2
-42944512 L1_B08_S02_M1C	0 2 15 -1
-42946560 L1_B08_S02_M0 0 2 15 0 
-42948608 L1_B08_S02_M1A	0 2 15 1 
-42950656 L1_B08_S02_M2A 0 2 15 2 
-42952704 L1_B08_S02_M3A	0 2 15 3 
-42954752 L1_B08_S02_M4A	0 2 15 4 
-42956800 L1_B08_S02_M5A	0 2 15 5 
-42958848 L1_B08_S02_M6A 0 2 15 6 
-42999808 L1_B09_S01_M6C 0 2 16 -6
-43001856 L1_B09_S01_M5C	0 2 16 -5
-43003904 L1_B09_S01_M4C	0 2 16 -4
-43005952 L1_B09_S01_M3C	0 2 16 -3
-43008000 L1_B09_S01_M2C 0 2 16 -2
-43010048 L1_B09_S01_M1C	0 2 16 -1
-43012096 L1_B09_S01_M0 0 2 16 0
-43014144 L1_B09_S01_M1A	0 2 16 1
-43016192 L1_B09_S01_M2A 0 2 16 2
-43018240 L1_B09_S01_M3A	0 2 16 3
-43020288 L1_B09_S01_M4A	0 2 16 4
-43022336 L1_B09_S01_M5A	0 2 16 5
-43024384 L1_B09_S01_M6A 0 2 16 6
-43065344 L1_B09_S02_M6C 0 2 17 -6
-43067392 L1_B09_S02_M5C 0 2 17 -5
-43069440 L1_B09_S02_M4C 0 2 17 -4
-43071488 L1_B09_S02_M3C 0 2 17 -3
-43073536 L1_B09_S02_M2C 0 2 17 -2
-43075584 L1_B09_S02_M1C	0 2 17 -1
-43077632 L1_B09_S02_M0 0 2 17 0
-43079680 L1_B09_S02_M1A	0 2 17 1
-43081728 L1_B09_S02_M2A 0 2 17 2
-43083776 L1_B09_S02_M3A	0 2 17 3
-43085824 L1_B09_S02_M4A	0 2 17 4
-43087872 L1_B09_S02_M5A	0 2 17 5
-43089920 L1_B09_S02_M6A 0 2 17 6
-43130880 L1_B10_S01_M6C 0 2 18 -6
-43132928 L1_B10_S01_M5C	0 2 18 -5
-43134976 L1_B10_S01_M4C	0 2 18 -4
-43137024 L1_B10_S01_M3C	0 2 18 -3
-43139072 L1_B10_S01_M2C 0 2 18 -2
-43141120 L1_B10_S01_M1C	0 2 18 -1
-43143168 L1_B10_S01_M0 0 2 18 0
-43145216 L1_B10_S01_M1A	0 2 18 1
-43147264 L1_B10_S01_M2A 0 2 18 2
-43149312 L1_B10_S01_M3A	0 2 18 3
-43151360 L1_B10_S01_M4A	0 2 18 4
-43153408 L1_B10_S01_M5A	0 2 18 5
-43155456 L1_B10_S01_M6A 0 2 18 6
-43196416 L1_B10_S02_M6C 0 2 19 -6
-43198464 L1_B10_S02_M5C	0 2 19 -5
-43200512 L1_B10_S02_M4C	0 2 19 -4
-43202560 L1_B10_S02_M3C	0 2 19 -3
-43204608 L1_B10_S02_M2C 0 2 19 -2
-43206656 L1_B10_S02_M1C	0 2 19 -1
-43208704 L1_B10_S02_M0 0 2 19 0
-43210752 L1_B10_S02_M1A	0 2 19 1
-43212800 L1_B10_S02_M2A 0 2 19 2
-43214848 L1_B10_S02_M3A	0 2 19 3
-43216896 L1_B10_S02_M4A	0 2 19 4
-43218944 L1_B10_S02_M5A	0 2 19 5
-43220992 L1_B10_S02_M6A 0 2 19 6
-43261952 L1_B11_S01_M6C 0 2 20 -6
-43264000 L1_B11_S01_M5C	0 2 20 -5
-43266048 L1_B11_S01_M4C	0 2 20 -4
-43268096 L1_B11_S01_M3C	0 2 20 -3
-43270144 L1_B11_S01_M2C 0 2 20 -2
-43272192 L1_B11_S01_M1C	0 2 20 -1
-43274240 L1_B11_S01_M0 0 2 20 0
-43276288 L1_B11_S01_M1A	0 2 20 1
-43278336 L1_B11_S01_M2A 0 2 20 2
-43280384 L1_B11_S01_M3A	0 2 20 3
-43282432 L1_B11_S01_M4A	0 2 20 4
-43284480 L1_B11_S01_M5A	0 2 20 5
-43286528 L1_B11_S01_M6A 0 2 20 6
-43327488 L1_B11_S02_M6C 0 2 21 -6
-43329536 L1_B11_S02_M5C	0 2 21 -5
-43331584 L1_B11_S02_M4C	0 2 21 -4
-43333632 L1_B11_S02_M3C	0 2 21 -3
-43335680 L1_B11_S02_M2C 0 2 21 -2
-43337728 L1_B11_S02_M1C	0 2 21 -1
-43339776 L1_B11_S02_M0 0 2 21 0
-43341824 L1_B11_S02_M1A	0 2 21 1
-43343872 L1_B11_S02_M2A 0 2 21 2
-43345920 L1_B11_S02_M3A 0 2 21 3
-43347968 L1_B11_S02_M4A 0 2 21 4
-43350016 L1_B11_S02_M5A 0 2 21 5
-43352064 L1_B11_S02_M6A 0 2 21 6
-43393024 L1_B12_S01_M6C 0 2 22 -6
-43395072 L1_B12_S01_M5C	0 2 22 -5
-43397120 L1_B12_S01_M4C	0 2 22 -4
-43399168 L1_B12_S01_M3C	0 2 22 -3
-43401216 L1_B12_S01_M2C 0 2 22 -2
-43403264 L1_B12_S01_M1C	0 2 22 -1
-43405312 L1_B12_S01_M0 0 2 22 0 
-43407360 L1_B12_S01_M1A	0 2 22 1 
-43409408 L1_B12_S01_M2A 0 2 22 2 
-43411456 L1_B12_S01_M3A	0 2 22 3 
-43413504 L1_B12_S01_M4A	0 2 22 4 
-43415552 L1_B12_S01_M5A	0 2 22 5 
-43417600 L1_B12_S01_M6A 0 2 22 6 
-43458560 L1_B12_S02_M6C 0 2 23 -6
-43460608 L1_B12_S02_M5C	0 2 23 -5
-43462656 L1_B12_S02_M4C	0 2 23 -4
-43464704 L1_B12_S02_M3C	0 2 23 -3
-43466752 L1_B12_S02_M2C 0 2 23 -2
-43468800 L1_B12_S02_M1C	0 2 23 -1
-43470848 L1_B12_S02_M0 0 2 23 0
-43472896 L1_B12_S02_M1A	0 2 23 1
-43474944 L1_B12_S02_M2A 0 2 23 2
-43476992 L1_B12_S02_M3A	0 2 23 3
-43479040 L1_B12_S02_M4A	0 2 23 4
-43481088 L1_B12_S02_M5A	0 2 23 5
-43483136 L1_B12_S02_M6A 0 2 23 6
-43524096 L1_B13_S01_M6C 0 2 24 -6
-43526144 L1_B13_S01_M5C	0 2 24 -5
-43528192 L1_B13_S01_M4C	0 2 24 -4
-43530240 L1_B13_S01_M3C	0 2 24 -3
-43532288 L1_B13_S01_M2C 0 2 24 -2
-43534336 L1_B13_S01_M1C	0 2 24 -1
-43536384 L1_B13_S01_M0 0 2 24 0
-43538432 L1_B13_S01_M1A	0 2 24 1
-43540480 L1_B13_S01_M2A 0 2 24 2
-43542528 L1_B13_S01_M3A	0 2 24 3
-43544576 L1_B13_S01_M4A	0 2 24 4
-43546624 L1_B13_S01_M5A	0 2 24 5
-43548672 L1_B13_S01_M6A 0 2 24 6
-43589632 L1_B13_S02_M6C 0 2 25 -6
-43591680 L1_B13_S02_M5C	0 2 25 -5
-43593728 L1_B13_S02_M4C	0 2 25 -4
-43595776 L1_B13_S02_M3C	0 2 25 -3
-43597824 L1_B13_S02_M2C 0 2 25 -2
-43599872 L1_B13_S02_M1C	0 2 25 -1
-43601920 L1_B13_S02_M0 0 2 25 0
-43603968 L1_B13_S02_M1A	0 2 25 1
-43606016 L1_B13_S02_M2A 0 2 25 2
-43608064 L1_B13_S02_M3A	0 2 25 3
-43610112 L1_B13_S02_M4A	0 2 25 4
-43612160 L1_B13_S02_M5A	0 2 25 5
-43614208 L1_B13_S02_M6A 0 2 25 6
-43655168 L1_B14_S01_M6C 0 2 26 -6
-43657216 L1_B14_S01_M5C 0 2 26 -5
-43659264 L1_B14_S01_M4C 0 2 26 -4
-43661312 L1_B14_S01_M3C 0 2 26 -3
-43663360 L1_B14_S01_M2C 0 2 26 -2
-43665408 L1_B14_S01_M1C	0 2 26 -1
-43667456 L1_B14_S01_M0 0 2 26 0
-43669504 L1_B14_S01_M1A	0 2 26 1
-43671552 L1_B14_S01_M2A 0 2 26 2
-43673600 L1_B14_S01_M3A	0 2 26 3
-43675648 L1_B14_S01_M4A	0 2 26 4
-43677696 L1_B14_S01_M5A	0 2 26 5
-43679744 L1_B14_S01_M6A 0 2 26 6
-43720704 L1_B14_S02_M6C 0 2 27 -6
-43722752 L1_B14_S02_M5C	0 2 27 -5
-43724800 L1_B14_S02_M4C	0 2 27 -4
-43726848 L1_B14_S02_M3C	0 2 27 -3
-43728896 L1_B14_S02_M2C 0 2 27 -2
-43730944 L1_B14_S02_M1C	0 2 27 -1
-43732992 L1_B14_S02_M0 0 2 27 0
-43735040 L1_B14_S02_M1A	0 2 27 1
-43737088 L1_B14_S02_M2A 0 2 27 2
-43739136 L1_B14_S02_M3A	0 2 27 3
-43741184 L1_B14_S02_M4A	0 2 27 4
-43743232 L1_B14_S02_M5A	0 2 27 5
-43745280 L1_B14_S02_M6A 0 2 27 6
-43786240 L1_B15_S01_M6C 0 2 28 -6
-43788288 L1_B15_S01_M5C	0 2 28 -5
-43790336 L1_B15_S01_M4C	0 2 28 -4
-43792384 L1_B15_S01_M3C	0 2 28 -3
-43794432 L1_B15_S01_M2C 0 2 28 -2
-43796480 L1_B15_S01_M1C	0 2 28 -1
-43798528 L1_B15_S01_M0 0 2 28 0
-43800576 L1_B15_S01_M1A	0 2 28 1
-43802624 L1_B15_S01_M2A 0 2 28 2
-43804672 L1_B15_S01_M3A	0 2 28 3
-43806720 L1_B15_S01_M4A	0 2 28 4
-43808768 L1_B15_S01_M5A	0 2 28 5
-43810816 L1_B15_S01_M6A 0 2 28 6
-43851776 L1_B15_S02_M6C 0 2 29 -6
-43853824 L1_B15_S02_M5C	0 2 29 -5
-43855872 L1_B15_S02_M4C	0 2 29 -4
-43857920 L1_B15_S02_M3C	0 2 29 -3
-43859968 L1_B15_S02_M2C 0 2 29 -2
-43862016 L1_B15_S02_M1C	0 2 29 -1
-43864064 L1_B15_S02_M0 0 2 29 0
-43866112 L1_B15_S02_M1A	0 2 29 1
-43868160 L1_B15_S02_M2A 0 2 29 2
-43870208 L1_B15_S02_M3A	0 2 29 3
-43872256 L1_B15_S02_M4A	0 2 29 4
-43874304 L1_B15_S02_M5A	0 2 29 5
-43876352 L1_B15_S02_M6A 0 2 29 6
-43917312 L1_B16_S01_M6C 0 2 30 -6
-43919360 L1_B16_S01_M5C	0 2 30 -5
-43921408 L1_B16_S01_M4C	0 2 30 -4
-43923456 L1_B16_S01_M3C	0 2 30 -3
-43925504 L1_B16_S01_M2C 0 2 30 -2
-43927552 L1_B16_S01_M1C	0 2 30 -1
-43929600 L1_B16_S01_M0 0 2 30 0
-43931648 L1_B16_S01_M1A 0 2 30 1
-43933696 L1_B16_S01_M2A 0 2 30 2
-43935744 L1_B16_S01_M3A	0 2 30 3
-43937792 L1_B16_S01_M4A	0 2 30 4
-43939840 L1_B16_S01_M5A	0 2 30 5
-43941888 L1_B16_S01_M6A 0 2 30 6
-43982848 L1_B16_S02_M6C 0 2 31 -6
-43984896 L1_B16_S02_M5C	0 2 31 -5
-43986944 L1_B16_S02_M4C	0 2 31 -4
-43988992 L1_B16_S02_M3C	0 2 31 -3
-43991040 L1_B16_S02_M2C 0 2 31 -2
-43993088 L1_B16_S02_M1C	0 2 31 -1
-43995136 L1_B16_S02_M0 0 2 31 0
-43997184 L1_B16_S02_M1A	0 2 31 1
-43999232 L1_B16_S02_M2A 0 2 31 2
-44001280 L1_B16_S02_M3A	0 2 31 3
-44003328 L1_B16_S02_M4A	0 2 31 4
-44005376 L1_B16_S02_M5A	0 2 31 5
-44007424 L1_B16_S02_M6A 0 2 31 6
-44048384 L1_B17_S01_M6C 0 2 32 -6
-44050432 L1_B17_S01_M5C	0 2 32 -5
-44052480 L1_B17_S01_M4C	0 2 32 -4
-44054528 L1_B17_S01_M3C	0 2 32 -3
-44056576 L1_B17_S01_M2C 0 2 32 -2
-44058624 L1_B17_S01_M1C	0 2 32 -1
-44060672 L1_B17_S01_M0 0 2 32 0 
-44062720 L1_B17_S01_M1A	0 2 32 1 
-44064768 L1_B17_S01_M2A 0 2 32 2 
-44066816 L1_B17_S01_M3A	0 2 32 3 
-44068864 L1_B17_S01_M4A	0 2 32 4 
-44070912 L1_B17_S01_M5A	0 2 32 5 
-44072960 L1_B17_S01_M6A 0 2 32 6 
-44113920 L1_B17_S02_M6C 0 2 33 -6
-44115968 L1_B17_S02_M5C	0 2 33 -5
-44118016 L1_B17_S02_M4C	0 2 33 -4
-44120064 L1_B17_S02_M3C	0 2 33 -3
-44122112 L1_B17_S02_M2C 0 2 33 -2
-44124160 L1_B17_S02_M1C	0 2 33 -1
-44126208 L1_B17_S02_M0 0 2 33 0
-44128256 L1_B17_S02_M1A	0 2 33 1
-44130304 L1_B17_S02_M2A 0 2 33 2
-44132352 L1_B17_S02_M3A	0 2 33 3
-44134400 L1_B17_S02_M4A	0 2 33 4
-44136448 L1_B17_S02_M5A	0 2 33 5
-44138496 L1_B17_S02_M6A 0 2 33 6
-44179456 L1_B18_S01_M6C 0 2 34 -6
-44181504 L1_B18_S01_M5C	0 2 34 -5
-44183552 L1_B18_S01_M4C	0 2 34 -4
-44185600 L1_B18_S01_M3C	0 2 34 -3
-44187648 L1_B18_S01_M2C 0 2 34 -2
-44189696 L1_B18_S01_M1C	0 2 34 -1
-44191744 L1_B18_S01_M0 0 2 34 0
-44193792 L1_B18_S01_M1A	0 2 34 1
-44195840 L1_B18_S01_M2A 0 2 34 2
-44197888 L1_B18_S01_M3A	0 2 34 3
-44199936 L1_B18_S01_M4A	0 2 34 4
-44201984 L1_B18_S01_M5A	0 2 34 5
-44204032 L1_B18_S01_M6A 0 2 34 6
-44244992 L1_B18_S02_M6C 0 2 35 -6
-44247040 L1_B18_S02_M5C 0 2 35 -5
-44249088 L1_B18_S02_M4C 0 2 35 -4
-44251136 L1_B18_S02_M3C 0 2 35 -3
-44253184 L1_B18_S02_M2C 0 2 35 -2
-44255232 L1_B18_S02_M1C	0 2 35 -1
-44257280 L1_B18_S02_M0 0 2 35 0
-44259328 L1_B18_S02_M1A	0 2 35 1
-44261376 L1_B18_S02_M2A 0 2 35 2
-44263424 L1_B18_S02_M3A	0 2 35 3
-44265472 L1_B18_S02_M4A	0 2 35 4
-44267520 L1_B18_S02_M5A	0 2 35 5
-44269568 L1_B18_S02_M6A 0 2 35 6
-44310528 L1_B19_S01_M6C 0 2 36 -6
-44312576 L1_B19_S01_M5C	0 2 36 -5
-44314624 L1_B19_S01_M4C	0 2 36 -4
-44316672 L1_B19_S01_M3C	0 2 36 -3
-44318720 L1_B19_S01_M2C 0 2 36 -2
-44320768 L1_B19_S01_M1C	0 2 36 -1
-44322816 L1_B19_S01_M0 0 2 36 0
-44324864 L1_B19_S01_M1A	0 2 36 1
-44326912 L1_B19_S01_M2A 0 2 36 2
-44328960 L1_B19_S01_M3A	0 2 36 3
-44331008 L1_B19_S01_M4A	0 2 36 4
-44333056 L1_B19_S01_M5A	0 2 36 5
-44335104 L1_B19_S01_M6A 0 2 36 6
-44376064 L1_B19_S02_M6C 0 2 37 -6
-44378112 L1_B19_S02_M5C	0 2 37 -5
-44380160 L1_B19_S02_M4C	0 2 37 -4
-44382208 L1_B19_S02_M3C	0 2 37 -3
-44384256 L1_B19_S02_M2C 0 2 37 -2
-44386304 L1_B19_S02_M1C	0 2 37 -1
-44388352 L1_B19_S02_M0 0 2 37 0 
-44390400 L1_B19_S02_M1A	0 2 37 1 
-44392448 L1_B19_S02_M2A 0 2 37 2 
-44394496 L1_B19_S02_M3A	0 2 37 3 
-44396544 L1_B19_S02_M4A	0 2 37 4 
-44398592 L1_B19_S02_M5A	0 2 37 5 
-44400640 L1_B19_S02_M6A 0 2 37 6 
-46145536 L2_B01_S02_M6C 0 3 0 -6 
-46147584 L2_B01_S02_M5C	0 3 0 -5 
-46149632 L2_B01_S02_M4C	0 3 0 -4 
-46151680 L2_B01_S02_M3C	0 3 0 -3 
-46153728 L2_B01_S02_M2C 0 3 0 -2 
-46155776 L2_B01_S02_M1C	0 3 0 -1 
-46157824 L2_B01_S02_M0 0 3 0 0  
-46159872 L2_B01_S02_M1A	0 3 0 1  
-46161920 L2_B01_S02_M2A 0 3 0 2  
-46163968 L2_B01_S02_M3A	0 3 0 3  
-46166016 L2_B01_S02_M4A	0 3 0 4  
-46168064 L2_B01_S02_M5A	0 3 0 5  
-46170112 L2_B01_S02_M6A 0 3 0 6  
-46211072 L2_B02_S01_M6C 0 3 1 -6 
-46213120 L2_B02_S01_M5C	0 3 1 -5 
-46215168 L2_B02_S01_M4C	0 3 1 -4 
-46217216 L2_B02_S01_M3C	0 3 1 -3 
-46219264 L2_B02_S01_M2C 0 3 1 -2 
-46221312 L2_B02_S01_M1C 0 3 1 -1 
-46223360 L2_B02_S01_M0 0 3 1 0 
-46225408 L2_B02_S01_M1A 0 3 1 1 
-46227456 L2_B02_S01_M2A 0 3 1 2 
-46229504 L2_B02_S01_M3A	0 3 1 3 
-46231552 L2_B02_S01_M4A	0 3 1 4 
-46233600 L2_B02_S01_M5A	0 3 1 5 
-46235648 L2_B02_S01_M6A 0 3 1 6 
-46276608 L2_B02_S02_M6C 0 3 2 -6 
-46278656 L2_B02_S02_M5C	0 3 2 -5 
-46280704 L2_B02_S02_M4C	0 3 2 -4 
-46282752 L2_B02_S02_M3C	0 3 2 -3 
-46284800 L2_B02_S02_M2C 0 3 2 -2 
-46286848 L2_B02_S02_M1C	0 3 2 -1 
-46288896 L2_B02_S02_M0 0 3 2 0 
-46290944 L2_B02_S02_M1A	0 3 2 1 
-46292992 L2_B02_S02_M2A 0 3 2 2 
-46295040 L2_B02_S02_M3A	0 3 2 3 
-46297088 L2_B02_S02_M4A	0 3 2 4 
-46299136 L2_B02_S02_M5A	0 3 2 5 
-46301184 L2_B02_S02_M6A 0 3 2 6 
-46342144 L2_B03_S01_M6C 0 3 3 -6 
-46344192 L2_B03_S01_M5C	0 3 3 -5 
-46346240 L2_B03_S01_M4C	0 3 3 -4 
-46348288 L2_B03_S01_M3C	0 3 3 -3 
-46350336 L2_B03_S01_M2C 0 3 3 -2 
-46352384 L2_B03_S01_M1C	0 3 3 -1 
-46354432 L2_B03_S01_M0 0 3 3 0 
-46356480 L2_B03_S01_M1A 0 3 3 1 
-46358528 L2_B03_S01_M2A 0 3 3 2 
-46360576 L2_B03_S01_M3A 0 3 3 3 
-46362624 L2_B03_S01_M4A 0 3 3 4 
-46364672 L2_B03_S01_M5A 0 3 3 5 
-46366720 L2_B03_S01_M6A 0 3 3 6 
-46407680 L2_B03_S02_M6C 0 3 4 -6 
-46409728 L2_B03_S02_M5C 0 3 4 -5 
-46411776 L2_B03_S02_M4C 0 3 4 -4 
-46413824 L2_B03_S02_M3C 0 3 4 -3 
-46415872 L2_B03_S02_M2C 0 3 4 -2 
-46417920 L2_B03_S02_M1C 0 3 4 -1 
-46419968 L2_B03_S02_M0 0 3 4 0 
-46422016 L2_B03_S02_M1A 0 3 4 1 
-46424064 L2_B03_S02_M2A 0 3 4 2 
-46426112 L2_B03_S02_M3A 0 3 4 3 
-46428160 L2_B03_S02_M4A 0 3 4 4 
-46430208 L2_B03_S02_M5A 0 3 4 5 
-46432256 L2_B03_S02_M6A 0 3 4 6 
-46473216 L2_B04_S01_M6C 0 3 5 -6 
-46475264 L2_B04_S01_M5C 0 3 5 -5 
-46477312 L2_B04_S01_M4C 0 3 5 -4 
-46479360 L2_B04_S01_M3C 0 3 5 -3 
-46481408 L2_B04_S01_M2C 0 3 5 -2 
-46483456 L2_B04_S01_M1C 0 3 5 -1 
-46485504 L2_B04_S01_M0 0 3 5 0 
-46487552 L2_B04_S01_M1A 0 3 5 1 
-46489600 L2_B04_S01_M2A 0 3 5 2 
-46491648 L2_B04_S01_M3A 0 3 5 3 
-46493696 L2_B04_S01_M4A 0 3 5 4 
-46495744 L2_B04_S01_M5A 0 3 5 5 
-46497792 L2_B04_S01_M6A 0 3 5 6 
-46538752 L2_B04_S02_M6C 0 3 6 -6 
-46540800 L2_B04_S02_M5C 0 3 6 -5 
-46542848 L2_B04_S02_M4C 0 3 6 -4 
-46544896 L2_B04_S02_M3C 0 3 6 -3 
-46546944 L2_B04_S02_M2C 0 3 6 -2 
-46548992 L2_B04_S02_M1C 0 3 6 -1 
-46551040 L2_B04_S02_M0 0 3 6 0 
-46553088 L2_B04_S02_M1A 0 3 6 1 
-46555136 L2_B04_S02_M2A 0 3 6 2 
-46557184 L2_B04_S02_M3A 0 3 6 3 
-46559232 L2_B04_S02_M4A 0 3 6 4 
-46561280 L2_B04_S02_M5A 0 3 6 5 
-46563328 L2_B04_S02_M6A 0 3 6 6 
-46604288 L2_B05_S01_M6C 0 3 7 -6 
-46606336 L2_B05_S01_M5C 0 3 7 -5 
-46608384 L2_B05_S01_M4C 0 3 7 -4 
-46610432 L2_B05_S01_M3C 0 3 7 -3 
-46612480 L2_B05_S01_M2C 0 3 7 -2 
-46614528 L2_B05_S01_M1C 0 3 7 -1 
-46616576 L2_B05_S01_M0 0 3 7 0 
-46618624 L2_B05_S01_M1A 0 3 7 1 
-46620672 L2_B05_S01_M2A 0 3 7 2 
-46622720 L2_B05_S01_M3A 0 3 7 3 
-46624768 L2_B05_S01_M4A 0 3 7 4 
-46626816 L2_B05_S01_M5A 0 3 7 5 
-46628864 L2_B05_S01_M6A 0 3 7 6 
-46669824 L2_B05_S02_M6C 0 3 8 -6 
-46671872 L2_B05_S02_M5C 0 3 8 -5 
-46673920 L2_B05_S02_M4C 0 3 8 -4 
-46675968 L2_B05_S02_M3C 0 3 8 -3 
-46678016 L2_B05_S02_M2C 0 3 8 -2 
-46680064 L2_B05_S02_M1C 0 3 8 -1 
-46682112 L2_B05_S02_M0 0 3 8 0 
-46684160 L2_B05_S02_M1A 0 3 8 1 
-46686208 L2_B05_S02_M2A 0 3 8 2 
-46688256 L2_B05_S02_M3A 0 3 8 3 
-46690304 L2_B05_S02_M4A 0 3 8 4 
-46692352 L2_B05_S02_M5A 0 3 8 5 
-46694400 L2_B05_S02_M6A 0 3 8 6 
-46735360 L2_B06_S01_M6C 0 3 9 -6 
-46737408 L2_B06_S01_M5C 0 3 9 -5 
-46739456 L2_B06_S01_M4C 0 3 9 -4 
-46741504 L2_B06_S01_M3C 0 3 9 -3 
-46743552 L2_B06_S01_M2C 0 3 9 -2 
-46745600 L2_B06_S01_M1C 0 3 9 -1 
-46747648 L2_B06_S01_M0 0 3 9 0  
-46749696 L2_B06_S01_M1A 0 3 9 1  
-46751744 L2_B06_S01_M2A 0 3 9 2  
-46753792 L2_B06_S01_M3A 0 3 9 3  
-46755840 L2_B06_S01_M4A 0 3 9 4  
-46757888 L2_B06_S01_M5A 0 3 9 5  
-46759936 L2_B06_S01_M6A 0 3 9 6  
-46800896 L2_B06_S02_M6C 0 3 10 -6
-46802944 L2_B06_S02_M5C 0 3 10 -5
-46804992 L2_B06_S02_M4C 0 3 10 -4
-46807040 L2_B06_S02_M3C 0 3 10 -3
-46809088 L2_B06_S02_M2C 0 3 10 -2
-46811136 L2_B06_S02_M1C 0 3 10 -1
-46813184 L2_B06_S02_M0 0 3 10 0
-46815232 L2_B06_S02_M1A 0 3 10 1
-46817280 L2_B06_S02_M2A 0 3 10 2
-46819328 L2_B06_S02_M3A 0 3 10 3
-46821376 L2_B06_S02_M4A 0 3 10 4
-46823424 L2_B06_S02_M5A 0 3 10 5
-46825472 L2_B06_S02_M6A 0 3 10 6
-46866432 L2_B07_S01_M6C 0 3 11 -6
-46868480 L2_B07_S01_M5C 0 3 11 -5
-46870528 L2_B07_S01_M4C 0 3 11 -4
-46872576 L2_B07_S01_M3C 0 3 11 -3
-46874624 L2_B07_S01_M2C 0 3 11 -2
-46876672 L2_B07_S01_M1C 0 3 11 -1
-46878720 L2_B07_S01_M0 0 3 11 0
-46880768 L2_B07_S01_M1A 0 3 11 1
-46882816 L2_B07_S01_M2A 0 3 11 2
-46884864 L2_B07_S01_M3A 0 3 11 3
-46886912 L2_B07_S01_M4A 0 3 11 4
-46888960 L2_B07_S01_M5A 0 3 11 5
-46891008 L2_B07_S01_M6A 0 3 11 6
-46931968 L2_B07_S02_M6C 0 3 12 -6
-46934016 L2_B07_S02_M5C 0 3 12 -5
-46936064 L2_B07_S02_M4C 0 3 12 -4
-46938112 L2_B07_S02_M3C 0 3 12 -3
-46940160 L2_B07_S02_M2C 0 3 12 -2
-46942208 L2_B07_S02_M1C 0 3 12 -1
-46944256 L2_B07_S02_M0 0 3 12 0
-46946304 L2_B07_S02_M1A 0 3 12 1
-46948352 L2_B07_S02_M2A 0 3 12 2
-46950400 L2_B07_S02_M3A 0 3 12 3
-46952448 L2_B07_S02_M4A 0 3 12 4
-46954496 L2_B07_S02_M5A 0 3 12 5
-46956544 L2_B07_S02_M6A 0 3 12 6
-46997504 L2_B08_S01_M6C 0 3 13 -6
-46999552 L2_B08_S01_M5C 0 3 13 -5
-47001600 L2_B08_S01_M4C 0 3 13 -4
-47003648 L2_B08_S01_M3C 0 3 13 -3
-47005696 L2_B08_S01_M2C 0 3 13 -2
-47007744 L2_B08_S01_M1C 0 3 13 -1
-47009792 L2_B08_S01_M0 0 3 13 0 
-47011840 L2_B08_S01_M1A 0 3 13 1 
-47013888 L2_B08_S01_M2A 0 3 13 2 
-47015936 L2_B08_S01_M3A 0 3 13 3 
-47017984 L2_B08_S01_M4A 0 3 13 4 
-47020032 L2_B08_S01_M5A 0 3 13 5 
-47022080 L2_B08_S01_M6A 0 3 13 6 
-47063040 L2_B08_S02_M6C 0 3 14 -6
-47065088 L2_B08_S02_M5C 0 3 14 -5
-47067136 L2_B08_S02_M4C 0 3 14 -4
-47069184 L2_B08_S02_M3C 0 3 14 -3
-47071232 L2_B08_S02_M2C 0 3 14 -2
-47073280 L2_B08_S02_M1C 0 3 14 -1
-47075328 L2_B08_S02_M0 0 3 14 0
-47077376 L2_B08_S02_M1A 0 3 14 1
-47079424 L2_B08_S02_M2A 0 3 14 2
-47081472 L2_B08_S02_M3A 0 3 14 3
-47083520 L2_B08_S02_M4A 0 3 14 4
-47085568 L2_B08_S02_M5A 0 3 14 5
-47087616 L2_B08_S02_M6A 0 3 14 6
-47128576 L2_B09_S01_M6C 0 3 15 -6
-47130624 L2_B09_S01_M5C 0 3 15 -5
-47132672 L2_B09_S01_M4C 0 3 15 -4
-47134720 L2_B09_S01_M3C 0 3 15 -3
-47136768 L2_B09_S01_M2C 0 3 15 -2
-47138816 L2_B09_S01_M1C 0 3 15 -1
-47140864 L2_B09_S01_M0 0 3 15 0
-47142912 L2_B09_S01_M1A 0 3 15 1
-47144960 L2_B09_S01_M2A 0 3 15 2
-47147008 L2_B09_S01_M3A 0 3 15 3
-47149056 L2_B09_S01_M4A 0 3 15 4
-47151104 L2_B09_S01_M5A 0 3 15 5
-47153152 L2_B09_S01_M6A 0 3 15 6
-47194112 L2_B09_S02_M6C 0 3 16 -6
-47196160 L2_B09_S02_M5C 0 3 16 -5
-47198208 L2_B09_S02_M4C 0 3 16 -4
-47200256 L2_B09_S02_M3C 0 3 16 -3
-47202304 L2_B09_S02_M2C 0 3 16 -2
-47204352 L2_B09_S02_M1C 0 3 16 -1
-47206400 L2_B09_S02_M0 0 3 16 0
-47208448 L2_B09_S02_M1A 0 3 16 1
-47210496 L2_B09_S02_M2A 0 3 16 2
-47212544 L2_B09_S02_M3A 0 3 16 3
-47214592 L2_B09_S02_M4A 0 3 16 4
-47216640 L2_B09_S02_M5A 0 3 16 5
-47218688 L2_B09_S02_M6A 0 3 16 6
-47259648 L2_B10_S01_M6C 0 3 17 -6
-47261696 L2_B10_S01_M5C 0 3 17 -5
-47263744 L2_B10_S01_M4C 0 3 17 -4
-47265792 L2_B10_S01_M3C 0 3 17 -3
-47267840 L2_B10_S01_M2C 0 3 17 -2
-47269888 L2_B10_S01_M1C 0 3 17 -1
-47271936 L2_B10_S01_M0 0 3 17 0
-47273984 L2_B10_S01_M1A 0 3 17 1
-47276032 L2_B10_S01_M2A 0 3 17 2
-47278080 L2_B10_S01_M3A 0 3 17 3
-47280128 L2_B10_S01_M4A 0 3 17 4
-47282176 L2_B10_S01_M5A 0 3 17 5
-47284224 L2_B10_S01_M6A 0 3 17 6
-47325184 L2_B10_S02_M6C 0 3 18 -6
-47327232 L2_B10_S02_M5C 0 3 18 -5
-47329280 L2_B10_S02_M4C 0 3 18 -4
-47331328 L2_B10_S02_M3C 0 3 18 -3
-47333376 L2_B10_S02_M2C 0 3 18 -2
-47335424 L2_B10_S02_M1C 0 3 18 -1
-47337472 L2_B10_S02_M0 0 3 18 0 
-47339520 L2_B10_S02_M1A 0 3 18 1 
-47341568 L2_B10_S02_M2A 0 3 18 2 
-47343616 L2_B10_S02_M3A 0 3 18 3 
-47345664 L2_B10_S02_M4A 0 3 18 4 
-47347712 L2_B10_S02_M5A 0 3 18 5 
-47349760 L2_B10_S02_M6A 0 3 18 6 
-47390720 L2_B11_S01_M6C 0 3 19 -6
-47392768 L2_B11_S01_M5C 0 3 19 -5
-47394816 L2_B11_S01_M4C 0 3 19 -4
-47396864 L2_B11_S01_M3C 0 3 19 -3
-47398912 L2_B11_S01_M2C 0 3 19 -2
-47400960 L2_B11_S01_M1C 0 3 19 -1
-47403008 L2_B11_S01_M0 0 3 19 0
-47405056 L2_B11_S01_M1A 0 3 19 1
-47407104 L2_B11_S01_M2A 0 3 19 2
-47409152 L2_B11_S01_M3A 0 3 19 3
-47411200 L2_B11_S01_M4A 0 3 19 4
-47413248 L2_B11_S01_M5A 0 3 19 5
-47415296 L2_B11_S01_M6A 0 3 19 6
-47456256 L2_B11_S02_M6C 0 3 20 -6
-47458304 L2_B11_S02_M5C 0 3 20 -5
-47460352 L2_B11_S02_M4C 0 3 20 -4
-47462400 L2_B11_S02_M3C 0 3 20 -3
-47464448 L2_B11_S02_M2C 0 3 20 -2
-47466496 L2_B11_S02_M1C 0 3 20 -1
-47468544 L2_B11_S02_M0 0 3 20 0
-47470592 L2_B11_S02_M1A 0 3 20 1
-47472640 L2_B11_S02_M2A 0 3 20 2
-47474688 L2_B11_S02_M3A 0 3 20 3
-47476736 L2_B11_S02_M4A 0 3 20 4
-47478784 L2_B11_S02_M5A 0 3 20 5
-47480832 L2_B11_S02_M6A 0 3 20 6
-47521792 L2_B12_S01_M6C 0 3 21 -6
-47523840 L2_B12_S01_M5C 0 3 21 -5
-47525888 L2_B12_S01_M4C 0 3 21 -4
-47527936 L2_B12_S01_M3C 0 3 21 -3
-47529984 L2_B12_S01_M2C 0 3 21 -2
-47532032 L2_B12_S01_M1C 0 3 21 -1
-47534080 L2_B12_S01_M0 0 3 21 0
-47536128 L2_B12_S01_M1A 0 3 21 1
-47538176 L2_B12_S01_M2A 0 3 21 2
-47540224 L2_B12_S01_M3A 0 3 21 3
-47542272 L2_B12_S01_M4A 0 3 21 4
-47544320 L2_B12_S01_M5A 0 3 21 5
-47546368 L2_B12_S01_M6A 0 3 21 6
-47587328 L2_B12_S02_M6C 0 3 22 -6
-47589376 L2_B12_S02_M5C 0 3 22 -5
-47591424 L2_B12_S02_M4C 0 3 22 -4
-47593472 L2_B12_S02_M3C 0 3 22 -3
-47595520 L2_B12_S02_M2C 0 3 22 -2
-47597568 L2_B12_S02_M1C 0 3 22 -1
-47599616 L2_B12_S02_M0 0 3 22 0
-47601664 L2_B12_S02_M1A 0 3 22 1
-47603712 L2_B12_S02_M2A 0 3 22 2
-47605760 L2_B12_S02_M3A 0 3 22 3
-47607808 L2_B12_S02_M4A 0 3 22 4
-47609856 L2_B12_S02_M5A 0 3 22 5
-47611904 L2_B12_S02_M6A 0 3 22 6
-47652864 L2_B13_S01_M6C 0 3 23 -6
-47654912 L2_B13_S01_M5C 0 3 23 -5
-47656960 L2_B13_S01_M4C 0 3 23 -4
-47659008 L2_B13_S01_M3C 0 3 23 -3
-47661056 L2_B13_S01_M2C 0 3 23 -2
-47663104 L2_B13_S01_M1C 0 3 23 -1
-47665152 L2_B13_S01_M0 0 3 23 0 
-47667200 L2_B13_S01_M1A 0 3 23 1 
-47669248 L2_B13_S01_M2A 0 3 23 2 
-47671296 L2_B13_S01_M3A 0 3 23 3 
-47673344 L2_B13_S01_M4A 0 3 23 4 
-47675392 L2_B13_S01_M5A 0 3 23 5 
-47677440 L2_B13_S01_M6A 0 3 23 6 
-47718400 L2_B13_S02_M6C 0 3 24 -6
-47720448 L2_B13_S02_M5C 0 3 24 -5
-47722496 L2_B13_S02_M4C 0 3 24 -4
-47724544 L2_B13_S02_M3C 0 3 24 -3
-47726592 L2_B13_S02_M2C 0 3 24 -2
-47728640 L2_B13_S02_M1C 0 3 24 -1
-47730688 L2_B13_S02_M0 0 3 24 0
-47732736 L2_B13_S02_M1A 0 3 24 1
-47734784 L2_B13_S02_M2A 0 3 24 2
-47736832 L2_B13_S02_M3A 0 3 24 3
-47738880 L2_B13_S02_M4A 0 3 24 4
-47740928 L2_B13_S02_M5A 0 3 24 5
-47742976 L2_B13_S02_M6A 0 3 24 6
-47783936 L2_B14_S01_M6C 0 3 25 -6
-47785984 L2_B14_S01_M5C 0 3 25 -5
-47788032 L2_B14_S01_M4C 0 3 25 -4
-47790080 L2_B14_S01_M3C 0 3 25 -3
-47792128 L2_B14_S01_M2C 0 3 25 -2
-47794176 L2_B14_S01_M1C 0 3 25 -1
-47796224 L2_B14_S01_M0 0 3 25 0
-47798272 L2_B14_S01_M1A 0 3 25 1
-47800320 L2_B14_S01_M2A 0 3 25 2
-47802368 L2_B14_S01_M3A 0 3 25 3
-47804416 L2_B14_S01_M4A 0 3 25 4
-47806464 L2_B14_S01_M5A 0 3 25 5
-47808512 L2_B14_S01_M6A 0 3 25 6
-47849472 L2_B14_S02_M6C 0 3 26 -6
-47851520 L2_B14_S02_M5C 0 3 26 -5
-47853568 L2_B14_S02_M4C 0 3 26 -4
-47855616 L2_B14_S02_M3C 0 3 26 -3
-47857664 L2_B14_S02_M2C 0 3 26 -2
-47859712 L2_B14_S02_M1C 0 3 26 -1
-47861760 L2_B14_S02_M0 0 3 26 0
-47863808 L2_B14_S02_M1A 0 3 26 1
-47865856 L2_B14_S02_M2A 0 3 26 2
-47867904 L2_B14_S02_M3A 0 3 26 3
-47869952 L2_B14_S02_M4A 0 3 26 4
-47872000 L2_B14_S02_M5A 0 3 26 5
-47874048 L2_B14_S02_M6A 0 3 26 6
-47915008 L2_B15_S01_M6C 0 3 27 -6
-47917056 L2_B15_S01_M5C 0 3 27 -5
-47919104 L2_B15_S01_M4C 0 3 27 -4
-47921152 L2_B15_S01_M3C 0 3 27 -3
-47923200 L2_B15_S01_M2C 0 3 27 -2
-47925248 L2_B15_S01_M1C 0 3 27 -1
-47927296 L2_B15_S01_M0 0 3 27 0 
-47929344 L2_B15_S01_M1A 0 3 27 1 
-47931392 L2_B15_S01_M2A 0 3 27 2 
-47933440 L2_B15_S01_M3A 0 3 27 3 
-47935488 L2_B15_S01_M4A 0 3 27 4 
-47937536 L2_B15_S01_M5A 0 3 27 5 
-47939584 L2_B15_S01_M6A 0 3 27 6 
-47980544 L2_B15_S02_M6C 0 3 28 -6
-47982592 L2_B15_S02_M5C 0 3 28 -5
-47984640 L2_B15_S02_M4C 0 3 28 -4
-47986688 L2_B15_S02_M3C 0 3 28 -3
-47988736 L2_B15_S02_M2C 0 3 28 -2
-47990784 L2_B15_S02_M1C 0 3 28 -1
-47992832 L2_B15_S02_M0 0 3 28 0
-47994880 L2_B15_S02_M1A 0 3 28 1
-47996928 L2_B15_S02_M2A 0 3 28 2
-47998976 L2_B15_S02_M3A 0 3 28 3
-48001024 L2_B15_S02_M4A 0 3 28 4
-48003072 L2_B15_S02_M5A 0 3 28 5
-48005120 L2_B15_S02_M6A 0 3 28 6
-48046080 L2_B16_S01_M6C 0 3 29 -6
-48048128 L2_B16_S01_M5C 0 3 29 -5
-48050176 L2_B16_S01_M4C 0 3 29 -4
-48052224 L2_B16_S01_M3C 0 3 29 -3
-48054272 L2_B16_S01_M2C 0 3 29 -2
-48056320 L2_B16_S01_M1C 0 3 29 -1
-48058368 L2_B16_S01_M0 0 3 29 0
-48060416 L2_B16_S01_M1A 0 3 29 1
-48062464 L2_B16_S01_M2A 0 3 29 2
-48064512 L2_B16_S01_M3A 0 3 29 3
-48066560 L2_B16_S01_M4A 0 3 29 4
-48068608 L2_B16_S01_M5A 0 3 29 5
-48070656 L2_B16_S01_M6A 0 3 29 6
-48111616 L2_B16_S02_M6C 0 3 30 -6
-48113664 L2_B16_S02_M5C 0 3 30 -5
-48115712 L2_B16_S02_M4C 0 3 30 -4
-48117760 L2_B16_S02_M3C 0 3 30 -3
-48119808 L2_B16_S02_M2C 0 3 30 -2
-48121856 L2_B16_S02_M1C 0 3 30 -1
-48123904 L2_B16_S02_M0 0 3 30 0
-48125952 L2_B16_S02_M1A 0 3 30 1
-48128000 L2_B16_S02_M2A 0 3 30 2
-48130048 L2_B16_S02_M3A 0 3 30 3
-48132096 L2_B16_S02_M4A 0 3 30 4
-48134144 L2_B16_S02_M5A 0 3 30 5
-48136192 L2_B16_S02_M6A 0 3 30 6
-48177152 L2_B17_S01_M6C 0 3 31 -6
-48179200 L2_B17_S01_M5C 0 3 31 -5
-48181248 L2_B17_S01_M4C 0 3 31 -4
-48183296 L2_B17_S01_M3C 0 3 31 -3
-48185344 L2_B17_S01_M2C 0 3 31 -2
-48187392 L2_B17_S01_M1C 0 3 31 -1
-48189440 L2_B17_S01_M0 0 3 31 0
-48191488 L2_B17_S01_M1A 0 3 31 1
-48193536 L2_B17_S01_M2A 0 3 31 2
-48195584 L2_B17_S01_M3A 0 3 31 3
-48197632 L2_B17_S01_M4A 0 3 31 4
-48199680 L2_B17_S01_M5A 0 3 31 5
-48201728 L2_B17_S01_M6A 0 3 31 6
-48242688 L2_B17_S02_M6C 0 3 32 -6
-48244736 L2_B17_S02_M5C 0 3 32 -5
-48246784 L2_B17_S02_M4C 0 3 32 -4
-48248832 L2_B17_S02_M3C 0 3 32 -3
-48250880 L2_B17_S02_M2C 0 3 32 -2
-48252928 L2_B17_S02_M1C 0 3 32 -1
-48254976 L2_B17_S02_M0 0 3 32 0 
-48257024 L2_B17_S02_M1A 0 3 32 1 
-48259072 L2_B17_S02_M2A 0 3 32 2 
-48261120 L2_B17_S02_M3A 0 3 32 3 
-48263168 L2_B17_S02_M4A 0 3 32 4 
-48265216 L2_B17_S02_M5A 0 3 32 5 
-48267264 L2_B17_S02_M6A 0 3 32 6 
-48308224 L2_B18_S01_M6C 0 3 33 -6
-48310272 L2_B18_S01_M5C 0 3 33 -5
-48312320 L2_B18_S01_M4C 0 3 33 -4
-48314368 L2_B18_S01_M3C 0 3 33 -3
-48316416 L2_B18_S01_M2C 0 3 33 -2
-48318464 L2_B18_S01_M1C 0 3 33 -1
-48320512 L2_B18_S01_M0 0 3 33 0
-48322560 L2_B18_S01_M1A 0 3 33 1
-48324608 L2_B18_S01_M2A 0 3 33 2
-48326656 L2_B18_S01_M3A 0 3 33 3
-48328704 L2_B18_S01_M4A 0 3 33 4
-48330752 L2_B18_S01_M5A 0 3 33 5
-48332800 L2_B18_S01_M6A 0 3 33 6
-48373760 L2_B18_S02_M6C 0 3 34 -6
-48375808 L2_B18_S02_M5C 0 3 34 -5
-48377856 L2_B18_S02_M4C 0 3 34 -4
-48379904 L2_B18_S02_M3C 0 3 34 -3
-48381952 L2_B18_S02_M2C 0 3 34 -2
-48384000 L2_B18_S02_M1C 0 3 34 -1
-48386048 L2_B18_S02_M0 0 3 34 0
-48388096 L2_B18_S02_M1A 0 3 34 1
-48390144 L2_B18_S02_M2A 0 3 34 2
-48392192 L2_B18_S02_M3A 0 3 34 3
-48394240 L2_B18_S02_M4A 0 3 34 4
-48396288 L2_B18_S02_M5A 0 3 34 5
-48398336 L2_B18_S02_M6A 0 3 34 6
-48439296 L2_B19_S01_M6C 0 3 35 -6
-48441344 L2_B19_S01_M5C 0 3 35 -5
-48443392 L2_B19_S01_M4C 0 3 35 -4
-48445440 L2_B19_S01_M3C 0 3 35 -3
-48447488 L2_B19_S01_M2C 0 3 35 -2
-48449536 L2_B19_S01_M1C 0 3 35 -1
-48451584 L2_B19_S01_M0 0 3 35 0
-48453632 L2_B19_S01_M1A 0 3 35 1
-48455680 L2_B19_S01_M2A 0 3 35 2
-48457728 L2_B19_S01_M3A 0 3 35 3
-48459776 L2_B19_S01_M4A 0 3 35 4
-48461824 L2_B19_S01_M5A 0 3 35 5
-48463872 L2_B19_S01_M6A 0 3 35 6
-48504832 L2_B19_S02_M6C 0 3 36 -6
-48506880 L2_B19_S02_M5C 0 3 36 -5
-48508928 L2_B19_S02_M4C 0 3 36 -4
-48510976 L2_B19_S02_M3C 0 3 36 -3
-48513024 L2_B19_S02_M2C 0 3 36 -2
-48515072 L2_B19_S02_M1C 0 3 36 -1
-48517120 L2_B19_S02_M0 0 3 36 0
-48519168 L2_B19_S02_M1A 0 3 36 1
-48521216 L2_B19_S02_M2A 0 3 36 2
-48523264 L2_B19_S02_M3A 0 3 36 3
-48525312 L2_B19_S02_M4A 0 3 36 4
-48527360 L2_B19_S02_M5A 0 3 36 5
-48529408 L2_B19_S02_M6A 0 3 36 6
-48570368 L2_B20_S01_M6C 0 3 37 -6
-48572416 L2_B20_S01_M5C 0 3 37 -5
-48574464 L2_B20_S01_M4C 0 3 37 -4
-48576512 L2_B20_S01_M3C 0 3 37 -3
-48578560 L2_B20_S01_M2C 0 3 37 -2
-48580608 L2_B20_S01_M1C 0 3 37 -1
-48582656 L2_B20_S01_M0 0 3 37 0
-48584704 L2_B20_S01_M1A 0 3 37 1
-48586752 L2_B20_S01_M2A 0 3 37 2
-48588800 L2_B20_S01_M3A 0 3 37 3
-48590848 L2_B20_S01_M4A 0 3 37 4
-48592896 L2_B20_S01_M5A 0 3 37 5
-48594944 L2_B20_S01_M6A 0 3 37 6
-48635904 L2_B20_S02_M6C 0 3 38 -6
-48637952 L2_B20_S02_M5C 0 3 38 -5
-48640000 L2_B20_S02_M4C 0 3 38 -4
-48642048 L2_B20_S02_M3C 0 3 38 -3
-48644096 L2_B20_S02_M2C 0 3 38 -2
-48646144 L2_B20_S02_M1C 0 3 38 -1
-48648192 L2_B20_S02_M0 0 3 38 0
-48650240 L2_B20_S02_M1A 0 3 38 1
-48652288 L2_B20_S02_M2A 0 3 38 2
-48654336 L2_B20_S02_M3A 0 3 38 3
-48656384 L2_B20_S02_M4A 0 3 38 4
-48658432 L2_B20_S02_M5A 0 3 38 5
-48660480 L2_B20_S02_M6A 0 3 38 6
-48701440 L2_B21_S01_M6C 0 3 39 -6
-48703488 L2_B21_S01_M5C 0 3 39 -5
-48705536 L2_B21_S01_M4C 0 3 39 -4
-48707584 L2_B21_S01_M3C 0 3 39 -3
-48709632 L2_B21_S01_M2C 0 3 39 -2
-48711680 L2_B21_S01_M1C 0 3 39 -1
-48713728 L2_B21_S01_M0 0 3 39 0
-48715776 L2_B21_S01_M1A 0 3 39 1
-48717824 L2_B21_S01_M2A 0 3 39 2
-48719872 L2_B21_S01_M3A 0 3 39 3
-48721920 L2_B21_S01_M4A 0 3 39 4
-48723968 L2_B21_S01_M5A 0 3 39 5
-48726016 L2_B21_S01_M6A 0 3 39 6
-48766976 L2_B21_S02_M6C 0 3 40 -6
-48769024 L2_B21_S02_M5C 0 3 40 -5
-48771072 L2_B21_S02_M4C 0 3 40 -4
-48773120 L2_B21_S02_M3C 0 3 40 -3
-48775168 L2_B21_S02_M2C 0 3 40 -2
-48777216 L2_B21_S02_M1C 0 3 40 -1
-48779264 L2_B21_S02_M0 0 3 40 0
-48781312 L2_B21_S02_M1A 0 3 40 1
-48783360 L2_B21_S02_M2A 0 3 40 2
-48785408 L2_B21_S02_M3A 0 3 40 3
-48787456 L2_B21_S02_M4A 0 3 40 4
-48789504 L2_B21_S02_M5A 0 3 40 5
-48791552 L2_B21_S02_M6A 0 3 40 6
-48832512 L2_B22_S01_M6C 0 3 41 -6
-48834560 L2_B22_S01_M5C 0 3 41 -5
-48836608 L2_B22_S01_M4C 0 3 41 -4
-48838656 L2_B22_S01_M3C 0 3 41 -3
-48840704 L2_B22_S01_M2C 0 3 41 -2
-48842752 L2_B22_S01_M1C 0 3 41 -1
-48844800 L2_B22_S01_M0 0 3 41 0
-48846848 L2_B22_S01_M1A 0 3 41 1
-48848896 L2_B22_S01_M2A 0 3 41 2
-48850944 L2_B22_S01_M3A 0 3 41 3
-48852992 L2_B22_S01_M4A 0 3 41 4
-48855040 L2_B22_S01_M5A 0 3 41 5
-48857088 L2_B22_S01_M6A 0 3 41 6
-48898048 L2_B22_S02_M6C 0 3 42 -6
-48900096 L2_B22_S02_M5C 0 3 42 -5
-48902144 L2_B22_S02_M4C 0 3 42 -4
-48904192 L2_B22_S02_M3C 0 3 42 -3
-48906240 L2_B22_S02_M2C 0 3 42 -2
-48908288 L2_B22_S02_M1C 0 3 42 -1
-48910336 L2_B22_S02_M0 0 3 42 0
-48912384 L2_B22_S02_M1A 0 3 42 1
-48914432 L2_B22_S02_M2A 0 3 42 2
-48916480 L2_B22_S02_M3A 0 3 42 3
-48918528 L2_B22_S02_M4A 0 3 42 4
-48920576 L2_B22_S02_M5A 0 3 42 5
-48922624 L2_B22_S02_M6A 0 3 42 6
-48963584 L2_B23_S01_M6C 0 3 43 -6
-48965632 L2_B23_S01_M5C 0 3 43 -5
-48967680 L2_B23_S01_M4C 0 3 43 -4
-48969728 L2_B23_S01_M3C 0 3 43 -3
-48971776 L2_B23_S01_M2C 0 3 43 -2
-48973824 L2_B23_S01_M1C 0 3 43 -1
-48975872 L2_B23_S01_M0 0 3 43 0
-48977920 L2_B23_S01_M1A 0 3 43 1
-48979968 L2_B23_S01_M2A 0 3 43 2
-48982016 L2_B23_S01_M3A 0 3 43 3
-48984064 L2_B23_S01_M4A 0 3 43 4
-48986112 L2_B23_S01_M5A 0 3 43 5
-48988160 L2_B23_S01_M6A 0 3 43 6
-49029120 L2_B23_S02_M6C 0 3 44 -6
-49031168 L2_B23_S02_M5C 0 3 44 -5
-49033216 L2_B23_S02_M4C 0 3 44 -4
-49035264 L2_B23_S02_M3C 0 3 44 -3
-49037312 L2_B23_S02_M2C 0 3 44 -2
-49039360 L2_B23_S02_M1C 0 3 44 -1
-49041408 L2_B23_S02_M0 0 3 44 0
-49043456 L2_B23_S02_M1A 0 3 44 1
-49045504 L2_B23_S02_M2A 0 3 44 2
-49047552 L2_B23_S02_M3A 0 3 44 3
-49049600 L2_B23_S02_M4A 0 3 44 4
-49051648 L2_B23_S02_M5A 0 3 44 5
-49053696 L2_B23_S02_M6A 0 3 44 6
-49094656 L2_B24_S01_M6C 0 3 45 -6
-49096704 L2_B24_S01_M5C 0 3 45 -5
-49098752 L2_B24_S01_M4C 0 3 45 -4
-49100800 L2_B24_S01_M3C 0 3 45 -3
-49102848 L2_B24_S01_M2C 0 3 45 -2
-49104896 L2_B24_S01_M1C 0 3 45 -1
-49106944 L2_B24_S01_M0 0 3 45 0
-49108992 L2_B24_S01_M1A 0 3 45 1
-49111040 L2_B24_S01_M2A 0 3 45 2
-49113088 L2_B24_S01_M3A 0 3 45 3
-49115136 L2_B24_S01_M4A 0 3 45 4
-49117184 L2_B24_S01_M5A 0 3 45 5
-49119232 L2_B24_S01_M6A 0 3 45 6
-49160192 L2_B24_S02_M6C 0 3 46 -6
-49162240 L2_B24_S02_M5C 0 3 46 -5
-49164288 L2_B24_S02_M4C 0 3 46 -4
-49166336 L2_B24_S02_M3C 0 3 46 -3
-49168384 L2_B24_S02_M2C 0 3 46 -2
-49170432 L2_B24_S02_M1C 0 3 46 -1
-49172480 L2_B24_S02_M0 0 3 46 0
-49174528 L2_B24_S02_M1A 0 3 46 1
-49176576 L2_B24_S02_M2A 0 3 46 2
-49178624 L2_B24_S02_M3A 0 3 46 3
-49180672 L2_B24_S02_M4A 0 3 46 4
-49182720 L2_B24_S02_M5A 0 3 46 5
-49184768 L2_B24_S02_M6A 0 3 46 6
-49225728 L2_B25_S01_M6C 0 3 47 -6
-49227776 L2_B25_S01_M5C 0 3 47 -5
-49229824 L2_B25_S01_M4C 0 3 47 -4
-49231872 L2_B25_S01_M3C 0 3 47 -3
-49233920 L2_B25_S01_M2C 0 3 47 -2
-49235968 L2_B25_S01_M1C 0 3 47 -1
-49238016 L2_B25_S01_M0 0 3 47 0
-49240064 L2_B25_S01_M1A 0 3 47 1
-49242112 L2_B25_S01_M2A 0 3 47 2
-49244160 L2_B25_S01_M3A 0 3 47 3
-49246208 L2_B25_S01_M4A 0 3 47 4
-49248256 L2_B25_S01_M5A 0 3 47 5
-49250304 L2_B25_S01_M6A 0 3 47 6
-49291264 L2_B25_S02_M6C 0 3 48 -6
-49293312 L2_B25_S02_M5C 0 3 48 -5
-49295360 L2_B25_S02_M4C 0 3 48 -4
-49297408 L2_B25_S02_M3C 0 3 48 -3
-49299456 L2_B25_S02_M2C 0 3 48 -2
-49301504 L2_B25_S02_M1C 0 3 48 -1
-49303552 L2_B25_S02_M0 0 3 48 0
-49305600 L2_B25_S02_M1A 0 3 48 1
-49307648 L2_B25_S02_M2A 0 3 48 2
-49309696 L2_B25_S02_M3A 0 3 48 3
-49311744 L2_B25_S02_M4A 0 3 48 4
-49313792 L2_B25_S02_M5A 0 3 48 5
-49315840 L2_B25_S02_M6A 0 3 48 6
-49356800 L2_B26_S01_M6C 0 3 49 -6
-49358848 L2_B26_S01_M5C 0 3 49 -5
-49360896 L2_B26_S01_M4C 0 3 49 -4
-49362944 L2_B26_S01_M3C 0 3 49 -3
-49364992 L2_B26_S01_M2C 0 3 49 -2
-49367040 L2_B26_S01_M1C 0 3 49 -1
-49369088 L2_B26_S01_M0 0 3 49 0
-49371136 L2_B26_S01_M1A 0 3 49 1
-49373184 L2_B26_S01_M2A 0 3 49 2
-49375232 L2_B26_S01_M3A 0 3 49 3
-49377280 L2_B26_S01_M4A 0 3 49 4
-49379328 L2_B26_S01_M5A 0 3 49 5
-49381376 L2_B26_S01_M6A 0 3 49 6
-49422336 L2_B26_S02_M6C 0 3 50 -6
-49424384 L2_B26_S02_M5C 0 3 50 -5
-49426432 L2_B26_S02_M4C 0 3 50 -4
-49428480 L2_B26_S02_M3C 0 3 50 -3
-49430528 L2_B26_S02_M2C 0 3 50 -2
-49432576 L2_B26_S02_M1C 0 3 50 -1
-49434624 L2_B26_S02_M0 0 3 50 0
-49436672 L2_B26_S02_M1A 0 3 50 1
-49438720 L2_B26_S02_M2A 0 3 50 2
-49440768 L2_B26_S02_M3A 0 3 50 3
-49442816 L2_B26_S02_M4A 0 3 50 4
-49444864 L2_B26_S02_M5A 0 3 50 5
-49446912 L2_B26_S02_M6A 0 3 50 6
-49487872 L2_B01_S01_M6C 0 3 51 -6
-49489920 L2_B01_S01_M5C 0 3 51 -5
-49491968 L2_B01_S01_M4C 0 3 51 -4
-49494016 L2_B01_S01_M3C 0 3 51 -3
-49496064 L2_B01_S01_M2C 0 3 51 -2
-49498112 L2_B01_S01_M1C 0 3 51 -1
-49500160 L2_B01_S01_M0 0 3 51 0 
-49502208 L2_B01_S01_M1A 0 3 51 1 
-49504256 L2_B01_S01_M2A 0 3 51 2 
-49506304 L2_B01_S01_M3A 0 3 51 3 
-49508352 L2_B01_S01_M4A 0 3 51 4 
-49510400 L2_B01_S01_M5A 0 3 51 5 
-49512448 L2_B01_S01_M6A 0 3 51 6 
-50352128 D1A_B01_S2_M1 2 0 0 0  
-50417664 D1A_B01_S2_M6 2 0 1 0  
-50483200 D1A_B01_S2_M2 2 0 2 0  
-50548736 D1A_B01_S2_M5 2 0 3 0  
-50614272 D1A_B01_S2_M3 2 0 4 0  
-50679808 D1A_B01_S2_M4 2 0 5 0  
-50745344 D1A_B02_S1_M1 2 0 6 0  
-50810880 D1A_B02_S1_M6 2 0 7 0  
-50876416 D1A_B02_S1_M2 2 0 8 0  
-50941952 D1A_B02_S1_M5 2 0 9 0  
-51007488 D1A_B02_S1_M3 2 0 10 0 
-51073024 D1A_B02_S1_M4 2 0 11 0 
-51138560 D1A_B02_S2_M1 2 0 12 0 
-51204096 D1A_B02_S2_M6 2 0 13 0 
-51269632 D1A_B02_S2_M2 2 0 14 0 
-51335168 D1A_B02_S2_M5 2 0 15 0 
-51400704 D1A_B02_S2_M3 2 0 16 0 
-51466240 D1A_B02_S2_M4 2 0 17 0 
-51531776 D1A_B03_S1_M1 2 0 18 0 
-51597312 D1A_B03_S1_M6 2 0 19 0 
-51662848 D1A_B03_S1_M2 2 0 20 0 
-51728384 D1A_B03_S1_M5 2 0 21 0 
-51793920 D1A_B03_S1_M3 2 0 22 0 
-51859456 D1A_B03_S1_M4 2 0 23 0 
-51924992 D1A_B03_S2_M1 2 0 24 0 
-51990528 D1A_B03_S2_M6 2 0 25 0 
-52056064 D1A_B03_S2_M2 2 0 26 0 
-52121600 D1A_B03_S2_M5 2 0 27 0 
-52187136 D1A_B03_S2_M3 2 0 28 0 
-52252672 D1A_B03_S2_M4 2 0 29 0 
-52318208 D1A_B04_S1_M1 2 0 30 0 
-52383744 D1A_B04_S1_M6 2 0 31 0 
-52449280 D1A_B04_S1_M2 2 0 32 0 
-52514816 D1A_B04_S1_M5 2 0 33 0 
-52580352 D1A_B04_S1_M3 2 0 34 0 
-52645888 D1A_B04_S1_M4 2 0 35 0 
-52711424 D1A_B04_S2_M1 2 0 36 0 
-52776960 D1A_B04_S2_M6 2 0 37 0 
-52842496 D1A_B04_S2_M2 2 0 38 0 
-52908032 D1A_B04_S2_M5 2 0 39 0 
-52973568 D1A_B04_S2_M3 2 0 40 0 
-53039104 D1A_B04_S2_M4 2 0 41 0 
-53104640 D1A_B01_S1_M1 2 0 42 0 
-53170176 D1A_B01_S1_M6 2 0 43 0 
-53235712 D1A_B01_S1_M2 2 0 44 0 
-53301248 D1A_B01_S1_M5 2 0 45 0 
-53366784 D1A_B01_S1_M3 2 0 46 0 
-53432320 D1A_B01_S1_M4 2 0 47 0 
-54546432 D2A_B01_S2_M1 2 1 0 0  
-54611968 D2A_B01_S2_M6 2 1 1 0  
-54677504 D2A_B01_S2_M2 2 1 2 0  
-54743040 D2A_B01_S2_M5 2 1 3 0  
-54808576 D2A_B01_S2_M3 2 1 4 0  
-54874112 D2A_B01_S2_M4 2 1 5 0  
-54939648 D2A_B02_S1_M1 2 1 6 0  
-55005184 D2A_B02_S1_M6 2 1 7 0  
-55070720 D2A_B02_S1_M2 2 1 8 0  
-55136256 D2A_B02_S1_M5 2 1 9 0  
-55201792 D2A_B02_S1_M3 2 1 10 0 
-55267328 D2A_B02_S1_M4 2 1 11 0 
-55332864 D2A_B02_S2_M1 2 1 12 0 
-55398400 D2A_B02_S2_M6 2 1 13 0 
-55463936 D2A_B02_S2_M2 2 1 14 0 
-55529472 D2A_B02_S2_M5 2 1 15 0 
-55595008 D2A_B02_S2_M3 2 1 16 0 
-55660544 D2A_B02_S2_M4 2 1 17 0 
-55726080 D2A_B03_S1_M1 2 1 18 0 
-55791616 D2A_B03_S1_M6 2 1 19 0 
-55857152 D2A_B03_S1_M2 2 1 20 0 
-55922688 D2A_B03_S1_M5 2 1 21 0 
-55988224 D2A_B03_S1_M3 2 1 22 0 
-56053760 D2A_B03_S1_M4 2 1 23 0 
-56119296 D2A_B03_S2_M1 2 1 24 0 
-56184832 D2A_B03_S2_M6 2 1 25 0 
-56250368 D2A_B03_S2_M2 2 1 26 0 
-56315904 D2A_B03_S2_M5 2 1 27 0 
-56381440 D2A_B03_S2_M3 2 1 28 0 
-56446976 D2A_B03_S2_M4 2 1 29 0 
-56512512 D2A_B04_S1_M1 2 1 30 0 
-56578048 D2A_B04_S1_M6 2 1 31 0 
-56643584 D2A_B04_S1_M2 2 1 32 0 
-56709120 D2A_B04_S1_M5 2 1 33 0 
-56774656 D2A_B04_S1_M3 2 1 34 0 
-56840192 D2A_B04_S1_M4 2 1 35 0 
-56905728 D2A_B04_S2_M1 2 1 36 0 
-56971264 D2A_B04_S2_M6 2 1 37 0 
-57036800 D2A_B04_S2_M2 2 1 38 0 
-57102336 D2A_B04_S2_M5 2 1 39 0 
-57167872 D2A_B04_S2_M3 2 1 40 0 
-57233408 D2A_B04_S2_M4 2 1 41 0 
-57298944 D2A_B01_S1_M1 2 1 42 0 
-57364480 D2A_B01_S1_M6 2 1 43 0 
-57430016 D2A_B01_S1_M2 2 1 44 0 
-57495552 D2A_B01_S1_M5 2 1 45 0 
-57561088 D2A_B01_S1_M3 2 1 46 0 
-57626624 D2A_B01_S1_M4 2 1 47 0 
-58740736 D3A_B01_S2_M1 2 2 0 0  
-58806272 D3A_B01_S2_M6 2 2 1 0  
-58871808 D3A_B01_S2_M2 2 2 2 0  
-58937344 D3A_B01_S2_M5 2 2 3 0  
-59002880 D3A_B01_S2_M3 2 2 4 0  
-59068416 D3A_B01_S2_M4 2 2 5 0  
-59133952 D3A_B02_S1_M1 2 2 6 0  
-59199488 D3A_B02_S1_M6 2 2 7 0  
-59265024 D3A_B02_S1_M2 2 2 8 0  
-59330560 D3A_B02_S1_M5 2 2 9 0  
-59396096 D3A_B02_S1_M3 2 2 10 0 
-59461632 D3A_B02_S1_M4 2 2 11 0 
-59527168 D3A_B02_S2_M1 2 2 12 0 
-59592704 D3A_B02_S2_M6 2 2 13 0 
-59658240 D3A_B02_S2_M2 2 2 14 0 
-59723776 D3A_B02_S2_M5 2 2 15 0 
-59789312 D3A_B02_S2_M3 2 2 16 0 
-59854848 D3A_B02_S2_M4 2 2 17 0 
-59920384 D3A_B03_S1_M1 2 2 18 0 
-59985920 D3A_B03_S1_M6 2 2 19 0 
-60051456 D3A_B03_S1_M2 2 2 20 0 
-60116992 D3A_B03_S1_M5 2 2 21 0 
-60182528 D3A_B03_S1_M3 2 2 22 0 
-60248064 D3A_B03_S1_M4 2 2 23 0 
-60313600 D3A_B03_S2_M1 2 2 24 0 
-60379136 D3A_B03_S2_M6 2 2 25 0 
-60444672 D3A_B03_S2_M2 2 2 26 0 
-60510208 D3A_B03_S2_M5 2 2 27 0 
-60575744 D3A_B03_S2_M3 2 2 28 0 
-60641280 D3A_B03_S2_M4 2 2 29 0 
-60706816 D3A_B04_S1_M1 2 2 30 0 
-60772352 D3A_B04_S1_M6 2 2 31 0 
-60837888 D3A_B04_S1_M2 2 2 32 0 
-60903424 D3A_B04_S1_M5 2 2 33 0 
-60968960 D3A_B04_S1_M3 2 2 34 0 
-61034496 D3A_B04_S1_M4 2 2 35 0 
-61100032 D3A_B04_S2_M1 2 2 36 0 
-61165568 D3A_B04_S2_M6 2 2 37 0 
-61231104 D3A_B04_S2_M2 2 2 38 0 
-61296640 D3A_B04_S2_M5 2 2 39 0 
-61362176 D3A_B04_S2_M3 2 2 40 0 
-61427712 D3A_B04_S2_M4 2 2 41 0 
-61493248 D3A_B01_S1_M1 2 2 42 0 
-61558784 D3A_B01_S1_M6 2 2 43 0 
-61624320 D3A_B01_S1_M2 2 2 44 0 
-61689856 D3A_B01_S1_M5 2 2 45 0 
-61755392 D3A_B01_S1_M3 2 2 46 0 
-61820928 D3A_B01_S1_M4 2 2 47 0 
-67129344 LI_S15_A_34_M3_A1_1 4 0 0 0  	
-67194880 LI_S15_A_34_M4_A4_1 4 0 1 0     	
-67260416 LI_S15_A_12_M1_A1_2 4 0 2 0     	
-67325952 LI_S15_A_12_M2_A4_2 4 0 3 0     	
-71323648 LI_S15_A_34_M3_A2_1 4 1 0 0     	
-71389184 LI_S15_A_34_M4_A5_1 4 1 1 0     	
-71454720 LI_S15_A_12_M1_A2_2 4 1 2 0     	
-71520256 LI_S15_A_12_M2_A5_2 4 1 3 0     	
-75517952 LI_S15_A_34_M3_A3_1 4 2 0 0    	
-75583488 LI_S15_A_34_M4_A6_1 4 2 1 0     	
-75649024 LI_S15_A_12_M1_A3_2 4 2 2 0    	
-75714560 LI_S15_A_12_M2_A6_2 4 2 3 0     	
diff --git a/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelConditionsSummaryTool.cxx b/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelConditionsSummaryTool.cxx
index a7c05be15fb0981d7d569d623a3985c2d9b59b87..a35fee8446aa433968e6074115acb70255246b38 100644
--- a/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelConditionsSummaryTool.cxx
+++ b/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelConditionsSummaryTool.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef SIMULATIONBASE
@@ -34,38 +34,51 @@ StatusCode PixelConditionsSummaryTool::initialize(){
 
   ATH_CHECK(setProperties());
 
-  if (m_useDCSState)   { ATH_CHECK(m_DCSConditionsTool.retrieve()); }
+  if (m_useDCSState) {
+    ATH_CHECK(m_condDCSStateKey.initialize());
+    ATH_CHECK(m_condDCSStatusKey.initialize());
+  }
 
   if (m_useByteStream) { ATH_CHECK(m_pixelBSErrorsSvc.retrieve()); }
 
   ATH_CHECK(detStore()->retrieve(m_pixelID,"PixelID"));
 
-  if (m_useTDAQ || m_useDeadMap) { ATH_CHECK(m_condKey.initialize()); }
+  if (m_useTDAQ) { ATH_CHECK(m_condTDAQKey.initialize()); }
 
-  return StatusCode::SUCCESS;
-}
+  if (m_useDeadMap) { ATH_CHECK(m_condDeadMapKey.initialize()); }
 
-bool PixelConditionsSummaryTool::isActive(const Identifier & elementId, const InDetConditions::Hierarchy h) const {
-
-  UNUSED_VARIABLE(h);
-
-  IdentifierHash moduleHash = m_pixelID->wafer_hash(elementId);
-
-  if (m_useByteStream && !m_pixelBSErrorsSvc->isActive(moduleHash)) { return false; }
-
-  if (m_useDCSState) {
-    bool isDCSActive = false;
-    std::string dcsState = m_DCSConditionsTool->PixelFSMState(moduleHash);
+  for (unsigned int istate=0; istate<m_isActiveStates.size(); istate++) {
+    if      (m_isActiveStates[istate]=="READY")      { m_activeState.push_back(PixelModuleData::DCSModuleState::READY); }
+    else if (m_isActiveStates[istate]=="ON")         { m_activeState.push_back(PixelModuleData::DCSModuleState::ON); }
+    else if (m_isActiveStates[istate]=="UNKNOWN")    { m_activeState.push_back(PixelModuleData::DCSModuleState::UNKNOWN); }
+    else if (m_isActiveStates[istate]=="TRANSITION") { m_activeState.push_back(PixelModuleData::DCSModuleState::TRANSITION); }
+    else if (m_isActiveStates[istate]=="UNDEFINED")  { m_activeState.push_back(PixelModuleData::DCSModuleState::UNDEFINED); }
+    else if (m_isActiveStates[istate]=="NOSTATE")    { m_activeState.push_back(PixelModuleData::DCSModuleState::NOSTATE); }
+    else {
+      ATH_MSG_ERROR("No matching DCS state " << m_isActiveStates[istate] << " in DCSModuleState");
+      return StatusCode::FAILURE;
+    }
+  }
 
-    for (unsigned int istate=0; istate<m_isActiveStates.size(); istate++) {
-      if (m_isActiveStates[istate]==dcsState) { isDCSActive=true; }
+  for (unsigned int istatus=0; istatus<m_isActiveStatus.size(); istatus++) {
+    if      (m_isActiveStatus[istatus]=="OK")       { m_activeStatus.push_back(PixelModuleData::DCSModuleStatus::OK); }
+    else if (m_isActiveStatus[istatus]=="WARNING")  { m_activeStatus.push_back(PixelModuleData::DCSModuleStatus::WARNING); }
+    else if (m_isActiveStatus[istatus]=="ERROR")    { m_activeStatus.push_back(PixelModuleData::DCSModuleStatus::ERROR); }
+    else if (m_isActiveStatus[istatus]=="FATAL")    { m_activeStatus.push_back(PixelModuleData::DCSModuleStatus::FATAL); }
+    else if (m_isActiveStatus[istatus]=="NOSTATUS") { m_activeStatus.push_back(PixelModuleData::DCSModuleStatus::NOSTATUS); }
+    else {
+      ATH_MSG_ERROR("No matching DCS status " << m_isActiveStatus[istatus] << " in DCSModuleStatus");
+      return StatusCode::FAILURE;
     }
-    if (!isDCSActive) { return isDCSActive; }
   }
 
-  if (m_useTDAQ && SG::ReadCondHandle<PixelModuleData>(m_condKey)->getTDAQModuleStatus(moduleHash)) { return false; }
+  return StatusCode::SUCCESS;
+}
 
-  if (m_useDeadMap && SG::ReadCondHandle<PixelModuleData>(m_condKey)->getModuleStatus(moduleHash)) { return false; }
+bool PixelConditionsSummaryTool::isActive(const Identifier & elementId, const InDetConditions::Hierarchy h) const {
+ 
+  UNUSED_VARIABLE(elementId);
+  UNUSED_VARIABLE(h);
 
   return true;
 }
@@ -75,18 +88,17 @@ bool PixelConditionsSummaryTool::isActive(const IdentifierHash & moduleHash) con
   if (m_useByteStream && !m_pixelBSErrorsSvc->isActive(moduleHash)) { return false; }
 
   if (m_useDCSState) {
+    SG::ReadCondHandle<PixelModuleData> dcsstate_data(m_condDCSStateKey);
     bool isDCSActive = false;
-    std::string dcsState = m_DCSConditionsTool->PixelFSMState(moduleHash);
-
-    for (unsigned int istate=0; istate<m_isActiveStates.size(); istate++) {
-      if (m_isActiveStates[istate]==dcsState) { isDCSActive=true; }
+    for (unsigned int istate=0; istate<m_activeState.size(); istate++) {
+      if (m_activeState[istate]==dcsstate_data->getModuleStatus(moduleHash)) { isDCSActive=true; }
     }
-    if (!isDCSActive) { return isDCSActive; }
+    if (!isDCSActive) { return false; }
   }
 
-  if (m_useTDAQ && SG::ReadCondHandle<PixelModuleData>(m_condKey)->getTDAQModuleStatus(moduleHash)) { return false; }
+  if (m_useTDAQ && SG::ReadCondHandle<PixelModuleData>(m_condTDAQKey)->getModuleStatus(moduleHash)) { return false; }
 
-  if (m_useDeadMap && SG::ReadCondHandle<PixelModuleData>(m_condKey)->getModuleStatus(moduleHash)) { return false; }
+  if (m_useDeadMap && SG::ReadCondHandle<PixelModuleData>(m_condDeadMapKey)->getModuleStatus(moduleHash)) { return false; }
 
   return true;
 }
@@ -98,46 +110,28 @@ bool PixelConditionsSummaryTool::isActive(const IdentifierHash & moduleHash, con
   if (m_useByteStream && !m_pixelBSErrorsSvc->isActive(moduleHash)) { return false; }
 
   if (m_useDCSState) {
+    SG::ReadCondHandle<PixelModuleData> dcsstate_data(m_condDCSStateKey);
     bool isDCSActive = false;
-    std::string dcsState = m_DCSConditionsTool->PixelFSMState(moduleHash);
-
-    for (unsigned int istate=0; istate<m_isActiveStates.size(); istate++) {
-      if (m_isActiveStates[istate]==dcsState) { isDCSActive=true; }
+    for (unsigned int istate=0; istate<m_activeState.size(); istate++) {
+      if (m_activeState[istate]==dcsstate_data->getModuleStatus(moduleHash)) { isDCSActive=true; }
     }
-    if (!isDCSActive) { return isDCSActive; }
+    if (!isDCSActive) { return false; }
   }
 
-  if (m_useTDAQ && SG::ReadCondHandle<PixelModuleData>(m_condKey)->getTDAQModuleStatus(moduleHash)) { return false; }
+  if (m_useTDAQ && SG::ReadCondHandle<PixelModuleData>(m_condTDAQKey)->getModuleStatus(moduleHash)) { return false; }
 
-  if (m_useDeadMap && SG::ReadCondHandle<PixelModuleData>(m_condKey)->getModuleStatus(moduleHash)) { return false; }
+  if (m_useDeadMap && SG::ReadCondHandle<PixelModuleData>(m_condDeadMapKey)->getModuleStatus(moduleHash)) { return false; }
 
   return true;
 }
 
 double PixelConditionsSummaryTool::activeFraction(const IdentifierHash & moduleHash, const Identifier & idStart, const Identifier & idEnd) const {
 
+  UNUSED_VARIABLE(moduleHash);
   UNUSED_VARIABLE(idStart);
   UNUSED_VARIABLE(idEnd);
 
-  if (m_useByteStream && !m_pixelBSErrorsSvc->isActive(moduleHash)) { return 0.; }
-
-  if (m_useDCSState) {
-    bool isDCSActive = false;
-    std::string dcsState = m_DCSConditionsTool->PixelFSMState(moduleHash);
-
-    for (unsigned int istate=0; istate<m_isActiveStates.size(); istate++) {
-      if (m_isActiveStates[istate]==dcsState) { isDCSActive=true; }
-    }
-    if (!isDCSActive) { return 0.; }
-  }
-
-  if (m_useTDAQ && SG::ReadCondHandle<PixelModuleData>(m_condKey)->getTDAQModuleStatus(moduleHash)) { return 0.0; }
-
-  if (m_useDeadMap && SG::ReadCondHandle<PixelModuleData>(m_condKey)->getModuleStatus(moduleHash)) { return 0.0; }
-
-  // TODO!!!  Calculate active fraction from dead map.
-  
-  return 1.;
+  return 1.0;
 }
 
 bool PixelConditionsSummaryTool::isGood(const Identifier & elementId, const InDetConditions::Hierarchy h)const{
@@ -150,23 +144,24 @@ bool PixelConditionsSummaryTool::isGood(const Identifier & elementId, const InDe
   if (m_useByteStream && !m_pixelBSErrorsSvc->isGood(moduleHash)) { return false; }
 
   if (m_useDCSState) {
+    SG::ReadCondHandle<PixelModuleData> dcsstate_data(m_condDCSStateKey);
     bool isDCSActive = false;
-    std::string dcsState = m_DCSConditionsTool->PixelFSMState(moduleHash);
-    bool isDCSGood = false;
-    std::string dcsStatus = m_DCSConditionsTool->PixelFSMStatus(moduleHash);
-
-    for (unsigned int istate=0; istate<m_isActiveStates.size(); istate++) {
-      if (m_isActiveStates[istate]==dcsState) { isDCSActive=true; }
+    for (unsigned int istate=0; istate<m_activeState.size(); istate++) {
+      if (m_activeState[istate]==dcsstate_data->getModuleStatus(moduleHash)) { isDCSActive=true; }
     }
-    for (unsigned int istatus=0; istatus<m_isActiveStatus.size(); istatus++) {
-      if (m_isActiveStatus[istatus]==dcsStatus) { isDCSGood=true; }
+    if (!isDCSActive) { return false; }
+
+    SG::ReadCondHandle<PixelModuleData> dcsstatus_data(m_condDCSStatusKey);
+    bool isDCSGood = false;
+    for (unsigned int istatus=0; istatus<m_activeStatus.size(); istatus++) {
+      if (m_activeStatus[istatus]==dcsstatus_data->getModuleStatus(moduleHash)) { isDCSGood=true; }
     }
-    if (!(isDCSActive && isDCSGood)) { return false; }
+    if (!isDCSGood) { return false; }
   }
 
-  if (m_useTDAQ && SG::ReadCondHandle<PixelModuleData>(m_condKey)->getTDAQModuleStatus(moduleHash)) { return false; }
+  if (m_useTDAQ && SG::ReadCondHandle<PixelModuleData>(m_condTDAQKey)->getModuleStatus(moduleHash)) { return false; }
 
-  if (m_useDeadMap && SG::ReadCondHandle<PixelModuleData>(m_condKey)->getModuleStatus(moduleHash)) { return false; }
+  if (m_useDeadMap && SG::ReadCondHandle<PixelModuleData>(m_condDeadMapKey)->getModuleStatus(moduleHash)) { return false; }
 
   return true;
 }
@@ -176,23 +171,24 @@ bool PixelConditionsSummaryTool::isGood(const IdentifierHash & moduleHash) const
   if (m_useByteStream && !m_pixelBSErrorsSvc->isGood(moduleHash)) { return false; }
 
   if (m_useDCSState) {
+    SG::ReadCondHandle<PixelModuleData> dcsstate_data(m_condDCSStateKey);
     bool isDCSActive = false;
-    std::string dcsState = m_DCSConditionsTool->PixelFSMState(moduleHash);
-    bool isDCSGood = false;
-    std::string dcsStatus = m_DCSConditionsTool->PixelFSMStatus(moduleHash);
-
-    for (unsigned int istate=0; istate<m_isActiveStates.size(); istate++) {
-      if (m_isActiveStates[istate]==dcsState) { isDCSActive=true; }
+    for (unsigned int istate=0; istate<m_activeState.size(); istate++) {
+      if (m_activeState[istate]==dcsstate_data->getModuleStatus(moduleHash)) { isDCSActive=true; }
     }
-    for (unsigned int istatus=0; istatus<m_isActiveStatus.size(); istatus++) {
-      if (m_isActiveStatus[istatus]==dcsStatus) { isDCSGood=true; }
+    if (!isDCSActive) { return false; }
+
+    SG::ReadCondHandle<PixelModuleData> dcsstatus_data(m_condDCSStatusKey);
+    bool isDCSGood = false;
+    for (unsigned int istatus=0; istatus<m_activeStatus.size(); istatus++) {
+      if (m_activeStatus[istatus]==dcsstatus_data->getModuleStatus(moduleHash)) { isDCSGood=true; }
     }
-    if (!(isDCSActive && isDCSGood)) { return false; }
+    if (!isDCSGood) { return false; }
   }
 
-  if (m_useTDAQ && SG::ReadCondHandle<PixelModuleData>(m_condKey)->getTDAQModuleStatus(moduleHash)) { return false; }
+  if (m_useTDAQ && SG::ReadCondHandle<PixelModuleData>(m_condTDAQKey)->getModuleStatus(moduleHash)) { return false; }
 
-  if (m_useDeadMap && SG::ReadCondHandle<PixelModuleData>(m_condKey)->getModuleStatus(moduleHash)) { return false; }
+  if (m_useDeadMap && SG::ReadCondHandle<PixelModuleData>(m_condDeadMapKey)->getModuleStatus(moduleHash)) { return false; }
 
   return true;
 }
@@ -204,23 +200,24 @@ bool PixelConditionsSummaryTool::isGood(const IdentifierHash & moduleHash, const
   if (m_useByteStream && !m_pixelBSErrorsSvc->isGood(moduleHash)) { return false; }
 
   if (m_useDCSState) {
+    SG::ReadCondHandle<PixelModuleData> dcsstate_data(m_condDCSStateKey);
     bool isDCSActive = false;
-    std::string dcsState = m_DCSConditionsTool->PixelFSMState(moduleHash);
-    bool isDCSGood = false;
-    std::string dcsStatus = m_DCSConditionsTool->PixelFSMStatus(moduleHash);
-
-    for (unsigned int istate=0; istate<m_isActiveStates.size(); istate++) {
-      if (m_isActiveStates[istate]==dcsState) { isDCSActive=true; }
+    for (unsigned int istate=0; istate<m_activeState.size(); istate++) {
+      if (m_activeState[istate]==dcsstate_data->getModuleStatus(moduleHash)) { isDCSActive=true; }
     }
-    for (unsigned int istatus=0; istatus<m_isActiveStatus.size(); istatus++) {
-      if (m_isActiveStatus[istatus]==dcsStatus) { isDCSGood=true; }
+    if (!isDCSActive) { return false; }
+
+    SG::ReadCondHandle<PixelModuleData> dcsstatus_data(m_condDCSStatusKey);
+    bool isDCSGood = false;
+    for (unsigned int istatus=0; istatus<m_activeStatus.size(); istatus++) {
+      if (m_activeStatus[istatus]==dcsstatus_data->getModuleStatus(moduleHash)) { isDCSGood=true; }
     }
-    if (!(isDCSActive && isDCSGood)) { return false; }
+    if (!isDCSGood) { return false; }
   }
 
-  if (m_useTDAQ && SG::ReadCondHandle<PixelModuleData>(m_condKey)->getTDAQModuleStatus(moduleHash)) { return false; }
+  if (m_useTDAQ && SG::ReadCondHandle<PixelModuleData>(m_condTDAQKey)->getModuleStatus(moduleHash)) { return false; }
 
-  if (m_useDeadMap && SG::ReadCondHandle<PixelModuleData>(m_condKey)->getModuleStatus(moduleHash)) { return false; }
+  if (m_useDeadMap && SG::ReadCondHandle<PixelModuleData>(m_condDeadMapKey)->getModuleStatus(moduleHash)) { return false; }
 
   return true;
 }
@@ -233,23 +230,24 @@ double PixelConditionsSummaryTool::goodFraction(const IdentifierHash & moduleHas
   if (m_useByteStream && !m_pixelBSErrorsSvc->isGood(moduleHash)) { return 0.; }
 
   if (m_useDCSState) {
+    SG::ReadCondHandle<PixelModuleData> dcsstate_data(m_condDCSStateKey);
     bool isDCSActive = false;
-    std::string dcsState = m_DCSConditionsTool->PixelFSMState(moduleHash);
-    bool isDCSGood = false;
-    std::string dcsStatus = m_DCSConditionsTool->PixelFSMStatus(moduleHash);
-
-    for (unsigned int istate=0; istate<m_isActiveStates.size(); istate++) {
-      if (m_isActiveStates[istate]==dcsState) { isDCSActive=true; }
+    for (unsigned int istate=0; istate<m_activeState.size(); istate++) {
+      if (m_activeState[istate]==dcsstate_data->getModuleStatus(moduleHash)) { isDCSActive=true; }
     }
-    for (unsigned int istatus=0; istatus<m_isActiveStatus.size(); istatus++) {
-      if (m_isActiveStatus[istatus]==dcsStatus) { isDCSGood=true; }
+    if (!isDCSActive) { return false; }
+
+    SG::ReadCondHandle<PixelModuleData> dcsstatus_data(m_condDCSStatusKey);
+    bool isDCSGood = false;
+    for (unsigned int istatus=0; istatus<m_activeStatus.size(); istatus++) {
+      if (m_activeStatus[istatus]==dcsstatus_data->getModuleStatus(moduleHash)) { isDCSGood=true; }
     }
-    if (!(isDCSActive && isDCSGood)) { return 0.; }
+    if (!isDCSGood) { return 0.0; }
   }
 
-  if (m_useTDAQ && SG::ReadCondHandle<PixelModuleData>(m_condKey)->getTDAQModuleStatus(moduleHash)) { return 0.0; }
+  if (m_useTDAQ && SG::ReadCondHandle<PixelModuleData>(m_condTDAQKey)->getModuleStatus(moduleHash)) { return 1.0; }
 
-  if (m_useDeadMap && SG::ReadCondHandle<PixelModuleData>(m_condKey)->getModuleStatus(moduleHash)) { return 0.0; }
+  if (m_useDeadMap && SG::ReadCondHandle<PixelModuleData>(m_condDeadMapKey)->getModuleStatus(moduleHash)) { return 1.0; }
 
   // TODO!!!  Calculate active fraction from dead map.
 
diff --git a/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelConditionsSummaryTool.h b/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelConditionsSummaryTool.h
index dc214a3881d7374bb6aecc4af1c56c1776d02855..7794c8caaa0f3f726bdf8b662fc18b9c32af6ec9 100644
--- a/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelConditionsSummaryTool.h
+++ b/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelConditionsSummaryTool.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef PIXELCONDITIONSSERVICES_PIXELCONDITIONSSUMMARYTOOL_H
@@ -10,7 +10,6 @@
 #include "AthenaBaseComps/AthAlgTool.h"
 #include "InDetConditionsSummaryService/IInDetConditionsTool.h"
 
-#include "PixelConditionsTools/IPixelDCSConditionsTool.h"
 #include "PixelConditionsTools/IPixelByteStreamErrorsSvc.h"
 
 #include "Identifier/Identifier.h"
@@ -41,18 +40,21 @@ class PixelConditionsSummaryTool: public AthAlgTool, public IInDetConditionsTool
   private:
     const PixelID* m_pixelID;
 
-    ToolHandle<IPixelDCSConditionsTool>     m_DCSConditionsTool    {this, "PixelDCSConditionsTool",     "PixelDCSConditionsTool",     "Tool to retrieve Pixel information"};
-
     ServiceHandle< IPixelByteStreamErrorsSvc > m_pixelBSErrorsSvc;
     std::vector<std::string> m_isActiveStatus;
     std::vector<std::string> m_isActiveStates;
+    std::vector<int> m_activeState;
+    std::vector<int> m_activeStatus;
 
     bool m_useDCSState;
     bool m_useByteStream;
     bool m_useTDAQ;
     bool m_useDeadMap;
 
-    SG::ReadCondHandleKey<PixelModuleData> m_condKey{this, "PixelModuleData", "PixelModuleData", "Output key of pixel module data"};
+    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<PixelModuleData> m_condTDAQKey{this, "PixelTDAQCondData", "PixelTDAQCondData", "Pixel TDAQ conditions key"};
+    SG::ReadCondHandleKey<PixelModuleData> m_condDeadMapKey{this, "PixelModuleData", "PixelModuleData", "Pixel deadmap conditions key"};
 };
 
 inline InterfaceID& PixelConditionsSummaryTool::interfaceID(){
diff --git a/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelDCSConditionsTool.cxx b/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelDCSConditionsTool.cxx
deleted file mode 100644
index 374f9954e57a2abd154ca5363aba42c28ab98669..0000000000000000000000000000000000000000
--- a/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelDCSConditionsTool.cxx
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef SIMULATIONBASE
-#include "PixelDCSConditionsTool.h"
-
-PixelDCSConditionsTool::PixelDCSConditionsTool(const std::string& type, const std::string& name, const IInterface* parent):
-  base_class(type, name, parent),
-  m_pixid(nullptr),
-  m_useConditions(true),
-  m_isDATA(true),
-  m_defaultTemperature(-7.0),
-  m_defaultBiasVoltage(150.0),
-  m_defaultDepletionVoltage(0.0)
-{
-  declareProperty("UseConditions", m_useConditions); 
-  declareProperty("IsDATA",        m_isDATA); 
-  declareProperty("Temperature",   m_defaultTemperature, "Default temperature in Celcius."); 
-  declareProperty("BiasVoltage",   m_defaultBiasVoltage, "Default bias voltage in Volt." ); 
-  declareProperty("DepletionVoltage", m_defaultDepletionVoltage, "Default depletion voltage in Volt."); 
-}
-
-StatusCode PixelDCSConditionsTool::initialize() {
-  ATH_MSG_DEBUG("PixelDCSConditionsTool::initialize()");
-
-  if (m_useConditions) {
-    ATH_CHECK(m_condKeyHV.initialize());
-    ATH_CHECK(m_condKeyTemp.initialize());
-    if (m_isDATA) {
-      ATH_CHECK(m_condKeyState.initialize());
-      ATH_CHECK(m_condKeyStatus.initialize());
-    }
-  }
-  ATH_CHECK(detStore()->retrieve(m_pixid,"PixelID"));
-
-  return StatusCode::SUCCESS; 
-}
-
-StatusCode PixelDCSConditionsTool::finalize() {
-  ATH_MSG_DEBUG("PixelDCSConditionsTool::finalize()");
-  return StatusCode::SUCCESS; 
-} 
-
-float PixelDCSConditionsTool::temperature(const Identifier& elementId) const {
-  const IdentifierHash elementHash = m_pixid->wafer_hash(elementId);
-  return temperature(elementHash);
-}
-
-float PixelDCSConditionsTool::biasVoltage(const Identifier& elementId) const {
-  const IdentifierHash elementHash = m_pixid->wafer_hash(elementId);
-  return biasVoltage(elementHash);
-}
-
-float PixelDCSConditionsTool::depletionVoltage(const Identifier& /*elementId*/) const {
-  return m_defaultDepletionVoltage;
-}
-
-std::string PixelDCSConditionsTool::PixelFSMState(const Identifier& elementId) const {
-  const IdentifierHash elementHash = m_pixid->wafer_hash(elementId);
-  return PixelFSMState(elementHash);
-}
-
-std::string PixelDCSConditionsTool::PixelFSMStatus(const Identifier& elementId) const {
-  const IdentifierHash elementHash = m_pixid->wafer_hash(elementId);
-  return PixelFSMStatus(elementHash);
-}
-
-float PixelDCSConditionsTool::temperature(const IdentifierHash& elementHash) const {
-  if (m_useConditions) {
-    const PixelDCSConditionsData* data(getCondDataTemp());
-    if (data==nullptr) { return m_defaultTemperature; }
-    float temperature = m_defaultTemperature;
-    if (not data->getValue(elementHash, temperature)) { return m_defaultTemperature; }
-    if (temperature>100.0 or temperature<-80.0) { temperature = m_defaultTemperature; }
-    return temperature;
-  }
-  return m_defaultTemperature;
-}
-
-float PixelDCSConditionsTool::biasVoltage(const IdentifierHash& elementHash) const {
-  if (m_useConditions) {
-    const PixelDCSConditionsData* data(getCondDataHV());
-    if (data==nullptr) { return m_defaultBiasVoltage; }
-    float hv = m_defaultBiasVoltage;
-    if (not data->getValue(elementHash, hv)) { return m_defaultBiasVoltage; }
-    if (hv>1000.0 or hv<-1000.0) { hv = m_defaultBiasVoltage; }
-    return hv;
-  }
-  return m_defaultBiasVoltage;
-}
-
-float PixelDCSConditionsTool::depletionVoltage(const IdentifierHash& /*elementHash*/) const {
-  return m_defaultDepletionVoltage;
-}
-
-std::string PixelDCSConditionsTool::PixelFSMState(const IdentifierHash& elementHash) const {
-  std::string defaultState = "READY";
-  if (!m_isDATA) { return defaultState; }
-  if (m_useConditions) {
-    const PixelDCSConditionsData* data(getCondDataState());
-    if (data==nullptr) { return defaultState; }
-    std::string fsmstate = defaultState;
-    if (not data->getValue(elementHash, fsmstate)) { return defaultState; }
-    return fsmstate;
-  }
-  return defaultState;
-}
-
-std::string PixelDCSConditionsTool::PixelFSMStatus(const IdentifierHash& elementHash) const {
-  std::string defaultStatus = "OK";
-  if (!m_isDATA) { return defaultStatus; }
-  if (m_useConditions) {
-    const PixelDCSConditionsData* data(getCondDataStatus());
-    if (data==nullptr) { return defaultStatus; }
-    std::string fsmstatus = defaultStatus;
-    if (not data->getValue(elementHash, fsmstatus)) { return defaultStatus; }
-    return fsmstatus;
-  }
-  return defaultStatus;
-}
-
-const PixelDCSConditionsData* PixelDCSConditionsTool::getCondDataHV() const {
-  SG::ReadCondHandle<PixelDCSConditionsData> condData(m_condKeyHV);
-  if (not condData.isValid()) {
-    ATH_MSG_ERROR("Failed to get " << m_condKeyHV.key());
-    return nullptr;
-  }
-  return *condData;
-}
-
-const PixelDCSConditionsData* PixelDCSConditionsTool::getCondDataTemp() const {
-  SG::ReadCondHandle<PixelDCSConditionsData> condData(m_condKeyTemp);
-  if (not condData.isValid()) {
-    ATH_MSG_ERROR("Failed to get " << m_condKeyTemp.key());
-    return nullptr;
-  }
-  return *condData;
-}
-
-const PixelDCSConditionsData* PixelDCSConditionsTool::getCondDataState() const {
-  SG::ReadCondHandle<PixelDCSConditionsData> condData(m_condKeyState);
-  if (not condData.isValid()) {
-    ATH_MSG_ERROR("Failed to get " << m_condKeyState.key());
-    return nullptr;
-  }
-  return *condData;
-}
-
-const PixelDCSConditionsData* PixelDCSConditionsTool::getCondDataStatus() const {
-  SG::ReadCondHandle<PixelDCSConditionsData> condData(m_condKeyStatus);
-  if (not condData.isValid()) {
-    ATH_MSG_ERROR("Failed to get " << m_condKeyStatus.key());
-    return nullptr;
-  }
-  return *condData;
-}
-
-#endif // not SIMULATIONBASE
diff --git a/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelDCSConditionsTool.h b/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelDCSConditionsTool.h
deleted file mode 100644
index 30c9d6bd7842776fb3d2aec605e855edf4e097b5..0000000000000000000000000000000000000000
--- a/InnerDetector/InDetConditions/PixelConditionsTools/src/PixelDCSConditionsTool.h
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
-*/
-
-#ifndef PIXELSILICONCONDITIONStOOL_H
-#define PIXELSILICONCONDITIONStOOL_H
-
-#include "AthenaBaseComps/AthAlgTool.h"
-#include "GaudiKernel/ServiceHandle.h"
-
-#include "PixelConditionsTools/IPixelDCSConditionsTool.h"
-#include "PixelConditionsData/PixelDCSConditionsData.h"
-#include "StoreGate/ReadCondHandleKey.h"
-
-#include "InDetIdentifier/PixelID.h"
-#include "InDetReadoutGeometry/PixelDetectorManager.h"
-
-class PixelDCSConditionsTool: public extends<AthAlgTool, IPixelDCSConditionsTool> {
-  public:
-
-    PixelDCSConditionsTool(const std::string& type, const std::string& name, const IInterface* parent);
-    virtual ~PixelDCSConditionsTool() = default;
-
-    virtual StatusCode initialize() override;
-    virtual StatusCode finalize() override;
-
-    virtual float temperature(const Identifier& elementId) const override;
-    virtual float biasVoltage(const Identifier& elementId) const override;
-    virtual float depletionVoltage(const Identifier& elementId) const override;
-
-    virtual float temperature(const IdentifierHash& elementHash) const override;
-    virtual float biasVoltage(const IdentifierHash& elementHash) const override;
-    virtual float depletionVoltage(const IdentifierHash& elementHash) const override;
-
-    virtual std::string PixelFSMState(const Identifier& elementId) const override;
-    virtual std::string PixelFSMState(const IdentifierHash& elementHash) const override;
-
-    virtual std::string PixelFSMStatus(const Identifier& elementId) const override;
-    virtual std::string PixelFSMStatus(const IdentifierHash& elementHash) const override;
-
-  private:
-    const PixelID* m_pixid;
-
-    bool m_useConditions;
-    bool m_isDATA;
-    float m_defaultTemperature;
-    float m_defaultBiasVoltage;
-    float m_defaultDepletionVoltage;
-
-    SG::ReadCondHandleKey<PixelDCSConditionsData> m_condKeyHV{this, "CondKeyHV", "PixelDCSHVCondData", "Pixel bias voltage"};
-    SG::ReadCondHandleKey<PixelDCSConditionsData> m_condKeyTemp{this, "CondKeyTemp", "PixelDCSTempCondData", "Pixel temperature"};
-
-    SG::ReadCondHandleKey<PixelDCSConditionsData> m_condKeyState{this, "CondKeyState", "PixelDCSStateCondData", "Pixel FSM state"};
-    SG::ReadCondHandleKey<PixelDCSConditionsData> m_condKeyStatus{this, "CondKeyStatus", "PixelDCSStatusCondData", "Pixel FSM status"};
-
-    const PixelDCSConditionsData* getCondDataHV() const;
-    const PixelDCSConditionsData* getCondDataTemp() const;
-
-    const PixelDCSConditionsData* getCondDataState() const;
-    const PixelDCSConditionsData* getCondDataStatus() const;
-};
-
-#endif // PIXELSILICONCONDITIONStOOL_H
diff --git a/InnerDetector/InDetConditions/PixelConditionsTools/src/components/PixelConditionsTools_entries.cxx b/InnerDetector/InDetConditions/PixelConditionsTools/src/components/PixelConditionsTools_entries.cxx
index 3f6dfc62ac2d8eafeee433442e2e551a6aaff0a4..933143257e0e017f6b803dbc336857dce82551a0 100644
--- a/InnerDetector/InDetConditions/PixelConditionsTools/src/components/PixelConditionsTools_entries.cxx
+++ b/InnerDetector/InDetConditions/PixelConditionsTools/src/components/PixelConditionsTools_entries.cxx
@@ -2,16 +2,10 @@
 #include "src/PixelDistortionsTool.h"
 #ifndef SIMULATIONBASE
 #include "src/PixelConditionsSummaryTool.h"
-#include "src/PixelDCSConditionsTool.h"
-// STSTST #include "src/PixelDeadMapConditionsTool.h"
-// STSTST #include "src/PixelTDAQConditionsTool.h"
 #endif
 
 DECLARE_COMPONENT( PixelCalibDbTool )
 DECLARE_COMPONENT( PixelDistortionsTool )
 #ifndef SIMULATIONBASE
 DECLARE_COMPONENT( PixelConditionsSummaryTool )
-DECLARE_COMPONENT( PixelDCSConditionsTool )
-// STSTST DECLARE_COMPONENT( PixelDeadMapConditionsTool )
-// STSTST DECLARE_COMPONENT( PixelTDAQConditionsTool )
 #endif
diff --git a/InnerDetector/InDetConditions/SiLorentzAngleSvc/python/PixelLorentzAngleToolSetup.py b/InnerDetector/InDetConditions/SiLorentzAngleSvc/python/PixelLorentzAngleToolSetup.py
index 24409985d422c162ed6cfcdc8d31d9eb77fad6cd..a025892b33974845177c33ec83f3473f66c03cd8 100644
--- a/InnerDetector/InDetConditions/SiLorentzAngleSvc/python/PixelLorentzAngleToolSetup.py
+++ b/InnerDetector/InDetConditions/SiLorentzAngleSvc/python/PixelLorentzAngleToolSetup.py
@@ -1,38 +1,62 @@
-# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 
 class PixelLorentzAngleToolSetup:
-    "Class to simplify setup of PixelLorentzAngleTool"
-    def __init__(self):
-        from AthenaCommon.AppMgr import ToolSvc
-        if not hasattr(ToolSvc, "PixelDCSConditionsTool"):
-            from PixelConditionsTools.PixelDCSConditionsToolSetup import PixelDCSConditionsToolSetup
-            pixelDCSConditionsToolSetup = PixelDCSConditionsToolSetup()
-            pixelDCSConditionsToolSetup.setup()
-
-        if not hasattr(ToolSvc, "PixelSiPropertiesTool"):
-            from SiPropertiesSvc.PixelSiPropertiesToolSetup import PixelSiPropertiesToolSetup
-            pixelSiPropertiesToolSetup = PixelSiPropertiesToolSetup()
-            pixelSiPropertiesToolSetup.setup()
-
-        from AthenaCommon.AlgSequence import AthSequencer
-        condSeq = AthSequencer("AthCondSeq")
-        if not hasattr(condSeq, "PixelSiLorentzAngleCondAlg"):
-            from SiLorentzAngleSvc.SiLorentzAngleSvcConf import PixelSiLorentzAngleCondAlg
-            from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
-            condSeq += PixelSiLorentzAngleCondAlg(name = "PixelSiLorentzAngleCondAlg",
-                                                  PixelDCSConditionsTool = ToolSvc.PixelDCSConditionsTool,
-                                                  SiPropertiesTool = ToolSvc.PixelSiPropertiesTool,
-                                                  UseMagFieldSvc = True,
-                                                  UseMagFieldDcs = (not athenaCommonFlags.isOnline()))
-        pixelSiLorentzAngleCondAlg = condSeq.PixelSiLorentzAngleCondAlg
-
-        if not hasattr(ToolSvc, "PixelLorentzAngleTool"):
-            from SiLorentzAngleSvc.SiLorentzAngleSvcConf import SiLorentzAngleTool
-            ToolSvc += SiLorentzAngleTool(name="PixelLorentzAngleTool", DetectorName="Pixel", SiLorentzAngleCondData="PixelSiLorentzAngleCondData")
-        pixelLorentzAngleTool = ToolSvc.PixelLorentzAngleTool
-        # Pass the silicon conditions tool to the Lorentz angle tool
-        # Also make sure UseMagFieldTool is True as AtlasGeoModel sets this to False
-        # if loaded first.
-        pixelLorentzAngleTool.UseMagFieldSvc = True
-        self.PixelLorentzAngleTool = pixelLorentzAngleTool
+  "Class to simplify setup of PixelLorentzAngleTool"
+  def __init__(self):
+    hvFolder = "/PIXEL/DCS/HV"
+    tempFolder = "/PIXEL/DCS/TEMPERATURE"
+    dbInstance = "DCS_OFL"
+
+    from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
+    if athenaCommonFlags.isOnline():
+      hvFolder = "/PIXEL/HLT/DCS/HV"
+      tempFolder = "/PIXEL/HLT/DCS/TEMPERATURE"
+      dbInstance = "PIXEL_ONL"
+
+    from IOVDbSvc.CondDB import conddb
+    if not conddb.folderRequested(hvFolder):
+      conddb.addFolder(dbInstance, hvFolder, className="CondAttrListCollection")
+    if not conddb.folderRequested(tempFolder):
+      conddb.addFolder(dbInstance, tempFolder, className="CondAttrListCollection")
+
+    from AthenaCommon.GlobalFlags import globalflags
+    from AthenaCommon.AlgSequence import AthSequencer
+    condSeq = AthSequencer("AthCondSeq")
+ 
+    if not hasattr(condSeq,"PixelDCSCondHVAlg"):
+      from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelDCSCondHVAlg
+      condSeq += PixelDCSCondHVAlg(name="PixelDCSCondHVAlg", ReadKey=hvFolder, UseConditions=True)
+
+    if not hasattr(condSeq,"PixelDCSCondTempAlg"):
+      from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelDCSCondTempAlg
+      condSeq += PixelDCSCondTempAlg(name="PixelDCSCondTempAlg", ReadKey=tempFolder, UseConditions=True)
+
+    if not hasattr(condSeq, "PixelSiPropertiesCondAlg"):
+      from SiPropertiesSvc.SiPropertiesSvcConf import PixelSiPropertiesCondAlg
+      condSeq += PixelSiPropertiesCondAlg(name="PixelSiPropertiesCondAlg")
+
+    from AthenaCommon.AppMgr import ToolSvc
+    if not hasattr(ToolSvc, "PixelSiPropertiesTool"):
+      from SiPropertiesSvc.SiPropertiesSvcConf import SiPropertiesTool
+      ToolSvc += SiPropertiesTool(name = "PixelSiPropertiesTool",
+                                  DetectorName = "Pixel",
+                                  ReadKey = "PixelSiliconPropertiesVector")
+
+    if not hasattr(condSeq, "PixelSiLorentzAngleCondAlg"):
+      from SiLorentzAngleSvc.SiLorentzAngleSvcConf import PixelSiLorentzAngleCondAlg
+      condSeq += PixelSiLorentzAngleCondAlg(name = "PixelSiLorentzAngleCondAlg",
+                                            SiPropertiesTool = ToolSvc.PixelSiPropertiesTool,
+                                            UseMagFieldSvc = True,
+                                            UseMagFieldDcs = (not athenaCommonFlags.isOnline()))
+      pixelSiLorentzAngleCondAlg = condSeq.PixelSiLorentzAngleCondAlg
+
+    if not hasattr(ToolSvc, "PixelLorentzAngleTool"):
+      from SiLorentzAngleSvc.SiLorentzAngleSvcConf import SiLorentzAngleTool
+      ToolSvc += SiLorentzAngleTool(name="PixelLorentzAngleTool", DetectorName="Pixel", SiLorentzAngleCondData="PixelSiLorentzAngleCondData")
+      pixelLorentzAngleTool = ToolSvc.PixelLorentzAngleTool
+      # Pass the silicon conditions tool to the Lorentz angle tool
+      # Also make sure UseMagFieldTool is True as AtlasGeoModel sets this to False
+      # if loaded first.
+      pixelLorentzAngleTool.UseMagFieldSvc = True
+      self.PixelLorentzAngleTool = pixelLorentzAngleTool
 
diff --git a/InnerDetector/InDetConditions/SiLorentzAngleSvc/src/PixelSiLorentzAngleCondAlg.cxx b/InnerDetector/InDetConditions/SiLorentzAngleSvc/src/PixelSiLorentzAngleCondAlg.cxx
index e4d988f4621044c42315ff588a5a8edd6ffa1280..8743c0c9f830ae371f44454590e6b04f4b8a6060 100644
--- a/InnerDetector/InDetConditions/SiLorentzAngleSvc/src/PixelSiLorentzAngleCondAlg.cxx
+++ b/InnerDetector/InDetConditions/SiLorentzAngleSvc/src/PixelSiLorentzAngleCondAlg.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "PixelSiLorentzAngleCondAlg.h"
@@ -42,7 +42,6 @@ StatusCode PixelSiLorentzAngleCondAlg::initialize() {
     return StatusCode::FAILURE;
   }
 
-  ATH_CHECK(m_DCSConditionsTool.retrieve());
   ATH_CHECK(m_siPropertiesTool.retrieve());
 
   if (m_useMagFieldSvc) {
@@ -75,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;
@@ -90,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;
@@ -153,9 +152,10 @@ PixelSiLorentzAngleCondAlg::execute() {
   for (PixelID::size_type hash=0; hash<wafer_hash_max; hash++) {
     const IdentifierHash elementHash = static_cast<IdentifierHash::value_type>(hash);
 
-    double temperature = m_DCSConditionsTool->temperature(elementHash)+273.15;
-    double deplVoltage = m_DCSConditionsTool->depletionVoltage(elementHash)*CLHEP::volt;
-    double biasVoltage = m_DCSConditionsTool->biasVoltage(elementHash)*CLHEP::volt;
+    double temperature = readCdoTemp->getTemperature(elementHash)+273.15;
+    double deplVoltage = 0.0*CLHEP::volt;
+    double biasVoltage = readCdoHV->getBiasVoltage(elementHash)*CLHEP::volt;
+
     ATH_MSG_DEBUG("Pixel Hash = " << elementHash << " Temperature = " << temperature << " [deg K], BiasV = " << biasVoltage << " DeplV = " << deplVoltage);
 
     const InDetDD::SiDetectorElement* element = m_detManager->getDetectorElement(elementHash);
diff --git a/InnerDetector/InDetConditions/SiLorentzAngleSvc/src/PixelSiLorentzAngleCondAlg.h b/InnerDetector/InDetConditions/SiLorentzAngleSvc/src/PixelSiLorentzAngleCondAlg.h
index 8253c56259b85456d424fa2d00fc8454fb0ae16d..79c71168e7e7ce25ec867b5ef6bb99e281ffc26c 100644
--- a/InnerDetector/InDetConditions/SiLorentzAngleSvc/src/PixelSiLorentzAngleCondAlg.h
+++ b/InnerDetector/InDetConditions/SiLorentzAngleSvc/src/PixelSiLorentzAngleCondAlg.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef PIXELSILORENTZANGLECONDALG
@@ -10,8 +10,7 @@
 #include "StoreGate/ReadCondHandleKey.h"
 #include "StoreGate/WriteCondHandleKey.h"
 #include "AthenaPoolUtilities/CondAttrListCollection.h"
-#include "PixelConditionsData/PixelDCSConditionsData.h"
-#include "PixelConditionsTools/IPixelDCSConditionsTool.h"
+#include "PixelConditionsData/PixelModuleData.h"
 #include "GaudiKernel/ICondSvc.h"
 #include "SiPropertiesSvc/ISiPropertiesTool.h"
 
@@ -43,13 +42,11 @@ 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<IPixelDCSConditionsTool> m_DCSConditionsTool{this, "PixelDCSConditionsTool", "PixelDCSConditionsTool", "Tool to retrieve Pixel information"};
+    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/python/PixelSiPropertiesToolSetup.py b/InnerDetector/InDetConditions/SiPropertiesSvc/python/PixelSiPropertiesToolSetup.py
index f979e6143335452aa151d5a1fd109aa28d4e4214..4d983c1121e578973a100ea4561d862f698117a3 100644
--- a/InnerDetector/InDetConditions/SiPropertiesSvc/python/PixelSiPropertiesToolSetup.py
+++ b/InnerDetector/InDetConditions/SiPropertiesSvc/python/PixelSiPropertiesToolSetup.py
@@ -1,55 +1,76 @@
-# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 
 class PixelSiPropertiesToolSetup:
-    "Class to simplify setup of PixelSiPropertiesTool and required conditions algorithm"
-
-    def __init__(self):
-        self.algName = "PixelSiPropertiesCondAlg"
-        self.alg = None
-        self.toolName = "PixelSiPropertiesTool"
-        self.tool = None
-
-    def getAlgName(self):
-        return self.algName
-
-    def setAlgName(self, algName):
-        self.algName = algName
-
-    def getAlg(self):
-        return self.alg
-
-    def getToolName(self):
-        return self.toolName
-
-    def setToolName(self, toolName):
-        self.toolName = toolName
-
-    def getTool(self):
-        return self.tool
-
-    def setAlg(self):
-        from AthenaCommon.AppMgr import ToolSvc
-        if not hasattr(ToolSvc, "PixelDCSConditionsTool"):
-            from PixelConditionsTools.PixelDCSConditionsToolSetup import PixelDCSConditionsToolSetup
-            pixelDCSConditionsToolSetup = PixelDCSConditionsToolSetup()
-            pixelDCSConditionsToolSetup.setup()
-
-        from AthenaCommon.AlgSequence import AthSequencer
-        condSeq = AthSequencer("AthCondSeq")
-        if not hasattr(condSeq, self.algName):
-            from SiPropertiesSvc.SiPropertiesSvcConf import PixelSiPropertiesCondAlg
-            condSeq += PixelSiPropertiesCondAlg(name = self.algName, PixelDCSConditionsTool=ToolSvc.PixelDCSConditionsTool)
-        self.alg = getattr(condSeq, self.algName)
-
-    def setTool(self):
-        from AthenaCommon.AppMgr import ToolSvc
-        if not hasattr(ToolSvc, self.toolName):
-            from SiPropertiesSvc.SiPropertiesSvcConf import SiPropertiesTool
-            ToolSvc += SiPropertiesTool(name = self.toolName,
-                                        DetectorName = "Pixel",
-                                        ReadKey = "PixelSiliconPropertiesVector")
-        self.tool = getattr(ToolSvc, self.toolName)
-
-    def setup(self):
-        self.setAlg()
-        self.setTool()
+  "Class to simplify setup of PixelSiPropertiesTool and required conditions algorithm"
+
+  def __init__(self):
+    self.algName = "PixelSiPropertiesCondAlg"
+    self.alg = None
+    self.toolName = "PixelSiPropertiesTool"
+    self.tool = None
+
+  def getAlgName(self):
+    return self.algName
+
+  def setAlgName(self, algName):
+    self.algName = algName
+
+  def getAlg(self):
+    return self.alg
+
+  def getToolName(self):
+    return self.toolName
+
+  def setToolName(self, toolName):
+    self.toolName = toolName
+
+  def getTool(self):
+    return self.tool
+
+  def setAlg(self):
+    hvFolder = "/PIXEL/DCS/HV"
+    tempFolder = "/PIXEL/DCS/TEMPERATURE"
+    dbInstance = "DCS_OFL"
+
+    from AthenaCommon.AthenaCommonFlags import athenaCommonFlags
+    if athenaCommonFlags.isOnline():
+      hvFolder = "/PIXEL/HLT/DCS/HV"
+      tempFolder = "/PIXEL/HLT/DCS/TEMPERATURE"
+      dbInstance = "PIXEL_ONL"
+
+    from IOVDbSvc.CondDB import conddb
+    if not conddb.folderRequested(hvFolder):
+      conddb.addFolder(dbInstance, hvFolder, className="CondAttrListCollection")
+    if not conddb.folderRequested(tempFolder):
+      conddb.addFolder(dbInstance, tempFolder, className="CondAttrListCollection")
+
+    from AthenaCommon.GlobalFlags import globalflags
+    from AthenaCommon.AlgSequence import AthSequencer
+    condSeq = AthSequencer("AthCondSeq")
+ 
+    if not hasattr(condSeq,"PixelDCSCondHVAlg"):
+      from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelDCSCondHVAlg
+      condSeq += PixelDCSCondHVAlg(name="PixelDCSCondHVAlg", ReadKey=hvFolder, UseConditions=True)
+
+    if not hasattr(condSeq,"PixelDCSCondTempAlg"):
+      from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelDCSCondTempAlg
+      condSeq += PixelDCSCondTempAlg(name="PixelDCSCondTempAlg", ReadKey=tempFolder, UseConditions=True)
+
+    from AthenaCommon.AppMgr import ToolSvc
+    if not hasattr(condSeq, "PixelSiPropertiesCondAlg"):
+      from SiPropertiesSvc.SiPropertiesSvcConf import PixelSiPropertiesCondAlg
+      condSeq += PixelSiPropertiesCondAlg(name="PixelSiPropertiesCondAlg")
+    self.alg = getattr(condSeq, "PixelSiPropertiesCondAlg")
+
+  def setTool(self):
+    from AthenaCommon.AppMgr import ToolSvc
+    if not hasattr(ToolSvc, "PixelSiPropertiesTool"):
+      from SiPropertiesSvc.SiPropertiesSvcConf import SiPropertiesTool
+      ToolSvc += SiPropertiesTool(name = "PixelSiPropertiesTool",
+                                  DetectorName = "Pixel",
+                                  ReadKey = "PixelSiliconPropertiesVector")
+    self.tool = getattr(ToolSvc, "PixelSiPropertiesTool")
+
+  def setup(self):
+    self.setAlg()
+    self.setTool()
diff --git a/InnerDetector/InDetConditions/SiPropertiesSvc/src/PixelSiPropertiesCondAlg.cxx b/InnerDetector/InDetConditions/SiPropertiesSvc/src/PixelSiPropertiesCondAlg.cxx
index a2f05a7f7301cc4a3cbb5f5219084756d9978016..1eddd274b86463c1c1b32bc6017829fabd5d765c 100644
--- a/InnerDetector/InDetConditions/SiPropertiesSvc/src/PixelSiPropertiesCondAlg.cxx
+++ b/InnerDetector/InDetConditions/SiPropertiesSvc/src/PixelSiPropertiesCondAlg.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "PixelSiPropertiesCondAlg.h"
@@ -33,8 +33,6 @@ StatusCode PixelSiPropertiesCondAlg::initialize() {
     return StatusCode::FAILURE;
   }
 
-  ATH_CHECK(m_DCSConditionsTool.retrieve());
-
   return StatusCode::SUCCESS;
 }
 
@@ -48,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;
@@ -62,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;
@@ -89,9 +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);
 
-    double temperature = m_DCSConditionsTool->temperature(elementHash)+273.15;
-    double deplVoltage = m_DCSConditionsTool->depletionVoltage(elementHash)*CLHEP::volt;
-    double biasVoltage = m_DCSConditionsTool->biasVoltage(elementHash)*CLHEP::volt;
+    double temperature = readCdoTemp->getTemperature(elementHash)+273.15;
+    double deplVoltage = 0.0*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 f5e5a8c561b080634fc92a8ca09d87117de167dd..3e0be4071512a7c3535b252c8cf981cf252b4efb 100644
--- a/InnerDetector/InDetConditions/SiPropertiesSvc/src/PixelSiPropertiesCondAlg.h
+++ b/InnerDetector/InDetConditions/SiPropertiesSvc/src/PixelSiPropertiesCondAlg.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */ 
 
 #ifndef PIXELSIPROPERTIESCONDALG
@@ -9,8 +9,7 @@
 
 #include "StoreGate/ReadCondHandleKey.h"
 #include "StoreGate/WriteCondHandleKey.h"
-#include "PixelConditionsData/PixelDCSConditionsData.h"
-#include "PixelConditionsTools/IPixelDCSConditionsTool.h"
+#include "PixelConditionsData/PixelModuleData.h"
 #include "GaudiKernel/ICondSvc.h"
 
 #include "SiPropertiesSvc/SiliconPropertiesVector.h"
@@ -30,11 +29,11 @@ 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"};
 
-    ToolHandle<IPixelDCSConditionsTool> m_DCSConditionsTool{this, "PixelDCSConditionsTool", "PixelDCSConditionsTool", "Tool to retrieve Pixel information"};
 };
     
 #endif // PIXELSIPROPERTIESCONDALG
diff --git a/InnerDetector/InDetDigitization/FastSiDigitization/python/FastSiDigitizationConfig.py b/InnerDetector/InDetDigitization/FastSiDigitization/python/FastSiDigitizationConfig.py
index d2e52954cc94bc8f2417b775fbe6e5385a2a2130..daab02627aff9639f3234485401ef5264766d08a 100644
--- a/InnerDetector/InDetDigitization/FastSiDigitization/python/FastSiDigitizationConfig.py
+++ b/InnerDetector/InDetDigitization/FastSiDigitization/python/FastSiDigitizationConfig.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 
 # The earliest bunch crossing time for which interactions will be sent
 # to the Fast Pixel Digitization code.
@@ -65,11 +65,6 @@ def FastClusterMakerTool(name="FastClusterMakerTool", **kwargs):
 
 def commonPixelFastDigitizationConfig(name,**kwargs):
 
-    # Setup the DCS folders and tool used in the sctSiliconConditionsTool
-    from PixelConditionsTools.PixelDCSConditionsToolSetup import PixelDCSConditionsToolSetup
-    pixelDCSConditionsToolSetup = PixelDCSConditionsToolSetup()
-    pixelDCSConditionsToolSetup.setup()
-
     kwargs.setdefault("ClusterMaker", "FastClusterMakerTool")
 
     # Import Digitization job properties
diff --git a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/CMakeLists.txt b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/CMakeLists.txt
index 6a7636385a56fc6261c0617a834b274ceff2bb66..11419eab58419eed332597de7c392551c40b44e4 100644
--- a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/CMakeLists.txt
+++ b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/CMakeLists.txt
@@ -15,6 +15,7 @@ atlas_depends_on_subdirs( PUBLIC
                           Event/xAOD/xAODTracking
                           InnerDetector/InDetConditions/PixelConditionsServices
                           InnerDetector/InDetConditions/PixelConditionsTools
+                          InnerDetector/InDetConditions/PixelConditionsData
                           InnerDetector/InDetConditions/InDetCondTools
                           InnerDetector/InDetConditions/TRT_ConditionsServices
                           InnerDetector/InDetDetDescr/InDetIdentifier
@@ -37,7 +38,7 @@ atlas_add_component( InDetPrepRawDataToxAOD
                      src/*.cxx
                      src/components/*.cxx
                      INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} ${CLHEP_INCLUDE_DIRS} ${HEPMC_INCLUDE_DIRS}
-                     LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} GaudiKernel AthenaBaseComps StoreGateLib SGtests Identifier xAODTracking TRT_ConditionsServicesLib InDetIdentifier InDetReadoutGeometry InDetRawData InDetSimData InDetPrepRawData InDetSimEvent TrkSurfaces TrkTruthData )
+                     LINK_LIBRARIES ${ROOT_LIBRARIES} ${CLHEP_LIBRARIES} ${HEPMC_LIBRARIES} GaudiKernel AthenaBaseComps StoreGateLib SGtests Identifier xAODTracking TRT_ConditionsServicesLib InDetIdentifier InDetReadoutGeometry InDetRawData InDetSimData InDetPrepRawData PixelConditionsData InDetSimEvent TrkSurfaces TrkTruthData )
 
 # Install files from the package:
 atlas_install_python_modules( python/*.py )
diff --git a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/share/InDetDxAOD.py b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/share/InDetDxAOD.py
index 481e498608eaae86ef7a5e20dbf0a789c1812723..b757c825632442e6f342dd82d02828f45ba78859 100644
--- a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/share/InDetDxAOD.py
+++ b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/share/InDetDxAOD.py
@@ -405,9 +405,18 @@ if dumpSctInfo:
         print xAOD_SCT_PrepDataToxAOD.properties()
 
 if dumpPixInfo:
-    from PixelConditionsTools.PixelDCSConditionsToolSetup import PixelDCSConditionsToolSetup
-    pixelDCSConditionsToolSetup = PixelDCSConditionsToolSetup()
-    pixelDCSConditionsToolSetup.setup()
+    from IOVDbSvc.CondDB import conddb
+    if not conddb.folderRequested("/PIXEL/DCS/FSMSTATE"):
+      conddb.addFolder("DCS_OFL", "/PIXEL/DCS/FSMSTATE", className="CondAttrListCollection")
+    if not conddb.folderRequested("/PIXEL/DCS/FSMSTATUS"):
+      conddb.addFolder("DCS_OFL", "/PIXEL/DCS/FSMSTATUS", className="CondAttrListCollection")
+
+    from AthenaCommon.AlgSequence import AthSequencer
+    condSeq = AthSequencer("AthCondSeq")
+     if not hasattr(condSeq, "PixelDCSCondStateAlg"):
+      from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelDCSCondStateAlg
+      condSeq += PixelDCSCondStateAlg(name="PixelDCSCondStateAlg")
+
     from AthenaCommon.AppMgr import ToolSvc
     if not hasattr(ToolSvc, "PixelLorentzAngleTool"):
         from SiLorentzAngleSvc.PixelLorentzAngleToolSetup import PixelLorentzAngleToolSetup
@@ -415,7 +424,6 @@ if dumpPixInfo:
 
     from InDetPrepRawDataToxAOD.InDetPrepRawDataToxAODConf import PixelPrepDataToxAOD
     xAOD_PixelPrepDataToxAOD = PixelPrepDataToxAOD( name = "xAOD_PixelPrepDataToxAOD")
-    xAOD_PixelPrepDataToxAOD.PixelDCSConditionsTool = pixelDCSConditionsToolSetup.getTool()
     xAOD_PixelPrepDataToxAOD.LorentzAngleTool       = ToolSvc.PixelLorentzAngleTool
     xAOD_PixelPrepDataToxAOD.OutputLevel          = INFO
     xAOD_PixelPrepDataToxAOD.UseTruthInfo         = dumpTruthInfo
diff --git a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/PixelPrepDataToxAOD.cxx b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/PixelPrepDataToxAOD.cxx
index 259e4e5b4ec262dd20ae5472de10dadca717c724..f643b6928825aa4903200564f788ff9f71ea991f 100644
--- a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/PixelPrepDataToxAOD.cxx
+++ b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/PixelPrepDataToxAOD.cxx
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 */
 
 ///////////////////////////////////////////////////////////////////
@@ -88,7 +88,10 @@ StatusCode PixelPrepDataToxAOD::initialize()
 
   CHECK(m_calibSvc.retrieve());
 
-  ATH_CHECK(m_DCSConditionsTool.retrieve());
+  ATH_CHECK(m_condDCSStateKey.initialize());
+  ATH_CHECK(m_condDCSStatusKey.initialize());
+  ATH_CHECK(m_readKeyTemp.initialize());
+  ATH_CHECK(m_readKeyHV.initialize());
 
   CHECK(m_pixelBSErrorsSvc.retrieve());
 
@@ -224,10 +227,13 @@ StatusCode PixelPrepDataToxAOD::execute()
       if(m_writeRDOinformation) {
         IdentifierHash moduleHash = clusterCollection->identifyHash();
         AUXDATA(xprd,int,isBSError) = (int)m_pixelBSErrorsSvc->isActive(moduleHash);
-        AUXDATA(xprd,std::string,DCSState) = (std::string)m_DCSConditionsTool->PixelFSMState(moduleHash);
-        AUXDATA(xprd,float,BiasVoltage) = (float)m_DCSConditionsTool->biasVoltage(moduleHash);
-        AUXDATA(xprd,float,Temperature) = (float)m_DCSConditionsTool->temperature(moduleHash);
-        AUXDATA(xprd,float,DepletionVoltage) = (float)m_DCSConditionsTool->depletionVoltage(moduleHash);
+        AUXDATA(xprd,int,DCSState) = SG::ReadCondHandle<PixelModuleData>(m_condDCSStateKey)->getModuleStatus(moduleHash);
+
+        float deplVoltage = 0.0;
+        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);
 
         addRdoInformation(xprd,  prd);
diff --git a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/PixelPrepDataToxAOD.h b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/PixelPrepDataToxAOD.h
index 70bf8f9f1886a3c884a13729ce6c74b4cb573c5b..6cb62f5e76483040f60589a62a4c81f090b75913 100644
--- a/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/PixelPrepDataToxAOD.h
+++ b/InnerDetector/InDetEventCnv/InDetPrepRawDataToxAOD/src/PixelPrepDataToxAOD.h
@@ -20,7 +20,7 @@
 #include "xAODTracking/TrackMeasurementValidation.h"
 #include "xAODTracking/TrackMeasurementValidationContainer.h"
 
-#include "PixelConditionsTools/IPixelDCSConditionsTool.h"
+#include "PixelConditionsData/PixelModuleData.h"
 #include "InDetCondTools/ISiLorentzAngleTool.h"
 #include "PixelConditionsServices/IPixelByteStreamErrorsSvc.h"
 #include "PixelConditionsServices/IPixelCalibSvc.h"
@@ -103,7 +103,13 @@ private:
   bool m_useSiHitsGeometryMatching;
 
   ServiceHandle<IPixelCalibSvc> m_calibSvc;
-  ToolHandle<IPixelDCSConditionsTool> m_DCSConditionsTool{this, "PixelDCSConditionsTool", "PixelDCSConditionsTool", "Tool to retrieve Pixel information"};
+
+  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<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"};
 
diff --git a/InnerDetector/InDetExample/InDetDetDescrExample/share/ReadSiDetectorElements_jobOptions.py b/InnerDetector/InDetExample/InDetDetDescrExample/share/ReadSiDetectorElements_jobOptions.py
index 01861c2a3d13e0375fefebb4800704f21372bb54..a390e41f293b70f92f7c4dec323a25f02da755b0 100755
--- a/InnerDetector/InDetExample/InDetDetDescrExample/share/ReadSiDetectorElements_jobOptions.py
+++ b/InnerDetector/InDetExample/InDetDetDescrExample/share/ReadSiDetectorElements_jobOptions.py
@@ -60,10 +60,6 @@ from AthenaCommon.AppMgr import ServiceMgr
 # Pixel
 #
 # Load DCS service
-from PixelConditionsTools.PixelDCSConditionsToolSetup import PixelDCSConditionsToolSetup
-pixelDCSConditionsToolSetup = PixelDCSConditionsToolSetup()
-pixelDCSConditionsToolSetup.setup()
-pixelDCSConditionsTool = pixelDCSConditionsToolSetup.getTool()
 from SiPropertiesSvc.PixelSiPropertiesToolSetup import PixelSiPropertiesToolSetup
 pixelSiPropertiesToolSetup = PixelSiPropertiesToolSetup()
 pixelSiPropertiesToolSetup.setup()
diff --git a/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigConfigConditions.py b/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigConfigConditions.py
index 56539587d4fa1da5ed4ffbce398bc2b8269b8271..660226db840cb39bbafc4172c5ee8f68b5b765c0 100644
--- a/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigConfigConditions.py
+++ b/InnerDetector/InDetExample/InDetTrigRecExample/python/InDetTrigConfigConditions.py
@@ -1,4 +1,4 @@
-# Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
 
 class PixelConditionsServicesSetup:
   """
@@ -90,13 +90,7 @@ class PixelConditionsServicesSetup:
 
     if not hasattr(condSeq, 'PixelDCSCondTempAlg'):
       from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelDCSCondTempAlg
-      condSeq += PixelDCSCondTempAlg(name="PixelDCSCondTempAlg", ReadKey=PixelTempFolder)
-
-
-    from PixelConditionsTools.PixelConditionsToolsConf import PixelDCSConditionsTool
-    TrigPixelDCSConditionsTool = PixelDCSConditionsTool(name="PixelDCSConditionsTool", UseConditions=True, IsDATA=self.isData)
-
-    ToolSvc += TrigPixelDCSConditionsTool
+      condSeq += PixelDCSCondTempAlg(name="PixelDCSCondTempAlg", ReadKey=PixelTempFolder, UseConditions=True)
 
     #########################
     # TDAQ Conditions Setup #
@@ -133,7 +127,6 @@ class PixelConditionsServicesSetup:
 
     from PixelConditionsTools.PixelConditionsToolsConf import PixelConditionsSummaryTool
     TrigPixelConditionsSummaryTool = PixelConditionsSummaryTool(name=self.instanceName('PixelConditionsSummaryTool'), 
-                                                                PixelDCSConditionsTool=TrigPixelDCSConditionsTool, 
                                                                 UseDCSState=self.useDCS, 
                                                                 UseByteStream=self.useBS, 
                                                                 UseTDAQ=self.useTDAQ, 
@@ -189,7 +182,7 @@ class PixelConditionsServicesSetup:
     #######################
     if not hasattr(condSeq, 'PixelSiPropertiesCondAlg'):
       from SiPropertiesSvc.SiPropertiesSvcConf import PixelSiPropertiesCondAlg
-      condSeq += PixelSiPropertiesCondAlg(name="PixelSiPropertiesCondAlg", PixelDCSConditionsTool=TrigPixelDCSConditionsTool)
+      condSeq += PixelSiPropertiesCondAlg(name="PixelSiPropertiesCondAlg")
 
     from SiPropertiesSvc.SiPropertiesSvcConf import SiPropertiesTool
     TrigSiPropertiesTool = SiPropertiesTool(name="PixelSiPropertiesTool", DetectorName="Pixel", ReadKey="PixelSiliconPropertiesVector")
@@ -199,7 +192,6 @@ class PixelConditionsServicesSetup:
     if not hasattr(condSeq, 'PixelSiLorentzAngleCondAlg'):
       from SiLorentzAngleSvc.SiLorentzAngleSvcConf import PixelSiLorentzAngleCondAlg
       condSeq += PixelSiLorentzAngleCondAlg(name="PixelSiLorentzAngleCondAlg", 
-                                            PixelDCSConditionsTool=TrigPixelDCSConditionsTool, 
                                             SiPropertiesTool=TrigSiPropertiesTool,
                                             UseMagFieldSvc = True,
                                             UseMagFieldDcs = (not athenaCommonFlags.isOnline()))
diff --git a/Trigger/TrigValidation/TrigUpgradeTest/python/InDetConfig.py b/Trigger/TrigValidation/TrigUpgradeTest/python/InDetConfig.py
index 3311aff346edc5ea826d0866cbd566d0ec12bdb1..1e3a220a165228dfe7b2bb9c4a31c194ca261d45 100644
--- a/Trigger/TrigValidation/TrigUpgradeTest/python/InDetConfig.py
+++ b/Trigger/TrigValidation/TrigUpgradeTest/python/InDetConfig.py
@@ -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
 #
 
 from AthenaConfiguration.ComponentAccumulator import ComponentAccumulator
@@ -144,10 +144,6 @@ def TrigInDetCondConfig( flags ):
   PixelTDAQInstance = "TDAQ_ONL"
   acc.merge(addFolders(flags, PixelTDAQFolder, PixelTDAQInstance, className="CondAttrListCollection"))
 
-  from PixelConditionsTools.PixelConditionsToolsConf import PixelDCSConditionsTool
-  TrigPixelDCSConditionsTool = PixelDCSConditionsTool(name="PixelDCSConditionsTool", UseConditions=True, IsDATA=True)
-  acc.addPublicTool(TrigPixelDCSConditionsTool)
-
   PixelHVFolder = "/PIXEL/DCS/HV"
   PixelTempFolder = "/PIXEL/DCS/TEMPERATURE"
   PixelDBInstance = "DCS_OFL"
@@ -161,17 +157,20 @@ def TrigInDetCondConfig( flags ):
   from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelDCSCondTempAlg
   acc.addCondAlgo(PixelDCSCondTempAlg(name="PixelDCSCondTempAlg", ReadKey=PixelTempFolder))
 
+  from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelTDAQCondAlg
+  acc.addCondAlgo(PixelTDAQCondAlg(name="PixelTDAQCondAlg", ReadKey=PixelTDAQFolder))
 
-  from PixelConditionsTools.PixelConditionsToolsConf import PixelDCSConditionsTool
-  TrigPixelDCSConditionsTool = PixelDCSConditionsTool(name="PixelDCSConditionsTool", UseConditions=True, IsDATA=True)
+  PixelDeadMapFolder = "/PIXEL/PixMapOverlay"
+  PixelDeadMapInstance = "PIXEL_OFL"
 
-  acc.addPublicTool(TrigPixelDCSConditionsTool)
+  acc.merge(addFolders(flags, PixelTempFolder, PixelDBInstance, className="CondAttrListCollection"))
+  acc.merge(addFolders(flags, PixelDeadMapFolder, PixelDeadMapInstance, className="CondAttrListCollection"))
 
-  from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelTDAQCondAlg
-  acc.addCondAlgo(PixelTDAQCondAlg(name="PixelTDAQCondAlg", ReadKey=PixelTDAQFolder))
+  from PixelConditionsAlgorithms.PixelConditionsAlgorithmsConf import PixelConfigCondAlg
+  acc.addCondAlgo(PixelConfigCondAlg(name="PixelConfigCondAlg", UseDeadMap=False, ReadDeadMapKey=PixelDeadMapFolder))
 
   from SiPropertiesSvc.SiPropertiesSvcConf import PixelSiPropertiesCondAlg
-  acc.addCondAlgo(PixelSiPropertiesCondAlg(name="PixelSiPropertiesCondAlg", PixelDCSConditionsTool=TrigPixelDCSConditionsTool))
+  acc.addCondAlgo(PixelSiPropertiesCondAlg(name="PixelSiPropertiesCondAlg"))
 
   from SiPropertiesSvc.SiPropertiesSvcConf import SiPropertiesTool
   TrigSiPropertiesTool = SiPropertiesTool(name="PixelSiPropertiesTool", DetectorName="Pixel", ReadKey="PixelSiliconPropertiesVector")
@@ -180,7 +179,6 @@ def TrigInDetCondConfig( flags ):
 
   from SiLorentzAngleSvc.SiLorentzAngleSvcConf import PixelSiLorentzAngleCondAlg
   acc.addCondAlgo(PixelSiLorentzAngleCondAlg(name="PixelSiLorentzAngleCondAlg",
-                                          PixelDCSConditionsTool=TrigPixelDCSConditionsTool,
                                           SiPropertiesTool=TrigSiPropertiesTool,
                                           UseMagFieldSvc = True,
                                           UseMagFieldDcs = False))