ATLAS Offline Software
Loading...
Searching...
No Matches
Acts/ActsEvent/Root/CaloExtension.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
7
8#include "GeoModelKernel/throwExcept.h"
9
10namespace ActsTrk{
12 static const SG::ConstAccessor<ElementLink<CaloExtensionContainer>> acc{"caloExtensionLink"};
13 if (!acc.isAvailable(track)) {
14 return nullptr;
15 }
16 const auto& link = acc(track);
17 if (link.isValid()) {
18 return *link;
19 }
20 return nullptr;
21 }
22
23
26
28 return m_idTrack;
29 }
30 std::optional<Acts::BoundTrackParameters> CaloExtension::lastTrackParameters() const {
31 return m_idTrack ? ActsTrk::lastTrackParameters(*m_idTrack) : std::nullopt;
32 }
33 std::optional<Acts::BoundTrackParameters> CaloExtension::lastParameters() const {
34 if (! m_parameters.empty()) {
35 return m_parameters.back();
36 }
37 return lastTrackParameters();
38 }
39
40 void CaloExtension::appendParameters(Acts::BoundTrackParameters&& pars) {
41 m_parameters.emplace_back(std::move(pars));
42 }
44 if (!clust) {
45 THROW_EXCEPTION("The calorimeter cluster not be a nullptr");
46 }
47 if (!Acts::rangeContainsValue(m_clusters, clust)) {
48 m_clusters.push_back(clust);
49 }
50 }
57 std::size_t CaloExtension::size() const {
58 return m_parameters.size();
59 }
60 bool CaloExtension::empty() const {
61 return m_parameters.empty();
62 }
63}
The CaloExtension holds the ID extrapolation states through the calorimeter and the associated CaloCl...
const ClusterVec_t & associatedClusters() const
Returns the view on the asociated clusters.
std::size_t size() const
Number of extensions stored in the instance.
const xAOD::TrackParticle * m_idTrack
Pointer to the associated ID track particle.
CaloExtension(const xAOD::TrackParticle *track)
Constructor taking the pointer to the ID track used for the extrapolations.
ParamVec_t m_parameters
Define the list of bound track parameters.
void appendParameters(Acts::BoundTrackParameters &&pars)
Append a list of recorded hit parameters.
const ParamVec_t & parameters() const
Returns the view onto the cached BoundTackParameters.
ClusterVec_t m_clusters
The list of assoicated clusters.
const xAOD::TrackParticle * track() const
std::vector< const xAOD::CaloCluster * > ClusterVec_t
Abrivation of the calo cluster vector.
std::vector< Acts::BoundTrackParameters > ParamVec_t
Abrivation of the Bound track parameter vector.
void associateCluster(const xAOD::CaloCluster *clust)
Associates a calorimeter cluster with the calo extension.
std::optional< Acts::BoundTrackParameters > lastTrackParameters() const
Returns the track parameters asssociated with the last measurement state of the ID track.
std::optional< Acts::BoundTrackParameters > lastParameters() const
Returns the outermost parameters known to the extension.
Helper class to provide constant type-safe access to aux data.
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
const CaloExtension * getCaloExtension(const xAOD::TrackParticle &track)
Retrieve a pointer to the CaloExtension linked with the passed TrackParticle.
std::optional< Acts::BoundTrackParameters > lastTrackParameters(const xAOD::TrackParticle &trkPart, const bool skipOutlier=true)
Returns the last MeasurementState in form of Acts::BoundTrackParameters.
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
#define THROW_EXCEPTION(MESSAGE)
Definition throwExcept.h:10