45 declareInterface< ITrigDkfTrackMakerTool >(
this );
52 return StatusCode::SUCCESS;
56 std::vector<Trk::TrkBaseNode*>& vpTrkNodes,
59 if(track.measurementsOnTrack()->size()==0)
61 ATH_MSG_ERROR(
"Cannot create a DKF track -- Trk::Track has no hits");
65 vpTrkNodes.reserve(track.measurementsOnTrack()->size());
66 for (
auto tMOT = track.measurementsOnTrack()->begin(); tMOT != track.measurementsOnTrack()->end(); ++tMOT) {
68 constexpr double radLength=0.022;
69 double C[3],N[3],M[3][3];
77 mx=rSurf.
transform().rotation().block(0,0,3,1);
78 my=rSurf.
transform().rotation().block(0,1,3,1);
79 mz=rSurf.
transform().rotation().block(0,2,3,1);
80 for(
int i=0;i<3;i++) {
81 M[i][0]=mx[i];M[i][1]=my[i];M[i][2]=mz[i];
86 if (siCLOT==
nullptr) {
95 Identifier id = (*tMOT)->associatedSurface().associatedDetectorElement()->identify();
99 ((*tMOT)->associatedSurface().associatedDetectorElement());
123 ATH_MSG_WARNING(
"Identifier is SCT but does not match endcap or barrel shape");
134 ATH_MSG_DEBUG(vpTrkNodes.size()<<
" filtering nodes created");
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
This is an Identifier helper class for the Pixel subdetector.
This is an Identifier helper class for the SCT subdetector.
const ServiceHandle< StoreGateSvc > & detStore() const
virtual DetectorShape shape() const
Shape of element.
Class to hold geometrical description of a silicon detector element.
virtual const SiDetectorDesign & design() const override final
access to the local description (inline):
RIO_OnTrack base class for Silicon detector in the InnerDetector.
Bounds for a annulus-like, planar Surface.
double waferCentreR() const
This method returns the R-parameter from design of sensors, which is the radius that the original cen...
virtual const Trk::PrepRawData * prepRawData() const =0
returns the PrepRawData (also known as RIO) object to which this RIO_OnTrack is associated.
Abstract base class for surface bounds to be specified.
Abstract Base Class for tracking surfaces.
virtual const Amg::Vector3D & normal() const
Returns the normal vector of the Surface (i.e.
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
virtual const SurfaceBounds & bounds() const =0
Surface Bounds method.
const Amg::Vector3D & center() const
Returns the center position of the Surface.
Bounds for a trapezoidal, planar Surface.
double halflengthY() const
This method returns the halflength in Y (second coordinate of local surface frame)
double minHalflengthX() const
This method returns the minimal halflength in X (first coordinate of local surface frame)
double maxHalflengthX() const
This method returns the maximal halflength in X (first coordinate of local surface frame)
Eigen::Matrix< double, 3, 1 > Vector3D