Go to the documentation of this file.00001 #ifndef KalmanVertexFitter_H
00002 #define KalmanVertexFitter_H
00003
00004 #include "RecoVertex/VertexTools/interface/SequentialVertexFitter.h"
00005
00022 class KalmanVertexFitter : public VertexFitter<5> {
00023 public:
00024
00031 KalmanVertexFitter(bool useSmoothing = false);
00032
00037 KalmanVertexFitter(const edm::ParameterSet& pSet, bool useSmoothing = false);
00038
00039 KalmanVertexFitter(const KalmanVertexFitter & other ) :
00040 theSequentialFitter ( other.theSequentialFitter->clone() ) {}
00041
00042 virtual ~KalmanVertexFitter()
00043 {
00044 delete theSequentialFitter;
00045 }
00046
00047 KalmanVertexFitter * clone() const
00048 {
00049 return new KalmanVertexFitter(* this);
00050 }
00051
00052 public:
00053
00054 typedef CachingVertex<5>::RefCountedVertexTrack RefCountedVertexTrack;
00055
00058 virtual inline CachingVertex<5>
00059 vertex(const std::vector<reco::TransientTrack> & tracks) const
00060 {
00061 return theSequentialFitter->vertex(tracks);
00062 }
00063
00066 virtual inline CachingVertex<5>
00067 vertex(const std::vector<RefCountedVertexTrack> & tracks) const
00068 {
00069 return theSequentialFitter->vertex(tracks);
00070 }
00071
00072 virtual inline CachingVertex<5>
00073 vertex(const std::vector<RefCountedVertexTrack> & tracks,
00074 const reco::BeamSpot & spot ) const
00075 {
00076 return theSequentialFitter->vertex(tracks, spot );
00077 }
00078
00079
00083 virtual inline CachingVertex<5>
00084 vertex(const std::vector<reco::TransientTrack> & tracks,
00085 const GlobalPoint& linPoint) const
00086 {
00087 return theSequentialFitter->vertex(tracks, linPoint);
00088 }
00089
00095 virtual inline CachingVertex<5>
00096 vertex(const std::vector<reco::TransientTrack> & tracks,
00097 const GlobalPoint& priorPos,
00098 const GlobalError& priorError) const
00099 {
00100 return theSequentialFitter->vertex(tracks, priorPos, priorError);
00101 }
00102
00107 virtual inline CachingVertex<5>
00108 vertex(const std::vector<reco::TransientTrack> & tracks, const reco::BeamSpot& beamSpot) const
00109 {
00110 return theSequentialFitter->vertex(tracks, beamSpot);
00111 }
00112
00113
00114
00119 virtual inline CachingVertex<5>
00120 vertex(const std::vector<RefCountedVertexTrack> & tracks,
00121 const GlobalPoint& priorPos,
00122 const GlobalError& priorError) const
00123 {
00124 return theSequentialFitter->vertex(tracks, priorPos, priorError);
00125 }
00126
00129
00130
00131 private:
00132
00133 void setup(const edm::ParameterSet& pSet, bool useSmoothing );
00134
00135 edm::ParameterSet defaultParameters() const ;
00136
00137 const SequentialVertexFitter<5> * theSequentialFitter;
00138 };
00139
00140 #endif