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