ATLAS Offline Software
Loading...
Searching...
No Matches
CaloClusterGPUTransformers.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_CALOCLUSTERGPUTRANSFORMERS_H
8#define CALORECGPU_CALOCLUSTERGPUTRANSFORMERS_H
9
10
14
25
26class ICaloClusterGPUConstantTransformer : virtual public IAlgTool
27{
28 public:
29
35 virtual StatusCode convert (CaloRecGPU::ConstantDataHolder & constant_data, const bool override_keep_CPU_info) const = 0;
36
45 inline virtual StatusCode convert (const EventContext &, CaloRecGPU::ConstantDataHolder & constant_data, const bool override_keep_CPU_info) const
46 {
47 return this->convert(constant_data, override_keep_CPU_info);
48 }
49
51};
52
64
65class ICaloClusterGPUInputTransformer : virtual public IAlgTool
66{
67 public:
68
76 virtual StatusCode convert (const EventContext & ctx, const CaloRecGPU::ConstantDataHolder & constant_data,
77 const xAOD::CaloClusterContainer * cluster_collection, CaloRecGPU::EventDataHolder & event_data) const = 0;
78
80};
81
92
93class ICaloClusterGPUOutputTransformer : virtual public IAlgTool
94{
95 public:
96
104 virtual StatusCode convert (const EventContext & ctx, const CaloRecGPU::ConstantDataHolder & constant_data,
105 CaloRecGPU::EventDataHolder & event_data, xAOD::CaloClusterContainer * cluster_collection) const = 0;
106
108};
109
110
113
125
126class ICaloClusterGPUPlotter : virtual public IAlgTool
127{
128 public:
129 virtual StatusCode update_plots_start(const EventContext & ctx,
130 const CaloRecGPU::ConstantDataHolder & constant_data,
131 const xAOD::CaloClusterContainer * cluster_collection_ptr) const = 0;
132
133 virtual StatusCode update_plots_end(const EventContext & ctx,
134 const CaloRecGPU::ConstantDataHolder & constant_data,
135 const xAOD::CaloClusterContainer * cluster_collection_ptr) const = 0;
136
137 virtual StatusCode update_plots(const EventContext & ctx,
138 const CaloRecGPU::ConstantDataHolder & constant_data,
139 const xAOD::CaloClusterContainer * cluster_collection_ptr,
140 const CaloClusterCollectionProcessor * tool) const = 0;
141
142 virtual StatusCode update_plots(const EventContext & ctx,
143 const CaloRecGPU::ConstantDataHolder & constant_data,
144 const xAOD::CaloClusterContainer * cluster_collection_ptr,
145 const CaloRecGPU::EventDataHolder & event_data,
146 const ICaloClusterGPUInputTransformer * tool) const = 0;
147
148 virtual StatusCode update_plots(const EventContext & ctx,
149 const CaloRecGPU::ConstantDataHolder & constant_data,
150 const xAOD::CaloClusterContainer * cluster_collection_ptr,
151 const CaloRecGPU::EventDataHolder & event_data,
152 const CaloClusterGPUProcessor * tool) const = 0;
153
154 virtual StatusCode update_plots(const EventContext & ctx,
155 const CaloRecGPU::ConstantDataHolder & constant_data,
156 const xAOD::CaloClusterContainer * cluster_collection_ptr,
157 const CaloRecGPU::EventDataHolder & event_data,
158 const ICaloClusterGPUOutputTransformer * tool) const = 0;
159
160 virtual StatusCode finalize_plots() const = 0;
161
163};
164
165#endif //CALORECGPU_CALOCLUSTERGPUTRANSFORMERS_H
Base class for GPU-accelerated cluster processing tools to be called from CaloGPUHybridClusterProcess...
Holds CPU and GPU versions of the geometry and cell noise information, which are assumed to be consta...
Definition DataHolders.h:27
Holds the mutable per-event information (clusters and cells) and provides utilities to convert betwee...
Definition DataHolders.h:73
Base class for tools that convert constant information to the GPU-friendly format used in CaloGPUHybr...
virtual StatusCode convert(CaloRecGPU::ConstantDataHolder &constant_data, const bool override_keep_CPU_info) const =0
Fill the @ConstantDataHolder with the relevant information.
DeclareInterfaceID(ICaloClusterGPUConstantTransformer, 1, 0)
virtual StatusCode convert(const EventContext &, CaloRecGPU::ConstantDataHolder &constant_data, const bool override_keep_CPU_info) const
Fill the @CaloRecGPUConstantDataHolder with the relevant information at the first event.
Base class for tools that convert event information from the Athena structures to the GPU-friendly fo...
DeclareInterfaceID(ICaloClusterGPUInputTransformer, 1, 0)
virtual StatusCode convert(const EventContext &ctx, const CaloRecGPU::ConstantDataHolder &constant_data, const xAOD::CaloClusterContainer *cluster_collection, CaloRecGPU::EventDataHolder &event_data) const =0
Fill the CaloRecGPU::EventDataHolder with the relevant information.
Base class for tools that convert event information from the GPU-friendly format used in CaloGPUHybri...
DeclareInterfaceID(ICaloClusterGPUOutputTransformer, 1, 0)
virtual StatusCode convert(const EventContext &ctx, const CaloRecGPU::ConstantDataHolder &constant_data, CaloRecGPU::EventDataHolder &event_data, xAOD::CaloClusterContainer *cluster_collection) const =0
Fill the @xAODCaloClusterContainer with the relevant information.
Base class for tools that can be used to plot events within CaloGPUHybridClusterProcessor.
virtual StatusCode update_plots(const EventContext &ctx, const CaloRecGPU::ConstantDataHolder &constant_data, const xAOD::CaloClusterContainer *cluster_collection_ptr, const CaloRecGPU::EventDataHolder &event_data, const CaloClusterGPUProcessor *tool) const =0
DeclareInterfaceID(ICaloClusterGPUPlotter, 1, 0)
virtual StatusCode update_plots_start(const EventContext &ctx, const CaloRecGPU::ConstantDataHolder &constant_data, const xAOD::CaloClusterContainer *cluster_collection_ptr) const =0
virtual StatusCode update_plots(const EventContext &ctx, const CaloRecGPU::ConstantDataHolder &constant_data, const xAOD::CaloClusterContainer *cluster_collection_ptr, const CaloRecGPU::EventDataHolder &event_data, const ICaloClusterGPUOutputTransformer *tool) const =0
virtual StatusCode update_plots(const EventContext &ctx, const CaloRecGPU::ConstantDataHolder &constant_data, const xAOD::CaloClusterContainer *cluster_collection_ptr, const CaloRecGPU::EventDataHolder &event_data, const ICaloClusterGPUInputTransformer *tool) const =0
virtual StatusCode update_plots(const EventContext &ctx, const CaloRecGPU::ConstantDataHolder &constant_data, const xAOD::CaloClusterContainer *cluster_collection_ptr, const CaloClusterCollectionProcessor *tool) const =0
virtual StatusCode update_plots_end(const EventContext &ctx, const CaloRecGPU::ConstantDataHolder &constant_data, const xAOD::CaloClusterContainer *cluster_collection_ptr) const =0
virtual StatusCode finalize_plots() const =0
CaloClusterContainer_v1 CaloClusterContainer
Define the latest version of the calorimeter cluster container.