17#include "GaudiKernel/MsgStream.h"
44 m_rio.setElement(RIO);
47 const Trk::StraightLineSurface& slsf =
48 static_cast<const Trk::StraightLineSurface&>(detElSurf);
50 slsf.localToGlobal(m_localParams, predictedTrackDirection, predictedLocZ);
57 m_localAngle = std::atan2(loc_gDirection.y(), loc_gDirection.x());
193 throw GaudiException(
"Dynamic_cast to StraightLineSurface failed!",
194 "TRT_DriftCircleOnTrack::setGlobalPosition()",
195 StatusCode::FAILURE);
214 std::string name(
"TRT_DriftCircleOnTrack: ");
218 sl <<name<<
"\t driftradius = ("
220 sl <<name<<
"\t has Error Matrix: "<<
endmsg;
227 sl <<
"TRT_DriftCircleOnTrack {"<<std::endl;
231 sl <<
"Global position (x,y,z) = (";
238 << (
highLevel() ?
" with TR flag ON":
" with TR flag OFF")<<std::endl;
ElementLink< InDet::TRT_DriftCircleContainer > ElementLinkToIDCTRT_DriftCircleContainer
This is a "hash" representation of an Identifier.
Virtual base class of TRT readout elements.
Represents 'corrected' measurements from the TRT (for example, corrected for wire sag).
bool highLevel() const
returns true if the high level threshold was passed
TRT_DriftCircleOnTrack & operator=(const TRT_DriftCircleOnTrack &)
Assignment operator.
float m_localAngle
local angle to be written out
virtual const InDetDD::TRT_BaseElement * detectorElement() const override final
returns the detector element, assoicated with the PRD of this class
Trk::DriftCircleStatus m_status
the information how the (possibly signed) drift radius should be understood
float m_positionAlongWire
local position along wire to be written out
Trk::DriftCircleSide side() const
returns the side on which the drift radius is.
TRT_DriftCircleOnTrack()
Default constructor - needed for POOL.
void setGlobalPositionHelper()
@calculate and set the global coord of this hit.
ElementLinkToIDCTRT_DriftCircleContainer m_rio
const InDetDD::TRT_BaseElement * m_detEl
corresponding detector element
virtual MsgStream & dump(MsgStream &out) const override final
returns some information about this RIO_OnTrack.
IdentifierHash m_idDE
the IdentifierHash - probably not used
double timeOverThreshold() const
returns time over threshold in ns for valid digits; zero otherwise
virtual IdentifierHash idDE() const override final
returns the DE hashID
Trk::DriftCircleStatus status() const
returns the status of the drift radius calibration.
virtual const Amg::Vector3D & globalPosition() const override final
return the global position of this RIO_OnTrack
double m_timeOverThreshold
the time over threshold in nsec
virtual const Trk::Surface & associatedSurface() const override final
returns the surface for the local to global transformation
virtual ~TRT_DriftCircleOnTrack()
Destructor.
bool m_highLevel
the high level flag
virtual void setValues(const Trk::TrkDetElementBase *detEl, const Trk::PrepRawData *prd) override final
ONLY for use in custom convertor Allows the custom convertor to reset values when persistying/reading...
Amg::Vector3D m_globalPosition
global position to be cached
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
const Amg::MatrixX & localCovariance() const
Interface method to get the localError.
LocalParameters m_localParams
Identifier identify() const
return the identifier
virtual MsgStream & dump(MsgStream &out) const override
returns the some information about this RIO_OnTrack.
RIO_OnTrack & operator=(const RIO_OnTrack &rot)=default
Assignment operator.
RIO_OnTrack(LocalParameters &&locpars, Amg::MatrixX &&loccov, const Identifier &id)
Constructor with parameters and without externalPrediction.
Identifier identify() const
return the identifier -extends MeasurementBase
Class for a StraightLineSurface in the ATLAS detector to describe dirft tube and straw like detectors...
Abstract Base Class for tracking surfaces.
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
virtual constexpr SurfaceType type() const =0
Returns the Surface type to avoid dynamic casts.
This is the base class for all tracking detector elements with read-out relevant information.
Definition of ATLAS Math & Geometry primitives (Amg)
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
DriftCircleSide
Enumerates the 'side' of the wire on which the tracks passed (i.e.
@ RIGHT
the drift radius is positive (see Trk::AtaStraightLine)
@ LEFT
the drift radius is negative (see Trk::AtaStraightLine)
@ NONE
it was not possible to determine the which side of the straw the track passed;
DriftCircleStatus
Enumerates the 'status' of the wire on which the tracks passed (based on the TRT_Side enum,...
@ UNDECIDED
sign of drift radius has not been determined