File indexing completed on 2024-04-06 12:29:13
0001 #ifndef TrackKinematicStatePropagator_H
0002 #define TrackKinematicStatePropagator_H
0003
0004 #include "RecoVertex/KinematicFitPrimitives/interface/KinematicStatePropagator.h"
0005 #include "DataFormats/GeometryVector/interface/GlobalTag.h"
0006 #include "DataFormats/GeometryVector/interface/Point3DBase.h"
0007 #include "DataFormats/GeometryVector/interface/Vector3DBase.h"
0008 #include "TrackingTools/TrajectoryParametrization/interface/GlobalTrajectoryParameters.h"
0009 #include "TrackingTools/GeomPropagators/interface/HelixBarrelPlaneCrossingByCircle.h"
0010 #include "DataFormats/GeometrySurface/interface/BoundPlane.h"
0011
0012
0013
0014
0015
0016
0017 class TrackKinematicStatePropagator final : public KinematicStatePropagator {
0018 public:
0019 TrackKinematicStatePropagator() {}
0020
0021 ~TrackKinematicStatePropagator() override {}
0022
0023
0024
0025
0026
0027 KinematicState propagateToTheTransversePCA(const KinematicState& state,
0028 const GlobalPoint& referencePoint) const override;
0029
0030 bool willPropagateToTheTransversePCA(const KinematicState& state, const GlobalPoint& point) const override;
0031
0032
0033
0034
0035
0036 KinematicStatePropagator* clone() const override { return new TrackKinematicStatePropagator(*this); }
0037
0038 private:
0039
0040
0041
0042
0043 virtual KinematicState propagateToTheTransversePCACharged(const KinematicState& state,
0044 const GlobalPoint& referencePoint) const;
0045
0046 virtual KinematicState propagateToTheTransversePCANeutral(const KinematicState& state,
0047 const GlobalPoint& referencePoint) const;
0048
0049 typedef Point3DBase<double, GlobalTag> GlobalPointDouble;
0050 typedef Vector3DBase<double, GlobalTag> GlobalVectorDouble;
0051 };
0052 #endif