ATLAS Offline Software
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Types | Static Protected Member Functions | Static Protected Attributes | List of all members
TASplitting::TASTag Struct Reference

#include <TopoAutomatonSplittingImpl.h>

Inheritance diagram for TASplitting::TASTag:
Collaboration diagram for TASplitting::TASTag:

Public Types

using carrier = CaloRecGPU::TagBase::carrier
 

Public Member Functions

constexpr int32_t index () const
 
constexpr uint32_t energy_bits () const
 
constexpr int32_t counter () const
 
constexpr bool is_primary () const
 
constexpr bool is_secondary () const
 
constexpr carrier set_primary () const
 
constexpr carrier clear_primary () const
 
constexpr carrier set_shared () const
 
constexpr carrier clear_shared () const
 
constexpr bool is_valid () const
 
constexpr bool is_invalid () const
 
constexpr bool is_part_of_original_cluster () const
 
constexpr bool is_part_of_splitter_cluster () const
 
constexpr bool is_shared () const
 
constexpr bool is_non_assigned_part_of_split_cluster () const
 
constexpr carrier update_cell (const uint32_t new_index, const uint32_t new_energy) const
 
constexpr carrier update_energy (const uint32_t new_energy) const
 
constexpr carrier clear_energy () const
 
constexpr carrier update_index (const uint32_t new_index) const
 
constexpr carrier update_counter (const uint32_t new_counter) const
 
constexpr carrier ordering_bits () const
 
constexpr carrier prepare_for_sharing (const TASTag other_tag) const
 
constexpr bool is_secondary_maximum_seed () const
 Just to be semantically clearer for the maxima exclusion. More...
 
constexpr bool is_secondary_maxima_eliminator () const
 
constexpr carrier propagate () const
 
constexpr bool get_first_flag () const
 
constexpr carrier set_first_flag () const
 
constexpr carrier unset_first_flag () const
 
constexpr bool get_second_flag () const
 
constexpr carrier set_second_flag () const
 
constexpr carrier make_first_flag (const bool flag) const
 
constexpr carrier make_second_flag (const bool flag) const
 
constexpr carrier unset_second_flag () const
 
constexpr uint32_t get_12_bits () const
 
constexpr uint32_t get_32_bits () const
 
constexpr uint32_t get_18_bits () const
 
constexpr GenericTagBase (const carrier v)
 
constexpr operator carrier () const
 

Static Public Member Functions

constexpr static carrier counter_delta ()
 
constexpr static int32_t index (const TASTag tag)
 
constexpr static uint32_t energy_bits (const TASTag tag)
 
static constexpr int32_t counter (const TASTag tag)
 
static constexpr int32_t max_counter ()
 
constexpr static bool is_primary (const TASTag tag)
 
constexpr static bool is_secondary (const TASTag tag)
 
static constexpr carrier make_maximum_tag (const int32_t index, const uint32_t maximum_energy_pattern, const bool is_primary)
 Expects maximum_energy_pattern to be the bit pattern of the float that represents the energy. More...
 
static constexpr carrier make_original_cluster_tag (const uint16_t original_cluster_index)
 
static constexpr carrier make_shared_tag (const int32_t index, const uint32_t energy_pattern, const int32_t counter)
 Expects energy_pattern to be the bit pattern of the float that represents the energy. More...
 
static constexpr carrier make_cluster_cell_tag (const uint16_t original_cluster_index)
 
static constexpr carrier set_primary (const TASTag tag)
 
static constexpr carrier clear_primary (const TASTag tag)
 
static constexpr carrier set_shared (const TASTag tag)
 
static constexpr carrier clear_shared (const TASTag tag)
 
static constexpr bool is_valid (const TASTag tag)
 
static constexpr bool is_invalid (const TASTag tag)
 
static constexpr bool is_part_of_original_cluster (const TASTag tag)
 
static constexpr bool is_part_of_splitter_cluster (const TASTag tag)
 
constexpr static bool is_shared (const TASTag tag)
 
static constexpr bool is_non_assigned_part_of_split_cluster (const TASTag tag)
 
static constexpr carrier ordering_bits (const TASTag tag)
 
constexpr static bool is_secondary_maximum_seed (const TASTag tag)
 
static constexpr carrier secondary_maxima_eliminator ()
 
static constexpr bool is_secondary_maxima_eliminator (const TASTag tag)
 
static constexpr carrier propagate (const TASTag tag)
 
static constexpr carrier make_generic_tag (const uint32_t bits_18, const uint32_t bits_32, const uint32_t bits_12, const bool flag_2, const bool flag_1)
 
