ATLAS Offline Software
Loading...
Searching...
No Matches
ActsTrk::TrackStatePrinterTool Class Reference

#include <TrackStatePrinterTool.h>

Inheritance diagram for ActsTrk::TrackStatePrinterTool:
Collaboration diagram for ActsTrk::TrackStatePrinterTool:

Public Types

using MeasurementInfo

Public Member Functions

virtual ~TrackStatePrinterTool ()=default
virtual StatusCode initialize () override
 =========================================================================
void printMeasurements (const EventContext &ctx, const std::vector< const xAOD::UncalibratedMeasurementContainer * > &clusterContainers, const std::vector< size_t > &offsets) const
void printSeed (const Acts::GeometryContext &tgContext, const ActsTrk::Seed &seed, const Acts::BoundTrackParameters &initialParameters, const detail::MeasurementIndex &measurementIndexer, unsigned int iseed, bool isKF) const
template<typename track_container_t>
void printTrack (const Acts::GeometryContext &tgContext, const track_container_t &tracks, const typename track_container_t::TrackProxy &track, const detail::MeasurementIndex &measurementIndexer, bool rejected=false) const
template<typename track_state_proxy_t>
bool printTrackState (const Acts::GeometryContext &tgContext, const track_state_proxy_t &state, const detail::MeasurementIndex &measurementIndexer, bool useFiltered=false, bool newLine=true) const
 AthAlgTool (const std::string &type, const std::string &name, const IInterface *parent)
 Constructor with parameters:
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

template<class T>
using small_vector = boost::container::small_vector<T, N_SP_PER_MEAS>
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

std::vector< std::vector< small_vector< const xAOD::SpacePoint * > > > addSpacePoints (const EventContext &ctx, const std::vector< const xAOD::UncalibratedMeasurementContainer * > &clusterContainers, const std::vector< size_t > &offset) const
void printMeasurementAssociatedSpacePoint (const Acts::GeometryContext &tgContext, const xAOD::UncalibratedMeasurement *measurement, const std::vector< small_vector< const xAOD::SpacePoint * > > &measToSp, size_t offset) const
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Static Private Member Functions

static void printParameters (const Acts::Surface &surface, const Acts::GeometryContext &tgContext, const Acts::BoundVector &bound)
static std::string actsSurfaceName (const Acts::Surface &surface)
static std::string trackStateName (Acts::ConstTrackStateTypeMap trackStateType)
 ========================================================================= file-local static functions and static TrackStatePrinter member functions.

Private Attributes

SG::ReadHandleKeyArray< xAOD::SpacePointContainerm_spacePointKey {this, "InputSpacePoints", {}, "Input Space Points for debugging"}
ServiceHandle< ActsTrk::ITrackingGeometrySvcm_trackingGeometrySvc {this, "TrackingGeometrySvc", "ActsTrackingGeometrySvc"}
detail::xAODUncalibMeasSurfAcc m_surfAcc {}
ActsTrk::ContextUtility m_ctxProvider {this}
 Context provider for geometry, magnetic field and calibration contexts.
Gaudi::Property< bool > m_compareMeasurementTransforms {this, "compareMeasurementTransforms", false, "compare measurement coordinates transformed with Athena or ACTS"}
Gaudi::Property< bool > m_printFilteredStates {this, "printFilteredStates", false, "print track states during filtering"}
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default).
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default).
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Static Private Attributes

static constexpr unsigned int N_SP_PER_MEAS = 2

Detailed Description

Definition at line 45 of file TrackStatePrinterTool.h.

Member Typedef Documentation

◆ MeasurementInfo

Initial value:
std::tuple<size_t,
std::vector<const xAOD::SpacePoint *>>
UncalibratedMeasurement_v1 UncalibratedMeasurement
Define the version of the uncalibrated measurement class.

Definition at line 84 of file TrackStatePrinterTool.h.

◆ small_vector

template<class T>
using ActsTrk::TrackStatePrinterTool::small_vector = boost::container::small_vector<T, N_SP_PER_MEAS>
private

