00001 #ifndef _PFCandConnector_H_ 00002 #define _PFCandConnector_H_ 00003 00004 #include "DataFormats/ParticleFlowCandidate/interface/PFCandidate.h" 00005 00006 #include "DataFormats/ParticleFlowCandidate/interface/PFCandidateFwd.h" 00007 00008 // \author : V. Roberfroid 00009 // \date : February 2008 00010 00011 class PFCandConnector { 00012 00013 public : 00014 00015 PFCandConnector( ) { pfC_ = std::auto_ptr<reco::PFCandidateCollection>(new reco::PFCandidateCollection); } 00016 00017 std::auto_ptr<reco::PFCandidateCollection> connect(std::auto_ptr<reco::PFCandidateCollection>& pfCand); 00018 00019 private : 00020 bool shouldBeLinked( const reco::PFCandidate& pf1, const reco::PFCandidate& pf2) const; 00021 00022 void link( reco::PFCandidate& pf1, reco::PFCandidate& pf2) const; 00023 00024 bool isSecondary( const reco::PFCandidate& pf ) const; 00025 00026 // collection of primary PFCandidate containing secondary 00027 std::auto_ptr<reco::PFCandidateCollection> pfC_; 00028 }; 00029 00030 #endif