diff --git a/benchmarks/dis/analysis/dis_electrons.cxx b/benchmarks/dis/analysis/dis_electrons.cxx
index 93481fb81911f64c2c3345e5593003e3a99300bb..c3ce781f2e804e36593ad65fdd1d5c27ba4c19c8 100644
--- a/benchmarks/dis/analysis/dis_electrons.cxx
+++ b/benchmarks/dis/analysis/dis_electrons.cxx
@@ -196,7 +196,7 @@ int dis_electrons(const std::string& config_name)
   //Old dataframe
   auto d0 = d.Define("p_rec", momenta_from_tracking, {"outputTrackParameters"})
                 .Define("N", "p_rec.size()")
-                .Define("p_sim", util::momenta_from_simulation, {"mcparticles2"})
+                .Define("p_sim", util::momenta_from_simulation, {"mcparticles"})
                 .Define("mom_sim", util::mom, {"p_sim"})
                 .Define("mom_rec", util::mom, {"p_rec"});
 */
@@ -206,7 +206,7 @@ int dis_electrons(const std::string& config_name)
                 .Define("Q2_recon", Q2, {"p_recon_sort"})
                 .Define("Q2_recon_rand", randomize, {"Q2_recon"})
                 .Define("elec_Q2_recon_rand", "Q2_recon_rand[0]")
-                .Define("p_sim_M", util::momenta_from_simulation, {"mcparticles2"})
+                .Define("p_sim_M", util::momenta_from_simulation, {"mcparticles"})
                 .Define("p_sim", convertMtoE, {"p_sim_M"})
                 .Define("p_sim_sort", sort_momenta, {"p_sim"})
                 .Define("Q2_sim", Q2, {"p_sim_sort"})
diff --git a/benchmarks/dvcs/scripts/dvcs_tests.cxx b/benchmarks/dvcs/scripts/dvcs_tests.cxx
index e801b4f78f5d4d1e8cca1b981af4a936a01816c2..2ebf9f45f73b91baf65fa56eb9b111da7025e7dc 100644
--- a/benchmarks/dvcs/scripts/dvcs_tests.cxx
+++ b/benchmarks/dvcs/scripts/dvcs_tests.cxx
@@ -109,8 +109,8 @@ void dvcs_tests(const char* fname = "rec_dvcs.root"){
     return p_ebeam - p;
   };
 
-  auto df0 = df.Define("isThrown", "mcparticles2.genStatus == 1")
-                 .Define("thrownParticles", "mcparticles2[isThrown]")
+  auto df0 = df.Define("isThrown", "mcparticles.genStatus == 1")
+                 .Define("thrownParticles", "mcparticles[isThrown]")
                  .Define("thrownP", fourvec, {"thrownParticles"})
                  .Define("recP", recfourvec, {"ReconstructedParticles"})
                  .Define("NPart", "recP.size()")
diff --git a/benchmarks/dvmp/analysis/vm_invar.cxx b/benchmarks/dvmp/analysis/vm_invar.cxx
index 06fa8e15663c66f8bee7c7de9aff7cf1330d26f6..6b115890893d00099a0c34b6d1be1eb5ee0355b7 100644
--- a/benchmarks/dvmp/analysis/vm_invar.cxx
+++ b/benchmarks/dvmp/analysis/vm_invar.cxx
@@ -83,7 +83,7 @@ int vm_invar(const std::string& config_name)
 
   // Define analysis flow
   auto d_im = d.Define("p_rec_sorted", momenta_sort_rec, {"ReconstructedParticles"})
-                  .Define("p_sim_sorted", momenta_sort_sim, {"mcparticles2"})
+                  .Define("p_sim_sorted", momenta_sort_sim, {"mcparticles"})
                   .Define("N", "p_rec_sorted.size()")
                   .Define("invariant_quantities_rec", util::calc_inv_quant, {"p_rec_sorted"})
                   .Define("invariant_quantities_sim", util::calc_inv_quant, {"p_sim_sorted"})
diff --git a/benchmarks/dvmp/analysis/vm_mass.cxx b/benchmarks/dvmp/analysis/vm_mass.cxx
index 0b90eaa61ce2651b97f3a6174172a346acc6ec73..ab2f857eb884195ef1bd647ec7a2ccbdbb36c2ac 100644
--- a/benchmarks/dvmp/analysis/vm_mass.cxx
+++ b/benchmarks/dvmp/analysis/vm_mass.cxx
@@ -94,11 +94,11 @@ int vm_mass(const std::string& config_name)
     return common_bench::find_decay_pair(parts, vm_mass, decay_mass);
   };
 
-  // common_bench::PrintGeant4(mcparticles2);
+  // common_bench::PrintGeant4(mcparticles);
   // Define analysis flow
   auto d_im = d.Define("p_rec", common_bench::momenta_RC, {"ReconstructedParticles"})       //using dummy rc
                   .Define("N", "p_rec.size()")
-                  .Define("p_sim", common_bench::momenta_from_simulation, {"mcparticles2"})
+                  .Define("p_sim", common_bench::momenta_from_simulation, {"mcparticles"})
                   .Define("decay_pair_rec", find_decay_pair, {"p_rec"})
                   .Define("decay_pair_sim", find_decay_pair, {"p_sim"})
                   .Define("p_vm_rec", "decay_pair_rec.first + decay_pair_rec.second")
diff --git a/benchmarks/u_omega/scripts/demo.cxx b/benchmarks/u_omega/scripts/demo.cxx
index 599b63d16332de170970a9756e856186d332bdb1..afdc0d9a110e447a0bac7dab499015cf0d9ce34a 100644
--- a/benchmarks/u_omega/scripts/demo.cxx
+++ b/benchmarks/u_omega/scripts/demo.cxx
@@ -109,8 +109,8 @@ void demo(const char* fname = "rec_dvcs.root"){
     return p_ebeam - p;
   };
 
-  auto df0 = df.Define("isThrown", "mcparticles2.genStatus == 1")
-                 .Define("thrownParticles", "mcparticles2[isThrown]")
+  auto df0 = df.Define("isThrown", "mcparticles.genStatus == 1")
+                 .Define("thrownParticles", "mcparticles[isThrown]")
                  .Define("thrownP", fourvec, {"thrownParticles"})
                  .Define("recP", recfourvec, {"ReconstructedParticles"})
                  .Define("NPart", "recP.size()")
diff --git a/options/reconstruction.py b/options/reconstruction.py
index d9fd295fb7336c35512ab6f42ba5c8d8d626b204..bbf88704ad7cfa8ffd5bbe6c54d1b0d5ee9050a2 100644
--- a/options/reconstruction.py
+++ b/options/reconstruction.py
@@ -116,12 +116,6 @@ algorithms = []
 podin = PodioInput("PodioReader", collections=sim_coll)
 algorithms.append(podin)
 
-## copiers to get around input --> output copy bug. Note the "2" appended to the output collection.
-copier = MCCopier("MCCopier",
-        inputCollection="mcparticles",
-        outputCollection="mcparticles2")
-algorithms.append(copier)
-
 # Generated particles
 dummy = MC2DummyParticle("dummy",
         inputCollection="mcparticles",
@@ -599,7 +593,11 @@ podout.outputCommands = [
         "drop *ProtoClusters",
         "drop outputParticles",
         "drop InitTrackParams",
-        ] + [ "drop " + c for c in sim_coll]
+        ] + [
+        "drop " + c for c in sim_coll
+        ] + [
+        "keep mcparticles"
+        ]
 algorithms.append(podout)
 
 ApplicationMgr(