ATLAS Offline Software
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
ActsTrk::MeasurementParameterMap Struct Reference

#include <MeasurementCalibrator2.h>

Collaboration diagram for ActsTrk::MeasurementParameterMap:

Public Types

template<std::size_t N>
using ParameterMap = std::array< unsigned char, N >
 

Public Member Functions

xAOD::UncalibMeasType measurementTypeFromVolumeId (unsigned int volume_id) const
 
void setMeasurementTypeForVolumeId (unsigned int volume_id, xAOD::UncalibMeasType type)
 
 MeasurementParameterMap ()
 
template<std::size_t DIM>
ParameterMap< DIM > parameterMap ([[maybe_unused]] const Acts::GeometryContext &, [[maybe_unused]] const Acts::CalibrationContext &, const Acts::Surface &surface) const
 

Static Public Member Functions

static constexpr ParameterMap< 1 > makeStripProjector (bool annulus_strip)
 
static constexpr std::array< ParameterMap< 1 >, 2 > makeStripProjectorArray ()
 
static constexpr ParameterMap< 2 > makePixelProjector ()
 

Public Attributes

std::array< unsigned char, 128 > m_volumeIdToMeasurementType {}
 
std::array< ParameterMap< 1 >, 2 > m_stripProjector
 
ParameterMap< 2 > m_pixelProjector
 

Detailed Description

Definition at line 35 of file MeasurementCalibrator2.h.

Member Typedef Documentation

◆ ParameterMap

template<std::size_t N>
using ActsTrk::MeasurementParameterMap::ParameterMap = std::array<unsigned char, N>

Definition at line 37 of file MeasurementCalibrator2.h.

Constructor & Destructor Documentation

◆ MeasurementParameterMap()

ActsTrk::MeasurementParameterMap::MeasurementParameterMap ( )
inline

Definition at line 68 of file MeasurementCalibrator2.h.

71  {
72  // @TODO get mapping from converter tool ?
73  std::vector<unsigned int> pixel_vol {16, 15, 9, 20, 19, 18, 10, 14, 13, 8};
74  for (unsigned int vol_id : pixel_vol) {
76  }
77  std::vector<unsigned int> strip_vol {23, 22, 24};
78  for (unsigned int vol_id : strip_vol) {
80  }
81  }

Member Function Documentation

◆ makePixelProjector()

static constexpr ParameterMap<2> ActsTrk::MeasurementParameterMap::makePixelProjector ( )
inlinestaticconstexpr

Definition at line 52 of file MeasurementCalibrator2.h.

52  {
53  return ParameterMap<2>{static_cast<unsigned char>(Acts::eBoundLoc0), static_cast<unsigned char>(Acts::eBoundLoc1)};
54  }

◆ makeStripProjector()

static constexpr ParameterMap<1> ActsTrk::MeasurementParameterMap::makeStripProjector ( bool  annulus_strip)
inlinestaticconstexpr

Definition at line 39 of file MeasurementCalibrator2.h.

39  {
40  if (annulus_strip) {
41  return ParameterMap<1>{static_cast<unsigned char>(Acts::eBoundLoc1)};
42  } else {
43  return ParameterMap<1>{static_cast<unsigned char>(Acts::eBoundLoc0)};
44  }
45  }

◆ makeStripProjectorArray()

static constexpr std::array<ParameterMap<1>,2> ActsTrk::MeasurementParameterMap::makeStripProjectorArray ( )
inlinestaticconstexpr

Definition at line 47 of file MeasurementCalibrator2.h.

47  {
48  return std::array<ParameterMap<1>,2>{makeStripProjector(false), makeStripProjector(true) };
49  }

◆ measurementTypeFromVolumeId()

xAOD::UncalibMeasType ActsTrk::MeasurementParameterMap::measurementTypeFromVolumeId ( unsigned int  volume_id) const
inline

Definition at line 57 of file MeasurementCalibrator2.h.

57  {
58  unsigned char shift = (volume_id%2) ? 4 : 0;
59  unsigned char idx = volume_id/2;
60  return static_cast<xAOD::UncalibMeasType>((m_volumeIdToMeasurementType[idx] >> shift) & 0xf);
61  }

◆ parameterMap()

template<std::size_t DIM>
ParameterMap<DIM> ActsTrk::MeasurementParameterMap::parameterMap ( [[maybe_unused] ] const Acts::GeometryContext &  ,
[[maybe_unused] ] const Acts::CalibrationContext &  ,
const Acts::Surface &  surface 
) const
inline

Definition at line 84 of file MeasurementCalibrator2.h.

86  {
87  // @TODO make interface measurement type aware ?
88  if constexpr(DIM==2) {
89  assert( measurementTypeFromVolumeId(surface.geometryId().volume()) == xAOD::UncalibMeasType::PixelClusterType );
90  return m_pixelProjector;
91  }
92  else if constexpr(DIM==1) {
93  assert( measurementTypeFromVolumeId(surface.geometryId().volume()) == xAOD::UncalibMeasType::StripClusterType );
94  auto boundType = surface.bounds().type();
95  const std::size_t projector_idx = boundType == Acts::SurfaceBounds::eAnnulus;
96  return m_stripProjector[projector_idx];
97  }
98  else {
99  throw std::runtime_error("Unsupported dimension");
100  }
101 
102  }

◆ setMeasurementTypeForVolumeId()

void ActsTrk::MeasurementParameterMap::setMeasurementTypeForVolumeId ( unsigned int  volume_id,
xAOD::UncalibMeasType  type 
)
inline

Definition at line 62 of file MeasurementCalibrator2.h.

62  {
63  static_assert( static_cast<unsigned int>(xAOD::UncalibMeasType::nTypes) < 16u );
64  unsigned char shift = (volume_id%2) ? 4 : 0;
65  unsigned char idx = volume_id/2;
66  m_volumeIdToMeasurementType[idx] |= ((static_cast<unsigned int>(type) & 0xf) << shift);
67  }

Member Data Documentation

◆ m_pixelProjector

ParameterMap<2> ActsTrk::MeasurementParameterMap::m_pixelProjector

Definition at line 104 of file MeasurementCalibrator2.h.

◆ m_stripProjector

std::array<ParameterMap<1>,2> ActsTrk::MeasurementParameterMap::m_stripProjector

Definition at line 103 of file MeasurementCalibrator2.h.

◆ m_volumeIdToMeasurementType

std::array<unsigned char, 128> ActsTrk::MeasurementParameterMap::m_volumeIdToMeasurementType {}

Definition at line 56 of file MeasurementCalibrator2.h.


The documentation for this struct was generated from the following file:
ActsTrk::MeasurementParameterMap::setMeasurementTypeForVolumeId
void setMeasurementTypeForVolumeId(unsigned int volume_id, xAOD::UncalibMeasType type)
Definition: MeasurementCalibrator2.h:62
xAOD::UncalibMeasType::StripClusterType
@ StripClusterType
ActsTrk::MeasurementParameterMap::m_stripProjector
std::array< ParameterMap< 1 >, 2 > m_stripProjector
Definition: MeasurementCalibrator2.h:103
Trk::u
@ u
Enums for curvilinear frames.
Definition: ParamDefs.h:83
ActsTrk::MeasurementParameterMap::m_volumeIdToMeasurementType
std::array< unsigned char, 128 > m_volumeIdToMeasurementType
Definition: MeasurementCalibrator2.h:56
ActsTrk::MeasurementParameterMap::measurementTypeFromVolumeId
xAOD::UncalibMeasType measurementTypeFromVolumeId(unsigned int volume_id) const
Definition: MeasurementCalibrator2.h:57
ActsTrk::MeasurementParameterMap::makeStripProjectorArray
static constexpr std::array< ParameterMap< 1 >, 2 > makeStripProjectorArray()
Definition: MeasurementCalibrator2.h:47
xAOD::UncalibMeasType::nTypes
@ nTypes
ActsTrk::MeasurementParameterMap::makePixelProjector
static constexpr ParameterMap< 2 > makePixelProjector()
Definition: MeasurementCalibrator2.h:52
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
xAOD::UncalibMeasType
UncalibMeasType
Define the type of the uncalibrated measurement.
Definition: MeasurementDefs.h:24
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
xAOD::UncalibMeasType::PixelClusterType
@ PixelClusterType
ActsTrk::MeasurementParameterMap::m_pixelProjector
ParameterMap< 2 > m_pixelProjector
Definition: MeasurementCalibrator2.h:104
ActsTrk::MeasurementParameterMap::makeStripProjector
static constexpr ParameterMap< 1 > makeStripProjector(bool annulus_strip)
Definition: MeasurementCalibrator2.h:39