ATLAS Offline Software
Loading...
Searching...
No Matches
CaloCalibClusterDecoratorToolOOC Class Reference

Decorate clusters with out-of-cluster truth-energy contributions. More...

#include <CaloCalibClusterDecoratorToolOOC.h>

Inheritance diagram for CaloCalibClusterDecoratorToolOOC:
Collaboration diagram for CaloCalibClusterDecoratorToolOOC:

Public Types

using CalibHitIPhiIEtaRange
using MyCellInfo = CaloCalibClusterMomentsMaker2::MyCellInfo
using CellInfoSet_t = CaloCalibClusterMomentsMaker2::CellInfoSet_t
using MyClusInfo = CaloCalibClusterMomentsMaker2::MyClusInfo
using ClusInfo_t = CaloCalibClusterMomentsMaker2::ClusInfo_t
using ClusList = CaloCalibClusterMomentsMaker2::ClusList

Public Member Functions

 CaloCalibClusterDecoratorToolOOC (const std::string &type, const std::string &name, const IInterface *parent)
virtual StatusCode execute (const EventContext &ctx, xAOD::CaloClusterContainer *theClusColl) const override
 Execute on an entire collection of clusters.
virtual StatusCode initialize () override
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const
 DeclareInterfaceID (CaloClusterCollectionProcessor, 1, 0)

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

SG::WriteDecorHandleKey< xAOD::CaloClusterContainerm_caloClusterWriteDecorHandleKeyNLeadingTruthParticlesL
 Writehandle for the decoration holding the leading truth-particle barcode/energy pairs for the loose out-of-cluster definition.
SG::WriteDecorHandleKey< xAOD::CaloClusterContainerm_caloClusterWriteDecorHandleKeyNLeadingTruthParticlesT
 Writehandle for the decoration holding the leading truth-particle barcode/energy pairs for the tight out-of-cluster definition.
Gaudi::Property< unsigned int > m_numTruthParticles
 Number of leading truth particles to store per cluster.
SG::ReadHandleKeyArray< CaloCalibrationHitContainerm_CalibrationHitContainerNames
 vector of calibration hit container names to use.
SG::ReadHandleKey< xAOD::TruthParticleContainerm_truthParticleContainerKey
 Readhandle for Truth-particle container used to validate barcode / uniqueID usage.
SG::ReadCondHandleKey< CaloDetDescrManagerm_caloDetDescrMgrKey
 Conditions Handle Key to access the CaloDetDescrManager.
const CaloCell_IDm_calo_id
 Cached pointer to the calorimeter cell identifier helper.
int m_n_phi_out
 Number of bins in the lookup table for out-of-cluster phi offsets.
int m_n_eta_out
 Number of bins in the lookup table for out-of-cluster eta offsets.
double m_out_phi_max
 Maximum |Δphi| covered by the out-of-cluster lookup tables.
double m_out_eta_max
 Maximum |Δeta| covered by the out-of-cluster lookup tables.
double m_rmaxOut [3]
 Maximum matching radii for the loose/medium/tight OOC definitions.
std::array< std::vector< std::vector< CalibHitIPhiIEtaRange > >, 3 > m_i_phi_eta
 Precomputed eta/phi search windows used by the OOC helper methods.
std::atomic< bool > m_foundAllContainers {false}
 Tracks whether a previous event had the full set of calibration-hit containers.
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default).
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default).
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Decorate clusters with out-of-cluster truth-energy contributions.

The tool attributes calibration-hit energy deposited outside the reconstructed cluster to the contributing truth particles and decorates each cluster with the leading truth-particle barcode/energy pairs for the loose and tight out-of-cluster definitions.

Definition at line 40 of file CaloCalibClusterDecoratorToolOOC.h.

Member Typedef Documentation

◆ CalibHitIPhiIEtaRange

◆ CellInfoSet_t

◆ ClusInfo_t

◆ ClusList

◆ MyCellInfo

◆ MyClusInfo

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ CaloCalibClusterDecoratorToolOOC()

CaloCalibClusterDecoratorToolOOC::CaloCalibClusterDecoratorToolOOC ( const std::string & type,
const std::string & name,
const IInterface * parent )

Definition at line 87 of file CaloCalibClusterDecoratorToolOOC.cxx.

