|
ATLAS Offline Software
|
Go to the documentation of this file.
7 #ifndef CALORECGPU_GPUCLUSTERINFOANDMOMENTSCALCULATOR_H
8 #define CALORECGPU_GPUCLUSTERINFOANDMOMENTSCALCULATOR_H
18 #include "GaudiKernel/ServiceHandle.h"
22 #include "CLHEP/Units/SystemOfUnits.h"
51 void * temporary_buffer)
const override;
62 Gaudi::Property<double>
m_maxAxisAngle {
this,
"MaxAxisAngle", 20 *
CLHEP::deg,
"The maximal allowed deviation from the IP-to-ClusterCenter-axis"};
70 Gaudi::Property<double>
m_minRLateral {
this,
"MinRLateral", 4 *
CLHEP::cm,
"The minimal r in the definition of the Lateral moment"};
80 Gaudi::Property<double>
m_minLLongitudinal {
this,
"MinLLongitudinal", 10 *
CLHEP::cm,
"The minimal lambda in the definition of the Longitudinal moment"};
88 Gaudi::Property<double>
m_minBadLArQuality {
this,
"MinBadLArQuality", 4000,
"The minimal cell quality in the LAr for declaring a cell bad"};
93 Gaudi::Property<bool>
m_absOpt {
this,
"WeightingOfNegClusters",
false,
"If set to true use abs E value of cells to calculate cluster moments"};
97 Gaudi::Property<double>
m_etaInnerWheel {
this,
"EMECAbsEtaWheelTransition", 2.52,
"Transition from outer to inner wheel in EME2"};
102 Gaudi::Property<bool>
m_twoGaussianNoise {
this,
"TwoGaussianNoise",
false,
"If set to true use 2-gaussian noise description for TileCal"};
107 Gaudi::Property<bool>
m_skipInvalidClusters {
this,
"SkipInvalidClusters",
true,
"Check for and skip invalid clusters during moments calculation."};
117 Gaudi::Property<bool>
m_measureTimes {
this,
"MeasureTimes",
false,
"Synchronize for time measurements"};
123 #endif //CALORECGPU_TOPOAUTOMATONCLUSTERING_H
Gaudi::Property< bool > m_skipInvalidClusters
If false, do the moment calculation even for invalid clusters (which may waste computation).
Gaudi::Property< bool > m_measureTimes
If true, synchronize the kernel calls to ensure accurate per-step/per-tool time measurements.
virtual StatusCode initialize_non_CUDA() override
Initialization that does not invoke CUDA functions.
Base class for GPU-accelerated cluster processing tools to be called from CaloGPUHybridClusterProcess...
virtual StatusCode finalize() override
ClusterMomentsCalculator::CMCOptionsHolder m_options
Options for the algorithm, held in a GPU-friendly way.
virtual ~GPUClusterInfoAndMomentsCalculator()=default
GPUClusterInfoAndMomentsCalculator(const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode initialize()
virtual StatusCode initialize_CUDA() override
Initialization that invokes CUDA functions.
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Property< bool > m_twoGaussianNoise
if set to true use 2-gaussian noise description for TileCal
Base class to provide some basic common infrastructure for initializing CUDA only at the right place ...
Gaudi::Property< double > m_maxAxisAngle
the maximal allowed deviation from the IP-to-ClusterCenter-axis.
Gaudi::Property< double > m_minBadLArQuality
the minimal cell quality in the LAr for declaring a cell bad
ServiceHandle< IGPUKernelSizeOptimizerSvc > m_kernelSizeOptimizer
Handle to the CUDA kernel block and grid size optimization service.
virtual StatusCode initialize() override
Gaudi::Property< bool > m_absOpt
if set to true use abs E value of cells to calculate cluster moments
Gaudi::Property< double > m_minLLongitudinal
the minimal in the definition of the Longitudinal moment
Gaudi::Property< double > m_minRLateral
the minimal in the definition of the Lateral moment
Standard tool to calculate cluster info (energy, transverse energy, pseudo-rapidity and azimuthal ang...
Define macros for attributes used to control the static checker.
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< double > m_etaInnerWheel
Transition from outer to inner wheel in EME2.