static constexpr carrier make_invalid_tag ()
 

Public Attributes

carrier value
 

Protected Types

using EnergyFPFormat = FloatingPointHelpers::StandardFloat
 

Static Protected Member Functions

constexpr static uint32_t energy_to_storage (const uint32_t energy_pattern)
 
constexpr static uint32_t storage_to_energy (const uint32_t storage_pattern)
 

Static Protected Attributes

static constexpr uint32_t s_start_counter = 0xFFFU
 
static constexpr carrier s_tag_propagation_delta = carrier(1) << s_12_bit_offset
 
static constexpr carrier s_last_non_assigned_tag = (s_18_bit_mask << 1) | s_18_bit_mask
 
static constexpr carrier s_secondary_maxima_eliminator_tag = 0xFFFFFFFFFFFFFFFFULL
 
constexpr static carrier s_first_flag_mask = 0x8000000000000000ULL
 
constexpr static carrier s_second_flag_mask = 0x4000000000000000ULL
 
constexpr static carrier s_12_bit_mask = 0x3FFC000000000000ULL
 
constexpr static carrier s_32_bit_mask = 0x0003FFFFFFFC0000ULL
 
constexpr static carrier s_18_bit_mask = 0x000000000003FFFFULL
 
constexpr static unsigned int s_18_bit_offset = 0
 
constexpr static unsigned int s_32_bit_offset = s_18_bit_offset + 18
 
constexpr static unsigned int s_12_bit_offset = s_32_bit_offset + 32
 

Detailed Description

Definition at line 22 of file TopoAutomatonSplittingImpl.h.

Member Typedef Documentation

◆ carrier

Definition at line 31 of file ExtraTagDefinitions.h.

◆ EnergyFPFormat

Definition at line 34 of file TopoAutomatonSplittingImpl.h.

Member Function Documentation

◆ clear_energy()

constexpr carrier TASplitting::TASTag::clear_energy ( ) const
inlineconstexpr

Definition at line 250 of file TopoAutomatonSplittingImpl.h.

251  {
252  return (value & ~s_32_bit_mask);
253  }

◆ clear_primary() [1/2]

constexpr carrier TASplitting::TASTag::clear_primary ( ) const
inlineconstexpr

Definition at line 148 of file TopoAutomatonSplittingImpl.h.

149  {
150  return this->unset_first_flag();
151  }

◆ clear_primary() [2/2]

static constexpr carrier TASplitting::TASTag::clear_primary ( const TASTag  tag)
inlinestaticconstexpr

Definition at line 153 of file TopoAutomatonSplittingImpl.h.

154  {
155  return tag.clear_primary();
156  }

◆ clear_shared() [1/2]

constexpr carrier TASplitting::TASTag::clear_shared ( ) const
inlineconstexpr

Definition at line 168 of file TopoAutomatonSplittingImpl.h.

169  {
170  return this->set_second_flag();
171  }

◆ clear_shared() [2/2]

static constexpr carrier TASplitting::TASTag::clear_shared ( const TASTag  tag)
inlinestaticconstexpr

Definition at line 173 of file TopoAutomatonSplittingImpl.h.

174  {
175  return tag.clear_shared();
176  }

◆ counter() [1/2]

constexpr int32_t TASplitting::TASTag::counter ( ) const
inlineconstexpr

Definition at line 73 of file TopoAutomatonSplittingImpl.h.

74  {
75  return this->get_12_bits();
76  }

◆ counter() [2/2]

static constexpr int32_t TASplitting::TASTag::counter ( const TASTag  tag)
inlinestaticconstexpr

Definition at line 78 of file TopoAutomatonSplittingImpl.h.

79  {
80  return tag.counter();
81  }

◆ counter_delta()

constexpr static carrier TASplitting::TASTag::counter_delta ( )
inlinestaticconstexpr

Definition at line 48 of file TopoAutomatonSplittingImpl.h.

49  {
51  }

◆ energy_bits() [1/2]

constexpr uint32_t TASplitting::TASTag::energy_bits ( ) const
inlineconstexpr

Definition at line 63 of file TopoAutomatonSplittingImpl.h.

64  {
65  return this->get_32_bits();
66  }

◆ energy_bits() [2/2]

constexpr static uint32_t TASplitting::TASTag::energy_bits ( const TASTag  tag)
inlinestaticconstexpr

Definition at line 68 of file TopoAutomatonSplittingImpl.h.

69  {
70  return tag.energy_bits();
71  }

◆ energy_to_storage()

constexpr static uint32_t TASplitting::TASTag::energy_to_storage ( const uint32_t  energy_pattern)
inlinestaticconstexprprotected

