32 return StatusCode::SUCCESS;
57 std::vector<ObjectId<MyVariantDef>> variantParticles;
58 variantParticles.reserve (
electrons.size() + muons.size());
60 variantParticles.push_back(
electron);
61 for (
auto muon : muons)
62 variantParticles.push_back(
muon);
64 for (
auto& variantParticle : variantParticles)
73 if (!
ptAcc.isAvailable(variantParticle))
76 throw std::runtime_error(
"pt is not available");
81 std::sort (variantParticles.begin(), variantParticles.end(),
82 [&](
const auto&
a,
const auto&
b) {
83 return ptAcc(a) > ptAcc(b);
87 for (std::size_t rank = 0; rank < variantParticles.size(); ++rank)
93 std::sort (variantParticles.begin(), variantParticles.end(),
94 [&](
const auto&
a,
const auto&
b) {
95 return std::abs (etaAcc(a)) < std::abs (etaAcc(b));
99 for (std::size_t rank = 0; rank < variantParticles.size(); ++rank)
105 if (
auto castObject = variantParticles[rank].tryGetVariant<ContainerId::electron>())
115 std::vector<ObjectId<MyVariantDef>> variantParticles;