|
ATLAS Offline Software
|
Go to the documentation of this file.
8 #ifndef CALORECGPU_TOPOAUTOMATONCLUSTERING_H
9 #define CALORECGPU_TOPOAUTOMATONCLUSTERING_H
21 #include "CLHEP/Units/SystemOfUnits.h"
26 #include "GaudiKernel/ServiceHandle.h"
55 void * temporary_buffer)
const override;
72 Gaudi::Property<std::vector<std::string>>
m_caloNames {
this,
"CalorimeterNames", {},
"Name(s) of Calorimeters to use for clustering"};
84 Gaudi::Property<std::vector<std::string>>
m_samplingNames {
this,
"SeedSamplingNames", {},
"Name(s) of Calorimeter Samplings to consider for seeds"};
134 Gaudi::Property<bool>
m_seedCutsInAbsE {
this,
"SeedCutsInAbsE",
true,
"Seed cuts in Abs E instead of E"};
142 Gaudi::Property<bool>
m_neighborCutsInAbsE {
this,
"NeighborCutsInAbsE",
true,
"Neighbor (grow) cuts in Abs E instead of E"};
150 Gaudi::Property<bool>
m_cellCutsInAbsE {
this,
"CellCutsInAbsE",
true,
"Cell (terminal) cuts in Abs E instead of E"};
155 Gaudi::Property<bool>
m_cutCellsInTime {
this,
"SeedCutsInT",
false,
"Do seed cuts in time"};
163 Gaudi::Property<float>
m_thresholdForKeeping {
this,
"TimeCutUpperLimit", 20.,
"Significance upper limit for applying time cut"};
169 Gaudi::Property<bool>
m_treatL1PredictedCellsAsGood {
this,
"TreatL1PredictedCellsAsGood",
true,
"Treat bad cells with dead OTX if predicted from L1 as good"};
179 Gaudi::Property<bool>
m_keepSignificantCells {
this,
"UseTimeCutUpperLimit",
false,
"Do not apply time cut on cells of large significance"};
187 Gaudi::Property<bool>
m_twoGaussianNoise{
this,
"TwoGaussianNoise",
false,
"Use 2-gaussian noise description for TileCal"};
215 "Neighbor option to be used for cell neighborhood relations"};
227 false,
"Limit the neighbors in HEC IW and FCal2&3"};
237 false,
"Limit the neighbors in presampler Barrel and Endcap"};
245 false,
"Relax time window (if timing is used) in EM2 when xTalk is present"};
251 15 *
CLHEP::ns,
"Delta T to add to upper time threshold for EM2 cells affected by xtalk."};
263 #endif //CALORECGPU_TOPOAUTOMATONCLUSTERING_H
Gaudi::Property< bool > m_cutCellsInTime
if set to true, time cut is applied to seed cells, no cut otherwise
Gaudi::Property< bool > m_restrictHECIWandFCalNeighbors
if set to true limit the neighbors in HEC IW and FCal2&3.
Gaudi::Property< std::vector< std::string > > m_caloNames
vector of names of the calorimeters to consider.
Gaudi::Property< bool > m_cellCutsInAbsE
if set to true cell cuts are on and .
virtual StatusCode initialize_non_CUDA() override
Initialization that does not invoke CUDA functions.
Gaudi::Property< float > m_xtalkDeltaT
Additional maximum delta t added to the upper limit time window in case crosstalk in EM2 should be ac...
Base class for GPU-accelerated cluster processing tools to be called from CaloGPUHybridClusterProcess...
virtual ~TopoAutomatonClustering()=default
Topological cluster maker algorithm to be run on GPUs.
Base class to provide some basic common infrastructure for timing measurements...
Gaudi::Property< bool > m_seedCutsInAbsE
if set to true seed cuts are on and .
virtual StatusCode initialize()
Gaudi::Property< float > m_seedThresholdOnEorAbsEinSigma
cells with start a cluster
Gaudi::Property< bool > m_restrictPSNeighbors
if set to true limit the neighbors in presampler Barrel and Endcap.
virtual StatusCode finalize() override
Gaudi::Property< bool > m_excludeCutSeedsFromClustering
if set to true, seed cells failing the time cut are also excluded from cluster at all
::StatusCode StatusCode
StatusCode definition for legacy code.
Gaudi::Property< std::vector< std::string > > m_samplingNames
vector of names of the calorimeter samplings to consider for seeds.
ServiceHandle< IGPUKernelSizeOptimizerSvc > m_kernelSizeOptimizer
Handle to the CUDA kernel block and grid size optimization service.
Gaudi::Property< float > m_thresholdForKeeping
upper limit on the energy significance, for applying the cell time cut
Gaudi::Property< float > m_cellThresholdOnEorAbsEinSigma
all cells have to satisfy
Gaudi::Property< bool > m_xtalkEM2
If set to true, the time window is softened in the EMB2 and EME2_OW due to crosstalk from direct neig...
Base class to provide some basic common infrastructure for initializing CUDA only at the right place ...
TAGrowing::TACOptionsHolder m_options
Options for the algorithm, held in a GPU-friendly way.
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< float > m_timeThreshold
threshold used for timing cut on seed cells.
Gaudi::Property< std::string > m_neighborOptionString
type of neighbor relations to use.
virtual StatusCode initialize() override
Gaudi::Property< bool > m_neighborCutsInAbsE
if set to true neighbor cuts are on and .
virtual StatusCode initialize_CUDA() override
Initialization that invokes CUDA functions.
Gaudi::Property< bool > m_keepSignificantCells
if set to true, the time cut is not applied on cell of large significance
TopoAutomatonClustering(const std::string &type, const std::string &name, const IInterface *parent)
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 ...
Define macros for attributes used to control the static checker.
Gaudi::Property< bool > m_twoGaussianNoise
if set to true use 2-gaussian noise description for TileCal
Gaudi::Property< float > m_neighborThresholdOnEorAbsEinSigma
cells with extend the cluster