diff --git a/LArCalorimeter/LArRawConditions/LArRawConditions/LArRawConditionsDict1.h b/LArCalorimeter/LArRawConditions/LArRawConditions/LArRawConditionsDict1.h
index eb92c4c141ff427d7aa323fc4b0a5720c2c268b3..d21c64e196bb9bd732d9d87946a6530816afabda 100644
--- a/LArCalorimeter/LArRawConditions/LArRawConditions/LArRawConditionsDict1.h
+++ b/LArCalorimeter/LArRawConditions/LArRawConditions/LArRawConditionsDict1.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 */
 
 //Dear emacs, this is -*-c++-*-
@@ -15,6 +15,7 @@
 #include "LArRawConditions/LArAutoCorrP.h"
 #include "LArRawConditions/LArAutoCorrP1.h"
 INSTAN_CC(LArAutoCorrP1);
+INSTAN_CS(LArAutoCorrP1);
 INSTAN_CS(LArAutoCorrP);
 //PYGATE(LArAutoCorrComplete);
 //PYGATE(LArAutoCorrMC);
diff --git a/LArCalorimeter/LArRawConditions/LArRawConditions/LArRawConditionsDictCommon.h b/LArCalorimeter/LArRawConditions/LArRawConditions/LArRawConditionsDictCommon.h
index 75611668a9baad9e021fdd7603bb558b518f4919..1d411769df360d04c7f210dee261906743febf76 100644
--- a/LArCalorimeter/LArRawConditions/LArRawConditions/LArRawConditionsDictCommon.h
+++ b/LArCalorimeter/LArRawConditions/LArRawConditions/LArRawConditionsDictCommon.h
@@ -1,5 +1,5 @@
 /*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
+  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
 */
 
 //Dear emacs, this is -*-c++-*-
@@ -9,6 +9,7 @@
 
 #include "LArRawConditions/LArConditionsContainer.h"
 #include "LArRawConditions/LArConditionsSubset.h"
+#include "AthenaPoolUtilities/CondMultChanCollection.h"
 #include "StoreGate/StoreGateSvc.h" // for PyGate
 
 #define INSTAN_CC(T) \
@@ -22,6 +23,7 @@
     LArConditionsSubset<T>::CorrectionPair          cscp_##T; \
     LArConditionsSubset<T>::ConstCorrectionVecIt    cscv_##T;  \
     LArConditionsSubset<T>::FebPair                 csfb_##T; \
+    CondMultChanCollection<LArConditionsSubset<T> > cscmcc_##T; \
   } struct xyzzy
 #define INSTAN_BOTH(T) \
   INSTAN_CC(T); INSTAN_CS(T)
diff --git a/LArCalorimeter/LArRawConditions/LArRawConditions/selection1.xml b/LArCalorimeter/LArRawConditions/LArRawConditions/selection1.xml
index 64f2dac1a6aca2ba20aa4344c3ce561c2e589f65..5ee55f46323ca2edc413c18caf8ea70d15f87dad 100644
--- a/LArCalorimeter/LArRawConditions/LArRawConditions/selection1.xml
+++ b/LArCalorimeter/LArRawConditions/LArRawConditions/selection1.xml
@@ -16,9 +16,14 @@
   <class name="LArAutoCorrP" />
   <!-- picked up by iterator pattern below. -->
   <!-- <class name="LArAutoCorrP1" /> -->
+  <class name="CondMultChanCollection<LArConditionsSubset<LArAutoCorrP> >" />
   <class name="LArConditionsSubset<LArAutoCorrP>"  id="4E7E36E9-2121-4327-88C5-8A516D6D6D2A" >
     <field name="m_subsetMap" transient="true" />
   </class>
+  <class name="CondMultChanCollection<LArConditionsSubset<LArAutoCorrP1> >" />
+  <class name="LArConditionsSubset<LArAutoCorrP1>" >
+    <field name="m_subsetMap" transient="true" />
+  </class>
   <read sourceClass="LArConditionsSubset<LArAutoCorrP>" version="[1-]"
         targetClass="LArConditionsSubset<LArAutoCorrP>" source=""
         target="" >
