5#ifndef ACTSVERTEXRECONSTRUCTION_HOUGHVTXFINDERTOOL_H
6#define ACTSVERTEXRECONSTRUCTION_HOUGHVTXFINDERTOOL_H
10#include "Gaudi/Property.h"
11#include "GaudiKernel/EventContext.h"
19#include "Acts/Definitions/Algebra.hpp"
20#include "Acts/Vertexing/HoughVertexFinder2.hpp"
21#include "Acts/EventData/SpacePointContainer2.hpp"
33 using base_class::base_class;
36 virtual std::pair<xAOD::VertexContainer *, xAOD::VertexAuxContainer *>
38 ATH_MSG_ERROR(
"Can't call HoughVtxFinderTool::findVertex(ctx, trackTES)");
39 return std::make_pair(
nullptr,
nullptr);
41 virtual std::pair<xAOD::VertexContainer *, xAOD::VertexAuxContainer *>
43 ATH_MSG_ERROR(
"Can't call HoughVtxFinderTool::findVertex(ctx, trackParticles)");
44 return std::make_pair(
nullptr,
nullptr);
48 std::pair<std::unique_ptr<xAOD::VertexContainer>, std::unique_ptr<xAOD::VertexAuxContainer>>
53 std::unique_ptr<const Acts::Logger>
m_logger{
nullptr};
61 UnsignedIntegerProperty
m_minSPs{
this,
"minSPs", 100,
"Minimum amount of spacepoints to attempt vertex finding"};
62 BooleanProperty
m_useBeamSpot{
this,
"useBeamSpot",
true,
"Use beam spot XY positions as the default vertex position"};
67 UnsignedIntegerProperty
m_targetSPs{
this,
"targetSPs", 20000,
"Ideal amount of spacepoints"};
68 DoubleProperty
m_minAbsEta{
this,
"minAbsEta", 0.3,
"Minimum range in |eta|"};
69 DoubleProperty
m_maxAbsEta{
this,
"maxAbsEta", 4.0,
"Maximum range in |eta|"};
70 UnsignedIntegerProperty
m_minHits{
this,
"minHits", 4,
"Minimum number of hits in Hough plane to consider the cell to contain a track"};
71 UnsignedIntegerProperty
m_fillNeighbours{
this,
"fillNeighbours", 0,
"Number of neighbouring bins in Hough plane to fill"};
73 DoubleArrayProperty
m_absEtaRanges{
this,
"absEtaRanges", {2.0, 4.0},
"Upper threshold for eta ranges"};
74 DoubleArrayProperty
m_absEtaFractions{
this,
"absEtaFractions", {0.4, 0.6},
"Amount of spacepoints in such eta ranges"};
76 DoubleArrayProperty
m_rangeIterZ{
this,
"rangeIterZ", {200.0, 30.0, 16.0},
"Maximum vertex range to consider"};
77 UnsignedIntegerArrayProperty
m_nBinsZIterZ{
this,
"nBinsZIterZ", {800, 180, 80},
"Number of bins in Z direction"};
78 UnsignedIntegerArrayProperty
m_nBinsCotThetaIterZ{
this,
"nBinsCotThetaIterZ", {8000, 8000, 8000},
"Number of bins in cot(theta) direction"};
79 DoubleProperty
m_binsCotThetaDecrease{
this,
"binsCotThetaDecrease", 1.35,
"For every magnitude (in natural log) below targetSPs, the number of bins in cot(theta) will decrease by this factor"};
80 UnsignedIntegerProperty
m_peakWidth{
this,
"peakWidth", 3,
"Width of the peak when estimating vertex position"};
81 DoubleArrayProperty
m_defVtxPosition{
this,
"defVtxPosition", {0.0, 0.0, 0.0},
"Default position of the vertex, might be overwritten by beamspot XY position"};
DataVector< Trk::Track > TrackCollection
This typedef represents a collection of Trk::Track objects.
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
SpacePointContainer_v1 SpacePointContainer
Define the version of the space point container.
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".