diff --git a/LArCalorimeter/LArRawConditions/LArRawConditions/LArAutoCorrSym.h b/LArCalorimeter/LArRawConditions/LArRawConditions/LArAutoCorrSym.h
new file mode 100644
index 0000000000000000000000000000000000000000..533f8f69a13c7b7eca67a18bedf331abfc6a8390
--- /dev/null
+++ b/LArCalorimeter/LArRawConditions/LArRawConditions/LArAutoCorrSym.h
@@ -0,0 +1,35 @@
+//Dear emacs, this is -*-c++-*-
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef LARRAWCONDITIONS_LARAUTOCORRSYM_H
+#define LARRAWCONDITIONS_LARAUTOCORRSYM_H
+
+#include "LArElecCalib/ILArAutoCorr.h"
+
+class LArMCSym;
+class LArAutoCorrMC;
+class LArAutoCorrP1;
+template<typename LArAutoCorrP1> class LArConditionsContainer; 
+
+
+class LArAutoCorrSym: public ILArAutoCorr {  
+ public:
+  LArAutoCorrSym() = delete;
+  LArAutoCorrSym(const LArMCSym* mcsym, const LArAutoCorrMC* acComplete);
+  virtual ~LArAutoCorrSym( );
+ 
+  virtual AutoCorrRef_t autoCorr(const HWIdentifier& CellID, int gain) const override;
+   
+ private: 
+  const LArMCSym* m_mcSym;
+  const LArConditionsContainer<LArAutoCorrP1>* m_acComplete;
+};
+
+#include "AthenaKernel/CLASS_DEF.h"
+#include "AthenaKernel/CondCont.h"
+CLASS_DEF( LArAutoCorrSym,137573373,1)
+CONDCONT_DEF( LArAutoCorrSym, 183122331, ILArAutoCorr );
+
+#endif 
diff --git a/LArCalorimeter/LArRawConditions/LArRawConditions/LArDAC2uASym.h b/LArCalorimeter/LArRawConditions/LArRawConditions/LArDAC2uASym.h
index ec3b13103b0f672b2446ef9b8d2d83c7e4228c91..992c90042d668f2abd55178d8b020af83af248d4 100644
--- a/LArCalorimeter/LArRawConditions/LArRawConditions/LArDAC2uASym.h
+++ b/LArCalorimeter/LArRawConditions/LArRawConditions/LArDAC2uASym.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef LARRAWCONDITIONS_LARDAC2UASYM_H
@@ -9,25 +9,21 @@
 
 class LArMCSym;
 class LArDAC2uAMC;
-class LArDAC2uAComplete;
+class LArSingleFloatP;
+template<typename LArSingleFloatP> class LArConditionsContainer;
+
 
 class LArDAC2uASym: virtual public ILArDAC2uA {
-  
  public:
-
   LArDAC2uASym() = delete;
-
   LArDAC2uASym(const LArMCSym* mcsym,  const LArDAC2uAMC* DAC2uAComplete);
-  
   virtual ~LArDAC2uASym( );
   
   virtual const float& DAC2UA(const HWIdentifier& hwid) const override;
   
  private: 
-
   const LArMCSym* m_mcSym;
-  const LArDAC2uAComplete* m_DAC2uAComplete;
-
+  const LArConditionsContainer<LArSingleFloatP> *m_DAC2uAComplete;
 };
 
 #include "AthenaKernel/CLASS_DEF.h"
