ATLAS Offline Software
Loading...
Searching...
No Matches
CaloPerformancePropertiesOutput.h
Go to the documentation of this file.
1//
2// Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3//
4// Dear emacs, this is -*- c++ -*-
5//
6
7#ifndef CALORECGPU_CALOPERFORMANCEPROPERTIESOUTPUT_H
8#define CALORECGPU_CALOPERFORMANCEPROPERTIESOUTPUT_H
9
12
15
18
19#include <string>
20#include <mutex>
21#include <vector>
22
23class CaloCell_ID;
24
32
34 public extends<AthAlgTool, CaloClusterCollectionProcessor>
35{
36 public:
37
38 CaloPerformancePropertiesOutput(const std::string & type, const std::string & name, const IInterface * parent);
39
41
42 virtual StatusCode initialize() override;
43
44 virtual StatusCode execute (const EventContext& ctx, xAOD::CaloClusterContainer* cluster_collection) const override;
45
46 virtual StatusCode finalize() override;
47
49
50 private:
51
56 Gaudi::Property<std::string> m_fileName{this, "FileName", "event_properties.txt", "File to save the performance-related info."};
57
61 SG::ReadHandleKey<CaloCellContainer> m_cellsKey {this, "CellsName", "", "Name(s) of Cell Containers"};
62
66 SG::ReadCondHandleKey<CaloNoise> m_noiseCDOKey{this, "CaloNoiseKey", "totalNoise", "SG Key of CaloNoise data object"};
67
71 Gaudi::Property<bool> m_twoGaussianNoise{this, "TwoGaussianNoise", false, "Use 2-gaussian noise description for TileCal"};
72
73
77 Gaudi::Property<float> m_seedThreshold {this, "SeedThresholdOnEorAbsEinSigma", 4., "Seed threshold (in units of noise Sigma)"};
78
82 Gaudi::Property<float> m_growThreshold {this, "NeighborThresholdOnEorAbsEinSigma", 2., "Neighbor (grow) threshold (in units of noise Sigma)"};
83
87 Gaudi::Property<float> m_cellThreshold {this, "CellThresholdOnEorAbsEinSigma", 0., "Cell (terminal) threshold (in units of noise Sigma)"};
88
97 Gaudi::Property<bool> m_seedCutsInAbsE {this, "SeedCutsInAbsE", true, "Seed cuts in Abs E instead of E"};
98
105 Gaudi::Property<bool> m_neighborCutsInAbsE {this, "NeighborCutsInAbsE", true, "Neighbor (grow) cuts in Abs E instead of E"};
106
113 Gaudi::Property<bool> m_cellCutsInAbsE {this, "CellCutsInAbsE", true, "Cell (terminal) cuts in Abs E instead of E"};
114
139 Gaudi::Property<std::string> m_growNeighborOptionString {this, "GrowingNeighborOption", "super3D",
140 "Neighbor option to be used for cell neighborhood relations during growing"};
142
167 Gaudi::Property<std::string> m_splitNeighborOptionString {this, "SplittingNeighborOption", "super3D",
168 "Neighbor option to be used for cell neighborhood relations during splitting"};
170
180 Gaudi::Property<bool> m_growRestrictHECIWandFCalNeighbors {this, "GrowingRestrictHECIWandFCalNeighbors",
181 false, "Limit the neighbors in HEC IW and FCal2&3 for growing"};
182
192 Gaudi::Property<bool> m_splitRestrictHECIWandFCalNeighbors {this, "SplittingRestrictHECIWandFCalNeighbors",
193 false, "Limit the neighbors in HEC IW and FCal2&3 for splitting"};
194
202 Gaudi::Property<bool> m_growRestrictPSNeighbors {this, "GrowingRestrictPSNeighbors",
203 false, "Limit the neighbors in presampler Barrel and Endcap for growing"};
204
212 Gaudi::Property<bool> m_splitRestrictPSNeighbors {this, "SplittingRestrictPSNeighbors",
213 false, "Limit the neighbors in presampler Barrel and Endcap for splitting"};
214
215
219 const CaloCell_ID* m_calo_id {nullptr};
220
221
249
250
253 mutable std::mutex m_mutex;
254
257 mutable std::vector<EventPerformanceInfo> m_eventInfo ATLAS_THREAD_SAFE;
258 //Mutexes should ensure no problems with thread safety.
259
262 mutable std::vector<size_t> m_eventNumbers ATLAS_THREAD_SAFE;
263 //Mutexes should ensure no problems with thread safety.
264
265};
266
267#endif //CALORECGPU_CALOPERFORMANCEPROPERTIESOUTPUT_H
Base class for cluster processing tools called from CaloClusterMaker.
Property holding a SG store/key/clid from which a ReadHandle is made.
Helper class for offline cell identifiers.
Definition CaloCell_ID.h:34
virtual StatusCode execute(const EventContext &ctx, xAOD::CaloClusterContainer *collection) const =0
Execute on an entire collection of clusters.
Gaudi::Property< float > m_growThreshold
Value to consider for the seed threshold.
Gaudi::Property< bool > m_growRestrictHECIWandFCalNeighbors
if set to true limit the neighbors in HEC IW and FCal2&3 during growing.
Gaudi::Property< bool > m_seedCutsInAbsE
if set to true seed cuts are on and .
Gaudi::Property< bool > m_cellCutsInAbsE
if set to true cell cuts are on and .
Gaudi::Property< bool > m_growRestrictPSNeighbors
if set to true limit the neighbors in presampler Barrel and Endcap during growing.
Gaudi::Property< bool > m_neighborCutsInAbsE
if set to true neighbor cuts are on and .
Gaudi::Property< bool > m_splitRestrictPSNeighbors
if set to true limit the neighbors in presampler Barrel and Endcap during splitting.
LArNeighbours::neighbourOption m_splitNeighborOption
std::mutex m_mutex
Mutex that is locked when recording info.
Gaudi::Property< std::string > m_splitNeighborOptionString
type of neighbor relations to use for cluster splitting.
const CaloCell_ID * m_calo_id
Pointer to Calo ID Helper.
virtual ~CaloPerformancePropertiesOutput()=default
CaloPerformancePropertiesOutput(const std::string &type, const std::string &name, const IInterface *parent)
SG::ReadCondHandleKey< CaloNoise > m_noiseCDOKey
Key of the CaloNoise Conditions data object.
Gaudi::Property< bool > m_twoGaussianNoise
if set to true use 2-gaussian noise description for TileCal
Gaudi::Property< std::string > m_growNeighborOptionString
type of neighbor relations to use for cluster growing.
Gaudi::Property< std::string > m_fileName
The path specifying the folder to which the files should be saved.
LArNeighbours::neighbourOption m_growNeighborOption
std::vector< EventPerformanceInfo > m_eventInfo ATLAS_THREAD_SAFE
Vector to hold the information.
Gaudi::Property< float > m_seedThreshold
Value to consider for the seed threshold.
virtual StatusCode execute(const EventContext &ctx, xAOD::CaloClusterContainer *cluster_collection) const override
Gaudi::Property< bool > m_splitRestrictHECIWandFCalNeighbors
if set to true limit the neighbors in HEC IW and FCal2&3 during splitting.
Gaudi::Property< float > m_cellThreshold
Value to consider for the seed threshold.
SG::ReadHandleKey< CaloCellContainer > m_cellsKey
vector of names of the cell containers to use as input.
Property holding a SG store/key/clid from which a ReadHandle is made.
CaloClusterContainer_v1 CaloClusterContainer
Define the latest version of the calorimeter cluster container.