82 {
84 std::cout << "Muon::SortTSOSs: state 1 without parameters " << std::endl;
85 return false;
86 }
88 std::cout << "Muon::SortTSOSs: state 2 without parameters " << std::endl;
89 return true;
90 }
91
92
94 Identifier id1 = meas1 ?
m_helperSvc->getIdentifier(*meas1) : Identifier();
95
97 Identifier
id2 = meas2 ?
m_helperSvc->getIdentifier(*meas2) : Identifier();
98
101
106 }
107
108
113 double dist = (pos2 - pos1).
dot(trackDir);
114
115 if (std::abs(dist) < 1e-5) {
116
117 if (okId1 && !okId2) return true;
118 if (!okId1 && okId2) return false;
119
120 if (!okId1 && !okId2) return false;
121
124
125 if (measPhi1 && !measPhi2) return true;
126 if (!measPhi1 && measPhi2) return false;
127
128
129 double inOrOut = (pos1 + pos2).
dot(trackDir);
130 if (inOrOut >= 0.0) {
132 } else {
134 }
135
136
137 return false;
138 }
139 return dist > 0.;
140 }
bool is_valid() const
Check if id is in a valid state.
const Amg::Vector3D & momentum() const
Access method for the momentum.
const Amg::Vector3D & position() const
Access method for the position.
const MeasurementBase * measurementOnTrack() const
returns MeasurementBase const overload
const TrackParameters * trackParameters() const
return ptr to trackparameters const overload
bool type(const TrackStateOnSurfaceType type) const
Use this method to find out if the TSoS is of a certain type: i.e.
@ CaloDeposit
This TSOS contains a CaloEnergy object.
Eigen::Matrix< double, 3, 1 > Vector3D
dot(G, fn, nodesToHighlight=[])