ATLAS Offline Software
Classes | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
LArNoisyROTool Class Reference

#include <LArNoisyROTool.h>

Inheritance diagram for LArNoisyROTool:
Collaboration diagram for LArNoisyROTool:

Classes

class  FEBEvtStat
 

Public Member Functions

 LArNoisyROTool (const std::string &type, const std::string &name, const IInterface *parent)
 Constructor with parameters: More...
 
virtual ~LArNoisyROTool ()
 Destructor: More...
 
virtual StatusCode initialize ()
 
virtual StatusCode finalize ()
 
virtual std::unique_ptr< LArNoisyROSummaryprocess (const CaloCellContainer *, const std::set< unsigned int > *, const std::vector< HWIdentifier > *) const
 
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 ()
 

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 std::unordered_map< unsigned int, FEBEvtStatFEBEvtStatMap
 
typedef std::unordered_map< unsigned int, FEBEvtStat >::iterator FEBEvtStatMapIt
 
typedef std::unordered_map< unsigned int, FEBEvtStat >::const_iterator FEBEvtStatMapCstIt
 
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

 LArNoisyROTool ()
 Default constructor: More...
 
size_t partitionNumber (const HWIdentifier) const
 
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

std::unordered_map< unsigned int, unsigned int > m_mapPSFEB
 
const CaloCell_IDm_calo_id
 
const LArOnlineIDm_onlineID
 
SG::ReadCondHandleKey< LArOnOffIdMappingm_cablingKey {this, "CablingKey", "LArOnOffIdMap", "key to read OnOff mapping"}
 
unsigned int m_CellQualityCut
 
bool m_ignore_masked_cells
 
bool m_ignore_front_innerwheel_cells
 
unsigned int m_BadChanPerPA = 0U
 
unsigned int m_BadChanPerFEB
 
unsigned int m_MinBadFEB
 
unsigned int m_SaturatedCellQualityCut
 
float m_SaturatedCellEnergyTightCut
 
unsigned int m_SaturatedCellTightCut
 
unsigned int m_SaturatedCellTightCutEvents = 0U
 
unsigned int m_MNBLooseCut
 
unsigned int m_MNBTightCut
 
std::vector< unsigned int > m_MNBTight_PsVetoCut
 
std::array< uint8_t, 4 > m_partitionMask
 
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

Definition at line 35 of file LArNoisyROTool.h.

Member Typedef Documentation

◆ FEBEvtStatMap

typedef std::unordered_map<unsigned int, FEBEvtStat> LArNoisyROTool::FEBEvtStatMap
private

Definition at line 108 of file LArNoisyROTool.h.

◆ FEBEvtStatMapCstIt

typedef std::unordered_map<unsigned int, FEBEvtStat>::const_iterator LArNoisyROTool::FEBEvtStatMapCstIt
private

Definition at line 110 of file LArNoisyROTool.h.

◆ FEBEvtStatMapIt

typedef std::unordered_map<unsigned int, FEBEvtStat>::iterator LArNoisyROTool::FEBEvtStatMapIt
private

Definition at line 109 of file LArNoisyROTool.h.

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ LArNoisyROTool() [1/2]

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

Constructor with parameters:

Definition at line 19 of file LArNoisyROTool.cxx.

21  :
23  m_calo_id(nullptr), m_onlineID(nullptr),
25 {
26  declareInterface<ILArNoisyROTool >(this);
27  declareProperty( "BadChanPerFEB", m_BadChanPerFEB=30 );
28  declareProperty( "CellQualityCut", m_CellQualityCut=4000 );
29  declareProperty( "IgnoreMaskedCells", m_ignore_masked_cells=false );
30  declareProperty( "IgnoreFrontInnerWheelCells", m_ignore_front_innerwheel_cells=true );
31  declareProperty( "BadFEBCut", m_MinBadFEB=3 );
32 
33  declareProperty( "MNBLooseCut",m_MNBLooseCut=5,"Number of cells above CellQualityCut");
34  declareProperty( "MNBTightCut",m_MNBTightCut=17,"Number of cells above CellQualityCut");
35  declareProperty( "MNBTight_PsVetoCut",m_MNBTight_PsVetoCut={13,3},"Number of cells above CellQualityCut");
36  declareProperty( "SaturatedCellQualityCut", m_SaturatedCellQualityCut=65535);
37  declareProperty( "SaturatedCellEnergyTightCut", m_SaturatedCellEnergyTightCut=1000.);
38  declareProperty( "SaturatedCellTightCut", m_SaturatedCellTightCut=20);
39 }

