diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1.ref
index b638b15f051a1ad24abae18fa71de8fe7f7085f4..8381b7f18e248bf29369bb3ae5bb31cdd6ba3328 100644
--- a/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1.ref
+++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1.ref
@@ -1,7 +1,6 @@
-Sat Jun 27 18:32:57 CEST 2020
-Preloading tcmalloc_minimal.so
+Wed Nov 25 18:25:44 EST 2020
 Py:Athena            INFO including file "AthenaCommon/Preparation.py"
-Py:Athena            INFO using release [WorkDir-22.0.16] [x86_64-centos7-gcc8-opt] [atlas-work3/0446faaa9579] -- built on [2020-06-26T2302]
+Py:Athena            INFO using release [?-22.0.0] [?] [?/?] -- built on [?]
 Py:Athena            INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
 Py:Athena            INFO executing ROOT6Setup
 Py:Athena            INFO including file "AthenaCommon/Execution.py"
@@ -9,30 +8,28 @@ Py:Athena            INFO including file "DataModelRunTests/xAODTestDecorHandle1
 Py:Athena            INFO including file "DataModelRunTests/commonTrailer.py"
 Py:Athena            INFO including file "DataModelRunTests/setCatalog.py"
 Py:Athena            INFO including file "AthenaCommon/runbatch.py"
-Py:ConfigurableDb    INFO Read module info for 5552 configurables from 78 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 923 configurables from 2 genConfDb files
 Py:ConfigurableDb    INFO No duplicates have been found: that's good !
-ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
-ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
+# setting LC_ALL to "C"
 ApplicationMgr    SUCCESS 
 ====================================================================================================================================
-                                                   Welcome to ApplicationMgr (GaudiCoreSvc v33r1)
-                                          running on lxplus755.cern.ch on Sat Jun 27 18:33:12 2020
+                                                   Welcome to ApplicationMgr (GaudiCoreSvc v27r1p99)
+                                          running on karma on Wed Nov 25 18:25:52 2020
 ====================================================================================================================================
 ApplicationMgr       INFO Application Manager Configured successfully
-ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
 AthDictLoaderSvc     INFO in initialize...
 AthDictLoaderSvc     INFO acquired Dso-registry
-ClassIDSvc           INFO  getRegistryEntries: read 7027 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 3308 CLIDRegistry entries for module ALL
 CoreDumpSvc          INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) 
 AthenaEventLoopMgr   INFO Initializing AthenaEventLoopMgr - package version AthenaServices-00-00-00
-ClassIDSvc           INFO  getRegistryEntries: read 705 CLIDRegistry entries for module ALL
-ClassIDSvc           INFO  getRegistryEntries: read 1415 CLIDRegistry entries for module ALL
-ClassIDSvc           INFO  getRegistryEntries: read 4610 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 849 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 1817 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 8511 CLIDRegistry entries for module ALL
 xAODMaker::Even...   INFO Initializing - Package version: xAODEventInfoCnv-00-00-00
 xAODMaker::Even...   INFO Initializing - Package version: xAODEventInfoCnv-00-00-00
 xAODMaker::Even...WARNING Beam conditions service not available
 xAODMaker::Even...WARNING Will not fill beam spot information into xAOD::EventInfo
-ClassIDSvc           INFO  getRegistryEntries: read 423 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 430 CLIDRegistry entries for module ALL
 EventSelector        INFO  Enter McEventSelector Initialization 
 AthenaEventLoopMgr   INFO Setup EventSelector service EventSelector
 ApplicationMgr       INFO Application Manager Initialized successfully
@@ -40,125 +37,205 @@ ApplicationMgr       INFO Application Manager Started successfully
 EventPersistenc...   INFO Added successfully Conversion service:McCnvSvc
 AthenaEventLoopMgr   INFO   ===>>>  start of run 0    <<<===
 AthenaEventLoopMgr   INFO   ===>>>  start processing event #0, run #0 0 events processed so far  <<<===
-ClassIDSvc           INFO  getRegistryEntries: read 108 CLIDRegistry entries for module ALL
+ClassIDSvc           INFO  getRegistryEntries: read 110 CLIDRegistry entries for module ALL
 xAODTestReadDecor    INFO cvec.dInt1: 401 402 403 404 405 406 407 408 409 410
 xAODTestReadDecor    INFO cinfo.dInt1: 3000
 xAODTestReadDecor    INFO cinfo.dInt1Base: 3001
 xAODTestReadDecor    INFO cinfo.dInt1: 3000
+xAODTestReadDec...   INFO scopy_cvec.dInt1: 401 402 403 404 405 406 407 408 409 410
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 3000
+xAODTestReadDec...   INFO scopy_cinfo.dInt1Base: 3001
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 3000
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #0, run #0 1 events processed so far  <<<===
 AthenaEventLoopMgr   INFO   ===>>>  start processing event #1, run #0 1 events processed so far  <<<===
 xAODTestReadDecor    INFO cvec.dInt1: 801 802 803 804 805 806 807 808 809 810
 xAODTestReadDecor    INFO cinfo.dInt1: 6000
 xAODTestReadDecor    INFO cinfo.dInt1Base: 6001
 xAODTestReadDecor    INFO cinfo.dInt1: 6000
+xAODTestReadDec...   INFO scopy_cvec.dInt1: 801 802 803 804 805 806 807 808 809 810
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 6000
+xAODTestReadDec...   INFO scopy_cinfo.dInt1Base: 6001
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 6000
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #1, run #0 2 events processed so far  <<<===
 AthenaEventLoopMgr   INFO   ===>>>  start processing event #2, run #0 2 events processed so far  <<<===
 xAODTestReadDecor    INFO cvec.dInt1: 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210
 xAODTestReadDecor    INFO cinfo.dInt1: 9000
 xAODTestReadDecor    INFO cinfo.dInt1Base: 9001
 xAODTestReadDecor    INFO cinfo.dInt1: 9000
+xAODTestReadDec...   INFO scopy_cvec.dInt1: 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 9000
+xAODTestReadDec...   INFO scopy_cinfo.dInt1Base: 9001
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 9000
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #2, run #0 3 events processed so far  <<<===
 AthenaEventLoopMgr   INFO   ===>>>  start processing event #3, run #0 3 events processed so far  <<<===
 xAODTestReadDecor    INFO cvec.dInt1: 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610
 xAODTestReadDecor    INFO cinfo.dInt1: 12000
 xAODTestReadDecor    INFO cinfo.dInt1Base: 12001
 xAODTestReadDecor    INFO cinfo.dInt1: 12000
+xAODTestReadDec...   INFO scopy_cvec.dInt1: 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 12000
+xAODTestReadDec...   INFO scopy_cinfo.dInt1Base: 12001
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 12000
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #3, run #0 4 events processed so far  <<<===
 AthenaEventLoopMgr   INFO   ===>>>  start processing event #4, run #0 4 events processed so far  <<<===
 xAODTestReadDecor    INFO cvec.dInt1:
 xAODTestReadDecor    INFO cinfo.dInt1: 15000
 xAODTestReadDecor    INFO cinfo.dInt1Base: 15001
 xAODTestReadDecor    INFO cinfo.dInt1: 15000
+xAODTestReadDec...   INFO scopy_cvec.dInt1:
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 15000
+xAODTestReadDec...   INFO scopy_cinfo.dInt1Base: 15001
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 15000
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #4, run #0 5 events processed so far  <<<===
 AthenaEventLoopMgr   INFO   ===>>>  start processing event #5, run #0 5 events processed so far  <<<===
 xAODTestReadDecor    INFO cvec.dInt1: 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410
 xAODTestReadDecor    INFO cinfo.dInt1: 18000
 xAODTestReadDecor    INFO cinfo.dInt1Base: 18001
 xAODTestReadDecor    INFO cinfo.dInt1: 18000
+xAODTestReadDec...   INFO scopy_cvec.dInt1: 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 18000
+xAODTestReadDec...   INFO scopy_cinfo.dInt1Base: 18001
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 18000
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #5, run #0 6 events processed so far  <<<===
 AthenaEventLoopMgr   INFO   ===>>>  start processing event #6, run #0 6 events processed so far  <<<===
 xAODTestReadDecor    INFO cvec.dInt1: 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810
 xAODTestReadDecor    INFO cinfo.dInt1: 21000
 xAODTestReadDecor    INFO cinfo.dInt1Base: 21001
 xAODTestReadDecor    INFO cinfo.dInt1: 21000
+xAODTestReadDec...   INFO scopy_cvec.dInt1: 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 21000
+xAODTestReadDec...   INFO scopy_cinfo.dInt1Base: 21001
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 21000
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #6, run #0 7 events processed so far  <<<===
 AthenaEventLoopMgr   INFO   ===>>>  start processing event #7, run #0 7 events processed so far  <<<===
 xAODTestReadDecor    INFO cvec.dInt1: 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210
 xAODTestReadDecor    INFO cinfo.dInt1: 24000
 xAODTestReadDecor    INFO cinfo.dInt1Base: 24001
 xAODTestReadDecor    INFO cinfo.dInt1: 24000
+xAODTestReadDec...   INFO scopy_cvec.dInt1: 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 24000
+xAODTestReadDec...   INFO scopy_cinfo.dInt1Base: 24001
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 24000
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #7, run #0 8 events processed so far  <<<===
 AthenaEventLoopMgr   INFO   ===>>>  start processing event #8, run #0 8 events processed so far  <<<===
 xAODTestReadDecor    INFO cvec.dInt1: 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610
 xAODTestReadDecor    INFO cinfo.dInt1: 27000
 xAODTestReadDecor    INFO cinfo.dInt1Base: 27001
 xAODTestReadDecor    INFO cinfo.dInt1: 27000
+xAODTestReadDec...   INFO scopy_cvec.dInt1: 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 27000
+xAODTestReadDec...   INFO scopy_cinfo.dInt1Base: 27001
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 27000
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #8, run #0 9 events processed so far  <<<===
 AthenaEventLoopMgr   INFO   ===>>>  start processing event #9, run #0 9 events processed so far  <<<===
 xAODTestReadDecor    INFO cvec.dInt1: 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010
 xAODTestReadDecor    INFO cinfo.dInt1: 30000
 xAODTestReadDecor    INFO cinfo.dInt1Base: 30001
 xAODTestReadDecor    INFO cinfo.dInt1: 30000
+xAODTestReadDec...   INFO scopy_cvec.dInt1: 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 30000
+xAODTestReadDec...   INFO scopy_cinfo.dInt1Base: 30001
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 30000
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #9, run #0 10 events processed so far  <<<===
 AthenaEventLoopMgr   INFO   ===>>>  start processing event #10, run #0 10 events processed so far  <<<===
 xAODTestReadDecor    INFO cvec.dInt1: 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410
 xAODTestReadDecor    INFO cinfo.dInt1: 33000
 xAODTestReadDecor    INFO cinfo.dInt1Base: 33001
 xAODTestReadDecor    INFO cinfo.dInt1: 33000
