CMS 3D CMS Logo

MultiGaussianStateAssembler.h
Go to the documentation of this file.
1 #ifndef MultiGaussianStateAssembler_h_
2 #define MultiGaussianStateAssembler_h_
3 
6 
7 #include <vector>
8 
13 template <unsigned int N>
15 
16 private:
21 
22 public:
23  //
24  // constructors
25  //
26  MultiGaussianStateAssembler() = default;
27 
31  void addState (const MultiState& state);
32  void addState (const SingleStatePtr& state);
33 
37  MultiState combinedState ();
41  MultiState combinedState (const float weight);
42 
43 
44 private:
48  void addStateVector (const SingleStateContainer&);
49 
53  bool prepareCombinedState();
54 
59  MultiState reweightedCombinedState (const double) const;
60 
64  void removeSmallWeights ();
65 
66 private:
67  double minFractionalWeight = 1.e-16;
68 
69  bool combinationDone=false;
70 
72  SingleStateContainer theStates;
73 
74 };
75 
76 #include "TrackingTools/GsfTools/interface/MultiGaussianStateAssembler.icc"
77 
78 #endif
Definition: weight.py:1
void addState(const MultiState &state)
Mixture of multi-variate gaussian states.
std::vector< SingleStatePtr > SingleStateContainer
SingleGaussianState< N > SingleState
MultiGaussianState< N >::SingleStatePtr SingleStatePtr
MultiState reweightedCombinedState(const double) const
MultiGaussianState< N >::SingleStateContainer SingleStateContainer
std::shared_ptr< SingleState > SingleStatePtr
void addStateVector(const SingleStateContainer &)