81 auto gsfElectrons_p = std::make_unique<reco::GsfElectronCollection>();
86 for(
const auto& electron1 : *electronsH) {
89 gsfElectrons_p->push_back(electron1);
92 for (
const auto& electron2 : *electronsH) {
93 if (&electron1 == &electron2)
continue;
94 if (electron1.superCluster() != electron2.superCluster())
continue;
95 if (electron1.electronCluster() != electron2.electronCluster()) {
96 if (electron1.electronCluster()->energy() < electron2.electronCluster()->energy()) {
101 if (fabs(electron1.eEleClusterOverPout()-1.) > fabs(electron2.eEleClusterOverPout()-1.)) {
107 if (isBest) gsfElectrons_p->push_back(electron1);
132 desc.
add<
bool>(
"cleanBarrel",
false);
134 descriptions.
add(
"cleanedEcalDrivenGsfElectronsFromMultiCl", desc);
void beginStream(edm::StreamID) override
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
std::string outputCollection_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
HGCalElectronFilter(const edm::ParameterSet &)
#define DEFINE_FWK_MODULE(type)
edm::EDGetTokenT< edm::View< reco::GsfElectron > > electronsToken_
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
ParameterDescriptionBase * add(U const &iLabel, T const &value)
~HGCalElectronFilter() override
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void produce(edm::Event &, const edm::EventSetup &) override
void endStream() override