Definition at line 107 of file TrackStatePrinterTool.h.

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ ~TrackStatePrinterTool()

virtual ActsTrk::TrackStatePrinterTool::~TrackStatePrinterTool ( )
virtualdefault

Member Function Documentation

◆ actsSurfaceName()

std::string ActsTrk::TrackStatePrinterTool::actsSurfaceName ( const Acts::Surface & surface)
staticprivate

Definition at line 66 of file TrackStatePrinterTool.cxx.

67 {
68 const auto type = std::min(surface.type(), Acts::Surface::SurfaceType::Other);
69 std::string name{Acts::Surface::s_surfaceTypeNames[type]};
70 static const std::map<Acts::SurfaceBounds::BoundsType, const char *> boundsNames{{
71 {Acts::SurfaceBounds::BoundsType::eCone, "Cone"},
72 {Acts::SurfaceBounds::BoundsType::eCylinder, "Cylinder"},
73 {Acts::SurfaceBounds::BoundsType::eDiamond, "Diamond"},
74 {Acts::SurfaceBounds::BoundsType::eDisc, "Disc"},
75 {Acts::SurfaceBounds::BoundsType::eEllipse, "Ellipse"},
76 {Acts::SurfaceBounds::BoundsType::eLine, "Line"},
77 {Acts::SurfaceBounds::BoundsType::eRectangle, "Rectangle"},
78 {Acts::SurfaceBounds::BoundsType::eTrapezoid, "Trapezoid"},
79 {Acts::SurfaceBounds::BoundsType::eTriangle, "Triangle"},
80 {Acts::SurfaceBounds::BoundsType::eDiscTrapezoid, "DiscTrapezoid"},
81 {Acts::SurfaceBounds::BoundsType::eConvexPolygon, "ConvexPolygon"},
82 {Acts::SurfaceBounds::BoundsType::eAnnulus, "Annulus"},
83 {Acts::SurfaceBounds::BoundsType::eBoundless, "Boundless"},
84 {Acts::SurfaceBounds::BoundsType::eOther, "Other"},
85 }};
86 if (auto it = boundsNames.find(surface.bounds().type());
87 it != boundsNames.end() && it->second != name)
88 {
89 name += ' ';
90 name += it->second;
91 }
92 return name;
93 }

◆ addSpacePoints()

std::vector< std::vector< TrackStatePrinterTool::small_vector< const xAOD::SpacePoint * > > > ActsTrk::TrackStatePrinterTool::addSpacePoints ( const EventContext & ctx,
const std::vector< const xAOD::UncalibratedMeasurementContainer * > & clusterContainers,
const std::vector< size_t > & offset ) const
private

Definition at line 505 of file TrackStatePrinterTool.cxx.