◆ ~LArNoisyROTool()

LArNoisyROTool::~LArNoisyROTool ( )
virtualdefault

Destructor:

◆ LArNoisyROTool() [2/2]

LArNoisyROTool::LArNoisyROTool ( )
private

Default constructor:

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; }

◆ 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 LArNoisyROTool::finalize ( )
virtual

Definition at line 311 of file LArNoisyROTool.cxx.

311  {
312 
313  return StatusCode::SUCCESS;
314 }

◆ initialize()

StatusCode LArNoisyROTool::initialize ( )
virtual

Definition at line 48 of file LArNoisyROTool.cxx.

48  {
49 
51  ATH_MSG_FATAL( "Configuration problem: LArNoisyROTool assumes that the QFactor cut to declare a channel noisy is softer than the QFactor cut to declare the quality saturated !" );
52  return StatusCode::FAILURE;
53  }
54 
56  ATH_MSG_FATAL( "Configuration problem: LArNoisyROTool assumes that MNBLooseCut is smaller than MNBTightCut" );
57  return StatusCode::FAILURE;
58  }
59 
60  ATH_CHECK(detStore()->retrieve(m_calo_id,"CaloCell_ID"));
61  ATH_CHECK(detStore()->retrieve(m_onlineID,"LArOnlineID"));
63 
64  // Fill the map between any EMB FEB and the same FT PS FEB
65  // Filled only for EMB so far
66  for (std::vector<HWIdentifier>::const_iterator allFeb = m_onlineID->feb_begin();
67  allFeb != m_onlineID->feb_end(); ++allFeb) {
68 
69  HWIdentifier febid = HWIdentifier(*allFeb);
70  int FEBIndex = febid.get_identifier32().get_compact();
71  int FEBIndex_PS = 0;
72  int barrel_ec = m_onlineID->barrel_ec(febid);
73  if (barrel_ec == 0){
74  int pos_neg = m_onlineID->pos_neg(febid);
75  int ft = m_onlineID->feedthrough(febid);
76  FEBIndex_PS = (m_onlineID->feb_Id(0,pos_neg,ft,1)).get_identifier32().get_compact();
77  }
78  m_mapPSFEB[FEBIndex] = FEBIndex_PS;
79  }
80 
81  return StatusCode::SUCCESS;
82 }

◆ 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()

static const InterfaceID& LArNoisyROTool::interfaceID ( )
static

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

◆ partitionNumber()

size_t LArNoisyROTool::partitionNumber ( const HWIdentifier  hwid) const
inlineprivate

Definition at line 167 of file LArNoisyROTool.h.

167  {
168 
169  int pn=m_onlineID->pos_neg(hwid);
170  if (m_onlineID->isEMECchannel(hwid)) {
171  if (pn)
172  return 0; //positive EMECA side
173  else
174  return 3; //negative EMECC side
175  }
176  if (m_onlineID->isEMBchannel(hwid)) {
177  if (pn)
178  return 1; //positive EMBA side
179  else
180  return 2; //negative EMBC side
181  }
182 
183  return 4;//Anything else
184 }

◆ process()

std::unique_ptr< LArNoisyROSummary > LArNoisyROTool::process ( const CaloCellContainer cellContainer,
const std::set< unsigned int > *  knownBadFEBs,
const std::vector< HWIdentifier > *  knownMNBFEBs 
) const
virtual

Implements ILArNoisyROTool.

Definition at line 85 of file LArNoisyROTool.cxx.