@@ -27,6 +32,14 @@
      if (newObj) newObj->fillMap();
   ]]>
   </read>
+  <read sourceClass="LArConditionsSubset<LArAutoCorrP1>" version="[1-]"
+        targetClass="LArConditionsSubset<LArAutoCorrP1>" source=""
+        target="" >
+  <![CDATA[
+     // Need to build the map before the object can be used.
+     if (newObj) newObj->fillMap();
+  ]]>
+  </read>
 
   <class name="std::pair<unsigned int,LArAutoCorrP>"/>
   <class name="std::pair<unsigned int,std::vector<LArAutoCorrP> >"/>
@@ -40,6 +53,7 @@
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArCaliPulseParamsP" /> -->
 
+  <class name="CondMultChanCollection<LArConditionsSubset<LArCaliPulseParamsP> >" />
   <class name="LArConditionsSubset<LArCaliPulseParamsP>"  id="D1D15524-04F0-4A75-ABC7-948D90491504" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -64,6 +78,7 @@
   <class name="LArDAC2uAMC" />
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArDAC2uAP" /> -->
+  <class name="CondMultChanCollection<LArConditionsSubset<LArDAC2uAP> >" />
   <class name="LArConditionsSubset<LArDAC2uAP>"  id="00BB980F-D174-4AD7-A5C7-DC66BA71C4D2" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -88,6 +103,7 @@
   <class name="LArDetCellParamsComplete" />
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArDetCellParamsP" /> -->
+  <class name="CondMultChanCollection<LArConditionsSubset<LArDetCellParamsP> >" />
   <class name="LArConditionsSubset<LArDetCellParamsP>"  id="11272A20-3A6B-4E1B-B96C-27117868ED09" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -112,6 +128,7 @@
   <class name="LArfSamplMC" />
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArfSamplP" /> -->
+  <class name="CondMultChanCollection<LArConditionsSubset<LArfSamplP> >" />
   <class name="LArConditionsSubset<LArfSamplP>"  id="6E808031-FCAD-4DB6-9246-E5D926790FED" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -135,6 +152,7 @@
   <class name="LArH6OscillationComplete" />
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArH6OscillationP" /> -->
+  <class name="CondMultChanCollection<LArConditionsSubset<LArH6OscillationP> >" />
   <class name="LArConditionsSubset<LArH6OscillationP>"  id="425EBF82-9EC7-4A2E-A112-49439F26E45B" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -160,6 +178,7 @@
   <!-- LArSingleFloat subset -->
   <!-- picked up by iterator pattern below. -->
   <!-- <class name="LArSingleFloatP" /> -->
+  <class name="CondMultChanCollection<LArConditionsSubset<LArSingleFloatP> >" />
   <class name="LArConditionsSubset<LArSingleFloatP>" />
   <!-- ??? why isn't m_subsetMap declared transient here? --->
   <read sourceClass="LArConditionsSubset<LArSingleFloatP>" version="[1-]"
@@ -184,6 +203,7 @@
   <class name="LArMinBiasMC" />
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArMinBiasP" /> -->
+  <class name="CondMultChanCollection<LArConditionsSubset<LArMinBiasP> >" />
   <class name="LArConditionsSubset<LArMinBiasP>"  id="71652545-4809-45A5-9125-5ACA8FB5AC0C" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -208,6 +228,7 @@
   <class name="LArMinBiasAverageMC" />
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArMinBiasAverageP" /> -->
+  <class name="CondMultChanCollection<LArConditionsSubset<LArMinBiasAverageP> >" />
   <class name="LArConditionsSubset<LArMinBiasAverageP>"  id="3235F39A-7C1D-4FB9-9F56-6A6251AC3360" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -234,6 +255,7 @@
   <class name="LArMphysOverMcalP" />
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArMphysOverMcalP1" /> -->
+  <class name="CondMultChanCollection<LArConditionsSubset<LArMphysOverMcalP> >" />
   <class name="LArConditionsSubset<LArMphysOverMcalP>"  id="9C53AC43-3FD6-470F-A6FF-1DF80E85ACBF" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -258,6 +280,7 @@
   <class name="LArNoiseMC" />
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArNoiseP" /> -->
+  <class name="CondMultChanCollection<LArConditionsSubset<LArNoiseP> >" />
   <class name="LArConditionsSubset<LArNoiseP>"  id="A96F4520-9C5E-49E6-89A3-5E26A781CE11" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -287,6 +310,7 @@
     <field name="m_cache" transient="true" />
   </class>
   <class name="LArOFCP" />
