File indexing completed on 2024-04-06 12:31:31
0001
0002
0003 #include "DataFormats/GsfTrackReco/interface/GsfTrack.h"
0004 #include "DataFormats/GsfTrackReco/interface/GsfTrackFwd.h"
0005
0006 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
0007 #include "MagneticField/Engine/interface/MagneticField.h"
0008 #include "TrackingTools/GsfTools/interface/MultiTrajectoryStateTransform.h"
0009 #include "TrackingTools/GsfTracking/interface/GsfMultiStateUpdator.h"
0010 #include "TrackingTools/GsfTracking/interface/GsfChi2MeasurementEstimator.h"
0011 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
0012 #include "DataFormats/VertexReco/interface/Vertex.h"
0013 #include "RecoTracker/TransientTrackingRecHit/interface/TRecHit2DPosConstraint.h"
0014 #include "TrackingTools/GsfTools/interface/GsfPropagatorAdapter.h"
0015 #include "TrackingTools/PatternTools/interface/TransverseImpactPointExtrapolator.h"
0016
0017 #include <memory>
0018 class TrackerGeometry;
0019 class MagneticField;
0020 class GsfPropagatorAdapter;
0021 class TransverseImpactPointExtrapolator;
0022
0023 class GsfConstraintAtVertex {
0024 public:
0025 explicit GsfConstraintAtVertex(const TrackerGeometry* geometry, const MagneticField* magField);
0026
0027
0028 TrajectoryStateOnSurface constrainAtBeamSpot(const reco::GsfTrack&, const reco::BeamSpot&) const;
0029
0030 TrajectoryStateOnSurface constrainAtVertex(const reco::GsfTrack&, const reco::Vertex&) const;
0031
0032 TrajectoryStateOnSurface constrainAtPoint(const reco::GsfTrack&,
0033 const GlobalPoint& globalPosition,
0034 const GlobalError& globalError) const;
0035
0036 private:
0037 MultiTrajectoryStateTransform multiStateTransformer_;
0038 GsfMultiStateUpdator gsfUpdator_;
0039 const TrackerGeometry* geometry_;
0040 const MagneticField* magField_;
0041 GsfPropagatorAdapter gsfPropagator_;
0042 TransverseImpactPointExtrapolator tipExtrapolator_;
0043 };