![]() |
ATLAS Offline Software
|
Standard tool to calculate cluster info (energy, transverse energy, pseudo-rapidity and azimuthal angle). More...
#include <GPUClusterInfoAndMomentsCalculator.h>
Public Member Functions | |
| GPUClusterInfoAndMomentsCalculator (const std::string &type, const std::string &name, const IInterface *parent) | |
| virtual StatusCode | initialize () override |
| virtual StatusCode | initialize_non_CUDA () override |
| Initialization that does not invoke CUDA functions. | |
| virtual StatusCode | initialize_CUDA () override |
| Initialization that invokes CUDA functions. | |
| virtual StatusCode | execute (const EventContext &ctx, const CaloRecGPU::ConstantDataHolder &constant_data, CaloRecGPU::EventDataHolder &event_data, void *temporary_buffer) const override |
| virtual StatusCode | finalize () override |
| virtual | ~GPUClusterInfoAndMomentsCalculator ()=default |
| void | handle (const Incident &incident) override |
Protected Member Functions | |
| void | record_times (const size_t event_num, const std::vector< size_t > ×) const |
| template<class ... Args> | |
| void | record_times (const size_t event_num, const size_t &value) const |
| template<class ... Args> | |
| void | record_times (const size_t event_num, const size_t &value, Args &&... args) const |
| void | print_times (const std::string &header, const size_t time_size) const |
Protected Attributes | |
| std::shared_mutex | m_timeMutex |
| Mutex that is locked when recording times. | |
| std::vector< size_t > m_times | ATLAS_THREAD_SAFE |
| Vector to hold execution times to be recorded if necessary. | |
| std::vector< size_t > m_eventNumbers | ATLAS_THREAD_SAFE |
| Vector to hold the event numbers to be recorded if necessary. | |
| Gaudi::Property< bool > | m_measureTimes |
If true, times are recorded to the file given by m_timeFileName. | |
| Gaudi::Property< std::string > | m_timeFileName |
| File to which times should be saved. | |
Private Member Functions | |
| void | record_times_helper (const size_t) const |
| template<class Arg> | |
| void | record_times_helper (const size_t index, Arg &&arg) const |
| template<class ... Args> | |
| void | record_times_helper (size_t index, Args &&... args) const |
Private Attributes | |
| Gaudi::Property< double > | m_maxAxisAngle {this, "MaxAxisAngle", 20 * CLHEP::deg, "The maximal allowed deviation from the IP-to-ClusterCenter-axis"} |
| the maximal allowed deviation from the IP-to-ClusterCenter-axis. | |
| Gaudi::Property< double > | m_minRLateral {this, "MinRLateral", 4 * CLHEP::cm, "The minimal r in the definition of the Lateral moment"} |
| the minimal \(r\) in the definition of the Lateral moment | |
| Gaudi::Property< double > | m_minLLongitudinal {this, "MinLLongitudinal", 10 * CLHEP::cm, "The minimal lambda in the definition of the Longitudinal moment"} |
| the minimal \(\lambda\) in the definition of the Longitudinal moment | |
| Gaudi::Property< double > | m_minBadLArQuality {this, "MinBadLArQuality", 4000, "The minimal cell quality in the LAr for declaring a cell bad"} |
| the minimal cell quality in the LAr for declaring a cell bad | |
| Gaudi::Property< bool > | m_absOpt {this, "WeightingOfNegClusters", false, "If set to true use abs E value of cells to calculate cluster moments"} |
| if set to true use abs E value of cells to calculate cluster moments | |
| Gaudi::Property< double > | m_etaInnerWheel {this, "EMECAbsEtaWheelTransition", 2.52, "Transition from outer to inner wheel in EME2"} |
| Transition from outer to inner wheel in EME2. | |
| Gaudi::Property< bool > | m_twoGaussianNoise {this, "TwoGaussianNoise", false, "If set to true use 2-gaussian noise description for TileCal"} |
| if set to true use 2-gaussian noise description for TileCal | |
| Gaudi::Property< bool > | m_skipInvalidClusters {this, "SkipInvalidClusters", true, "Check for and skip invalid clusters during moments calculation."} |
If false, do the moment calculation even for invalid clusters (which may waste computation). | |
| ClusterMomentsCalculator::CMCOptionsHolder | m_options |
| Options for the algorithm, held in a GPU-friendly way. | |
| ServiceHandle< IGPUKernelSizeOptimizerSvc > | m_kernelSizeOptimizer { this, "KernelSizeOptimizer", "GPUKernelSizeOptimizerSvc", "CUDA kernel size optimization service." } |
| Handle to the CUDA kernel block and grid size optimization service. | |
Standard tool to calculate cluster info (energy, transverse energy, pseudo-rapidity and azimuthal angle).
Definition at line 33 of file GPUClusterInfoAndMomentsCalculator.h.
| GPUClusterInfoAndMomentsCalculator::GPUClusterInfoAndMomentsCalculator | ( | const std::string & | type, |
| const std::string & | name, | ||
| const IInterface * | parent ) |
Definition at line 14 of file GPUClusterInfoAndMomentsCalculator.cxx.
|
virtualdefault |
|
overridevirtual |
Definition at line 47 of file GPUClusterInfoAndMomentsCalculator.cxx.
|
overridevirtual |
Definition at line 74 of file GPUClusterInfoAndMomentsCalculator.cxx.
|
inlineoverrideinherited |
Definition at line 66 of file CaloGPUCUDAInitialization.h.
|
inlineoverridevirtual |
Reimplemented from CaloGPUCUDAInitialization.
Definition at line 40 of file GPUClusterInfoAndMomentsCalculator.h.
|
overridevirtual |
Initialization that invokes CUDA functions.
Reimplemented from CaloGPUCUDAInitialization.
Definition at line 39 of file GPUClusterInfoAndMomentsCalculator.cxx.
|
overridevirtual |
Initialization that does not invoke CUDA functions.
Reimplemented from CaloGPUCUDAInitialization.
Definition at line 20 of file GPUClusterInfoAndMomentsCalculator.cxx.
|
inlineprotectedinherited |
Definition at line 143 of file CaloGPUTimed.h.
|
inlineprotectedinherited |
Definition at line 105 of file CaloGPUTimed.h.
|
inlineprotectedinherited |
Definition at line 124 of file CaloGPUTimed.h.
|
inlineprotectedinherited |
Definition at line 86 of file CaloGPUTimed.h.
|
inlineprivateinherited |
Definition at line 70 of file CaloGPUTimed.h.
|
inlineprivateinherited |
Definition at line 64 of file CaloGPUTimed.h.
|
inlineprivateinherited |
Definition at line 79 of file CaloGPUTimed.h.
|
mutableprotectedinherited |
Vector to hold execution times to be recorded if necessary.
Definition at line 35 of file CaloGPUTimed.h.
|
mutableprotectedinherited |
Vector to hold the event numbers to be recorded if necessary.
Definition at line 40 of file CaloGPUTimed.h.
|
private |
if set to true use abs E value of cells to calculate cluster moments
Definition at line 94 of file GPUClusterInfoAndMomentsCalculator.h.
|
private |
Transition from outer to inner wheel in EME2.
Definition at line 98 of file GPUClusterInfoAndMomentsCalculator.h.
|
private |
Handle to the CUDA kernel block and grid size optimization service.
Definition at line 115 of file GPUClusterInfoAndMomentsCalculator.h.
|
private |
the maximal allowed deviation from the IP-to-ClusterCenter-axis.
Definition at line 63 of file GPUClusterInfoAndMomentsCalculator.h.
|
protectedinherited |
If true, times are recorded to the file given by m_timeFileName.
Defaults to false.
Definition at line 46 of file CaloGPUTimed.h.
|
private |
the minimal cell quality in the LAr for declaring a cell bad
This defines the minimal quality (large values mean worse shape) a cell needs to exceed in order to be considered as not compatible with a normal ionization signal.
Definition at line 89 of file GPUClusterInfoAndMomentsCalculator.h.
|
private |
the minimal \(\lambda\) in the definition of the Longitudinal moment
This defines the minimal distance along the shower axis from the cluster center the two leading cells might have before this value is used instead of their real distance in the normalization of the LONGITUDINAL moment.
Definition at line 81 of file GPUClusterInfoAndMomentsCalculator.h.
|
private |
the minimal \(r\) in the definition of the Lateral moment
This defines the minimal distance the two leading cells might have before this value is used instead of their real distance in the normalization of the LATERAL moment.
Definition at line 71 of file GPUClusterInfoAndMomentsCalculator.h.
|
private |
Options for the algorithm, held in a GPU-friendly way.
Definition at line 112 of file GPUClusterInfoAndMomentsCalculator.h.
|
private |
If false, do the moment calculation even for invalid clusters (which may waste computation).
Defaults to true.
Definition at line 108 of file GPUClusterInfoAndMomentsCalculator.h.
|
protectedinherited |
File to which times should be saved.
Definition at line 50 of file CaloGPUTimed.h.
|
mutableprotectedinherited |
Mutex that is locked when recording times.
Definition at line 32 of file CaloGPUTimed.h.
|
private |
if set to true use 2-gaussian noise description for TileCal
Definition at line 103 of file GPUClusterInfoAndMomentsCalculator.h.