+xAODTestReadDec...   INFO scopy_cvec.dInt1: 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 33000
+xAODTestReadDec...   INFO scopy_cinfo.dInt1Base: 33001
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 33000
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #10, run #0 11 events processed so far  <<<===
 AthenaEventLoopMgr   INFO   ===>>>  start processing event #11, run #0 11 events processed so far  <<<===
 xAODTestReadDecor    INFO cvec.dInt1: 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810
 xAODTestReadDecor    INFO cinfo.dInt1: 36000
 xAODTestReadDecor    INFO cinfo.dInt1Base: 36001
 xAODTestReadDecor    INFO cinfo.dInt1: 36000
+xAODTestReadDec...   INFO scopy_cvec.dInt1: 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 36000
+xAODTestReadDec...   INFO scopy_cinfo.dInt1Base: 36001
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 36000
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #11, run #0 12 events processed so far  <<<===
 AthenaEventLoopMgr   INFO   ===>>>  start processing event #12, run #0 12 events processed so far  <<<===
 xAODTestReadDecor    INFO cvec.dInt1: 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210
 xAODTestReadDecor    INFO cinfo.dInt1: 39000
 xAODTestReadDecor    INFO cinfo.dInt1Base: 39001
 xAODTestReadDecor    INFO cinfo.dInt1: 39000
+xAODTestReadDec...   INFO scopy_cvec.dInt1: 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 39000
+xAODTestReadDec...   INFO scopy_cinfo.dInt1Base: 39001
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 39000
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #12, run #0 13 events processed so far  <<<===
 AthenaEventLoopMgr   INFO   ===>>>  start processing event #13, run #0 13 events processed so far  <<<===
 xAODTestReadDecor    INFO cvec.dInt1: 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610
 xAODTestReadDecor    INFO cinfo.dInt1: 42000
 xAODTestReadDecor    INFO cinfo.dInt1Base: 42001
 xAODTestReadDecor    INFO cinfo.dInt1: 42000
+xAODTestReadDec...   INFO scopy_cvec.dInt1: 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 42000
+xAODTestReadDec...   INFO scopy_cinfo.dInt1Base: 42001
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 42000
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #13, run #0 14 events processed so far  <<<===
 AthenaEventLoopMgr   INFO   ===>>>  start processing event #14, run #0 14 events processed so far  <<<===
 xAODTestReadDecor    INFO cvec.dInt1: 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010
 xAODTestReadDecor    INFO cinfo.dInt1: 45000
 xAODTestReadDecor    INFO cinfo.dInt1Base: 45001
 xAODTestReadDecor    INFO cinfo.dInt1: 45000
+xAODTestReadDec...   INFO scopy_cvec.dInt1: 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 45000
+xAODTestReadDec...   INFO scopy_cinfo.dInt1Base: 45001
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 45000
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #14, run #0 15 events processed so far  <<<===
 AthenaEventLoopMgr   INFO   ===>>>  start processing event #15, run #0 15 events processed so far  <<<===
 xAODTestReadDecor    INFO cvec.dInt1: 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410
 xAODTestReadDecor    INFO cinfo.dInt1: 48000
 xAODTestReadDecor    INFO cinfo.dInt1Base: 48001
 xAODTestReadDecor    INFO cinfo.dInt1: 48000
+xAODTestReadDec...   INFO scopy_cvec.dInt1: 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 48000
+xAODTestReadDec...   INFO scopy_cinfo.dInt1Base: 48001
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 48000
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #15, run #0 16 events processed so far  <<<===
 AthenaEventLoopMgr   INFO   ===>>>  start processing event #16, run #0 16 events processed so far  <<<===
 xAODTestReadDecor    INFO cvec.dInt1: 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810
 xAODTestReadDecor    INFO cinfo.dInt1: 51000
 xAODTestReadDecor    INFO cinfo.dInt1Base: 51001
 xAODTestReadDecor    INFO cinfo.dInt1: 51000
+xAODTestReadDec...   INFO scopy_cvec.dInt1: 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 51000
+xAODTestReadDec...   INFO scopy_cinfo.dInt1Base: 51001
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 51000
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #16, run #0 17 events processed so far  <<<===
 AthenaEventLoopMgr   INFO   ===>>>  start processing event #17, run #0 17 events processed so far  <<<===
 xAODTestReadDecor    INFO cvec.dInt1: 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210
 xAODTestReadDecor    INFO cinfo.dInt1: 54000
 xAODTestReadDecor    INFO cinfo.dInt1Base: 54001
 xAODTestReadDecor    INFO cinfo.dInt1: 54000
+xAODTestReadDec...   INFO scopy_cvec.dInt1: 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 54000
+xAODTestReadDec...   INFO scopy_cinfo.dInt1Base: 54001
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 54000
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #17, run #0 18 events processed so far  <<<===
 AthenaEventLoopMgr   INFO   ===>>>  start processing event #18, run #0 18 events processed so far  <<<===
 xAODTestReadDecor    INFO cvec.dInt1: 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610
 xAODTestReadDecor    INFO cinfo.dInt1: 57000
 xAODTestReadDecor    INFO cinfo.dInt1Base: 57001
 xAODTestReadDecor    INFO cinfo.dInt1: 57000
+xAODTestReadDec...   INFO scopy_cvec.dInt1: 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 57000
+xAODTestReadDec...   INFO scopy_cinfo.dInt1Base: 57001
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 57000
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #18, run #0 19 events processed so far  <<<===
 AthenaEventLoopMgr   INFO   ===>>>  start processing event #19, run #0 19 events processed so far  <<<===
 xAODTestReadDecor    INFO cvec.dInt1: 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010
 xAODTestReadDecor    INFO cinfo.dInt1: 60000
 xAODTestReadDecor    INFO cinfo.dInt1Base: 60001
 xAODTestReadDecor    INFO cinfo.dInt1: 60000
+xAODTestReadDec...   INFO scopy_cvec.dInt1: 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 60000
+xAODTestReadDec...   INFO scopy_cinfo.dInt1Base: 60001
+xAODTestReadDec...   INFO scopy_cinfo.dInt1: 60000
 AthenaEventLoopMgr   INFO   ===>>>  done processing event #19, run #0 20 events processed so far  <<<===
 ApplicationMgr       INFO Application Manager Stopped successfully
 IncidentProcAlg1     INFO Finalize
diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1MT.ref b/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1MT.ref
index 4a36780ffeb517501df32efbf799366695fb2885..d1bd884fb2429641bee2f164ec887068e9c303a5 100644
--- a/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1MT.ref
+++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1MT.ref
@@ -1,7 +1,6 @@
-Sat Jun 27 04:58:32 CEST 2020
-Preloading tcmalloc_minimal.so
+Wed Nov 25 18:31:35 EST 2020
 Py:Athena            INFO including file "AthenaCommon/Preparation.py"
-Py:Athena            INFO using release [WorkDir-22.0.16] [x86_64-centos7-gcc8-opt] [atlas-work3/0446faaa9579] -- built on [2020-06-26T2302]
+Py:Athena            INFO using release [?-22.0.0] [?] [?/?] -- built on [?]
 Py:Athena            INFO including file "AthenaCommon/Atlas.UnixStandardJob.py"
 Py:Athena            INFO executing ROOT6Setup
 Py:Athena            INFO configuring AthenaHive with [1] concurrent threads and [1] concurrent events
@@ -12,33 +11,31 @@ Py:Athena            INFO including file "DataModelRunTests/xAODTestDecorHandle1
 Py:Athena            INFO including file "DataModelRunTests/commonTrailer.py"
 Py:Athena            INFO including file "DataModelRunTests/setCatalog.py"
 Py:Athena            INFO including file "AthenaCommon/runbatch.py"
-Py:ConfigurableDb    INFO Read module info for 5552 configurables from 78 genConfDb files
+Py:ConfigurableDb    INFO Read module info for 923 configurables from 2 genConfDb files
 Py:ConfigurableDb    INFO No duplicates have been found: that's good !
-ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
-ApplicationMgr       INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
+# setting LC_ALL to "C"
 MessageSvc           INFO Activating in a separate thread
 ApplicationMgr    SUCCESS 
 ====================================================================================================================================
-                                                   Welcome to ApplicationMgr (GaudiCoreSvc v33r1)
-                                          running on lxplus755.cern.ch on Sat Jun 27 04:58:42 2020
+                                                   Welcome to ApplicationMgr (GaudiCoreSvc v27r1p99)
+                                          running on karma on Wed Nov 25 18:31:39 2020
 ====================================================================================================================================
 ApplicationMgr       INFO Application Manager Configured successfully
-ApplicationMgr                                      INFO Updating Gaudi::PluginService::SetDebug(level) to level= 'PluginDebugLevel':0
 AthDictLoaderSvc                                    INFO in initialize...
 AthDictLoaderSvc                                    INFO acquired Dso-registry
-ClassIDSvc                                          INFO  getRegistryEntries: read 7399 CLIDRegistry entries for module ALL
+ClassIDSvc                                          INFO  getRegistryEntries: read 3308 CLIDRegistry entries for module ALL
 CoreDumpSvc                                         INFO Handling signals: 11(Segmentation fault) 7(Bus error) 4(Illegal instruction) 8(Floating point exception) 
 AthenaHiveEventLoopMgr                              INFO Initializing AthenaHiveEventLoopMgr - package version AthenaServices-00-00-00
-ClassIDSvc                                     0    INFO  getRegistryEntries: read 1128 CLIDRegistry entries for module ALL
-ClassIDSvc                                     0    INFO  getRegistryEntries: read 1415 CLIDRegistry entries for module ALL
-ClassIDSvc                                     0    INFO  getRegistryEntries: read 4610 CLIDRegistry entries for module ALL
+ClassIDSvc                                     0    INFO  getRegistryEntries: read 1279 CLIDRegistry entries for module ALL
+ClassIDSvc                                     0    INFO  getRegistryEntries: read 1817 CLIDRegistry entries for module ALL
+ClassIDSvc                                     0    INFO  getRegistryEntries: read 8511 CLIDRegistry entries for module ALL
 xAODMaker::EventInfoCnvAlg                     0    INFO Initializing - Package version: xAODEventInfoCnv-00-00-00
 xAODMaker::EventInfoCnvAlg.EventInfoC...       0    INFO Initializing - Package version: xAODEventInfoCnv-00-00-00
 xAODMaker::EventInfoCnvAlg.EventInfoC...       0 WARNING Beam conditions service not available
 xAODMaker::EventInfoCnvAlg.EventInfoC...       0 WARNING Will not fill beam spot information into xAOD::EventInfo
 ThreadPoolSvc                                  0    INFO no thread init tools attached
 AvalancheSchedulerSvc                          0    INFO Activating scheduler in a separate thread
-AvalancheSchedulerSvc                          0    INFO Found 11 algorithms
+AvalancheSchedulerSvc                          0    INFO Found 13 algorithms
 AvalancheSchedulerSvc                          0    INFO Data Dependencies for Algorithms:
   BeginIncFiringAlg
       none
@@ -86,6 +83,30 @@ AvalancheSchedulerSvc                          0    INFO Data Dependencies for A
     o INPUT   ( 'DMTest::CVec' , 'StoreGateSvc+cvec.dInt1' ) 
     o INPUT   ( 'SG::AuxElement' , 'StoreGateSvc+cinfo.dInt1' ) 
     o INPUT   ( 'SG::AuxElement' , 'StoreGateSvc+cinfo.dInt1Base' ) 
