![]() |
ATLAS Offline Software
|
Tool to convert the GPU data representation back to CPU, with selected moments too. More...
#include <GPUToAthenaImporterWithMoments.h>
Public Member Functions | |
| GPUToAthenaImporterWithMoments (const std::string &type, const std::string &name, const IInterface *parent) | |
| virtual StatusCode | initialize () override |
| virtual StatusCode | convert (const EventContext &ctx, const CaloRecGPU::ConstantDataHolder &constant_data, CaloRecGPU::EventDataHolder &event_data, xAOD::CaloClusterContainer *cluster_collection) const override |
| virtual StatusCode | finalize () override |
| virtual | ~GPUToAthenaImporterWithMoments ()=default |
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< bool > | m_keepGPUData {this, "KeepGPUData", true, "Keep GPU allocated data"} |
If true, do not delete the GPU data representation. | |
| SG::ReadHandleKey< CaloCellContainer > | m_cellsKey {this, "CellsName", "", "Name(s) of Cell Containers"} |
| vector of names of the cell containers to use as input. | |
| Gaudi::Property< std::string > | m_clusterSizeString {this, "ClusterSize", "Topo_420", "The size/type of the clusters"} |
| Cluster size. Should be set accordingly to the threshold. | |
| xAOD::CaloCluster::ClusterSize | m_clusterSize |
| const CaloCell_ID * | m_calo_id {nullptr} |
| Pointer to Calo ID Helper. | |
| SG::ReadCondHandleKey< CaloDetDescrManager > | m_caloMgrKey |
| Key for the CaloDetDescrManager in the Condition Store. | |
| Gaudi::Property< bool > | m_fillHVMoments {this, "FillHVMoments", false, "Fill the HV-related moments using the respective tools."} |
| if set to true, fill the HV-related moments using the respective tools. | |
| SG::ReadCondHandleKey< LArOnOffIdMapping > | m_HVCablingKey {this, "LArCablingKey","LArOnOffIdMap","SG Key of LAr Cabling object"} |
| Cabling for the CPU-based HV moments calculation. | |
| SG::ReadCondHandleKey< ILArHVScaleCorr > | m_HVScaleKey {this,"HVScaleCorrKey","LArHVScaleCorr","SG key of HVScaleCorr conditions object"} |
| HV corrections for the CPU-based HV moments. | |
| Gaudi::Property< float > | m_HVthreshold {this,"HVThreshold",0.2,"Threshold to consider a cell 'affected' by HV issues"} |
| Threshold above which a cell contributes to the HV moments. | |
| Gaudi::Property< std::vector< int > > | m_missingCellsToFill {this, "MissingCellsToFill", {}, "Force fill these cells as disabled on empty containers."} |
| Cell indices to fill as disabled cells (useful if the cell vector is always missing the same cells). | |
| Gaudi::Property< bool > | m_saveUncalibrated {this, "SaveUncalibratedSignalState", true, "Use CaloClusterKineHelper::calculateKine instead of GPU-calculated cluster properties"} |
| if set to true, the uncalibrated state is saved when importing the clusters. | |
| Gaudi::Property< std::vector< std::string > > | m_momentsNames {this, "MomentsNames", {}, "List of names of moments to calculate"} |
| vector holding the input list of names of moments to calculate. | |
| CaloRecGPU::MomentsOptionsArray | m_momentsToDo |
| Holds (in a linearized way) the moments and whether to add them to the clusters. | |
| bool | m_doHVMoments |
To abbreviate checks of m_momentsToDo... | |
Tool to convert the GPU data representation back to CPU, with selected moments too.
Definition at line 34 of file GPUToAthenaImporterWithMoments.h.
| GPUToAthenaImporterWithMoments::GPUToAthenaImporterWithMoments | ( | const std::string & | type, |
| const std::string & | name, | ||
| const IInterface * | parent ) |
Definition at line 25 of file GPUToAthenaImporterWithMoments.cxx.
|
virtualdefault |
|
overridevirtual |
Definition at line 220 of file GPUToAthenaImporterWithMoments.cxx.
|
overridevirtual |
Definition at line 340 of file GPUToAthenaImporterWithMoments.cxx.
|
overridevirtual |
Definition at line 34 of file GPUToAthenaImporterWithMoments.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 |
Definition at line 71 of file GPUToAthenaImporterWithMoments.h.
|
private |
Key for the CaloDetDescrManager in the Condition Store.
Definition at line 76 of file GPUToAthenaImporterWithMoments.h.
|
private |
vector of names of the cell containers to use as input.
Definition at line 61 of file GPUToAthenaImporterWithMoments.h.
|
private |
Definition at line 66 of file GPUToAthenaImporterWithMoments.h.
|
private |
Cluster size. Should be set accordingly to the threshold.
Definition at line 64 of file GPUToAthenaImporterWithMoments.h.
|
private |
To abbreviate checks of m_momentsToDo...
Definition at line 120 of file GPUToAthenaImporterWithMoments.h.
|
private |
if set to true, fill the HV-related moments using the respective tools.
Definition at line 84 of file GPUToAthenaImporterWithMoments.h.
|
private |
Cabling for the CPU-based HV moments calculation.
Definition at line 87 of file GPUToAthenaImporterWithMoments.h.
|
private |
HV corrections for the CPU-based HV moments.
Definition at line 90 of file GPUToAthenaImporterWithMoments.h.
|
private |
Threshold above which a cell contributes to the HV moments.
Definition at line 93 of file GPUToAthenaImporterWithMoments.h.
|
private |
If true, do not delete the GPU data representation.
Defaults to true.
Definition at line 56 of file GPUToAthenaImporterWithMoments.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 |
Cell indices to fill as disabled cells (useful if the cell vector is always missing the same cells).
Definition at line 97 of file GPUToAthenaImporterWithMoments.h.
|
private |
vector holding the input list of names of moments to calculate.
This is the list of desired names of moments given in the jobOptions.
Definition at line 111 of file GPUToAthenaImporterWithMoments.h.
|
private |
Holds (in a linearized way) the moments and whether to add them to the clusters.
(on the GPU side, they are unconditionally calculated).
Definition at line 116 of file GPUToAthenaImporterWithMoments.h.
|
private |
if set to true, the uncalibrated state is saved when importing the clusters.
Default is true.
Definition at line 102 of file GPUToAthenaImporterWithMoments.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.