ATLAS Offline Software
CaloGPUClusterAndCellDataMonitor.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_CaloGPUClusterAndCellDataMonitor_H
8 #define CALORECGPU_CaloGPUClusterAndCellDataMonitor_H
9 
13 #include "CaloRecGPU/Helpers.h"
14 #include <string>
15 #include <vector>
16 #include <utility>
17 #include <memory>
18 #include <mutex>
19 #include <tuple>
20 
22 
25 
27 
28 class CaloCell_ID;
29 
41  public AthAlgTool, virtual public ICaloClusterGPUPlotter
42 {
43  public:
44 
45  CaloGPUClusterAndCellDataMonitor(const std::string & type, const std::string & name, const IInterface * parent);
46 
47  virtual StatusCode initialize() override;
48 
49  virtual ~CaloGPUClusterAndCellDataMonitor() = default;
50 
51 
52  virtual StatusCode update_plots_start(const EventContext & ctx,
53  const CaloRecGPU::ConstantDataHolder & constant_data,
54  const xAOD::CaloClusterContainer * cluster_collection_ptr) const override;
55 
56  virtual StatusCode update_plots_end(const EventContext & ctx,
57  const CaloRecGPU::ConstantDataHolder & constant_data,
58  const xAOD::CaloClusterContainer * cluster_collection_ptr) const override;
59 
60  virtual StatusCode update_plots(const EventContext & ctx,
61  const CaloRecGPU::ConstantDataHolder & constant_data,
62  const xAOD::CaloClusterContainer * cluster_collection_ptr,
63  const CaloClusterCollectionProcessor * tool) const override;
64 
65  virtual StatusCode update_plots(const EventContext & ctx,
66  const CaloRecGPU::ConstantDataHolder & constant_data,
67  const xAOD::CaloClusterContainer * cluster_collection_ptr,
68  const CaloRecGPU::EventDataHolder & event_data,
69  const ICaloClusterGPUInputTransformer * tool) const override;
70 
71  virtual StatusCode update_plots(const EventContext & ctx,
72  const CaloRecGPU::ConstantDataHolder & constant_data,
73  const xAOD::CaloClusterContainer * cluster_collection_ptr,
74  const CaloRecGPU::EventDataHolder & event_data,
75  const CaloClusterGPUProcessor * tool) const override;
76 
77  virtual StatusCode update_plots(const EventContext & ctx,
78  const CaloRecGPU::ConstantDataHolder & constant_data,
79  const xAOD::CaloClusterContainer * cluster_collection_ptr,
80  const CaloRecGPU::EventDataHolder & event_data,
81  const ICaloClusterGPUOutputTransformer * tool) const override;
82 
83  virtual StatusCode finalize_plots() const override;
84 
85  private:
86 
88 
89  StatusCode add_data(const EventContext & ctx,
90  const CaloRecGPU::ConstantDataHolder & constant_data,
95  const std::string & tool_name) const;
96 
97 
98  StatusCode add_combination(const EventContext & ctx,
99  const CaloRecGPU::ConstantDataHolder & constant_data,
100  const int index_1,
101  const int index_2,
102  const std::string & prefix,
103  const bool match_in_energy,
104  const bool match_without_shared,
105  const bool match_perfectly) const;
106 
109  bool filter_tool_by_name(const std::string & tool_name) const;
110 
111  StatusCode convert_to_GPU_data_structures(const EventContext & ctx,
112  const CaloRecGPU::ConstantDataHolder & constant_data,
113  const xAOD::CaloClusterContainer * cluster_collection_ptr,
118 
120  StatusCode compactify_clusters(const EventContext & ctx,
121  const CaloRecGPU::ConstantDataHolder & constant_data,
126 
127 
129  {
130  std::vector<int> r2t_table, t2r_table;
132 
135  int r2t(const int i) const
136  {
137  return r2t_table[i];
138  }
141  int t2r(const int i) const
142  {
143  return t2r_table[i];
144  }
146  int ref_unmatched() const
147  {
148  return unmatched_ref_list.size();
149  }
151  int test_unmatched() const
152  {
153  return unmatched_test_list.size();
154  }
155  };
156 
157  StatusCode match_clusters(sample_comparisons_holder & sch,
158  const CaloRecGPU::ConstantDataHolder & constant_data,
159  const CaloRecGPU::CellInfoArr & cell_info,
160  const CaloRecGPU::CellStateArr & cell_state_1,
161  const CaloRecGPU::CellStateArr & cell_state_2,
162  const CaloRecGPU::ClusterInfoArr & cluster_info_1,
163  const CaloRecGPU::ClusterInfoArr & cluster_info_2,
164  const CaloRecGPU::ClusterMomentsArr & /*moments_1*/,
165  const CaloRecGPU::ClusterMomentsArr & /*moments_2*/,
166  const bool match_in_energy,
167  const bool match_without_shared) const;
168 
169  StatusCode match_clusters_perfectly(sample_comparisons_holder & sch,
170  const CaloRecGPU::ConstantDataHolder & constant_data,
171  const CaloRecGPU::CellInfoArr & cell_info,
172  const CaloRecGPU::CellStateArr & cell_state_1,
173  const CaloRecGPU::CellStateArr & cell_state_2,
174  const CaloRecGPU::ClusterInfoArr & cluster_info_1,
175  const CaloRecGPU::ClusterInfoArr & cluster_info_2,
176  const CaloRecGPU::ClusterMomentsArr & /*moments_1*/,
177  const CaloRecGPU::ClusterMomentsArr & /*moments_2*/,
178  const bool match_without_shared) const;
179 
180  //--------------------------------------------------
181  //
182  // GENERAL OPTIONS/SETTINGS
183  //
184  //--------------------------------------------------
185 
189  Gaudi::Property<float> m_termThreshold {this, "CellThreshold", 0., "Cell (terminal) threshold (in units of noise Sigma)"};
190 
194  Gaudi::Property<float> m_growThreshold {this, "NeighborThreshold", 2., "Neighbor (grow) threshold (in units of noise Sigma)"};
195 
199  Gaudi::Property<float> m_seedThreshold {this, "SeedThreshold", 4., "Seed threshold (in units of noise Sigma)"};
200 
204  SG::ReadHandleKey<CaloCellContainer> m_cellsKey {this, "CellsName", "", "Name(s) of Cell Containers"};
205 
208  ToolHandle< GenericMonitoringTool > m_moniTool { this, "MonitoringTool", "", "Monitoring tool" };
209 
210  //--------------------------------------------------
211  //
212  // PLOT OPTIONS
213  //
214  //--------------------------------------------------
215 
220  Gaudi::Property<std::vector<SimpleSingleTool>> m_toolsToPlot
221  {this, "ToolsToPlot", {}, "Tools to be plotted individually"};
222 
225  Gaudi::Property< std::vector<SimpleToolPair> > m_pairsToPlot
226  {this, "PairsToPlot", {}, "Pairs of tools to be compared and plotted"};
227 
230  Gaudi::Property<MatchingOptions> m_matchingOptions
231  {this, "ClusterMatchingParameters", {}, "Parameters for the cluster matching algorithm"};
232 
233  //--------------------------------------------------
234  //
235  // OTHER MEMBER VARIABLES
236  //
237  //--------------------------------------------------
238 
242  double m_min_similarity = 0.5, m_seed_weight = 5000., m_grow_weight = 250., m_terminal_weight = 10.;
243 
247  const CaloCell_ID * m_calo_id {nullptr};
248 
255  std::map<std::string, int> m_toolsToCheckFor;
256 
258  std::map<std::string, std::string> m_toolToIdMap;
259 
262 
264  {
265  int index_ref = -1, index_test = -1;
266  std::string prefix;
267  bool match_in_energy = false;
268  bool match_without_shared = false;
269  bool match_perfectly = false;
270  };
271 
272  std::vector<pair_to_plot> m_toolCombinations;
273 
275  mutable std::map<std::string, std::atomic<size_t>> m_numClustersPerTool ATLAS_THREAD_SAFE;
276 
278  size_t m_numEvents = 0;
279 
281  {
286  };
287 
291 
299 
302  bool m_doCells = false, m_doClusters = false, m_doCombinedCells = false, m_doCombinedClusters = false;
303 
304 
308  mutable std::atomic<bool> m_plottedVariablesInitialized;
309 
310 
314 
315 };
316 
317 #endif //CALORECGPU_CaloGPUClusterAndCellDataMonitor_H
CaloGPUClusterAndCellDataMonitor::per_tool_storage::clusters
CaloRecGPU::ClusterInfoArr clusters
Definition: CaloGPUClusterAndCellDataMonitor.h:284
CaloGPUClusterAndCellDataMonitor::m_cellPropertiesToDo
std::vector< bool > m_cellPropertiesToDo
Definition: CaloGPUClusterAndCellDataMonitor.h:296
CaloGPUClusterAndCellDataMonitor::per_tool_storage::cell_info
CaloRecGPU::CellInfoArr cell_info
Definition: CaloGPUClusterAndCellDataMonitor.h:282
CaloGPUClusterAndCellDataMonitor::pair_to_plot::index_ref
int index_ref
Definition: CaloGPUClusterAndCellDataMonitor.h:265
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
CaloGPUClusterAndCellDataMonitor::CaloGPUClusterAndCellDataMonitor
CaloGPUClusterAndCellDataMonitor(const std::string &type, const std::string &name, const IInterface *parent)
Definition: CaloGPUClusterAndCellDataMonitor.cxx:25
CaloGPUClusterAndCellDataMonitor::per_tool_storage
Definition: CaloGPUClusterAndCellDataMonitor.h:281
CaloGPUClusterAndCellDataMonitor::update_plots_end
virtual StatusCode update_plots_end(const EventContext &ctx, const CaloRecGPU::ConstantDataHolder &constant_data, const xAOD::CaloClusterContainer *cluster_collection_ptr) const override
Definition: CaloGPUClusterAndCellDataMonitor.cxx:140
CaloGPUClusterAndCellDataMonitor::m_extraThingsToDo
std::vector< bool > m_extraThingsToDo
Definition: CaloGPUClusterAndCellDataMonitor.h:298
CaloGPUClusterAndCellDataMonitor::m_min_similarity
double m_min_similarity
Parameters for the cluster matching algorithm, for easier access.
Definition: CaloGPUClusterAndCellDataMonitor.h:242
BeamSpot::mutex
std::mutex mutex
Definition: InDetBeamSpotVertex.cxx:18
CaloGPUClusterAndCellDataMonitor::per_tool_storage::cell_state
CaloRecGPU::CellStateArr cell_state
Definition: CaloGPUClusterAndCellDataMonitor.h:283
CaloGPUClusterAndCellDataMonitor::update_plots
virtual StatusCode update_plots(const EventContext &ctx, const CaloRecGPU::ConstantDataHolder &constant_data, const xAOD::CaloClusterContainer *cluster_collection_ptr, const CaloClusterCollectionProcessor *tool) const override
Definition: CaloGPUClusterAndCellDataMonitor.cxx:168
CaloRecGPU::Helpers::SimpleHolder
Holds one objects of type \T in memory context Context.
Definition: Calorimeter/CaloRecGPU/CaloRecGPU/Helpers.h:1069
CaloGPUClusterAndCellDataMonitor::sample_comparisons_holder::test_unmatched
int test_unmatched() const
Returns the number of unmatched clusters in the test (second) tool.
Definition: CaloGPUClusterAndCellDataMonitor.h:151
CaloGPUClusterAndCellDataMonitor::m_comparedClusterPropertiesToDo
std::vector< bool > m_comparedClusterPropertiesToDo
Definition: CaloGPUClusterAndCellDataMonitor.h:295
CaloClusterGPUProcessor
Base class for GPU-accelerated cluster processing tools to be called from CaloGPUHybridClusterProcess...
Definition: CaloClusterGPUProcessor.h:27
CaloGPUClusterAndCellDataMonitor::m_plottedVariablesInitialized
std::atomic< bool > m_plottedVariablesInitialized
A flag to signal that the variables to be monitored have been detected based on the booked histograms...
Definition: CaloGPUClusterAndCellDataMonitor.h:308
CaloGPUClusterAndCellDataMonitor::m_cellTypesToDo
std::vector< bool > m_cellTypesToDo
Definition: CaloGPUClusterAndCellDataMonitor.h:297
CaloGPUClusterAndCellDataMonitor::match_clusters
StatusCode match_clusters(sample_comparisons_holder &sch, const CaloRecGPU::ConstantDataHolder &constant_data, const CaloRecGPU::CellInfoArr &cell_info, const CaloRecGPU::CellStateArr &cell_state_1, const CaloRecGPU::CellStateArr &cell_state_2, const CaloRecGPU::ClusterInfoArr &cluster_info_1, const CaloRecGPU::ClusterInfoArr &cluster_info_2, const CaloRecGPU::ClusterMomentsArr &, const CaloRecGPU::ClusterMomentsArr &, const bool match_in_energy, const bool match_without_shared) const
Definition: CaloGPUClusterAndCellDataMonitor.cxx:717
CaloClusterCollectionProcessor
Definition: CaloClusterCollectionProcessor.h:32
SG::ReadHandleKey< CaloCellContainer >
CaloGPUClusterAndCellDataMonitor::ATLAS_THREAD_SAFE
CaloRecGPU::Helpers::separate_thread_holder< std::vector< per_tool_storage > > m_storageHolder ATLAS_THREAD_SAFE
Stores the intermediate results needed for tool-level matching.
Definition: CaloGPUClusterAndCellDataMonitor.h:290
CaloGPUClusterAndCellDataMonitor::add_data
StatusCode add_data(const EventContext &ctx, const CaloRecGPU::ConstantDataHolder &constant_data, const CaloRecGPU::Helpers::CPU_object< CaloRecGPU::CellInfoArr > &cell_info, const CaloRecGPU::Helpers::CPU_object< CaloRecGPU::CellStateArr > &cell_state, const CaloRecGPU::Helpers::CPU_object< CaloRecGPU::ClusterInfoArr > &clusters, const CaloRecGPU::Helpers::CPU_object< CaloRecGPU::ClusterMomentsArr > &moments, const std::string &tool_name) const
Definition: CaloGPUClusterAndCellDataMonitor.cxx:1657
CaloGPUClusterAndCellDataMonitor::m_numEvents
size_t m_numEvents
Counts the number of events.
Definition: CaloGPUClusterAndCellDataMonitor.h:278
CaloGPUClusterAndCellDataMonitor::m_terminal_weight
double m_terminal_weight
Definition: CaloGPUClusterAndCellDataMonitor.h:242
CaloGPUClusterAndCellDataMonitor::pair_to_plot
Definition: CaloGPUClusterAndCellDataMonitor.h:264
CaloGPUClusterAndCellDataMonitor::m_seedThreshold
Gaudi::Property< float > m_seedThreshold
Seed threshold to use for cluster matching.
Definition: CaloGPUClusterAndCellDataMonitor.h:199
CaloGPUClusterAndCellDataMonitor::sample_comparisons_holder::ref_unmatched
int ref_unmatched() const
Returns the number of unmatched clusters in the reference (first) tool.
Definition: CaloGPUClusterAndCellDataMonitor.h:146
CaloGPUClusterAndCellDataMonitor::m_toolsToCheckFor
std::map< std::string, int > m_toolsToCheckFor
Map of the strings corresponding to all the tools that will be relevant for plotting (individually or...
Definition: CaloGPUClusterAndCellDataMonitor.h:255
CaloGPUClusterAndCellDataMonitor::finalize_plots
virtual StatusCode finalize_plots() const override
Definition: CaloGPUClusterAndCellDataMonitor.cxx:101
CaloGPUClusterAndCellDataMonitor::m_doCombinedCells
bool m_doCombinedCells
Definition: CaloGPUClusterAndCellDataMonitor.h:302
CaloGPUClusterAndCellDataMonitor::sample_comparisons_holder::r2t_table
std::vector< int > r2t_table
Definition: CaloGPUClusterAndCellDataMonitor.h:130
CaloGPUClusterAndCellDataMonitor::sample_comparisons_holder::r2t
int r2t(const int i) const
Converts a cluster index from the reference tool (first) to the test tool (second).
Definition: CaloGPUClusterAndCellDataMonitor.h:135
CaloGPUClusterAndCellDataMonitor::m_grow_weight
double m_grow_weight
Definition: CaloGPUClusterAndCellDataMonitor.h:242
GenericMonitoringTool.h
CaloRecGPU::CellStateArr
Definition: EventInfoDefinitions.h:323
CaloGPUClusterAndCellDataMonitor::m_growThreshold
Gaudi::Property< float > m_growThreshold
Neighbor (growing) threshold to use for cluster matching.
Definition: CaloGPUClusterAndCellDataMonitor.h:194
CaloGPUClusterAndCellDataMonitor::m_toolToIdMap
std::map< std::string, std::string > m_toolToIdMap
Maps tools to their respective identifying prefix for variables.
Definition: CaloGPUClusterAndCellDataMonitor.h:258
CaloRecGPU::EventDataHolder
Definition: DataHolders.h:35
CaloGPUClusterAndCellDataMonitor::sample_comparisons_holder::unmatched_test_list
std::vector< int > unmatched_test_list
Definition: CaloGPUClusterAndCellDataMonitor.h:131
CaloGPUClusterAndCellDataMonitor::m_moniTool
ToolHandle< GenericMonitoringTool > m_moniTool
Monitoring tool.
Definition: CaloGPUClusterAndCellDataMonitor.h:208
CaloGPUClusterAndCellDataMonitor::m_calo_id
const CaloCell_ID * m_calo_id
Pointer to Calo ID Helper.
Definition: CaloGPUClusterAndCellDataMonitor.h:247
CaloGPUClusterAndCellDataMonitor::sample_comparisons_holder::t2r
int t2r(const int i) const
Converts a cluster index from the test tool (second) to the reference tool (first).
Definition: CaloGPUClusterAndCellDataMonitor.h:141
lumiFormat.i
int i
Definition: lumiFormat.py:92
Helpers.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
CaloGPUClusterAndCellDataMonitor::initialize
virtual StatusCode initialize() override
Definition: CaloGPUClusterAndCellDataMonitor.cxx:32
CaloGPUClusterAndCellDataMonitor::m_cellsKey
SG::ReadHandleKey< CaloCellContainer > m_cellsKey
vector of names of the cell containers to use as input.
Definition: CaloGPUClusterAndCellDataMonitor.h:204
CaloGPUClusterAndCellDataMonitor::sample_comparisons_holder::t2r_table
std::vector< int > t2r_table
Definition: CaloGPUClusterAndCellDataMonitor.h:130
CaloGPUClusterAndCellDataMonitor::m_clusterPropertiesToDo
std::vector< bool > m_clusterPropertiesToDo
Control which properties will actually be calculated and stored.
Definition: CaloGPUClusterAndCellDataMonitor.h:295
AthAlgTool.h
checkCorrelInHIST.prefix
dictionary prefix
Definition: checkCorrelInHIST.py:391
CaloRecGPU::ClusterInfoArr
Definition: EventInfoDefinitions.h:328
CaloGPUClusterAndCellDataMonitor::m_mutex
std::mutex m_mutex
This mutex is locked to ensure only one thread detects the monotired variables.
Definition: CaloGPUClusterAndCellDataMonitor.h:313
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ICaloClusterGPUInputTransformer
Base class for tools that convert event information from the Athena structures to the GPU-friendly fo...
Definition: CaloClusterGPUTransformers.h:66
CaloGPUClusterAndCellDataMonitor::m_matchingOptions
Gaudi::Property< MatchingOptions > m_matchingOptions
Option for adjusting the parameters for the cluster matching algorithm.
Definition: CaloGPUClusterAndCellDataMonitor.h:231
CaloGPUClusterAndCellDataMonitor::m_doClusters
bool m_doClusters
Definition: CaloGPUClusterAndCellDataMonitor.h:302
CaloCell_ID
Helper class for offline cell identifiers.
Definition: CaloCell_ID.h:34
CaloGPUClusterAndCellDataMonitor::m_extraComparedClusterPropertiesToDo
std::vector< bool > m_extraComparedClusterPropertiesToDo
Definition: CaloGPUClusterAndCellDataMonitor.h:296
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
CaloGPUClusterAndCellDataMonitor::pair_to_plot::match_in_energy
bool match_in_energy
Definition: CaloGPUClusterAndCellDataMonitor.h:267
CaloClusterGPUTransformers.h
CaloRecGPU::CellInfoArr
Definition: EventInfoDefinitions.h:188
ReadCondHandleKey.h
CaloGPUClusterAndCellDataMonitor::m_comparedCellTypesToDo
std::vector< bool > m_comparedCellTypesToDo
Definition: CaloGPUClusterAndCellDataMonitor.h:298
CaloGPUClusterAndCellDataMonitor::filter_tool_by_name
bool filter_tool_by_name(const std::string &tool_name) const
Returns true if this tool should be plotted for.
Definition: CaloGPUClusterAndCellDataMonitor.cxx:255
CaloGPUClusterAndCellDataMonitor::per_tool_storage::moments
CaloRecGPU::ClusterMomentsArr moments
Definition: CaloGPUClusterAndCellDataMonitor.h:285
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
CaloGPUClusterAndCellDataMonitor::compactify_clusters
StatusCode compactify_clusters(const EventContext &ctx, const CaloRecGPU::ConstantDataHolder &constant_data, const CaloRecGPU::Helpers::CPU_object< CaloRecGPU::CellInfoArr > &cell_info, CaloRecGPU::Helpers::CPU_object< CaloRecGPU::CellStateArr > &cell_state, CaloRecGPU::Helpers::CPU_object< CaloRecGPU::ClusterInfoArr > &clusters, CaloRecGPU::Helpers::CPU_object< CaloRecGPU::ClusterMomentsArr > &moments) const
Remove invalid clusters, reorder by ET and update the tags accordingly.
Definition: CaloGPUClusterAndCellDataMonitor.cxx:481
CaloRecGPU::Helpers::separate_thread_holder
Manages objects of type T in a thread-safe way, ensuring that there's an object available for each se...
Definition: Calorimeter/CaloRecGPU/CaloRecGPU/Helpers.h:1475
CaloGPUClusterAndCellDataMonitor::m_doCells
bool m_doCells
If no properties are asked for, skip the relevant loops entirely...
Definition: CaloGPUClusterAndCellDataMonitor.h:302
AtlCoolConsole.tool
tool
Definition: AtlCoolConsole.py:453
CaloRecGPU::ClusterMomentsArr
Definition: EventInfoDefinitions.h:342
CaloGPUClusterAndCellDataMonitor::initialize_plotted_variables
StatusCode initialize_plotted_variables()
Definition: CaloGPUClusterAndCellDataMonitor.cxx:1513
ICaloClusterGPUOutputTransformer
Base class for tools that convert event information from the GPU-friendly format used in CaloGPUHybri...
Definition: CaloClusterGPUTransformers.h:94
CaloGPUClusterAndCellDataMonitor::m_termThreshold
Gaudi::Property< float > m_termThreshold
Cell (terminal) threshold to use for cluster matching.
Definition: CaloGPUClusterAndCellDataMonitor.h:189
CaloGPUClusterAndCellDataMonitor::match_clusters_perfectly
StatusCode match_clusters_perfectly(sample_comparisons_holder &sch, const CaloRecGPU::ConstantDataHolder &constant_data, const CaloRecGPU::CellInfoArr &cell_info, const CaloRecGPU::CellStateArr &cell_state_1, const CaloRecGPU::CellStateArr &cell_state_2, const CaloRecGPU::ClusterInfoArr &cluster_info_1, const CaloRecGPU::ClusterInfoArr &cluster_info_2, const CaloRecGPU::ClusterMomentsArr &, const CaloRecGPU::ClusterMomentsArr &, const bool match_without_shared) const
Definition: CaloGPUClusterAndCellDataMonitor.cxx:965
ICaloClusterGPUPlotter
Base class for tools that can be used to plot events within CaloGPUHybridClusterProcessor.
Definition: CaloClusterGPUTransformers.h:127
CaloGPUClusterAndCellDataMonitor::pair_to_plot::prefix
std::string prefix
Definition: CaloGPUClusterAndCellDataMonitor.h:266
CaloGPUClusterAndCellDataMonitor::m_numToolsToKeep
int m_numToolsToKeep
The number of tools that will actually need to be kept in memory for combined plotting.
Definition: CaloGPUClusterAndCellDataMonitor.h:261
CaloGPUClusterAndCellDataMonitor::update_plots_start
virtual StatusCode update_plots_start(const EventContext &ctx, const CaloRecGPU::ConstantDataHolder &constant_data, const xAOD::CaloClusterContainer *cluster_collection_ptr) const override
Definition: CaloGPUClusterAndCellDataMonitor.cxx:115
CaloGPUClusterAndCellDataMonitor::add_combination
StatusCode add_combination(const EventContext &ctx, const CaloRecGPU::ConstantDataHolder &constant_data, const int index_1, const int index_2, const std::string &prefix, const bool match_in_energy, const bool match_without_shared, const bool match_perfectly) const
Definition: CaloGPUClusterAndCellDataMonitor.cxx:1843
CaloGPUClusterAndCellDataMonitor::pair_to_plot::index_test
int index_test
Definition: CaloGPUClusterAndCellDataMonitor.h:265
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
CUDAFriendlyClasses.h
RunTileMonitoring.clusters
clusters
Definition: RunTileMonitoring.py:133
CaloRecGPU::ConstantDataHolder
Definition: DataHolders.h:19
CaloGPUClusterAndCellDataMonitorOptions.h
CaloGPUClusterAndCellDataMonitor::pair_to_plot::match_perfectly
bool match_perfectly
Definition: CaloGPUClusterAndCellDataMonitor.h:269
CaloGPUClusterAndCellDataMonitor::m_seed_weight
double m_seed_weight
Definition: CaloGPUClusterAndCellDataMonitor.h:242
CaloGPUClusterAndCellDataMonitor
Places (matched) cluster and cell properties in monitored variables to enable plotting with the Athen...
Definition: CaloGPUClusterAndCellDataMonitor.h:42
CaloGPUClusterAndCellDataMonitor::sample_comparisons_holder
Definition: CaloGPUClusterAndCellDataMonitor.h:129
CaloGPUClusterAndCellDataMonitor::sample_comparisons_holder::unmatched_ref_list
std::vector< int > unmatched_ref_list
Definition: CaloGPUClusterAndCellDataMonitor.h:131
CaloGPUClusterAndCellDataMonitor::m_toolCombinations
std::vector< pair_to_plot > m_toolCombinations
Definition: CaloGPUClusterAndCellDataMonitor.h:272
AthAlgTool
Definition: AthAlgTool.h:26
CaloGPUClusterAndCellDataMonitor::pair_to_plot::match_without_shared
bool match_without_shared
Definition: CaloGPUClusterAndCellDataMonitor.h:268
CaloGPUClusterAndCellDataMonitor::ATLAS_THREAD_SAFE
std::map< std::string, std::atomic< size_t > > m_numClustersPerTool ATLAS_THREAD_SAFE
Counts the total number of clusters per tool.
Definition: CaloGPUClusterAndCellDataMonitor.h:275
CaloGPUClusterAndCellDataMonitor::convert_to_GPU_data_structures
StatusCode convert_to_GPU_data_structures(const EventContext &ctx, const CaloRecGPU::ConstantDataHolder &constant_data, const xAOD::CaloClusterContainer *cluster_collection_ptr, CaloRecGPU::Helpers::CPU_object< CaloRecGPU::CellInfoArr > &cell_info, CaloRecGPU::Helpers::CPU_object< CaloRecGPU::CellStateArr > &cell_state, CaloRecGPU::Helpers::CPU_object< CaloRecGPU::ClusterInfoArr > &clusters, CaloRecGPU::Helpers::CPU_object< CaloRecGPU::ClusterMomentsArr > &moments) const
Definition: CaloGPUClusterAndCellDataMonitor.cxx:265
CaloGPUClusterAndCellDataMonitor::m_toolsToPlot
Gaudi::Property< std::vector< SimpleSingleTool > > m_toolsToPlot
Tools to plot individually.
Definition: CaloGPUClusterAndCellDataMonitor.h:221
CaloGPUClusterAndCellDataMonitor::m_doCombinedClusters
bool m_doCombinedClusters
Definition: CaloGPUClusterAndCellDataMonitor.h:302
CaloGPUClusterAndCellDataMonitor::~CaloGPUClusterAndCellDataMonitor
virtual ~CaloGPUClusterAndCellDataMonitor()=default
CaloGPUClusterAndCellDataMonitor::m_comparedCellPropertiesToDo
std::vector< bool > m_comparedCellPropertiesToDo
Definition: CaloGPUClusterAndCellDataMonitor.h:297
CaloGPUClusterAndCellDataMonitor::m_pairsToPlot
Gaudi::Property< std::vector< SimpleToolPair > > m_pairsToPlot
Pairs of tools to compare.
Definition: CaloGPUClusterAndCellDataMonitor.h:226