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 private:
20 
21 public:
22  //
23  // constructors
24  //
25  MultiGaussianStateAssembler() = default;
26 
30  void addState(const MultiState& state);
31  void addState(const SingleStatePtr& state);
32 
40  MultiState combinedState(const float weight);
41 
42 private:
47 
51  bool prepareCombinedState();
52 
57  MultiState reweightedCombinedState(const double) const;
58 
62  void removeSmallWeights();
63 
64 private:
65  double minFractionalWeight = 1.e-16;
66 
67  bool combinationDone = false;
68 
69  double theValidWeightSum = 0;
71 };
72 
73 #include "TrackingTools/GsfTools/interface/MultiGaussianStateAssembler.icc"
74 
75 #endif
Definition: weight.py:1
void addState(const MultiState &state)
Mixture of multi-variate gaussian states.
SingleGaussianState< N > SingleState
std::vector< SingleStatePtr > SingleStateContainer
MultiGaussianState< N >::SingleStatePtr SingleStatePtr
MultiGaussianState< N >::SingleStateContainer SingleStateContainer
std::shared_ptr< SingleState > SingleStatePtr
MultiState reweightedCombinedState(const double) const
void addStateVector(const SingleStateContainer &)