+  xAODTestShallowCopy
+    o INPUT   ( 'DMTest::C' , 'StoreGateSvc+cinfo' ) 
+    o INPUT   ( 'DMTest::C' , 'StoreGateSvc+cinfo.dInt1' ) 
+    o INPUT   ( 'DMTest::CVec' , 'StoreGateSvc+cvec' ) 
+    o INPUT   ( 'DMTest::CVec' , 'StoreGateSvc+cvec.dInt1' ) 
+    o OUTPUT  ( 'DMTest::C' , 'StoreGateSvc+scopy_cinfo' ) 
+    o OUTPUT  ( 'DMTest::C' , 'StoreGateSvc+scopy_cinfo.anInt10' ) 
+    o OUTPUT  ( 'DMTest::C' , 'StoreGateSvc+scopy_cinfo.dInt1' ) 
+    o OUTPUT  ( 'DMTest::CVec' , 'StoreGateSvc+dInt1' ) 
+    o OUTPUT  ( 'DMTest::CVec' , 'StoreGateSvc+scopy_cvec' ) 
+    o OUTPUT  ( 'DMTest::CVec' , 'StoreGateSvc+scopy_cvec.anInt10' ) 
+    o OUTPUT  ( 'DMTest::CVec' , 'StoreGateSvc+scopy_cvec.dInt1' ) 
+    o OUTPUT  ( 'DMTest::CVecWithData' , 'StoreGateSvc+dInt1' ) 
+    o OUTPUT  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo' ) 
+    o OUTPUT  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.anInt10' ) 
+    o OUTPUT  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1' ) 
+    o OUTPUT  ( 'SG::AuxVectorBase' , 'StoreGateSvc+dInt1' ) 
+    o OUTPUT  ( 'SG::AuxVectorBase' , 'StoreGateSvc+scopy_cvec' ) 
+    o OUTPUT  ( 'SG::AuxVectorBase' , 'StoreGateSvc+scopy_cvec.anInt10' ) 
+    o OUTPUT  ( 'SG::AuxVectorBase' , 'StoreGateSvc+scopy_cvec.dInt1' ) 
+  xAODTestReadDecorSCopy
+    o INPUT   ( 'DMTest::CVec' , 'StoreGateSvc+scopy_cvec.dInt1' ) 
+    o INPUT   ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1' ) 
+    o INPUT   ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1Base' ) 
   EndIncFiringAlg
       none
   IncidentProcAlg2
@@ -95,6 +116,8 @@ AvalancheSchedulerSvc                          0    INFO Will attribute the foll
        * xAODMaker::EventInfoCnvAlg
        * xAODTestDecor
        * xAODTestWriteCInfo
+   o  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1Base' )     required by Algorithm: 
+       * xAODTestReadDecorSCopy
 PrecedenceSvc                                  0    INFO Assembling CF and DF task precedence rules
 PrecedenceSvc                                  0    INFO PrecedenceSvc initialized successfully
 AvalancheSchedulerSvc                          0    INFO Concurrency level information:
@@ -112,127 +135,227 @@ AthenaHiveEventLoopMgr                         0    INFO Starting loop on events
 EventPersistencySvc                        0   0    INFO Added successfully Conversion service:McCnvSvc
 AthenaHiveEventLoopMgr                     0   0    INFO   ===>>>  start of run 0    <<<===
 AthenaHiveEventLoopMgr                     0   0    INFO   ===>>>  start processing event #0, run #0 on slot 0,  0 events processed so far  <<<===
-ClassIDSvc                                 0   0    INFO  getRegistryEntries: read 108 CLIDRegistry entries for module ALL
+ClassIDSvc                                 0   0    INFO  getRegistryEntries: read 110 CLIDRegistry entries for module ALL
+SGInputLoader                              0   0 WARNING unable to find proxy for  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1Base' ) 
 xAODTestReadDecor                          0   0    INFO cvec.dInt1: 401 402 403 404 405 406 407 408 409 410
 xAODTestReadDecor                          0   0    INFO cinfo.dInt1: 3000
 xAODTestReadDecor                          0   0    INFO cinfo.dInt1Base: 3001
 xAODTestReadDecor                          0   0    INFO cinfo.dInt1: 3000
+xAODTestReadDecorSCopy                     0   0    INFO scopy_cvec.dInt1: 401 402 403 404 405 406 407 408 409 410
+xAODTestReadDecorSCopy                     0   0    INFO scopy_cinfo.dInt1: 3000
+xAODTestReadDecorSCopy                     0   0    INFO scopy_cinfo.dInt1Base: 3001
+xAODTestReadDecorSCopy                     0   0    INFO scopy_cinfo.dInt1: 3000
 AthenaHiveEventLoopMgr                     0   0    INFO   ===>>>  done processing event #0, run #0 on slot 0,  1 events processed so far  <<<===
 AthenaHiveEventLoopMgr                     1   0    INFO   ===>>>  start processing event #1, run #0 on slot 0,  1 events processed so far  <<<===
+SGInputLoader                              1   0 WARNING unable to find proxy for  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1Base' ) 
 xAODTestReadDecor                          1   0    INFO cvec.dInt1: 801 802 803 804 805 806 807 808 809 810
 xAODTestReadDecor                          1   0    INFO cinfo.dInt1: 6000
 xAODTestReadDecor                          1   0    INFO cinfo.dInt1Base: 6001
 xAODTestReadDecor                          1   0    INFO cinfo.dInt1: 6000
+xAODTestReadDecorSCopy                     1   0    INFO scopy_cvec.dInt1: 801 802 803 804 805 806 807 808 809 810
+xAODTestReadDecorSCopy                     1   0    INFO scopy_cinfo.dInt1: 6000
+xAODTestReadDecorSCopy                     1   0    INFO scopy_cinfo.dInt1Base: 6001
+xAODTestReadDecorSCopy                     1   0    INFO scopy_cinfo.dInt1: 6000
 AthenaHiveEventLoopMgr                     1   0    INFO   ===>>>  done processing event #1, run #0 on slot 0,  2 events processed so far  <<<===
 AthenaHiveEventLoopMgr                     2   0    INFO   ===>>>  start processing event #2, run #0 on slot 0,  2 events processed so far  <<<===
+SGInputLoader                              2   0 WARNING unable to find proxy for  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1Base' ) 
 xAODTestReadDecor                          2   0    INFO cvec.dInt1: 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210
 xAODTestReadDecor                          2   0    INFO cinfo.dInt1: 9000
 xAODTestReadDecor                          2   0    INFO cinfo.dInt1Base: 9001
 xAODTestReadDecor                          2   0    INFO cinfo.dInt1: 9000
+xAODTestReadDecorSCopy                     2   0    INFO scopy_cvec.dInt1: 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210
+xAODTestReadDecorSCopy                     2   0    INFO scopy_cinfo.dInt1: 9000
+xAODTestReadDecorSCopy                     2   0    INFO scopy_cinfo.dInt1Base: 9001
+xAODTestReadDecorSCopy                     2   0    INFO scopy_cinfo.dInt1: 9000
 AthenaHiveEventLoopMgr                     2   0    INFO   ===>>>  done processing event #2, run #0 on slot 0,  3 events processed so far  <<<===
 AthenaHiveEventLoopMgr                     3   0    INFO   ===>>>  start processing event #3, run #0 on slot 0,  3 events processed so far  <<<===
+SGInputLoader                              3   0 WARNING unable to find proxy for  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1Base' ) 
 xAODTestReadDecor                          3   0    INFO cvec.dInt1: 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610
 xAODTestReadDecor                          3   0    INFO cinfo.dInt1: 12000
 xAODTestReadDecor                          3   0    INFO cinfo.dInt1Base: 12001
 xAODTestReadDecor                          3   0    INFO cinfo.dInt1: 12000
+xAODTestReadDecorSCopy                     3   0    INFO scopy_cvec.dInt1: 1601 1602 1603 1604 1605 1606 1607 1608 1609 1610
+xAODTestReadDecorSCopy                     3   0    INFO scopy_cinfo.dInt1: 12000
+xAODTestReadDecorSCopy                     3   0    INFO scopy_cinfo.dInt1Base: 12001
+xAODTestReadDecorSCopy                     3   0    INFO scopy_cinfo.dInt1: 12000
 AthenaHiveEventLoopMgr                     3   0    INFO   ===>>>  done processing event #3, run #0 on slot 0,  4 events processed so far  <<<===
 AthenaHiveEventLoopMgr                     4   0    INFO   ===>>>  start processing event #4, run #0 on slot 0,  4 events processed so far  <<<===
+SGInputLoader                              4   0 WARNING unable to find proxy for  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1Base' ) 
 xAODTestReadDecor                          4   0    INFO cvec.dInt1:
 xAODTestReadDecor                          4   0    INFO cinfo.dInt1: 15000
 xAODTestReadDecor                          4   0    INFO cinfo.dInt1Base: 15001
 xAODTestReadDecor                          4   0    INFO cinfo.dInt1: 15000
+xAODTestReadDecorSCopy                     4   0    INFO scopy_cvec.dInt1:
+xAODTestReadDecorSCopy                     4   0    INFO scopy_cinfo.dInt1: 15000
+xAODTestReadDecorSCopy                     4   0    INFO scopy_cinfo.dInt1Base: 15001
+xAODTestReadDecorSCopy                     4   0    INFO scopy_cinfo.dInt1: 15000
 AthenaHiveEventLoopMgr                     4   0    INFO   ===>>>  done processing event #4, run #0 on slot 0,  5 events processed so far  <<<===
 AthenaHiveEventLoopMgr                     5   0    INFO   ===>>>  start processing event #5, run #0 on slot 0,  5 events processed so far  <<<===
+SGInputLoader                              5   0 WARNING unable to find proxy for  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1Base' ) 
 xAODTestReadDecor                          5   0    INFO cvec.dInt1: 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410
 xAODTestReadDecor                          5   0    INFO cinfo.dInt1: 18000
 xAODTestReadDecor                          5   0    INFO cinfo.dInt1Base: 18001
 xAODTestReadDecor                          5   0    INFO cinfo.dInt1: 18000
+xAODTestReadDecorSCopy                     5   0    INFO scopy_cvec.dInt1: 2401 2402 2403 2404 2405 2406 2407 2408 2409 2410
+xAODTestReadDecorSCopy                     5   0    INFO scopy_cinfo.dInt1: 18000
+xAODTestReadDecorSCopy                     5   0    INFO scopy_cinfo.dInt1Base: 18001
+xAODTestReadDecorSCopy                     5   0    INFO scopy_cinfo.dInt1: 18000
 AthenaHiveEventLoopMgr                     5   0    INFO   ===>>>  done processing event #5, run #0 on slot 0,  6 events processed so far  <<<===
 AthenaHiveEventLoopMgr                     6   0    INFO   ===>>>  start processing event #6, run #0 on slot 0,  6 events processed so far  <<<===
