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