ATLAS Offline Software
Public Member Functions | Private Member Functions | Private Attributes | List of all members
ActsTrk::MutableTrackContainerHandlesHelper Class Reference

#include <TrackContainerHandlesHelper.h>

Collaboration diagram for ActsTrk::MutableTrackContainerHandlesHelper:

Public Member Functions

template<class PropOwner >
 MutableTrackContainerHandlesHelper (PropOwner *owner)
 Constructor taking the pointer to the class holding the object used to declare the data dependency from the WriteHandleKeys to the AvalancheScheduler. More...
 
StatusCode initialize (const std::string &prefix)
 Sets up the handles. More...
 
std::unique_ptr< ActsTrk::PersistentTrackContainermoveToConst (ActsTrk::MutablePersistentTrackContainer &&tc, const Acts::GeometryContext &geoContext, const EventContext &evtContext) const
 produces ActsTrk::ConstTrackContainer with all backends stored in SG More...
 

Private Member Functions

std::unique_ptr< ActsTrk::MultiTrajectorymoveToConst (ActsTrk::MutableMultiTrajectory &&mmtj, const EventContext &context) const
 helper to record MTJ More...
 

Private Attributes

SG::WriteHandleKey< xAOD::TrackStateContainerm_statesKey
 
SG::WriteHandleKey< xAOD::TrackParametersContainerm_parametersKey
 
SG::WriteHandleKey< xAOD::TrackJacobianContainerm_jacobiansKey
 
SG::WriteHandleKey< xAOD::TrackMeasurementContainerm_measurementsKey
 
SG::WriteHandleKey< xAOD::TrackSurfaceContainerm_surfacesKey
 
SG::WriteHandleKey< ActsTrk::MultiTrajectorym_mtjKey
 
SG::WriteHandleKey< xAOD::TrackSummaryContainerm_xAODTrackSummaryKey
 
SG::WriteHandleKey< xAOD::TrackSurfaceContainerm_trackSurfacesKey
 
SG::WriteHandleKey< ActsTrk::TrackSummaryContainerm_trackSummaryKey
 

Detailed Description

Definition at line 33 of file TrackContainerHandlesHelper.h.

Constructor & Destructor Documentation

◆ MutableTrackContainerHandlesHelper()

template<class PropOwner >
ActsTrk::MutableTrackContainerHandlesHelper::MutableTrackContainerHandlesHelper ( PropOwner *  owner)

Constructor taking the pointer to the class holding the object used to declare the data dependency from the WriteHandleKeys to the AvalancheScheduler.

The object should be defined in the header like ActsTrk::MutableTrackContainerHandlesHelper m_trackHelper{this};

Member Function Documentation

◆ initialize()

StatusCode ActsTrk::MutableTrackContainerHandlesHelper::initialize ( const std::string &  prefix)

Sets up the handles.

  • prefix - common prefix for all the names the value would typically be taken from configurable string property

Definition at line 47 of file TrackContainerHandlesHelper.cxx.

48  {
49  m_statesKey = prefix + "TrackStates";
50  m_parametersKey = prefix + "TrackParameters";
51  m_jacobiansKey = prefix + "TrackJacobians";
52  m_measurementsKey = prefix + "TrackMeasurements";
53  m_surfacesKey = prefix + "TrackStateSurfaces";
54  m_mtjKey =
55  prefix + "MultiTrajectory"; // identical names, underlying types are distinct
62 
63  // Track Container backends
64  m_xAODTrackSummaryKey = prefix + "TrackSummary";
65  m_trackSurfacesKey = prefix + "TrackSurfaces";
67  prefix +
68  "TrackSummary"; // identical names, underlying types are distinct
69 
73  return StatusCode::SUCCESS;
74 }

◆ moveToConst() [1/2]

std::unique_ptr< ActsTrk::MultiTrajectory > ActsTrk::MutableTrackContainerHandlesHelper::moveToConst ( ActsTrk::MutableMultiTrajectory &&  mmtj,
const EventContext &  context 
) const
private

helper to record MTJ

Definition at line 77 of file TrackContainerHandlesHelper.cxx.

