File indexing completed on 2024-04-06 12:20:42
0001 #include "L1Trigger/L1THGCal/interface/backend/HGCalSortingTruncationImpl_SA.h"
0002
0003 void HGCalSortingTruncationImplSA::sortAndTruncate_SA(
0004 const std::vector<l1thgcfirmware::HGCalMulticluster>& inputMulticlusters,
0005 std::vector<l1thgcfirmware::HGCalMulticluster>& outputMulticlusters,
0006 const l1thgcfirmware::SortingTruncationAlgoConfig& configuration) const {
0007 outputMulticlusters.reserve(inputMulticlusters.size());
0008 for (const auto& multicluster : inputMulticlusters) {
0009 outputMulticlusters.push_back(multicluster);
0010 }
0011
0012
0013 std::sort(outputMulticlusters.begin(),
0014 outputMulticlusters.end(),
0015 [](l1thgcfirmware::HGCalMulticluster& one, l1thgcfirmware::HGCalMulticluster& two) {
0016 return one.sumPt() < two.sumPt();
0017 });
0018
0019
0020 unsigned maxTCs = configuration.maxTCs();
0021 if (outputMulticlusters.size() > maxTCs) {
0022 outputMulticlusters.resize(maxTCs);
0023 }
0024 }