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]; });
void setFieldType(const reco::PFBlockElement::Type &fld)
std::set< reco::PFBlockElement * > BlockEltSet
Abstract base class for a PFBlock element (track, cluster...)
virtual void updatePFBlockEltWithLinks()=0
float cristalPhiEtaMaxSize_
reco::PFBlockElement::Type _fieldType
void setTargetType(const reco::PFBlockElement::Type &tgt)
edmplugin::PluginFactory< KDTreeLinkerBase *(const edm::ParameterSet &)> KDTreeLinkerFactory
std::map< const reco::PFRecHit *, BlockEltSet > RecHit2BlockEltMap
static std::vector< size_t > sort_indexes(const std::vector< T > &v)
std::map< reco::PFBlockElement *, BlockEltSet > BlockElt2BlockEltMap
void setDebug(bool isDebug)
virtual void buildTree()=0
virtual void insertFieldClusterElt(reco::PFBlockElement *cluster)=0
KDTreeLinkerBase(const edm::ParameterSet &conf)
virtual ~KDTreeLinkerBase()
const reco::PFBlockElement::Type & targetType() const
std::set< const reco::PFRecHit * > RecHitSet
const reco::PFBlockElement::Type & fieldType() const
virtual void searchLinks()=0
virtual void insertTargetElt(reco::PFBlockElement *target)=0
reco::PFBlockElement::Type _targetType