Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:31:31

0001 /** Updates a GsfTrack with a virtual hit representing a vertex constraint */
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   /// (multi)TSOS after including the beamspot
0028   TrajectoryStateOnSurface constrainAtBeamSpot(const reco::GsfTrack&, const reco::BeamSpot&) const;
0029   /// (multi)TSOS after include a vertex
0030   TrajectoryStateOnSurface constrainAtVertex(const reco::GsfTrack&, const reco::Vertex&) const;
0031   /// (multi)TSOS after including a point with covariance matrix
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 };