Skip to content
This repository was archived by the owner on Mar 9, 2026. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions k4ActsTracking/include/k4ActsTracking/Measurement.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,8 @@
#include "Acts/EventData/detail/ParameterTraits.hpp"
#include "Acts/EventData/detail/PrintParameters.hpp"

#include <boost/container/static_vector.hpp>

#include <array>
#include <variant>

Expand Down
9 changes: 6 additions & 3 deletions k4ActsTracking/include/k4ActsTracking/SeedSpacePoint.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,11 @@
*/
#pragma once

#include "k4ActsTracking/SourceLink.hxx"

#include <Acts/Definitions/Algebra.hpp>
#include <Acts/Definitions/Common.hpp>

#include <cmath>
#include <vector>

Expand Down Expand Up @@ -58,9 +61,9 @@ namespace ACTSTracking {
constexpr float varianceR() const { return m_varianceRho; }
constexpr float varianceZ() const { return m_varianceZ; }

constexpr SourceLink sourceLink() const { return m_sourceLink; }
const SourceLink& sourceLink() const { return m_sourceLink; }

const std::optional<float> t() const { return m_sourceLink.edm4hepTHitP()->getTime(); }
std::optional<float> t() const { return m_sourceLink.edm4hepHit().getTime(); }
/// @TODO missing: const std::optional<float> varianceT() const

private:
Expand All @@ -85,7 +88,7 @@ namespace ACTSTracking {
* that the same measurement index always produces the same space point?
* no need to check r since it is fully defined by x/y
*/
constexpr bool operator==(const SeedSpacePoint& lhs, const SeedSpacePoint& rhs) {
inline bool operator==(const SeedSpacePoint& lhs, const SeedSpacePoint& rhs) {
return (lhs.sourceLink() == rhs.sourceLink()) and (lhs.x() == rhs.x()) and (lhs.y() == rhs.y()) and
(lhs.z() == rhs.z()) and (lhs.varianceR() == rhs.varianceR()) and (lhs.varianceZ() == rhs.varianceZ());
}
Expand Down
13 changes: 7 additions & 6 deletions k4ActsTracking/include/k4ActsTracking/SourceLink.hxx
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,9 @@
*/
#pragma once

#include <edm4hep/TrackerHitPlane.h>
#include <edm4hep/TrackerHit.h>

#include "Acts/EventData/SourceLink.hpp"
#include "Acts/Surfaces/Surface.hpp"

#include "k4ActsTracking/GeometryContainers.hxx"
Expand All @@ -29,7 +30,7 @@ namespace ACTSTracking {
class SourceLink final {
public:
//! \brief Construct from geometry identifier and hit
SourceLink(Acts::GeometryIdentifier gid, std::size_t index, edm4hep::TrackerHitPlane* edmhit)
SourceLink(Acts::GeometryIdentifier gid, std::size_t index, const edm4hep::TrackerHit edmhit)
: m_geometryId(gid), m_index(index), m_edm4hephit(edmhit) {}

// Construct an invalid source link. Must be default constructible to
Expand All @@ -46,12 +47,12 @@ namespace ACTSTracking {
constexpr std::size_t index() const { return m_index; }
/// Access the edm4hep TrackerHitPlane
/// @TODO: We want this to be a TrackerHit to support multiple types of tracking detector. However, TrackerHitPlane is currently not derived from TrackerHit as expected.
constexpr edm4hep::TrackerHitPlane* edm4hepTHitP() const { return m_edm4hephit; }
edm4hep::TrackerHit edm4hepHit() const { return m_edm4hephit; }

private:
Acts::GeometryIdentifier m_geometryId;
std::size_t m_index = -1;
edm4hep::TrackerHitPlane* m_edm4hephit = nullptr;
Acts::GeometryIdentifier m_geometryId;
std::size_t m_index = -1;
edm4hep::TrackerHit m_edm4hephit{edm4hep::TrackerHit::makeEmpty()};

friend constexpr bool operator==(const SourceLink& lhs, const SourceLink& rhs) {
return (lhs.m_geometryId == rhs.m_geometryId) and (lhs.m_index == rhs.m_index) and
Expand Down
4 changes: 2 additions & 2 deletions k4ActsTracking/src/components/ACTSSeededCKFTrackingAlg.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ std::tuple<edm4hep::TrackCollection, edm4hep::TrackCollection> ACTSSeededCKFTrac
localCov(0, 0) = std::pow(hitplane.getDu() * Acts::UnitConstants::mm, 2);
localCov(1, 1) = std::pow(hitplane.getDv() * Acts::UnitConstants::mm, 2);

ACTSTracking::SourceLink sourceLink(surface->geometryId(), measurements.size(), &hitPair.second);
ACTSTracking::SourceLink sourceLink(surface->geometryId(), measurements.size(), hitPair.second);
Acts::SourceLink src_wrap{sourceLink};
ACTSTracking::Measurement meas =
ACTSTracking::makeMeasurement(src_wrap, loc, localCov, Acts::eBoundLoc0, Acts::eBoundLoc1);
Expand Down Expand Up @@ -467,7 +467,7 @@ std::tuple<edm4hep::TrackCollection, edm4hep::TrackCollection> ACTSSeededCKFTrac
// hits
for (const ACTSTracking::SeedSpacePoint* sp : seed.sp()) {
const ACTSTracking::SourceLink& sl = sp->sourceLink();
seedTrack.addToTrackerHits(*(sl.edm4hepTHitP())); //trackHit);
seedTrack.addToTrackerHits(sl.edm4hepHit());
}

seedTrack.addToTrackStates(*seedTrackState);
Expand Down
2 changes: 1 addition & 1 deletion k4ActsTracking/src/components/Helpers.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ namespace ACTSTracking {

auto sl = trk_state.getUncalibratedSourceLink().get<ACTSTracking::SourceLink>();

edm4hep::TrackerHit curr_hit(*sl.edm4hepTHitP());
const auto curr_hit = sl.edm4hepHit();

hitsOnTrack.push_back(curr_hit);

Expand Down
Loading