![]() |
|
|||
File indexing completed on 2023-03-17 11:16:36
0001 #include "PhysicsTools/PatUtils/interface/DuplicatedElectronRemover.h" 0002 0003 #include <algorithm> 0004 0005 std::unique_ptr<std::vector<size_t> > pat::DuplicatedElectronRemover::duplicatesToRemove( 0006 const std::vector<reco::GsfElectron> &electrons) const { 0007 return duplicatesToRemove<std::vector<reco::GsfElectron> >(electrons); 0008 } 0009 0010 std::unique_ptr<std::vector<size_t> > pat::DuplicatedElectronRemover::duplicatesToRemove( 0011 const edm::View<reco::GsfElectron> &electrons) const { 0012 return duplicatesToRemove<edm::View<reco::GsfElectron> >(electrons); 0013 } 0014 0015 /* 0016 std::unique_ptr< std::vector<size_t> > 0017 pat::DuplicatedElectronRemover::duplicatesToRemove(const std::vector<reco::GsfElectron> &electrons) 0018 { 0019 using namespace std; 0020 0021 size_t size = electrons.size(); 0022 0023 vector<bool> bad(size, false); 0024 0025 for (size_t ie = 0; ie < size; ++ie) { 0026 if (bad[ie]) continue; // if already marked bad 0027 0028 reco::GsfTrackRef thistrack = electrons[ie].gsfTrack(); 0029 reco::SuperClusterRef thissc = electrons[ie].superCluster(); 0030 0031 for (size_t je = ie+1; je < size; ++je) { 0032 if (bad[je]) continue; // if already marked bad 0033 0034 if ( ( thistrack == electrons[je].gsfTrack()) || 0035 (thissc == electrons[je].superCluster()) ) { 0036 // we have a match, arbitrate and mark one for removal 0037 // keep the one with E/P closer to unity 0038 float diff1 = fabs(electrons[ie].eSuperClusterOverP()-1); 0039 float diff2 = fabs(electrons[je].eSuperClusterOverP()-1); 0040 0041 if (diff1<diff2) { 0042 bad[je] = true; 0043 } else { 0044 bad[ie] = true; 0045 } 0046 } 0047 } 0048 } 0049 0050 auto ret = std::make_unique<std::vector<size_t>>(); 0051 0052 for (size_t i = 0; i < size; ++i) { 0053 if (bad[i]) ret->push_back(i); 0054 } 0055 0056 return ret; 0057 } 0058 */
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.2.1 LXR engine. The LXR team |
![]() ![]() |