ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
Acts
ActsEvent
ActsEvent
ExpectedHitUtils.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef ACTSTRK_EXPECTEDHITUTILS_H
6
#define ACTSTRK_EXPECTEDHITUTILS_H
7
8
#include "
ActsGeometry/ActsDetectorElement.h
"
9
#include "GaudiKernel/EventContext.h"
10
#include "Acts/Surfaces/CylinderSurface.hpp"
11
#include "Acts/EventData/BoundTrackParameters.hpp"
12
#include "
ActsGeometryInterfaces/IExtrapolationTool.h
"
13
#include <Acts/EventData/ProxyAccessor.hpp>
14
#include <array>
15
16
class
ActsDetectorElement
;
17
18
namespace
ActsTrk::detail
{
19
25
struct
ExpectedLayerPatternHelper
{
26
inline
static
const
std::string_view
kExpectedLayerPatternColumnName
=
"expectedLayerPattern"
;
27
28
inline
static
const
std::string
kPixelBarrel
= std::string{
kExpectedLayerPatternColumnName
}+
"_PixelBarrel"
;
29
inline
static
const
std::string
kPixelEndcap
= std::string{
kExpectedLayerPatternColumnName
}+
"_PixelEndcap"
;
30
inline
static
const
std::string
kStripBarrel
= std::string{
kExpectedLayerPatternColumnName
}+
"_StripBarrel"
;
31
inline
static
const
std::string
kStripEndcap
= std::string{
kExpectedLayerPatternColumnName
}+
"_StripEndcap"
;
32
33
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
);
40
}
41
42
template
<
typename
track_container_t>
43
static
bool
exists
(track_container_t& trackContainer) {
44
return
trackContainer.hasColumn(
kPixelBarrel
)
45
&& trackContainer.hasColumn(
kPixelEndcap
)
46
&& trackContainer.hasColumn(
kStripBarrel
)
47
&& trackContainer.hasColumn(
kStripEndcap
);
48
}
49
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);
60
}
61
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
};
68
69
return
{
70
pixelBarrel(track),
71
pixelEndcap(track),
72
stripBarrel(track),
73
stripEndcap(track)
74
};
75
}
76
77
};
78
79
89
std::array<unsigned int,4>
expectedLayerPattern
(
const
EventContext& ctx,
90
const
ActsTrk::IExtrapolationTool
&extrapolator,
91
const
Acts::BoundTrackParameters& perigee_parameters,
92
double
pathLimit);
93
98
std::array<unsigned int,4>
expectedLayerPattern
(std::span<const ActsDetectorElement*> detectorElements);
99
100
void
addToExpectedLayerPattern
(std::array<unsigned int,4>& pattern,
const
ActsDetectorElement
& detElement);
101
}
102
103
#endif
ActsDetectorElement.h
IExtrapolationTool.h
ActsDetectorElement
Definition
ActsDetectorElement.h:58
ActsTrk::IExtrapolationTool
Tool to extrapolate bound track parameters through the Acts::TrackingGeometry.
Definition
IExtrapolationTool.h:30
ActsTrk::detail
Hash functions to pack the source link into unordered_maps / unordered_sets.
Definition
MeasurementCalibratorBase.h:31
ActsTrk::detail::expectedLayerPattern
std::array< unsigned int, 4 > expectedLayerPattern(const EventContext &ctx, const ActsTrk::IExtrapolationTool &extrapolator, const Acts::BoundTrackParameters &perigee_parameters, double pathLimit)
Extrapolate from the perigee outwards and gather information which detector layers should have hits.
Definition
ExpectedHitUtils.cxx:14
ActsTrk::detail::addToExpectedLayerPattern
void addToExpectedLayerPattern(std::array< unsigned int, 4 > &pattern, const ActsDetectorElement &detElement)
Definition
ExpectedHitUtils.cxx:43
ActsTrk::detail::ExpectedLayerPatternHelper
Helper functions to encode the expected layer patterns in separate columns.
Definition
ExpectedHitUtils.h:25
ActsTrk::detail::ExpectedLayerPatternHelper::kExpectedLayerPatternColumnName
static const std::string_view kExpectedLayerPatternColumnName
Definition
ExpectedHitUtils.h:26
ActsTrk::detail::ExpectedLayerPatternHelper::get
static std::array< unsigned int, 4 > get(const track_proxy_t &track)
Definition
ExpectedHitUtils.h:63
ActsTrk::detail::ExpectedLayerPatternHelper::add
static void add(track_container_t &trackContainer)
Definition
ExpectedHitUtils.h:35
ActsTrk::detail::ExpectedLayerPatternHelper::kPixelEndcap
static const std::string kPixelEndcap
Definition
ExpectedHitUtils.h:29
ActsTrk::detail::ExpectedLayerPatternHelper::kPixelBarrel
static const std::string kPixelBarrel
Definition
ExpectedHitUtils.h:28
ActsTrk::detail::ExpectedLayerPatternHelper::kStripEndcap
static const std::string kStripEndcap
Definition
ExpectedHitUtils.h:31
ActsTrk::detail::ExpectedLayerPatternHelper::exists
static bool exists(track_container_t &trackContainer)
Definition
ExpectedHitUtils.h:43
ActsTrk::detail::ExpectedLayerPatternHelper::kStripBarrel
static const std::string kStripBarrel
Definition
ExpectedHitUtils.h:30
ActsTrk::detail::ExpectedLayerPatternHelper::set
static void set(track_proxy_t &track, std::array< unsigned int, 4 > values)
Definition
ExpectedHitUtils.h:51
Generated on
for ATLAS Offline Software by
1.17.0