32 egmPFCandidateCollection_(
34 produces<edm::ValueMap<reco::GsfElectronRef>>();
41 algo_->completeElectrons(electrons, event, setup, globalCache());
43 for (
auto& el : electrons)
48 auto valMap_p = std::make_unique<edm::ValueMap<reco::GsfElectronRef>>();
63 edm::LogError(
"GEDGsfElectronProducer") <<
" cannot get PFCandidates! ";
67 reco::PFCandidateCollection::const_iterator it = pfCandidates->begin();
68 reco::PFCandidateCollection::const_iterator itend = pfCandidates->end();
69 std::vector<reco::GsfElectronRef>
values;
71 for (; it != itend; ++it) {
74 if (it->gsfTrackRef().isNonnull()) {
77 return (ele.gsfTrack() == it->gsfTrackRef());
84 values.push_back(myRef);
86 filler.
insert(pfCandidates, values.begin(), values.end());
101 edm::LogError(
"GEDGsfElectronProducer") <<
" cannot get PFCandidates! ";
105 reco::PFCandidateCollection::const_iterator it = pfCandidates->begin();
106 reco::PFCandidateCollection::const_iterator itend = pfCandidates->end();
108 for (; it != itend; ++it) {
111 if (it->gsfTrackRef().isNonnull()) {
114 myMvaOutput.
status = it->egammaExtraRef()->electronStatus();
121 myMvaInput.
sigmaEtaEta = it->egammaExtraRef()->sigmaEtaEta();
122 myMvaInput.
hadEnergy = it->egammaExtraRef()->hadEnergy();
130 const std::map<reco::GsfTrackRef, reco::GsfElectron::MvaOutput>& mvaOutputs,
132 for (
auto el = electrons.begin(); el != electrons.end(); el++) {
136 mvaOutput.
mva_e_pi = mva_NIso_Value;
138 el->setMvaOutput(mvaOutput);
void matchWithPFCandidates(edm::Event &event)
std::unique_ptr< GsfElectronAlgo > algo_
void insert(const H &h, I begin, I end)
std::vector< Vertex > VertexCollection
collection of Vertex objects
void produce(edm::Event &, const edm::EventSetup &) override
edm::EDGetTokenT< reco::VertexCollection > vtxCollectionTag
GEDGsfElectronProducer(const edm::ParameterSet &, const GsfElectronAlgo::HeavyObjectCache *)
std::vector< GsfElectron > GsfElectronCollection
collection of GsfElectron objects
void fillEvent(reco::GsfElectronCollection &electrons, edm::Event &event)
std::unique_ptr< const ElectronMVAEstimator > iElectronMVAEstimator
U second(std::pair< T, U > const &p)
bool get(ProductID const &oid, Handle< PROD > &result) const
edm::EDGetTokenT< reco::PFCandidateCollection > egmPFCandidateCollection_
edm::Ref< GsfElectronCollection > GsfElectronRef
reference to an object in a collection of GsfElectron objects
void fillGsfElectronValueMap(edm::Event &event, edm::ValueMap< reco::GsfElectronRef >::Filler &filler)
const edm::OrphanHandle< reco::GsfElectronCollection > & orphanHandle() const
void setMVAOutputs(reco::GsfElectronCollection &electrons, const GsfElectronAlgo::HeavyObjectCache *, const std::map< reco::GsfTrackRef, reco::GsfElectron::MvaOutput > &mvaOutputs, reco::VertexCollection const &vertices) const
std::vector< reco::PFCandidate > PFCandidateCollection
collection of PFCandidates
std::map< reco::GsfTrackRef, reco::GsfElectron::MvaOutput > gsfMVAOutputMap_
GsfElectronAlgo::Tokens inputCfg_
std::unique_ptr< const SoftElectronMVAEstimator > sElectronMVAEstimator
std::map< reco::GsfTrackRef, reco::GsfElectron::MvaInput > gsfMVAInputMap_