508 {
509 std::vector<std::vector<TrackStatePrinterTool::small_vector<const xAOD::SpacePoint *>>> measToSp{clusterContainers.size()};
510 for (std::size_t icontainer = 0; icontainer < clusterContainers.size(); ++icontainer)
511 {
512 measToSp[icontainer].resize(clusterContainers[icontainer]->size());
513 }
514
515 for (auto &spacePointKey : m_spacePointKey)
516 {
517 ATH_MSG_DEBUG("Retrieving from input SpacePoint collection '" << spacePointKey.key() << "' ...");
518 SG::ReadHandle<xAOD::SpacePointContainer> handle = SG::makeHandle(spacePointKey, ctx);
519 if (!handle.isValid())
520 {
521 ATH_MSG_ERROR("Error retrieving from input SpacePoint collection '" << spacePointKey.key() << "'");
522 continue;
523 }
524 ATH_MSG_DEBUG(" \\__ " << handle->size() << " elements!");
525 for (const auto *sp : *handle)
526 {
527 for (const xAOD::UncalibratedMeasurement *meas : sp->measurements())
528 {
529 if (!meas)
530 continue;
531 for (std::size_t icontainer = 0; icontainer < clusterContainers.size(); ++icontainer)
532 {
533 // This measurement may well be in a different clusterContainer. Skip all but the one we are interested in.
534 if (!(meas && meas->index() < clusterContainers[icontainer]->size() && meas == clusterContainers[icontainer]->at(meas->index())))
535 continue;
536 small_vector<const xAOD::SpacePoint *> &measSp = measToSp[icontainer].at(meas->index());
537 if (!measSp.empty())
538 {
539 ATH_MSG_INFO("Cluster "
540 << (meas->index() + offsets[icontainer])
541 << " used by SpacePoints at ("
542 << sp->globalPosition()[0] << ',' << sp->globalPosition()[1] << ',' << sp->globalPosition()[2]
543 << ") and ("
544 << measSp[0]->globalPosition()[0] << ',' << measSp[0]->globalPosition()[1] << ',' << measSp[0]->globalPosition()[2]
545 << ')');
546 }
547 measSp.push_back(sp);
548 }
549 }
550 }
551 }
552 return measToSp;
553 }
#define ATH_MSG_ERROR(x)
#define ATH_MSG_INFO(x)
#define ATH_MSG_DEBUG(x)
static Double_t sp
size_t size() const
Number of registered mappings.
SG::ReadHandleKeyArray< xAOD::SpacePointContainer > m_spacePointKey
boost::container::small_vector< T, N_SP_PER_MEAS > small_vector
virtual void handle(const Incident &inc)
Handle end of run incidents to save the metadata at that point.
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())

◆ AthAlgTool()

AthAlgTool::AthAlgTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Constructor with parameters:

Definition at line 31 of file AthAlgTool.cxx.

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ initialize()

StatusCode ActsTrk::TrackStatePrinterTool::initialize ( )
overridevirtual

=========================================================================

TrackStatePrinter class method definitions

Definition at line 427 of file TrackStatePrinterTool.cxx.

428 {
429 ATH_MSG_DEBUG("Initializing " << name() << "...");
430 ATH_MSG_DEBUG("Properties Summary:");
433
435 ATH_CHECK(m_ctxProvider.initialize());
436 m_surfAcc = detail::xAODUncalibMeasSurfAcc{m_trackingGeometrySvc.get()};
437 ATH_CHECK(m_spacePointKey.initialize());
438
439 return StatusCode::SUCCESS;
440 }
#define ATH_CHECK
Evaluate an expression and check for errors.
detail::xAODUncalibMeasSurfAcc m_surfAcc
Gaudi::Property< bool > m_printFilteredStates
Gaudi::Property< bool > m_compareMeasurementTransforms
ServiceHandle< ActsTrk::ITrackingGeometrySvc > m_trackingGeometrySvc
ActsTrk::ContextUtility m_ctxProvider
Context provider for geometry, magnetic field and calibration contexts.

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ msg()

MsgStream & AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ printMeasurementAssociatedSpacePoint()

void ActsTrk::TrackStatePrinterTool::printMeasurementAssociatedSpacePoint ( const Acts::GeometryContext & tgContext,
const xAOD::UncalibratedMeasurement * measurement,
const std::vector< small_vector< const xAOD::SpacePoint * > > & measToSp,
size_t offset ) const
private

Definition at line 342 of file TrackStatePrinterTool.cxx.

