Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:07

0001 #ifndef MultiPerigeeLTSFactory_H
0002 #define MultiPerigeeLTSFactory_H
0003 
0004 #include "RecoVertex/GaussianSumVertexFit/interface/PerigeeMultiLTS.h"
0005 #include "TrackingTools/TransientTrack/interface/GsfTransientTrack.h"
0006 #include "RecoVertex/VertexTools/interface/AbstractLTSFactory.h"
0007 #include "DataFormats/GeometrySurface/interface/ReferenceCounted.h"
0008 
0009 /** 
0010  *  Concrete class to encapsulate the creation of RefCountedLinearizedTrackState, 
0011  *  which is a reference-counting pointer. 
0012  *  This class handles the possibility that the input track is described by 
0013  *  not one state, but a Gaussian Mixture of state (see BasicMultiTrajectoryState).
0014  *  Should always be used in order to create a new RefCountedLinearizedTrackState, 
0015  *  so that the reference-counting mechanism works well. 
0016  */
0017 
0018 class MultiPerigeeLTSFactory : public AbstractLTSFactory<5> {
0019 public:
0020   typedef ReferenceCountingPointer<LinearizedTrackState<5> > RefCountedLinearizedTrackState;
0021 
0022   RefCountedLinearizedTrackState linearizedTrackState(const GlobalPoint& linP,
0023                                                       const reco::TransientTrack& track) const override;
0024 
0025   RefCountedLinearizedTrackState linearizedTrackState(const GlobalPoint& linP,
0026                                                       const reco::TransientTrack& track,
0027                                                       const TrajectoryStateOnSurface& tsos) const override;
0028 
0029   const MultiPerigeeLTSFactory* clone() const override;
0030 };
0031 
0032 #endif