Definition at line 36 of file TopoAutomatonSplittingImpl.h.

37  {
38  return EnergyFPFormat::template to_total_ordering<uint32_t>(energy_pattern);
39  }

◆ GenericTagBase()

constexpr CaloRecGPU::GenericTagBase::GenericTagBase
inlineconstexprinherited

Definition at line 41 of file ExtraTagDefinitions.h.

41  : value(v)
42  {
43  }

◆ get_12_bits()

constexpr uint32_t CaloRecGPU::Tag_1_1_12_32_18::get_12_bits ( ) const
inlineconstexprinherited

Definition at line 509 of file ExtraTagDefinitions.h.

510  {
511  return (value & s_12_bit_mask) >> s_12_bit_offset;
512  }

◆ get_18_bits()

constexpr uint32_t CaloRecGPU::Tag_1_1_12_32_18::get_18_bits ( ) const
inlineconstexprinherited

Definition at line 519 of file ExtraTagDefinitions.h.

520  {
521  return (value & s_18_bit_mask) >> s_18_bit_offset;
522  }

◆ get_32_bits()

constexpr uint32_t CaloRecGPU::Tag_1_1_12_32_18::get_32_bits ( ) const
inlineconstexprinherited

Definition at line 514 of file ExtraTagDefinitions.h.

515  {
516  return (value & s_32_bit_mask) >> s_32_bit_offset;
517  }

◆ get_first_flag()

constexpr bool CaloRecGPU::Tag_1_1_12_32_18::get_first_flag ( ) const
inlineconstexprinherited

Definition at line 469 of file ExtraTagDefinitions.h.

470  {
471  return value & s_first_flag_mask;
472  }

◆ get_second_flag()

constexpr bool CaloRecGPU::Tag_1_1_12_32_18::get_second_flag ( ) const
inlineconstexprinherited

Definition at line 484 of file ExtraTagDefinitions.h.

485  {
486  return value & s_second_flag_mask;
487  }

◆ index() [1/2]

constexpr int32_t TASplitting::TASTag::index ( ) const
inlineconstexpr

Definition at line 53 of file TopoAutomatonSplittingImpl.h.

54  {
55  return this->get_18_bits();
56  }

◆ index() [2/2]

constexpr static int32_t TASplitting::TASTag::index ( const TASTag  tag)
inlinestaticconstexpr

Definition at line 58 of file TopoAutomatonSplittingImpl.h.

59  {
60  return tag.index();
61  }

◆ is_invalid() [1/2]

constexpr bool TASplitting::TASTag::is_invalid ( ) const
inlineconstexpr

Definition at line 188 of file TopoAutomatonSplittingImpl.h.

189  {
190  return !this->is_valid();
191  }

◆ is_invalid() [2/2]

static constexpr bool TASplitting::TASTag::is_invalid ( const TASTag  tag)
inlinestaticconstexpr

Definition at line 193 of file TopoAutomatonSplittingImpl.h.

194  {
195  return tag.is_invalid();
196  }

◆ is_non_assigned_part_of_split_cluster() [1/2]

constexpr bool TASplitting::TASTag::is_non_assigned_part_of_split_cluster ( ) const
inlineconstexpr

Definition at line 230 of file TopoAutomatonSplittingImpl.h.

231  {
232  return value > 0 && value <= s_last_non_assigned_tag;
233  }

◆ is_non_assigned_part_of_split_cluster() [2/2]

static constexpr bool TASplitting::TASTag::is_non_assigned_part_of_split_cluster ( const TASTag  tag)
inlinestaticconstexpr

Definition at line 235 of file TopoAutomatonSplittingImpl.h.

236  {
237  return tag.is_non_assigned_part_of_split_cluster();
238  }

◆ is_part_of_original_cluster() [1/2]

constexpr bool TASplitting::TASTag::is_part_of_original_cluster ( ) const
inlineconstexpr

Definition at line 198 of file TopoAutomatonSplittingImpl.h.

199  {
200  return (value & s_32_bit_mask) == s_32_bit_mask;
201  //As original cluster cells have all bits of the energy set to 1
202  //(which would be a NaN for normal energy)
203  }

◆ is_part_of_original_cluster() [2/2]

static constexpr bool TASplitting::TASTag::is_part_of_original_cluster ( const TASTag  tag)
inlinestaticconstexpr

Definition at line 205 of file TopoAutomatonSplittingImpl.h.

206  {
207  return tag.is_part_of_original_cluster();
208  }

◆ is_part_of_splitter_cluster() [1/2]