345 {
346 if (!measurement)
347 return;
348
349 std::cout << std::setw(5) << (measurement->index() + offset) << ' '
350 << std::setw(3) << measurement->numDimensions() << "D ";
351
352 const Acts::Surface *surface_ptr = m_surfAcc.get(measurement);
353 if (!surface_ptr)
354 {
355 std::cout << std::setw(20 + 22 + 20 + 2) << "** no surface for measurement **";
356 }
357 else
358 {
359 std::cout << std::left;
360 std::cout << std::setw(21) << actsSurfaceName(*surface_ptr) << ' '
361 << std::setw(22) << to_string(surface_ptr->geometryId()) << ' ';
362 std::cout << std::setw(20) << atlasSurfaceName(surface_ptr);
363 std::cout << std::right;
364 }
365
366 if (measurement->type() == xAOD::UncalibMeasType::PixelClusterType)
367 {
368 const auto loc = measurement->localPosition<2>().cast<double>();
369 printMeasurement(tgContext, surface_ptr, {loc, loc, -1, -1}, m_compareMeasurementTransforms);
370 }
371 else if (measurement->type() == xAOD::UncalibMeasType::StripClusterType)
372 {
373 if (measurement->index() >= measToSp.size() || measToSp.at(measurement->index()).empty()) {
374 // If we didn't load the SpacePoints, then just print the 1D measurement coordinates.
375 // **TODO** fix bug where measToSp isn't completely filled for ITkActsLargeRadiusPass.
376 // The other entries are empty, so it doesn't really make a difference.
377 printMeasurement(tgContext, surface_ptr,
378 localPositionStrip2D(tgContext, *measurement, surface_ptr, nullptr),
380 ATH_MSG_DEBUG("No SpacePoints for strip measurement " << measurement->index() << " (" << measToSp.size() << " associated SPs)");
381 } else {
382 size_t isp = 0;
383 for (auto *sp : measToSp.at(measurement->index()))
384 {
385 if (isp++)
386 {
387 std::cout << '\n'
388 << std::left
389 << std::setw(76) << to_string("** Spacepoint ", isp, " **")
390 << std::right;
391 }
392 printMeasurement(tgContext, surface_ptr,
393 localPositionStrip2D(tgContext, *measurement, surface_ptr, sp),
395 }
396 }
397 }
398 else if (measurement->type() == xAOD::UncalibMeasType::HGTDClusterType) {
399 const auto loc3D = measurement->localPosition<3>().cast<double>();
400 const std::tuple<Acts::Vector2, Amg::Vector2D, int, int> locTup = {Acts::Vector2{loc3D.head<2>()}, Amg::Vector2D{loc3D.head<2>()}, -1, -1};
401 printMeasurement(tgContext, surface_ptr, locTup, m_compareMeasurementTransforms);
402 }
403 std::cout << '\n';
404 }
static std::string to_string(const std::vector< T > &v)
static std::string actsSurfaceName(const Acts::Surface &surface)
ConstVectorMap< N > localPosition() const
Returns the local position of the measurement.
virtual unsigned int numDimensions() const =0
Returns the number of dimensions of the measurement.
virtual xAOD::UncalibMeasType type() const =0
Returns the type of the measurement type as a simple enumeration.
static std::string atlasSurfaceName(const Acts::Surface *measurement_surface)
static void printMeasurement(const Acts::GeometryContext &tgContext, const Acts::Surface *surface, const std::tuple< Acts::Vector2, Amg::Vector2D, int, int > &locData, bool compareMeasurementTransforms=false)
static std::tuple< Acts::Vector2, Amg::Vector2D, int, int > localPositionStrip2D(const Acts::GeometryContext &tgContext, const xAOD::UncalibratedMeasurement &measurement, const Acts::Surface *surface, const xAOD::SpacePoint *sp)
Eigen::Matrix< double, 2, 1 > Vector2D

◆ printMeasurements()

void ActsTrk::TrackStatePrinterTool::printMeasurements ( const EventContext & ctx,
const std::vector< const xAOD::UncalibratedMeasurementContainer * > & clusterContainers,
const std::vector< size_t > & offsets ) const

Definition at line 482 of file TrackStatePrinterTool.cxx.

484 {
485
486 const Acts::GeometryContext tgContext = m_ctxProvider.getGeometryContext(ctx);
487
488 auto measToSp = addSpacePoints(ctx, clusterContainers, offsets);
489
490 ATH_MSG_INFO("CKF input measurements:");
492
493 for (std::size_t icontainer = 0; icontainer < clusterContainers.size(); ++icontainer)
494 {
495 for (const auto *measurement : *clusterContainers[icontainer])
496 {
497 printMeasurementAssociatedSpacePoint(tgContext, measurement,
498 measToSp[icontainer], offsets[icontainer]);
499 }
500 }
501 std::cout << std::flush;
502 }
void printMeasurementAssociatedSpacePoint(const Acts::GeometryContext &tgContext, const xAOD::UncalibratedMeasurement *measurement, const std::vector< small_vector< const xAOD::SpacePoint * > > &measToSp, size_t offset) const
std::vector< std::vector< small_vector< const xAOD::SpacePoint * > > > addSpacePoints(const EventContext &ctx, const std::vector< const xAOD::UncalibratedMeasurementContainer * > &clusterContainers, const std::vector< size_t > &offset) const
static void printHeader(int type, bool extra=false)

◆ printParameters()

void ActsTrk::TrackStatePrinterTool::printParameters ( const Acts::Surface & surface,
const Acts::GeometryContext & tgContext,
const Acts::BoundVector & bound )
staticprivate

Definition at line 406 of file TrackStatePrinterTool.cxx.

409 {
410 auto p = Acts::transformBoundToFreeParameters(surface, tgContext, bound);
411 std::cout << std::fixed
412 << std::setw(10) << std::setprecision(4) << bound[Acts::eBoundLoc0] << ' '
413 << std::setw(10) << std::setprecision(4) << bound[Acts::eBoundLoc1] << ' '
414 << std::setw(9) << std::setprecision(3) << p.segment<2>(Acts::eFreePos0).norm() << ' '
415 << std::setw(9) << std::setprecision(3) << p[Acts::eFreePos2] << ' '
416 << std::setw(9) << std::setprecision(3) << std::atan2(p[Acts::eFreePos1], p[Acts::eFreePos0]) / Acts::UnitConstants::degree << ' '
417 << std::setw(9) << std::setprecision(5) << std::atanh(p[Acts::eFreePos2] / p.segment<3>(Acts::eFreePos0).norm()) << ' '
418 << std::setw(9) << std::setprecision(3) << p.segment<2>(Acts::eFreeDir0).norm() / p[Acts::eFreeQOverP] << ' '
419 << std::setw(9) << std::setprecision(3) << std::atan2(p[Acts::eFreeDir1], p[Acts::eFreeDir0]) / Acts::UnitConstants::degree << ' '
420 << std::setw(9) << std::setprecision(5) << std::atanh(p[Acts::eFreeDir2])
421 << std::defaultfloat << std::setprecision(-1);
422 }

◆ printSeed()

void ActsTrk::TrackStatePrinterTool::printSeed ( const Acts::GeometryContext & tgContext,
const ActsTrk::Seed & seed,
const Acts::BoundTrackParameters & initialParameters,
const detail::MeasurementIndex & measurementIndexer,
unsigned int iseed,
bool isKF ) const

Definition at line 443 of file TrackStatePrinterTool.cxx.

449 {
450 if (!isKF)
451 printHeader(1);
452
453 std::ostringstream os;
454 size_t nos = 0;
455 for (const auto *sp : seed.sp())
456 {
457 size_t nom = 0;
458 for (const auto *el : sp->measurements())
459 {
460 if (nom > 0)
461 os << '+';
462 else if (nos > 0)
463 os << ',';
464 ++nos;
465 ++nom;
466 os << measurementIndexer.index(*el);
467 }
468 }
469
470 std::cout << std::setw(5) << iseed << ' '
471 << std::left
472 << std::setw(4) << (!isKF ? "seed" : "KF") << ' '
473 << std::setw(21) << actsSurfaceName(initialParameters.referenceSurface()) << ' '
474 << std::setw(22) << to_string(os.str()) << ' '
475 << std::right;
476 printParameters(initialParameters.referenceSurface(), tgContext, initialParameters.parameters());
477 std::cout << '\n'
478 << std::flush;
479 }
static void printParameters(const Acts::Surface &surface, const Acts::GeometryContext &tgContext, const Acts::BoundVector &bound)

◆ printTrack()

template<typename track_container_t>
void ActsTrk::TrackStatePrinterTool::printTrack ( const Acts::GeometryContext & tgContext,
const track_container_t & tracks,
const typename track_container_t::TrackProxy & track,
const detail::MeasurementIndex & measurementIndexer,
bool rejected = false ) const

◆ printTrackState()

template<typename track_state_proxy_t>
bool ActsTrk::TrackStatePrinterTool::printTrackState ( const Acts::GeometryContext & tgContext,
const track_state_proxy_t & state,
const detail::MeasurementIndex & measurementIndexer,
bool useFiltered = false,
bool newLine = true ) const

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, and AthCheckedComponent<::AthAlgTool >.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ trackStateName()

std::string ActsTrk::TrackStatePrinterTool::trackStateName ( Acts::ConstTrackStateTypeMap trackStateType)
staticprivate

========================================================================= file-local static functions and static TrackStatePrinter member functions.

TrackStatePrinter class method definitions comes later.

Definition at line 46 of file TrackStatePrinterTool.cxx.

47 {
48 static constexpr std::array<std::tuple<bool, Acts::TrackStateFlag, char>, 6> trackStateNames{{
49 {false, Acts::TrackStateFlag::HasParameters, '-'},
50 {true, Acts::TrackStateFlag::HasMeasurement, 'M'},
51 {true, Acts::TrackStateFlag::IsOutlier, 'O'},
52 {true, Acts::TrackStateFlag::IsHole, 'H'},
53 {true, Acts::TrackStateFlag::HasMaterial, 'm'},
54 {true, Acts::TrackStateFlag::IsSharedHit, 'S'},
55 }};
56 std::string s;
57 for (const auto &[b, f, c] : trackStateNames)
58 {
59 if (trackStateType.test(f) == b)
60 s += c;
61 }
62 return s;
63 }

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_compareMeasurementTransforms

Gaudi::Property<bool> ActsTrk::TrackStatePrinterTool::m_compareMeasurementTransforms {this, "compareMeasurementTransforms", false, "compare measurement coordinates transformed with Athena or ACTS"}
private

Definition at line 101 of file TrackStatePrinterTool.h.

101{this, "compareMeasurementTransforms", false, "compare measurement coordinates transformed with Athena or ACTS"};

◆ m_ctxProvider

ActsTrk::ContextUtility ActsTrk::TrackStatePrinterTool::m_ctxProvider {this}
private

Context provider for geometry, magnetic field and calibration contexts.

Definition at line 98 of file TrackStatePrinterTool.h.

98{this};

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default).

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default).

