|
ATLAS Offline Software
|
Go to the documentation of this file.
11 #include "Acts/Definitions/Units.hpp"
13 #include "Acts/AmbiguityResolution/GreedyAmbiguityResolution.hpp"
14 #include "Acts/EventData/MultiTrajectoryHelpers.hpp"
15 #include "Acts/EventData/VectorMultiTrajectory.hpp"
16 #include "Acts/EventData/VectorTrackContainer.hpp"
17 #include "Acts/Utilities/Logger.hpp"
23 std::size_t sourceLinkHash(
const Acts::SourceLink& slink) {
26 return uncalibMeas.identifier();
29 bool sourceLinkEquality(
const Acts::SourceLink&
a,
const Acts::SourceLink&
b) {
41 ISvcLocator *pSvcLocator)
49 Acts::GreedyAmbiguityResolution::Config
cfg;
62 return StatusCode::SUCCESS;
74 m_ambi->computeInitialState(*trackHandle, state, &sourceLinkHash,
79 ATH_MSG_DEBUG(
"Resolved to " << state.selectedTracks.size() <<
" tracks from "
80 << trackHandle->size());
83 solvedTracks.ensureDynamicColumns(*trackHandle);
85 for (
auto iTrack : state.selectedTracks) {
86 auto destProxy = solvedTracks.getTrack(solvedTracks.addTrack());
87 destProxy.copyFrom(trackHandle->getTrack(state.trackTips.at(iTrack)));
93 if (resolvedTrackHandle.
record( std::move(outputTracks)).isFailure()) {
95 return StatusCode::FAILURE;
98 return StatusCode::SUCCESS;
DetectorIdentType identifier() const
Returns the full Identifier of the measurement.
Group
Properties of a chain group.
std::unique_ptr< ActsTrk::TrackContainer > moveToConst(ActsTrk::MutableTrackContainer &&tc, const Acts::GeometryContext &geoContext, const EventContext &evtContext) const
produces ActsTrk::ConstTrackContainer with all backends stored in SG
Gaudi::Property< unsigned int > m_maximumIterations
std::string prefixFromTrackContainerName(const std::string &tracks)
Parse TrackContainer name to get the prefix for backends The name has to contain XYZTracks,...
ActsTrk::MutableTrackContainerHandlesHelper m_resolvedTracksBackendHandles
const std::string & key() const
Return the StoreGate ID for the referenced object.
StatusCode initialize(const std::string &prefix)
Sets up the handles.
def timer(name, disabled=False)
An algorithm that can be simultaneously executed in multiple threads.
std::unique_ptr< Acts::GreedyAmbiguityResolution > m_ambi
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
std::unique_ptr< const Acts::Logger > makeActsAthenaLogger(IMessageSvc *svc, const std::string &name, int level, std::optional< std::string > parent_name)
::StatusCode StatusCode
StatusCode definition for legacy code.
CalibratedSpacePoint::State State
Gaudi::Property< unsigned int > m_nMeasurementsMin
virtual StatusCode initialize() override
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
AmbiguityResolutionAlg(const std::string &name, ISvcLocator *pSvcLocator)
Header file to be included by clients of the Monitored infrastructure.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
ToolHandle< GenericMonitoringTool > m_monTool
Gaudi::Property< unsigned int > m_maximumSharedHits
const xAOD::UncalibratedMeasurement & getUncalibratedMeasurement(const ATLASUncalibSourceLink &source_link)
ToolHandle< IActsTrackingGeometryTool > m_trackingGeometryTool
SG::WriteHandleKey< ActsTrk::TrackContainer > m_resolvedTracksKey
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
SG::ReadHandleKey< ActsTrk::TrackContainer > m_tracksKey
virtual StatusCode execute(const EventContext &ctx) const override