CMS 3D CMS Logo

CMSSW_4_4_3_patch1/src/RecoVertex/TrimmedVertexFit/interface/TrimmedVertexFitter.h

Go to the documentation of this file.
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