ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
Acts
ActsCalibration
ActsCalibrators
src
SourceLinkHash.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
ActsCalibrators/SourceLinkHash.h
"
6
#include "
ActsCalibrators/xAODUncalibMeasCalibrator.h
"
7
#include "
ActsCalibrators/TrkPrepRawDataCalibrator.h
"
8
#include "
ActsCalibrators/TrkMeasurementCalibrator.h
"
9
10
#include <cassert>
11
namespace
ActsTrk::detail
{
12
13
std::size_t
sourceLinkHash
(
const
Acts::SourceLink &slink) {
14
using namespace
ActsTrk::detail
;
15
switch
(
MeasurementCalibratorBase::getType
(slink)) {
16
using
enum
SourceLinkType
;
17
case
xAODUnCalibMeas
:
18
return
xAODUncalibMeasCalibrator::unpack
(slink)->
identifier
();
19
case
TrkMeasurement
: {
20
const
auto
* rio =
dynamic_cast<
const
Trk::RIO_OnTrack
*
>
(
TrkMeasurementCalibrator::unpack
(slink));
21
assert(rio !=
nullptr
);
22
return
rio->identify().get_compact();
23
}
case
TrkPrepRawData
: {
24
return
TrkPrepRawDataCalibrator::unpack
(slink)->
identify
().
get_compact
();
25
}
default
:
26
break
;
27
}
28
return
0ul;
29
}
30
31
bool
sourceLinkEquality
(
const
Acts::SourceLink &
a
,
const
Acts::SourceLink &b) {
32
return
sourceLinkHash
(
a
) ==
sourceLinkHash
(b);
33
}
34
35
}
a
static Double_t a
Definition
LArPhysWaveHECTool.cxx:38
SourceLinkHash.h
TrkMeasurementCalibrator.h
TrkPrepRawDataCalibrator.h
ActsTrk::detail::MeasurementCalibratorBase::getType
static SourceLinkType getType(const Acts::SourceLink &sl)
Returns the enumeration corresponding to the object type cached within the Acts::SourceLink.
ActsTrk::detail::TrkMeasurementCalibrator::unpack
static const Trk::MeasurementBase * unpack(const Acts::SourceLink &sl)
Unpacks the Acts::SourceLink to a Trk measurement.
Definition
TrkMeasurementCalibrator.cxx:8
ActsTrk::detail::TrkPrepRawDataCalibrator::unpack
static const Trk::PrepRawData * unpack(const Acts::SourceLink &sl)
Unpack the prepraw data measurement from the source link.
Definition
TrkPrepRawDataCalibrator.cxx:12
ActsTrk::detail::xAODUncalibMeasCalibrator::unpack
static const xAOD::UncalibratedMeasurement * unpack(const Acts::SourceLink &sl)
Helper method to unpack an Acts source link to an uncalibrated measurement.
Definition
xAODUncalibMeasCalibrator.cxx:9
Identifier::get_compact
value_type get_compact() const
Get the compact id.
Trk::PrepRawData::identify
Identifier identify() const
return the identifier
Trk::RIO_OnTrack
Class to handle RIO On Tracks ROT) for InDet and Muons, it inherits from the common MeasurementBase.
Definition
RIO_OnTrack.h:70
xAOD::UncalibratedMeasurement_v1::identifier
DetectorIdentType identifier() const
Returns the full Identifier of the measurement.
ActsTrk::detail
Hash functions to pack the source link into unordered_maps / unordered_sets.
Definition
MeasurementCalibratorBase.h:31
ActsTrk::detail::sourceLinkEquality
bool sourceLinkEquality(const Acts::SourceLink &a, const Acts::SourceLink &b)
Returns whether two source links are equal.
Definition
SourceLinkHash.cxx:31
ActsTrk::detail::sourceLinkHash
std::size_t sourceLinkHash(const Acts::SourceLink &sl)
Calculates the source link hash which is evaluated to be the identifier of the underlying sourcelink.
Definition
SourceLinkHash.cxx:13
ActsTrk::detail::SourceLinkType
SourceLinkType
Enumeration to distinguish between the ATLAS EDM -> Acts::SourceLink variants.
Definition
SourceLinkType.h:12
ActsTrk::detail::SourceLinkType::xAODUnCalibMeas
@ xAODUnCalibMeas
UnCalibrated Trk::PrepRawData objects.
Definition
SourceLinkType.h:15
ActsTrk::detail::SourceLinkType::TrkPrepRawData
@ TrkPrepRawData
Calibrated Trk::MeasurementBase objects.
Definition
SourceLinkType.h:14
ActsTrk::detail::SourceLinkType::TrkMeasurement
@ TrkMeasurement
Definition
SourceLinkType.h:13
xAODUncalibMeasCalibrator.h
Generated on
for ATLAS Offline Software by
1.17.0