90 : AthAlgTool(type, name, parent),
91 m_calo_id(nullptr)
92{
93 declareInterface<CaloClusterCollectionProcessor>(this);
94
95 m_n_phi_out = 127; // not more than 127 since we store indices (-127,...,-1,0,...,126) with 8 bits
96 m_n_eta_out = 127;
98 m_out_eta_max = 6.;
99
100 m_rmaxOut[0] = 1.0;
101 m_rmaxOut[1] = 0.5;
102 m_rmaxOut[2] = 0.3;
103
104 for (int im = 0; im < 3; ++im) {
105 m_i_phi_eta[im].resize(m_n_eta_out);
106 }
107}
#define M_PI
AthAlgTool()
Default constructor:
double m_rmaxOut[3]
Maximum matching radii for the loose/medium/tight OOC definitions.
double m_out_phi_max
Maximum |Δphi| covered by the out-of-cluster lookup tables.
std::array< std::vector< std::vector< CalibHitIPhiIEtaRange > >, 3 > m_i_phi_eta
Precomputed eta/phi search windows used by the OOC helper methods.
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.
double m_out_eta_max
Maximum |Δeta| covered by the out-of-cluster lookup tables.
int m_n_phi_out
Number of bins in the lookup table for out-of-cluster phi offsets.

Member Function Documentation

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ DeclareInterfaceID()

CaloClusterCollectionProcessor::DeclareInterfaceID ( CaloClusterCollectionProcessor ,
1 ,
0  )
inherited

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ execute()

StatusCode CaloCalibClusterDecoratorToolOOC::execute ( const EventContext & ctx,
xAOD::CaloClusterContainer * collection ) const
overridevirtual

Execute on an entire collection of clusters.

Parameters
collectionThe container of clusters. param ctx The event context.

Implements CaloClusterCollectionProcessor.

Definition at line 135 of file CaloCalibClusterDecoratorToolOOC.cxx.

