5 std::vector<reco::GsfElectronRef> UniqueElectrons;
7 for(reco::GsfElectronCollection::const_iterator elec = electrons->begin(); elec != electrons->end();++elec)
10 reco::GsfElectronCollection::const_iterator BestDuplicate = elec;
11 for(reco::GsfElectronCollection::const_iterator elec2 = electrons->begin(); elec2 != electrons->end(); ++elec2)
15 if(elec->superCluster() == elec2->superCluster())
17 edm::LogDebug_(
"",
"MySelection.cc", 122)<<
"e/p Best duplicate = "<< BestDuplicate->eSuperClusterOverP()
18 <<
"\telec2 = "<<elec2->eSuperClusterOverP();
19 if(fabs(BestDuplicate->eSuperClusterOverP()-1.) >= fabs(elec2->eSuperClusterOverP()-1.))
21 BestDuplicate = elec2;
22 edm::LogDebug_(
"",
"MySelection.cc", 122)<<
"elec2 is now best duplicate";
23 }
else edm::LogDebug_(
"",
"MySelection.cc", 122)<<
"BestDuplicate remains best duplicate";
27 if(BestDuplicate == elec) UniqueElectrons.push_back(electronRef);
30 return UniqueElectrons;
std::vector< reco::GsfElectronRef > uniqueElectronFinder(edm::Handle< reco::GsfElectronCollection > &pElectrons)
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
T const * product() const