00001 #ifndef VertexTools_AbstractLTSFactory_H 00002 #define VertexTools_AbstractLTSFactory_H 00003 00004 #include "RecoVertex/VertexPrimitives/interface/LinearizedTrackState.h" 00005 #include "TrackingTools/TransientTrack/interface/TransientTrack.h" 00006 00007 00012 template <unsigned int N> 00013 class AbstractLTSFactory { 00014 00015 public: 00016 00017 typedef ReferenceCountingPointer<LinearizedTrackState<N> > RefCountedLinearizedTrackState; 00018 00019 virtual RefCountedLinearizedTrackState 00020 linearizedTrackState(const GlobalPoint & linP, const reco::TransientTrack & track) const = 0; 00021 00022 virtual RefCountedLinearizedTrackState 00023 linearizedTrackState(const GlobalPoint & linP, const reco::TransientTrack & track, 00024 const TrajectoryStateOnSurface& tsos) const = 0; 00025 00026 virtual ~AbstractLTSFactory() {}; 00027 00028 virtual const AbstractLTSFactory * clone() const = 0; 00029 00030 }; 00031 00032 #endif