CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_3_0/src/RecoVertex/GaussianSumVertexFit/interface/BasicMultiVertexState.h

Go to the documentation of this file.
00001 #ifndef BasicMultiVertexState_H
00002 #define BasicMultiVertexState_H
00003 
00004 #include "RecoVertex/VertexPrimitives/interface/BasicVertexState.h"
00005 #include "RecoVertex/VertexPrimitives/interface/VertexState.h"
00006 #include "RecoVertex/GaussianSumVertexFit/interface/MultiVertexStateCombiner.h"
00007 
00012 class BasicMultiVertexState : public BasicVertexState {
00013 
00014 public:
00015 
00018   BasicMultiVertexState() : valid(false){}
00019 
00020   BasicMultiVertexState(const std::vector<VertexState>& vsComp);
00021 
00024   virtual BasicMultiVertexState* clone() const
00025   {
00026     return new BasicMultiVertexState(*this);
00027   }
00028 
00032   GlobalPoint position() const;
00033 
00038   GlobalError error() const;
00039 
00044   GlobalWeight weight() const;
00045 
00049   AlgebraicVector3 weightTimesPosition() const;
00050 
00055   double weightInMixture() const;
00056 
00060   virtual std::vector<VertexState> components() const {
00061     return theComponents;
00062   }
00063 
00067   bool isValid() const {return valid;}
00068 
00069 private:
00070 
00071   void checkCombinedState() const;
00072 
00073   bool valid;
00074   mutable std::vector<VertexState> theComponents;
00075   mutable VertexState theCombinedState;
00076   mutable bool theCombinedStateUp2Date;
00077 
00078   MultiVertexStateCombiner theCombiner;
00079 
00080 };
00081 
00082 #endif