+SGInputLoader                              6   0 WARNING unable to find proxy for  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1Base' ) 
 xAODTestReadDecor                          6   0    INFO cvec.dInt1: 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810
 xAODTestReadDecor                          6   0    INFO cinfo.dInt1: 21000
 xAODTestReadDecor                          6   0    INFO cinfo.dInt1Base: 21001
 xAODTestReadDecor                          6   0    INFO cinfo.dInt1: 21000
+xAODTestReadDecorSCopy                     6   0    INFO scopy_cvec.dInt1: 2801 2802 2803 2804 2805 2806 2807 2808 2809 2810
+xAODTestReadDecorSCopy                     6   0    INFO scopy_cinfo.dInt1: 21000
+xAODTestReadDecorSCopy                     6   0    INFO scopy_cinfo.dInt1Base: 21001
+xAODTestReadDecorSCopy                     6   0    INFO scopy_cinfo.dInt1: 21000
 AthenaHiveEventLoopMgr                     6   0    INFO   ===>>>  done processing event #6, run #0 on slot 0,  7 events processed so far  <<<===
 AthenaHiveEventLoopMgr                     7   0    INFO   ===>>>  start processing event #7, run #0 on slot 0,  7 events processed so far  <<<===
+SGInputLoader                              7   0 WARNING unable to find proxy for  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1Base' ) 
 xAODTestReadDecor                          7   0    INFO cvec.dInt1: 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210
 xAODTestReadDecor                          7   0    INFO cinfo.dInt1: 24000
 xAODTestReadDecor                          7   0    INFO cinfo.dInt1Base: 24001
 xAODTestReadDecor                          7   0    INFO cinfo.dInt1: 24000
+xAODTestReadDecorSCopy                     7   0    INFO scopy_cvec.dInt1: 3201 3202 3203 3204 3205 3206 3207 3208 3209 3210
+xAODTestReadDecorSCopy                     7   0    INFO scopy_cinfo.dInt1: 24000
+xAODTestReadDecorSCopy                     7   0    INFO scopy_cinfo.dInt1Base: 24001
+xAODTestReadDecorSCopy                     7   0    INFO scopy_cinfo.dInt1: 24000
 AthenaHiveEventLoopMgr                     7   0    INFO   ===>>>  done processing event #7, run #0 on slot 0,  8 events processed so far  <<<===
 AthenaHiveEventLoopMgr                     8   0    INFO   ===>>>  start processing event #8, run #0 on slot 0,  8 events processed so far  <<<===
+SGInputLoader                              8   0 WARNING unable to find proxy for  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1Base' ) 
 xAODTestReadDecor                          8   0    INFO cvec.dInt1: 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610
 xAODTestReadDecor                          8   0    INFO cinfo.dInt1: 27000
 xAODTestReadDecor                          8   0    INFO cinfo.dInt1Base: 27001
 xAODTestReadDecor                          8   0    INFO cinfo.dInt1: 27000
+xAODTestReadDecorSCopy                     8   0    INFO scopy_cvec.dInt1: 3601 3602 3603 3604 3605 3606 3607 3608 3609 3610
+xAODTestReadDecorSCopy                     8   0    INFO scopy_cinfo.dInt1: 27000
+xAODTestReadDecorSCopy                     8   0    INFO scopy_cinfo.dInt1Base: 27001
+xAODTestReadDecorSCopy                     8   0    INFO scopy_cinfo.dInt1: 27000
 AthenaHiveEventLoopMgr                     8   0    INFO   ===>>>  done processing event #8, run #0 on slot 0,  9 events processed so far  <<<===
 AthenaHiveEventLoopMgr                     9   0    INFO   ===>>>  start processing event #9, run #0 on slot 0,  9 events processed so far  <<<===
+SGInputLoader                              9   0 WARNING unable to find proxy for  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1Base' ) 
 xAODTestReadDecor                          9   0    INFO cvec.dInt1: 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010
 xAODTestReadDecor                          9   0    INFO cinfo.dInt1: 30000
 xAODTestReadDecor                          9   0    INFO cinfo.dInt1Base: 30001
 xAODTestReadDecor                          9   0    INFO cinfo.dInt1: 30000
+xAODTestReadDecorSCopy                     9   0    INFO scopy_cvec.dInt1: 4001 4002 4003 4004 4005 4006 4007 4008 4009 4010
+xAODTestReadDecorSCopy                     9   0    INFO scopy_cinfo.dInt1: 30000
+xAODTestReadDecorSCopy                     9   0    INFO scopy_cinfo.dInt1Base: 30001
+xAODTestReadDecorSCopy                     9   0    INFO scopy_cinfo.dInt1: 30000
 AthenaHiveEventLoopMgr                     9   0    INFO   ===>>>  done processing event #9, run #0 on slot 0,  10 events processed so far  <<<===
 AthenaHiveEventLoopMgr                    10   0    INFO   ===>>>  start processing event #10, run #0 on slot 0,  10 events processed so far  <<<===
+SGInputLoader                             10   0 WARNING unable to find proxy for  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1Base' ) 
 xAODTestReadDecor                         10   0    INFO cvec.dInt1: 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410
 xAODTestReadDecor                         10   0    INFO cinfo.dInt1: 33000
 xAODTestReadDecor                         10   0    INFO cinfo.dInt1Base: 33001
 xAODTestReadDecor                         10   0    INFO cinfo.dInt1: 33000
+xAODTestReadDecorSCopy                    10   0    INFO scopy_cvec.dInt1: 4401 4402 4403 4404 4405 4406 4407 4408 4409 4410
+xAODTestReadDecorSCopy                    10   0    INFO scopy_cinfo.dInt1: 33000
+xAODTestReadDecorSCopy                    10   0    INFO scopy_cinfo.dInt1Base: 33001
+xAODTestReadDecorSCopy                    10   0    INFO scopy_cinfo.dInt1: 33000
 AthenaHiveEventLoopMgr                    10   0    INFO   ===>>>  done processing event #10, run #0 on slot 0,  11 events processed so far  <<<===
 AthenaHiveEventLoopMgr                    11   0    INFO   ===>>>  start processing event #11, run #0 on slot 0,  11 events processed so far  <<<===
+SGInputLoader                             11   0 WARNING unable to find proxy for  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1Base' ) 
 xAODTestReadDecor                         11   0    INFO cvec.dInt1: 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810
 xAODTestReadDecor                         11   0    INFO cinfo.dInt1: 36000
 xAODTestReadDecor                         11   0    INFO cinfo.dInt1Base: 36001
 xAODTestReadDecor                         11   0    INFO cinfo.dInt1: 36000
+xAODTestReadDecorSCopy                    11   0    INFO scopy_cvec.dInt1: 4801 4802 4803 4804 4805 4806 4807 4808 4809 4810
+xAODTestReadDecorSCopy                    11   0    INFO scopy_cinfo.dInt1: 36000
+xAODTestReadDecorSCopy                    11   0    INFO scopy_cinfo.dInt1Base: 36001
+xAODTestReadDecorSCopy                    11   0    INFO scopy_cinfo.dInt1: 36000
 AthenaHiveEventLoopMgr                    11   0    INFO   ===>>>  done processing event #11, run #0 on slot 0,  12 events processed so far  <<<===
 AthenaHiveEventLoopMgr                    12   0    INFO   ===>>>  start processing event #12, run #0 on slot 0,  12 events processed so far  <<<===
+SGInputLoader                             12   0 WARNING unable to find proxy for  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1Base' ) 
 xAODTestReadDecor                         12   0    INFO cvec.dInt1: 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210
 xAODTestReadDecor                         12   0    INFO cinfo.dInt1: 39000
 xAODTestReadDecor                         12   0    INFO cinfo.dInt1Base: 39001
 xAODTestReadDecor                         12   0    INFO cinfo.dInt1: 39000
+xAODTestReadDecorSCopy                    12   0    INFO scopy_cvec.dInt1: 5201 5202 5203 5204 5205 5206 5207 5208 5209 5210
+xAODTestReadDecorSCopy                    12   0    INFO scopy_cinfo.dInt1: 39000
+xAODTestReadDecorSCopy                    12   0    INFO scopy_cinfo.dInt1Base: 39001
+xAODTestReadDecorSCopy                    12   0    INFO scopy_cinfo.dInt1: 39000
 AthenaHiveEventLoopMgr                    12   0    INFO   ===>>>  done processing event #12, run #0 on slot 0,  13 events processed so far  <<<===
 AthenaHiveEventLoopMgr                    13   0    INFO   ===>>>  start processing event #13, run #0 on slot 0,  13 events processed so far  <<<===
+SGInputLoader                             13   0 WARNING unable to find proxy for  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1Base' ) 
 xAODTestReadDecor                         13   0    INFO cvec.dInt1: 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610
 xAODTestReadDecor                         13   0    INFO cinfo.dInt1: 42000
 xAODTestReadDecor                         13   0    INFO cinfo.dInt1Base: 42001
 xAODTestReadDecor                         13   0    INFO cinfo.dInt1: 42000
+xAODTestReadDecorSCopy                    13   0    INFO scopy_cvec.dInt1: 5601 5602 5603 5604 5605 5606 5607 5608 5609 5610
+xAODTestReadDecorSCopy                    13   0    INFO scopy_cinfo.dInt1: 42000
+xAODTestReadDecorSCopy                    13   0    INFO scopy_cinfo.dInt1Base: 42001
+xAODTestReadDecorSCopy                    13   0    INFO scopy_cinfo.dInt1: 42000
 AthenaHiveEventLoopMgr                    13   0    INFO   ===>>>  done processing event #13, run #0 on slot 0,  14 events processed so far  <<<===
 AthenaHiveEventLoopMgr                    14   0    INFO   ===>>>  start processing event #14, run #0 on slot 0,  14 events processed so far  <<<===
+SGInputLoader                             14   0 WARNING unable to find proxy for  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1Base' ) 
 xAODTestReadDecor                         14   0    INFO cvec.dInt1: 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010
 xAODTestReadDecor                         14   0    INFO cinfo.dInt1: 45000
 xAODTestReadDecor                         14   0    INFO cinfo.dInt1Base: 45001
 xAODTestReadDecor                         14   0    INFO cinfo.dInt1: 45000
+xAODTestReadDecorSCopy                    14   0    INFO scopy_cvec.dInt1: 6001 6002 6003 6004 6005 6006 6007 6008 6009 6010
+xAODTestReadDecorSCopy                    14   0    INFO scopy_cinfo.dInt1: 45000
+xAODTestReadDecorSCopy                    14   0    INFO scopy_cinfo.dInt1Base: 45001
+xAODTestReadDecorSCopy                    14   0    INFO scopy_cinfo.dInt1: 45000
 AthenaHiveEventLoopMgr                    14   0    INFO   ===>>>  done processing event #14, run #0 on slot 0,  15 events processed so far  <<<===
 AthenaHiveEventLoopMgr                    15   0    INFO   ===>>>  start processing event #15, run #0 on slot 0,  15 events processed so far  <<<===