85  {
86 
87  std::unique_ptr<LArNoisyROSummary> noisyRO(new LArNoisyROSummary);
88 
89  if(!cellContainer) return noisyRO;
90 
92  const LArOnOffIdMapping* cabling=*larCablingHdl;
93 
94 
95  FEBEvtStatMap FEBStats; //counter per FEB
96 
97  unsigned int NsaturatedTightCutBarrelA = 0;
98  unsigned int NsaturatedTightCutBarrelC = 0;
99  unsigned int NsaturatedTightCutEMECA = 0;
100  unsigned int NsaturatedTightCutEMECC = 0;
101 
102 
103  CaloCellContainer::const_iterator cellItr = cellContainer->begin();
104  CaloCellContainer::const_iterator cellItrEnd = cellContainer->end();
105  for ( ; cellItr != cellItrEnd; ++cellItr )
106  {
107  const CaloCell* cell = (*cellItr);
108  if (!cell) continue;
109 
110  // only cells with a bad enough Quality Factor
111  if ( cell->quality() < m_CellQualityCut ) continue;
112 
113  // cells with zero energy have been masked by previous algorithms
114  // they should not matter for physics so don't consider them
115  if ( m_ignore_masked_cells && std::abs(cell->e()) < 0.1 ) continue; //Fixme: use provenance
116 
117  Identifier id = cell->ID();
118  if (m_ignore_front_innerwheel_cells && m_calo_id->is_em_endcap_inner(id) && m_calo_id->sampling(id) == 1) continue; // Front inner wheel cells are ignored
119 
120  // saturated Qfactor ? Tight cuts.
121  if ( cell->quality()>=m_SaturatedCellQualityCut &&
122  std::abs(cell->e()) > m_SaturatedCellEnergyTightCut )
123  {
124  bool sideA = cell->eta() > 0.;
125  if ( m_calo_id->is_em_barrel(id) )
126  {
127  if ( sideA ) { NsaturatedTightCutBarrelA++; }
128  else { NsaturatedTightCutBarrelC++; }
129  }
130  else if ( m_calo_id->is_em_endcap(id) )
131  {
132  if ( sideA ) { NsaturatedTightCutEMECA++; }
133  else { NsaturatedTightCutEMECC++; }
134  }
135  }
136 
137 
138  // only LAr EM for bad FEBs
139  if ( m_calo_id->is_em(id) )
140  {
141  // get FEB ID and channel number
142  HWIdentifier hwid = cabling->createSignalChannelID(id);
143  HWIdentifier febid = m_onlineID->feb_Id(hwid);
144  unsigned int FEBindex = febid.get_identifier32().get_compact();
145  unsigned int channel = m_onlineID->channel(hwid);
146  FEBStats[FEBindex].addBadChannel(channel);
147  }
148  }
149 
150  // Store the Saturated flag per partition
151  uint8_t SatTightPartitions = 0;
152  if ( NsaturatedTightCutBarrelA >= m_SaturatedCellTightCut ) SatTightPartitions |= LArNoisyROSummary::EMBAMask;
153  if ( NsaturatedTightCutBarrelC >= m_SaturatedCellTightCut ) SatTightPartitions |= LArNoisyROSummary::EMBCMask;
154  if ( NsaturatedTightCutEMECA >= m_SaturatedCellTightCut ) SatTightPartitions |= LArNoisyROSummary::EMECAMask;
155  if ( NsaturatedTightCutEMECC >= m_SaturatedCellTightCut ) SatTightPartitions |= LArNoisyROSummary::EMECCMask;
156  bool badSaturatedTightCut = (SatTightPartitions != 0);
157  if ( badSaturatedTightCut ) noisyRO-> SetSatTightFlaggedPartitions(SatTightPartitions);
158 
159  // loop on all FEBs and check whether FEB can be declared as bad for the different type of flags:
160  // regular noise burst, weighted noise burst, MNB tight and loose
161  for ( FEBEvtStatMapCstIt it = FEBStats.begin(); it != FEBStats.end(); ++it ) {
162  ATH_MSG_VERBOSE(" candidate FEB " << it->first << " with " << it->second.badChannels() << " bad channels");
163  if ( it->second.badChannels() > m_BadChanPerFEB ) {
164  noisyRO->add_noisy_feb(HWIdentifier(it->first));
165  }
166 
167  // Loose MNBs
168  if ( it->second.badChannels() > m_MNBLooseCut ){
169  noisyRO->add_MNBLoose_feb(HWIdentifier(it->first));
170  ATH_MSG_DEBUG("Loose bad FEB " << it->first << " " << m_onlineID->channel_name(HWIdentifier(it->first)) << " with " << it->second.badChannels() << " bad channels");
171  // Tight_PsVeto MNBs
172  if ( it->second.badChannels() > m_MNBTight_PsVetoCut[0] ){
173  unsigned int associatedPSFEB = m_mapPSFEB.find(it->first)->second;
174  if (associatedPSFEB != 0){ // Check if a PS FEB is associated (TRUE only for EMB FEBs)
175  if (FEBStats.count(associatedPSFEB) == 0) noisyRO->add_MNBTight_PsVeto_feb(HWIdentifier(it->first));
176  else if (FEBStats[associatedPSFEB].badChannels() < m_MNBTight_PsVetoCut[1]) noisyRO->add_MNBTight_PsVeto_feb(HWIdentifier(it->first));
177  }
178  }
179  // Tight MNBs
180  if ( it->second.badChannels() > m_MNBTightCut ){
181  noisyRO->add_MNBTight_feb(HWIdentifier(it->first));
182  }
183  }
184 
185 
186 // // Noisy preamp removed as no used currently
187 // // Kept here just in case we may want to revive it
188 // const unsigned int* PAcounters = it->second.PAcounters();
189 // for ( size_t i = 0; i < 32; i++ ) {
190 // if ( PAcounters[i] > m_BadChanPerPA ) {
191 // uint64_t PAid = static_cast<uint64_t>(1000000000)*static_cast<uint64_t>(i)+static_cast<uint64_t>(it->first);
192 // ATH_MSG_DEBUG(" bad preamp " << i << " in FEB " << it->first << " ID " << PAid);
193 // noisyRO->add_noisy_preamp(HWIdentifier(it->first),4*i);
194 // if (m_printSummary) m_badPA_counters[PAid]++;
195 // }
196 // }
197 
198  }//end loop over m_FEBats
199 
200 
201  // Count noisy FEB per partition EMEC-EMB - Simple and weighted quantities
202  unsigned int NBadFEBEMECA = 0; unsigned int NBadFEBEMECA_W = 0;
203  unsigned int NBadFEBEMECC = 0; unsigned int NBadFEBEMECC_W = 0;
204  unsigned int NBadFEBEMBA = 0; unsigned int NBadFEBEMBA_W = 0;
205  unsigned int NBadFEBEMBC = 0; unsigned int NBadFEBEMBC_W = 0;
206 
207  const std::vector<HWIdentifier>& badfebs = noisyRO->get_noisy_febs();
208 
209  //for ( std::vector<HWIdentifier>::const_iterator febit = badfebs.begin();
210  // febit != badfebs.end(); febit++ )
211  for (const HWIdentifier& febid : badfebs)
212  {
213  // first channel of FEB, as safety since FEBid seem to be the Id of the
214  // first channel (no guarantee?)
215  HWIdentifier chanID = m_onlineID->channel_Id(febid,0);
216 
217  int weight = 1;
218  // If the FEB is known to be subject to noise burst (list defiend as property)
219  // give a weight 2
220  const unsigned int int_id = febid.get_identifier32().get_compact();
221  if (knownBadFEBs->find(int_id)!=knownBadFEBs->end()) weight=2;
222 
223  if ( m_onlineID->isEMBchannel(chanID) )
224  {
225  if ( m_onlineID->pos_neg(chanID) == 1 ){
226  NBadFEBEMBA_W = NBadFEBEMBA_W + weight;
227  NBadFEBEMBA++;
228  }
229  else{
230  NBadFEBEMBC_W = NBadFEBEMBC_W + weight;
231  NBadFEBEMBC++;
232  }
233  }
234  else if ( m_onlineID->isEMECchannel(chanID) )
235  {
236  if ( m_onlineID->pos_neg(chanID) == 1 ){
237  NBadFEBEMECA_W = NBadFEBEMECA_W + weight;
238  NBadFEBEMECA++;
239  }
240  else{
241  NBadFEBEMECC_W = NBadFEBEMECC_W + weight;
242  NBadFEBEMECC++;
243  }
244  }
245  }
246 
247  uint8_t BadFEBPartitions = 0;
248  if ( NBadFEBEMBA > m_MinBadFEB ) BadFEBPartitions |= LArNoisyROSummary::EMBAMask;
249  if ( NBadFEBEMBC > m_MinBadFEB ) BadFEBPartitions |= LArNoisyROSummary::EMBCMask;
250  if ( NBadFEBEMECA > m_MinBadFEB ) BadFEBPartitions |= LArNoisyROSummary::EMECAMask;
251  if ( NBadFEBEMECC > m_MinBadFEB ) BadFEBPartitions |= LArNoisyROSummary::EMECCMask;
252  bool badFEBFlag = (BadFEBPartitions != 0);
253  if ( badFEBFlag ) noisyRO-> SetBadFEBFlaggedPartitions(BadFEBPartitions);
254 
255  uint8_t BadFEBPartitions_W = 0;
256  if ( NBadFEBEMBA_W > m_MinBadFEB ) BadFEBPartitions_W |= LArNoisyROSummary::EMBAMask;
257  if ( NBadFEBEMBC_W > m_MinBadFEB ) BadFEBPartitions_W |= LArNoisyROSummary::EMBCMask;
258  if ( NBadFEBEMECA_W > m_MinBadFEB ) BadFEBPartitions_W |= LArNoisyROSummary::EMECAMask;
259  if ( NBadFEBEMECC_W > m_MinBadFEB ) BadFEBPartitions_W |= LArNoisyROSummary::EMECCMask;
260  bool badFEBFlag_W = (BadFEBPartitions_W != 0);
261  if ( badFEBFlag_W ) noisyRO-> SetBadFEB_WFlaggedPartitions(BadFEBPartitions_W);
262 
263 
264 
265  //Check for Mini Noise Bursts:
266  uint8_t MNBTightPartition=0;
267  uint8_t MNBTight_PsVetoPartition=0;
268  uint8_t MNBLoosePartition=0;
269 
270  std::array<unsigned,5> nTightMNBFEBSperPartition({{0,0,0,0,0}});
271  std::array<unsigned,5> nTight_PsVetoMNBFEBSperPartition({{0,0,0,0,0}});
272  std::array<unsigned,5> nLooseMNBFEBSperPartition({{0,0,0,0,0}});
273  for (HWIdentifier febid: *knownMNBFEBs) { //Loop over known MNB FEBs
274  //FEBEvtStatMapCstIt statIt=FEBStats.find(febid.get_identifier32().get_compact());
275  FEBEvtStatMapCstIt statIt=FEBStats.find(febid.get_identifier32().get_compact());
276  if (statIt!=FEBStats.end()) {
277  if (statIt->second.badChannels()>=m_MNBLooseCut) {
278  (nLooseMNBFEBSperPartition[partitionNumber(febid)])++;
279  // Tight_PsVeto MNBs
280  if ( statIt->second.badChannels() > m_MNBTight_PsVetoCut[0] ){
281  unsigned int associatedPSFEB = m_mapPSFEB.find(statIt->first)->second;
282  if (associatedPSFEB != 0){
283  if (FEBStats.count(associatedPSFEB) == 0) (nTight_PsVetoMNBFEBSperPartition[partitionNumber(febid)])++;
284  else if (FEBStats[associatedPSFEB].badChannels() < m_MNBTight_PsVetoCut[1]) (nTight_PsVetoMNBFEBSperPartition[partitionNumber(febid)])++;
285  }
286  }
287  // Tight MNBs
288  if (statIt->second.badChannels()>=m_MNBTightCut)
289  (nTightMNBFEBSperPartition[partitionNumber(febid)])++;
290  }
291  }//End FEB in list of bad-Q FEBs
292  }//end loop over known MNB Febs
293 
294 
295  for (unsigned iP=0;iP<4;++iP) {
296  ATH_MSG_DEBUG( "Partition " << iP << ": Found " << nLooseMNBFEBSperPartition[iP] << " MNB FEBs with more than " << m_MNBLooseCut << " bad-Q channels" );
297  ATH_MSG_DEBUG( "Partition " << iP << ": Found " << nTightMNBFEBSperPartition[iP] << " MNB FEBs with more than " << m_MNBTightCut << " bad-Q channels" );
298  if (nLooseMNBFEBSperPartition[iP]>0) MNBLoosePartition |= m_partitionMask[iP];
299  if (nTightMNBFEBSperPartition[iP]>0) MNBTightPartition |= m_partitionMask[iP];
300  if (nTight_PsVetoMNBFEBSperPartition[iP]>0) MNBTight_PsVetoPartition |= m_partitionMask[iP];
301  }// end loop over partitions
302 
303  noisyRO->SetMNBTightFlaggedPartitions(MNBTightPartition);
304  noisyRO->SetMNBTight_PsVetoFlaggedPartitions(MNBTight_PsVetoPartition);
305  noisyRO->SetMNBLooseFlaggedPartitions(MNBLoosePartition);
306 
307  return noisyRO;
308 }

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

