Skip to content

Commit

Permalink
untemplate VertexingOptions
Browse files Browse the repository at this point in the history
  • Loading branch information
paulgessinger committed Jan 22, 2024
1 parent f1c543a commit 165d9a3
Show file tree
Hide file tree
Showing 30 changed files with 97 additions and 130 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -91,10 +91,9 @@ class AdaptiveGridDensityVertexFinder {
///
/// @return Vector of vertices, filled with a single
/// vertex (for consistent interfaces)
Result<std::vector<Vertex>> find(
const std::vector<InputTrack>& trackVector,
const VertexingOptions<InputTrack_t>& vertexingOptions,
State& state) const;
Result<std::vector<Vertex>> find(const std::vector<InputTrack>& trackVector,
const VertexingOptions& vertexingOptions,
State& state) const;

/// @brief Constructor used if InputTrack_t type == BoundTrackParameters
///
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
template <typename vfitter_t>
auto Acts::AdaptiveGridDensityVertexFinder<vfitter_t>::find(
const std::vector<InputTrack>& trackVector,
const VertexingOptions<InputTrack_t>& vertexingOptions, State& state) const
const VertexingOptions& vertexingOptions, State& state) const
-> Result<std::vector<Vertex>> {
// Remove density contributions from tracks removed from track collection
if (m_cfg.cacheGridStateForTrackRemoval && state.isInitialized &&
Expand Down
19 changes: 9 additions & 10 deletions Core/include/Acts/Vertexing/AdaptiveMultiVertexFinder.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -210,10 +210,9 @@ class AdaptiveMultiVertexFinder {
/// @param state State for fulfilling interfaces
///
/// @return Vector of all reconstructed vertices
Result<std::vector<Vertex>> find(
const std::vector<InputTrack>& allTracks,
const VertexingOptions<InputTrack_t>& vertexingOptions,
State& state) const;
Result<std::vector<Vertex>> find(const std::vector<InputTrack>& allTracks,
const VertexingOptions& vertexingOptions,
State& state) const;

private:
/// Configuration object
Expand Down Expand Up @@ -245,7 +244,7 @@ class AdaptiveMultiVertexFinder {
/// @return The seed vertex
Result<Vertex> doSeeding(
const std::vector<InputTrack>& trackVector, Vertex& currentConstraint,
const VertexingOptions<InputTrack_t>& vertexingOptions,
const VertexingOptions& vertexingOptions,
SeedFinderState_t& seedFinderState,
const std::vector<InputTrack>& removedSeedTracks) const;

Expand All @@ -267,7 +266,7 @@ class AdaptiveMultiVertexFinder {
/// @return The IP significance
Result<double> getIPSignificance(
const InputTrack& track, const Vertex& vtx,
const VertexingOptions<InputTrack_t>& vertexingOptions) const;
const VertexingOptions& vertexingOptions) const;

/// @brief Adds compatible track to vertex candidate
///
Expand All @@ -278,7 +277,7 @@ class AdaptiveMultiVertexFinder {
Result<void> addCompatibleTracksToVertex(
const std::vector<InputTrack>& tracks, Vertex& vtx,
FitterState_t& fitterState,
const VertexingOptions<InputTrack_t>& vertexingOptions) const;
const VertexingOptions& vertexingOptions) const;

/// @brief Method that tries to recover from cases where no tracks
/// were added to the vertex candidate after seeding
Expand All @@ -296,7 +295,7 @@ class AdaptiveMultiVertexFinder {
const std::vector<InputTrack>& allTracks,
const std::vector<InputTrack>& seedTracks, Vertex& vtx,
const Vertex& currentConstraint, FitterState_t& fitterState,
const VertexingOptions<InputTrack_t>& vertexingOptions) const;
const VertexingOptions& vertexingOptions) const;

/// @brief Method that tries to prepare the vertex for the fit
///
Expand All @@ -313,7 +312,7 @@ class AdaptiveMultiVertexFinder {
const std::vector<InputTrack>& allTracks,
const std::vector<InputTrack>& seedTracks, Vertex& vtx,
const Vertex& currentConstraint, FitterState_t& fitterState,
const VertexingOptions<InputTrack_t>& vertexingOptions) const;
const VertexingOptions& vertexingOptions) const;

/// @brief Method that checks if vertex is a good vertex and if
/// compatible tracks are available
Expand Down Expand Up @@ -390,7 +389,7 @@ class AdaptiveMultiVertexFinder {
Result<void> deleteLastVertex(
Vertex& vtx, std::vector<std::unique_ptr<Vertex>>& allVertices,
std::vector<Vertex*>& allVerticesPtr, FitterState_t& fitterState,
const VertexingOptions<InputTrack_t>& vertexingOptions) const;
const VertexingOptions& vertexingOptions) const;

/// @brief Prepares the output vector of vertices
///
Expand Down
16 changes: 8 additions & 8 deletions Core/include/Acts/Vertexing/AdaptiveMultiVertexFinder.ipp
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
template <typename vfitter_t, typename sfinder_t>
auto Acts::AdaptiveMultiVertexFinder<vfitter_t, sfinder_t>::find(
const std::vector<InputTrack>& allTracks,
const VertexingOptions<InputTrack_t>& vertexingOptions,
const VertexingOptions& vertexingOptions,
State& /*state*/) const -> Result<std::vector<Vertex>> {
if (allTracks.empty()) {
ACTS_ERROR("Empty track collection handed to find method");
Expand Down Expand Up @@ -142,11 +142,11 @@ template <typename vfitter_t, typename sfinder_t>
auto Acts::AdaptiveMultiVertexFinder<vfitter_t, sfinder_t>::doSeeding(
const std::vector<InputTrack>& trackVector,
Vertex& currentConstraint,
const VertexingOptions<InputTrack_t>& vertexingOptions,
const VertexingOptions& vertexingOptions,
SeedFinderState_t& seedFinderState,
const std::vector<InputTrack>& removedSeedTracks) const
-> Result<Vertex> {
VertexingOptions<InputTrack_t> seedOptions = vertexingOptions;
VertexingOptions seedOptions = vertexingOptions;
seedOptions.constraint = currentConstraint;

if constexpr (NeedsRemovedTracks<typename sfinder_t::State>::value) {
Expand Down Expand Up @@ -193,7 +193,7 @@ auto Acts::AdaptiveMultiVertexFinder<vfitter_t, sfinder_t>::
template <typename vfitter_t, typename sfinder_t>
auto Acts::AdaptiveMultiVertexFinder<vfitter_t, sfinder_t>::getIPSignificance(
const InputTrack& track, const Vertex& vtx,
const VertexingOptions<InputTrack_t>& vertexingOptions) const
const VertexingOptions& vertexingOptions) const
-> Result<double> {
// TODO: In original implementation the covariance of the given vertex is set
// to zero. I did the same here now, but consider removing this and just
Expand Down Expand Up @@ -236,7 +236,7 @@ auto Acts::AdaptiveMultiVertexFinder<vfitter_t, sfinder_t>::
addCompatibleTracksToVertex(
const std::vector<InputTrack>& tracks,
Vertex& vtx, FitterState_t& fitterState,
const VertexingOptions<InputTrack_t>& vertexingOptions) const
const VertexingOptions& vertexingOptions) const
-> Result<void> {
for (const auto& trk : tracks) {
auto params = m_extractParameters(trk);
Expand Down Expand Up @@ -271,7 +271,7 @@ auto Acts::AdaptiveMultiVertexFinder<vfitter_t, sfinder_t>::
Vertex& vtx,
const Vertex& currentConstraint,
FitterState_t& fitterState,
const VertexingOptions<InputTrack_t>& vertexingOptions) const
const VertexingOptions& vertexingOptions) const
-> Result<bool> {
// Recover from cases where no compatible tracks to vertex
// candidate were found
Expand Down Expand Up @@ -330,7 +330,7 @@ auto Acts::AdaptiveMultiVertexFinder<vfitter_t, sfinder_t>::
Vertex& vtx,
const Vertex& currentConstraint,
FitterState_t& fitterState,
const VertexingOptions<InputTrack_t>& vertexingOptions) const
const VertexingOptions& vertexingOptions) const
-> Result<bool> {
// Add vertex info to fitter state
fitterState.vtxInfoMap[&vtx] =
Expand Down Expand Up @@ -569,7 +569,7 @@ auto Acts::AdaptiveMultiVertexFinder<vfitter_t, sfinder_t>::deleteLastVertex(
std::vector<std::unique_ptr<Vertex>>& allVertices,
std::vector<Vertex*>& allVerticesPtr,
FitterState_t& fitterState,
const VertexingOptions<InputTrack_t>& vertexingOptions) const
const VertexingOptions& vertexingOptions) const
-> Result<void> {
allVertices.pop_back();
allVerticesPtr.pop_back();
Expand Down
17 changes: 8 additions & 9 deletions Core/include/Acts/Vertexing/AdaptiveMultiVertexFitter.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -200,9 +200,9 @@ class AdaptiveMultiVertexFitter {
/// @param vertexingOptions Vertexing options
///
/// @return Result<void> object
Result<void> addVtxToFit(
State& state, Vertex& newVertex, const Linearizer_t& linearizer,
const VertexingOptions<InputTrack_t>& vertexingOptions) const;
Result<void> addVtxToFit(State& state, Vertex& newVertex,
const Linearizer_t& linearizer,
const VertexingOptions& vertexingOptions) const;

/// @brief Performs a simultaneous fit of all vertices in
/// state.vertexCollection
Expand All @@ -212,9 +212,8 @@ class AdaptiveMultiVertexFitter {
/// @param vertexingOptions Vertexing options
///
/// @return Result<void> object
Result<void> fit(
State& state, const Linearizer_t& linearizer,
const VertexingOptions<InputTrack_t>& vertexingOptions) const;
Result<void> fit(State& state, const Linearizer_t& linearizer,
const VertexingOptions& vertexingOptions) const;

private:
/// Configuration object
Expand Down Expand Up @@ -250,7 +249,7 @@ class AdaptiveMultiVertexFitter {
/// @param vertexingOptions Vertexing options
Result<void> prepareVertexForFit(
State& state, Vertex* vtx,
const VertexingOptions<InputTrack_t>& vertexingOptions) const;
const VertexingOptions& vertexingOptions) const;

/// @brief Sets the vertexCompatibility for all TrackAtVertex objects
/// at the current vertex
Expand All @@ -260,7 +259,7 @@ class AdaptiveMultiVertexFitter {
/// @param vertexingOptions Vertexing options
Result<void> setAllVertexCompatibilities(
State& state, Vertex* currentVtx,
const VertexingOptions<input_track_t>& vertexingOptions) const;
const VertexingOptions& vertexingOptions) const;

/// @brief Sets weights to the track according to Eq.(5.46) in Ref.(1)
/// and updates the vertices by calling the VertexUpdater
Expand All @@ -270,7 +269,7 @@ class AdaptiveMultiVertexFitter {
/// @param vertexingOptions Vertexing options
Result<void> setWeightsAndUpdate(
State& state, const Linearizer_t& linearizer,
const VertexingOptions<input_track_t>& vertexingOptions) const;
const VertexingOptions& vertexingOptions) const;

/// @brief Collects the compatibility values of the track `trk`
/// wrt to all of its associated vertices
Expand Down
10 changes: 5 additions & 5 deletions Core/include/Acts/Vertexing/AdaptiveMultiVertexFitter.ipp
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ template <typename input_track_t, typename linearizer_t>
Acts::Result<void>
Acts::AdaptiveMultiVertexFitter<input_track_t, linearizer_t>::fit(
State& state, const linearizer_t& linearizer,
const VertexingOptions<input_track_t>& vertexingOptions) const {
const VertexingOptions& vertexingOptions) const {
// Reset annealing tool
state.annealingState = AnnealingUtility::State();

Expand Down Expand Up @@ -122,7 +122,7 @@ Acts::Result<void>
Acts::AdaptiveMultiVertexFitter<input_track_t, linearizer_t>::addVtxToFit(
State& state, Vertex& newVertex,
const linearizer_t& linearizer,
const VertexingOptions<input_track_t>& vertexingOptions) const {
const VertexingOptions& vertexingOptions) const {
if (state.vtxInfoMap[&newVertex].trackLinks.empty()) {
ACTS_ERROR(
"newVertex does not have any associated tracks (i.e., its trackLinks "
Expand Down Expand Up @@ -204,7 +204,7 @@ template <typename input_track_t, typename linearizer_t>
Acts::Result<void> Acts::
AdaptiveMultiVertexFitter<input_track_t, linearizer_t>::prepareVertexForFit(
State& state, Vertex* vtx,
const VertexingOptions<input_track_t>& vertexingOptions) const {
const VertexingOptions& vertexingOptions) const {
// Vertex info object
auto& vtxInfo = state.vtxInfoMap[vtx];
// Vertex seed position
Expand All @@ -229,7 +229,7 @@ Acts::Result<void>
Acts::AdaptiveMultiVertexFitter<input_track_t, linearizer_t>::
setAllVertexCompatibilities(
State& state, Vertex* vtx,
const VertexingOptions<input_track_t>& vertexingOptions) const {
const VertexingOptions& vertexingOptions) const {
VertexInfo& vtxInfo = state.vtxInfoMap[vtx];

// Loop over all tracks that are associated with vtx and estimate their
Expand Down Expand Up @@ -272,7 +272,7 @@ template <typename input_track_t, typename linearizer_t>
Acts::Result<void> Acts::
AdaptiveMultiVertexFitter<input_track_t, linearizer_t>::setWeightsAndUpdate(
State& state, const linearizer_t& linearizer,
const VertexingOptions<input_track_t>& vertexingOptions) const {
const VertexingOptions& vertexingOptions) const {
for (auto vtx : state.vertexCollection) {
VertexInfo& vtxInfo = state.vtxInfoMap[vtx];

Expand Down
2 changes: 1 addition & 1 deletion Core/include/Acts/Vertexing/DummyVertexFitter.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ class DummyVertexFitter {

/// @brief Dummy fit method
Result<Vertex> fit(const std::vector<input_track_t>&, const linearizer_t&,
const VertexingOptions<input_track_t>&) const;
const VertexingOptions&) const;
};

} // namespace Acts
2 changes: 1 addition & 1 deletion Core/include/Acts/Vertexing/FullBilloirVertexFitter.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -112,7 +112,7 @@ class FullBilloirVertexFitter {
/// @return Fitted vertex
Result<Vertex> fit(const std::vector<InputTrack>& paramVector,
const linearizer_t& linearizer,
const VertexingOptions<input_track_t>& vertexingOptions,
const VertexingOptions& vertexingOptions,
State& state) const;

private:
Expand Down
2 changes: 1 addition & 1 deletion Core/include/Acts/Vertexing/FullBilloirVertexFitter.ipp
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ template <typename input_track_t, typename linearizer_t>
Acts::Result<Acts::Vertex>
Acts::FullBilloirVertexFitter<input_track_t, linearizer_t>::fit(
const std::vector<InputTrack>& paramVector, const linearizer_t& linearizer,
const VertexingOptions<input_track_t>& vertexingOptions,
const VertexingOptions& vertexingOptions,
State& state) const {
unsigned int nTracks = paramVector.size();
double chi2 = std::numeric_limits<double>::max();
Expand Down
7 changes: 3 additions & 4 deletions Core/include/Acts/Vertexing/GridDensityVertexFinder.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -105,10 +105,9 @@ class GridDensityVertexFinder {
///
/// @return Vector of vertices, filled with a single
/// vertex (for consistent interfaces)
Result<std::vector<Vertex>> find(
const std::vector<InputTrack>& trackVector,
const VertexingOptions<InputTrack_t>& vertexingOptions,
State& state) const;
Result<std::vector<Vertex>> find(const std::vector<InputTrack>& trackVector,
const VertexingOptions& vertexingOptions,
State& state) const;

/// @brief Constructor used if InputTrack_t type == BoundTrackParameters
///
Expand Down
2 changes: 1 addition & 1 deletion Core/include/Acts/Vertexing/GridDensityVertexFinder.ipp
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
template <int mainGridSize, int trkGridSize, typename vfitter_t>
auto Acts::GridDensityVertexFinder<mainGridSize, trkGridSize, vfitter_t>::find(
const std::vector<InputTrack>& trackVector,
const VertexingOptions<InputTrack_t>& vertexingOptions, State& state) const
const VertexingOptions& vertexingOptions, State& state) const
-> Result<std::vector<Vertex>> {
// Remove density contributions from tracks removed from track collection
if (m_cfg.cacheGridStateForTrackRemoval && state.isInitialized &&
Expand Down
31 changes: 13 additions & 18 deletions Core/include/Acts/Vertexing/IterativeVertexFinder.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -173,10 +173,9 @@ class IterativeVertexFinder {
/// @param state State for fulfilling interfaces
///
/// @return Collection of vertices found by finder
Result<std::vector<Vertex>> find(
const std::vector<InputTrack>& trackVector,
const VertexingOptions<InputTrack_t>& vertexingOptions,
State& state) const;
Result<std::vector<Vertex>> find(const std::vector<InputTrack>& trackVector,
const VertexingOptions& vertexingOptions,
State& state) const;

private:
/// Configuration object
Expand All @@ -197,9 +196,8 @@ class IterativeVertexFinder {
///
/// @param seedTracks Seeding tracks
/// @param vertexingOptions Vertexing options
Result<Vertex> getVertexSeed(
const std::vector<InputTrack>& seedTracks,
const VertexingOptions<InputTrack_t>& vertexingOptions) const;
Result<Vertex> getVertexSeed(const std::vector<InputTrack>& seedTracks,
const VertexingOptions& vertexingOptions) const;

/// @brief Removes all tracks in tracksToRemove from seedTracks
///
Expand All @@ -216,11 +214,11 @@ class IterativeVertexFinder {
/// @param perigeeSurface The perigee surface at vertex position
/// @param vertexingOptions Vertexing options
/// @param state The state object
Result<double> getCompatibility(
const BoundTrackParameters& params, const Vertex& vertex,
const Surface& perigeeSurface,
const VertexingOptions<InputTrack_t>& vertexingOptions,
State& state) const;
Result<double> getCompatibility(const BoundTrackParameters& params,
const Vertex& vertex,
const Surface& perigeeSurface,
const VertexingOptions& vertexingOptions,
State& state) const;

/// @brief Function that removes used tracks compatible with
/// current vertex (`vertex`) from `tracksToFit` and `seedTracks`
Expand All @@ -234,8 +232,7 @@ class IterativeVertexFinder {
Result<void> removeUsedCompatibleTracks(
Vertex& vertex, std::vector<InputTrack>& tracksToFit,
std::vector<InputTrack>& seedTracks,
const VertexingOptions<InputTrack_t>& vertexingOptions,
State& state) const;
const VertexingOptions& vertexingOptions, State& state) const;

/// @brief Function that fills vector with tracks compatible with seed vertex
///
Expand All @@ -249,8 +246,7 @@ class IterativeVertexFinder {
const std::vector<InputTrack>& seedTracks, const Vertex& seedVertex,
std::vector<InputTrack>& tracksToFitOut,
std::vector<InputTrack>& tracksToFitSplitVertexOut,
const VertexingOptions<InputTrack_t>& vertexingOptions,
State& state) const;
const VertexingOptions& vertexingOptions, State& state) const;

/// @brief Function that reassigns tracks from other vertices
/// to the current vertex if they are more compatible
Expand All @@ -268,8 +264,7 @@ class IterativeVertexFinder {
std::vector<Vertex>& vertexCollection, Vertex& currentVertex,
std::vector<InputTrack>& tracksToFit, std::vector<InputTrack>& seedTracks,
const std::vector<InputTrack>& origTracks,
const VertexingOptions<InputTrack_t>& vertexingOptions,
State& state) const;
const VertexingOptions& vertexingOptions, State& state) const;

/// @brief Counts all tracks that are significant for a vertex
///
Expand Down
Loading

0 comments on commit 165d9a3

Please sign in to comment.