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