19 using namespace reco ;
59 GsfPFRecTrackCollection::const_iterator gsfPfRecTrack ;
60 for ( gsfPfRecTrack=gsfPfRecTrackCollection->begin() ;
61 gsfPfRecTrack!=gsfPfRecTrackCollection->end() ;
64 const GsfTrackRef gsfTrackRef = gsfPfRecTrack->gsfTrackRef() ;
71 for (
unsigned int i=0 ;
i<gsfTrackCollection->size() ; ++
i )
80 GsfElectronCoreCollection::const_iterator edCoreIter ;
82 ( edCoreIter = edCoresCollection->begin() ;
83 edCoreIter != edCoresCollection->end() ;
85 { electrons.push_back(edCoreIter->clone()) ; }
89 GsfElectronCoreCollection::const_iterator pfCoreIter ;
90 std::list<GsfElectronCore *>::iterator eleCore ;
92 for ( eleCore = electrons.begin() ; eleCore != electrons.end() ; eleCore++ )
97 ( pfCoreIter = pfCoresCollection->begin() ;
98 pfCoreIter != pfCoresCollection->end() ;
101 if (pfCoreIter->gsfTrack()==(*eleCore)->gsfTrack())
105 edm::LogWarning(
"GsfElectronCoreProducer")<<
"associated pfGsfElectronCore already found" ;
110 (*eleCore)->setParentSuperCluster(pfCoreIter->parentSuperCluster()) ;
117 auto collection = std::make_unique<GsfElectronCoreCollection>();
118 for ( eleCore = electrons.begin() ; eleCore != electrons.end() ; eleCore++ )
120 if ((*eleCore)->superCluster().isNull())
121 {
LogDebug(
"GsfElectronCoreProducer")<<
"GsfTrack with no associated SuperCluster at all." ; }
133 {
delete eleCore ;
return ; }
135 electrons.push_back(eleCore) ;
void initEvent(edm::Event &event, const edm::EventSetup &setup)
T getParameter(std::string const &) const
bool ecalDrivenSeed() const
def setup(process, global_tag, zero_tesla=False)
edm::Handle< reco::GsfElectronCoreCollection > edCoresH_
void produceTrackerDrivenCore(const reco::GsfTrackRef &gsfTrackRef, std::list< reco::GsfElectronCore * > &electrons)
edm::Handle< reco::GsfTrackCollection > gsfTracksH_
std::vector< GsfPFRecTrack > GsfPFRecTrackCollection
collection of GsfPFRecTrack objects
std::vector< GsfElectronCore > GsfElectronCoreCollection
std::vector< GsfTrack > GsfTrackCollection
collection of GsfTracks
~GsfElectronCoreProducer() override
edm::EDGetTokenT< reco::GsfElectronCoreCollection > pfCoresTag_
GsfElectronCoreProducer(const edm::ParameterSet &)
T const * product() const
edm::EDGetTokenT< reco::GsfElectronCoreCollection > edCoresTag_
edm::Handle< reco::GsfPFRecTrackCollection > gsfPfRecTracksH_
edm::Handle< reco::GsfElectronCoreCollection > pfCoresH_
void produce(edm::Event &, const edm::EventSetup &) override
void fillElectronCore(reco::GsfElectronCore *)