unsigned int LArNoisyROTool::m_BadChanPerFEB
private

Definition at line 133 of file LArNoisyROTool.h.

◆ m_BadChanPerPA

unsigned int LArNoisyROTool::m_BadChanPerPA = 0U
private

Definition at line 130 of file LArNoisyROTool.h.

◆ m_cablingKey

SG::ReadCondHandleKey<LArOnOffIdMapping> LArNoisyROTool::m_cablingKey {this, "CablingKey", "LArOnOffIdMap", "key to read OnOff mapping"}
private

Definition at line 118 of file LArNoisyROTool.h.

◆ m_calo_id

const CaloCell_ID* LArNoisyROTool::m_calo_id
private

Definition at line 116 of file LArNoisyROTool.h.

◆ m_CellQualityCut

unsigned int LArNoisyROTool::m_CellQualityCut
private

Definition at line 121 of file LArNoisyROTool.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_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_ignore_front_innerwheel_cells

bool LArNoisyROTool::m_ignore_front_innerwheel_cells
private

Definition at line 127 of file LArNoisyROTool.h.

◆ m_ignore_masked_cells

bool LArNoisyROTool::m_ignore_masked_cells
private

Definition at line 124 of file LArNoisyROTool.h.

◆ m_mapPSFEB

std::unordered_map<unsigned int,unsigned int> LArNoisyROTool::m_mapPSFEB
private