78  {
79 
80  mmtj.trim();
81 
82  auto statesBackendHandle = SG::makeHandle(m_statesKey, evtContext);
83  auto statesInterface =
84  ActsTrk::makeInterfaceContainer<xAOD::TrackStateContainer>(
85  mmtj.trackStatesAux());
86  RECORD_xAOD(m_statesKey, statesInterface, mmtj.m_trackStatesAux, evtContext);
87 
88  auto parametersInterface =
89  ActsTrk::makeInterfaceContainer<xAOD::TrackParametersContainer>(
90  mmtj.trackParametersAux());
91  RECORD_xAOD(m_parametersKey, parametersInterface, mmtj.m_trackParametersAux, evtContext);
92 
93  auto jacobiansInterface =
94  ActsTrk::makeInterfaceContainer<xAOD::TrackJacobianContainer>(
95  mmtj.trackJacobiansAux());
96  RECORD_xAOD(m_jacobiansKey, jacobiansInterface, mmtj.m_trackJacobiansAux, evtContext);
97 
98  auto measurementsInterface =
99  ActsTrk::makeInterfaceContainer<xAOD::TrackMeasurementContainer>(
100  mmtj.trackMeasurementsAux());
101  RECORD_xAOD(m_measurementsKey, measurementsInterface, mmtj.m_trackMeasurementsAux, evtContext);
102 
103  auto surfacesBackendHandle = SG::makeHandle(m_surfacesKey, evtContext);
105 
106  // construct const MTJ version
107  auto cmtj = std::make_unique<ActsTrk::MultiTrajectory>(
109  evtContext),
111  m_parametersKey.key() + "Aux.", evtContext),
113  m_jacobiansKey.key() + "Aux.", evtContext),
115  m_measurementsKey.key() + "Aux.", evtContext),
117  m_surfacesKey.key() + "Aux.", evtContext)
118  );
119  cmtj->moveSurfaces(&mmtj);
120  cmtj->moveLinks(&mmtj);
121 
122  return cmtj;
123 }

◆ moveToConst() [2/2]

std::unique_ptr< ActsTrk::PersistentTrackContainer > ActsTrk::MutableTrackContainerHandlesHelper::moveToConst ( ActsTrk::MutablePersistentTrackContainer &&  tc,
const Acts::GeometryContext &  geoContext,
const EventContext &  evtContext 
) const

produces ActsTrk::ConstTrackContainer with all backends stored in SG

  • tc - MutableTrackContainer the source (will be disassembled after the operation)
  • - geoContext - geometry context, needed in surfaces conversion
  • evtContext - event context (needed for SG operations)

Definition at line 126 of file TrackContainerHandlesHelper.cxx.

127  {
128 
129 
130  std::unique_ptr<ActsTrk::MultiTrajectory> constMtj =
131  moveToConst(std::move(tc.trackStateContainer()), evtContext);
132 
133  auto constMtjHandle = SG::makeHandle(m_mtjKey, evtContext);
134  if (constMtjHandle.record(std::move(constMtj)).isFailure()) {
135  throw std::runtime_error(
136  "MutableTrackContainerHandlesHelper::moveToConst, can't record "
137  "ConstMultiTrajectory");
138  }
139 
140  auto trackSurfacesAux = std::make_unique<xAOD::TrackSurfaceAuxContainer>();
141  tc.container().encodeSurfaces(trackSurfacesAux.get(), geoContext);
142 
143  auto interfaceTrackSummaryContainer =
144  ActsTrk::makeInterfaceContainer<xAOD::TrackSummaryContainer>(
145  tc.container().m_mutableTrackBackendAux.get());
146  RECORD_xAOD(m_xAODTrackSummaryKey, interfaceTrackSummaryContainer, tc.container().m_mutableTrackBackendAux, evtContext);
147 
148  auto trackSurfaces = ActsTrk::makeInterfaceContainer<xAOD::TrackSurfaceContainer>(
149  trackSurfacesAux.get());
150  RECORD_xAOD(m_trackSurfacesKey, trackSurfaces, trackSurfacesAux, evtContext);
151 
152  auto constTrackSummary = std::make_unique<ActsTrk::TrackSummaryContainer>(
154  evtContext));
155  constTrackSummary->restoreDecorations();
156  constTrackSummary->fillFrom(tc.container());
157 
158  auto constTrackSummaryHandle = SG::makeHandle(m_trackSummaryKey, evtContext);
159  if (constTrackSummaryHandle.record(std::move(constTrackSummary))
160  .isFailure()) {
161  throw std::runtime_error(
162  "MutableTrackContainerHandlesHelper::moveToConst, can't record "
163  "TrackSummary");
164  }
165  auto constTrack = std::make_unique<ActsTrk::PersistentTrackContainer>(
167  evtContext),
169  return constTrack;
170 }

