|
ATLAS Offline Software
|
Go to the documentation of this file.
7 #ifndef CALORECGPU_TOPOAUTOMATONSPLITTING_H
8 #define CALORECGPU_TOPOAUTOMATONSPLITTING_H
17 #include "GaudiKernel/ServiceHandle.h"
19 #include "CLHEP/Units/SystemOfUnits.h"
50 void * temporary_buffer)
const override;
68 Gaudi::Property<std::vector<std::string>>
m_samplingNames {
this,
"SamplingNames", {},
"Name(s) of Calorimeter Samplings to consider for local maxima"};
77 Gaudi::Property<std::vector<std::string>>
m_secondarySamplingNames {
this,
"SecondarySamplingNames", {},
"Name(s) of secondary Calorimeter Samplings to consider for local maxima"};
86 Gaudi::Property<int>
m_nCells {
this,
"NumberOfCellsCut", 4,
"Local maxima need at least this number of neighbors to become seeds. Must be a non-negative number (obviously)."};
114 Gaudi::Property<bool>
m_shareBorderCells {
this,
"ShareBorderCells",
false,
"Whether or not to share cells at the boundary between two clusters"};
129 Gaudi::Property<float>
m_emShowerScale {
this,
"EMShowerScale", 5 *
CLHEP::cm,
"Typical EM shower distance for which the energy density should drop to 1/e"};
134 Gaudi::Property<bool>
m_absOpt {
this,
"WeightingOfNegClusters",
false,
"Should absolute value be used to identify potential seed cells"};
139 Gaudi::Property<bool>
m_treatL1PredictedCellsAsGood {
this,
"TreatL1PredictedCellsAsGood",
true,
"Treat bad cells with dead OTX if predicted from L1 as good"};
166 "Neighbor option to be used for cell neighborhood relations"};
178 false,
"Limit the neighbors in HEC IW and FCal2&3"};
188 false,
"Limit the neighbors in presampler Barrel and Endcap"};
201 #endif //CALORECGPU_TOPOAUTOMATONSPLITTING_H
virtual StatusCode initialize() override
virtual StatusCode finalize() override
Gaudi::Property< std::string > m_neighborOptionString
type of neighbor relations to use.
virtual StatusCode initialize_non_CUDA() override
Initialization that does not invoke CUDA functions.
Gaudi::Property< std::vector< std::string > > m_secondarySamplingNames
vector of names of the secondary calorimeter samplings to consider.
Base class for GPU-accelerated cluster processing tools to be called from CaloGPUHybridClusterProcess...
Cluster splitter algorithm to be run on GPUs, using the same cellular automaton-based approach as Top...
Gaudi::Property< std::vector< std::string > > m_samplingNames
vector of names of the calorimeter samplings to consider for seeds.
Base class to provide some basic common infrastructure for timing measurements...
virtual StatusCode initialize_CUDA() override
Initialization that invokes CUDA functions.
virtual StatusCode initialize()
Gaudi::Property< bool > m_restrictHECIWandFCalNeighbors
if set to true limit the neighbors in HEC IW and FCal2&3.
TASplitting::TASOptionsHolder m_options
Options for the algorithm, held in a GPU-friendly way.
::StatusCode StatusCode
StatusCode definition for legacy code.
ServiceHandle< IGPUKernelSizeOptimizerSvc > m_kernelSizeOptimizer
Handle to the CUDA kernel block and grid size optimization service.
Base class to provide some basic common infrastructure for initializing CUDA only at the right place ...
Gaudi::Property< bool > m_shareBorderCells
share cells at the border between two local maxima
Gaudi::Property< float > m_emShowerScale
typical EM shower scale to use for distance criteria in shared cells
Gaudi::Property< bool > m_restrictPSNeighbors
if set to true limit the neighbors in presampler Barrel and Endcap.
virtual StatusCode execute(const EventContext &ctx, const CaloRecGPU::ConstantDataHolder &constant_data, CaloRecGPU::EventDataHolder &event_data, void *temporary_buffer) const override
Process the clusters on GPU.
Gaudi::Property< bool > m_absOpt
if set to true, splitter only looks at absolute value of Energy in order to identify potential seed c...
Gaudi::Property< float > m_minEnergy
local maxima need at least this energy content
Gaudi::Property< int > m_nCells
local maxima need at least this number of neighbors to become seeds
Gaudi::Property< bool > m_treatL1PredictedCellsAsGood
if set to true treat cells with a dead OTX which can be predicted by L1 trigger info as good instead ...
TopoAutomatonSplitting(const std::string &type, const std::string &name, const IInterface *parent)
virtual ~TopoAutomatonSplitting()=default