CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
TransientTrackFromFTS.cc
Go to the documentation of this file.
7 // #include <iostream>
9 
10 using namespace reco;
11 
13  : hasTime(false),
14  timeExt_(0.),
15  dtErrorExt_(0.),
16  theField(nullptr),
17  initialTSOSAvailable(false),
18  initialTSCPAvailable(false),
19  trackAvailable(false),
20  blStateAvailable(false) {}
21 
23  : initialFTS(fts),
24  hasTime(false),
25  timeExt_(0.),
26  dtErrorExt_(0.),
27  theField(&(initialFTS.parameters().magneticField())),
28  initialTSOSAvailable(false),
29  initialTSCPAvailable(false),
30  trackAvailable(false),
31  blStateAvailable(false) {}
32 
33 TransientTrackFromFTS::TransientTrackFromFTS(const FreeTrajectoryState& fts, const double time, const double dtime)
34  : initialFTS(fts),
35  hasTime(true),
36  timeExt_(time),
37  dtErrorExt_(dtime),
38  theField(&(initialFTS.parameters().magneticField())),
39  initialTSOSAvailable(false),
40  initialTSCPAvailable(false),
41  trackAvailable(false),
42  blStateAvailable(false) {}
43 
46  : initialFTS(fts),
47  hasTime(false),
48  timeExt_(0.),
49  dtErrorExt_(0.),
50  theField(&(initialFTS.parameters().magneticField())),
51  initialTSOSAvailable(false),
52  initialTSCPAvailable(false),
53  trackAvailable(false),
54  blStateAvailable(false),
55  theTrackingGeometry(tg) {}
56 
58  const double time,
59  const double dtime,
61  : initialFTS(fts),
62  hasTime(true),
63  timeExt_(time),
64  dtErrorExt_(dtime),
65  theField(&(initialFTS.parameters().magneticField())),
66  initialTSOSAvailable(false),
67  initialTSCPAvailable(false),
68  trackAvailable(false),
69  blStateAvailable(false),
70  theTrackingGeometry(tg) {}
71 
73  : initialFTS(tt.initialFreeState()),
74  hasTime(tt.hasTime),
75  timeExt_(tt.timeExt_),
76  dtErrorExt_(tt.dtErrorExt_),
77  theField(tt.field()),
78  initialTSOSAvailable(false),
79  initialTSCPAvailable(false),
80  trackAvailable(false) {
81  if (tt.initialTSOSAvailable) {
83  initialTSOSAvailable = true;
84  }
85  if (tt.initialTSCPAvailable) {
87  initialTSCPAvailable = true;
88  }
89 }
90 
93 }
94 
97  blStateAvailable = false;
98 }
99 
103  return initialTSOS;
104 }
105 
109  initialTSCPAvailable = true;
110  }
111  return initialTSCP;
112 }
113 
115  throw cms::Exception("LogicError") << "TransientTrack built from a FreeTrajectoryState (TransientTrackFromFTS) can "
116  "not have an outermostMeasurementState";
117 }
118 
120  throw cms::Exception("LogicError") << "TransientTrack built from a FreeTrajectoryState (TransientTrackFromFTS) can "
121  "not have an innermostMeasurementState";
122 }
123 
127  initialTSOSAvailable = true;
128 }
129 
132  return tipe.extrapolate(initialFTS, point);
133 }
134 
136  if UNLIKELY (!trackAvailable) {
138  math::XYZPoint pos(v.x(), v.y(), v.z());
140  math::XYZVector mom(p.x(), p.y(), p.z());
141 
142  theTrack = Track(0., 0., pos, mom, initialFTS.charge(), initialFTS.curvilinearError());
143  trackAvailable = true;
144  }
145  return theTrack;
146 }
147 
149  if UNLIKELY (!blStateAvailable) {
150  TSCBLBuilderNoMaterial blsBuilder;
152  blStateAvailable = true;
153  }
155 }
const Track & track() const override
TrajectoryStateClosestToBeamLine stateAtBeamLine() const override
TrajectoryStateOnSurface initialTSOS
tuple magneticField
TrackCharge charge() const
const CurvilinearTrajectoryError & curvilinearError() const
void setTrackingGeometry(const edm::ESHandle< GlobalTrackingGeometry > &) override
const MagneticField * theField
TrajectoryStateClosestToPoint impactPointTSCP() const override
TrajectoryStateOnSurface innermostMeasurementState() const override
TrajectoryStateClosestToPoint initialTSCP
edm::ESHandle< GlobalTrackingGeometry > theTrackingGeometry
TrajectoryStateOnSurface stateOnSurface(const GlobalPoint &point) const override
GlobalVector momentum() const
TrajectoryStateOnSurface outermostMeasurementState() const override
ROOT::Math::DisplacementVector3D< ROOT::Math::Cartesian3D< float >, ROOT::Math::GlobalCoordinateSystemTag > GlobalVector
vector in glovbal coordinate system
Definition: Vector3D.h:28
TrajectoryStateOnSurface impactPointState() const override
void setBeamSpot(const reco::BeamSpot &beamSpot) override
GlobalPoint position() const
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
ROOT::Math::PositionVector3D< ROOT::Math::Cartesian3D< float >, ROOT::Math::GlobalCoordinateSystemTag > GlobalPoint
point in global coordinate system
Definition: Point3D.h:18
TrajectoryStateOnSurface extrapolate(const FreeTrajectoryState &fts, const GlobalPoint &vtx) const
extrapolation with default (=geometrical) propagator
#define UNLIKELY(x)
Definition: Likely.h:21
FreeTrajectoryState initialFreeState(const reco::Track &tk, const MagneticField *field, bool withErr=true)
TrajectoryStateClosestToBeamLine trajectoryStateClosestToBeamLine
*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