ATLAS Offline Software
TopoAutomatonClusteringImpl.h
Go to the documentation of this file.
1 //
2 // Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 //
4 // Dear emacs, this is -*- c++ -*-
5 //
6 
7 #ifndef CALORECGPU_TOPOAUTOMATONCLUSTERING_CUDA_H
8 #define CALORECGPU_TOPOAUTOMATONCLUSTERING_CUDA_H
9 
11 #include "CaloRecGPU/DataHolders.h"
12 #include "CaloRecGPU/Helpers.h"
13 #include "ExtraTagDefinitions.h"
14 
16 
17 namespace TAGrowing
18 {
19 
21  {
22  using CaloRecGPU::Tag_1_1_12_32_18::Tag_1_1_12_32_18;
23 
24  protected:
25 
26  constexpr static carrier s_grow_tag = 0x7FFFFFFFFFFFFFFFULL;
27 
28  constexpr static carrier s_terminal_tag = 0x0000000000000001ULL;
29 
30  constexpr static carrier s_minimum_seed_tag = 0x8000000000000000ULL;
31 
32  constexpr static uint32_t s_start_counter = 0xFFFU;
33 
35 
37 
38  public:
39 
40  [[nodiscard]] static constexpr carrier make_seed_tag(const uint32_t cell, const uint32_t SNR_pattern, const bool can_merge_with_others = true)
41  {
42  return make_generic_tag(cell, SNR_pattern, s_start_counter, !can_merge_with_others, true);
43  }
44 
45  [[nodiscard]] static constexpr carrier make_grow_tag()
46  {
47  return s_grow_tag;
48  }
49 
50  [[nodiscard]] static constexpr carrier make_terminal_tag()
51  {
52  return s_terminal_tag;
53  }
54 
55  [[nodiscard]] constexpr bool is_part_of_cluster() const
56  {
57  return value > s_grow_tag;
58  }
59 
60  [[nodiscard]] static constexpr bool is_part_of_cluster(const TACTag tag)
61  {
62  return tag.is_part_of_cluster();
63  }
64 
65  [[nodiscard]] constexpr bool is_valid() const
66  {
67  return value >= s_terminal_tag;
68  }
69 
70  [[nodiscard]] static constexpr bool is_valid(const TACTag tag)
71  {
72  return tag.is_valid();
73  }
74 
75  [[nodiscard]] constexpr bool is_invalid() const
76  {
77  return !(this->is_valid());
78  }
79 
80  [[nodiscard]] static constexpr bool is_invalid(const TACTag tag)
81  {
82  return tag.is_invalid();
83  }
84 
85  [[nodiscard]] constexpr bool is_non_assigned_terminal() const
86  {
87  return value >= s_terminal_tag && value < s_grow_tag;
88  }
89 
90  [[nodiscard]] static constexpr bool is_non_assigned_terminal(const TACTag tag)
91  {
92  return tag.is_non_assigned_terminal();
93  }
94 
95  [[nodiscard]] constexpr bool is_non_assigned_grow() const
96  {
98  }
99 
100  [[nodiscard]] static constexpr bool is_non_assigned_grow(const TACTag tag)
101  {
102  return tag.is_non_assigned_grow();
103  }
104 
105  [[nodiscard]] constexpr bool is_seed() const
106  {
107  return value >= s_minimum_seed_tag;
108  }
109 
110  [[nodiscard]] static constexpr bool is_seed(const TACTag tag)
111  {
112  return tag.is_seed();
113  }
114 
115  [[nodiscard]] constexpr bool is_grow_or_seed() const
116  {
117  return value >= s_grow_tag;
118  }
119 
120  [[nodiscard]] static constexpr bool is_grow_or_seed(const TACTag tag)
121  {
122  return tag.is_grow_or_seed();
123  }
124 
125  [[nodiscard]] constexpr carrier propagate() const
126  {
128  }
129 
130  [[nodiscard]] static constexpr carrier propagate(const TACTag tag)
131  {
132  return tag.propagate();
133  }
134 
135  [[nodiscard]] constexpr uint32_t index() const
136  {
137  return this->get_18_bits();
138  }
139 
140  [[nodiscard]] static constexpr uint32_t index(const TACTag tag)
141  {
142  return tag.index();
143  }
144 
145  [[nodiscard]] constexpr uint32_t SNR() const
146  {
147  return this->get_32_bits();
148  }
149 
150  [[nodiscard]] static constexpr uint32_t SNR(const TACTag tag)
151  {
152  return tag.SNR();
153  }
154 
155  [[nodiscard]] constexpr uint32_t counter() const
156  {
157  return this->get_12_bits();
158  }
159 
160  [[nodiscard]] static constexpr uint32_t counter(const TACTag tag)
161  {
162  return tag.counter();
163  }
164 
165  [[nodiscard]] constexpr carrier clear_counter_and_no_merge() const
166  {
167  return value & ~(s_second_flag_mask | s_12_bit_mask);
168  }
169 
170  [[nodiscard]] static constexpr carrier clear_counter_and_no_merge(const TACTag tag)
171  {
172  return tag.clear_counter_and_no_merge();
173  }
174 
175  [[nodiscard]] constexpr carrier set_index(const uint32_t new_index) const
176  {
177  return (value & (~s_18_bit_mask)) | (new_index & 0x3FFFFU);
178  }
179 
180  [[nodiscard]] constexpr bool can_merge() const
181  {
182  return this->is_seed() && !this->get_second_flag();
183  }
184 
185  [[nodiscard]] static constexpr bool can_merge(const TACTag tag)
186  {
187  return tag.can_merge();
188  }
189 
190  [[nodiscard]] constexpr bool cannot_merge() const
191  {
192  return !this->can_merge();
193  }
194 
195  [[nodiscard]] static constexpr bool cannot_merge(const TACTag tag)
196  {
197  return tag.cannot_merge();
198  }
199 
200  [[nodiscard]] constexpr carrier clear_no_merge_flag() const
201  {
202  return this->unset_second_flag();
203  }
204 
205  [[nodiscard]] static constexpr carrier clear_no_merge_flag(const TACTag tag)
206  {
207  return tag.clear_no_merge_flag();
208  }
209  };
210 
212  {
214 
216 
217  unsigned long long int seed_cell_table[CaloRecGPU::NMaxClusters];
218 
219 
220  struct PairsArr
221  {
224  int number;
225  };
226 
228 
231  };
232 
234  {
244 
247  unsigned int neighbour_options;
248 
251 
252  unsigned int valid_sampling_seed;
253  //This is used to pack the bits that tell us whether a sample can be used to have seeds or not.
255  //This is a way to express the selection of calorimeters to use for the algorithm
256  //through the samplings (as the calorimeter <-> sampling relation is fixed...)
257 
258  constexpr bool uses_seed_sampling(const int sampling) const
259  {
260  return (valid_sampling_seed >> sampling) & 1;
261  }
262 
268  constexpr bool uses_calorimeter_by_sampling(const int sampling) const
269  {
270  return (valid_calorimeter_by_sampling >> sampling) & 1;
271  }
272 
273  };
274  //Just a bundled way to pass the options for the Topo-Automaton Clustering.
275 
277  {
279 
281 
282  void allocate()
283  {
284  m_options.allocate();
285  }
286 
287  void sendToGPU(const bool clear_CPU = false);
288  };
289 
291 
293  const CaloRecGPU::ConstantDataHolder & instance_data,
294  const TACOptionsHolder & options,
295  const IGPUKernelSizeOptimizer & optimizer,
296  const bool synchronize = false,
298 
300  const CaloRecGPU::ConstantDataHolder & instance_data,
301  const TACOptionsHolder & options,
302  const IGPUKernelSizeOptimizer & optimizer,
303  const bool synchronize = false,
305 
307  const CaloRecGPU::ConstantDataHolder & instance_data,
308  const TACOptionsHolder & options,
309  const IGPUKernelSizeOptimizer & optimizer,
310  const bool synchronize = false,
312 
313 }
314 #endif //CALORECGPU_TOPOAUTOMATONCLUSTERING_CUDA_H
TAGrowing::TopoAutomatonOptions::use_crosstalk
bool use_crosstalk
Definition: TopoAutomatonClusteringImpl.h:249
TAGrowing::TopoAutomatonOptions::uses_calorimeter_by_sampling
constexpr bool uses_calorimeter_by_sampling(const int sampling) const
Checks if the calorimeter is used through the sampling to which the cell belongs.
Definition: TopoAutomatonClusteringImpl.h:268
TAGrowing::TACTag::propagate
static constexpr carrier propagate(const TACTag tag)
Definition: TopoAutomatonClusteringImpl.h:130
TAGrowing::TACTag::cannot_merge
constexpr bool cannot_merge() const
Definition: TopoAutomatonClusteringImpl.h:190
TAGrowing::TACTag::make_terminal_tag
static constexpr carrier make_terminal_tag()
Definition: TopoAutomatonClusteringImpl.h:50
CaloRecGPU::NMaxPairs
constexpr int NMaxPairs
Definition: BaseDefinitions.h:36
CaloRecGPU::Tag_1_1_12_32_18::get_second_flag
constexpr bool get_second_flag() const
Definition: ExtraTagDefinitions.h:484
TAGrowing::TopoAutomatonGrowingTemporaries::seedgrow_pairs
PairsArr seedgrow_pairs
Definition: TopoAutomatonClusteringImpl.h:227
TAGrowing::TACTag::s_minimum_seed_tag
constexpr static carrier s_minimum_seed_tag
Definition: TopoAutomatonClusteringImpl.h:30
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
TAGrowing::TopoAutomatonOptions::abs_terminal
bool abs_terminal
Definition: TopoAutomatonClusteringImpl.h:236
TAGrowing::TopoAutomatonOptions::abs_seed
bool abs_seed
Definition: TopoAutomatonClusteringImpl.h:236
TAGrowing::TACTag::SNR
constexpr uint32_t SNR() const
Definition: TopoAutomatonClusteringImpl.h:145
TAGrowing::TopoAutomatonGrowingTemporaries::term_pairs
PairsArr term_pairs
Definition: TopoAutomatonClusteringImpl.h:227
TAGrowing::TopoAutomatonGrowingTemporaries::stop_flag
int stop_flag
Definition: TopoAutomatonClusteringImpl.h:230
TAGrowing::cellPairs
void cellPairs(CaloRecGPU::EventDataHolder &holder, const CaloRecGPU::ConstantDataHolder &instance_data, const TACOptionsHolder &options, const IGPUKernelSizeOptimizer &optimizer, const bool synchronize=false, CaloRecGPU::CUDA_Helpers::CUDAStreamPtrHolder stream_to_use={})
TAGrowing::TopoAutomatonOptions::completely_exclude_cut_seeds
bool completely_exclude_cut_seeds
Definition: TopoAutomatonClusteringImpl.h:241
TAGrowing::TACTag::s_grow_tag
constexpr static carrier s_grow_tag
Definition: TopoAutomatonClusteringImpl.h:26
TAGrowing::TACTag::make_seed_tag
static constexpr carrier make_seed_tag(const uint32_t cell, const uint32_t SNR_pattern, const bool can_merge_with_others=true)
Definition: TopoAutomatonClusteringImpl.h:40
TAGrowing::TACTag::propagate
constexpr carrier propagate() const
Definition: TopoAutomatonClusteringImpl.h:125
xAOD::uint32_t
setEventNumber uint32_t
Definition: EventInfo_v1.cxx:127
TAGrowing::TopoAutomatonGrowingTemporaries::secondary_array
CaloRecGPU::tag_type secondary_array[CaloRecGPU::NCaloCells]
Definition: TopoAutomatonClusteringImpl.h:213
IGPUKernelSizeOptimizer.h
TAGrowing::TACOptionsHolder::m_options
CaloRecGPU::Helpers::CPU_object< TopoAutomatonOptions > m_options
Definition: TopoAutomatonClusteringImpl.h:278
ExtraTagDefinitions.h
TAGrowing::TACTag::index
static constexpr uint32_t index(const TACTag tag)
Definition: TopoAutomatonClusteringImpl.h:140
CaloRecGPU::Tag_1_1_12_32_18::s_12_bit_offset
constexpr static unsigned int s_12_bit_offset
Definition: ExtraTagDefinitions.h:465
TAGrowing::TopoAutomatonOptions::seed_threshold
float seed_threshold
Definition: TopoAutomatonClusteringImpl.h:235
CaloRecGPU::Helpers::SimpleHolder
Holds one objects of type \T in memory context Context.
Definition: Calorimeter/CaloRecGPU/CaloRecGPU/Helpers.h:1069
TAGrowing::TopoAutomatonOptions::use_time_cut
bool use_time_cut
Definition: TopoAutomatonClusteringImpl.h:239
TAGrowing::TACOptionsHolder::allocate
void allocate()
Definition: TopoAutomatonClusteringImpl.h:282
TAGrowing::TopoAutomatonOptions::crosstalk_delta
float crosstalk_delta
Definition: TopoAutomatonClusteringImpl.h:250
TAGrowing::TACTag::can_merge
constexpr bool can_merge() const
Definition: TopoAutomatonClusteringImpl.h:180
TAGrowing::TACTag::SNR
static constexpr uint32_t SNR(const TACTag tag)
Definition: TopoAutomatonClusteringImpl.h:150
CaloRecGPU::Tag_1_1_12_32_18::get_18_bits
constexpr uint32_t get_18_bits() const
Definition: ExtraTagDefinitions.h:519
TAGrowing::TopoAutomatonOptions::terminal_threshold
float terminal_threshold
Definition: TopoAutomatonClusteringImpl.h:235
TAGrowing::TACTag::cannot_merge
static constexpr bool cannot_merge(const TACTag tag)
Definition: TopoAutomatonClusteringImpl.h:195
TAGrowing::TopoAutomatonOptions::valid_sampling_seed
unsigned int valid_sampling_seed
Definition: TopoAutomatonClusteringImpl.h:252
TAGrowing::TACTag
Definition: TopoAutomatonClusteringImpl.h:21
TAGrowing::TopoAutomatonOptions::neighbour_options
unsigned int neighbour_options
Definition: TopoAutomatonClusteringImpl.h:247
TAGrowing::TACTag::is_non_assigned_grow
static constexpr bool is_non_assigned_grow(const TACTag tag)
Definition: TopoAutomatonClusteringImpl.h:100
TAGrowing::TopoAutomatonGrowingTemporaries::PairsArr::cellID
int cellID[CaloRecGPU::NMaxPairs]
Definition: TopoAutomatonClusteringImpl.h:222
TAGrowing::TopoAutomatonGrowingTemporaries::PairsArr::number
int number
Definition: TopoAutomatonClusteringImpl.h:224
TAGrowing::TopoAutomatonOptions::valid_calorimeter_by_sampling
unsigned int valid_calorimeter_by_sampling
Definition: TopoAutomatonClusteringImpl.h:254
TAGrowing::TACTag::counter
constexpr uint32_t counter() const
Definition: TopoAutomatonClusteringImpl.h:155
TAGrowing::clusterGrowing
void clusterGrowing(CaloRecGPU::EventDataHolder &holder, const CaloRecGPU::ConstantDataHolder &instance_data, const TACOptionsHolder &options, const IGPUKernelSizeOptimizer &optimizer, const bool synchronize=false, CaloRecGPU::CUDA_Helpers::CUDAStreamPtrHolder stream_to_use={})
TAGrowing::TopoAutomatonOptions::uses_seed_sampling
constexpr bool uses_seed_sampling(const int sampling) const
Definition: TopoAutomatonClusteringImpl.h:258
TAGrowing::TACTag::s_start_counter
constexpr static uint32_t s_start_counter
Definition: TopoAutomatonClusteringImpl.h:32
TAGrowing::TACTag::is_invalid
static constexpr bool is_invalid(const TACTag tag)
Definition: TopoAutomatonClusteringImpl.h:80
TAGrowing::TopoAutomatonOptions::treat_L1_predicted_as_good
bool treat_L1_predicted_as_good
Definition: TopoAutomatonClusteringImpl.h:238
CaloRecGPU::tag_type
TagBase::carrier tag_type
Definition: TagDefinitions.h:325
CaloRecGPU::EventDataHolder
Definition: DataHolders.h:35
TAGrowing::TACTag::clear_counter_and_no_merge
static constexpr carrier clear_counter_and_no_merge(const TACTag tag)
Definition: TopoAutomatonClusteringImpl.h:170
TAGrowing::TACTag::clear_no_merge_flag
constexpr carrier clear_no_merge_flag() const
Definition: TopoAutomatonClusteringImpl.h:200
TAGrowing::TopoAutomatonOptions::grow_threshold
float grow_threshold
Definition: TopoAutomatonClusteringImpl.h:235
TAGrowing::TACTag::s_tag_propagation_delta
constexpr static carrier s_tag_propagation_delta
Definition: TopoAutomatonClusteringImpl.h:34
TAGrowing::signalToNoise
void signalToNoise(CaloRecGPU::EventDataHolder &holder, const CaloRecGPU::ConstantDataHolder &instance_data, const TACOptionsHolder &options, const IGPUKernelSizeOptimizer &optimizer, const bool synchronize=false, CaloRecGPU::CUDA_Helpers::CUDAStreamPtrHolder stream_to_use={})
TAGrowing::TopoAutomatonOptions::abs_grow
bool abs_grow
Definition: TopoAutomatonClusteringImpl.h:236
Helpers.h
TAGrowing::TACTag::can_merge
static constexpr bool can_merge(const TACTag tag)
Definition: TopoAutomatonClusteringImpl.h:185
TAGrowing::TACTag::is_seed
static constexpr bool is_seed(const TACTag tag)
Definition: TopoAutomatonClusteringImpl.h:110
CaloRecGPU::Tag_1_1_12_32_18::unset_second_flag
constexpr carrier unset_second_flag() const
Definition: ExtraTagDefinitions.h:504
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
TAGrowing::TACTag::is_non_assigned_terminal
constexpr bool is_non_assigned_terminal() const
Definition: TopoAutomatonClusteringImpl.h:85
TAGrowing::TACTag::is_grow_or_seed
static constexpr bool is_grow_or_seed(const TACTag tag)
Definition: TopoAutomatonClusteringImpl.h:120
CaloRecGPU::Tag_1_1_12_32_18::s_second_flag_mask
constexpr static carrier s_second_flag_mask
Definition: ExtraTagDefinitions.h:458
TAGrowing::TopoAutomatonOptions::snr_threshold_for_keeping_cells
float snr_threshold_for_keeping_cells
Definition: TopoAutomatonClusteringImpl.h:243
TAGrowing::TopoAutomatonGrowingTemporaries
Definition: TopoAutomatonClusteringImpl.h:212
TAGrowing::TACTag::is_non_assigned_terminal
static constexpr bool is_non_assigned_terminal(const TACTag tag)
Definition: TopoAutomatonClusteringImpl.h:90
TAGrowing::TACTag::make_grow_tag
static constexpr carrier make_grow_tag()
Definition: TopoAutomatonClusteringImpl.h:45
TAGrowing::TopoAutomatonGrowingTemporaries::PairsArr
Definition: TopoAutomatonClusteringImpl.h:221
python.AtlRunQueryLib.options
options
Definition: AtlRunQueryLib.py:379
CaloRecGPU::NCaloCells
constexpr int NCaloCells
Definition: BaseDefinitions.h:13
TAGrowing::TopoAutomatonGrowingTemporaries::cell_to_cluster_map
int cell_to_cluster_map[CaloRecGPU::NCaloCells]
Definition: TopoAutomatonClusteringImpl.h:215
TAGrowing::TACOptionsHolder
Definition: TopoAutomatonClusteringImpl.h:277
TAGrowing::TACOptionsHolder::sendToGPU
void sendToGPU(const bool clear_CPU=false)
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
TAGrowing::TACTag::is_invalid
constexpr bool is_invalid() const
Definition: TopoAutomatonClusteringImpl.h:75
TAGrowing::TopoAutomatonGrowingTemporaries::PairsArr::neighbourID
int neighbourID[CaloRecGPU::NMaxPairs]
Definition: TopoAutomatonClusteringImpl.h:223
CaloRecGPU::Tag_1_1_12_32_18::get_12_bits
constexpr uint32_t get_12_bits() const
Definition: ExtraTagDefinitions.h:509
TAGrowing::TopoAutomatonGrowingTemporaries::seed_cell_table
unsigned long long int seed_cell_table[CaloRecGPU::NMaxClusters]
Definition: TopoAutomatonClusteringImpl.h:217
CaloRecGPU::CUDA_Helpers::CUDAStreamPtrHolder
Definition: Calorimeter/CaloRecGPU/CaloRecGPU/Helpers.h:109
TAGrowing::TopoAutomatonOptions::time_threshold
float time_threshold
Definition: TopoAutomatonClusteringImpl.h:242
CaloRecGPU::Tag_1_1_12_32_18
Definition: ExtraTagDefinitions.h:450
TAGrowing::TopoAutomatonGrowingTemporaries::continue_flag
int continue_flag
Definition: TopoAutomatonClusteringImpl.h:229
TAGrowing::TACTag::is_grow_or_seed
constexpr bool is_grow_or_seed() const
Definition: TopoAutomatonClusteringImpl.h:115
TAGrowing::TopoAutomatonOptions::keep_significant_cells
bool keep_significant_cells
Definition: TopoAutomatonClusteringImpl.h:240
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
TAGrowing::TACTag::is_valid
static constexpr bool is_valid(const TACTag tag)
Definition: TopoAutomatonClusteringImpl.h:70
TAGrowing::TACTag::is_valid
constexpr bool is_valid() const
Definition: TopoAutomatonClusteringImpl.h:65
TAGrowing::TACTag::s_no_can_merge_flag
constexpr static carrier s_no_can_merge_flag
Definition: TopoAutomatonClusteringImpl.h:36
TAGrowing::TACTag::index
constexpr uint32_t index() const
Definition: TopoAutomatonClusteringImpl.h:135
TAGrowing::TopoAutomatonOptions::limit_PS_neighs
bool limit_PS_neighs
Definition: TopoAutomatonClusteringImpl.h:246
CaloRecGPU::NMaxClusters
constexpr int NMaxClusters
Definition: BaseDefinitions.h:28
CUDAFriendlyClasses.h
TAGrowing::TACOptionsHolder::m_options_dev
CaloRecGPU::Helpers::CUDA_object< TopoAutomatonOptions > m_options_dev
Definition: TopoAutomatonClusteringImpl.h:280
TAGrowing::TACTag::counter
static constexpr uint32_t counter(const TACTag tag)
Definition: TopoAutomatonClusteringImpl.h:160
TAGrowing::TACTag::s_terminal_tag
constexpr static carrier s_terminal_tag
Definition: TopoAutomatonClusteringImpl.h:28
TAGrowing::register_kernels
void register_kernels(IGPUKernelSizeOptimizer &optimizer)
TAGrowing::TACTag::set_index
constexpr carrier set_index(const uint32_t new_index) const
Definition: TopoAutomatonClusteringImpl.h:175
TAGrowing::TACTag::is_part_of_cluster
constexpr bool is_part_of_cluster() const
Definition: TopoAutomatonClusteringImpl.h:55
CaloRecGPU::ConstantDataHolder
Definition: DataHolders.h:19
CaloRecGPU::Tag_1_1_12_32_18::get_32_bits
constexpr uint32_t get_32_bits() const
Definition: ExtraTagDefinitions.h:514
TAGrowing::TACTag::is_non_assigned_grow
constexpr bool is_non_assigned_grow() const
Definition: TopoAutomatonClusteringImpl.h:95
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:24
TAGrowing::TACTag::is_part_of_cluster
static constexpr bool is_part_of_cluster(const TACTag tag)
Definition: TopoAutomatonClusteringImpl.h:60
TAGrowing::TopoAutomatonOptions::use_two_gaussian
bool use_two_gaussian
Definition: TopoAutomatonClusteringImpl.h:237
TAGrowing::TACTag::is_seed
constexpr bool is_seed() const
Definition: TopoAutomatonClusteringImpl.h:105
IGPUKernelSizeOptimizer
Interface for GPU kernel size optimization (allowing adjustment of kernel sizes to the properties of ...
Definition: IGPUKernelSizeOptimizer.h:29
DataHolders.h
TAGrowing
Definition: TopoAutomatonClusteringImpl.h:18
TAGrowing::TopoAutomatonOptions::limit_HECIW_and_FCal_neighs
bool limit_HECIW_and_FCal_neighs
Definition: TopoAutomatonClusteringImpl.h:245
TAGrowing::TACTag::clear_no_merge_flag
static constexpr carrier clear_no_merge_flag(const TACTag tag)
Definition: TopoAutomatonClusteringImpl.h:205
TAGrowing::TACTag::clear_counter_and_no_merge
constexpr carrier clear_counter_and_no_merge() const
Definition: TopoAutomatonClusteringImpl.h:165
TAGrowing::TopoAutomatonOptions
Definition: TopoAutomatonClusteringImpl.h:234