constexpr bool TASplitting::TASTag::is_part_of_splitter_cluster ( ) const
inlineconstexpr

Definition at line 210 of file TopoAutomatonSplittingImpl.h.

211  {
213  }

◆ is_part_of_splitter_cluster() [2/2]

static constexpr bool TASplitting::TASTag::is_part_of_splitter_cluster ( const TASTag  tag)
inlinestaticconstexpr

Definition at line 215 of file TopoAutomatonSplittingImpl.h.

216  {
217  return tag.is_part_of_splitter_cluster();
218  }

◆ is_primary() [1/2]

constexpr bool TASplitting::TASTag::is_primary ( ) const
inlineconstexpr

Definition at line 88 of file TopoAutomatonSplittingImpl.h.

89  {
90  return this->get_first_flag();
91  }

◆ is_primary() [2/2]

constexpr static bool TASplitting::TASTag::is_primary ( const TASTag  tag)
inlinestaticconstexpr

Definition at line 93 of file TopoAutomatonSplittingImpl.h.

94  {
95  return tag.is_primary();
96  }

◆ is_secondary() [1/2]

constexpr bool TASplitting::TASTag::is_secondary ( ) const
inlineconstexpr

Definition at line 98 of file TopoAutomatonSplittingImpl.h.

99  {
100  return !this->is_primary();
101  }

◆ is_secondary() [2/2]

constexpr static bool TASplitting::TASTag::is_secondary ( const TASTag  tag)
inlinestaticconstexpr

Definition at line 103 of file TopoAutomatonSplittingImpl.h.

104  {
105  return tag.is_secondary();
106  }

◆ is_secondary_maxima_eliminator() [1/2]

constexpr bool TASplitting::TASTag::is_secondary_maxima_eliminator ( ) const
inlineconstexpr

Definition at line 304 of file TopoAutomatonSplittingImpl.h.

305  {
307  }

◆ is_secondary_maxima_eliminator() [2/2]

static constexpr bool TASplitting::TASTag::is_secondary_maxima_eliminator ( const TASTag  tag)
inlinestaticconstexpr

Definition at line 309 of file TopoAutomatonSplittingImpl.h.

310  {
311  return tag.is_secondary_maxima_eliminator();
312  }

◆ is_secondary_maximum_seed() [1/2]

constexpr bool TASplitting::TASTag::is_secondary_maximum_seed ( ) const
inlineconstexpr

Just to be semantically clearer for the maxima exclusion.

Definition at line 289 of file TopoAutomatonSplittingImpl.h.

290  {
291  return this->is_part_of_splitter_cluster() && this->is_secondary();
292  }

◆ is_secondary_maximum_seed() [2/2]

constexpr static bool TASplitting::TASTag::is_secondary_maximum_seed ( const TASTag  tag)
inlinestaticconstexpr

Definition at line 294 of file TopoAutomatonSplittingImpl.h.

295  {
296  return tag.is_secondary_maximum_seed();
297  }

◆ is_shared() [1/2]

constexpr bool TASplitting::TASTag::is_shared ( ) const
inlineconstexpr

Definition at line 220 of file TopoAutomatonSplittingImpl.h.

221  {
222  return !(this->get_second_flag());
223  }

◆ is_shared() [2/2]

constexpr static bool TASplitting::TASTag::is_shared ( const TASTag  tag)
inlinestaticconstexpr

Definition at line 225 of file TopoAutomatonSplittingImpl.h.

226  {
227  return tag.is_shared();
228  }

◆ is_valid() [1/2]

constexpr bool TASplitting::TASTag::is_valid ( ) const
inlineconstexpr

Definition at line 178 of file TopoAutomatonSplittingImpl.h.

179  {
180  return value > 0ULL;
181  }

◆ is_valid() [2/2]

static constexpr bool TASplitting::TASTag::is_valid ( const TASTag  tag)
inlinestaticconstexpr

Definition at line 183 of file TopoAutomatonSplittingImpl.h.

184  {
185  return tag.is_valid();
186  }

◆ make_cluster_cell_tag()

static constexpr carrier TASplitting::TASTag::make_cluster_cell_tag ( const uint16_t  original_cluster_index)
inlinestaticconstexpr

Definition at line 127 of file TopoAutomatonSplittingImpl.h.

128  {
129  return make_generic_tag(original_cluster_index, 1, 0, 0, 0);
130  }

◆ make_first_flag()

constexpr carrier CaloRecGPU::Tag_1_1_12_32_18::make_first_flag ( const bool  flag) const
inlineconstexprinherited

