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/HoughVertexFinder.hpp"
32 using base_class::base_class;
35 virtual std::pair<xAOD::VertexContainer *, xAOD::VertexAuxContainer *>
37 ATH_MSG_ERROR(
"Can't call HoughVtxFinderTool::findVertex(ctx, trackTES)");
38 return std::make_pair(
nullptr,
nullptr);
40 virtual std::pair<xAOD::VertexContainer *, xAOD::VertexAuxContainer *>
42 ATH_MSG_ERROR(
"Can't call HoughVtxFinderTool::findVertex(ctx, trackParticles)");
43 return std::make_pair(
nullptr,
nullptr);
47 std::pair<std::unique_ptr<xAOD::VertexContainer>, std::unique_ptr<xAOD::VertexAuxContainer>>
52 std::unique_ptr<const Acts::Logger>
m_logger{
nullptr};
58 double x()
const {
return m_x; }
59 double y()
const {
return m_y; }
60 double z()
const {
return m_z; }
71 UnsignedIntegerProperty
m_minSPs{
this,
"minSPs", 100,
"Minimum amount of spacepoints to attempt vertex finding"};
80 UnsignedIntegerProperty
m_targetSPs{
this,
"targetSPs", 20000,
"Ideal amount of spacepoints"};
81 DoubleProperty
m_minAbsEta{
this,
"minAbsEta", 0.3,
"Minimum range in |eta|"};
82 DoubleProperty
m_maxAbsEta{
this,
"maxAbsEta", 4.0,
"Maximum range in |eta|"};
83 UnsignedIntegerProperty
m_minHits{
this,
"minHits", 4,
"Minimum number of hits in Hough plane to consider the cell to contain a track"};
84 UnsignedIntegerProperty
m_fillNeighbours{
this,
"fillNeighbours", 0,
"Number of neighbouring bins in Hough plane to fill"};
86 DoubleArrayProperty
m_absEtaRanges{
this,
"absEtaRanges", {2.0, 4.0},
"Upper threshold for eta ranges"};
87 DoubleArrayProperty
m_absEtaFractions{
this,
"absEtaFractions", {0.4, 0.6},
"Amount of spacepoints in such eta ranges"};
89 DoubleArrayProperty
m_rangeIterZ{
this,
"rangeIterZ", {200.0, 30.0, 16.0},
"Maximum vertex range to consider"};
90 UnsignedIntegerArrayProperty
m_nBinsZIterZ{
this,
"nBinsZIterZ", {800, 180, 80},
"Number of bins in Z direction"};
91 UnsignedIntegerArrayProperty
m_nBinsCotThetaIterZ{
this,
"nBinsCotThetaIterZ", {8000, 8000, 8000},
"Number of bins in cot(theta) direction"};
92 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"};
93 UnsignedIntegerProperty
m_peakWidth{
this,
"peakWidth", 3,
"Width of the peak when estimating vertex position"};
94 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".