1 #ifndef _MultiClusterizer1D_H_
2 #define _MultiClusterizer1D_H_
48 : theEstimator(o.theEstimator->
clone()), theSingle(o.theSingle->
clone()) {}
52 : theEstimator(est.
clone()), theSingle(single.
clone()) {}
68 using namespace Clusterizer1DCommons;
71 std::vector<const T *> unusedtracks;
76 std::pair<std::vector<Cluster1D>, std::vector<const T *> >
ret(ov, unusedtracks);
80 std::pair<std::vector<Cluster1D>, std::vector<const T *> > res;
83 std::map<const T *, Cluster1D> ass;
84 std::vector<Cluster1D> cur;
86 for (
typename std::vector<Cluster1D>::const_iterator
i = ov.begin();
i != ov.end(); ++
i) {
87 if (
i->tracks().size() == 1) {
88 ass[
i->tracks()[0]] = *
i;
96 std::pair<std::vector<Cluster1D>, std::vector<const T *> >
tmp = (*theSingle)(cur);
98 for (
typename std::vector<Cluster1D>::const_iterator
i = tmp.first.begin();
i != tmp.first.end(); ++
i) {
99 res.first.push_back(*
i);
101 res.second = tmp.second;
105 for (
typename std::vector<const T *>::const_iterator
i = res.second.begin();
i != res.second.end(); ++
i) {
106 cur.push_back(ass[*
i]);
tuple ret
prodAgent to be discontinued
virtual MultiClusterizer1D * clone() const
WeightEstimator< T > * theEstimator
MultiClusterizer1D(const Clusterizer1D< T > &single, const WeightEstimator< T > &est=TrivialWeightEstimator< T >())
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
Clusterizer1D< T > * theSingle
std::pair< std::vector< Cluster1D< T > >, std::vector< const T * > > operator()(const std::vector< Cluster1D< T > > &) const