CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Types | Private Member Functions | Private Attributes
CloseComponentsMerger< N > Class Template Referencefinal

#include <CloseComponentsMerger.h>

Inheritance diagram for CloseComponentsMerger< N >:
MultiGaussianStateMerger< N >

Public Types

typedef std::pair< SingleStatePtr, typename SingleStateMap::iterator > MinDistResult
 
typedef std::multimap< double, SingleStatePtrSingleStateMap
 
- Public Types inherited from MultiGaussianStateMerger< N >
typedef MultiGaussianState< NMultiState
 
typedef SingleGaussianState< NSingleState
 

Public Member Functions

CloseComponentsMergerclone () const override
 
 CloseComponentsMerger (int n, const DistanceBetweenComponents< N > *distance)
 
MultiState merge (const MultiState &mgs) const override
 
MultiState mergeOld (const MultiState &mgs) const
 
- Public Member Functions inherited from MultiGaussianStateMerger< N >
virtual ~MultiGaussianStateMerger ()
 

Private Types

using MultiState = MultiGaussianState< N >
 
using SingleState = SingleGaussianState< N >
 
using SingleStatePtr = std::shared_ptr< SingleState >
 

Private Member Functions

MinDistResult compWithMinDistToLargestWeight (SingleStateMap &) const
 

Private Attributes

DeepCopyPointerByClone< DistanceBetweenComponents< N > > theDistance
 
int theMaxNumberOfComponents
 

Additional Inherited Members

- Protected Types inherited from MultiGaussianStateMerger< N >
typedef std::vector< SingleStateSGSVector
 
- Protected Member Functions inherited from MultiGaussianStateMerger< N >
 MultiGaussianStateMerger ()
 

Detailed Description

template<unsigned int N>
class CloseComponentsMerger< N >

Merging of a Gaussian mixture by clustering components which are close to one another. The actual calculation of the distance between components is done by a specific (polymorphic) class, given at construction time.

Definition at line 18 of file CloseComponentsMerger.h.

Member Typedef Documentation

◆ MinDistResult

template<unsigned int N>
typedef std::pair<SingleStatePtr, typename SingleStateMap::iterator> CloseComponentsMerger< N >::MinDistResult

Definition at line 38 of file CloseComponentsMerger.h.

◆ MultiState

template<unsigned int N>
using CloseComponentsMerger< N >::MultiState = MultiGaussianState<N>
private

Definition at line 21 of file CloseComponentsMerger.h.

◆ SingleState

template<unsigned int N>
using CloseComponentsMerger< N >::SingleState = SingleGaussianState<N>
private

Definition at line 20 of file CloseComponentsMerger.h.

◆ SingleStateMap

template<unsigned int N>
typedef std::multimap<double, SingleStatePtr> CloseComponentsMerger< N >::SingleStateMap

Definition at line 37 of file CloseComponentsMerger.h.

◆ SingleStatePtr

template<unsigned int N>
using CloseComponentsMerger< N >::SingleStatePtr = std::shared_ptr<SingleState>
private

Definition at line 22 of file CloseComponentsMerger.h.

Constructor & Destructor Documentation

◆ CloseComponentsMerger()

template<unsigned int N>
CloseComponentsMerger< N >::CloseComponentsMerger ( int  n,
const DistanceBetweenComponents< N > *  distance 
)

Member Function Documentation

◆ clone()

template<unsigned int N>
CloseComponentsMerger* CloseComponentsMerger< N >::clone ( void  ) const
inlineoverridevirtual

Implements MultiGaussianStateMerger< N >.

Definition at line 27 of file CloseComponentsMerger.h.

27 { return new CloseComponentsMerger(*this); }

References CloseComponentsMerger< N >::CloseComponentsMerger().

◆ compWithMinDistToLargestWeight()

template<unsigned int N>
MinDistResult CloseComponentsMerger< N >::compWithMinDistToLargestWeight ( SingleStateMap ) const
private

◆ merge()

template<unsigned int N>
MultiState CloseComponentsMerger< N >::merge ( const MultiState mgs) const
overridevirtual

Method which does the actual merging. Returns a trimmed MultiGaussianState.

Implements MultiGaussianStateMerger< N >.

◆ mergeOld()

template<unsigned int N>
MultiState CloseComponentsMerger< N >::mergeOld ( const MultiState mgs) const

Member Data Documentation

◆ theDistance

template<unsigned int N>
DeepCopyPointerByClone<DistanceBetweenComponents<N> > CloseComponentsMerger< N >::theDistance
private

Definition at line 45 of file CloseComponentsMerger.h.

◆ theMaxNumberOfComponents

template<unsigned int N>
int CloseComponentsMerger< N >::theMaxNumberOfComponents
private

Definition at line 44 of file CloseComponentsMerger.h.

CloseComponentsMerger::CloseComponentsMerger
CloseComponentsMerger(int n, const DistanceBetweenComponents< N > *distance)