Back to home page

Project CMSSW displayed by LXR

 
 

    


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   //Sort based on 3D cluster sum pT
0013   std::sort(outputMulticlusters.begin(),
0014             outputMulticlusters.end(),
0015             [](l1thgcfirmware::HGCalMulticluster& one, l1thgcfirmware::HGCalMulticluster& two) {
0016               return one.sumPt() < two.sumPt();
0017             });
0018 
0019   //Truncate, keeping maxTCs entries
0020   unsigned maxTCs = configuration.maxTCs();
0021   if (outputMulticlusters.size() > maxTCs) {
0022     outputMulticlusters.resize(maxTCs);
0023   }
0024 }