Definition at line 390 of file AthCommonDataStore.h.

◆ m_printFilteredStates

Gaudi::Property<bool> ActsTrk::TrackStatePrinterTool::m_printFilteredStates {this, "printFilteredStates", false, "print track states during filtering"}
private

Definition at line 102 of file TrackStatePrinterTool.h.

102{this, "printFilteredStates", false, "print track states during filtering"};

◆ m_spacePointKey

SG::ReadHandleKeyArray<xAOD::SpacePointContainer> ActsTrk::TrackStatePrinterTool::m_spacePointKey {this, "InputSpacePoints", {}, "Input Space Points for debugging"}
private

Definition at line 90 of file TrackStatePrinterTool.h.

90{this, "InputSpacePoints", {}, "Input Space Points for debugging"};

◆ m_surfAcc

detail::xAODUncalibMeasSurfAcc ActsTrk::TrackStatePrinterTool::m_surfAcc {}
private

Definition at line 95 of file TrackStatePrinterTool.h.

95{};

◆ m_trackingGeometrySvc

ServiceHandle<ActsTrk::ITrackingGeometrySvc> ActsTrk::TrackStatePrinterTool::m_trackingGeometrySvc {this, "TrackingGeometrySvc", "ActsTrackingGeometrySvc"}
private

Definition at line 93 of file TrackStatePrinterTool.h.

93{this, "TrackingGeometrySvc", "ActsTrackingGeometrySvc"};

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.

◆ N_SP_PER_MEAS

unsigned int ActsTrk::TrackStatePrinterTool::N_SP_PER_MEAS = 2
staticconstexprprivate

Definition at line 105 of file TrackStatePrinterTool.h.


The documentation for this class was generated from the following files: