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

#include <AtlasUncalibSourceLinkAccessor.h>

Inheritance diagram for ActsTrk::MeasurementRange:
Collaboration diagram for ActsTrk::MeasurementRange:

Public Member Functions

 MeasurementRange ()
 
void setRangeBegin (std::size_t container_idx, unsigned int element_idx)
 
void setRangeEnd (std::size_t container_idx, unsigned int element_idx)
 
unsigned int containerIndex () const
 
unsigned int elementBeginIndex () const
 
unsigned int elementEndIndex () const
 
bool empty () const
 

Static Public Member Functions

static unsigned int createRangeValue (unsigned int container_idx, unsigned int index)
 

Static Public Attributes

static constexpr unsigned int CONTAINER_IDX_SHIFT = 28
 
static constexpr unsigned int CONTAINER_IDX_MASK = (1u << 31) | (1u << 30) | (1u << 29) | (1u << 28)
 
static constexpr unsigned int ELEMENT_IDX_MASK = ~CONTAINER_IDX_MASK
 

Detailed Description

Definition at line 22 of file AtlasUncalibSourceLinkAccessor.h.

Constructor & Destructor Documentation

◆ MeasurementRange()

ActsTrk::MeasurementRange::MeasurementRange ( )
inline

Definition at line 24 of file AtlasUncalibSourceLinkAccessor.h.

24 : std::pair<unsigned int, unsigned int>(std::numeric_limits<unsigned int>::max(), std::numeric_limits<unsigned int>::max()) {}

Member Function Documentation

◆ containerIndex()

unsigned int ActsTrk::MeasurementRange::containerIndex ( ) const
inline

Definition at line 43 of file AtlasUncalibSourceLinkAccessor.h.

44  {
45  assert((this->first & CONTAINER_IDX_MASK) == (this->second & CONTAINER_IDX_MASK));
46  return (this->first & CONTAINER_IDX_MASK) >> CONTAINER_IDX_SHIFT;
47  }

◆ createRangeValue()

static unsigned int ActsTrk::MeasurementRange::createRangeValue ( unsigned int  container_idx,
unsigned int  index 
)
inlinestatic

Definition at line 28 of file AtlasUncalibSourceLinkAccessor.h.

29  {
30  assert(container_idx < (1u << (32 - CONTAINER_IDX_SHIFT)));
31  assert((index & CONTAINER_IDX_MASK) == 0u);
32  return (container_idx << CONTAINER_IDX_SHIFT) | index;
33  }

◆ elementBeginIndex()

unsigned int ActsTrk::MeasurementRange::elementBeginIndex ( ) const
inline

Definition at line 48 of file AtlasUncalibSourceLinkAccessor.h.

49  {
50  assert((this->first & CONTAINER_IDX_MASK) == (this->second & CONTAINER_IDX_MASK));
51  return this->first & ELEMENT_IDX_MASK;
52  }

◆ elementEndIndex()

unsigned int ActsTrk::MeasurementRange::elementEndIndex ( ) const
inline

Definition at line 53 of file AtlasUncalibSourceLinkAccessor.h.

54  {
55  assert((this->first & CONTAINER_IDX_MASK) == (this->second & CONTAINER_IDX_MASK));
56  return this->second & ELEMENT_IDX_MASK;
57  }

◆ empty()

bool ActsTrk::MeasurementRange::empty ( ) const
inline

Definition at line 58 of file AtlasUncalibSourceLinkAccessor.h.

58 { return this->first == this->second; }

◆ setRangeBegin()

void ActsTrk::MeasurementRange::setRangeBegin ( std::size_t  container_idx,
unsigned int  element_idx 
)
inline

Definition at line 34 of file AtlasUncalibSourceLinkAccessor.h.

35  {
36  assert(container_idx < (1u << (32 - CONTAINER_IDX_SHIFT)));
37  this->first = MeasurementRange::createRangeValue(container_idx, element_idx);
38  }

◆ setRangeEnd()

void ActsTrk::MeasurementRange::setRangeEnd ( std::size_t  container_idx,
unsigned int  element_idx 
)
inline

Definition at line 39 of file AtlasUncalibSourceLinkAccessor.h.

40  {
41  this->second = MeasurementRange::createRangeValue(container_idx, element_idx);
42  }

Member Data Documentation

◆ CONTAINER_IDX_MASK

constexpr unsigned int ActsTrk::MeasurementRange::CONTAINER_IDX_MASK = (1u << 31) | (1u << 30) | (1u << 29) | (1u << 28)
staticconstexpr

Definition at line 26 of file AtlasUncalibSourceLinkAccessor.h.

◆ CONTAINER_IDX_SHIFT

constexpr unsigned int ActsTrk::MeasurementRange::CONTAINER_IDX_SHIFT = 28
staticconstexpr

Definition at line 25 of file AtlasUncalibSourceLinkAccessor.h.

◆ ELEMENT_IDX_MASK

constexpr unsigned int ActsTrk::MeasurementRange::ELEMENT_IDX_MASK = ~CONTAINER_IDX_MASK
staticconstexpr

Definition at line 27 of file AtlasUncalibSourceLinkAccessor.h.


The documentation for this struct was generated from the following file:
python.SystemOfUnits.second
int second
Definition: SystemOfUnits.py:120
max
#define max(a, b)
Definition: cfImp.cxx:41
index
Definition: index.py:1
ActsTrk::MeasurementRange::ELEMENT_IDX_MASK
static constexpr unsigned int ELEMENT_IDX_MASK
Definition: AtlasUncalibSourceLinkAccessor.h:27
Trk::u
@ u
Enums for curvilinear frames.
Definition: ParamDefs.h:83
ActsTrk::MeasurementRange::CONTAINER_IDX_SHIFT
static constexpr unsigned int CONTAINER_IDX_SHIFT
Definition: AtlasUncalibSourceLinkAccessor.h:25
ActsTrk::MeasurementRange::createRangeValue
static unsigned int createRangeValue(unsigned int container_idx, unsigned int index)
Definition: AtlasUncalibSourceLinkAccessor.h:28
DeMoScan.index
string index
Definition: DeMoScan.py:362
DeMoScan.first
bool first
Definition: DeMoScan.py:534
ActsTrk::MeasurementRange::CONTAINER_IDX_MASK
static constexpr unsigned int CONTAINER_IDX_MASK
Definition: AtlasUncalibSourceLinkAccessor.h:26