Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2021-07-28 03:10:23

0001 #ifndef TrackReco_BasicTransientTrack_h
0002 #define TrackReco_BasicTransientTrack_h
0003 
0004 /**
0005  * Abstract Base class for reference counted TransientTrack
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     //     virtual bool operator== (const TransientTrack & a) const = 0;
0058     //     virtual bool operator< (const TransientTrack & a) const = 0;
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 }  // namespace reco
0068 
0069 #endif