CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
CloseComponentsMerger.h
Go to the documentation of this file.
1 #ifndef CloseComponentsMerger_H
2 #define CloseComponentsMerger_H
3 
7 
8 #include <map>
9 #include <algorithm>
10 
17 template <unsigned int N>
19 private:
22  using SingleStatePtr = std::shared_ptr<SingleState>;
23 
24 public:
26 
27  CloseComponentsMerger* clone() const override { return new CloseComponentsMerger(*this); }
28 
32  MultiState merge(const MultiState& mgs) const override;
33 
34  MultiState mergeOld(const MultiState& mgs) const;
35 
36 public:
37  typedef std::multimap<double, SingleStatePtr> SingleStateMap;
38  typedef std::pair<SingleStatePtr, typename SingleStateMap::iterator> MinDistResult;
39 
40 private:
41  // std::pair< SingleState, SingleStateMap::iterator >
43 
46 };
47 
48 #include "TrackingTools/GsfTools/interface/CloseComponentsMerger.icc"
49 
50 #endif // CloseComponentsMerger_H
MultiState merge(const MultiState &mgs) const override
CloseComponentsMerger * clone() const override
Mixture of multi-variate gaussian states.
std::pair< SingleStatePtr, typename SingleStateMap::iterator > MinDistResult
MultiGaussianState< N > MultiState
MultiState mergeOld(const MultiState &mgs) const
std::multimap< double, SingleStatePtr > SingleStateMap
MinDistResult compWithMinDistToLargestWeight(SingleStateMap &) const
CloseComponentsMerger(int n, const DistanceBetweenComponents< N > *distance)
std::shared_ptr< SingleState > SingleStatePtr
DeepCopyPointerByClone< DistanceBetweenComponents< N > > theDistance