diff --git a/LArCalorimeter/LArRawConditions/LArRawConditions/LArMCSym.h b/LArCalorimeter/LArRawConditions/LArRawConditions/LArMCSym.h
index 913b55deefb1a4ae591b5325dc91746af2fca686..3cc26d73a3a7486988b11f972110d510367dc9eb 100755
--- a/LArCalorimeter/LArRawConditions/LArRawConditions/LArMCSym.h
+++ b/LArCalorimeter/LArRawConditions/LArRawConditions/LArMCSym.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef LARRAWCONDITIONS_LARMCSYM_H
diff --git a/LArCalorimeter/LArRawConditions/LArRawConditions/LArMinBiasAverageSym.h b/LArCalorimeter/LArRawConditions/LArRawConditions/LArMinBiasAverageSym.h
new file mode 100644
index 0000000000000000000000000000000000000000..5ebb1da7e5df8b6e0233829fda14fcb1d21a5622
--- /dev/null
+++ b/LArCalorimeter/LArRawConditions/LArRawConditions/LArMinBiasAverageSym.h
@@ -0,0 +1,34 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef LARRAWCONDITIONS_LARMINAVERAGEBIASSYM_H
+#define LARRAWCONDITIONS_LARMINAVERAGEBIASSYM_H
+
+#include "LArElecCalib/ILArMinBiasAverage.h"
+
+
+class LArMCSym;
+class LArMinBiasAverageMC;
+class LArMinBiasAverageP;
+template<typename LArMinBiasAverageP> class LArConditionsContainer;
+
+class LArMinBiasAverageSym: virtual public ILArMinBiasAverage {
+  
+ public:
+  LArMinBiasAverageSym() = delete;
+  LArMinBiasAverageSym(const LArMCSym* mcsym,  const LArMinBiasAverageMC* MinBiasAverageComplete);
+  virtual ~LArMinBiasAverageSym( );
+  
+  virtual const float& minBiasAverage(const HWIdentifier& hwid) const override;
+  
+ private: 
+  const LArMCSym* m_mcSym;
+  const LArConditionsContainer<LArMinBiasAverageP>* m_MinBiasAverageComplete;
+};
+
+#include "AthenaKernel/CLASS_DEF.h"
+#include "AthenaKernel/CondCont.h"
+CLASS_DEF( LArMinBiasAverageSym,14136214 ,1)
+CONDCONT_DEF( LArMinBiasAverageSym ,261435098, ILArMinBiasAverage );
+#endif 
diff --git a/LArCalorimeter/LArRawConditions/LArRawConditions/LArMinBiasSym.h b/LArCalorimeter/LArRawConditions/LArRawConditions/LArMinBiasSym.h
index 2c18a1c5adcdcbdc9a3ee5ece16aa216cff943ab..93fcc1ce1c2a243eb0043e084e9a3d5e0680e480 100644
--- a/LArCalorimeter/LArRawConditions/LArRawConditions/LArMinBiasSym.h
+++ b/LArCalorimeter/LArRawConditions/LArRawConditions/LArMinBiasSym.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef LARRAWCONDITIONS_LARMIBIASSYM_H
@@ -9,25 +9,21 @@
 
 class LArMCSym;
 class LArMinBiasMC;
-class LArMinBiasComplete;
+class LArMinBiasP;
+template<typename LArMinBiastP> class LArConditionsContainer;
+
 
 class LArMinBiasSym: virtual public ILArMinBias {
-  
  public:
-
   LArMinBiasSym() = delete;
-
   LArMinBiasSym(const LArMCSym* mcsym,  const LArMinBiasMC* MinBiasComplete);
-  
   virtual ~LArMinBiasSym( );
-  
+
   virtual const float& minBiasRMS(const HWIdentifier& hwid) const override;
   
  private: 
-
   const LArMCSym* m_mcSym;
-  const LArMinBiasComplete* m_MinBiasComplete;
-
+  const LArConditionsContainer<LArMinBiasP>* m_MinBiasComplete;
 };
 
 #include "AthenaKernel/CLASS_DEF.h"
diff --git a/LArCalorimeter/LArRawConditions/LArRawConditions/LArMphysOverMcalSym.h b/LArCalorimeter/LArRawConditions/LArRawConditions/LArMphysOverMcalSym.h
new file mode 100644
index 0000000000000000000000000000000000000000..44eff771ed76612fbf02563499ed3da3950f041c
--- /dev/null
+++ b/LArCalorimeter/LArRawConditions/LArRawConditions/LArMphysOverMcalSym.h
@@ -0,0 +1,33 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef LARRAWCONDITIONS_LARMPHYSOVERMCALSYM_H
+#define LARRAWCONDITIONS_LARMPHYSOVERMCALSYM_H
+
+#include "LArElecCalib/ILArMphysOverMcal.h"
+
+class LArMCSym;
+class LArMphysOverMcalMC;
+class LArSingleFloatP;
+template<typename LArSingleFloatP> class LArConditionsContainer;
+
+class LArMphysOverMcalSym: virtual public ILArMphysOverMcal {
+ public:
+
+  LArMphysOverMcalSym() = delete;
+  LArMphysOverMcalSym(const LArMCSym* mcsym,  const LArMphysOverMcalMC* MphysOverMcalComplete);
+  virtual ~LArMphysOverMcalSym( );
+  
+  virtual const float& MphysOverMcal(const HWIdentifier& hwid, int gain) const override;
+
+ private: 
+  const LArMCSym* m_mcSym;
+  const LArConditionsContainer<LArSingleFloatP>* m_MphysOverMcalComplete;
+};
+
+#include "AthenaKernel/CLASS_DEF.h"
+#include "AthenaKernel/CondCont.h"
+CLASS_DEF( LArMphysOverMcalSym,130141195,1)
+CONDCONT_DEF( LArMphysOverMcalSym, 146726487, ILArMphysOverMcal );
+#endif 
diff --git a/LArCalorimeter/LArRawConditions/LArRawConditions/LArNoiseSym.h b/LArCalorimeter/LArRawConditions/LArRawConditions/LArNoiseSym.h
index c5c7d18df0b0a70e21fb0c7855fffdbfd60f8d6c..31afea677fb2699f11e47875b403cc3c4a736075 100644
--- a/LArCalorimeter/LArRawConditions/LArRawConditions/LArNoiseSym.h
+++ b/LArCalorimeter/LArRawConditions/LArRawConditions/LArNoiseSym.h
@@ -1,33 +1,27 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef LARRAWCONDITIONS_LARNOISESYM_H
 #define LARRAWCONDITIONS_LARNOISESYM_H
 
 #include "LArElecCalib/ILArNoise.h"