Member Data Documentation

◆ m_jacobiansKey

SG::WriteHandleKey<xAOD::TrackJacobianContainer> ActsTrk::MutableTrackContainerHandlesHelper::m_jacobiansKey
private

Definition at line 67 of file TrackContainerHandlesHelper.h.

◆ m_measurementsKey

SG::WriteHandleKey<xAOD::TrackMeasurementContainer> ActsTrk::MutableTrackContainerHandlesHelper::m_measurementsKey
private

Definition at line 68 of file TrackContainerHandlesHelper.h.

◆ m_mtjKey

SG::WriteHandleKey<ActsTrk::MultiTrajectory> ActsTrk::MutableTrackContainerHandlesHelper::m_mtjKey
private

Definition at line 70 of file TrackContainerHandlesHelper.h.

◆ m_parametersKey

SG::WriteHandleKey<xAOD::TrackParametersContainer> ActsTrk::MutableTrackContainerHandlesHelper::m_parametersKey
private

Definition at line 66 of file TrackContainerHandlesHelper.h.

◆ m_statesKey

SG::WriteHandleKey<xAOD::TrackStateContainer> ActsTrk::MutableTrackContainerHandlesHelper::m_statesKey
private

Definition at line 65 of file TrackContainerHandlesHelper.h.

◆ m_surfacesKey

SG::WriteHandleKey<xAOD::TrackSurfaceContainer> ActsTrk::MutableTrackContainerHandlesHelper::m_surfacesKey
private

Definition at line 69 of file TrackContainerHandlesHelper.h.

◆ m_trackSummaryKey

SG::WriteHandleKey<ActsTrk::TrackSummaryContainer> ActsTrk::MutableTrackContainerHandlesHelper::m_trackSummaryKey
private

Definition at line 82 of file TrackContainerHandlesHelper.h.

◆ m_trackSurfacesKey

SG::WriteHandleKey<xAOD::TrackSurfaceContainer> ActsTrk::MutableTrackContainerHandlesHelper::m_trackSurfacesKey
private

Definition at line 81 of file TrackContainerHandlesHelper.h.

◆ m_xAODTrackSummaryKey

SG::WriteHandleKey<xAOD::TrackSummaryContainer> ActsTrk::MutableTrackContainerHandlesHelper::m_xAODTrackSummaryKey
private

Definition at line 80 of file TrackContainerHandlesHelper.h.


