1 #ifndef _MultiClusterizer1D_H_ 2 #define _MultiClusterizer1D_H_ 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]);
ret
prodAgent to be discontinued
WeightEstimator< T > * theEstimator
MultiClusterizer1D(const Clusterizer1D< T > &single, const WeightEstimator< T > &est=TrivialWeightEstimator< T >())
int single(int argc, char *argv[])
std::pair< std::vector< Cluster1D< T > >, std::vector< const T * > > operator()(const std::vector< Cluster1D< T > > &) const
TEveGeoShape * clone(const TEveElement *element, TEveElement *parent)
Clusterizer1D< T > * theSingle
virtual MultiClusterizer1D * clone() const