Definition at line 112 of file LArNoisyROTool.h.

◆ m_MinBadFEB

unsigned int LArNoisyROTool::m_MinBadFEB
private

Definition at line 136 of file LArNoisyROTool.h.

◆ m_MNBLooseCut

unsigned int LArNoisyROTool::m_MNBLooseCut
private

Definition at line 156 of file LArNoisyROTool.h.

◆ m_MNBTight_PsVetoCut

std::vector<unsigned int> LArNoisyROTool::m_MNBTight_PsVetoCut
private

Definition at line 158 of file LArNoisyROTool.h.

◆ m_MNBTightCut

unsigned int LArNoisyROTool::m_MNBTightCut
private

Definition at line 157 of file LArNoisyROTool.h.

◆ m_onlineID

const LArOnlineID* LArNoisyROTool::m_onlineID
private

Definition at line 117 of file LArNoisyROTool.h.

◆ m_partitionMask

std::array<uint8_t,4> LArNoisyROTool::m_partitionMask
private

Definition at line 160 of file LArNoisyROTool.h.

◆ m_SaturatedCellEnergyTightCut

float LArNoisyROTool::m_SaturatedCellEnergyTightCut
private

Definition at line 148 of file LArNoisyROTool.h.

◆ m_SaturatedCellQualityCut

