 |
ATLAS Offline Software
|
Go to the documentation of this file.
13 #include "Acts/Surfaces/PerigeeSurface.hpp"
20 const std::string &
name, ISvcLocator *pSvcLocator)
35 std::string backendname{};
39 catch (
const std::runtime_error &ee){
44 return StatusCode::SUCCESS;
48 ATH_MSG_INFO(
"====> GSF fitting Statistics ============");
51 ATH_MSG_INFO(
"<========================================");
52 return StatusCode::SUCCESS;
60 Acts::VectorTrackContainer trackBackend;
61 Acts::VectorMultiTrajectory trackStateBackend;
63 std::move(trackStateBackend) );
65 std::vector<const xAOD::TrackParticle *> siliconTrackParticles;
66 siliconTrackParticles.reserve(16);
69 int nSiliconHits_trk =
74 siliconTrackParticles.push_back(trackParticle);
81 Acts::ConstVectorTrackContainer ctrackBackend( std::move(
trackContainer.container()) );
82 Acts::ConstVectorMultiTrajectory ctrackStateBackend( std::move(
trackContainer.trackStateContainer()) );
83 std::unique_ptr<ActsTrk::TrackContainer> outputTracks = std::make_unique<ActsTrk::TrackContainer>( std::move(ctrackBackend),
84 std::move(ctrackStateBackend) );
88 if (refittedTrackHandle.
record(std::move(outputTracks)).isFailure()) {
89 ATH_MSG_ERROR(
"Failed to record refitted ACTS tracks with key "
91 return StatusCode::FAILURE;
94 const size_t inputCount = selectedTrackParticles->size();
100 return StatusCode::SUCCESS;
104 const EventContext &ctx,
105 const std::vector<const xAOD::TrackParticle *> &
input,
118 std::shared_ptr<Acts::PerigeeSurface> pSurface = Acts::Surface::makeShared<Acts::PerigeeSurface>(beamPos);
126 decoHandleActsTrackLink(*in);
128 if (!actsTrackLink.
isValid()) {
129 ATH_MSG_WARNING(
"Invalid ElementLink to ACTS track for track particle ");
133 std::optional<ActsTrk::TrackContainer::ConstTrackProxy> optional_track =
135 if (!optional_track.has_value()) {
137 "Could not retrieve track from valid ElementLink for track particle");
141 ActsTrk::TrackContainer::ConstTrackProxy actstrack = optional_track.value();
145 return StatusCode::SUCCESS;
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
SG::ReadDecorHandleKey< xAOD::TrackParticleContainer > m_actsTrackLinkKey
ActsEMBremCollectionBuilder(const std::string &name, ISvcLocator *pSvcLocator)
Acts::TrackContainer< MutableTrackBackend, MutableTrackStateBackend, Acts::detail::ValueHolder > MutableTrackContainer
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".
std::string prefixFromTrackContainerName(const std::string &tracks)
Parse TrackContainer name to get the prefix for backends The name has to contain XYZTracks,...
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
const std::string & key() const
Return the StoreGate ID for the referenced object.
bool isValid() const
Test to see if the link can be dereferenced.
StatusCode initialize(const std::string &prefix)
Sets up the handles.
An algorithm that can be simultaneously executed in multiple threads.
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
std::atomic_uint m_nRefittedTracks
Handle class for recording to StoreGate.
Handle class for reading a decoration on an object.
::StatusCode StatusCode
StatusCode definition for legacy code.
ActsTrk::MutableTrackContainerHandlesHelper m_refittedTracksBackendHandles
StatusCode refitActsTracks(const EventContext &ctx, const std::vector< const xAOD::TrackParticle * > &input, ActsTrk::MutableTrackContainer &trackContainer) const
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
ToolHandle< ActsTrk::IFitterTool > m_actsFitter
std::atomic_uint m_nInputTracks
virtual bool isValid() override final
Can the handle be successfully dereferenced?
int summaryValueInt(const xAOD::TrackParticle &tp, const xAOD::SummaryType &info, int deflt=-999)
return the summary value for a TrackParticle or default value (-999) (to be used mostly in python whe...
ElementLink implementation for ROOT usage.
const Amg::Vector3D & beamPos() const noexcept
Helpers for checking error return status codes and reporting errors.
StatusCode initialize(bool used=true)
Gaudi::Property< int > m_MinNoSiHits
@Cut on minimum silicon hits
virtual StatusCode initialize() override final
SG::WriteHandleKey< ActsTrk::TrackContainer > m_refittedTracksKey
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
#define ATH_MSG_WARNING(x)
virtual StatusCode execute(const EventContext &ctx) const override final
PublicToolHandle< ActsTrk::ITrackingGeometryTool > m_trackingGeometryTool
@ numberOfSCTHits
number of hits in SCT [unit8_t].
virtual StatusCode finalize() override final
Class describing a TrackParticle.
Handle class for reading from StoreGate.
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_selectedTrackParticleContainerKey
Names of input output collections.
const_pointer_type cptr()