|
ATLAS Offline Software
|
Go to the documentation of this file.
10 #include "GaudiKernel/MsgStream.h"
18 if (std::abs(
denom) < 0.00001)
denom = 0.00001;
19 double u = (planeNormal.dot(planePos -
pos)) / (
denom);
32 double radiusCylinder)
const {
33 double sinThsqinv = 1. /
dir.perp2();
34 double stepLength = (-
pos.x() *
dir.x() -
pos.y() *
dir.y()) * sinThsqinv;
35 double deltaRSq = (radiusCylinder * radiusCylinder -
pos.perp2()) * sinThsqinv + stepLength * stepLength;
36 if (deltaRSq > 0.) stepLength += std::sqrt(deltaRSq);
38 return pos +
dir * stepLength;
43 double cosAngle = dirLine.dot(
dir);
44 double stepLength = (posLine -
pos).
dot(
dir - dirLine * cosAngle) / (1. - cosAngle * cosAngle);
45 return pos + stepLength *
dir;
71 log << MSG::WARNING <<
"propagation failed, unkown surface type" <<
endmsg;
Amg::Vector3D propagateToPerigee(const Amg::Vector3D &pos, const Amg::Vector3D &dir) const
Propagator track parameters to the perigee.
Amg::Vector3D propagate(const Amg::Vector3D &pos, const Amg::Vector3D &dir, const MuonCalibSurface &surf) const
Propagator track parameters to a plane paralel to the xy plane.
singleton-like access to IMessageSvc via open function and helper
@ u
Enums for curvilinear frames.
IMessageSvc * getMessageSvc(bool quiet=false)
Amg::Vector3D propagateToPlane(const Amg::Vector3D &pos, const Amg::Vector3D &dir, const Amg::Vector3D &planePos, const Amg::Vector3D &planeNormal) const
Propagator track parameters to a plane.
Amg::Vector3D propagateToStraightLine(const Amg::Vector3D &pos, const Amg::Vector3D &dir, const Amg::Vector3D &posLine, const Amg::Vector3D &dirLine) const
Propagator track parameters to a straight line.
Amg::Vector3D propagateToCylinder(const Amg::Vector3D &pos, const Amg::Vector3D &dir, double radiusCylinder) const
Propagator track parameters to a cylinder paralel to the z-axis, centered at (0.,0....
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.
def dot(G, fn, nodesToHighlight=[])
Eigen::Matrix< double, 3, 1 > Vector3D