Definition at line 494 of file ExtraTagDefinitions.h.

495  {
496  return (value & (~(s_first_flag_mask * (!flag)))) | (s_first_flag_mask * flag);
497  }

◆ make_generic_tag()

static constexpr carrier CaloRecGPU::Tag_1_1_12_32_18::make_generic_tag ( const uint32_t  bits_18,
const uint32_t  bits_32,
const uint32_t  bits_12,
const bool  flag_2,
const bool  flag_1 
)
inlinestaticconstexprinherited

Definition at line 524 of file ExtraTagDefinitions.h.

526  {
527  constexpr uint32_t bits_18_mask = 0x0003FFFFU;
528  constexpr uint32_t bits_12_mask = 0x00000FFFU;
529 
530  carrier ret = bits_12 & bits_12_mask;
531 
532  ret = (ret << 32) | bits_32;
533 
534  ret = (ret << 18) | (bits_18 & bits_18_mask);
535 
536  ret = ret | (s_second_flag_mask * flag_2) | (s_first_flag_mask * flag_1);
537 
538  return ret;
539  }

◆ make_invalid_tag()

static constexpr carrier CaloRecGPU::GenericTagBase::make_invalid_tag ( )
inlinestaticconstexprinherited

Definition at line 51 of file ExtraTagDefinitions.h.

52  {
53  return 0ULL;
54  }

◆ make_maximum_tag()

static constexpr carrier TASplitting::TASTag::make_maximum_tag ( const int32_t  index,
const uint32_t  maximum_energy_pattern,
const bool  is_primary 
)
inlinestaticconstexpr

Expects maximum_energy_pattern to be the bit pattern of the float that represents the energy.

Definition at line 110 of file TopoAutomatonSplittingImpl.h.

111  {
112  return make_generic_tag(index, energy_to_storage(maximum_energy_pattern), s_start_counter, true, is_primary);
113  }

◆ make_original_cluster_tag()

static constexpr carrier TASplitting::TASTag::make_original_cluster_tag ( const uint16_t  original_cluster_index)
inlinestaticconstexpr

Definition at line 115 of file TopoAutomatonSplittingImpl.h.

116  {
117  return make_generic_tag(original_cluster_index, 0xFFFFFFFFU, s_start_counter, true, true);
118  }

◆ make_second_flag()

constexpr carrier CaloRecGPU::Tag_1_1_12_32_18::make_second_flag ( const bool  flag) const
inlineconstexprinherited

Definition at line 499 of file ExtraTagDefinitions.h.

500  {
501  return (value & (~(s_second_flag_mask * (!flag)))) | (s_second_flag_mask * flag);
502  }

◆ make_shared_tag()

static constexpr carrier TASplitting::TASTag::make_shared_tag ( const int32_t  index,
const uint32_t  energy_pattern,
const int32_t  counter 
)
inlinestaticconstexpr

Expects energy_pattern to be the bit pattern of the float that represents the energy.

Definition at line 122 of file TopoAutomatonSplittingImpl.h.

123  {
124  return make_generic_tag(index, energy_to_storage(energy_pattern), counter, false, true);
125  }

◆ max_counter()

static constexpr int32_t TASplitting::TASTag::max_counter ( )
inlinestaticconstexpr

Definition at line 83 of file TopoAutomatonSplittingImpl.h.

84  {
85  return s_start_counter;
86  }

◆ operator carrier()

constexpr CaloRecGPU::GenericTagBase::operator carrier ( ) const
inlineconstexprinherited

Definition at line 36 of file ExtraTagDefinitions.h.

37  {
38  return value;
39  }

◆ ordering_bits() [1/2]

constexpr carrier TASplitting::TASTag::ordering_bits ( ) const
inlineconstexpr

Definition at line 266 of file TopoAutomatonSplittingImpl.h.

267  {
268  return value & (s_32_bit_mask | s_18_bit_mask);
269  }

◆ ordering_bits() [2/2]

static constexpr carrier TASplitting::TASTag::ordering_bits ( const TASTag  tag)
inlinestaticconstexpr

Definition at line 271 of file TopoAutomatonSplittingImpl.h.

272  {
273  return tag.ordering_bits();
274  }

◆ prepare_for_sharing()

constexpr carrier TASplitting::TASTag::prepare_for_sharing ( const TASTag  other_tag) const
inlineconstexpr

Definition at line 276 of file TopoAutomatonSplittingImpl.h.

277  {
278  return (other_tag & (~s_second_flag_mask)) | s_first_flag_mask | s_12_bit_mask;
279  }

◆ propagate() [1/2]

constexpr carrier TASplitting::TASTag::propagate ( ) const
inlineconstexpr

Definition at line 314 of file TopoAutomatonSplittingImpl.h.

315  {
317  }

◆ propagate() [2/2]

static constexpr carrier TASplitting::TASTag::propagate ( const TASTag  tag)
inlinestaticconstexpr

Definition at line 319 of file TopoAutomatonSplittingImpl.h.

320  {
321  return tag.propagate();
322  }

◆ secondary_maxima_eliminator()

static constexpr carrier TASplitting::TASTag::secondary_maxima_eliminator ( )
inlinestaticconstexpr

Definition at line 299 of file TopoAutomatonSplittingImpl.h.

300  {
302  }

◆ set_first_flag()

constexpr carrier CaloRecGPU::Tag_1_1_12_32_18::set_first_flag ( ) const
inlineconstexprinherited

Definition at line 474 of file ExtraTagDefinitions.h.

475  {
476  return value | s_first_flag_mask;
477  }

◆ set_primary() [1/2]

constexpr carrier TASplitting::TASTag::set_primary ( ) const
inlineconstexpr

Definition at line 138 of file TopoAutomatonSplittingImpl.h.

139  {
140  return this->set_first_flag();
141  }

◆ set_primary() [2/2]

static constexpr carrier TASplitting::TASTag::set_primary ( const TASTag  tag)
inlinestaticconstexpr

Definition at line 143 of file TopoAutomatonSplittingImpl.h.

144  {
145  return tag.set_primary();
146  }

◆ set_second_flag()

constexpr carrier CaloRecGPU::Tag_1_1_12_32_18::set_second_flag ( ) const
inlineconstexprinherited

Definition at line 489 of file ExtraTagDefinitions.h.

490  {
491  return value | s_second_flag_mask;
492  }

◆ set_shared() [1/2]

constexpr carrier TASplitting::TASTag::set_shared ( ) const
inlineconstexpr

Definition at line 158 of file TopoAutomatonSplittingImpl.h.

159  {
160  return this->unset_second_flag();
161  }

◆ set_shared() [2/2]

static constexpr carrier TASplitting::TASTag::set_shared ( const TASTag  tag)
inlinestaticconstexpr

Definition at line 163 of file TopoAutomatonSplittingImpl.h.

164  {
165  return tag.set_shared();
166  }

◆ storage_to_energy()

constexpr static uint32_t TASplitting::TASTag::storage_to_energy ( const uint32_t  storage_pattern)
inlinestaticconstexprprotected

Definition at line 41 of file TopoAutomatonSplittingImpl.h.

42  {
43  return EnergyFPFormat::template from_total_ordering<uint32_t>(storage_pattern);
44  }

◆ unset_first_flag()

constexpr carrier CaloRecGPU::Tag_1_1_12_32_18::unset_first_flag ( ) const
inlineconstexprinherited

Definition at line 479 of file ExtraTagDefinitions.h.

480  {
481  return value & (~s_first_flag_mask);
482  }

◆ unset_second_flag()

constexpr carrier CaloRecGPU::Tag_1_1_12_32_18::unset_second_flag ( ) const
inlineconstexprinherited

Definition at line 504 of file ExtraTagDefinitions.h.

505  {
506  return value & (~s_second_flag_mask);
507  }

◆ update_cell()

constexpr carrier TASplitting::TASTag::update_cell ( const uint32_t  new_index,
const uint32_t  new_energy 
) const
inlineconstexpr

Definition at line 240 of file TopoAutomatonSplittingImpl.h.

241  {
242  return make_generic_tag(new_index, energy_to_storage(new_energy), 0, 0, 0) | (value & ~(s_18_bit_mask | s_32_bit_mask));
243  }

◆ update_counter()

constexpr carrier TASplitting::TASTag::update_counter ( const uint32_t  new_counter) const
inlineconstexpr

Definition at line 261 of file TopoAutomatonSplittingImpl.h.

262  {
263  return (value & (~s_12_bit_mask)) | (carrier(new_counter) << s_12_bit_offset);
264  }

◆ update_energy()

constexpr carrier TASplitting::TASTag::update_energy ( const uint32_t  new_energy) const
inlineconstexpr

Definition at line 245 of file TopoAutomatonSplittingImpl.h.

246  {
247  return (value & ~s_32_bit_mask) | (energy_to_storage(new_energy) << s_32_bit_offset);
248  }

◆ update_index()

constexpr carrier TASplitting::TASTag::update_index ( const uint32_t  new_index) const
inlineconstexpr

Definition at line 256 of file TopoAutomatonSplittingImpl.h.

