CMS 3D CMS Logo

TransientTrack.h
Go to the documentation of this file.
1 #ifndef TrackReco_TransientTrack_h
2 #define TrackReco_TransientTrack_h
3 
12 
16 
17 namespace reco {
18 
21 
22  public:
23  TransientTrack() noexcept {}
24 
25  explicit TransientTrack(BasicTransientTrack* btt) noexcept : Base(btt) {}
26 
27  ~TransientTrack() noexcept {}
28 
29  TransientTrack(TransientTrack const& rh) noexcept : Base(rh) {}
30 
31  TransientTrack(TransientTrack&& rh) noexcept : Base(std::move(rh)) {}
32 
35  return *this;
36  }
37 
38  TransientTrack& operator=(TransientTrack const& rh) noexcept {
39  Base::operator=(rh);
40  return *this;
41  }
42 
43  void swap(TransientTrack& rh) noexcept { Base::swap(rh); }
44 
45  TransientTrack(const Track& tk, const MagneticField* field);
46  TransientTrack(const TrackRef& tk, const MagneticField* field);
47  TransientTrack(const CandidatePtr& ptr, const MagneticField* field);
48  TransientTrack(const TrackRef& tk,
49  const MagneticField* field,
50  const edm::ESHandle<GlobalTrackingGeometry>& trackingGeometry);
51 
52  TransientTrack(const Track& tk,
53  const MagneticField* field,
54  const edm::ESHandle<GlobalTrackingGeometry>& trackingGeometry);
55  TransientTrack(const CandidatePtr& ptr,
56  const MagneticField* field,
57  const edm::ESHandle<GlobalTrackingGeometry>& trackingGeometry);
58 
59  TransientTrack(const Track& tk, const double time, const double dtime, const MagneticField* field);
60  TransientTrack(const TrackRef& tk, const double time, const double dtime, const MagneticField* field);
61  TransientTrack(const CandidatePtr& ptr, const double time, const double dtime, const MagneticField* field);
62  TransientTrack(const TrackRef& tk,
63  const double time,
64  const double dtime,
65  const MagneticField* field,
66  const edm::ESHandle<GlobalTrackingGeometry>& trackingGeometry);
67  TransientTrack(const Track& tk,
68  const double time,
69  const double dtime,
70  const MagneticField* field,
71  const edm::ESHandle<GlobalTrackingGeometry>& trackingGeometry);
72  TransientTrack(const CandidatePtr& ptr,
73  const double time,
74  const double dtime,
75  const MagneticField* field,
76  const edm::ESHandle<GlobalTrackingGeometry>& trackingGeometry);
77 
78  void setTrackingGeometry(const edm::ESHandle<GlobalTrackingGeometry>& tg) { sharedData().setTrackingGeometry(tg); }
79 
80  void setBeamSpot(const reco::BeamSpot& beamSpot) { sharedData().setBeamSpot(beamSpot); }
81 
82  FreeTrajectoryState initialFreeState() const { return data().initialFreeState(); }
83 
84  TrajectoryStateOnSurface outermostMeasurementState() const { return data().outermostMeasurementState(); }
85 
86  TrajectoryStateOnSurface innermostMeasurementState() const { return data().innermostMeasurementState(); }
87 
89  return data().trajectoryStateClosestToPoint(point);
90  }
91 
92  TrajectoryStateOnSurface stateOnSurface(const GlobalPoint& point) const { return data().stateOnSurface(point); }
93 
94  TrajectoryStateClosestToPoint impactPointTSCP() const { return data().impactPointTSCP(); }
95 
96  TrajectoryStateOnSurface impactPointState() const { return data().impactPointState(); }
97 
98  bool impactPointStateAvailable() const { return data().impactPointStateAvailable(); }
99 
100  TrackCharge charge() const { return data().charge(); }
101 
102  bool operator==(const TransientTrack& other) const { return &(data()) == &(other.data()); }
103  // {return (a.persistentTrackRef()==tkr_);}
104 
105  bool operator<(const TransientTrack& other) const { return &(data()) < &(other.data()); }
106  // {return (initialFTS.momentum().z()<a.initialFreeState().momentum().z());}
107 
108  const MagneticField* field() const { return data().field(); }
109 
110  const BasicTransientTrack* basicTransientTrack() const { return &(data()); }
111 
112  double timeExt() const { return data().timeExt(); }
113  double dtErrorExt() const { return data().dtErrorExt(); }
114 
115  const Track& track() const { return data().track(); }
116 
117  TrackBaseRef trackBaseRef() const { return data().trackBaseRef(); }
118 
119  TrajectoryStateClosestToBeamLine stateAtBeamLine() const { return data().stateAtBeamLine(); }
120 
121  // Methods forwarded to original track.
122 
128  TrackingRecHitRef recHit(size_t i) const { return track().recHit(i); }
130  size_t recHitsSize() const { return track().recHitsSize(); }
131  // hit pattern
132  const HitPattern& hitPattern() const { return track().hitPattern(); }
134  unsigned short numberOfValidHits() const { return track().hitPattern().numberOfValidHits(); }
138  double chi2() const { return track().chi2(); }
140  double ndof() const { return track().ndof(); }
142  double normalizedChi2() const { return track().chi2() / track().ndof(); }
143 
145  bool isValid() const { return Base::isValid(); }
146  };
147 
148 } // namespace reco
149 
150 #endif
const Track & track() const
int numberOfLostHits(HitCategory category) const
Definition: HitPattern.h:891
int numberOfValidHits() const
Definition: HitPattern.h:817
size_t recHitsSize() const
Get number of RecHits. (Warning, this includes invalid hits, which are not physical hits)...
Definition: Track.h:97
TransientTrack & operator=(TransientTrack &&rh) noexcept
TrackBaseRef trackBaseRef() const
bool operator<(const TransientTrack &other) const
TransientTrack(BasicTransientTrack *btt) noexcept
void setBeamSpot(const reco::BeamSpot &beamSpot)
double timeExt() const
trackingRecHit_iterator recHitsEnd() const
last iterator to RecHits
const HitPattern & hitPattern() const
TransientTrack() noexcept
trackingRecHit_iterator recHitsBegin() const
first iterator to RecHits
ProxyBase11 & operator=(std::shared_ptr< U > p)
Definition: ProxyBase11.h:35
unsigned short numberOfLostHits() const
number of hits lost
TrajectoryStateClosestToBeamLine stateAtBeamLine() const
TrajectoryStateClosestToPoint trajectoryStateClosestToPoint(const GlobalPoint &point) const
double chi2() const
chi-squared of the fit
int TrackCharge
Definition: TrackCharge.h:4
double ndof() const
number of degrees of freedom of the fit
Definition: TrackBase.h:590
TransientTrack & operator=(TransientTrack const &rh) noexcept
FreeTrajectoryState initialFreeState() const
TrajectoryStateOnSurface outermostMeasurementState() const
TrajectoryStateClosestToPoint impactPointTSCP() const
const MagneticField * field() const
void swap(TransientTrack &rh) noexcept
TransientTrack(TransientTrack &&rh) noexcept
TrackingRecHitRef recHit(size_t i) const
get n-th recHit
size_t recHitsSize() const
number of RecHits
bool impactPointStateAvailable() const
trackingRecHit_iterator recHitsEnd() const
Iterator to last hit on the track.
Definition: Track.h:91
TrajectoryStateOnSurface innermostMeasurementState() const
void swap(ProxyBase11 &other) noexcept
Definition: ProxyBase11.h:42
bool isValid() const
Definition: ProxyBase11.h:69
trackingRecHit_iterator recHitsBegin() const
Iterator to first hit on the track.
Definition: Track.h:88
TrackCharge charge() const
const T & data() const
Definition: ProxyBase11.h:51
~TransientTrack() noexcept
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:504
double dtErrorExt() const
T & sharedData()
Definition: ProxyBase11.h:64
BasicTransientTrack::Proxy Base
double chi2() const
chi-squared of the fit
Definition: TrackBase.h:587
bool operator==(const TransientTrack &other) const
double dtime()
TrajectoryStateOnSurface stateOnSurface(const GlobalPoint &point) const
unsigned short numberOfValidHits() const
number of hits found
TrackingRecHitRef recHit(size_t i) const
Get i-th hit on the track.
Definition: Track.h:94
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< float >, ROOT::Math::GlobalCoordinateSystemTag > GlobalPoint
point in global coordinate system
Definition: Point3D.h:18
double ndof() const
number of degrees of freedom of the fit
double normalizedChi2() const
chi-squared divided by n.d.o.f.
fixed size matrix
void setTrackingGeometry(const edm::ESHandle< GlobalTrackingGeometry > &tg)
TransientTrack(TransientTrack const &rh) noexcept
bool isValid() const
Make the ReferenceCountingProxy method to check validity public.
const BasicTransientTrack * basicTransientTrack() const
def move(src, dest)
Definition: eostools.py:511
TrajectoryStateOnSurface impactPointState() const
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point
Definition: invegas.h:5