-
-class LArMCSym;
 class LArNoiseMC;
-class LArNoiseComplete;
+class LArMCSym;
+class LArNoiseP;
+template<typename LArNoiseP> class LArConditionsContainer;
 
 class LArNoiseSym: virtual public ILArNoise {
-  
  public:
-
   LArNoiseSym() = delete;
-
   LArNoiseSym(const LArMCSym* mcsym,  const LArNoiseMC* noiseComplete);
-  
   virtual ~LArNoiseSym( );
   
   virtual const float& noise(const HWIdentifier& hwid, int gain) const override;
   
  private: 
-
   const LArMCSym* m_mcSym;
-  const LArNoiseComplete* m_noiseComplete;
-
+  const LArConditionsContainer<LArNoiseP>* m_noiseComplete;
 };
 
 #include "AthenaKernel/CLASS_DEF.h"
diff --git a/LArCalorimeter/LArRawConditions/LArRawConditions/LArRampSym.h b/LArCalorimeter/LArRawConditions/LArRawConditions/LArRampSym.h
index 165b7f4e4fd46d833ca5fe9c010dc64048cd3409..97d2eb81cb23d988d48e8931c5be0004ae07c4e7 100644
--- a/LArCalorimeter/LArRawConditions/LArRawConditions/LArRampSym.h
+++ b/LArCalorimeter/LArRawConditions/LArRawConditions/LArRampSym.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef LARRAWCONDITIONS_LARRAMPSYM_H
@@ -7,27 +7,23 @@
 
 #include "LArElecCalib/ILArRamp.h"
 
+
 class LArMCSym;
 class LArRampMC;
-class LArRampComplete;
+class LArRampP1;
+template <typename LArRampP1> class LArConditionsContainer;
 
 class LArRampSym: public ILArRamp {
-  
  public:
-
   LArRampSym() = delete;
-
   LArRampSym(const LArMCSym* mcsym,  const LArRampMC* rampComplete);
-  
   virtual ~LArRampSym( );
   
-  virtual  RampRef_t ADC2DAC(const HWIdentifier&  CellID, int gain) const override;
-   
- private: 
+  virtual RampRef_t ADC2DAC(const HWIdentifier& CellID, int gain) const override;
 
+ private: 
   const LArMCSym* m_mcSym;
-  const LArRampComplete* m_rampComplete;
-
+  const LArConditionsContainer<LArRampP1>* m_rampComplete;
 };
 
 #include "AthenaKernel/CLASS_DEF.h"
diff --git a/LArCalorimeter/LArRawConditions/LArRawConditions/LArShape32Sym.h b/LArCalorimeter/LArRawConditions/LArRawConditions/LArShape32Sym.h
new file mode 100644
index 0000000000000000000000000000000000000000..5a8f65fb5c61fcba294dfabab3645f99cb0b07a4
--- /dev/null
+++ b/LArCalorimeter/LArRawConditions/LArRawConditions/LArShape32Sym.h
@@ -0,0 +1,41 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+
+#ifndef LARRAWCONDITIONS_LARSHAPE32SYM_H
+#define LARRAWCONDITIONS_LARSHAPE32SYM_H
+
+#include "LArElecCalib/ILArShape.h"
+#include "Identifier/Identifier.h"
+
+class LArMCSym;
+class LArShape32MC;
+class LArShapeP1;
+template<typename LArShapeP1> class LArConditionsContainer;
+
+class LArShape32Sym: public ILArShape {
+  
+ public:
+  typedef ILArShape::ShapeRef_t ShapeRef_t;
+  LArShape32Sym() = delete;
+  LArShape32Sym(const LArMCSym* mcsym,  const LArShape32MC* shapeComplete);
+  virtual ~LArShape32Sym( );
+
+   // retrieving Shape using online ID
+  virtual ShapeRef_t Shape   (const HWIdentifier&  CellID, int gain, int tbin = 0, int mode = 0 ) const;
+  virtual ShapeRef_t ShapeDer(const HWIdentifier&  CellID, int gain, int tbin = 0, int mode = 0) const;
+  
+  // retrieving Shape using offline ID
+  virtual ShapeRef_t Shape   (const Identifier&  CellID, int gain, int tbin = 0, int mode = 0) const;
+  virtual ShapeRef_t ShapeDer(const Identifier&  CellID, int gain, int tbin = 0, int mode = 0) const;
+
+ private: 
+  const LArMCSym* m_mcSym;
+  const LArConditionsContainer<LArShapeP1>* m_shapeComplete;
+};
+
+#include "AthenaKernel/CLASS_DEF.h"
+#include "AthenaKernel/CondCont.h"
+CLASS_DEF( LArShape32Sym,237619693,1)
+CONDCONT_DEF( LArShape32Sym,110670317 , ILArShape );
+#endif 
diff --git a/LArCalorimeter/LArRawConditions/LArRawConditions/LArfSamplSym.h b/LArCalorimeter/LArRawConditions/LArRawConditions/LArfSamplSym.h
index 81e8df164daa65aad8d8425bf6ad9f6be8362d0c..2d8cc6488af28cd0cc98746dfa8c3f300bf0a234 100644
--- a/LArCalorimeter/LArRawConditions/LArRawConditions/LArfSamplSym.h
+++ b/LArCalorimeter/LArRawConditions/LArRawConditions/LArfSamplSym.h
@@ -1,41 +1,33 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef LARRAWCONDITIONS_LARFSAMPLSYM_H
 #define LARRAWCONDITIONS_LARFSAMPLSYM_H
 
 #include "LArElecCalib/ILArfSampl.h"
