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 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 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
00098 virtual inline CachingVertex<5>
00099 vertex(const vector<RefCountedVertexTrack> & tracks,
00100 const GlobalPoint& priorPos,
00101 const GlobalError& priorError) const
00102 {
00103 return theFitter->vertex(tracks, priorPos, priorError);
00104 }
00105
00106 private:
00107
00108 AdaptiveVertexFitter * theFitter;
00109
00110
00111
00112
00113
00114
00115
00116 };
00117
00118 #endif