+SGInputLoader                             15   0 WARNING unable to find proxy for  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1Base' ) 
 xAODTestReadDecor                         15   0    INFO cvec.dInt1: 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410
 xAODTestReadDecor                         15   0    INFO cinfo.dInt1: 48000
 xAODTestReadDecor                         15   0    INFO cinfo.dInt1Base: 48001
 xAODTestReadDecor                         15   0    INFO cinfo.dInt1: 48000
+xAODTestReadDecorSCopy                    15   0    INFO scopy_cvec.dInt1: 6401 6402 6403 6404 6405 6406 6407 6408 6409 6410
+xAODTestReadDecorSCopy                    15   0    INFO scopy_cinfo.dInt1: 48000
+xAODTestReadDecorSCopy                    15   0    INFO scopy_cinfo.dInt1Base: 48001
+xAODTestReadDecorSCopy                    15   0    INFO scopy_cinfo.dInt1: 48000
 AthenaHiveEventLoopMgr                    15   0    INFO   ===>>>  done processing event #15, run #0 on slot 0,  16 events processed so far  <<<===
 AthenaHiveEventLoopMgr                    16   0    INFO   ===>>>  start processing event #16, run #0 on slot 0,  16 events processed so far  <<<===
+SGInputLoader                             16   0 WARNING unable to find proxy for  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1Base' ) 
 xAODTestReadDecor                         16   0    INFO cvec.dInt1: 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810
 xAODTestReadDecor                         16   0    INFO cinfo.dInt1: 51000
 xAODTestReadDecor                         16   0    INFO cinfo.dInt1Base: 51001
 xAODTestReadDecor                         16   0    INFO cinfo.dInt1: 51000
+xAODTestReadDecorSCopy                    16   0    INFO scopy_cvec.dInt1: 6801 6802 6803 6804 6805 6806 6807 6808 6809 6810
+xAODTestReadDecorSCopy                    16   0    INFO scopy_cinfo.dInt1: 51000
+xAODTestReadDecorSCopy                    16   0    INFO scopy_cinfo.dInt1Base: 51001
+xAODTestReadDecorSCopy                    16   0    INFO scopy_cinfo.dInt1: 51000
 AthenaHiveEventLoopMgr                    16   0    INFO   ===>>>  done processing event #16, run #0 on slot 0,  17 events processed so far  <<<===
 AthenaHiveEventLoopMgr                    17   0    INFO   ===>>>  start processing event #17, run #0 on slot 0,  17 events processed so far  <<<===
+SGInputLoader                             17   0 WARNING unable to find proxy for  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1Base' ) 
 xAODTestReadDecor                         17   0    INFO cvec.dInt1: 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210
 xAODTestReadDecor                         17   0    INFO cinfo.dInt1: 54000
 xAODTestReadDecor                         17   0    INFO cinfo.dInt1Base: 54001
 xAODTestReadDecor                         17   0    INFO cinfo.dInt1: 54000
+xAODTestReadDecorSCopy                    17   0    INFO scopy_cvec.dInt1: 7201 7202 7203 7204 7205 7206 7207 7208 7209 7210
+xAODTestReadDecorSCopy                    17   0    INFO scopy_cinfo.dInt1: 54000
+xAODTestReadDecorSCopy                    17   0    INFO scopy_cinfo.dInt1Base: 54001
+xAODTestReadDecorSCopy                    17   0    INFO scopy_cinfo.dInt1: 54000
 AthenaHiveEventLoopMgr                    17   0    INFO   ===>>>  done processing event #17, run #0 on slot 0,  18 events processed so far  <<<===
 AthenaHiveEventLoopMgr                    18   0    INFO   ===>>>  start processing event #18, run #0 on slot 0,  18 events processed so far  <<<===
+SGInputLoader                             18   0 WARNING unable to find proxy for  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1Base' ) 
 xAODTestReadDecor                         18   0    INFO cvec.dInt1: 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610
 xAODTestReadDecor                         18   0    INFO cinfo.dInt1: 57000
 xAODTestReadDecor                         18   0    INFO cinfo.dInt1Base: 57001
 xAODTestReadDecor                         18   0    INFO cinfo.dInt1: 57000
+xAODTestReadDecorSCopy                    18   0    INFO scopy_cvec.dInt1: 7601 7602 7603 7604 7605 7606 7607 7608 7609 7610
+xAODTestReadDecorSCopy                    18   0    INFO scopy_cinfo.dInt1: 57000
+xAODTestReadDecorSCopy                    18   0    INFO scopy_cinfo.dInt1Base: 57001
+xAODTestReadDecorSCopy                    18   0    INFO scopy_cinfo.dInt1: 57000
 AthenaHiveEventLoopMgr                    18   0    INFO   ===>>>  done processing event #18, run #0 on slot 0,  19 events processed so far  <<<===
 AthenaHiveEventLoopMgr                    19   0    INFO   ===>>>  start processing event #19, run #0 on slot 0,  19 events processed so far  <<<===
+SGInputLoader                             19   0 WARNING unable to find proxy for  ( 'SG::AuxElement' , 'StoreGateSvc+scopy_cinfo.dInt1Base' ) 
 xAODTestReadDecor                         19   0    INFO cvec.dInt1: 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010
 xAODTestReadDecor                         19   0    INFO cinfo.dInt1: 60000
 xAODTestReadDecor                         19   0    INFO cinfo.dInt1Base: 60001
 xAODTestReadDecor                         19   0    INFO cinfo.dInt1: 60000
+xAODTestReadDecorSCopy                    19   0    INFO scopy_cvec.dInt1: 8001 8002 8003 8004 8005 8006 8007 8008 8009 8010
+xAODTestReadDecorSCopy                    19   0    INFO scopy_cinfo.dInt1: 60000
+xAODTestReadDecorSCopy                    19   0    INFO scopy_cinfo.dInt1Base: 60001
+xAODTestReadDecorSCopy                    19   0    INFO scopy_cinfo.dInt1: 60000
 AthenaHiveEventLoopMgr                    19   0    INFO   ===>>>  done processing event #19, run #0 on slot 0,  20 events processed so far  <<<===
-AthenaHiveEventLoopMgr                    19   0    INFO ---> Loop Finished (seconds): 0.0376902
+AthenaHiveEventLoopMgr                    19   0    INFO ---> Loop Finished (seconds): 0.0770563
 ApplicationMgr                                      INFO Application Manager Stopped successfully
 IncidentProcAlg1                                    INFO Finalize
 SGInputLoader                                       INFO Finalizing SGInputLoader...
diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1_jo.py b/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1_jo.py
index f380e434b1012e2bfc680d53147c10fdb68dccc6..32b90501e9bd4eb49230df7706faa54bf3cfede7 100644
--- a/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1_jo.py
+++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestDecorHandle1_jo.py
@@ -41,7 +41,8 @@ from DataModelTestDataCommon.DataModelTestDataCommonConf import \
      DMTest__xAODTestWriteCVec, \
      DMTest__xAODTestWriteCInfo, \
      DMTest__xAODTestDecor, \
-     DMTest__xAODTestReadDecor
+     DMTest__xAODTestReadDecor, \
+     DMTest__xAODTestShallowCopy
 from DataModelTestDataWrite.DataModelTestDataWriteConf import \
      DMTest__xAODTestWrite
 topSequence += DMTest__xAODTestWriteCVec ("xAODTestWriteCVec")
@@ -50,5 +51,10 @@ topSequence += DMTest__xAODTestWrite ("xAODTestWrite")
 topSequence += DMTest__xAODTestDecor ("xAODTestDecor")
 topSequence += DMTest__xAODTestReadDecor ("xAODTestReadDecor")
 
+topSequence += DMTest__xAODTestShallowCopy ("xAODTestShallowCopy",
+                                            CVecWDReadKey = '',
+                                            CTrigReadKey = '')
+topSequence += DMTest__xAODTestReadDecor ("xAODTestReadDecorSCopy",
+                                          ReadPrefix = "scopy_")
 
 include ('DataModelRunTests/commonTrailer.py')
diff --git a/Control/DataModelTest/DataModelRunTests/share/xAODTestRead_jo.py b/Control/DataModelTest/DataModelRunTests/share/xAODTestRead_jo.py
index 4b4285cae8969b63ab588433de7ed0c4525c4935..774c7c4db1d0a0bfe10b5739668fb1ae5f4aa5df 100755
--- a/Control/DataModelTest/DataModelRunTests/share/xAODTestRead_jo.py
+++ b/Control/DataModelTest/DataModelRunTests/share/xAODTestRead_jo.py
@@ -96,14 +96,15 @@ theApp.EvtMax = 20
 
 from DataModelTestDataCommon.DataModelTestDataCommonConf import \
      DMTest__xAODTestReadCVec, \
-     DMTest__xAODTestDecor
+     DMTest__xAODTestDecor, \
+     DMTest__xAODTestShallowCopy
 from DataModelTestDataRead.DataModelTestDataReadConf import \
      DMTest__xAODTestReadCInfo, \
      DMTest__xAODTestRead, \
      DMTest__xAODTestReadCView, \
      DMTest__xAODTestReadHVec, \
      DMTest__xAODTestClearDecor, \
