Class Acts::GridDensityVertexFinder

template<int mainGridSize = 2000, int trkGridSize = 15, typename vfitter_t = DummyVertexFitter<>>
class GridDensityVertexFinder

Vertex finder that makes use of a track density grid.

Each single track is modelled as a 2(!)-dim Gaussian distribution grid in the d0-z0 plane, but only the overlap with the z-axis (i.e. a 1-dim density vector) needs to be calculated. All track contributions along the beam axis (main density grid) a superimposed and the z-value of the bin with the highest track density is returned as a vertex candidate.

Template Parameters
  • mainGridSize – The size of the z-axis 1-dim main density grid

  • trkGridSize – The 2(!)-dim grid size of a single track, i.e. a single track is modelled as a (trkGridSize x trkGridSize) grid in the d0-z0 plane. Note: trkGridSize has to be an odd value.

Public Types

using MainGridVector = typename GridDensity::MainGridVector
using TrackGridVector = typename GridDensity::TrackGridVector

Public Functions

template<typename T = InputTrack_t, std::enable_if_t<std::is_same<T, BoundTrackParameters>::value, int> = 0>
inline GridDensityVertexFinder(const Config &cfg)

Constructor used if InputTrack_t type == BoundTrackParameters.

Parameters

cfg – Configuration object

template<typename T = InputTrack_t, std::enable_if_t<std::is_same<T, BoundTrackParameters>::value, int> = 0>
inline GridDensityVertexFinder()

Default constructor used if InputTrack_t type == BoundTrackParameters.

inline GridDensityVertexFinder(const Config &cfg, const std::function<BoundTrackParameters(InputTrack_t)> &func)

Constructor for user-defined InputTrack_t type =! BoundTrackParameters.

Parameters
  • cfg – Configuration object

  • func – Function extracting BoundTrackParameters from InputTrack_t object

inline GridDensityVertexFinder(const std::function<BoundTrackParameters(InputTrack_t)> &func)

Constructor for user-defined InputTrack_t type =! BoundTrackParameters with default Config object.

Parameters

func – Function extracting BoundTrackParameters from InputTrack_t object

Result<std::vector<Vertex<InputTrack_t>>> find(const std::vector<const InputTrack_t*> &trackVector, const VertexingOptions<InputTrack_t> &vertexingOptions, State &state) const

Function that finds single vertex candidate.

Parameters
  • trackVector – Input track collection

  • vertexingOptions – Vertexing options

  • state – The state object to cache the density grid and density contributions of each track, to be used if cacheGridStateForTrackRemoval == true

Returns

Vector of vertices, filled with a single vertex (for consistent interfaces)

struct Config

The Config struct.

Public Functions

inline Config(float zMinMax = 100)
Parameters

zMinMax – min and max z value of big z-axis grid

inline Config(const GridDensity &gDensity)
Parameters

gDensity – The grid density

Public Members

bool cacheGridStateForTrackRemoval = true
double d0SignificanceCut = maxD0TrackSignificance * maxD0TrackSignificance
bool estimateSeedWidth = false
GridDensity gridDensity
double maxD0TrackSignificance = 3.5
double maxZ0TrackSignificance = 12.
double z0SignificanceCut = maxZ0TrackSignificance * maxZ0TrackSignificance
struct State

The State struct.

Only needed if cacheGridStateForTrackRemoval == true

Public Members

std::map<const InputTrack_t*, std::pair<int, TrackGridVector>> binAndTrackGridMap
bool isInitialized = false
MainGridVector mainGrid = MainGridVector::Zero()
std::map<const InputTrack_t*, bool> trackSelectionMap
std::vector<const InputTrack_t*> tracksToRemove