CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/RecoVertex/GaussianSumVertexFit/interface/AdaptiveGsfVertexFitter.h

Go to the documentation of this file.
00001 #ifndef AdaptiveGsfVertexFitter_H
00002 #define AdaptiveGsfVertexFitter_H
00003 
00004 #include "RecoVertex/VertexPrimitives/interface/VertexFitter.h"
00005 #include "RecoVertex/LinearizationPointFinders/interface/DefaultLinearizationPointFinder.h"
00006 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00007 #include "RecoVertex/AdaptiveVertexFit/interface/AdaptiveVertexFitter.h"
00008 
00016 class AdaptiveGsfVertexFitter : public VertexFitter<5> {
00017 
00018 public:
00019 
00020   typedef CachingVertex<5>::RefCountedVertexTrack RefCountedVertexTrack;
00021 
00027   AdaptiveGsfVertexFitter(const edm::ParameterSet& pSet,
00028         const LinearizationPointFinder & linP = DefaultLinearizationPointFinder());
00029 
00030   virtual ~AdaptiveGsfVertexFitter();
00031 
00036   AdaptiveGsfVertexFitter(const AdaptiveGsfVertexFitter & original);
00037 
00038   AdaptiveGsfVertexFitter * clone() const {
00039     return new AdaptiveGsfVertexFitter(* this);
00040   }
00041 
00042 public:
00043 
00046   virtual inline CachingVertex<5> 
00047     vertex(const std::vector<reco::TransientTrack>  & tracks) const
00048   {
00049     return theFitter->vertex(tracks);
00050   }
00051 
00054   virtual inline CachingVertex<5> 
00055   vertex(const std::vector<RefCountedVertexTrack> & tracks) const
00056   {
00057     return theFitter->vertex(tracks);
00058   }
00059 
00063   virtual inline CachingVertex<5> 
00064     vertex(const std::vector<reco::TransientTrack>  & tracks, 
00065            const GlobalPoint& linPoint) const
00066   {
00067     return theFitter->vertex(tracks, linPoint);
00068   }
00069 
00074   virtual inline CachingVertex<5> 
00075   vertex(const std::vector<reco::TransientTrack> & tracks, const reco::BeamSpot& beamSpot) const
00076   {
00077     return theFitter->vertex(tracks, beamSpot);
00078   }
00079 
00080 
00086   virtual inline CachingVertex<5> 
00087   vertex(const std::vector<reco::TransientTrack> & tracks, 
00088          const GlobalPoint& priorPos,
00089          const GlobalError& priorError) const
00090   {
00091     return theFitter->vertex(tracks, priorPos, priorError);
00092   }
00093 
00094   virtual inline CachingVertex<5> 
00095   vertex(const std::vector<RefCountedVertexTrack> & tracks,
00096       const reco::BeamSpot & spot ) const
00097   {
00098     return theFitter->vertex(tracks, spot );
00099   }
00100 
00105   virtual inline CachingVertex<5> 
00106   vertex(const std::vector<RefCountedVertexTrack> & tracks, 
00107          const GlobalPoint& priorPos,
00108          const GlobalError& priorError) const
00109   {
00110     return theFitter->vertex(tracks, priorPos, priorError);
00111   }
00112 
00113 private:
00114   
00115   AdaptiveVertexFitter  * theFitter;
00116 };
00117 
00118 #endif