Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-02-14 14:31:36

0001 #ifndef MultiGaussianStateMerger_H
0002 #define MultiGaussianStateMerger_H
0003 
0004 #include "TrackingTools/GsfTools/interface/SingleGaussianState.h"
0005 #include "TrackingTools/GsfTools/interface/MultiGaussianState.h"
0006 
0007 /** Abstract base class for trimming or merging a MultiGaussianState into 
0008  *  one with a smaller number of components.
0009  */
0010 
0011 template <unsigned int N>
0012 class MultiGaussianStateMerger {
0013 public:
0014   typedef SingleGaussianState<N> SingleState;
0015   typedef MultiGaussianState<N> MultiState;
0016 
0017 public:
0018   virtual MultiState merge(const MultiState& mgs) const = 0;
0019   virtual ~MultiGaussianStateMerger() {}
0020   virtual MultiGaussianStateMerger* clone() const = 0;
0021 
0022 protected:
0023   MultiGaussianStateMerger() {}
0024   typedef std::vector<SingleState> SGSVector;
0025 };
0026 
0027 #endif