00001 #ifndef _TrimmedVertexFitter_H_ 00002 #define _TrimmedVertexFitter_H_ 00003 00004 #include "RecoVertex/VertexPrimitives/interface/VertexFitter.h" 00005 #include "RecoVertex/TrimmedKalmanVertexFinder/interface/KalmanTrimmedVertexFinder.h" 00006 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00007 #include "DataFormats/BeamSpot/interface/BeamSpot.h" 00008 /* 00009 * Turn the TrimmedVertexFinder into a VertexFitter. 00010 */ 00011 00012 class TrimmedVertexFitter : public VertexFitter<5> { 00013 00014 public: 00015 00016 typedef CachingVertex<5>::RefCountedVertexTrack RefCountedVertexTrack; 00017 typedef ReferenceCountingPointer<LinearizedTrackState<5> > RefCountedLinearizedTrackState; 00018 00019 TrimmedVertexFitter(); 00020 TrimmedVertexFitter(const edm::ParameterSet & pSet); 00021 00022 virtual ~TrimmedVertexFitter(){} 00023 00024 virtual CachingVertex<5> vertex(const std::vector<reco::TransientTrack> & tracks) const; 00025 00026 virtual CachingVertex<5> vertex(const std::vector<RefCountedVertexTrack> & tracks) const; 00027 00028 virtual CachingVertex<5> vertex(const std::vector<RefCountedVertexTrack> & tracks, 00029 const reco::BeamSpot & spot ) const; 00030 00031 virtual CachingVertex<5> vertex(const std::vector<reco::TransientTrack> & tracks, 00032 const GlobalPoint& linPoint) const; 00033 00034 virtual CachingVertex<5> vertex(const std::vector<reco::TransientTrack> & tracks, 00035 const GlobalPoint& priorPos, 00036 const GlobalError& priorError) const; 00037 00038 virtual CachingVertex<5> vertex(const std::vector<RefCountedVertexTrack> & tracks, 00039 const GlobalPoint& priorPos, 00040 const GlobalError& priorError) const; 00041 00042 virtual CachingVertex<5> vertex(const std::vector<reco::TransientTrack> & tracks, 00043 const reco::BeamSpot& beamSpot) const; 00044 00045 00046 // Clone method 00047 TrimmedVertexFitter * clone() const; 00048 00049 00050 void setPtCut ( float cut ); 00051 void setTrackCompatibilityCut ( float cut ); 00052 void setVertexFitProbabilityCut ( float cut ); 00053 00054 private: 00055 KalmanTrimmedVertexFinder theRector; 00056 double ptcut; 00057 }; 00058 00059 #endif