137{
138 SG::WriteDecorHandle<xAOD::CaloClusterContainer,
139 std::vector<std::pair<unsigned int, double> > >
140 caloClusterWriteDecorHandleNLeadingTruthParticlesL(
142 SG::WriteDecorHandle<xAOD::CaloClusterContainer,
143 std::vector<std::pair<unsigned int, double> > >
144 caloClusterWriteDecorHandleNLeadingTruthParticlesT(
146
147 ATH_MSG_DEBUG("Starting CaloCalibClusterTruthAttributerToolOOC::execute");
148 SG::ReadCondHandle<CaloDetDescrManager> caloMgrHandle{m_caloDetDescrMgrKey, ctx};
149 const CaloDetDescrManager* calo_dd_man = *caloMgrHandle;
150
151 bool foundAllContainers(true);
152 std::vector<const CaloCalibrationHitContainer*> v_cchc;
153
154 // Only emit an error once the job has previously seen a complete set of
155 // calibration-hit containers. This avoids logging one ERROR per event in
156 // jobs where the containers are absent throughout, while still flagging a
157 // transition from "containers present" to "containers missing".
158 for (const SG::ReadHandleKey<CaloCalibrationHitContainer>& key :
160 SG::ReadHandle<CaloCalibrationHitContainer> cchc(key, ctx);
161 if (!cchc.isValid()) {
163 ATH_MSG_ERROR("SG does not contain calibration hit container " << key.key());
164 }
165 foundAllContainers = false;
166 }
167 else {
168 v_cchc.push_back(cchc.cptr());
169 }
170 }
171
172 if (!m_foundAllContainers && foundAllContainers) {
174 }
175
176 if (!foundAllContainers) {
177 return StatusCode::SUCCESS;
178 }
179 ATH_MSG_DEBUG("SG has all containers");
180
181 // Helper to store cluster calibration energies
182 ClusInfo_t clusInfoVec(theClusColl->size());
183
186
187 unsigned int nHitsTotal = 0;
188 unsigned int nHitsWithoutParticleUID = 0;
190 v_cchc,
191 cellInfo,
192 *m_calo_id,
193 clusInfoVec,
194 nHitsTotal,
195 nHitsWithoutParticleUID,
196 true,
197 [this]() {
198 ATH_MSG_ERROR("Invalid uniqueID detected - this sample cannot be properly analysed.");
199 });
200
201 std::array<std::vector<std::unordered_map<int, double> >, 3> engCalibOut;
202 std::array<ClusList, 3> clusLists;
203 for (auto& clusList : clusLists) {
204 clusList.resize((2 * m_n_phi_out + 1) * (2 * m_n_eta_out + 1));
205 }
206 for (auto& engByTruth : engCalibOut) {
207 engByTruth.resize(theClusColl->size());
208 }
209
210 // This decorator always evaluates the loose, medium and tight OOC matching
211 // definitions when building the helper lookup structures.
212 const std::array<bool, 3> doOutOfCluster{{true, true, true}};
213 const std::array<ClusList*, 3> clusListPtrs{{
214 &clusLists[0], &clusLists[1], &clusLists[2]}};
215 const std::array<const ClusList*, 3> constClusListPtrs{{
216 &clusLists[0], &clusLists[1], &clusLists[2]}};
217
219 *theClusColl,
220 clusInfoVec,
226 doOutOfCluster,
227 clusListPtrs);
228
230 v_cchc,
231 cellInfo,
232 *calo_dd_man,
233 clusInfoVec,
238 doOutOfCluster,
239 constClusListPtrs,
240 [&engCalibOut](unsigned int ii, int iClus, int uniqueID, double energy) {
241 engCalibOut[ii][iClus][uniqueID] += energy;
242 });
243
244 int clusIdx = -1;
245 for (const xAOD::CaloCluster* thisCaloCluster : *theClusColl) {
246 ++clusIdx;
247
248 const std::unordered_map<int, double>& truthMapL = engCalibOut[0][clusIdx];
249 if (!truthMapL.empty()) {
250 caloClusterWriteDecorHandleNLeadingTruthParticlesL(*thisCaloCluster) =
251 makeSortedTruthPairs(truthMapL, m_numTruthParticles);
252 }
253
254 const std::unordered_map<int, double>& truthMapT = engCalibOut[2][clusIdx];
255 if (!truthMapT.empty()) {
256 caloClusterWriteDecorHandleNLeadingTruthParticlesT(*thisCaloCluster) =
257 makeSortedTruthPairs(truthMapT, m_numTruthParticles);
258 }
259 }
260
261 return StatusCode::SUCCESS;
262}
#define ATH_MSG_ERROR(x)
#define ATH_MSG_DEBUG(x)
std::atomic< bool > m_foundAllContainers
Tracks whether a previous event had the full set of calibration-hit containers.
SG::WriteDecorHandleKey< xAOD::CaloClusterContainer > m_caloClusterWriteDecorHandleKeyNLeadingTruthParticlesT
Writehandle for the decoration holding the leading truth-particle barcode/energy pairs for the tight ...
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloDetDescrMgrKey
Conditions Handle Key to access the CaloDetDescrManager.
Gaudi::Property< unsigned int > m_numTruthParticles
Number of leading truth particles to store per cluster.
SG::WriteDecorHandleKey< xAOD::CaloClusterContainer > m_caloClusterWriteDecorHandleKeyNLeadingTruthParticlesL
Writehandle for the decoration holding the leading truth-particle barcode/energy pairs for the loose ...
SG::ReadHandleKeyArray< CaloCalibrationHitContainer > m_CalibrationHitContainerNames
vector of calibration hit container names to use.
CaloCalibClusterMomentsMaker2::ClusInfo_t ClusInfo_t
std::map< Identifier, MyCellInfo > CellInfoSet_t
static void accumulateClusterCalibHits(const std::vector< const CaloCalibrationHitContainer * > &v_cchc, const CellInfoSet_t &cellInfo, const CaloCell_ID &calo_id, ClusInfo_t &clusInfoVec, unsigned int &nHitsTotal, unsigned int &nHitsWithoutParticleUID, bool useParticleID, InvalidUniqueIdHandler &&invalidUniqueIdHandler)
Accumulate calibration-hit energy inside clusters.
static void buildOutOfClusterClusterLists(const xAOD::CaloClusterContainer &theClusColl, const ClusInfo_t &clusInfoVec, int n_phi_out, int n_eta_out, double out_phi_max, double out_eta_max, const std::array< std::vector< std::vector< CalibHitIPhiIEtaRange > >, 3 > &i_phi_eta, const std::array< bool, 3 > &doOutOfCluster, const std::array< ClusList *, 3 > &clusLists)
Build lookup lists of clusters for out-of-cluster energy sharing.
static void buildCellInfoMap(const xAOD::CaloClusterContainer &theClusColl, CellInfoSet_t &cellInfo)
Build a map of calorimeter cells contributing to clusters.
static void accumulateOutOfClusterEnergy(const std::vector< const CaloCalibrationHitContainer * > &v_cchc, const CellInfoSet_t &cellInfo, const CaloDetDescrManager &calo_dd_man, const ClusInfo_t &clusInfoVec, int n_phi_out, int n_eta_out, double out_phi_max, double out_eta_max, const std::array< bool, 3 > &doOutOfCluster, const std::array< const ClusList *, 3 > &clusLists, AddOutOfClusterEnergy &&addOutOfClusterEnergy)
int uniqueID(const T &p)
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
CaloClusterContainer_v1 CaloClusterContainer
Define the latest version of the calorimeter cluster container.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ initialize()

