Go to the documentation of this file. 1 #ifndef KDTreeLinkerBase_h
2 #define KDTreeLinkerBase_h
62 virtual void clear() = 0;
95 std::vector<size_t>
idx(
v.size());
96 for (
size_t i = 0;
i !=
idx.size(); ++
i)
98 std::sort(
idx.begin(),
idx.end(), [&
v](
size_t i1,
size_t i2) {
return v[
i1] <
v[
i2]; });
virtual ~KDTreeLinkerBase()
virtual void insertFieldClusterElt(reco::PFBlockElement *cluster)=0
virtual void searchLinks()=0
virtual void insertTargetElt(reco::PFBlockElement *target)=0
reco::PFBlockElement::Type _targetType
void setFieldType(const reco::PFBlockElement::Type &fld)
virtual void updatePFBlockEltWithLinks()=0
float cristalPhiEtaMaxSize_
std::map< const reco::PFRecHit *, BlockEltSet > RecHit2BlockEltMap
virtual void buildTree()=0
Abstract base class for a PFBlock element (track, cluster...)
void setTargetType(const reco::PFBlockElement::Type &tgt)
const reco::PFBlockElement::Type & targetType() const
std::map< reco::PFBlockElement *, BlockEltSet > BlockElt2BlockEltMap
static std::vector< size_t > sort_indexes(const std::vector< T > &v)
std::set< const reco::PFRecHit * > RecHitSet
std::set< reco::PFBlockElement * > BlockEltSet
reco::PFBlockElement::Type _fieldType
KDTreeLinkerBase(const edm::ParameterSet &conf)
void setDebug(bool isDebug)
const reco::PFBlockElement::Type & fieldType() const