+  <class name="CondMultChanCollection<LArConditionsSubset<LArOFCP> >" />
   <class name="LArConditionsSubset<LArOFCP>"  id="3E5389EF-D163-4099-91D9-D3F0EE06C1CD" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -314,6 +338,7 @@
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArPedestalP1" /> -->
   <class name="LArPedestalComplete" />
+  <class name="CondMultChanCollection<LArConditionsSubset<LArPedestalP> >" />
   <class name="LArConditionsSubset<LArPedestalP>"  id="E17191DD-4C0A-4B1A-AE49-7D587C6BE3EE" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -339,6 +364,7 @@
   <class name="LArPhysCaliTdiffComplete" />
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArPhysCaliTdiffP" /> -->
+  <class name="CondMultChanCollection<LArConditionsSubset<LArPhysCaliTdiffP> >" />
   <class name="LArConditionsSubset<LArPhysCaliTdiffP>"  id="A7FB91FF-4535-4EB7-87F8-A34BA477ECE0" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -365,6 +391,7 @@
   <class name="LArRampP" />
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArRampP1" /> -->
+  <class name="CondMultChanCollection<LArConditionsSubset<LArRampP> >" />
   <class name="LArConditionsSubset<LArRampP>"  id="4019776D-D528-4401-9CBD-7956C4B00607" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -390,6 +417,7 @@
   <class name="LAruA2MeVMC" />
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LAruA2MeVP" /> -->
+  <class name="CondMultChanCollection<LArConditionsSubset<LAruA2MeVP> >" />
   <class name="LArConditionsSubset<LAruA2MeVP>"  id="CBF815A2-F18C-4C18-9E93-A8EE67CEE59F" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -446,7 +474,7 @@
 
     <class pattern="*_Rb_tree_iterator*"/>
 
-    <class pattern="*<LArConditionsSubset*" />
+    <!--<class pattern="*<LArConditionsSubset*" />-->
 
     <class name="random_access_iterator_tag" />
 
diff --git a/LArCalorimeter/LArRawConditions/LArRawConditions/selection2.xml b/LArCalorimeter/LArRawConditions/LArRawConditions/selection2.xml
index 6cff6be1cdea5a42242055ea24a3271c0b5bea59..d2225730f3cd1c1d1f21f6bc034d3cb2cfd2c872 100644
--- a/LArCalorimeter/LArRawConditions/LArRawConditions/selection2.xml
+++ b/LArCalorimeter/LArRawConditions/LArRawConditions/selection2.xml
@@ -12,6 +12,7 @@
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArShapeP1" /> -->
   <!--<class name="LArShapeP2" />-->