257  {
258  return (value & (~s_18_bit_mask)) | ( (carrier(new_index) << s_18_bit_offset) & s_18_bit_mask);
259  }

Member Data Documentation

◆ s_12_bit_mask

constexpr static carrier CaloRecGPU::Tag_1_1_12_32_18::s_12_bit_mask = 0x3FFC000000000000ULL
staticconstexprprotectedinherited

Definition at line 459 of file ExtraTagDefinitions.h.

◆ s_12_bit_offset

constexpr static unsigned int CaloRecGPU::Tag_1_1_12_32_18::s_12_bit_offset = s_32_bit_offset + 32
staticconstexprprotectedinherited

Definition at line 465 of file ExtraTagDefinitions.h.

◆ s_18_bit_mask

constexpr static carrier CaloRecGPU::Tag_1_1_12_32_18::s_18_bit_mask = 0x000000000003FFFFULL
staticconstexprprotectedinherited

Definition at line 461 of file ExtraTagDefinitions.h.

◆ s_18_bit_offset

constexpr static unsigned int CaloRecGPU::Tag_1_1_12_32_18::s_18_bit_offset = 0
staticconstexprprotectedinherited

Definition at line 463 of file ExtraTagDefinitions.h.

◆ s_32_bit_mask

constexpr static carrier CaloRecGPU::Tag_1_1_12_32_18::s_32_bit_mask = 0x0003FFFFFFFC0000ULL
staticconstexprprotectedinherited

Definition at line 460 of file ExtraTagDefinitions.h.

◆ s_32_bit_offset

constexpr static unsigned int CaloRecGPU::Tag_1_1_12_32_18::s_32_bit_offset = s_18_bit_offset + 18
staticconstexprprotectedinherited

Definition at line 464 of file ExtraTagDefinitions.h.

◆ s_first_flag_mask

constexpr static carrier CaloRecGPU::Tag_1_1_12_32_18::s_first_flag_mask = 0x8000000000000000ULL
staticconstexprprotectedinherited

Definition at line 457 of file ExtraTagDefinitions.h.

◆ s_last_non_assigned_tag

constexpr carrier TASplitting::TASTag::s_last_non_assigned_tag = (s_18_bit_mask << 1) | s_18_bit_mask
staticconstexprprotected

Definition at line 134 of file TopoAutomatonSplittingImpl.h.

◆ s_second_flag_mask

constexpr static carrier CaloRecGPU::Tag_1_1_12_32_18::s_second_flag_mask = 0x4000000000000000ULL
staticconstexprprotectedinherited

Definition at line 458 of file ExtraTagDefinitions.h.

◆ s_secondary_maxima_eliminator_tag

constexpr carrier TASplitting::TASTag::s_secondary_maxima_eliminator_tag = 0xFFFFFFFFFFFFFFFFULL
staticconstexprprotected

Definition at line 283 of file TopoAutomatonSplittingImpl.h.

◆ s_start_counter

constexpr uint32_t TASplitting::TASTag::s_start_counter = 0xFFFU
staticconstexprprotected

Definition at line 29 of file TopoAutomatonSplittingImpl.h.

◆ s_tag_propagation_delta

constexpr carrier TASplitting::TASTag::s_tag_propagation_delta = carrier(1) << s_12_bit_offset
staticconstexprprotected

Definition at line 32 of file TopoAutomatonSplittingImpl.h.

◆ value

carrier CaloRecGPU::GenericTagBase::value
inherited

Definition at line 34 of file ExtraTagDefinitions.h.


