ATLAS Offline Software
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Static Protected Attributes | List of all members
CaloRecGPU::TagBase Class Reference

#include <TagDefinitions.h>

Inheritance diagram for CaloRecGPU::TagBase:
Collaboration diagram for CaloRecGPU::TagBase:

Public Types

using carrier = unsigned long long int
 

Public Member Functions

constexpr operator carrier () const
 
constexpr TagBase (const carrier v)
 
constexpr TagBaseoperator= (const carrier v)
 
constexpr bool get_flag () const
 
constexpr uint32_t get_second_16bit () const
 
constexpr uint32_t get_middle_31bit () const
 
constexpr uint32_t get_first_16bit () const
 
constexpr carrier clear_flag () const
 
constexpr carrier clear_second_16bit () const
 
constexpr carrier clear_middle_31bit () const
 
constexpr carrier clear_first_16bit () const
 
constexpr carrier keep_only_flag () const
 
constexpr carrier keep_only_second_16bit () const
 
constexpr carrier keep_only_middle_31bit () const
 
constexpr carrier keep_only_first_16bit () const
 
constexpr carrier or_flag (const bool bit) const
 
constexpr carrier or_second_16bit (const uint16_t pattern) const
 
constexpr carrier or_middle_31bit (const uint32_t pattern) const
 
constexpr carrier or_first_16bit (const uint16_t pattern) const
 
constexpr carrier override_flag (const bool bit) const
 
constexpr carrier override_second_16bit (const uint16_t pattern) const
 
constexpr carrier override_middle_31bit (const uint32_t pattern) const
 
constexpr carrier override_first_16bit (const uint16_t pattern) const
 

Static Public Member Functions

static constexpr carrier make_base_tag (const uint16_t lower=0, const uint32_t middle=0, const uint16_t upper=0, const bool last=false)
 
static constexpr carrier make_invalid_tag ()
 

Public Attributes

carrier value
 

Static Protected Attributes

constexpr static carrier s_bit_mask = 0x8000000000000000ULL
 
constexpr static carrier s_second_16bit_mask = 0x7FFF800000000000ULL
 
constexpr static carrier s_middle_31bit_mask = 0x00007FFFFFFF0000ULL
 
constexpr static carrier s_first_16bit_mask = 0x000000000000FFFFULL
 

Detailed Description

The base class for marking cells as belonging to clusters.

Currently 64-bit based:

The actual arrays are intended to be of TagBase::carrier rather than TagBase, to keep everything as native types on the GPU side.

Definition at line 31 of file TagDefinitions.h.

Member Typedef Documentation

◆ carrier

using CaloRecGPU::TagBase::carrier = unsigned long long int

Definition at line 35 of file TagDefinitions.h.

Constructor & Destructor Documentation

◆ TagBase()

constexpr CaloRecGPU::TagBase::TagBase ( const carrier  v)
inlineconstexpr

Definition at line 45 of file TagDefinitions.h.

45  : value(v)
46  {
47  }

Member Function Documentation

◆ clear_first_16bit()

constexpr carrier CaloRecGPU::TagBase::clear_first_16bit ( ) const
inlineconstexpr

Definition at line 113 of file TagDefinitions.h.

114  {
115  return value & (~ s_first_16bit_mask);
116  }

◆ clear_flag()

constexpr carrier CaloRecGPU::TagBase::clear_flag ( ) const
inlineconstexpr

Definition at line 98 of file TagDefinitions.h.

99  {
100  return value & (~ s_bit_mask);
101  }

◆ clear_middle_31bit()

constexpr carrier CaloRecGPU::TagBase::clear_middle_31bit ( ) const
inlineconstexpr

Definition at line 108 of file TagDefinitions.h.

109  {
110  return value & (~ s_middle_31bit_mask);
111  }

◆ clear_second_16bit()

constexpr carrier CaloRecGPU::TagBase::clear_second_16bit ( ) const
inlineconstexpr

Definition at line 103 of file TagDefinitions.h.

104  {
105  return value & (~ s_second_16bit_mask);
106  }

◆ get_first_16bit()

