  | 
  
    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.
 
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
 
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