ATLAS Offline Software
xAODEgammaBuilder.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3  */
4 
5 #include "xAODEgammaBuilder.h"
6 
8 #include "GaudiKernel/EventContext.h"
9 #include "StoreGate/ReadHandle.h"
10 #include "StoreGate/WriteHandle.h"
11 
13 
15 
17 #include "xAODEgamma/Electron.h"
20 #include "xAODEgamma/Photon.h"
25 
26 #include <algorithm>
27 #include <cmath>
28 #include <memory>
29 #include <vector>
30 
31 namespace {
32  template <typename SrcT, typename DestT>
33  void doAmbiguityLinks(
34  const EventContext& ctx,
35  DataVector<SrcT> *srcContainer,
36  DataVector<DestT> *destContainer
37  ) {
40  static const SG::AuxElement::Accessor<
41  std::vector<ElementLink<xAOD::CaloClusterContainer>>>
42  caloClusterLinks("constituentClusterLinks");
43 
45  ELink("ambiguityLink");
46 
48  for (SrcT *src : *srcContainer) {
49  ELink(*src) = dummylink;
51  continue;
52  }
53 
54  for (
55  size_t destIndex = 0;
56  destIndex < destContainer->size();
57  ++destIndex
58  ) {
59  DestT *dest = destContainer->at(destIndex);
61  continue;
62  }
63 
64  if (caloClusterLinks(*(dest->caloCluster())).at(0) ==
65  caloClusterLinks(*(src->caloCluster())).at(0)) {
67  *destContainer, destIndex, ctx);
68  ELink(*dest) = link;
69  break;
70  }
71  }
72  }
73  }
74 }
75 
77  ISvcLocator* pSvcLocator)
78  : AthReentrantAlgorithm(name, pSvcLocator)
79 {}
80 
83 {
84  m_deltaEta1Pear = std::make_unique<electronPearShapeAlignmentCorrection>();
85  // the data handle keys
91 
92  // retrieve tools
93  ATH_CHECK(m_clusterTool.retrieve());
94  ATH_CHECK(m_ShowerTool.retrieve());
95 
96  if (m_doElectrons) {
97  ATH_CHECK(m_electronTools.retrieve());
98  }
99  if (m_doPhotons) {
100  ATH_CHECK(m_photonTools.retrieve());
101  }
102  m_doOQ = !m_egammaOQTool.empty();
103  if (m_doOQ) {
104  ATH_CHECK(m_egammaOQTool.retrieve());
105  } else {
106  m_egammaOQTool.disable();
107  }
108 
109  // do we actually do ambiguity
110  m_doAmbiguity = !m_ambiguityTool.empty();
112  ATH_CHECK(m_ambiguityTool.retrieve());
113  } else {
114  m_ambiguityTool.disable();
115  }
118  return StatusCode::SUCCESS;
119 }
120 
123 {
124  return StatusCode::SUCCESS;
125 }
126 
128 xAODEgammaBuilder::execute(const EventContext& ctx) const
129 {
130 
131  const EgammaRecContainer* inputElRecs = nullptr;
132  const EgammaRecContainer* inputPhRecs = nullptr;
134  xAOD::PhotonContainer* photons = nullptr;
135  /*
136  * From here on if a Read/Write handle
137  * is retrieved the above will be !=
138  * nullptr for electron or photons or both
139  */
140  std::optional<SG::WriteHandle<xAOD::ElectronContainer>> electronContainer;
141  std::optional<SG::WriteHandle<xAOD::PhotonContainer>> photonContainer;
142 
143  if (m_doElectrons) {
144  SG::ReadHandle<EgammaRecContainer> electronSuperRecs(
146  inputElRecs = electronSuperRecs.ptr();
147 
150  std::make_unique<xAOD::ElectronContainer>(),
151  std::make_unique<xAOD::ElectronAuxContainer>()));
152 
153  electrons = electronContainer->ptr();
154  electrons->reserve(inputElRecs->size());
155  }
156  if (m_doPhotons) {
157  SG::ReadHandle<EgammaRecContainer> photonSuperRecs(
159  inputPhRecs = photonSuperRecs.ptr();
160 
162  ATH_CHECK(
163  photonContainer->record(std::make_unique<xAOD::PhotonContainer>(),
164  std::make_unique<xAOD::PhotonAuxContainer>()));
165 
166  photons = photonContainer->ptr();
167  photons->reserve(inputPhRecs->size());
168  }
169 
170  /*
171  * Now fill the electrons and photons
172  */
173  if (m_doElectrons) {
174  for (const egammaRec* electronRec : *inputElRecs) {
175  // in case for some reasons we reach here with no trackparticles
176  if (electronRec->getNumberOfTrackParticles() == 0) {
177  continue;
178  }
181  if (m_doPhotons) {
182  // get the hottest cell
183  const xAOD::CaloCluster* const elClus = electronRec->caloCluster();
184  const double elEta0 = elClus->eta0();
185  const double elPhi0 = elClus->phi0();
186  for (const egammaRec* photonRec : *inputPhRecs) {
187  const xAOD::CaloCluster* const phClus = photonRec->caloCluster();
188  // See if they have the same hottest cell
189  if (elEta0 == phClus->eta0() && elPhi0 == phClus->phi0()) {
190  if (m_doAmbiguity) { // should be the default
191  author =
192  m_ambiguityTool->ambiguityResolve(elClus,
193  photonRec->vertex(),
194  electronRec->trackParticle(),
195  type);
196  } else { // in case the ambiguity tool is not set ambiguity is not
197  // resolved
199  }
200  break;
201  }
202  }
203  }
204  // Create Electron xAOD objects
207  if (!getElectron(electronRec, electrons, author, type)) {
208  return StatusCode::FAILURE;
209  }
210  }
211  }
212  }
213 
214  if (m_doPhotons) {
215  for (const egammaRec* photonRec : *inputPhRecs) {
218  if (m_doElectrons) {
219  // get the hottest cell
220  const xAOD::CaloCluster* const phClus = photonRec->caloCluster();
221  const double phEta0 = phClus->eta0();
222  const double phPhi0 = phClus->phi0();
223  for (const egammaRec* electronRec : *inputElRecs) {
224  const xAOD::CaloCluster* const elClus = electronRec->caloCluster();
225  // See if they have the same hottest cell
226  if (phEta0 == elClus->eta0() && phPhi0 == elClus->phi0()) {
227  if (m_doAmbiguity) { // should be the default
228  author =
229  m_ambiguityTool->ambiguityResolve(elClus,
230  photonRec->vertex(),
231  electronRec->trackParticle(),
232  type);
233  } else { // in case the ambiguity tool is not set ambiguity is not
234  // resolved
236  }
237  break;
238  }
239  }
240  }
241  // Create Photon xAOD objects
244  if (!getPhoton(photonRec, photons, author, type)) {
245  return StatusCode::FAILURE;
246  }
247  }
248  }
249  }
250 
251  SG::ReadCondHandle<CaloDetDescrManager> caloDetDescrMgrHandle{
253  };
254  ATH_CHECK(caloDetDescrMgrHandle.isValid());
255  const CaloDetDescrManager* calodetdescrmgr = *caloDetDescrMgrHandle;
256 
257  // Shower Shapes
258  if (electrons) {
259  for (xAOD::Electron* electron : *electrons) {
260  ATH_CHECK(m_ShowerTool->execute(ctx, *calodetdescrmgr, electron));
261  }
262  }
263  if (photons) {
264  for (xAOD::Photon* photon : *photons) {
265  ATH_CHECK(m_ShowerTool->execute(ctx, *calodetdescrmgr, photon));
266  }
267  }
268 
269  // Object Quality
270  if (m_doOQ) {
271  if (electrons) {
272  for (xAOD::Electron* electron : *electrons) {
273  ATH_CHECK(m_egammaOQTool->execute(ctx, *electron));
274  }
275  }
276  if (photons) {
277  for (xAOD::Photon* photon : *photons) {
278  ATH_CHECK(m_egammaOQTool->execute(ctx, *photon));
279  }
280  }
281  }
282 
283  // Energy calibration
284  ATH_CHECK(m_clusterTool->contExecute(ctx, electrons, photons));
285 
286  //Followed by 4-Mom Building
289  //Additional tools fpr electrons/photons
290  //e.g identification
291  if (m_doElectrons) {
292  for (const auto& tool : m_electronTools) {
294  }
295  }
296  if (m_doPhotons) {
297  for (const auto& tool : m_photonTools) {
298  ATH_CHECK(CallTool(ctx, tool, photons));
299  }
300  }
301  // Do the ambiguity Links
302  if (m_doElectrons && m_doPhotons) {
303  doAmbiguityLinks(ctx, electrons, photons);
304  doAmbiguityLinks(ctx, photons, electrons);
305  }
306 
307  if (m_doDummyElectrons) {
308  SG::WriteHandle<xAOD::ElectronContainer> dummyElectronContainer(
310  ATH_CHECK(dummyElectronContainer.record(
311  std::make_unique<xAOD::ElectronContainer>(),
312  std::make_unique<xAOD::ElectronAuxContainer>()));
313 
314  dummyElectronContainer->push_back(std::unique_ptr<xAOD::Electron>());
315  }
316 
317  return StatusCode::SUCCESS;
318 }
319 
320 template <typename T>
323  const EventContext& ctx,
324  const ToolHandle<IegammaBaseTool>& tool,
325  DataVector<T> *container) const
326 {
327  if (container) {
328  for (T *egamma : *container) {
329  ATH_CHECK(tool->execute(ctx, egamma));
330  }
331  }
332 
333  return StatusCode::SUCCESS;
334 }
335 
336 bool
339  const unsigned int author,
340  const uint8_t type) const
341 {
342  if (!egRec || !electronContainer) {
343  return false;
344  }
345 
346  xAOD::Electron* electron = electronContainer->push_back(std::make_unique<xAOD::Electron>());
347  electron->setAuthor(author);
348 
349  static const SG::AuxElement::Accessor<uint8_t> acc("ambiguityType");
350  acc(*electron) = type;
351 
352  electron->setCaloClusterLinks(egRec->caloClusterElementLinks());
353  electron->setTrackParticleLinks(egRec->trackParticleElementLinks());
354 
355  const xAOD::TrackParticle* trackParticle = electron->trackParticle();
356  if (trackParticle) {
357  electron->setCharge(trackParticle->charge());
358  }
359  // Set DeltaEta, DeltaPhi , DeltaPhiRescaled
360  electron->setTrackCaloMatchValues(
361  egRec->deltaEta(),
362  egRec->deltaPhi(),
363  egRec->deltaPhiRescaled(),
364  egRec->deltaPhiLast()
365  );
366 
367  static const SG::AuxElement::Accessor<float> pear("deltaEta1PearDistortion");
368  pear(*electron) = m_isTruth ? 0.0 : m_deltaEta1Pear->getDeltaEtaDistortion(
369  electron->caloCluster()->etaBE(2),
370  electron->caloCluster()->phiBE(2)
371  );
372 
373  return true;
374 }
375 
376 bool
379  const unsigned int author,
380  const uint8_t type) const
381 {
382  if (!egRec || !photonContainer) {
383  return false;
384  }
385 
386  xAOD::Photon* photon = photonContainer->push_back(std::make_unique<xAOD::Photon>());
387  photon->setAuthor(author);
388  static const SG::AuxElement::Accessor<uint8_t> acc("ambiguityType");
389  acc(*photon) = type;
390 
391  photon->setCaloClusterLinks(egRec->caloClusterElementLinks());
392  photon->setVertexLinks(egRec->vertexElementLinks());
393 
394  // Transfer deltaEta/Phi info
395  float deltaEta = egRec->deltaEtaVtx();
396  float deltaPhi = egRec->deltaPhiVtx();
397  if (!photon->setVertexCaloMatchValue(
399  return false;
400  }
401 
402  if (!photon->setVertexCaloMatchValue(
404  return false;
405  }
406  return true;
407 }
DataVector::reserve
void reserve(size_type n)
Attempt to preallocate enough memory for a specified number of elements.
xAOD::CaloCluster_v1::phi0
flt_t phi0() const
Returns raw of cluster seed.
electronContainer
xAOD::ElectronContainer * electronContainer
Definition: TrigGlobEffCorrValidation.cxx:187
xAODEgammaBuilder::m_photonClusterRecContainerKey
SG::ReadHandleKey< EgammaRecContainer > m_photonClusterRecContainerKey
Name of input super cluster photon egammaRec container.
Definition: xAODEgammaBuilder.h:163
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:575
xAODEgammaBuilder::m_photonTools
ToolHandleArray< IegammaBaseTool > m_photonTools
Vector of tools for dressing ONLY photons.
Definition: xAODEgammaBuilder.h:121
SG::Accessor
Helper class to provide type-safe access to aux data.
Definition: Control/AthContainers/AthContainers/Accessor.h:66
WriteCellNoiseToCool.src
src
Definition: WriteCellNoiseToCool.py:513
xAOD::TrackParticle_v1::charge
float charge() const
Returns the charge.
Definition: TrackParticle_v1.cxx:150
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
xAODEgammaBuilder::initialize
StatusCode initialize() override final
Definition: xAODEgammaBuilder.cxx:82
xAODEgammaBuilder::m_doPhotons
Gaudi::Property< bool > m_doPhotons
Definition: xAODEgammaBuilder.h:184
xAOD::deltaPhi
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap setEtaBin setIsTgcFailure setDeltaPt deltaPhi
Definition: L2StandAloneMuon_v1.cxx:160
xAODEgammaBuilder::CallTool
StatusCode CallTool(const EventContext &ctx, const ToolHandle< IegammaBaseTool > &tool, DataVector< T > *container) const
Call a tool using contExecute and an electron or photon container.
Definition: xAODEgammaBuilder.cxx:322
xAODEgammaBuilder::m_electronTools
ToolHandleArray< IegammaBaseTool > m_electronTools
Vector of tools for dressing ONLY electrons.
Definition: xAODEgammaBuilder.h:117
xAODEgammaBuilder::m_clusterTool
ToolHandle< IEMClusterTool > m_clusterTool
Tool to do the final electron/photon cluster building.
Definition: xAODEgammaBuilder.h:125
egammaRec::deltaEta
std::array< double, 4 > deltaEta() const
deltaEta at pre sampler(0) -> 3rd sampling(3)
xAODEgammaBuilder::m_doOQ
bool m_doOQ
Definition: xAODEgammaBuilder.h:188
egammaRec::deltaPhiRescaled
std::array< double, 4 > deltaPhiRescaled() const
deltaPhi for rescaled momentum extrapolation from the perigee.
xAODEgammaBuilder::execute
StatusCode execute(const EventContext &ctx) const override final
Definition: xAODEgammaBuilder.cxx:128
perfmonmt-printer.dest
dest
Definition: perfmonmt-printer.py:189
xAODEgammaBuilder::m_doAmbiguity
bool m_doAmbiguity
Definition: xAODEgammaBuilder.h:187
xAODEgammaBuilder::getElectron
bool getElectron(const egammaRec *egRec, xAOD::ElectronContainer *electronContainer, const unsigned int author, const uint8_t type) const
Given an egammaRec object, a pointer to the electron container and the author, create and dress an el...
Definition: xAODEgammaBuilder.cxx:337
egammaRec::trackParticleElementLinks
const std::vector< ElementLink< xAOD::TrackParticleContainer > > & trackParticleElementLinks() const
Get a reference to the track particle links.
Definition: egammaRec.cxx:49
xAODEgammaBuilder::finalize
StatusCode finalize() override final
Definition: xAODEgammaBuilder.cxx:122
SG::VarHandleKey::empty
bool empty() const
Test if the key is blank.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:150
xAODEgammaBuilder::m_electronOutputKey
SG::WriteHandleKey< xAOD::ElectronContainer > m_electronOutputKey
Name of the electron output collection.
Definition: xAODEgammaBuilder.h:147
CaloDetDescrManager.h
Definition of CaloDetDescrManager.
xAODEgammaBuilder::m_ambiguityTool
ToolHandle< IEGammaAmbiguityTool > m_ambiguityTool
Tool to resolve electron/photon ambiguity.
Definition: xAODEgammaBuilder.h:135
egamma
Definition: egamma.h:58
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
EgammaContainer.h
xAODEgammaBuilder::m_deltaEta1Pear
std::unique_ptr< electronPearShapeAlignmentCorrection > m_deltaEta1Pear
Definition: xAODEgammaBuilder.h:186
WriteHandle.h
Handle class for recording to StoreGate.
xAODEgammaBuilder::xAODEgammaBuilder
xAODEgammaBuilder(const std::string &name, ISvcLocator *pSvcLocator)
Definition: xAODEgammaBuilder.cxx:76
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:59
xAODEgammaBuilder::m_electronClusterRecContainerKey
SG::ReadHandleKey< EgammaRecContainer > m_electronClusterRecContainerKey
Name of input super cluster electron egammaRec container.
Definition: xAODEgammaBuilder.h:157
xAOD::AmbiguityTool::electron
@ electron
Definition: IEGammaAmbiguityTool.h:34
egammaRec::deltaPhiLast
double deltaPhiLast() const
deltaPhi from Last measurement
ElectronContainer.h
P4Helpers::deltaEta
double deltaEta(const I4Momentum &p1, const I4Momentum &p2)
Computes efficiently .
Definition: P4Helpers.h:53
egammaRec::caloClusterElementLinks
const std::vector< ElementLink< xAOD::CaloClusterContainer > > & caloClusterElementLinks() const
Get a reference to the calo cluster links.
Definition: egammaRec.cxx:26
ElectronAuxContainer.h
xAOD::EgammaParameters::AuthorAmbiguous
const uint16_t AuthorAmbiguous
Object Reconstructed by standard cluster-based algorithm.
Definition: EgammaDefs.h:32
Photon.h
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
egammaRec::deltaPhiVtx
float deltaPhiVtx() const
deltaPhiVtx
EMFourMomBuilder.h
AthenaPoolTestRead.acc
acc
Definition: AthenaPoolTestRead.py:16
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
xAODEgammaBuilder::m_dummyElectronOutputKey
SG::WriteHandleKey< xAOD::ElectronContainer > m_dummyElectronOutputKey
Name of the dummy electron output collection.
Definition: xAODEgammaBuilder.h:176
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
xAOD::AmbiguityTool::AmbiguityType
AmbiguityType
Definition: IEGammaAmbiguityTool.h:33
egammaRec::deltaPhi
std::array< double, 4 > deltaPhi() const
deltaPhi at pre sampler(0) -> 3rd sampling(3)
xAODEgammaBuilder::m_isTruth
Gaudi::Property< bool > m_isTruth
Option to do truth.
Definition: xAODEgammaBuilder.h:183
xAOD::EgammaParameters::convMatchDeltaPhi1
@ convMatchDeltaPhi1
difference between the cluster phi and the phi of the first track of the vertex extrapolated to the s...
Definition: EgammaEnums.h:253
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
xAODEgammaBuilder::m_ShowerTool
ToolHandle< IEMShowerBuilder > m_ShowerTool
Tool to compute shower shapes.
Definition: xAODEgammaBuilder.h:130
photonContainer
xAOD::PhotonContainer * photonContainer
Definition: TrigGlobEffCorrValidation.cxx:189
EMFourMomBuilder::calculate
void calculate(xAOD::Electron &electron)
Definition: EMFourMomBuilder.cxx:68
xAOD::AmbiguityTool::photon
@ photon
Definition: IEGammaAmbiguityTool.h:41
xAODEgammaBuilder::m_doElectrons
Gaudi::Property< bool > m_doElectrons
Definition: xAODEgammaBuilder.h:185
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
errorcheck.h
Helpers for checking error return status codes and reporting errors.
AtlCoolConsole.tool
tool
Definition: AtlCoolConsole.py:453
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
xAODEgammaBuilder.h
xAOD::Electron_v1
Definition: Electron_v1.h:34
egammaRec::vertexElementLinks
const std::vector< ElementLink< xAOD::VertexContainer > > & vertexElementLinks() const
Get a reference to the vertix links.
Definition: egammaRec.cxx:71
SG::ReadHandle::ptr
const_pointer_type ptr()
Dereference the pointer.
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
xAOD::CaloCluster_v1::eta0
flt_t eta0() const
Returns raw of cluster seed.
xAODEgammaBuilder::getPhoton
bool getPhoton(const egammaRec *egRec, xAOD::PhotonContainer *photonContainer, const unsigned int author, uint8_t type) const
Given an egammaRec object, a pointer to the photon container and the author, create and dress a photo...
Definition: xAODEgammaBuilder.cxx:377
xAODEgammaBuilder::m_egammaOQTool
ToolHandle< IegammaOQFlagsBuilder > m_egammaOQTool
Tool to add electron/photon Object Quality info.
Definition: xAODEgammaBuilder.h:140
VertexContainer.h
PhotonAuxContainer.h
xAOD::photon
@ photon
Definition: TrackingPrimitives.h:199
CaloDetDescrManager
This class provides the client interface for accessing the detector description information common to...
Definition: CaloDetDescrManager.h:473
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
xAODEgammaBuilder::m_doDummyElectrons
bool m_doDummyElectrons
Definition: xAODEgammaBuilder.h:189
xAOD::Photon_v1
Definition: Photon_v1.h:37
xAOD::EgammaParameters::convMatchDeltaEta1
@ convMatchDeltaEta1
difference between the cluster eta and the eta of the first track of the vertex extrapolated to the s...
Definition: EgammaEnums.h:243
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
CaloCondBlobAlgs_fillNoiseFromASCII.author
string author
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:26
xAOD::EgammaParameters::electron
@ electron
Definition: EgammaEnums.h:18
xAOD::EgammaParameters::AuthorPhoton
const uint16_t AuthorPhoton
Object Reconstructed by standard cluster-based algorithm.
Definition: EgammaDefs.h:28
egammaRec
Definition: egammaRec.h:31
DataVector::emplace
iterator emplace(iterator position, value_type pElem)
Add a new element to the collection.
Electron.h
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
DataVector::at
const T * at(size_type n) const
Access an element, as an rvalue.
xAODEgammaBuilder::m_photonOutputKey
SG::WriteHandleKey< xAOD::PhotonContainer > m_photonOutputKey
Name of the photon output collection.
Definition: xAODEgammaBuilder.h:152
ReadHandle.h
Handle class for reading from StoreGate.
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
PhotonContainer.h
TrackParticleContainer.h
egammaRec::deltaEtaVtx
float deltaEtaVtx() const
deltaEtaVtx
InDetDD::electrons
@ electrons
Definition: InDetDD_Defs.h:17
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35
xAOD::EgammaParameters::AuthorElectron
const uint16_t AuthorElectron
Object Reconstructed by standard cluster-based algorithm.
Definition: EgammaDefs.h:24
xAODEgammaBuilder::m_caloDetDescrMgrKey
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloDetDescrMgrKey
Definition: xAODEgammaBuilder.h:168