#include <BlobClustering.h>
|
typedef std::shared_ptr< IClustering > | pointer |
|
typedef std::shared_ptr< IQueuedoutNodeBase > | pointer |
|
typedef IBlobSet | input_type |
|
typedef ICluster | output_type |
|
typedef std::shared_ptr< const IBlobSet > | input_pointer |
|
typedef std::shared_ptr< const ICluster > | output_pointer |
|
typedef std::deque< output_pointer > | output_queue |
|
typedef std::shared_ptr< IQueuedoutNodeBase > | pointer |
|
typedef std::deque< boost::any > | queuedany |
|
enum | NodeCategory {
unknown,
sourceNode,
sinkNode,
functionNode,
queuedoutNode,
joinNode,
splitNode,
faninNode,
fanoutNode,
multioutNode,
hydraNode
} |
|
typedef std::shared_ptr< INode > | pointer |
| Access subclass facet by pointer. More...
|
|
typedef std::vector< pointer > | vector |
| Vector of shared pointers. More...
|
|
typedef std::shared_ptr< Interface > | pointer |
|
typedef std::shared_ptr< IConfigurable > | pointer |
| Access subclass facet by pointer. More...
|
|
typedef std::vector< pointer > | vector |
| Vector of shared pointers. More...
|
|
Definition at line 40 of file BlobClustering.h.
Img::BlobClustering::BlobClustering |
( |
| ) |
|
Definition at line 14 of file BlobClustering.cxx.
IBlobSet::pointer m_last_bs
logptr_t logger(std::string name)
Img::BlobClustering::~BlobClustering |
( |
| ) |
|
|
virtual |
void Img::BlobClustering::add_blobs |
( |
const input_pointer & |
newbs | ) |
|
|
private |
Definition at line 86 of file BlobClustering.cxx.
88 for (
const auto& iblob : newbs->blobs()) {
89 auto islice = iblob->slice();
93 auto iface = iblob->face();
94 auto wire_planes = iface->planes();
96 const auto& shape = iblob->shape();
97 for (
const auto& strip : shape.strips()) {
100 const int num_nonplane_layers = 2;
101 int iplane = strip.layer - num_nonplane_layers;
105 const auto& wires = wire_planes[iplane]->wires();
106 for (
int wip=strip.bounds.first; wip < strip.bounds.second and wip <
int(wires.size()); ++wip) {
107 auto iwire = wires[wip];
void add_slice(const ISlice::pointer &islice)
cluster_indexed_graph_t m_grind
edesc_t edge(vertex_t vobj1, vertex_t vobj2)
Definition at line 69 of file BlobClustering.cxx.
75 for (
const auto& ichv : islice->activity()) {
80 for (
const auto& iwire : ich->wires()) {
std::shared_ptr< const IChannel > pointer
cluster_indexed_graph_t m_grind
edesc_t edge(vertex_t vobj1, vertex_t vobj2)
bool has(vertex_t vobj) const
Definition at line 41 of file BlobClustering.cxx.
43 clusters.push_back(std::make_shared<SimpleCluster>(
m_grind.
graph()));
const graph_t & graph() const
cluster_indexed_graph_t m_grind
IBlobSet::pointer m_last_bs
Definition at line 114 of file BlobClustering.cxx.
135 const auto beg1 = blobs1.begin();
136 const auto beg2 = blobs2.begin();
std::vector< pointer > vector
void add_blobs(const input_pointer &newbs)
void associate(const blobs_t &one, const blobs_t &two, associator_t func)
cluster_indexed_graph_t m_grind
blobs_t::const_iterator blobref_t
bool judge_gap(const input_pointer &newbs)
IBlobSet::pointer m_last_bs
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
std::vector< Blob > blobs_t
edesc_t edge(vertex_t vobj1, vertex_t vobj2)
Definition at line 53 of file BlobClustering.cxx.
61 auto nslice = newbs->slice();
64 const double dt = nslice->start() - oslice->start();
IBlobSet::pointer m_last_bs
The calling signature:
Implements WireCell::IQueuedoutNode< IBlobSet, ICluster >.
Definition at line 150 of file BlobClustering.cxx.
153 l->debug(
"BlobClustering: EOS");
155 clusters.push_back(
nullptr);
164 l->debug(
"BlobClustering: sending {} clusters", clusters.size());
const graph_t & graph() const
cluster_indexed_graph_t m_grind
void intern(const input_pointer &newbs)
bool graph_bs(const input_pointer &newbs)
#define SPDLOG_LOGGER_TRACE(logger,...)
void flush(output_queue &clusters)
double WireCell::Img::BlobClustering::m_spans |
|
private |
The documentation for this class was generated from the following files: