ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
egammaOQFlagsBuilder Class Referencefinal

#include <egammaOQFlagsBuilder.h>

Inheritance diagram for egammaOQFlagsBuilder:
Collaboration diagram for egammaOQFlagsBuilder:

Public Member Functions

 egammaOQFlagsBuilder (const std::string &type, const std::string &name, const IInterface *parent)
 Default constructor. More...
 
 ~egammaOQFlagsBuilder ()=default
 Destructor. More...
 
StatusCode initialize ()
 initialize method More...
 
virtual StatusCode execute (const EventContext &ctx, xAOD::Egamma &egamma) const
 standard execute method More...
 
StatusCode finalize ()
 finalize method More...
 
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & evtStore () const
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc. More...
 
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc. More...
 
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm. More...
 
virtual StatusCode sysStart () override
 Handle START transition. More...
 
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles. More...
 
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles. More...
 
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T > &t)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &)
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &)
 Declare a new Gaudi property. More...
 
Gaudi::Details::PropertyBase * declareProperty (const std::string &name, T &property, const std::string &doc="none")
 Declare a new Gaudi property. More...
 
void updateVHKA (Gaudi::Details::PropertyBase &)
 
MsgStream & msg () const
 
MsgStream & msg (const MSG::Level lvl) const
 
bool msgLvl (const MSG::Level lvl) const
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 AlgTool interface methods. More...
 

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution More...
 
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. More...
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

SG::ReadCondHandleKey< LArBadChannelContm_bcContKey
 Handle to bad-channel CDO. More...
 
SG::ReadCondHandleKey< CaloAffectedRegionInfoVecm_affKey
 
ToolHandle< ICaloAffectedToolm_affectedTool
 
const LArEM_IDm_emHelper
 
const CaloCell_IDm_calocellId
 
SG::ReadHandleKey< CaloCellContainerm_cellsKey
 
Gaudi::Property< double > m_QCellCut { this, "QCellCut", 4000. }
 
Gaudi::Property< double > m_QCellHECCut { this, "QCellHECCut", 60000. }
 
Gaudi::Property< double > m_QCellSporCut { this, "QCellSporCut", 4000. }
 
Gaudi::Property< double > m_LArQCut { this, "LArQCut", 0.8 }
 
Gaudi::Property< double > m_TCut { this, "TCut", 10.0 }
 
Gaudi::Property< double > m_TCutVsE { this, "TCutVsE", 2.0 }
 
Gaudi::Property< double > m_RcellCut { this, "RcellCut", 0.8 }
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

egamma Object Quality flags data object builder :

Definition at line 49 of file egammaOQFlagsBuilder.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ egammaOQFlagsBuilder()

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

Default constructor.

Definition at line 171 of file egammaOQFlagsBuilder.cxx.

175  , m_emHelper(nullptr)
176  , m_calocellId(nullptr)
177 {
178  declareInterface<IegammaOQFlagsBuilder>(this);
179 }

◆ ~egammaOQFlagsBuilder()

egammaOQFlagsBuilder::~egammaOQFlagsBuilder ( )
default

Destructor.

Member Function Documentation

◆ declareGaudiProperty() [1/4]

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

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

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

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

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

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

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

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

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleBase. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 245 of file AthCommonDataStore.h.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation string for the property.

This is the version for types that derive from SG::VarHandleKey. The property value object is put on the input and output lists as appropriate; then we forward to the base class.

Definition at line 221 of file AthCommonDataStore.h.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This is the generic version, for types that do not derive from SG::VarHandleKey. It just forwards to the base class version of declareProperty.

Definition at line 333 of file AthCommonDataStore.h.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation string for the property.

This dispatches to either the generic declareProperty or the one for VarHandle/Key/KeyArray.

Definition at line 352 of file AthCommonDataStore.h.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

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

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ 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.

95 { return m_detStore; }

◆ evtStore() [1/2]

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.

85 { return m_evtStore; }

◆ evtStore() [2/2]

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

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

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ execute()

StatusCode egammaOQFlagsBuilder::execute ( const EventContext &  ctx,
xAOD::Egamma egamma 
) const
virtual

standard execute method

Implements IegammaOQFlagsBuilder.

Definition at line 203 of file egammaOQFlagsBuilder.cxx.