unsigned int LArNoisyROTool::m_SaturatedCellQualityCut
private

Definition at line 145 of file LArNoisyROTool.h.

◆ m_SaturatedCellTightCut

unsigned int LArNoisyROTool::m_SaturatedCellTightCut
private

Definition at line 151 of file LArNoisyROTool.h.

◆ m_SaturatedCellTightCutEvents

unsigned int LArNoisyROTool::m_SaturatedCellTightCutEvents = 0U
private

Definition at line 154 of file LArNoisyROTool.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
LArNoisyROSummary::EMBAMask
@ EMBAMask
Definition: LArNoisyROSummary.h:32
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
PlotCalibFromCool.ft
ft
Definition: PlotCalibFromCool.py:329
LArNoisyROSummary::EMECCMask
@ EMECCMask
Definition: LArNoisyROSummary.h:31
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
LArNoisyROTool::m_SaturatedCellQualityCut
unsigned int m_SaturatedCellQualityCut
Definition: LArNoisyROTool.h:145
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:575
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
CaloCell_Base_ID::is_em_endcap
bool is_em_endcap(const Identifier id) const
test if the id belongs to the EM Endcap
LArNoisyROTool::partitionNumber
size_t partitionNumber(const HWIdentifier) const
Definition: LArNoisyROTool.h:167
ReadCellNoiseFromCool.cabling
cabling
Definition: ReadCellNoiseFromCool.py:154
skel.it
it
Definition: skel.GENtoEVGEN.py:423
LArNoisyROTool::m_BadChanPerFEB
unsigned int m_BadChanPerFEB
Definition: LArNoisyROTool.h:133
LArNoisyROTool::m_mapPSFEB
std::unordered_map< unsigned int, unsigned int > m_mapPSFEB
Definition: LArNoisyROTool.h:112
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
LArOnlineID_Base::feb_begin
id_iterator feb_begin() const
Returns an iterator pointing to a feb identifier collection.
Definition: LArOnlineID_Base.cxx:1910
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
LArNoisyROTool::m_ignore_front_innerwheel_cells
bool m_ignore_front_innerwheel_cells
Definition: LArNoisyROTool.h:127
HWIdentifier
Definition: HWIdentifier.h:13
LArOnlineID_Base::barrel_ec
int barrel_ec(const HWIdentifier id) const
Return the position barrel or endcap of a hardware cell identifier: barrel_ec = [0,...
Definition: LArOnlineID_Base.cxx:1942
LArNoisyROSummary::EMECAMask
@ EMECAMask
Definition: LArNoisyROSummary.h:31
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
dqt_zlumi_pandas.weight
int weight
Definition: dqt_zlumi_pandas.py:200
LArNoisyROTool::m_MinBadFEB
unsigned int m_MinBadFEB
Definition: LArNoisyROTool.h:136
LArNoisyROTool::m_ignore_masked_cells
bool m_ignore_masked_cells
Definition: LArNoisyROTool.h:124
python.ZdcRecConfig.pn
pn
Definition: ZdcRecConfig.py:357
CaloCell_Base_ID::is_em
bool is_em(const Identifier id) const
test if the id belongs to LArEM
LArOnlineID_Base::channel
int channel(const HWIdentifier id) const
Return the channel number of a hardware cell identifier channel = [0,127] in all FEB.
Definition: LArOnlineID_Base.cxx:1967
LArNoisyROTool::m_partitionMask
std::array< uint8_t, 4 > m_partitionMask
Definition: LArNoisyROTool.h:160
LArOnlineID::isEMECchannel
bool isEMECchannel(const HWIdentifier id) const override final
Definition: LArOnlineID.cxx:774
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Identifier32::get_compact
value_type get_compact(void) const
Get the compact id.
Definition: Identifier32.h:171
LArNoisyROTool::m_CellQualityCut
unsigned int m_CellQualityCut
Definition: LArNoisyROTool.h:121
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
CaloCell_Base_ID::sampling
int sampling(const Identifier id) const
LAr field values (NOT_VALID == invalid request)
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
LArNoisyROSummary::EMBCMask
@ EMBCMask
Definition: LArNoisyROSummary.h:32
LArOnlineID_Base::channel_Id
HWIdentifier channel_Id(int barrel_ec, int pos_neg, int feedthrough, int slot, int channel) const
create channel identifier from fields
Definition: LArOnlineID_Base.cxx:1569
CaloCell_Base_ID::is_em_endcap_inner
bool is_em_endcap_inner(const Identifier id) const
test if the id belongs to the EM Endcap inner wheel
test_pyathena.parent
parent
Definition: test_pyathena.py:15
LArOnlineID_Base::pos_neg
int pos_neg(const HWIdentifier id) const
Return the side of a hardware cell identifier pos_neg = [0,1] positive-side or negative-side Barrel...
Definition: LArOnlineID_Base.cxx:1954
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
LArNoisyROTool::FEBEvtStatMapCstIt
std::unordered_map< unsigned int, FEBEvtStat >::const_iterator FEBEvtStatMapCstIt
Definition: LArNoisyROTool.h:110
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
LArNoisyROTool::m_MNBTightCut
unsigned int m_MNBTightCut
Definition: LArNoisyROTool.h:157
LArOnlineID_Base::feb_Id
HWIdentifier feb_Id(int barrel_ec, int pos_neg, int feedthrough, int slot) const
Create feb_Id from fields.
Definition: LArOnlineID_Base.cxx:1483
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
LArNoisyROTool::m_SaturatedCellTightCut
unsigned int m_SaturatedCellTightCut
Definition: LArNoisyROTool.h:151
LArOnlineID_Base::feb_end
id_iterator feb_end() const
Definition: LArOnlineID_Base.cxx:1915
CaloCell_Base_ID::is_em_barrel
bool is_em_barrel(const Identifier id) const
test if the id belongs to the EM barrel
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
LArNoisyROTool::m_cablingKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
Definition: LArNoisyROTool.h:118
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
LArOnlineID_Base::isEMBchannel
bool isEMBchannel(const HWIdentifier id) const
Definition: LArOnlineID_Base.cxx:1652
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
LArNoisyROTool::m_MNBLooseCut
unsigned int m_MNBLooseCut
Definition: LArNoisyROTool.h:156
ZDC::sideA
BySideTypeMod sideA(1)
LArOnlineID_Base::feedthrough
int feedthrough(const HWIdentifier id) const
Return the feedthrough of a hardware cell identifier : feedthrough = [0,31] Barrel - A/C side or H/...
Definition: LArOnlineID_Base.cxx:1948
a
TList * a
Definition: liststreamerinfos.cxx:10
h
CaloCell
Data object for each calorimeter readout cell.
Definition: CaloCell.h:57
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
LArNoisyROTool::m_SaturatedCellEnergyTightCut
float m_SaturatedCellEnergyTightCut
Definition: LArNoisyROTool.h:148
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
LArNoisyROTool::FEBEvtStatMap
std::unordered_map< unsigned int, FEBEvtStat > FEBEvtStatMap
Definition: LArNoisyROTool.h:108
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
Identifier::get_identifier32
Identifier32 get_identifier32(void) const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
LArOnlineID_Base::channel_name
std::string channel_name(const HWIdentifier id) const
Return a string corresponding to a feedthrough name given an identifier.
Definition: LArOnlineID_Base.cxx:218
LArNoisyROTool::m_calo_id
const CaloCell_ID * m_calo_id
Definition: LArNoisyROTool.h:116
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
LArNoisyROTool::m_onlineID
const LArOnlineID * m_onlineID
Definition: LArNoisyROTool.h:117
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
fitman.k
k
Definition: fitman.py:528
LArNoisyROSummary
Summary information for noisy LAr preamp / FEBs.
Definition: LArNoisyROSummary.h:26
LArOnOffIdMapping
Definition: LArOnOffIdMapping.h:20
LArNoisyROTool::m_MNBTight_PsVetoCut
std::vector< unsigned int > m_MNBTight_PsVetoCut
Definition: LArNoisyROTool.h:158