The documentation for this struct was generated from the following file:
TASplitting::TASTag::is_secondary
constexpr bool is_secondary() const
Definition: TopoAutomatonSplittingImpl.h:98
CaloRecGPU::Tag_1_1_12_32_18::get_second_flag
constexpr bool get_second_flag() const
Definition: ExtraTagDefinitions.h:484
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
index
Definition: index.py:1
TASplitting::TASTag::s_last_non_assigned_tag
static constexpr carrier s_last_non_assigned_tag
Definition: TopoAutomatonSplittingImpl.h:134
CaloRecGPU::Tag_1_1_12_32_18::s_12_bit_offset
constexpr static unsigned int s_12_bit_offset
Definition: ExtraTagDefinitions.h:465
TASplitting::TASTag::s_tag_propagation_delta
static constexpr carrier s_tag_propagation_delta
Definition: TopoAutomatonSplittingImpl.h:32
taskman.template
dictionary template
Definition: taskman.py:317
TASplitting::TASTag::is_valid
constexpr bool is_valid() const
Definition: TopoAutomatonSplittingImpl.h:178
TASplitting::TASTag::s_start_counter
static constexpr uint32_t s_start_counter
Definition: TopoAutomatonSplittingImpl.h:29
TASplitting::TASTag::energy_to_storage
constexpr static uint32_t energy_to_storage(const uint32_t energy_pattern)
Definition: TopoAutomatonSplittingImpl.h:36
CaloRecGPU::Tag_1_1_12_32_18::get_18_bits
constexpr uint32_t get_18_bits() const
Definition: ExtraTagDefinitions.h:519
CaloRecGPU::Tag_1_1_12_32_18::get_first_flag
constexpr bool get_first_flag() const
Definition: ExtraTagDefinitions.h:469
TASplitting::TASTag::s_secondary_maxima_eliminator_tag
static constexpr carrier s_secondary_maxima_eliminator_tag
Definition: TopoAutomatonSplittingImpl.h:283
CaloRecGPU::Tag_1_1_12_32_18::set_second_flag
constexpr carrier set_second_flag() const
Definition: ExtraTagDefinitions.h:489
CaloRecGPU::Tag_1_1_12_32_18::set_first_flag
constexpr carrier set_first_flag() const
Definition: ExtraTagDefinitions.h:474
CaloRecGPU::Tag_1_1_12_32_18::unset_second_flag
constexpr carrier unset_second_flag() const
Definition: ExtraTagDefinitions.h:504
ret
T ret(T t)
Definition: rootspy.cxx:260
CaloRecGPU::GenericTagBase::value
carrier value
Definition: ExtraTagDefinitions.h:34
CaloRecGPU::Tag_1_1_12_32_18::s_12_bit_mask
constexpr static carrier s_12_bit_mask
Definition: ExtraTagDefinitions.h:459
master.flag
bool flag
Definition: master.py:29
CaloRecGPU::Tag_1_1_12_32_18::s_second_flag_mask
constexpr static carrier s_second_flag_mask
Definition: ExtraTagDefinitions.h:458
CaloRecGPU::Tag_1_1_12_32_18::s_32_bit_offset
constexpr static unsigned int s_32_bit_offset
Definition: ExtraTagDefinitions.h:464
CaloRecGPU::Tag_1_1_12_32_18::unset_first_flag
constexpr carrier unset_first_flag() const
Definition: ExtraTagDefinitions.h:479
TASplitting::TASTag::is_part_of_splitter_cluster
constexpr bool is_part_of_splitter_cluster() const
Definition: TopoAutomatonSplittingImpl.h:210
CaloRecGPU::Tag_1_1_12_32_18::s_18_bit_offset
constexpr static unsigned int s_18_bit_offset
Definition: ExtraTagDefinitions.h:463
CaloRecGPU::Tag_1_1_12_32_18::make_generic_tag
static constexpr carrier make_generic_tag(const uint32_t bits_18, const uint32_t bits_32, const uint32_t bits_12, const bool flag_2, const bool flag_1)
Definition: ExtraTagDefinitions.h:524
TASplitting::TASTag::counter
constexpr int32_t counter() const
Definition: TopoAutomatonSplittingImpl.h:73
CaloRecGPU::Tag_1_1_12_32_18::get_12_bits
constexpr uint32_t get_12_bits() const
Definition: ExtraTagDefinitions.h:509
CaloRecGPU::Tag_1_1_12_32_18::s_32_bit_mask
constexpr static carrier s_32_bit_mask
Definition: ExtraTagDefinitions.h:460
CaloRecGPU::GenericTagBase::carrier
CaloRecGPU::TagBase::carrier carrier
Definition: ExtraTagDefinitions.h:31
CaloRecGPU::Tag_1_1_12_32_18::s_18_bit_mask
constexpr static carrier s_18_bit_mask
Definition: ExtraTagDefinitions.h:461
python.PyAthena.v
v
Definition: PyAthena.py:157
CaloRecGPU::Tag_1_1_12_32_18::s_first_flag_mask
constexpr static carrier s_first_flag_mask
Definition: ExtraTagDefinitions.h:457
CaloRecGPU::Tag_1_1_12_32_18::get_32_bits
constexpr uint32_t get_32_bits() const
Definition: ExtraTagDefinitions.h:514
TASplitting::TASTag::is_primary
constexpr bool is_primary() const
Definition: TopoAutomatonSplittingImpl.h:88
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:24
TASplitting::TASTag::is_part_of_original_cluster
constexpr bool is_part_of_original_cluster() const
Definition: TopoAutomatonSplittingImpl.h:198