18 : resolutions_(0), algo_()
26 resolutions_ = resolutions;
32 std::vector<metsig::SigInputObj> vobj;
35 vobj.push_back(resolutions_->evalPFJet(&(*
jet)));
36 std::vector<reco::PFCandidatePtr> pfs =
jet->getPFConstituents();
37 for(std::vector<reco::PFCandidatePtr>::const_iterator it=pfs.begin(); it!=pfs.end(); ++it)
40 clusteredParticlePtrs_.insert(ptr);
43 algo_.addObjects(vobj);
49 std::set<reco::CandidatePtr>::const_iterator it=clusteredParticlePtrs_.begin();
51 if(ptr.
id()==productID)
return;
53 std::set<reco::CandidatePtr>
temp;
54 for(; it!=clusteredParticlePtrs_.end(); ++it)
57 while(ptr.
id()!=productID)
59 ptr = ptr->sourceCandidatePtr(0);
64 clusteredParticlePtrs_.clear();
65 clusteredParticlePtrs_ =
temp;
71 if(clusteredParticlePtrs_.find(pf) != clusteredParticlePtrs_.end())
75 std::vector<metsig::SigInputObj> vobj;
76 vobj.push_back(resolutions_->evalPF(&(*pf)));
77 algo_.addObjects(vobj);
87 if (!pfCandidate)
continue;
89 if(dau.isNull())
continue;
90 if(!dau.isAvailable())
continue;
94 return getSignifMatrix();
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
void addPFJets(const edm::View< reco::PFJet > *PFJets)
void setResolutions(metsig::SignAlgoResolutions *resolutions)
ProductID id() const
Accessor for product ID.
void addPFCandidate(reco::PFCandidatePtr pf)
bool isNull() const
Checks for null.
Particle reconstructed by the particle flow algorithm.
const_iterator begin() const
const_iterator end() const
void useOriginalPtrs(const edm::ProductID &productID)
std::set< reco::CandidatePtr > clusteredParticlePtrs_
TMatrixD mkSignifMatrix(edm::Handle< edm::View< reco::Candidate > > &PFCandidates)