205 {
206  // Protection against bad pointers
207  const xAOD::CaloCluster* cluster = eg.caloCluster();
208  if (!cluster) {
209  return StatusCode::SUCCESS;
210  }
211  if (cluster->size() == 0) {
212  return StatusCode::SUCCESS;
213  }
214  //
215  const float clusterEta = cluster->eta();
216  //
217  // In case we have the sizes set during the cluster construction.
218  int etaSize = cluster->getClusterEtaSize();
219  int phiSize = cluster->getClusterPhiSize();
220  // If no proper size could be found automatically, deduce by hand
221  // for the known std cases
222  if (etaSize == 0 && phiSize == 0) {
223  if (xAOD::EgammaHelpers::isBarrel(cluster)) {
224  etaSize = 3;
225  phiSize = 7;
226  }
227  else {
228  etaSize = 5;
229  phiSize = 5;
230  }
231  }
232 
233  unsigned int iflag = eg.OQ();
234 
235  // Set timing bit
236  const double absEnergyGeV = std::abs(cluster->e() * (1. / Gaudi::Units::GeV));
237  maskIflagIf(
238  iflag,
240  absEnergyGeV != 0 && std::abs(cluster->time()) > m_TCut + m_TCutVsE / absEnergyGeV);
241 
242  // Declare totE and badE for LarQ cleaning
243  double totE = 0;
244  double badE = 0;
245  double energyCellMax = 0;
246  // Find the central cell in the middle layer
247  Identifier cellCentrId;
248  bool foundCentralCell = findCentralCell(cluster, cellCentrId);
249  if (foundCentralCell) {
250  // Find the list of neighbours cells, to define the 3x3 cluster core
251  std::vector<IdentifierHash> neighbourList =
252  findNeighbours(cellCentrId, m_emHelper, m_calocellId);
253  // Get Bad-channel info for this event
255  const LArBadChannelCont* larBadChanCont = *larBadChanHdl;
256 
257  // Loop over all the Lar cluster cells
259  xAOD::CaloCluster::const_cell_iterator cellIterEnd = cluster->cell_end();
260  for (; cellIter != cellIterEnd; cellIter++) {
261  const CaloCell* cell = (*cellIter);
262  if (!cell) {
263  continue;
264  }
265  // Check we are not tile
266  if (cell->caloDDE()->is_tile()) {
267  continue;
268  }
269  // Find cell parameters and properties
270  const float eta = cell->eta();
271  // float phi = cell->phi(); // no longer used
272  const float qual = cell->quality();
273  const bool isHighQ = qual >= 4000;
274  const CaloSampling::CaloSample layer = cell->caloDDE()->getSampling();
275 
276  const bool isMissing = ((cell->provenance() & 0x0A00) == 0x0A00);
277  const bool isMasked = ((cell->provenance() & 0x0A00) == 0x0800);
278  const bool isPresampler = (layer == CaloSampling::PreSamplerB ||
280  const bool isL1 =
282  const bool isL2 =
284  const bool isL3 =
286 
287  // Calculate badE et totE
288  if ((cell->provenance() & 0x2000) && !(cell->provenance() & 0x0800)) {
289  totE += cell->e();
290  if (cell->e() > energyCellMax) {
291  energyCellMax = cell->e();
292  }
293  if (qual > m_QCellCut) {
294  badE += cell->e();
295  }
296  }
297  const bool isACoreCell = isCore(cell->ID(), neighbourList, m_calocellId);
298 
299  bool isStripCoreCell = false;
301  std::abs(eta - clusterEta) < 0.025 / 2.) {
302  isStripCoreCell = true;
303  }
304 
305  // Set HEC bit
307  qual > m_QCellHECCut) {
308  iflag |= (0x1 << xAOD::EgammaParameters::HECHighQ);
309  }
310 
311  // Set LAr bits
312  const LArBadChannel bc = larBadChanCont->offlineStatus(cell->ID());
313  const bool isAffected =
314  (bc.deadCalib() || bc.lowNoiseHG() || bc.lowNoiseMG() ||
315  bc.lowNoiseLG() || bc.distorted() || bc.unstable() ||
316  bc.unstableNoiseHG() || bc.unstableNoiseMG() || bc.unstableNoiseLG() ||
317  bc.peculiarCalibrationLine() || bc.almostDead() || bc.shortProblem());
318 
319  const bool isSporadicNoise =
321 
322  if (isACoreCell) {
323  coreCellHelper(isMissing, isMasked, isSporadicNoise, isAffected,
324  isHighQ, iflag);
325  } // end if isACoreCell
326  else {
327  if (isMissing) {
328  missingHelper(isPresampler, isL1, isStripCoreCell, isL2, isL3, iflag);
329  } // isMissing
330  if (isMasked) {
331  maskedHelper(isPresampler, isL1, isStripCoreCell, isL2, isL3, iflag);
332  } // isMasked
333  if (isAffected) {
334  affectedHelper(isPresampler, isL1, isL2, isL3, iflag);
335  } // is affected
336 
337  maskIflagIf(iflag, xAOD::EgammaParameters::SporadicNoiseLowQEdge, isSporadicNoise);
338  maskIflagIf(iflag, xAOD::EgammaParameters::HighQEdge, isHighQ);
339  }
340  } // end loop over LAr cells
341 
342  // Set LArQCleaning bit
343  double egammaLArQCleaning = 0;
344  if (totE != 0) {
345  egammaLArQCleaning = badE / totE;
346  }
347  maskIflagIf(
348  iflag,
350  egammaLArQCleaning > m_LArQCut);
351 
352  // Set HighRcell bit//
353  double ratioCell = 0;
354  if (totE != 0) {
355  ratioCell = energyCellMax / totE;
356  }
357  maskIflagIf(
358  iflag,
360  ratioCell > m_RcellCut);
361  } // close if found central cell
362 
363  // Check the HV components
364  float deta = 0;
365  float dphi = 0;
366 
367  // Get affected info for this event
369  const CaloAffectedRegionInfoVec* affCont = *affHdl;
370  if (!affCont) {
371  ATH_MSG_WARNING("Do not have affected regions info, is this expected ?");
372  }
373 
374  //--------------> PRE SAMPLER
375  deta = 0.5 * 0.025 * etaSize;
376  dphi = 0.5 * 0.025 * phiSize;
377 
378  bool isNonNominalHVPS = chainIsAffected(
380  cluster,
381  affCont,
382  deta,
383  dphi,
384  1,
387  maskIflagIf(iflag, xAOD::EgammaParameters::NonNominalHVPS, isNonNominalHVPS);
388  bool isDeadHVPS = chainIsAffected(
390  cluster,
391  affCont,
392  deta,
393  dphi,
394  2,
397  maskIflagIf(iflag, xAOD::EgammaParameters::DeadHVPS, isDeadHVPS);
398 
399  //---------------> SAMPLING 2 : CLUSTER CORE
400  deta = 0.5 * 0.025 * 3.;
401  dphi = 0.5 * 0.025 * 3.;
402  bool isDeadHVS2Core = chainIsAffected(
404  cluster,
405  affCont,
406  deta,
407  dphi,
408  2,
411  maskIflagIf(iflag, xAOD::EgammaParameters::DeadHVS1S2S3Core, isDeadHVS2Core);
412 
413  //----------------> SAMPLINGS 1,2,3 : CLUSTER EDGE
414  deta = 0.5 * 0.025 * etaSize;
415  dphi = 0.5 * 0.025 * phiSize;
416 
417  bool isNonNominalHVS1S2S3 = chainIsAffected(
419  cluster,
420  affCont,
421  deta,
422  dphi,
423  1,
430  maskIflagIf(iflag, xAOD::EgammaParameters::NonNominalHVS1S2S3, isNonNominalHVS1S2S3);
431 
432  bool isDeadHVS1S2S3Edge = chainIsAffected(
434  cluster,
435  affCont,
436  deta,
437  dphi,
438  2,
445  maskIflagIf(iflag, xAOD::EgammaParameters::DeadHVS1S2S3Edge, isDeadHVS1S2S3Edge);
446 
447  eg.setOQ(iflag);
448  ATH_MSG_DEBUG("Executing egammaOQFlagsBuilder::execute");
449  return StatusCode::SUCCESS;
450 }

◆ 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

◆ finalize()

StatusCode egammaOQFlagsBuilder::finalize ( )

finalize method

Definition at line 197 of file egammaOQFlagsBuilder.cxx.

198 {
199  return StatusCode::SUCCESS;
200 }

◆ initialize()

StatusCode egammaOQFlagsBuilder::initialize ( )

initialize method

Definition at line 182 of file egammaOQFlagsBuilder.cxx.

183 {
185  ATH_CHECK(m_bcContKey.initialize());
187 
188  // Get CaloAffectedTool
189  ATH_CHECK(m_affectedTool.retrieve());
190  ATH_CHECK(detStore()->retrieve(m_calocellId, "CaloCell_ID"));
192 
193  return StatusCode::SUCCESS;
194 }

◆ 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.

◆ interfaceID()

const InterfaceID & IegammaOQFlagsBuilder::interfaceID ( )
inlinestaticinherited

AlgTool interface methods.

Definition at line 43 of file IegammaOQFlagsBuilder.h.

44 {
45  return IID_IegammaOQFlagsBuilder;
46 }

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

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

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ 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();
383  PBASE::renounce (h);
384  }

◆ 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  {
365  handlesArray.renounce();
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 DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ 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) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_affectedTool

ToolHandle<ICaloAffectedTool> egammaOQFlagsBuilder::m_affectedTool
private
Initial value:
{ this,
"affectedTool",
"CaloAffectedTool",
"CaloAffectedTool" }

Definition at line 85 of file egammaOQFlagsBuilder.h.

◆ m_affKey

SG::ReadCondHandleKey<CaloAffectedRegionInfoVec> egammaOQFlagsBuilder::m_affKey
private
Initial value:
{
this,
"LArAffectedRegionKey",
"LArAffectedRegionInfo",
"SG key for affected regions cond object"
}

Definition at line 78 of file egammaOQFlagsBuilder.h.

◆ m_bcContKey

SG::ReadCondHandleKey<LArBadChannelCont> egammaOQFlagsBuilder::m_bcContKey
private
Initial value:
{
this,
"LArBadChannelKey",
"LArBadChannel",
"Key of the LArBadChannelCont CDO"
}

Handle to bad-channel CDO.

Definition at line 71 of file egammaOQFlagsBuilder.h.

◆ m_calocellId

const CaloCell_ID* egammaOQFlagsBuilder::m_calocellId
private

Definition at line 91 of file egammaOQFlagsBuilder.h.

◆ m_cellsKey

SG::ReadHandleKey<CaloCellContainer> egammaOQFlagsBuilder::m_cellsKey
private
Initial value:
{
this,
"CellsName",
"AllCalo",
"Names of container which contain cells"
}

Definition at line 93 of file egammaOQFlagsBuilder.h.

◆ 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_emHelper

const LArEM_ID* egammaOQFlagsBuilder::m_emHelper
private

Definition at line 90 of file egammaOQFlagsBuilder.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_LArQCut

Gaudi::Property<double> egammaOQFlagsBuilder::m_LArQCut { this, "LArQCut", 0.8 }
private

Definition at line 103 of file egammaOQFlagsBuilder.h.

◆ m_QCellCut

Gaudi::Property<double> egammaOQFlagsBuilder::m_QCellCut { this, "QCellCut", 4000. }
private

Definition at line 100 of file egammaOQFlagsBuilder.h.

◆ m_QCellHECCut

Gaudi::Property<double> egammaOQFlagsBuilder::m_QCellHECCut { this, "QCellHECCut", 60000. }
private

Definition at line 101 of file egammaOQFlagsBuilder.h.

◆ m_QCellSporCut

Gaudi::Property<double> egammaOQFlagsBuilder::m_QCellSporCut { this, "QCellSporCut", 4000. }
private

Definition at line 102 of file egammaOQFlagsBuilder.h.

◆ m_RcellCut

Gaudi::Property<double> egammaOQFlagsBuilder::m_RcellCut { this, "RcellCut", 0.8 }
private

Definition at line 106 of file egammaOQFlagsBuilder.h.

◆ m_TCut

Gaudi::Property<double> egammaOQFlagsBuilder::m_TCut { this, "TCut", 10.0 }
private

Definition at line 104 of file egammaOQFlagsBuilder.h.

◆ m_TCutVsE

Gaudi::Property<double> egammaOQFlagsBuilder::m_TCutVsE { this, "TCutVsE", 2.0 }
private

Definition at line 105 of file egammaOQFlagsBuilder.h.

◆ 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:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
LArBadChannel::shortProblem
bool shortProblem() const
Definition: LArBadChannel.h:111
CaloAffectedRegionInfoVec
std::vector< CaloAffectedRegionInfo > CaloAffectedRegionInfoVec
Definition: CaloAffectedRegionInfoVec.h:11
xAOD::CaloCluster_v1::time
flt_t time() const
Access cluster time.
LArBadChannel::lowNoiseHG
bool lowNoiseHG() const
Definition: LArBadChannel.h:114
egammaOQFlagsBuilder::m_affKey
SG::ReadCondHandleKey< CaloAffectedRegionInfoVec > m_affKey
Definition: egammaOQFlagsBuilder.h:78
xAOD::CaloCluster_v1::cell_begin
const_cell_iterator cell_begin() const
Iterator of the underlying CaloClusterCellLink (const version)
Definition: CaloCluster_v1.h:812
constants.EMB1
int EMB1
Definition: Calorimeter/CaloClusterCorrection/python/constants.py:53
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
LArBadChannel::deadCalib
bool deadCalib() const
Definition: LArBadChannel.h:108
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
xAOD::EgammaParameters::LArQCleaning
@ LArQCleaning
Cleaning based on LArQ factor--> sum[ E(Q>4000)/E].
Definition: EgammaDefs.h:105
LArBadChannel::unstableNoiseLG
bool unstableNoiseLG() const
Definition: LArBadChannel.h:122
ParticleTest.eg
eg
Definition: ParticleTest.py:29
egammaOQFlagsBuilder::m_affectedTool
ToolHandle< ICaloAffectedTool > m_affectedTool
Definition: egammaOQFlagsBuilder.h:85
LArBadChannel::lowNoiseLG
bool lowNoiseLG() const
Definition: LArBadChannel.h:120
xAOD::EgammaParameters::HighQEdge
@ HighQEdge
High quality factor cell in the edge of the cluster.
Definition: EgammaDefs.h:89
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
xAOD::EgammaParameters::HECHighQ
@ HECHighQ
High quality factor cell in the HEC.
Definition: EgammaDefs.h:101
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
LArBadXCont
Conditions-Data class holding LAr Bad Channel or Bad Feb information.
Definition: LArBadChannelCont.h:28
egammaOQFlagsBuilder::m_LArQCut
Gaudi::Property< double > m_LArQCut
Definition: egammaOQFlagsBuilder.h:103
LArBadChannel::sporadicBurstNoise
bool sporadicBurstNoise() const
Definition: LArBadChannel.h:126
egammaOQFlagsBuilder::m_QCellSporCut
Gaudi::Property< double > m_QCellSporCut
Definition: egammaOQFlagsBuilder.h:102
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
egammaOQFlagsBuilder::m_calocellId
const CaloCell_ID * m_calocellId
Definition: egammaOQFlagsBuilder.h:91
egammaOQFlagsBuilder::m_bcContKey
SG::ReadCondHandleKey< LArBadChannelCont > m_bcContKey
Handle to bad-channel CDO.
Definition: egammaOQFlagsBuilder.h:71
xAOD::EgammaParameters::NonNominalHVPS
@ NonNominalHVPS
Non Nominal High Voltage in the EM Presampler.
Definition: EgammaDefs.h:55
LArBadChannel::almostDead
bool almostDead() const
Definition: LArBadChannel.h:110
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
LArBadXCont::offlineStatus
LArBC_t offlineStatus(const Identifier id) const
Query the status of a particular channel by offline ID This is the main client access method.
egammaOQFlagsBuilder::m_emHelper
const LArEM_ID * m_emHelper
Definition: egammaOQFlagsBuilder.h:90
egammaOQFlagsBuilder::m_QCellHECCut
Gaudi::Property< double > m_QCellHECCut
Definition: egammaOQFlagsBuilder.h:101
egammaOQFlagsBuilder::m_RcellCut
Gaudi::Property< double > m_RcellCut
Definition: egammaOQFlagsBuilder.h:106
xAOD::EgammaParameters::DeadHVPS
@ DeadHVPS
Dead High Voltage in the EM Presampler.
Definition: EgammaDefs.h:48
AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
LArBadChannel::unstableNoiseHG
bool unstableNoiseHG() const
Definition: LArBadChannel.h:116
egammaOQFlagsBuilder::m_TCut
Gaudi::Property< double > m_TCut
Definition: egammaOQFlagsBuilder.h:104
xAOD::EgammaHelpers::isBarrel
bool isBarrel(const xAOD::Egamma *eg)
return true if the cluster is in the barrel
Definition: EgammaxAODHelpers.cxx:34
xAOD::CaloCluster_v1
Description of a calorimeter cluster.
Definition: CaloCluster_v1.h:59
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
constants.EMB2
int EMB2
Definition: Calorimeter/CaloClusterCorrection/python/constants.py:54
xAOD::CaloCluster_v1::getClusterEtaSize
unsigned int getClusterEtaSize() const
Get eta size from cluster size.
Definition: CaloCluster_v1.cxx:823
xAOD::CaloCluster_v1::eta
virtual double eta() const
The pseudorapidity ( ) of the particle.
Definition: CaloCluster_v1.cxx:251
CaloSampling::CaloSample
CaloSample
Definition: Calorimeter/CaloGeoHelpers/CaloGeoHelpers/CaloSampling.h:22
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
LArBadChannel::unstableNoiseMG
bool unstableNoiseMG() const
Definition: LArBadChannel.h:119
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
LArBadChannel
Definition: LArBadChannel.h:10
xAOD::EgammaParameters::NonNominalHVS1S2S3
@ NonNominalHVS1S2S3
Non Nominal High Voltage in the EM strips, middle and back.
Definition: EgammaDefs.h:57
test_pyathena.parent
parent
Definition: test_pyathena.py:15
xAOD::CaloCluster_v1::size
size_t size() const
size method (forwarded from CaloClusterCellLink obj)
Definition: CaloCluster_v1.cxx:996
constants.EME1
int EME1
Definition: Calorimeter/CaloClusterCorrection/python/constants.py:55
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
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::CaloCluster_v1::getClusterPhiSize
unsigned int getClusterPhiSize() const
Get phi size from cluster size.
Definition: CaloCluster_v1.cxx:845
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
egammaOQFlagsBuilder::m_cellsKey
SG::ReadHandleKey< CaloCellContainer > m_cellsKey
Definition: egammaOQFlagsBuilder.h:93
LArBadChannel::lowNoiseMG
bool lowNoiseMG() const
Definition: LArBadChannel.h:117
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
CaloCell_ID_FCS::EME3
@ EME3
Definition: FastCaloSim_CaloCell_ID.h:26
LArBadChannel::peculiarCalibrationLine
bool peculiarCalibrationLine() const
Definition: LArBadChannel.h:124
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
xAOD::EgammaParameters::DeadHVS1S2S3Edge
@ DeadHVS1S2S3Edge
Dead High Voltage in the EM strips, middle and back affecting the edge of the cluster.
Definition: EgammaDefs.h:52
xAOD::EgammaParameters::SporadicNoiseLowQEdge
@ SporadicNoiseLowQEdge
Sporadic noisy cell in the edge of the cluster.
Definition: EgammaDefs.h:85
CaloCell_ID_FCS::HEC0
@ HEC0
Definition: FastCaloSim_CaloCell_ID.h:27
xAOD::EgammaParameters::HighRcell
@ HighRcell
High R_cell -—> Energy of the most energetic cell / total energy of the cluster.
Definition: EgammaDefs.h:111
a
TList * a
Definition: liststreamerinfos.cxx:10
h
LArBadChannel::unstable
bool unstable() const
Definition: LArBadChannel.h:112
CaloCell
Data object for each calorimeter readout cell.
Definition: CaloCell.h:57
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
CaloCell_ID_FCS::PreSamplerE
@ PreSamplerE
Definition: FastCaloSim_CaloCell_ID.h:23
CaloCell_ID_FCS::PreSamplerB
@ PreSamplerB
Definition: FastCaloSim_CaloCell_ID.h:19
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
xAOD::CaloCluster_v1::cell_end
const_cell_iterator cell_end() const
Definition: CaloCluster_v1.h:813
LArBadChannel::distorted
bool distorted() const
Definition: LArBadChannel.h:113
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
beamspotman.qual
qual
Definition: beamspotman.py:481
xAOD::EgammaParameters::OutTime
@ OutTime
Out of time cell.
Definition: EgammaDefs.h:103
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
CaloCell_ID_FCS::HEC3
@ HEC3
Definition: FastCaloSim_CaloCell_ID.h:30
CaloCell_ID_FCS::EMB3
@ EMB3
Definition: FastCaloSim_CaloCell_ID.h:22
GeV
#define GeV
Definition: CaloTransverseBalanceVecMon.cxx:30
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
xAOD::EgammaParameters::DeadHVS1S2S3Core
@ DeadHVS1S2S3Core
Dead High Voltage in the EM strips, middle and back affecting the core of the cluster.
Definition: EgammaDefs.h:50
xAOD::CaloCluster_v1::e
virtual double e() const
The total energy of the particle.
Definition: CaloCluster_v1.cxx:265
constants.EME2
int EME2
Definition: Calorimeter/CaloClusterCorrection/python/constants.py:56
fitman.k
k
Definition: fitman.py:528
egammaOQFlagsBuilder::m_QCellCut
Gaudi::Property< double > m_QCellCut
Definition: egammaOQFlagsBuilder.h:100
egammaOQFlagsBuilder::m_TCutVsE
Gaudi::Property< double > m_TCutVsE
Definition: egammaOQFlagsBuilder.h:105