CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/TrackingTools/GsfTools/interface/MultiGaussianState1D.h

Go to the documentation of this file.
00001 #ifndef MultiGaussianState1D_H_
00002 #define MultiGaussianState1D_H_
00003 
00004 #include "TrackingTools/GsfTools/interface/SingleGaussianState1D.h"
00005 
00006 #include <vector>
00007 
00012 class MultiGaussianState1D {
00013 public:
00014   typedef std::vector<SingleGaussianState1D> SingleState1dContainer;
00015 
00016 public:
00017 
00018   MultiGaussianState1D() : theCombinedStateUp2Date(false) {}
00019 
00020   MultiGaussianState1D(const SingleState1dContainer& stateV)
00021     : theComponents(stateV), theCombinedStateUp2Date(false) {}
00022 
00023   ~MultiGaussianState1D() {}
00024 
00026   double weight() const;
00028   double mean() const;
00030   double variance() const;
00032   const SingleState1dContainer& components() const {return theComponents;}
00033 
00034 // protected:
00035 private:
00037   void checkCombinedState() const;
00038 
00039   // should become a vector of pointers to const SingleState
00040   const SingleState1dContainer theComponents;
00041   mutable SingleGaussianState1D theCombinedState;
00042   mutable bool theCombinedStateUp2Date;
00043 };
00044 
00045 #endif