ATLAS Offline Software
Loading...
Searching...
No Matches
CaloCalibClusterDecoratorToolOOC.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef CALOCALIBHITREC_CALOCALIBCLUSTERDECORATORTOOLOOC_H
6#define CALOCALIBHITREC_CALOCALIBCLUSTERDECORATORTOOLOOC_H
7
8class CaloCell_ID;
10
12#include "GaudiKernel/ToolHandle.h"
13
21
23
24#include <string>
25#include <vector>
26#include <atomic>
27#include <array>
28#include <unordered_map>
29
41 : public AthAlgTool,
43{
44public:
52
53 CaloCalibClusterDecoratorToolOOC(const std::string& type,
54 const std::string& name,
55 const IInterface* parent);
56
58 virtual StatusCode execute(const EventContext& ctx,
59 xAOD::CaloClusterContainer* theClusColl) const override;
60 virtual StatusCode initialize() override;
61
62private:
69 this,
70 "CaloClusterWriteDecorHandleKey_NLeadingTruthParticlesL",
71 "CaloTopoClustersNew.calclus_NLeadingTruthParticleBarcodeEnergyPairs_L",
72 "Loose OOC truth-particle barcode/energy decoration"};
73
80 this,
81 "CaloClusterWriteDecorHandleKey_NLeadingTruthParticlesT",
82 "CaloTopoClustersNew.calclus_NLeadingTruthParticleBarcodeEnergyPairs_T",
83 "Tight OOC truth-particle barcode/energy decoration"};
84
88 Gaudi::Property<unsigned int> m_numTruthParticles{
89 this,
90 "NumTruthParticles",
91 100,
92 "Number of truth particles per CaloCluster/PFO for which to store OOC calibration-hit energy"};
93
99
101 this,
102 "CalibrationHitContainerNames",
103 {},
104 "Calibration-hit containers inside the calorimeter volume"};
105
110 this,
111 "TruthParticles",
112 "TruthParticles",
113 "ReadHandleKey for truth particle container"};
114
119 this,
120 "CaloDetDescrManager",
121 "CaloDetDescrManager",
122 "Conditions handle for the CaloDetDescrManager"};
123
126
133
138
141
144
148 double m_rmaxOut[3];
149
153 std::array<std::vector<std::vector<CalibHitIPhiIEtaRange> >, 3> m_i_phi_eta;
154
162 mutable std::atomic<bool> m_foundAllContainers{false};
163};
164
165#endif // CALOCALIBHITREC_CALOCALIBCLUSTERDECORATORTOOLOOC_H
Base class for cluster processing tools called from CaloClusterMaker.
Definition of CaloDetDescrManager.
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
double m_rmaxOut[3]
Maximum matching radii for the loose/medium/tight OOC definitions.
std::atomic< bool > m_foundAllContainers
Tracks whether a previous event had the full set of calibration-hit containers.
double m_out_phi_max
Maximum |Δphi| covered by the out-of-cluster lookup tables.
SG::WriteDecorHandleKey< xAOD::CaloClusterContainer > m_caloClusterWriteDecorHandleKeyNLeadingTruthParticlesT
Writehandle for the decoration holding the leading truth-particle barcode/energy pairs for the tight ...
std::array< std::vector< std::vector< CalibHitIPhiIEtaRange > >, 3 > m_i_phi_eta
Precomputed eta/phi search windows used by the OOC helper methods.
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloDetDescrMgrKey
Conditions Handle Key to access the CaloDetDescrManager.
const CaloCell_ID * m_calo_id
Cached pointer to the calorimeter cell identifier helper.
int m_n_eta_out
Number of bins in the lookup table for out-of-cluster eta offsets.
Gaudi::Property< unsigned int > m_numTruthParticles
Number of leading truth particles to store per cluster.
CaloCalibClusterMomentsMaker2::CalibHitIPhiIEtaRange CalibHitIPhiIEtaRange
SG::WriteDecorHandleKey< xAOD::CaloClusterContainer > m_caloClusterWriteDecorHandleKeyNLeadingTruthParticlesL
Writehandle for the decoration holding the leading truth-particle barcode/energy pairs for the loose ...
double m_out_eta_max
Maximum |Δeta| covered by the out-of-cluster lookup tables.
CaloCalibClusterMomentsMaker2::MyClusInfo MyClusInfo
int m_n_phi_out
Number of bins in the lookup table for out-of-cluster phi offsets.
virtual StatusCode execute(const EventContext &ctx, xAOD::CaloClusterContainer *theClusColl) const override
Execute on an entire collection of clusters.
CaloCalibClusterMomentsMaker2::MyCellInfo MyCellInfo
CaloCalibClusterDecoratorToolOOC(const std::string &type, const std::string &name, const IInterface *parent)
SG::ReadHandleKeyArray< CaloCalibrationHitContainer > m_CalibrationHitContainerNames
vector of calibration hit container names to use.
CaloCalibClusterMomentsMaker2::ClusInfo_t ClusInfo_t
SG::ReadHandleKey< xAOD::TruthParticleContainer > m_truthParticleContainerKey
Readhandle for Truth-particle container used to validate barcode / uniqueID usage.
CaloCalibClusterMomentsMaker2::CellInfoSet_t CellInfoSet_t
CaloCalibClusterMomentsMaker2::ClusList ClusList
std::map< Identifier, MyCellInfo > CellInfoSet_t
std::vector< std::vector< int > > ClusList
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.
This class provides the client interface for accessing the detector description information common to...
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
HandleKeyArray< ReadHandle< T >, ReadHandleKey< T >, Gaudi::DataHandle::Reader > ReadHandleKeyArray
CaloClusterContainer_v1 CaloClusterContainer
Define the latest version of the calorimeter cluster container.