5#ifndef ACTSTRK_EXPECTEDHITUTILS_H
6#define ACTSTRK_EXPECTEDHITUTILS_H
9#include "GaudiKernel/EventContext.h"
10#include "Acts/Surfaces/CylinderSurface.hpp"
11#include "Acts/EventData/TrackParameters.hpp"
13#include <Acts/EventData/ProxyAccessor.hpp>
34 template <
typename track_container_t>
35 static void add(track_container_t& trackContainer) {
36 trackContainer.template addColumn<unsigned int>(
kPixelBarrel);
37 trackContainer.template addColumn<unsigned int>(
kPixelEndcap);
38 trackContainer.template addColumn<unsigned int>(
kStripBarrel);
39 trackContainer.template addColumn<unsigned int>(
kStripEndcap);
42 template <
typename track_container_t>
43 static bool exists(track_container_t& trackContainer) {
50 template <
typename track_proxy_t>
51 static void set(track_proxy_t& track, std::array<unsigned int, 4> values) {
52 static const Acts::ProxyAccessor<unsigned int> pixelBarrel{
kPixelBarrel};
53 static const Acts::ProxyAccessor<unsigned int> pixelEndcap{
kPixelEndcap};
54 static const Acts::ProxyAccessor<unsigned int> stripBarrel{
kStripBarrel};
55 static const Acts::ProxyAccessor<unsigned int> stripEndcap{
kStripEndcap};
56 pixelBarrel(track) = values.at(0);
57 pixelEndcap(track) = values.at(1);
58 stripBarrel(track) = values.at(2);
59 stripEndcap(track) = values.at(3);
62 template <
typename track_proxy_t>
63 static std::array<unsigned int, 4>
get(
const track_proxy_t& track) {
64 static const Acts::ConstProxyAccessor<unsigned int> pixelBarrel{
kPixelBarrel};
65 static const Acts::ConstProxyAccessor<unsigned int> pixelEndcap{
kPixelEndcap};
66 static const Acts::ConstProxyAccessor<unsigned int> stripBarrel{
kStripBarrel};
67 static const Acts::ConstProxyAccessor<unsigned int> stripEndcap{
kStripEndcap};
91 const Acts::BoundTrackParameters& perigee_parameters,
Athena definition of the Eigen plugin.
std::array< unsigned int, 4 > expectedLayerPattern(const EventContext &ctx, const IExtrapolationTool &extrapolator, const Acts::BoundTrackParameters &perigee_parameters, double pathLimit)
Extrapolate from the perigee outwards and gather information which detector layers should have hits.
void addToExpectedLayerPattern(std::array< unsigned int, 4 > &pattern, const ActsDetectorElement &detElement)
Helper functions to encode the expected layer patterns in separate columns.
static const std::string_view kExpectedLayerPatternColumnName
static std::array< unsigned int, 4 > get(const track_proxy_t &track)
static void add(track_container_t &trackContainer)
static const std::string kPixelEndcap
static const std::string kPixelBarrel
static const std::string kStripEndcap
static bool exists(track_container_t &trackContainer)
static const std::string kStripBarrel
static void set(track_proxy_t &track, std::array< unsigned int, 4 > values)