File indexing completed on 2024-04-06 12:31:41
0001 #ifndef TrackReco_BasicTransientTrack_h
0002 #define TrackReco_BasicTransientTrack_h
0003
0004
0005
0006
0007
0008 #include "TrackingTools/TrajectoryState/interface/ProxyBase11.h"
0009
0010 #include "DataFormats/TrackReco/interface/TrackFwd.h"
0011 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateOnSurface.h"
0012 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateClosestToPoint.h"
0013 #include "FWCore/Framework/interface/ESHandle.h"
0014 #include "Geometry/CommonDetUnit/interface/GlobalTrackingGeometry.h"
0015 #include "DataFormats/BeamSpot/interface/BeamSpot.h"
0016 #include "TrackingTools/TrajectoryState/interface/TrajectoryStateClosestToBeamLine.h"
0017 #include "DataFormats/Candidate/interface/CandidateFwd.h"
0018
0019 namespace reco {
0020
0021 class BasicTransientTrack {
0022 public:
0023 using BTT = BasicTransientTrack;
0024 using Proxy = ProxyBase11<BTT>;
0025
0026 public:
0027 virtual ~BasicTransientTrack() {}
0028
0029 virtual void setTrackingGeometry(const edm::ESHandle<GlobalTrackingGeometry>& tg) = 0;
0030
0031 virtual void setBeamSpot(const reco::BeamSpot& beamSpot) = 0;
0032
0033 virtual FreeTrajectoryState initialFreeState() const = 0;
0034
0035 virtual TrajectoryStateOnSurface outermostMeasurementState() const = 0;
0036
0037 virtual TrajectoryStateOnSurface innermostMeasurementState() const = 0;
0038
0039 virtual TrajectoryStateClosestToPoint trajectoryStateClosestToPoint(const GlobalPoint& point) const = 0;
0040
0041 virtual TrajectoryStateOnSurface stateOnSurface(const GlobalPoint& point) const = 0;
0042
0043 virtual TrajectoryStateClosestToPoint impactPointTSCP() const = 0;
0044
0045 virtual TrajectoryStateOnSurface impactPointState() const = 0;
0046 virtual bool impactPointStateAvailable() const = 0;
0047
0048 virtual TrackBaseRef trackBaseRef() const = 0;
0049
0050 virtual TrackCharge charge() const = 0;
0051
0052 virtual CandidatePtr candidate() const { return reco::CandidatePtr(); }
0053
0054 virtual double timeExt() const = 0;
0055 virtual double dtErrorExt() const = 0;
0056
0057
0058
0059
0060 virtual const MagneticField* field() const = 0;
0061
0062 virtual const Track& track() const = 0;
0063
0064 virtual TrajectoryStateClosestToBeamLine stateAtBeamLine() const = 0;
0065 };
0066
0067 }
0068
0069 #endif