Particle Flow Algorithm. More...
#include <PFBlockAlgo.h>
Public Types | |
typedef std::vector < std::unique_ptr < reco::PFBlockElement > > | ElementList |
typedef reco::PFBlockCollection::const_iterator | IBC |
typedef ElementList::iterator | IE |
define these in *Fwd files in DataFormats/ParticleFlowReco? More... | |
typedef ElementList::const_iterator | IEC |
typedef std::unique_ptr < BlockElementImporterBase > | ImporterPtr |
typedef std::unique_ptr < KDTreeLinkerBase > | KDTreePtr |
typedef std::unique_ptr < BlockElementLinkerBase > | LinkTestPtr |
Public Member Functions | |
const std::auto_ptr < reco::PFBlockCollection > & | blocks () const |
void | buildElements (const edm::Event &) |
void | findBlocks () |
build blocks More... | |
PFBlockAlgo () | |
void | setDebug (bool debug) |
sets debug printout flag More... | |
void | setImporters (const std::vector< edm::ParameterSet > &, edm::ConsumesCollector &) |
void | setLinkers (const std::vector< edm::ParameterSet > &) |
std::auto_ptr < reco::PFBlockCollection > | transferBlocks () |
void | updateEventSetup (const edm::EventSetup &) |
~PFBlockAlgo () | |
Private Member Functions | |
IE | associate (ElementList &elems, std::unordered_map< std::pair< size_t, size_t >, PFBlockLink > &links, reco::PFBlock &) |
void | link (const reco::PFBlockElement *el1, const reco::PFBlockElement *el2, PFBlockLink::Type &linktype, reco::PFBlock::LinkTest &linktest, double &dist) const |
check whether 2 elements are linked. Returns distance and linktype More... | |
bool | linkPrefilter (const reco::PFBlockElement *last, const reco::PFBlockElement *next) const |
Avoid to check links when not useful. More... | |
void | packLinks (reco::PFBlock &block, const std::unordered_map< std::pair< size_t, size_t >, PFBlockLink > &links) const |
Private Attributes | |
const std::unordered_map < std::string, reco::PFBlockElement::Type > | _elementTypes |
std::vector< ImporterPtr > | _importers |
std::vector< KDTreePtr > | _kdtrees |
std::vector< LinkTestPtr > | _linkTests |
std::auto_ptr < reco::PFBlockCollection > | blocks_ |
bool | debug_ |
if true, debug printouts activated More... | |
ElementList | elements_ |
bool | useHO_ |
Friends | |
std::ostream & | operator<< (std::ostream &, const PFBlockAlgo &) |
typedef std::vector<std::unique_ptr<reco::PFBlockElement> > PFBlockAlgo::ElementList |
Definition at line 94 of file PFBlockAlgo.h.
typedef reco::PFBlockCollection::const_iterator PFBlockAlgo::IBC |
Definition at line 101 of file PFBlockAlgo.h.
typedef ElementList::iterator PFBlockAlgo::IE |
define these in *Fwd files in DataFormats/ParticleFlowReco?
Definition at line 99 of file PFBlockAlgo.h.
typedef ElementList::const_iterator PFBlockAlgo::IEC |
Definition at line 100 of file PFBlockAlgo.h.
typedef std::unique_ptr<BlockElementImporterBase> PFBlockAlgo::ImporterPtr |
Definition at line 95 of file PFBlockAlgo.h.
typedef std::unique_ptr<KDTreeLinkerBase> PFBlockAlgo::KDTreePtr |
Definition at line 97 of file PFBlockAlgo.h.
typedef std::unique_ptr<BlockElementLinkerBase> PFBlockAlgo::LinkTestPtr |
Definition at line 96 of file PFBlockAlgo.h.
PFBlockAlgo::PFBlockAlgo | ( | ) |
Definition at line 21 of file PFBlockAlgo.cc.
References ECAL, HCAL, and INIT_ENTRY.
PFBlockAlgo::~PFBlockAlgo | ( | ) |
|
private |
|
inline |
void PFBlockAlgo::buildElements | ( | const edm::Event & | ) |
void PFBlockAlgo::findBlocks | ( | ) |
build blocks
|
inlineprivate |
check whether 2 elements are linked. Returns distance and linktype
|
inlineprivate |
Avoid to check links when not useful.
|
private |
compute missing links in the blocks (the recursive procedure does not build all links)
|
inline |
void PFBlockAlgo::setImporters | ( | const std::vector< edm::ParameterSet > & | , |
edm::ConsumesCollector & | |||
) |
void PFBlockAlgo::setLinkers | ( | const std::vector< edm::ParameterSet > & | ) |
|
inline |
Definition at line 130 of file PFBlockAlgo.h.
References blocks_.
void PFBlockAlgo::updateEventSetup | ( | const edm::EventSetup & | ) |
|
friend |
|
private |
Definition at line 171 of file PFBlockAlgo.h.
|
private |
Definition at line 168 of file PFBlockAlgo.h.
|
private |
Definition at line 174 of file PFBlockAlgo.h.
|
private |
Definition at line 172 of file PFBlockAlgo.h.
|
private |
Definition at line 157 of file PFBlockAlgo.h.
Referenced by blocks(), and transferBlocks().
|
private |
if true, debug printouts activated
Definition at line 163 of file PFBlockAlgo.h.
Referenced by setDebug().
|
private |
Definition at line 160 of file PFBlockAlgo.h.
|
private |
Definition at line 166 of file PFBlockAlgo.h.