-     DMTest__xAODTestShallowCopy
+     DMTest__xAODTestShallowCopyHVec
 
 
 topSequence += DMTest__xAODTestReadCVec ('xAODTestReadCVec',
@@ -124,8 +125,8 @@ topSequence += DMTest__xAODTestDecor ('AuxDataTestDecor1',
                                       DecorName = 'dInt100',
                                       Offset = 100)
 
-topSequence += DMTest__xAODTestShallowCopy ('xAODTestShallowCopy',
-                                            WritePrefix = 'scopy_')
+topSequence += DMTest__xAODTestShallowCopy ('xAODTestShallowCopy')
+topSequence += DMTest__xAODTestShallowCopyHVec ('xAODTestShallowCopyHVec')
 
 topSequence += DMTest__xAODTestDecor ('AuxDataTestDecor1_scopy',
                                       ReadPrefix = 'scopy_',
diff --git a/Control/DataModelTest/DataModelTestDataCommon/src/components/DataModelTestDataCommon_entries.cxx b/Control/DataModelTest/DataModelTestDataCommon/src/components/DataModelTestDataCommon_entries.cxx
index ee2c82bd1674c2271c91e8585b7794fa5f2f83b7..5ac3ef370136f8613036e0fadc3b319c02d1a117 100644
--- a/Control/DataModelTest/DataModelTestDataCommon/src/components/DataModelTestDataCommon_entries.cxx
+++ b/Control/DataModelTest/DataModelTestDataCommon/src/components/DataModelTestDataCommon_entries.cxx
@@ -1,8 +1,6 @@
 /*
- * Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration.
+ * Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration.
  */
-
-// $Id$
 /**
  * @file DataModeltestDataCommon/src/components/DataModelTestDataCommon_entries.cxx
  * @author snyder@bnl.gov
@@ -21,6 +19,7 @@
 #include "../xAODTestWriteCLinks.h"
 #include "../xAODTestReadCVec.h"
 #include "../xAODTestReadCLinks.h"
+#include "../xAODTestShallowCopy.h"
 #include "../CondWriterAlg.h"
 #include "../CondWriterExtAlg.h"
 #include "../CondReaderAlg.h"
@@ -41,6 +40,7 @@ DECLARE_COMPONENT( DMTest::xAODTestThinCVec )
 DECLARE_COMPONENT( DMTest::xAODTestWriteCLinks )
 DECLARE_COMPONENT( DMTest::xAODTestReadCVec )
 DECLARE_COMPONENT( DMTest::xAODTestReadCLinks )
+DECLARE_COMPONENT( DMTest::xAODTestShallowCopy )
 DECLARE_COMPONENT( DMTest::CondWriterAlg )
 DECLARE_COMPONENT( DMTest::CondWriterExtAlg )
 DECLARE_COMPONENT( DMTest::CondReaderAlg )
diff --git a/Control/DataModelTest/DataModelTestDataCommon/src/xAODTestReadDecor.cxx b/Control/DataModelTest/DataModelTestDataCommon/src/xAODTestReadDecor.cxx
index b3b0b48fc2f64dad1f88118d9dbc0de42893192b..8da08f9de17c67cd79b9b08be7a0b4ed80409c30 100644
--- a/Control/DataModelTest/DataModelTestDataCommon/src/xAODTestReadDecor.cxx
+++ b/Control/DataModelTest/DataModelTestDataCommon/src/xAODTestReadDecor.cxx
@@ -1,7 +1,6 @@
 /*
- * Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration.
+ * Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration.
  */
-// $Id$
 /**
  * @file DataModelTestDataCommon/src/AuxDataTestDecor.cxx
  * @author snyder@bnl.gov
@@ -46,15 +45,19 @@ xAODTestReadDecor::xAODTestReadDecor (const std::string &name,
  */
 StatusCode xAODTestReadDecor::initialize()
 {
-  m_cvecDecorKey  = m_readPrefix + m_cvecName +  "."  + m_decorName;
-  m_cinfoDecorKey = m_readPrefix + m_cinfoName + "." + m_decorName;
-  m_cinfoBaseDecorKey = m_readPrefix + m_cinfoName + "." + m_decorName + "Base";
-  m_objDecorKey = m_readPrefix + m_cinfoName + "." + m_decorName;
-
-  ATH_CHECK( m_cvecDecorKey.initialize() );
-  ATH_CHECK( m_cinfoDecorKey.initialize() );
-  ATH_CHECK( m_cinfoBaseDecorKey.initialize() );
-  ATH_CHECK( m_objDecorKey.initialize() );
+  if (!m_cvecName.empty()) {
+    m_cvecDecorKey  = m_readPrefix + m_cvecName +  "."  + m_decorName;
+    ATH_CHECK( m_cvecDecorKey.initialize() );
+  }
+
+  if (!m_cinfoName.empty()) {
+    m_cinfoDecorKey = m_readPrefix + m_cinfoName + "." + m_decorName;
+    m_cinfoBaseDecorKey = m_readPrefix + m_cinfoName + "." + m_decorName + "Base";
+    m_objDecorKey = m_readPrefix + m_cinfoName + "." + m_decorName;
+    ATH_CHECK( m_cinfoDecorKey.initialize() );
+    ATH_CHECK( m_cinfoBaseDecorKey.initialize() );
+    ATH_CHECK( m_objDecorKey.initialize() );
+  }
   return StatusCode::SUCCESS;
 }
 
@@ -64,7 +67,7 @@ StatusCode xAODTestReadDecor::initialize()
  */
 StatusCode xAODTestReadDecor::execute (const EventContext& ctx) const
 {
-  {
+  if (!m_cvecDecorKey.empty()) {
     std::ostringstream ss;
     SG::ReadDecorHandle<CVec, int> cvecDecor (m_cvecDecorKey, ctx);
     if (!cvecDecor.isPresent()) return StatusCode::FAILURE;
@@ -74,25 +77,25 @@ StatusCode xAODTestReadDecor::execute (const EventContext& ctx) const
     ATH_MSG_INFO (m_cvecDecorKey.key() << ":" << ss.str());
   }
 
-  {
+  if (!m_cinfoDecorKey.empty()) {
     SG::ReadDecorHandle<C, int> cinfoDecor (m_cinfoDecorKey, ctx);
     if (!cinfoDecor.isPresent()) return StatusCode::FAILURE;
     ATH_MSG_INFO (m_cinfoDecorKey.key() << ": " << cinfoDecor(0));
   }
 
-  {
+  if (!m_cinfoBaseDecorKey.empty()) {
     SG::ReadDecorHandle<C, int> cinfoBaseDecor (m_cinfoBaseDecorKey, ctx);
     if (!cinfoBaseDecor.isPresent()) return StatusCode::FAILURE;
     ATH_MSG_INFO (m_cinfoBaseDecorKey.key() << ": " << cinfoBaseDecor(0));
   }
 
-  {
+  if (!m_objDecorKey.empty()) {
     SG::ReadDecorHandle<SG::AuxElement, int> objDecor (m_objDecorKey, ctx);
     if (!objDecor.isPresent()) return StatusCode::FAILURE;
     ATH_MSG_INFO (m_objDecorKey.key() << ": " << objDecor(0));
   }
 
-  {
+  if (!m_cinfoDecorKey.empty()) {
     SG::ReadDecorHandleKey<C> testKey (m_cinfoDecorKey);
     testKey = testKey.key() + "_test";
     SG::ReadDecorHandle<C, int> cinfoDecorTest (testKey, ctx);
diff --git a/Control/DataModelTest/DataModelTestDataCommon/src/xAODTestShallowCopy.cxx b/Control/DataModelTest/DataModelTestDataCommon/src/xAODTestShallowCopy.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..a2d9ae0dee76edf83bd84994cb436bc33ab36fba
--- /dev/null
+++ b/Control/DataModelTest/DataModelTestDataCommon/src/xAODTestShallowCopy.cxx
@@ -0,0 +1,155 @@
+/*
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+*/
+/**
+ * @file DataModelTestDataCommon/src/xAODTestShallowCopy.cxx
+ * @author snyder@bnl.gov
+ * @date Nov 2020, from earlier version Jun, 2014
+ * @brief Algorithm to test shallow-copy of xAOD data.
+ */
+
+
+#include "xAODTestShallowCopy.h"
+#include "DataModelTestDataCommon/CVec.h"
+#include "DataModelTestDataCommon/CVecWithData.h"
+#include "DataModelTestDataCommon/C.h"
+#include "DataModelTestDataCommon/CAuxContainer.h"
+#include "DataModelTestDataCommon/CTrigAuxContainer.h"
+#include "DataModelTestDataCommon/CInfoAuxContainer.h"
+#include "xAODCore/ShallowCopy.h"
+#include "StoreGate/ReadHandle.h"
+#include "StoreGate/WriteHandle.h"
+#include "StoreGate/WriteDecorHandle.h"
+#include "AthContainers/AuxTypeRegistry.h"
+#include "AthenaKernel/errorcheck.h"
+
+
+namespace DMTest {
+
+
+/**
+ * @brief Algorithm initialization; called at the beginning of the job.
+ */
+StatusCode xAODTestShallowCopy::initialize()
+{
+  if (m_cvecReadKey.empty()) {
+    m_cvecWriteKey = "";
+    m_cvecAnInt10Key = "";
+  }
+  else {
+    ATH_CHECK( m_cvecReadKey.initialize() );
+    ATH_CHECK( m_cvecWriteKey.initialize() );
+    ATH_CHECK( m_cvecAnInt10Key.initialize() );
+    ATH_CHECK( m_cvecDecorDeps.initialize (m_cvecReadKey, m_cvecWriteKey) );
+  }
+
+  if (m_cvecWDReadKey.empty()) {
+    m_cvecWDWriteKey = "";
+    m_cvecWDAnInt10Key = "";
+  }
+  else {
+    ATH_CHECK( m_cvecWDReadKey.initialize() );
+    ATH_CHECK( m_cvecWDWriteKey.initialize() );
+    ATH_CHECK( m_cvecWDAnInt10Key.initialize() );
+    ATH_CHECK( m_cvecWDDecorDeps.initialize (m_cvecWDReadKey, m_cvecWDWriteKey) );
+  }
+
+  if (m_cinfoReadKey.empty()) {
+    m_cinfoWriteKey = "";
+    m_cinfoAnInt10Key = "";
+  }
+  else {
+    ATH_CHECK( m_cinfoReadKey.initialize() );
+    ATH_CHECK( m_cinfoWriteKey.initialize() );
+    ATH_CHECK( m_cinfoAnInt10Key.initialize() );
+    ATH_CHECK( m_cinfoDecorDeps.initialize (m_cinfoReadKey, m_cinfoWriteKey) );
+  }
+
+  if (m_ctrigReadKey.empty()) {
+    m_ctrigWriteKey = "";
+    m_ctrigAnInt10Key = "";
+  }
+  else {
+    ATH_CHECK( m_ctrigReadKey.initialize() );
+    ATH_CHECK( m_ctrigWriteKey.initialize() );
+    ATH_CHECK( m_ctrigAnInt10Key.initialize() );
+    ATH_CHECK( m_ctrigDecorDeps.initialize (m_ctrigReadKey, m_ctrigWriteKey) );
+  }
+
+  return StatusCode::SUCCESS;
+}
+
+
+/**
+ * @brief Algorithm event processing.
+ */
+StatusCode xAODTestShallowCopy::execute (const EventContext& ctx) const
+{
+  int count = ctx.evt() + 1;
+
+  if (!m_cvecReadKey.empty()) {
+    SG::ReadHandle<CVec> vec (m_cvecReadKey, ctx);
+    auto ret = xAOD::shallowCopyContainer (*vec);
+
+    SG::WriteHandle<DMTest::CVec> copy (m_cvecWriteKey, ctx);
+    ATH_CHECK( copy.record (std::unique_ptr<DMTest::CVec>(ret.first),
+                            std::unique_ptr<xAOD::ShallowAuxContainer>(ret.second)) );
+
+    ATH_CHECK( m_cvecDecorDeps.linkDecors (m_cvecReadKey, ctx) );
+
+    SG::WriteDecorHandle<DMTest::CVec, int> anInt10 (m_cvecAnInt10Key, ctx);
+    for (C* c : *ret.first)
+      anInt10(*c) = count * 20000 + c->anInt() * 100;
+  }
+
+  if (!m_cvecWDReadKey.empty()) {
+    SG::ReadHandle<CVecWithData> vec (m_cvecWDReadKey, ctx);
+    auto ret = xAOD::shallowCopyContainer (*vec);
+    ret.first->meta1 = vec->meta1;
+
+    SG::WriteHandle<DMTest::CVecWithData> copy (m_cvecWDWriteKey, ctx);
+    ATH_CHECK( copy.record (std::unique_ptr<DMTest::CVecWithData>(ret.first),
+                            std::unique_ptr<xAOD::ShallowAuxContainer>(ret.second)) );
+
+    ATH_CHECK( m_cvecWDDecorDeps.linkDecors (m_cvecWDReadKey, ctx) );
+
+    SG::WriteDecorHandle<DMTest::CVecWithData, int> anInt10 (m_cvecWDAnInt10Key, ctx);
+    for (C* c : *ret.first)
+      anInt10(*c) = count * 20000 + c->anInt() * 100;
+  }
+
+  if (!m_cinfoReadKey.empty()) {
+    SG::ReadHandle<C> cinfo (m_cinfoReadKey, ctx);
+    auto ret = xAOD::shallowCopyObject (*cinfo);
+
+    SG::WriteHandle<DMTest::C> copy (m_cinfoWriteKey, ctx);
+    ATH_CHECK( copy.record (std::unique_ptr<DMTest::C>(ret.first),
+                            std::unique_ptr<xAOD::ShallowAuxInfo>(ret.second)) );
+
+    ATH_CHECK( m_cinfoDecorDeps.linkDecors (m_cinfoReadKey, ctx) );
+
+    SG::WriteDecorHandle<DMTest::C, int> anInt10 (m_cinfoAnInt10Key, ctx);
+    anInt10(*ret.first) = count * 20000 + ret.first->anInt() * 200;
+  }
+
+  if (!m_ctrigReadKey.empty()) {
+    SG::ReadHandle<CVec> ctrig (m_ctrigReadKey, ctx);
+    auto ret = xAOD::shallowCopyContainer (*ctrig);
+
+    SG::WriteHandle<DMTest::CVec> copy (m_ctrigWriteKey, ctx);
+    ATH_CHECK( copy.record (std::unique_ptr<DMTest::CVec>(ret.first),
+                            std::unique_ptr<xAOD::ShallowAuxContainer>(ret.second)) );
+
+    ATH_CHECK( m_ctrigDecorDeps.linkDecors (m_ctrigReadKey, ctx) );
+
+    SG::WriteDecorHandle<DMTest::CVec, int> anInt10 (m_ctrigAnInt10Key, ctx);
+    for (C* c : *ret.first)
+      anInt10(*c) = count * 20000 + c->anInt() * 300;
+  }
+
+  return StatusCode::SUCCESS;
+}
+
+
+} // namespace DMTest
+
diff --git a/Control/DataModelTest/DataModelTestDataCommon/src/xAODTestShallowCopy.h b/Control/DataModelTest/DataModelTestDataCommon/src/xAODTestShallowCopy.h
new file mode 100644
index 0000000000000000000000000000000000000000..f6607709a4d50ddc594101a867ca27db81744724
--- /dev/null
+++ b/Control/DataModelTest/DataModelTestDataCommon/src/xAODTestShallowCopy.h
@@ -0,0 +1,95 @@
+// This file's extension implies that it's C, but it's really -*- C++ -*-.
+/*
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+*/
+/**
+ * @file DataModelTestDataCommon/src/xAODTestShallowCopy.h
+ * @author scott snyder <snyder@bnl.gov>
+ * @date Nov 2020, from earlier version Jun, 2014
+ * @brief Algorithm to test shallow-copy of xAOD data.
+ */
+
+
+#ifndef DATAMODELTESTDATACOMMON_XAODTESTSHALLOWCOPY_H
+#define DATAMODELTESTDATACOMMON_XAODTESTSHALLOWCOPY_H
+
+
+#include "AthenaBaseComps/AthReentrantAlgorithm.h"
+#include "DataModelTestDataCommon/C.h"
+#include "DataModelTestDataCommon/CVec.h"
+#include "DataModelTestDataCommon/CVecWithData.h"
+#include "StoreGate/ReadHandleKey.h"
+#include "StoreGate/WriteHandleKey.h"
+#include "StoreGate/WriteDecorHandleKey.h"
+#include "StoreGate/ShallowCopyDecorDeps.h"
+
+
+namespace DMTest {
+
+
+/**
+ * @brief Algorithm to do a shallow copy of CVec types.
+ */
+class xAODTestShallowCopy
+  : public AthReentrantAlgorithm
+{
+public:
+  using AthReentrantAlgorithm::AthReentrantAlgorithm;
+  
+
+  /**
+   * @brief Algorithm initialization; called at the beginning of the job.
+   */
+  virtual StatusCode initialize() override;
+
+
+  /**
+   * @brief Algorithm event processing.
+   */
+  virtual StatusCode execute (const EventContext& ctx) const override;
+
+
+private:
+  SG::ReadHandleKey<DMTest::CVec> m_cvecReadKey
+  { this, "CVecReadKey", "cvec", "Key for cvec object read from SG" };
+  SG::WriteHandleKey<DMTest::CVec> m_cvecWriteKey
+  { this, "CVecWriteKey", "scopy_cvec", "Key for cvec object written to SG" };
+  SG::WriteDecorHandleKey<DMTest::CVec> m_cvecAnInt10Key
+  { this, "CVecAnInt10Key", "scopy_cvec.anInt10", "Key for cvec anInt10 decoration" };
+  SG::ShallowCopyDecorDeps<DMTest::CVec> m_cvecDecorDeps
+  { this, "CVecDecorHelper", { "dInt1" } };
+
+  SG::ReadHandleKey<DMTest::CVecWithData> m_cvecWDReadKey
+  { this, "CVecWDReadKey", "cvecWD", "Key for cvecWD object read from SG" };
+  SG::WriteHandleKey<DMTest::CVecWithData> m_cvecWDWriteKey
+  { this, "CVecWDWriteKey", "scopy_cvecWD", "Key for cvecWD object written to SG" };
+  SG::WriteDecorHandleKey<DMTest::CVecWithData> m_cvecWDAnInt10Key
+  { this, "CVecWDAnInt10Key", "scopy_cvecWD.anInt10", "Key for cvecWD anInt10 decoration" };
+  SG::ShallowCopyDecorDeps<DMTest::CVecWithData> m_cvecWDDecorDeps
+  { this, "CVecWDDecorHelper", { "dInt1" } };
+
+  SG::ReadHandleKey<DMTest::C> m_cinfoReadKey
+  { this, "CInfoReadKey", "cinfo", "Key for cinfo object read from SG" };
+  SG::WriteHandleKey<DMTest::C> m_cinfoWriteKey
+  { this, "CInfoWriteKey", "scopy_cinfo", "Key for cinfo object written to SG" };
+  SG::WriteDecorHandleKey<DMTest::C> m_cinfoAnInt10Key
+  { this, "CInfoAnInt10Key", "scopy_cinfo.anInt10", "Key for cinfo anInt10 decoration" };
+  SG::ShallowCopyDecorDeps<DMTest::C> m_cinfoDecorDeps
+  { this, "CInfoDecorHelper", { "dInt1" } };
+
+  SG::ReadHandleKey<DMTest::CVec> m_ctrigReadKey
+  { this, "CTrigReadKey", "ctrig", "Key for ctrig object read from SG" };
+  SG::WriteHandleKey<DMTest::CVec> m_ctrigWriteKey
+  { this, "CTrigWriteKey", "scopy_ctrig", "Key for ctrig object written to SG" };
+  SG::WriteDecorHandleKey<DMTest::CVec> m_ctrigAnInt10Key
+  { this, "CTrigAnInt10Key", "scopy_ctrig.anInt10", "Key for ctrig anInt10 decoration" };
+  SG::ShallowCopyDecorDeps<DMTest::CVec> m_ctrigDecorDeps
+  { this, "CTrigDecorHelper", { "dInt1" } };
+
+};
+
+
+} // namespace DMTest
+
+
+#endif // not DATAMODELTESTDATACOMMON_XAODTESTSHALLOWCOPY_H
diff --git a/Control/DataModelTest/DataModelTestDataRead/src/components/DataModelTestDataRead_entries.cxx b/Control/DataModelTest/DataModelTestDataRead/src/components/DataModelTestDataRead_entries.cxx
index ba0775b1d5e90a0c0465a70b2b1941db28d04931..f00921e8e38fabf7fbd6823579dbcd01116ee5f9 100644
--- a/Control/DataModelTest/DataModelTestDataRead/src/components/DataModelTestDataRead_entries.cxx
+++ b/Control/DataModelTest/DataModelTestDataRead/src/components/DataModelTestDataRead_entries.cxx
@@ -18,7 +18,7 @@
 #include "../xAODTestFilterCVec.h"
 #include "../xAODTestClearDecor.h"
 #include "../xAODTestTypelessRead.h"
-#include "../xAODTestShallowCopy.h"
+#include "../xAODTestShallowCopyHVec.h"
 #include "../HLTResultReader.h"
 
 DECLARE_COMPONENT( DMTest::DMTestRead )
@@ -33,6 +33,6 @@ DECLARE_COMPONENT( DMTest::xAODTestReadHVec )
 DECLARE_COMPONENT( DMTest::xAODTestFilterCVec )
 DECLARE_COMPONENT( DMTest::xAODTestClearDecor )
 DECLARE_COMPONENT( DMTest::xAODTestTypelessRead )
-DECLARE_COMPONENT( DMTest::xAODTestShallowCopy )
+DECLARE_COMPONENT( DMTest::xAODTestShallowCopyHVec )
 DECLARE_COMPONENT( DMTest::HLTResultReader )
 
diff --git a/Control/DataModelTest/DataModelTestDataRead/src/xAODTestShallowCopy.cxx b/Control/DataModelTest/DataModelTestDataRead/src/xAODTestShallowCopy.cxx
deleted file mode 100644
index 695f851a4bc5ef58ab6085d59c981d463412585d..0000000000000000000000000000000000000000
--- a/Control/DataModelTest/DataModelTestDataRead/src/xAODTestShallowCopy.cxx
+++ /dev/null
@@ -1,140 +0,0 @@
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// $Id$
-/**
- * @file  src/xAODTestShallowCopy.cxx
- * @author snyder@bnl.gov
- * @date Jun, 2014
- * @brief Algorithm to test shallow-copy of xAOD data.
- */
-
-
-#include "xAODTestShallowCopy.h"
-#include "DataModelTestDataCommon/CVec.h"
-#include "DataModelTestDataCommon/CVecWithData.h"
-#include "DataModelTestDataCommon/C.h"
-#include "DataModelTestDataCommon/CAuxContainer.h"
-#include "DataModelTestDataCommon/CTrigAuxContainer.h"
-#include "DataModelTestDataCommon/CInfoAuxContainer.h"
-#include "DataModelTestDataRead/HVec.h"
-#include "DataModelTestDataRead/H.h"
-#include "DataModelTestDataRead/HAuxContainer.h"
-#include "xAODCore/ShallowCopy.h"
-#include "AthContainers/AuxTypeRegistry.h"
-#include "AthenaKernel/errorcheck.h"
-
-
-namespace DMTest {
-
-
-/**
- * @brief Constructor.
- * @param name The algorithm name.
- * @param svc The service locator.
- */
-xAODTestShallowCopy::xAODTestShallowCopy (const std::string &name,
-                            ISvcLocator *pSvcLocator)
-  : AthAlgorithm (name, pSvcLocator),
-    m_count(0)
-{
-  declareProperty ("ReadPrefix",  m_readPrefix);
-  declareProperty ("WritePrefix", m_writePrefix);
-}
-  
-
-/**
- * @brief Algorithm initialization; called at the beginning of the job.
- */
-StatusCode xAODTestShallowCopy::initialize()
-{
-  return StatusCode::SUCCESS;
-}
-
-
-/**
- * @brief Algorithm event processing.
- */
-StatusCode xAODTestShallowCopy::execute()
-{
-  ++m_count;
-
-  static C::Accessor<int> anInt10 ("anInt10");
-
-  {
-    const CVec* vec = 0;
-    CHECK( evtStore()->retrieve (vec, m_readPrefix + "cvec") );
-    auto ret = xAOD::shallowCopyContainer (*vec);
-
-    for (C* c : *ret.first)
-      anInt10(*c) = m_count * 20000 + c->anInt() * 100;
-
-    CHECK (evtStore()->record (ret.first, m_writePrefix + "cvec", false));
-    CHECK (evtStore()->record (ret.second, m_writePrefix + "cvecAux.", false));
-  }
-
-  {
-    const CVecWithData* vec = 0;
-    CHECK( evtStore()->retrieve (vec, m_readPrefix + "cvecWD") );
-    auto ret = xAOD::shallowCopyContainer (*vec);
-    ret.first->meta1 = vec->meta1;
-
-    for (C* c : *ret.first)
-      anInt10(*c) = m_count * 20000 + c->anInt() * 100;
-
-    CHECK (evtStore()->record (ret.first, m_writePrefix + "cvecWD", false));
-    CHECK (evtStore()->record (ret.second, m_writePrefix + "cvecWDAux.", false));
-  }
-
-  {
-    const C* cinfo = 0;
-    CHECK( evtStore()->retrieve (cinfo, m_readPrefix + "cinfo") );
-    auto ret = xAOD::shallowCopyObject (*cinfo);
-
-    anInt10(*ret.first) = m_count * 20000 + ret.first->anInt() * 200;
-
-    CHECK (evtStore()->record (ret.first, m_writePrefix + "cinfo", false));
-    CHECK (evtStore()->record (ret.second, m_writePrefix + "cinfoAux.", false));
-  }
-
-  {
-    const CVec* ctrig = 0;
-    CHECK( evtStore()->retrieve (ctrig, m_readPrefix + "ctrig") );
-    auto ret = xAOD::shallowCopyContainer (*ctrig);
-
-    for (C* c : *ret.first)
-      anInt10(*c) = m_count * 20000 + c->anInt() * 300;
-
-    CHECK (evtStore()->record (ret.first, m_writePrefix + "ctrig", false));
-    CHECK (evtStore()->record (ret.second, m_writePrefix + "ctrigAux.", false));
-  }
-
-  {
-    static H::Accessor<float> aFloat20 ("aFloat20");
-    const HVec* vec = 0;
-    CHECK( evtStore()->retrieve (vec, m_readPrefix + "hvec") );
-    auto ret = xAOD::shallowCopyContainer (*vec);
-
-    for (H* h : *ret.first)
-      aFloat20(*h) = m_count * 20000 + h->aFloat();
-
-    CHECK (evtStore()->record (ret.first, m_writePrefix + "hvec", false));
-    CHECK (evtStore()->record (ret.second, m_writePrefix + "hvecAux.", false));
-  }
-
-  return StatusCode::SUCCESS;
-}
-
-
-/**
- * @brief Algorithm finalization; called at the end of the job.
- */
-StatusCode xAODTestShallowCopy::finalize()
-{
-  return StatusCode::SUCCESS;
-}
-
-
-} // namespace DMTest
-
diff --git a/Control/DataModelTest/DataModelTestDataRead/src/xAODTestShallowCopy.h b/Control/DataModelTest/DataModelTestDataRead/src/xAODTestShallowCopy.h
deleted file mode 100644
index 5853c5c80f45572f5db6a7d02d8057e3e74bb585..0000000000000000000000000000000000000000
--- a/Control/DataModelTest/DataModelTestDataRead/src/xAODTestShallowCopy.h
+++ /dev/null
@@ -1,74 +0,0 @@
-// This file's extension implies that it's C, but it's really -*- C++ -*-.
-
-/*
-  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
-*/
-
-// $Id$
-/**
- * @file src/xAODTestShallowCopy.h
- * @author scott snyder <snyder@bnl.gov>
- * @date Jun, 2014
- * @brief Algorithm to test shallow-copy of xAOD data.
- */
-
-
-#ifndef DATAMODELTESTDATAREAD_XAODTESTSHALLOWCOPY_H
-#define DATAMODELTESTDATAREAD_XAODTESTSHALLOWCOPY_H
-
-
-#include "AthenaBaseComps/AthAlgorithm.h"
-
-
-namespace DMTest {
-
-
-/**
- * @brief Algorithm for reading test aux data.
- */
-class xAODTestShallowCopy
-  : public AthAlgorithm
-{
-public:
-  /**
-   * @brief Constructor.
-   * @param name The algorithm name.
-   * @param svc The service locator.
-   */
-  xAODTestShallowCopy (const std::string &name, ISvcLocator *pSvcLocator);
-  
-
-  /**
-   * @brief Algorithm initialization; called at the beginning of the job.
-   */
-  virtual StatusCode initialize();
-
-
-  /**
-   * @brief Algorithm event processing.
-   */
-  virtual StatusCode execute(); 
-
-
-  /**
-   * @brief Algorithm finalization; called at the end of the job.
-   */
-  virtual StatusCode finalize();
-
-
-private:
-  /// Parameter: Prefix for names read from SG.
-  std::string m_readPrefix;
-
-  /// Parameter: Prefix for names written to SG.  Null for no write.
-  std::string m_writePrefix;
-
-  /// Event counter.
-  int m_count;
-};
-
-
-} // namespace DMTest
-
-
-#endif // not DATAMODELTESTDATAREAD_XAODTESTSHALLOWCOPY_H
diff --git a/Control/DataModelTest/DataModelTestDataRead/src/xAODTestShallowCopyHVec.cxx b/Control/DataModelTest/DataModelTestDataRead/src/xAODTestShallowCopyHVec.cxx
new file mode 100644
index 0000000000000000000000000000000000000000..4ae333ec496c1970617b6294ebbd2bfaa923a342
--- /dev/null
+++ b/Control/DataModelTest/DataModelTestDataRead/src/xAODTestShallowCopyHVec.cxx
@@ -0,0 +1,64 @@
+/*
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+*/
+/**
+ * @file DataModelTestDataRead/src/xAODTestShallowCopyHVec.cxx
+ * @author snyder@bnl.gov
+ * @date Nov 2020, from earlier version Jun, 2014
+ * @brief Algorithm to test shallow-copy of xAOD data.
+ */
+
+
+#include "xAODTestShallowCopyHVec.h"
+#include "DataModelTestDataRead/HVec.h"
+#include "DataModelTestDataRead/H.h"
+#include "DataModelTestDataRead/HAuxContainer.h"
+#include "xAODCore/ShallowCopy.h"
+#include "StoreGate/ReadHandle.h"
+#include "StoreGate/WriteHandle.h"
+#include "StoreGate/WriteDecorHandle.h"
+#include "AthContainers/AuxTypeRegistry.h"
+#include "AthenaKernel/errorcheck.h"
+
+
+namespace DMTest {
+
+
+/**
+ * @brief Algorithm initialization; called at the beginning of the job.
+ */
+StatusCode xAODTestShallowCopyHVec::initialize()
+{
+  ATH_CHECK( m_readKey.initialize() );
+  ATH_CHECK( m_writeKey.initialize() );
+  ATH_CHECK( m_aFloat20Key.initialize() );
+  return StatusCode::SUCCESS;
+}
+
+
+/**
+ * @brief Algorithm event processing.
+ */
+StatusCode xAODTestShallowCopyHVec::execute (const EventContext& ctx) const
+{
+  size_t count = ctx.evt() + 1;
+
+  {
+    SG::ReadHandle<DMTest::HVec> vec (m_readKey, ctx);
+    auto ret = xAOD::shallowCopyContainer (*vec);
+
+    SG::WriteHandle<DMTest::HVec> copy (m_writeKey, ctx);
+    ATH_CHECK( copy.record (std::unique_ptr<DMTest::HVec>(ret.first),
+                            std::unique_ptr<xAOD::ShallowAuxContainer>(ret.second)) );
+
+    SG::WriteDecorHandle<DMTest::HVec, float> aFloat20 (m_aFloat20Key, ctx);
+    for (H* h : *ret.first)
+      aFloat20(*h) = count * 20000 + h->aFloat();
+  }
+
+  return StatusCode::SUCCESS;
+}
+
+
+} // namespace DMTest
+
diff --git a/Control/DataModelTest/DataModelTestDataRead/src/xAODTestShallowCopyHVec.h b/Control/DataModelTest/DataModelTestDataRead/src/xAODTestShallowCopyHVec.h
new file mode 100644
index 0000000000000000000000000000000000000000..63d1c43aec53daee636e6bfb5b244d389e136fac
--- /dev/null
+++ b/Control/DataModelTest/DataModelTestDataRead/src/xAODTestShallowCopyHVec.h
@@ -0,0 +1,65 @@
+// This file's extension implies that it's C, but it's really -*- C++ -*-.
+/*
+  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
+*/
+/**
+ * @file DataModelTestDataRead/src/xAODTestShallowCopyHVec.h
+ * @author scott snyder <snyder@bnl.gov>
+ * @date Nov 2020, from earlier version Jun, 2014
+ * @brief Algorithm to test shallow-copy of xAOD data.
+ */
+
+
+#ifndef DATAMODELTESTDATAREAD_XAODTESTSHALLOWCOPYHVEC_H
+#define DATAMODELTESTDATAREAD_XAODTESTSHALLOWCOPYHVEC_H
+
+
+#include "AthenaBaseComps/AthReentrantAlgorithm.h"
+#include "DataModelTestDataRead/HVec.h"
+#include "StoreGate/ReadHandleKey.h"
+#include "StoreGate/WriteHandleKey.h"
+#include "StoreGate/WriteDecorHandleKey.h"
+#include "StoreGate/ShallowCopyDecorDeps.h"
+
+
+namespace DMTest {
+
+
+/**
+ * @brief Algorithm to do a shallow copy of HVec types.
+ */
+class xAODTestShallowCopyHVec
+  : public AthReentrantAlgorithm
+{
+public:
+  using AthReentrantAlgorithm::AthReentrantAlgorithm;
+  
+
+  /**
+   * @brief Algorithm initialization; called at the beginning of the job.
+   */
+  virtual StatusCode initialize() override;
+
+
+  /**
+   * @brief Algorithm event processing.
+   */
+  virtual StatusCode execute (const EventContext& ctx) const override;
+
+
+private:
+  SG::ReadHandleKey<DMTest::HVec> m_readKey
+  { this, "ReadKey", "hvec", "Key for object read from SG" };
+
+  SG::WriteHandleKey<DMTest::HVec> m_writeKey
+  { this, "WriteKey", "scopy_hvec", "Key for object written to SG" };
+
+  SG::WriteDecorHandleKey<DMTest::HVec> m_aFloat20Key
+  { this, "AFloat20Key", "scopy_hvec.aFloat20", "Key for aFloat20 decoration" };
+};
+
+
+} // namespace DMTest
+
+
+#endif // not DATAMODELTESTDATAREAD_XAODTESTSHALLOWCOPYHVEC_H