+#include "LArRawConditions/LArfSamplMC.h"
 
 class LArMCSym;
-class LArfSamplComplete ;
 class LArfSamplMC;
+class LArfSamplP;
+template<typename LArfSamplP> class LArConditionsContainer;
 
 /** Implementation of the interface ILArfSampl for MC
     using the z-phi symmetry
  */
 
-class LArfSamplSym: virtual public ILArfSampl {
-  
+class LArfSamplSym: virtual public ILArfSampl {  
  public: 
-  
   LArfSamplSym()=delete;
-
   LArfSamplSym(const LArMCSym* mcSym, const LArfSamplMC* fSamplMC);
-  
   virtual ~LArfSamplSym();
   
-  // retrieving fSampl using online ID
-  
   virtual const float& FSAMPL(const HWIdentifier&  CellID) const override;
-  
-  virtual const float& FSAMPL(const Identifier&  CellID) const override;
-    
+  virtual const float& FSAMPL(const Identifier&  CellID) const override;    
  private: 
-  
   const LArMCSym* m_mcSym;
-  const LArfSamplComplete* m_fSamplComplete;
-
+  const LArConditionsContainer<LArfSamplP>* m_fSamplCont;
 };
 
 #include "AthenaKernel/CLASS_DEF.h"
@@ -43,5 +35,4 @@ class LArfSamplSym: virtual public ILArfSampl {
 CLASS_DEF( LArfSamplSym, 169816659, 1)
 CONDCONT_DEF( LArfSamplSym, 75658929, ILArfSampl );
 
-
 #endif 
diff --git a/LArCalorimeter/LArRawConditions/LArRawConditions/LAruA2MeVSym.h b/LArCalorimeter/LArRawConditions/LArRawConditions/LAruA2MeVSym.h
index 1c457d2767bb5a4ddf53c7bcda899f223d09af70..4e2e168c7c68233074c434d5a7804bc13c6b927c 100644
--- a/LArCalorimeter/LArRawConditions/LArRawConditions/LAruA2MeVSym.h
+++ b/LArCalorimeter/LArRawConditions/LArRawConditions/LAruA2MeVSym.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
 
 #ifndef LARRAWCONDITIONS_LARUA2MEVSYM_H
@@ -9,24 +9,22 @@
 
 class LArMCSym;
 class LAruA2MeVMC;
-class LAruA2MeVComplete;
+class LArSingleFloatP;
+template<typename LArSingleFloatP> class LArConditionsContainer;
+
 
 class LAruA2MeVSym: virtual public ILAruA2MeV {
   
  public:
-
   LAruA2MeVSym() = delete;
-
   LAruA2MeVSym(const LArMCSym* mcsym,  const LAruA2MeVMC* uA2MeVComplete);
-  
   virtual ~LAruA2MeVSym( );
   
   virtual const float& UA2MEV(const HWIdentifier& hwid) const override;
    
  private: 
-
   const LArMCSym* m_mcSym;
-  const LAruA2MeVComplete* m_uA2MeVComplete;
+  const LArConditionsContainer<LArSingleFloatP>* m_uA2MeVComplete;
 
 };
 
diff --git a/LArCalorimeter/LArRawConditions/src/LArAutoCorrSym.cxx b/LArCalorimeter/LArRawConditions/src/LArAutoCorrSym.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..c97cf7aeb0940266f961263387d02eba1d1bbd8e
--- /dev/null
+++ b/LArCalorimeter/LArRawConditions/src/LArAutoCorrSym.cxx
@@ -0,0 +1,20 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "LArRawConditions/LArAutoCorrSym.h"
+#include "LArRawConditions/LArAutoCorrMC.h"
+#include "LArRawConditions/LArMCSym.h"
+
+LArAutoCorrSym::LArAutoCorrSym(const LArMCSym* mcSym,  const LArAutoCorrMC* acComplete) :
+  m_mcSym(mcSym),
+  m_acComplete(acComplete) //Implicit cast to base-class
+{}
+
+LArAutoCorrSym::~LArAutoCorrSym() {}
+ 
+ILArAutoCorr::AutoCorrRef_t LArAutoCorrSym::autoCorr(const HWIdentifier&  hwid, int gain) const {
+  HWIdentifier symhwid=m_mcSym->ZPhiSymOnl(hwid);
+  return m_acComplete->get(symhwid,gain).m_vAutoCorr;
+}
+  
diff --git a/LArCalorimeter/LArRawConditions/src/LArDAC2uASym.cxx b/LArCalorimeter/LArRawConditions/src/LArDAC2uASym.cxx
index 274258bfb5e11755e855eae59cbcb838cdcd4e53..2cb04e07bc7438bdb0dbeb6fac71749dcf6f7e2b 100644
--- a/LArCalorimeter/LArRawConditions/src/LArDAC2uASym.cxx
+++ b/LArCalorimeter/LArRawConditions/src/LArDAC2uASym.cxx
@@ -1,23 +1,22 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "LArRawConditions/LArDAC2uASym.h"
-#include "LArRawConditions/LArDAC2uAComplete.h"
 #include "LArRawConditions/LArDAC2uAMC.h"
 #include "LArRawConditions/LArMCSym.h"
 
 
 LArDAC2uASym::LArDAC2uASym(const LArMCSym* mcSym,  const LArDAC2uAMC* DAC2uAComplete) :
   m_mcSym(mcSym),
-  m_DAC2uAComplete(static_cast<const LArDAC2uAComplete*>(DAC2uAComplete)) //Cast to base-class
+  m_DAC2uAComplete(DAC2uAComplete) //Implicit cast to base-class
 {}
 
 LArDAC2uASym::~LArDAC2uASym() {}
  
 const float&  LArDAC2uASym::DAC2UA(const HWIdentifier&  hwid) const {
   HWIdentifier symhwid=m_mcSym->ZPhiSymOnl(hwid);
-  return m_DAC2uAComplete->DAC2UA(symhwid);
+  return m_DAC2uAComplete->get(symhwid).m_data;
 }
   
 
diff --git a/LArCalorimeter/LArRawConditions/src/LArMinBiasAverageSym.cxx b/LArCalorimeter/LArRawConditions/src/LArMinBiasAverageSym.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..5e7ae3a7e7c137b7f1b4afb37518b1d7c1863b9b
--- /dev/null
+++ b/LArCalorimeter/LArRawConditions/src/LArMinBiasAverageSym.cxx
@@ -0,0 +1,20 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "LArRawConditions/LArMinBiasAverageSym.h"
+#include "LArRawConditions/LArMinBiasAverageMC.h"
+#include "LArRawConditions/LArMCSym.h"
+
+
+LArMinBiasAverageSym::LArMinBiasAverageSym(const LArMCSym* mcSym,  const LArMinBiasAverageMC* MinBiasAverageComplete) :
+  m_mcSym(mcSym),
+  m_MinBiasAverageComplete(MinBiasAverageComplete) //Implicit cast to base-class
+{}
+
+LArMinBiasAverageSym::~LArMinBiasAverageSym() {}
+
+const float& LArMinBiasAverageSym::minBiasAverage(const HWIdentifier& hwid) const {
+  HWIdentifier symhwid=m_mcSym->ZPhiSymOnl(hwid);
+  return m_MinBiasAverageComplete->get(symhwid).m_MinBiasAverage;
+}
diff --git a/LArCalorimeter/LArRawConditions/src/LArMinBiasSym.cxx b/LArCalorimeter/LArRawConditions/src/LArMinBiasSym.cxx
index 5a70e91ce194d3d5e0bd5635c9b441a19f8d99c1..db6b472d547db38a371d77de5b1a37826797c651 100644
--- a/LArCalorimeter/LArRawConditions/src/LArMinBiasSym.cxx
+++ b/LArCalorimeter/LArRawConditions/src/LArMinBiasSym.cxx
@@ -1,23 +1,22 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "LArRawConditions/LArMinBiasSym.h"
-#include "LArRawConditions/LArMinBiasComplete.h"
 #include "LArRawConditions/LArMinBiasMC.h"
 #include "LArRawConditions/LArMCSym.h"
 
 
 LArMinBiasSym::LArMinBiasSym(const LArMCSym* mcSym,  const LArMinBiasMC* MinBiasComplete) :
   m_mcSym(mcSym),
-  m_MinBiasComplete(static_cast<const LArMinBiasComplete*>(MinBiasComplete)) //Cast to base-class
+  m_MinBiasComplete(MinBiasComplete) //Implicit cast to base-class
 {}
 
 LArMinBiasSym::~LArMinBiasSym() {}
  
-const float&  LArMinBiasSym::minBiasRMS(const HWIdentifier&  hwid) const {
+const float& LArMinBiasSym::minBiasRMS(const HWIdentifier&  hwid) const {
   HWIdentifier symhwid=m_mcSym->ZPhiSymOnl(hwid);
-  return m_MinBiasComplete->minBiasRMS(symhwid);
+  return m_MinBiasComplete->get(symhwid).m_MinBiasRMS;
 }
   
 
diff --git a/LArCalorimeter/LArRawConditions/src/LArMphysOverMcalSym.cxx b/LArCalorimeter/LArRawConditions/src/LArMphysOverMcalSym.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..3360aa18937103f50d1b87ea78ebe94107f1d110
--- /dev/null
+++ b/LArCalorimeter/LArRawConditions/src/LArMphysOverMcalSym.cxx
@@ -0,0 +1,22 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "LArRawConditions/LArMphysOverMcalSym.h"
+#include "LArRawConditions/LArMphysOverMcalMC.h"
+#include "LArRawConditions/LArMCSym.h"
+
+
+LArMphysOverMcalSym::LArMphysOverMcalSym(const LArMCSym* mcSym,  const LArMphysOverMcalMC* MphysOverMcalComplete) :
+  m_mcSym(mcSym),
+  m_MphysOverMcalComplete(MphysOverMcalComplete) //Implicit cast to base-class
+{}
+
+LArMphysOverMcalSym::~LArMphysOverMcalSym() {}
+ 
+const float& LArMphysOverMcalSym::MphysOverMcal(const HWIdentifier&  hwid, int gain) const {
+  HWIdentifier symhwid=m_mcSym->ZPhiSymOnl(hwid);
+  return m_MphysOverMcalComplete->get(symhwid,gain).m_data;
+}
+  
+
diff --git a/LArCalorimeter/LArRawConditions/src/LArNoiseSym.cxx b/LArCalorimeter/LArRawConditions/src/LArNoiseSym.cxx
index f225ed8090ab7b9cddd1b6a76abcfa1e4d6cd89f..2f7c3a2273f06a3a6763387f53912d429163f434 100644
--- a/LArCalorimeter/LArRawConditions/src/LArNoiseSym.cxx
+++ b/LArCalorimeter/LArRawConditions/src/LArNoiseSym.cxx
@@ -1,22 +1,21 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "LArRawConditions/LArNoiseSym.h"
-#include "LArRawConditions/LArNoiseComplete.h"
 #include "LArRawConditions/LArNoiseMC.h"
 #include "LArRawConditions/LArMCSym.h"
 
 
 LArNoiseSym::LArNoiseSym(const LArMCSym* mcSym,  const LArNoiseMC* noiseComplete) :
   m_mcSym(mcSym),
-  m_noiseComplete(static_cast<const LArNoiseComplete*>(noiseComplete)) //Cast to base-class
+  m_noiseComplete(noiseComplete) //Implicit cast to base-class
 {}
 
 LArNoiseSym::~LArNoiseSym() {}
  
 const float&  LArNoiseSym::noise(const HWIdentifier&  hwid, int gain) const {
   HWIdentifier symhwid=m_mcSym->ZPhiSymOnl(hwid);
-  return m_noiseComplete->noise(symhwid,gain);
+  return m_noiseComplete->get(symhwid,gain).m_Noise;
 }
   
diff --git a/LArCalorimeter/LArRawConditions/src/LArRampSym.cxx b/LArCalorimeter/LArRawConditions/src/LArRampSym.cxx
index d9ade178597a05b977c268f7617d30d7cba58895..2b9e9aa659604c443a8a9f4f91b0915be8b1973f 100644
--- a/LArCalorimeter/LArRawConditions/src/LArRampSym.cxx
+++ b/LArCalorimeter/LArRawConditions/src/LArRampSym.cxx
@@ -1,23 +1,21 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
 
-
 #include "LArRawConditions/LArRampSym.h"
-#include "LArRawConditions/LArRampComplete.h"
 #include "LArRawConditions/LArRampMC.h"
 #include "LArRawConditions/LArMCSym.h"
 
 
 LArRampSym::LArRampSym(const LArMCSym* mcSym,  const LArRampMC* rampComplete) :
   m_mcSym(mcSym),
-  m_rampComplete(static_cast<const LArRampComplete*>(rampComplete)) //Cast to base-class
+  m_rampComplete(rampComplete) //Implicit cast to base-class
 {}
 
 LArRampSym::~LArRampSym() {}
  
 ILArRamp::RampRef_t LArRampSym::ADC2DAC(const HWIdentifier&  hwid, int gain) const {
   HWIdentifier symhwid=m_mcSym->ZPhiSymOnl(hwid);
-  return m_rampComplete->ADC2DAC(symhwid,gain);
+  return m_rampComplete->get(symhwid,gain).m_vRamp;
 }
   
diff --git a/LArCalorimeter/LArRawConditions/src/LArShape32Sym.cxx b/LArCalorimeter/LArRawConditions/src/LArShape32Sym.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..0f570dec6bec8c1c991509731d72a861b0149119
--- /dev/null
+++ b/LArCalorimeter/LArRawConditions/src/LArShape32Sym.cxx
@@ -0,0 +1,47 @@
+/*
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
+*/
+
+#include "LArRawConditions/LArShape32Sym.h"
+#include "LArRawConditions/LArShape32MC.h"
+#include "LArRawConditions/LArMCSym.h"
+
+LArShape32Sym::LArShape32Sym(const LArMCSym* mcsym,  const LArShape32MC* shapeComplete):
+  m_mcSym(mcsym),
+  m_shapeComplete(static_cast<const LArConditionsContainer<LArShapeP1>*>(shapeComplete))
+{}
+    
+LArShape32Sym::~LArShape32Sym() {}
+
+
+ILArShape::ShapeRef_t LArShape32Sym::Shape(const HWIdentifier&  hwid, int gain, 
+				int /*tbin*/, int /*mode*/ ) const {
+  HWIdentifier symhwid=m_mcSym->ZPhiSymOnl(hwid);
+  const LArShapeP1& t = m_shapeComplete->get(symhwid,gain);
+  return t.m_vShape;
+}
+
+
+ILArShape::ShapeRef_t LArShape32Sym::ShapeDer(const HWIdentifier&  hwid, int gain, 
+				int /*tbin*/, int /*mode*/ ) const {
+  HWIdentifier symhwid=m_mcSym->ZPhiSymOnl(hwid);
+  const LArShapeP1& t = m_shapeComplete->get(symhwid,gain);
+  return t.m_vShapeDer;
+}
+
+
+
+ILArShape::ShapeRef_t LArShape32Sym::Shape(const Identifier&  id, int gain, 
+				int /*tbin*/, int /*mode*/ ) const {
+  HWIdentifier symhwid=m_mcSym->ZPhiSymOfl(id);
+  const LArShapeP1& t = m_shapeComplete->get(symhwid,gain);
+  return t.m_vShape;
+}
+
+
+ILArShape::ShapeRef_t LArShape32Sym::ShapeDer(const Identifier& id, int gain, 
+				int /*tbin*/, int /*mode*/ ) const {
+  HWIdentifier symhwid=m_mcSym->ZPhiSymOfl(id);
+  const LArShapeP1& t = m_shapeComplete->get(symhwid,gain);
+  return t.m_vShapeDer;
+}
diff --git a/LArCalorimeter/LArRawConditions/src/LArfSamplSym.cxx b/LArCalorimeter/LArRawConditions/src/LArfSamplSym.cxx
index a0024efc53eb1b518f97b2b1bdb1e988ca6b0749..6750ddee207886c6e5e9d8b76151efdbb969daf8 100644
--- a/LArCalorimeter/LArRawConditions/src/LArfSamplSym.cxx
+++ b/LArCalorimeter/LArRawConditions/src/LArfSamplSym.cxx
@@ -1,25 +1,23 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
 #include "LArRawConditions/LArfSamplSym.h"
-#include "LArRawConditions/LArfSamplComplete.h"
-#include "LArRawConditions/LArfSamplMC.h"
 #include "LArRawConditions/LArMCSym.h"
 
 
 LArfSamplSym::LArfSamplSym(const LArMCSym* mcSym,  const LArfSamplMC* fSamplComplete) :
   m_mcSym(mcSym),
-  m_fSamplComplete(static_cast<const LArfSamplComplete*>(fSamplComplete)) //Cast to base-class
+  m_fSamplCont(fSamplComplete) //Implicit cast to base-class
 {}
 
 LArfSamplSym::~LArfSamplSym() {}
 
 const float& LArfSamplSym::FSAMPL(const HWIdentifier&  hwid) const {
   HWIdentifier symhwid=m_mcSym->ZPhiSymOnl(hwid);
-  return m_fSamplComplete->FSAMPL(symhwid);
+  return m_fSamplCont->get(symhwid).m_fSampl;
 }
   
 const float& LArfSamplSym::FSAMPL(const Identifier&  id) const {
   HWIdentifier symhwid=m_mcSym->ZPhiSymOfl(id);
-  return m_fSamplComplete->FSAMPL(symhwid);
+  return m_fSamplCont->get(symhwid).m_fSampl;
 }
diff --git a/LArCalorimeter/LArRawConditions/src/LAruA2MeVSym.cxx b/LArCalorimeter/LArRawConditions/src/LAruA2MeVSym.cxx
index db071e29b371373ed44ca271bb1b629765eb6242..29e1b8be8cf1c622ea41db3c9c30e0d9395c5abd 100644
--- a/LArCalorimeter/LArRawConditions/src/LAruA2MeVSym.cxx
+++ b/LArCalorimeter/LArRawConditions/src/LAruA2MeVSym.cxx
@@ -1,21 +1,20 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2018 CERN for the benefit of the ATLAS collaboration
 */
 
 #include "LArRawConditions/LAruA2MeVSym.h"
-#include "LArRawConditions/LAruA2MeVComplete.h"
 #include "LArRawConditions/LAruA2MeVMC.h"
 #include "LArRawConditions/LArMCSym.h"
 
 
 LAruA2MeVSym::LAruA2MeVSym(const LArMCSym* mcSym,  const LAruA2MeVMC* uA2MeVComplete) :
   m_mcSym(mcSym),
-  m_uA2MeVComplete(static_cast<const LAruA2MeVComplete*>(uA2MeVComplete)) //Cast to base-class
+  m_uA2MeVComplete(uA2MeVComplete) //Implicit cast to base-class
 {}
 
 LAruA2MeVSym::~LAruA2MeVSym() {}
  
-const float&  LAruA2MeVSym::UA2MEV(const HWIdentifier&  hwid) const {
+const float& LAruA2MeVSym::UA2MEV(const HWIdentifier&  hwid) const {
   HWIdentifier symhwid=m_mcSym->ZPhiSymOnl(hwid);
-  return m_uA2MeVComplete->UA2MEV(symhwid);
+  return m_uA2MeVComplete->get(symhwid).m_data;
 }
diff --git a/LArCalorimeter/LArRecUtils/src/LArSymConditionsAlg.h b/LArCalorimeter/LArRecUtils/src/LArSymConditionsAlg.h
index a96d02872b017479717cf8bab7ac8246d6bab067..2d8277547a851d891a424a16434753e84258863b 100644
--- a/LArCalorimeter/LArRecUtils/src/LArSymConditionsAlg.h
+++ b/LArCalorimeter/LArRecUtils/src/LArSymConditionsAlg.h
@@ -53,7 +53,6 @@ typedef LArSymConditionsAlg<LArDAC2uAMC,LArDAC2uASym> LArDAC2uASymCondAlg;
 typedef LArSymConditionsAlg<LArfSamplMC,LArfSamplSym> LArfSamplSymCondAlg;
 
 
-
 #include "LArRawConditions/LArMinBiasMC.h"
 #include "LArRawConditions/LArMinBiasSym.h"
 typedef LArSymConditionsAlg<LArMinBiasMC,LArMinBiasSym> LArMinBiasSymCondAlg;
@@ -63,4 +62,20 @@ typedef LArSymConditionsAlg<LArMinBiasMC,LArMinBiasSym> LArMinBiasSymCondAlg;
 typedef LArSymConditionsAlg<LArNoiseMC,LArNoiseSym> LArNoiseSymCondAlg;
 
 
+#include "LArRawConditions/LArMinBiasAverageMC.h"
+#include "LArRawConditions/LArMinBiasAverageSym.h"
+typedef  LArSymConditionsAlg<LArMinBiasAverageMC,LArMinBiasAverageSym> LArMinBiasAverageSymCondAlg;
+
+#include "LArRawConditions/LArShape32MC.h"
+#include "LArRawConditions/LArShape32Sym.h"
+typedef LArSymConditionsAlg<LArShape32MC,LArShape32Sym> LArShapeSymCondAlg;
+
+#include "LArRawConditions/LArAutoCorrMC.h"
+#include "LArRawConditions/LArAutoCorrSym.h"
+typedef LArSymConditionsAlg<LArAutoCorrMC,LArAutoCorrSym> LArAutoCorrSymCondAlg;
+
+#include "LArRawConditions/LArMphysOverMcalMC.h"
+#include "LArRawConditions/LArMphysOverMcalSym.h"
+typedef LArSymConditionsAlg<LArMphysOverMcalMC,LArMphysOverMcalSym> LArMphysOverMcalSymCondAlg;
+
 #endif
diff --git a/LArCalorimeter/LArRecUtils/src/components/LArRecUtils_entries.cxx b/LArCalorimeter/LArRecUtils/src/components/LArRecUtils_entries.cxx
index 9066ac12806e5c3cf00c2f088b212e01ee2fea6d..c2789fdacc63f06512f9c2bd1ebef4a3c01d295c 100644
--- a/LArCalorimeter/LArRecUtils/src/components/LArRecUtils_entries.cxx
+++ b/LArCalorimeter/LArRecUtils/src/components/LArRecUtils_entries.cxx
@@ -76,7 +76,11 @@ DECLARE_COMPONENT( LAruA2MeVSymCondAlg )
 DECLARE_COMPONENT( LArDAC2uASymCondAlg )
 DECLARE_COMPONENT( LArfSamplSymCondAlg )
 DECLARE_COMPONENT( LArMinBiasSymCondAlg )
+DECLARE_COMPONENT( LArMinBiasAverageSymCondAlg )
 DECLARE_COMPONENT( LArNoiseSymCondAlg )
+DECLARE_COMPONENT( LArShapeSymCondAlg )
+DECLARE_COMPONENT( LArAutoCorrSymCondAlg )
+DECLARE_COMPONENT( LArMphysOverMcalSymCondAlg ) 
 
 DECLARE_COMPONENT( LArAutoCorrTotalCondAlg )
 DECLARE_COMPONENT( LArADC2MeVCondAlg )