1 #ifndef RecoParticleFlow_PFProducer_PFBlockAlgo_h 2 #define RecoParticleFlow_PFProducer_PFBlockAlgo_h 16 #include <unordered_map> 21 struct hash<
std::pair<unsigned int, unsigned int>> {
22 typedef std::pair<unsigned int, unsigned int>
arg_type;
24 value_type
operator()(
const arg_type&
arg)
const {
return arg.first ^ (arg.second << 1); }
37 typedef std::vector<std::unique_ptr<reco::PFBlockElement>>
ElementList;
45 void setLinkers(
const std::vector<edm::ParameterSet>&);
65 const std::unordered_map<std::pair<unsigned int, unsigned int>,
double>&
links)
const;
80 std::vector<std::unique_ptr<BlockElementImporterBase>>
importers_;
82 const std::unordered_map<std::string, reco::PFBlockElement::Type>
elementTypes_;
83 std::vector<std::unique_ptr<BlockElementLinkerBase>>
linkTests_;
86 std::vector<std::unique_ptr<KDTreeLinkerBase>>
kdtrees_;
Abstract base class for a PFBlock element (track, cluster...)
std::array< std::pair< unsigned int, unsigned int >, reco::PFBlockElement::kNBETypes > ElementRanges
std::vector< std::unique_ptr< reco::PFBlockElement > > ElementList
void setDebug(bool debug)
sets debug printout flag
std::vector< std::unique_ptr< KDTreeLinkerBase > > kdtrees_
std::pair< unsigned int, unsigned int > arg_type
std::vector< PFBlock > PFBlockCollection
collection of PFBlock objects
std::ostream & operator<<(std::ostream &out, const std::tuple< Types... > &value)
std::vector< std::unique_ptr< BlockElementLinkerBase > > linkTests_
const std::unordered_map< std::string, reco::PFBlockElement::Type > elementTypes_
std::vector< std::unique_ptr< BlockElementImporterBase > > importers_
value_type operator()(const arg_type &arg) const
bool debug_
if true, debug printouts activated