constexpr uint32_t CaloRecGPU::TagBase::get_first_16bit ( ) const
inlineconstexpr

Definition at line 91 of file TagDefinitions.h.

93  {
95  return ret;
96  }

◆ get_flag()

constexpr bool CaloRecGPU::TagBase::get_flag ( ) const
inlineconstexpr

Definition at line 71 of file TagDefinitions.h.

72  {
73  return value & s_bit_mask;
74  }

◆ get_middle_31bit()

constexpr uint32_t CaloRecGPU::TagBase::get_middle_31bit ( ) const
inlineconstexpr

Definition at line 84 of file TagDefinitions.h.

85  {
86  carrier pre_shift = value & s_middle_31bit_mask;
87  uint32_t ret = pre_shift >> 16;
88  return ret;
89  }

◆ get_second_16bit()

constexpr uint32_t CaloRecGPU::TagBase::get_second_16bit ( ) const
inlineconstexpr

Definition at line 76 of file TagDefinitions.h.

78  {
79  carrier pre_shift = value & s_second_16bit_mask;
80  uint32_t ret = pre_shift >> 47;
81  return ret;
82  }

◆ keep_only_first_16bit()

constexpr carrier CaloRecGPU::TagBase::keep_only_first_16bit ( ) const
inlineconstexpr

Definition at line 133 of file TagDefinitions.h.

134  {
135  return value & s_first_16bit_mask;
136  }

◆ keep_only_flag()

constexpr carrier CaloRecGPU::TagBase::keep_only_flag ( ) const
inlineconstexpr

Definition at line 118 of file TagDefinitions.h.

119  {
120  return value & s_bit_mask;
121  }

◆ keep_only_middle_31bit()

constexpr carrier CaloRecGPU::TagBase::keep_only_middle_31bit ( ) const
inlineconstexpr

Definition at line 128 of file TagDefinitions.h.

129  {
130  return value & s_middle_31bit_mask;
131  }

◆ keep_only_second_16bit()

constexpr carrier CaloRecGPU::TagBase::keep_only_second_16bit ( ) const
inlineconstexpr

Definition at line 123 of file TagDefinitions.h.

124  {
125  return value & s_second_16bit_mask;
126  }

◆ make_base_tag()

static constexpr carrier CaloRecGPU::TagBase::make_base_tag ( const uint16_t  lower = 0,
const uint32_t  middle = 0,
const uint16_t  upper = 0,
const bool  last = false 
)
inlinestaticconstexpr

Definition at line 190 of file TagDefinitions.h.

191  {
192  carrier ret = upper;
193  ret = (ret << 31) | (middle & 0x7FFFFFFFU);
194  ret = (ret << 16) | lower;
195 
196  ret = ret | (s_bit_mask * last);
197 
198  return ret;
199  }

◆ make_invalid_tag()

static constexpr carrier CaloRecGPU::TagBase::make_invalid_tag ( )
inlinestaticconstexpr

Definition at line 201 of file TagDefinitions.h.

202  {
203  return 0ULL;
204  }

◆ operator carrier()

constexpr CaloRecGPU::TagBase::operator carrier ( ) const
inlineconstexpr

Definition at line 40 of file TagDefinitions.h.

41  {
42  return value;
43  }

◆ operator=()

constexpr TagBase& CaloRecGPU::TagBase::operator= ( const carrier  v)
inlineconstexpr

Definition at line 49 of file TagDefinitions.h.

50  {
51  value = v;
52  return (*this);
53  }

◆ or_first_16bit()

constexpr carrier CaloRecGPU::TagBase::or_first_16bit ( const uint16_t  pattern) const
inlineconstexpr

Definition at line 157 of file TagDefinitions.h.

159  {
160  uint32_t temp = pattern;
161  return value | temp;
162  }

◆ or_flag()

constexpr carrier CaloRecGPU::TagBase::or_flag ( const bool  bit) const
inlineconstexpr

Definition at line 138 of file TagDefinitions.h.

139  {
140  return value | (bit * s_bit_mask);
141  }

◆ or_middle_31bit()

constexpr carrier CaloRecGPU::TagBase::or_middle_31bit ( const uint32_t  pattern) const
inlineconstexpr

