File indexing completed on 2024-04-06 12:29:20
0001 #ifndef _SequentialVertexSmoother_H_
0002 #define _SequentialVertexSmoother_H_
0003
0004 #include "RecoVertex/VertexPrimitives/interface/VertexSmoother.h"
0005 #include "RecoVertex/VertexPrimitives/interface/VertexTrackUpdator.h"
0006 #include "RecoVertex/VertexPrimitives/interface/VertexSmoothedChiSquaredEstimator.h"
0007 #include "RecoVertex/VertexPrimitives/interface/TrackToTrackCovCalculator.h"
0008
0009
0010
0011
0012
0013
0014 template <unsigned int N>
0015 class SequentialVertexSmoother : public VertexSmoother<N> {
0016 public:
0017 typedef ReferenceCountingPointer<RefittedTrackState<N> > RefCountedRefittedTrackState;
0018 typedef ReferenceCountingPointer<VertexTrack<N> > RefCountedVertexTrack;
0019 typedef ReferenceCountingPointer<LinearizedTrackState<N> > RefCountedLinearizedTrackState;
0020
0021
0022
0023
0024
0025
0026
0027
0028 SequentialVertexSmoother(const VertexTrackUpdator<N>& vtu,
0029 const VertexSmoothedChiSquaredEstimator<N>& vse,
0030 const TrackToTrackCovCalculator<N>& covCalc);
0031
0032 ~SequentialVertexSmoother() override;
0033
0034
0035
0036
0037 SequentialVertexSmoother(const SequentialVertexSmoother<N>& smoother);
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049 CachingVertex<N> smooth(const CachingVertex<N>& vertex) const override;
0050
0051
0052
0053
0054 const VertexTrackUpdator<N>* vertexTrackUpdator() const { return theVertexTrackUpdator; }
0055 const VertexSmoothedChiSquaredEstimator<N>* vertexSmoothedChiSquaredEstimator() const {
0056 return theVertexSmoothedChiSquaredEstimator;
0057 }
0058 const TrackToTrackCovCalculator<N>* trackToTrackCovCalculator() const { return theTrackToTrackCovCalculator; }
0059
0060
0061
0062
0063 SequentialVertexSmoother<N>* clone() const override { return new SequentialVertexSmoother(*this); }
0064
0065 private:
0066 VertexTrackUpdator<N>* theVertexTrackUpdator;
0067 VertexSmoothedChiSquaredEstimator<N>* theVertexSmoothedChiSquaredEstimator;
0068 TrackToTrackCovCalculator<N>* theTrackToTrackCovCalculator;
0069 };
0070
0071 #endif