StatusCode CaloCalibClusterDecoratorToolOOC::initialize ( )
overridevirtual

Definition at line 111 of file CaloCalibClusterDecoratorToolOOC.cxx.

112{
116 ATH_CHECK(detStore()->retrieve(m_calo_id, "CaloCell_ID"));
117
123 m_rmaxOut,
125
127 ATH_CHECK(m_caloDetDescrMgrKey.initialize());
128
129 return StatusCode::SUCCESS;
130}
#define ATH_CHECK
Evaluate an expression and check for errors.
const ServiceHandle< StoreGateSvc > & detStore() const
SG::ReadHandleKey< xAOD::TruthParticleContainer > m_truthParticleContainerKey
Readhandle for Truth-particle container used to validate barcode / uniqueID usage.
static void initializeOutOfClusterDistanceTables(int n_phi_out, int n_eta_out, double out_phi_max, double out_eta_max, const double(&rmaxOut)[3], std::array< std::vector< std::vector< CalibHitIPhiIEtaRange > >, 3 > &i_phi_eta)
Precompute eta/phi lookup tables for quick out-of-cluster hit association to clusters.

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ msg()

MsgStream & AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_CalibrationHitContainerNames

SG::ReadHandleKeyArray<CaloCalibrationHitContainer> CaloCalibClusterDecoratorToolOOC::m_CalibrationHitContainerNames
private
Initial value:
{
this,
"CalibrationHitContainerNames",
{},
"Calibration-hit containers inside the calorimeter volume"}

vector of calibration hit container names to use.

The containers specified in this property should hold calibration hits inside the calorimeter systems.

Definition at line 100 of file CaloCalibClusterDecoratorToolOOC.h.

100 {
101 this,
102 "CalibrationHitContainerNames",
103 {},
104 "Calibration-hit containers inside the calorimeter volume"};

◆ m_calo_id

const CaloCell_ID* CaloCalibClusterDecoratorToolOOC::m_calo_id
private

Cached pointer to the calorimeter cell identifier helper.

Definition at line 125 of file CaloCalibClusterDecoratorToolOOC.h.

◆ m_caloClusterWriteDecorHandleKeyNLeadingTruthParticlesL

SG::WriteDecorHandleKey<xAOD::CaloClusterContainer> CaloCalibClusterDecoratorToolOOC::m_caloClusterWriteDecorHandleKeyNLeadingTruthParticlesL
private
Initial value:
{
this,
"CaloClusterWriteDecorHandleKey_NLeadingTruthParticlesL",
"CaloTopoClustersNew.calclus_NLeadingTruthParticleBarcodeEnergyPairs_L",
"Loose OOC truth-particle barcode/energy decoration"}

Writehandle for the decoration holding the leading truth-particle barcode/energy pairs for the loose out-of-cluster definition.

Definition at line 68 of file CaloCalibClusterDecoratorToolOOC.h.

68 {
69 this,
70 "CaloClusterWriteDecorHandleKey_NLeadingTruthParticlesL",
71 "CaloTopoClustersNew.calclus_NLeadingTruthParticleBarcodeEnergyPairs_L",
72 "Loose OOC truth-particle barcode/energy decoration"};

◆ m_caloClusterWriteDecorHandleKeyNLeadingTruthParticlesT

SG::WriteDecorHandleKey<xAOD::CaloClusterContainer> CaloCalibClusterDecoratorToolOOC::m_caloClusterWriteDecorHandleKeyNLeadingTruthParticlesT
private
Initial value:
{
this,
"CaloClusterWriteDecorHandleKey_NLeadingTruthParticlesT",
"CaloTopoClustersNew.calclus_NLeadingTruthParticleBarcodeEnergyPairs_T",
"Tight OOC truth-particle barcode/energy decoration"}

Writehandle for the decoration holding the leading truth-particle barcode/energy pairs for the tight out-of-cluster definition.

Definition at line 79 of file CaloCalibClusterDecoratorToolOOC.h.