The documentation for this class was generated from the following files:
ActsTrk::MutableTrackContainerHandlesHelper::m_trackSummaryKey
SG::WriteHandleKey< ActsTrk::TrackSummaryContainer > m_trackSummaryKey
Definition: TrackContainerHandlesHelper.h:82
ActsTrk::MutableMultiTrajectory::trackJacobiansAux
xAOD::TrackJacobianAuxContainer * trackJacobiansAux()
Definition: MultiTrajectory.h:364
ActsTrk::MutableTrackContainerHandlesHelper::m_mtjKey
SG::WriteHandleKey< ActsTrk::MultiTrajectory > m_mtjKey
Definition: TrackContainerHandlesHelper.h:70
TrigInDetValidation_menu_test.tc
tc
Definition: TrigInDetValidation_menu_test.py:8
ActsTrk::MutableMultiTrajectory::m_trackParametersAux
std::unique_ptr< xAOD::TrackParametersAuxContainer > m_trackParametersAux
Definition: MultiTrajectory.h:391
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
ActsTrk::MutableTrackContainerHandlesHelper::m_trackSurfacesKey
SG::WriteHandleKey< xAOD::TrackSurfaceContainer > m_trackSurfacesKey
Definition: TrackContainerHandlesHelper.h:81
ActsTrk::MutableMultiTrajectory::trackMeasurementsAux
xAOD::TrackMeasurementAuxContainer * trackMeasurementsAux()
Definition: MultiTrajectory.h:368
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:274
ActsTrk::MutableMultiTrajectory::trackParametersAux
const xAOD::TrackParametersAuxContainer * trackParametersAux() const
Definition: MultiTrajectory.h:357
ActsTrk::MutableMultiTrajectory::m_trackMeasurementsAux
std::unique_ptr< xAOD::TrackMeasurementAuxContainer > m_trackMeasurementsAux
Definition: MultiTrajectory.h:397
INIT_CHECK
#define INIT_CHECK(key)
Definition: TrackContainerHandlesHelper.cxx:42
ActsTrk::MutableTrackContainerHandlesHelper::m_parametersKey
SG::WriteHandleKey< xAOD::TrackParametersContainer > m_parametersKey
Definition: TrackContainerHandlesHelper.h:66
ActsTrk::MutableMultiTrajectory::m_surfacesBackendAux
std::unique_ptr< xAOD::TrackSurfaceAuxContainer > m_surfacesBackendAux
Definition: MultiTrajectory.h:401
checkCorrelInHIST.prefix
dictionary prefix
Definition: checkCorrelInHIST.py:391
ActsTrk::MutableMultiTrajectory::trim
void trim()
Definition: MultiTrajectory.cxx:603
ActsTrk::MutableTrackContainerHandlesHelper::m_xAODTrackSummaryKey
SG::WriteHandleKey< xAOD::TrackSummaryContainer > m_xAODTrackSummaryKey
Definition: TrackContainerHandlesHelper.h:80
ActsTrk::MutableTrackContainerHandlesHelper::moveToConst
std::unique_ptr< ActsTrk::PersistentTrackContainer > moveToConst(ActsTrk::MutablePersistentTrackContainer &&tc, const Acts::GeometryContext &geoContext, const EventContext &evtContext) const
produces ActsTrk::ConstTrackContainer with all backends stored in SG
Definition: TrackContainerHandlesHelper.cxx:126
ActsTrk::MutableTrackContainerHandlesHelper::m_surfacesKey
SG::WriteHandleKey< xAOD::TrackSurfaceContainer > m_surfacesKey
Definition: TrackContainerHandlesHelper.h:69
ActsTrk::MutableMultiTrajectory::m_trackStatesAux
std::unique_ptr< xAOD::TrackStateAuxContainer > m_trackStatesAux
Definition: MultiTrajectory.h:388
ActsTrk::MutableTrackContainerHandlesHelper::m_jacobiansKey
SG::WriteHandleKey< xAOD::TrackJacobianContainer > m_jacobiansKey
Definition: TrackContainerHandlesHelper.h:67
ActsTrk::MutableMultiTrajectory::m_surfacesBackend
std::unique_ptr< xAOD::TrackSurfaceContainer > m_surfacesBackend
Definition: MultiTrajectory.h:400
ActsTrk::MutableMultiTrajectory::trackStatesAux
xAOD::TrackStateAuxContainer * trackStatesAux()
Definition: MultiTrajectory.h:355
RECORD_xAOD
#define RECORD_xAOD(key, container, auxContainer, ctx)
Definition: TrackContainerHandlesHelper.cxx:33
ActsTrk::MutableTrackContainerHandlesHelper::m_measurementsKey
SG::WriteHandleKey< xAOD::TrackMeasurementContainer > m_measurementsKey
Definition: TrackContainerHandlesHelper.h:68
ActsTrk::MutableMultiTrajectory::m_trackJacobiansAux
std::unique_ptr< xAOD::TrackJacobianAuxContainer > m_trackJacobiansAux
Definition: MultiTrajectory.h:394
ActsTrk::MutableTrackContainerHandlesHelper::m_statesKey
SG::WriteHandleKey< xAOD::TrackStateContainer > m_statesKey
Definition: TrackContainerHandlesHelper.h:65