CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_9/src/RecoVertex/VertexPrimitives/interface/VertexState.h

Go to the documentation of this file.
00001 #ifndef VertexState_H
00002 #define VertexState_H
00003 
00004 #include "RecoVertex/VertexPrimitives/interface/BasicVertexState.h"
00005 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
00006 #include <vector>
00007 
00012 class VertexState : private  BasicVertexState::Proxy
00013 {
00014 
00015   typedef BasicVertexState::Proxy             Base;
00016 
00017 public:
00018   VertexState();
00019   VertexState(BasicVertexState* p);
00020   VertexState(const GlobalPoint & pos, const GlobalError & posErr,
00021                 const double & weightInMix = 1.0);
00022   VertexState(const GlobalPoint & pos, const GlobalWeight & posWeight,
00023                 const double & weightInMix = 1.0);
00024   VertexState(const AlgebraicVector3 & weightTimesPosition,
00025                 const GlobalWeight & posWeight,
00026                 const double & weightInMix = 1.0);
00027   VertexState(const reco::BeamSpot& beamSpot);
00028 
00029   GlobalPoint position() const
00030   {
00031     return data().position();
00032   }
00033 
00034   GlobalError error() const
00035   {
00036     return data().error();
00037   }
00038 
00039   GlobalWeight weight() const
00040   {
00041     return data().weight();
00042   }
00043 
00044   AlgebraicVector3 weightTimesPosition() const
00045   {
00046     return data().weightTimesPosition();
00047   }
00048 
00049   double weightInMixture() const
00050   {
00051     return data().weightInMixture();
00052   }
00053 
00056 //   RefCountedVertexSeed seedWithoutTracks() const
00057 //   {
00058 //     return data().seedWithoutTracks();
00059 //   }
00060 
00061   std::vector<VertexState> components() const
00062   {
00063     return data().components();
00064   }
00065 
00067   bool isValid() const {return Base::isValid() && data().isValid();}
00068 
00069 };
00070 
00071 #endif
00072