File indexing completed on 2024-04-06 12:29:19
0001 #ifndef _VertexFitter_H_
0002 #define _VertexFitter_H_
0003
0004 #include "RecoVertex/VertexPrimitives/interface/CachingVertex.h"
0005 #include "TrackingTools/TransientTrack/interface/TransientTrack.h"
0006 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
0007
0008 #include <vector>
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019 template <unsigned int N>
0020 class VertexFitter {
0021 public:
0022 VertexFitter() {}
0023
0024 virtual ~VertexFitter() {}
0025
0026
0027
0028 virtual CachingVertex<N> vertex(const std::vector<reco::TransientTrack>& tracks) const = 0;
0029
0030
0031
0032
0033 virtual CachingVertex<N> vertex(const std::vector<typename CachingVertex<N>::RefCountedVertexTrack>& tracks) const = 0;
0034
0035
0036
0037
0038 virtual CachingVertex<N> vertex(const std::vector<typename CachingVertex<N>::RefCountedVertexTrack>& tracks,
0039 const reco::BeamSpot& spot) const = 0;
0040
0041
0042
0043
0044 virtual CachingVertex<N> vertex(const std::vector<reco::TransientTrack>& tracks,
0045 const GlobalPoint& linPoint) const = 0;
0046
0047
0048
0049
0050
0051
0052 virtual CachingVertex<N> vertex(const std::vector<reco::TransientTrack>& tracks,
0053 const GlobalPoint& priorPos,
0054 const GlobalError& priorError) const = 0;
0055
0056
0057
0058
0059
0060 virtual CachingVertex<N> vertex(const std::vector<reco::TransientTrack>& tracks,
0061 const reco::BeamSpot& beamSpot) const = 0;
0062
0063
0064
0065
0066
0067 virtual CachingVertex<N> vertex(const std::vector<typename CachingVertex<N>::RefCountedVertexTrack>& tracks,
0068 const GlobalPoint& priorPos,
0069 const GlobalError& priorError) const = 0;
0070
0071
0072
0073
0074
0075
0076 virtual VertexFitter* clone() const = 0;
0077 };
0078
0079 #endif