Definition at line 150 of file TagDefinitions.h.

151  {
152  carrier temp = pattern & 0x7FFFFFFFU;
153  //To make sure the highest bit is unset.
154  return value | (temp << 16);
155  }

◆ or_second_16bit()

constexpr carrier CaloRecGPU::TagBase::or_second_16bit ( const uint16_t  pattern) const
inlineconstexpr

Definition at line 143 of file TagDefinitions.h.

145  {
146  carrier temp = pattern;
147  return value | (temp << 47);
148  }

◆ override_first_16bit()

constexpr carrier CaloRecGPU::TagBase::override_first_16bit ( const uint16_t  pattern) const
inlineconstexpr

Definition at line 183 of file TagDefinitions.h.

185  {
186  const uint32_t temp = pattern;
187  return (value & (~ s_first_16bit_mask)) | temp;
188  }

◆ override_flag()

constexpr carrier CaloRecGPU::TagBase::override_flag ( const bool  bit) const
inlineconstexpr

Definition at line 164 of file TagDefinitions.h.

165  {
166  return (value & (~ s_bit_mask)) | (bit * s_bit_mask);
167  }

◆ override_middle_31bit()

constexpr carrier CaloRecGPU::TagBase::override_middle_31bit ( const uint32_t  pattern) const
inlineconstexpr

Definition at line 176 of file TagDefinitions.h.

177  {
178  const carrier temp = pattern & 0x7FFFFFFFU;
179  //To make sure the highest bit is unset.
180  return (value & (~ s_middle_31bit_mask)) | (temp << 16);
181  }

◆ override_second_16bit()

constexpr carrier CaloRecGPU::TagBase::override_second_16bit ( const uint16_t  pattern) const
inlineconstexpr

Definition at line 169 of file TagDefinitions.h.

171  {
172  const carrier temp = pattern;
173  return (value & (~ s_second_16bit_mask)) | (temp << 47);
174  }

Member Data Documentation

◆ s_bit_mask

constexpr static carrier CaloRecGPU::TagBase::s_bit_mask = 0x8000000000000000ULL
staticconstexprprotected

Definition at line 57 of file TagDefinitions.h.

◆ s_first_16bit_mask

constexpr static carrier CaloRecGPU::TagBase::s_first_16bit_mask = 0x000000000000FFFFULL
staticconstexprprotected

Definition at line 66 of file TagDefinitions.h.

◆ s_middle_31bit_mask

constexpr static carrier CaloRecGPU::TagBase::s_middle_31bit_mask = 0x00007FFFFFFF0000ULL
staticconstexprprotected

Definition at line 63 of file TagDefinitions.h.

◆ s_second_16bit_mask

constexpr static carrier CaloRecGPU::TagBase::s_second_16bit_mask = 0x7FFF800000000000ULL
staticconstexprprotected

Definition at line 60 of file TagDefinitions.h.

◆ value

carrier CaloRecGPU::TagBase::value

Definition at line 38 of file TagDefinitions.h.


The documentation for this class was generated from the following file:
mergePhysValFiles.pattern
pattern
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:26
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
upper
int upper(int c)
Definition: LArBadChannelParser.cxx:49
CaloRecGPU::TagBase::s_second_16bit_mask
constexpr static carrier s_second_16bit_mask
Definition: TagDefinitions.h:60
CaloRecGPU::TagBase::value
carrier value
Definition: TagDefinitions.h:38
ret
T ret(T t)
Definition: rootspy.cxx:260
CaloRecGPU::TagBase::s_first_16bit_mask
constexpr static carrier s_first_16bit_mask
Definition: TagDefinitions.h:66
CaloRecGPU::TagBase::s_bit_mask
constexpr static carrier s_bit_mask
Definition: TagDefinitions.h:57
CaloRecGPU::TagBase::s_middle_31bit_mask
constexpr static carrier s_middle_31bit_mask
Definition: TagDefinitions.h:63
python.PyAthena.v
v
Definition: PyAthena.py:157
CaloRecGPU::TagBase::carrier
unsigned long long int carrier
Definition: TagDefinitions.h:35