CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch13/src/RecoVertex/VertexTools/interface/AbstractLTSFactory.h

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