1 #ifndef _MultiClusterizer1D_H_
2 #define _MultiClusterizer1D_H_
27 std::pair<std::vector<Cluster1D<T> >, std::vector<const T *> >
operator()(
const std::vector<
Cluster1D<T> > &)
const;
48 : theEstimator(
o.theEstimator->
clone()), theSingle(
o.theSingle->
clone()) {}
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);
105 for (
typename std::vector<const T *>::const_iterator
i =
res.second.begin();
i !=
res.second.end(); ++
i) {
106 cur.push_back(ass[*
i]);