+  <class name="CondMultChanCollection<LArConditionsSubset<LArShapeP> >" />
   <class name="LArConditionsSubset<LArShapeP>"  id="055CF2F5-08D0-4EAA-B154-8CE5B1A599E7" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -35,6 +36,7 @@
   <class name="LArTdriftComplete" />
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArTdriftP" /> -->
+  <class name="CondMultChanCollection<LArConditionsSubset<LArTdriftP> >" />
   <class name="LArConditionsSubset<LArTdriftP>"  id="18AE4F30-F828-4715-85AA-6A69DD3C048C" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -59,6 +61,7 @@
   <class name="LArRinjComplete" />
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArRinjP" /> -->
+  <class name="CondMultChanCollection<LArConditionsSubset<LArRinjP> >" />
   <class name="LArConditionsSubset<LArRinjP>"  id="D697FEFD-1CA5-427A-9958-C9B9D620DE7F" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -82,6 +85,7 @@
   <class name="LArCableLengthComplete" />
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArCableLengthP" /> -->
+  <class name="CondMultChanCollection<LArConditionsSubset<LArCableLengthP> >" />
   <class name="LArConditionsSubset<LArCableLengthP>"  id="338E681C-344B-440D-A3C7-5C4F6455A180" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -105,6 +109,7 @@
   <class name="LArCableAttenuationComplete" />
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArCableAttenuationP" /> -->
+  <class name="CondMultChanCollection<LArConditionsSubset<LArCableAttenuationP> >" />
   <class name="LArConditionsSubset<LArCableAttenuationP>"  id="2D460185-63EB-429B-A870-FC850B5A9D0B" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -128,6 +133,7 @@
   <class name="LArTshaperComplete" />
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArTshaperP" /> -->
+  <class name="CondMultChanCollection<LArConditionsSubset<LArTshaperP> >" />
   <class name="LArConditionsSubset<LArTshaperP>"  id="8B95ED9B-9F18-43D1-87B0-ABEC64E93B9C" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -151,6 +157,7 @@
   <class name="LArOFCBinComplete" />
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArOFCBinP" /> -->
+  <class name="CondMultChanCollection<LArConditionsSubset<LArOFCBinP> >" />
   <class name="LArConditionsSubset<LArOFCBinP>"  id="35090C66-1740-419B-9410-21DA24A5C7CE" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -174,6 +181,7 @@
   <class name="LArEMEC_CphiComplete" />
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArEMEC_CphiP" /> -->
+  <class name="CondMultChanCollection<LArConditionsSubset<LArEMEC_CphiP> >" />
   <class name="LArConditionsSubset<LArEMEC_CphiP>"  id="7587DA6F-280F-4EB5-9113-5122CF3B0AC4" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -197,6 +205,7 @@
   <class name="LArEMEC_HValphaComplete" />
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArEMEC_HValphaP" /> -->
+  <class name="CondMultChanCollection<LArConditionsSubset<LArEMEC_HValphaP> >" />
   <class name="LArConditionsSubset<LArEMEC_HValphaP>"  id="438C0CE6-BABD-483B-A61A-73F1E7781E63" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -220,6 +229,7 @@
   <class name="LArEMEC_HVbetaComplete" />
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArEMEC_HVbetaP" /> -->
+  <class name="CondMultChanCollection<LArConditionsSubset<LArEMEC_HVbetaP> >" />
   <class name="LArConditionsSubset<LArEMEC_HVbetaP>"  id="E3A6D99F-3D6F-420C-BF4A-8B6FAF2527CE" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -245,6 +255,7 @@
   <class name="LArCaliWaveContainer" />
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArCaliWaveVec" /> -->
+  <class name="CondMultChanCollection<LArConditionsSubset<LArCaliWaveVec> >" />
   <class name="LArConditionsSubset<LArCaliWaveVec>"  id="ECB4AD6C-FF3A-4255-A0E3-7BD566B96A77" >
     <field name="m_subsetMap" transient="true" />
   </class>
@@ -270,6 +281,7 @@
   <!-- picked up through iterator pattern below. -->
   <!-- <class name="LArPhysWave" /> -->
   <class name="LArPhysWaveContainer" />
+  <class name="CondMultChanCollection<LArConditionsSubset<LArPhysWave> >" />
   <class name="LArConditionsSubset<LArPhysWave>"
           id="C1108D27-6D30-41E8-892D-2AB127B868C9"  >
     <field name="m_subsetMap" transient="true" />
@@ -368,7 +380,7 @@
 
     <class pattern="*_Rb_tree_iterator*"/>
 
-    <class pattern="*<LArConditionsSubset*" />
+    <!--<class pattern="*<LArConditionsSubset*" />-->
 
     <class name="random_access_iterator_tag" />