79 {
80 this,
81 "CaloClusterWriteDecorHandleKey_NLeadingTruthParticlesT",
82 "CaloTopoClustersNew.calclus_NLeadingTruthParticleBarcodeEnergyPairs_T",
83 "Tight OOC truth-particle barcode/energy decoration"};

◆ m_caloDetDescrMgrKey

SG::ReadCondHandleKey<CaloDetDescrManager> CaloCalibClusterDecoratorToolOOC::m_caloDetDescrMgrKey
private
Initial value:
{
this,
"CaloDetDescrManager",
"CaloDetDescrManager",
"Conditions handle for the CaloDetDescrManager"}

Conditions Handle Key to access the CaloDetDescrManager.

Definition at line 118 of file CaloCalibClusterDecoratorToolOOC.h.

118 {
119 this,
120 "CaloDetDescrManager",
121 "CaloDetDescrManager",
122 "Conditions handle for the CaloDetDescrManager"};

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default).

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default).

Definition at line 390 of file AthCommonDataStore.h.

◆ m_foundAllContainers

std::atomic<bool> CaloCalibClusterDecoratorToolOOC::m_foundAllContainers {false}
mutableprivate

Tracks whether a previous event had the full set of calibration-hit containers.

This is used to suppress repeated ERROR messages in jobs where the containers are absent for every event, while still reporting a transition from present to missing containers.

Definition at line 162 of file CaloCalibClusterDecoratorToolOOC.h.

162{false};

◆ m_i_phi_eta

std::array<std::vector<std::vector<CalibHitIPhiIEtaRange> >, 3> CaloCalibClusterDecoratorToolOOC::m_i_phi_eta
private

Precomputed eta/phi search windows used by the OOC helper methods.

Definition at line 153 of file CaloCalibClusterDecoratorToolOOC.h.

◆ m_n_eta_out

int CaloCalibClusterDecoratorToolOOC::m_n_eta_out
private

Number of bins in the lookup table for out-of-cluster eta offsets.

Definition at line 137 of file CaloCalibClusterDecoratorToolOOC.h.

◆ m_n_phi_out

int CaloCalibClusterDecoratorToolOOC::m_n_phi_out
private

Number of bins in the lookup table for out-of-cluster phi offsets.

The table stores offsets in signed 8-bit-compatible index ranges.

Definition at line 132 of file CaloCalibClusterDecoratorToolOOC.h.

◆ m_numTruthParticles

Gaudi::Property<unsigned int> CaloCalibClusterDecoratorToolOOC::m_numTruthParticles
private
Initial value:
{
this,
"NumTruthParticles",
100,
"Number of truth particles per CaloCluster/PFO for which to store OOC calibration-hit energy"}

Number of leading truth particles to store per cluster.

Definition at line 88 of file CaloCalibClusterDecoratorToolOOC.h.

88 {
89 this,
90 "NumTruthParticles",
91 100,
92 "Number of truth particles per CaloCluster/PFO for which to store OOC calibration-hit energy"};

◆ m_out_eta_max

double CaloCalibClusterDecoratorToolOOC::m_out_eta_max
private

Maximum |Δeta| covered by the out-of-cluster lookup tables.

Definition at line 143 of file CaloCalibClusterDecoratorToolOOC.h.

◆ m_out_phi_max

double CaloCalibClusterDecoratorToolOOC::m_out_phi_max
private

Maximum |Δphi| covered by the out-of-cluster lookup tables.

Definition at line 140 of file CaloCalibClusterDecoratorToolOOC.h.

◆ m_rmaxOut

double CaloCalibClusterDecoratorToolOOC::m_rmaxOut[3]
private

Maximum matching radii for the loose/medium/tight OOC definitions.

Definition at line 148 of file CaloCalibClusterDecoratorToolOOC.h.

◆ m_truthParticleContainerKey

SG::ReadHandleKey<xAOD::TruthParticleContainer> CaloCalibClusterDecoratorToolOOC::m_truthParticleContainerKey
private
Initial value:
{
this,
"TruthParticles",
"TruthParticles",
"ReadHandleKey for truth particle container"}

Readhandle for Truth-particle container used to validate barcode / uniqueID usage.

Definition at line 109 of file CaloCalibClusterDecoratorToolOOC.h.

109 {
110 this,
111 "TruthParticles",
112 "TruthParticles",
113 "ReadHandleKey for truth particle container"};

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files: