CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/RecoVertex/KalmanVertexFit/interface/KalmanVertexFitter.h

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   //  edm::ParameterSet defaultParameters() const;
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