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 62 of file TrackStatePrinterTool.cxx.

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

◆ 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 498 of file TrackStatePrinterTool.cxx.

501 {
502 std::vector<std::vector<TrackStatePrinterTool::small_vector<const xAOD::SpacePoint *>>> measToSp{clusterContainers.size()};
503 for (std::size_t icontainer = 0; icontainer < clusterContainers.size(); ++icontainer)
504 {
505 measToSp[icontainer].resize(clusterContainers[icontainer]->size());
506 }
507
508 for (auto &spacePointKey : m_spacePointKey)
509 {
510 ATH_MSG_DEBUG("Retrieving from input SpacePoint collection '" << spacePointKey.key() << "' ...");
511 SG::ReadHandle<xAOD::SpacePointContainer> handle = SG::makeHandle(spacePointKey, ctx);
512 if (!handle.isValid())
513 {
514 ATH_MSG_ERROR("Error retrieving from input SpacePoint collection '" << spacePointKey.key() << "'");
515 continue;
516 }
517 ATH_MSG_DEBUG(" \\__ " << handle->size() << " elements!");
518 for (const auto *sp : *handle)
519 {
520 for (const xAOD::UncalibratedMeasurement *meas : sp->measurements())
521 {
522 if (!meas)
523 continue;
524 for (std::size_t icontainer = 0; icontainer < clusterContainers.size(); ++icontainer)
525 {
526 // This measurement may well be in a different clusterContainer. Skip all but the one we are interested in.
527 if (!(meas && meas->index() < clusterContainers[icontainer]->size() && meas == clusterContainers[icontainer]->at(meas->index())))
528 continue;
529 small_vector<const xAOD::SpacePoint *> &measSp = measToSp[icontainer].at(meas->index());
530 if (!measSp.empty())
531 {
532 ATH_MSG_INFO("Cluster "
533 << (meas->index() + offsets[icontainer])
534 << " used by SpacePoints at ("
535 << sp->globalPosition()[0] << ',' << sp->globalPosition()[1] << ',' << sp->globalPosition()[2]
536 << ") and ("
537 << measSp[0]->globalPosition()[0] << ',' << measSp[0]->globalPosition()[1] << ',' << measSp[0]->globalPosition()[2]
538 << ')');
539 }
540 measSp.push_back(sp);
541 }
542 }
543 }
544 }
545 return measToSp;
546 }
#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 420 of file TrackStatePrinterTool.cxx.

421 {
422 ATH_MSG_DEBUG("Initializing " << name() << "...");
423 ATH_MSG_DEBUG("Properties Summary:");
426
428 ATH_CHECK(m_ctxProvider.initialize());
429 m_surfAcc = detail::xAODUncalibMeasSurfAcc{m_trackingGeometrySvc.get()};
430 ATH_CHECK(m_spacePointKey.initialize());
431
432 return StatusCode::SUCCESS;
433 }
#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 335 of file TrackStatePrinterTool.cxx.

338 {
339 if (!measurement)
340 return;
341
342 std::cout << std::setw(5) << (measurement->index() + offset) << ' '
343 << std::setw(3) << measurement->numDimensions() << "D ";
344
345 const Acts::Surface *surface_ptr = m_surfAcc.get(measurement);
346 if (!surface_ptr)
347 {
348 std::cout << std::setw(20 + 22 + 20 + 2) << "** no surface for measurement **";
349 }
350 else
351 {
352 std::cout << std::left;
353 std::cout << std::setw(21) << actsSurfaceName(*surface_ptr) << ' '
354 << std::setw(22) << to_string(surface_ptr->geometryId()) << ' ';
355 std::cout << std::setw(20) << atlasSurfaceName(surface_ptr);
356 std::cout << std::right;
357 }
358
359 if (measurement->type() == xAOD::UncalibMeasType::PixelClusterType)
360 {
361 const auto loc = measurement->localPosition<2>().cast<double>();
362 printMeasurement(tgContext, surface_ptr, {loc, loc, -1, -1}, m_compareMeasurementTransforms);
363 }
364 else if (measurement->type() == xAOD::UncalibMeasType::StripClusterType)
365 {
366 if (measurement->index() >= measToSp.size() || measToSp.at(measurement->index()).empty()) {
367 // If we didn't load the SpacePoints, then just print the 1D measurement coordinates.
368 // **TODO** fix bug where measToSp isn't completely filled for ITkActsLargeRadiusPass.
369 // The other entries are empty, so it doesn't really make a difference.
370 printMeasurement(tgContext, surface_ptr,
371 localPositionStrip2D(tgContext, *measurement, surface_ptr, nullptr),
373 ATH_MSG_DEBUG("No SpacePoints for strip measurement " << measurement->index() << " (" << measToSp.size() << " associated SPs)");
374 } else {
375 size_t isp = 0;
376 for (auto *sp : measToSp.at(measurement->index()))
377 {
378 if (isp++)
379 {
380 std::cout << '\n'
381 << std::left
382 << std::setw(76) << to_string("** Spacepoint ", isp, " **")
383 << std::right;
384 }
385 printMeasurement(tgContext, surface_ptr,
386 localPositionStrip2D(tgContext, *measurement, surface_ptr, sp),
388 }
389 }
390 }
391 else if (measurement->type() == xAOD::UncalibMeasType::HGTDClusterType) {
392 const auto loc3D = measurement->localPosition<3>().cast<double>();
393 const std::tuple<Acts::Vector2, Amg::Vector2D, int, int> locTup = {Acts::Vector2{loc3D.head<2>()}, Amg::Vector2D{loc3D.head<2>()}, -1, -1};
394 printMeasurement(tgContext, surface_ptr, locTup, m_compareMeasurementTransforms);
395 }
396 std::cout << '\n';
397 }
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 475 of file TrackStatePrinterTool.cxx.

477 {
478
479 const Acts::GeometryContext tgContext = m_ctxProvider.getGeometryContext(ctx);
480
481 auto measToSp = addSpacePoints(ctx, clusterContainers, offsets);
482
483 ATH_MSG_INFO("CKF input measurements:");
485
486 for (std::size_t icontainer = 0; icontainer < clusterContainers.size(); ++icontainer)
487 {
488 for (const auto *measurement : *clusterContainers[icontainer])
489 {
490 printMeasurementAssociatedSpacePoint(tgContext, measurement,
491 measToSp[icontainer], offsets[icontainer]);
492 }
493 }
494 std::cout << std::flush;
495 }
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 399 of file TrackStatePrinterTool.cxx.

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

◆ 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 436 of file TrackStatePrinterTool.cxx.

442 {
443 if (!isKF)
444 printHeader(1);
445
446 std::ostringstream os;
447 size_t nos = 0;
448 for (const auto *sp : seed.sp())
449 {
450 size_t nom = 0;
451 for (const auto *el : sp->measurements())
452 {
453 if (nom > 0)
454 os << '+';
455 else if (nos > 0)
456 os << ',';
457 ++nos;
458 ++nom;
459 os << measurementIndexer.index(*el);
460 }
461 }
462
463 std::cout << std::setw(5) << iseed << ' '
464 << std::left
465 << std::setw(4) << (!isKF ? "seed" : "KF") << ' '
466 << std::setw(21) << actsSurfaceName(initialParameters.referenceSurface()) << ' '
467 << std::setw(22) << to_string(os.str()) << ' '
468 << std::right;
469 printParameters(initialParameters.referenceSurface(), tgContext, initialParameters.parameters());
470 std::cout << '\n'
471 << std::flush;
472 }
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 42 of file TrackStatePrinterTool.cxx.

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

◆ 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: