ATLAS Offline Software
LArNoisyROMonAlg.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "LArNoisyROMonAlg.h"
6 
9 
10 #include <sstream>
11 #include <stdexcept>
12 #include <cmath>
13 
14 LArNoisyROMonAlg::LArNoisyROMonAlg(const std::string& name, ISvcLocator* pSvcLocator):
15  AthMonitorAlgorithm(name, pSvcLocator),
16  m_LArOnlineIDHelper(nullptr) {
17 
18 }
19 
20 
22 {
23  ATH_CHECK(detStore()->retrieve(m_LArOnlineIDHelper, "LArOnlineID" ));
25  ATH_CHECK(m_badFebKey.initialize());
26  ATH_CHECK(m_MNBFebKey.initialize());
27  ATH_CHECK( m_eventInfoDecorKey.initialize() );
28 
29  m_histoGroups.reserve(m_SubDetNames.size());
30  for (unsigned i=0; i<m_SubDetNames.size(); ++i) {
31  std::vector<std::string> part;
32  part.push_back(m_partitions[2*i]);
33  part.push_back(m_partitions[2*i+1]);
34  ATH_MSG_INFO(i<<" "<<m_SubDetNames[i]<<" "<<part[0] <<" " <<part[1]);
35  m_histoGroups.push_back(Monitored::buildToolMap<int>(m_tools,m_SubDetNames[i],part));
36  }
37 
39 }
40 
41 
42 void LArNoisyROMonAlg::fillHistogramsOnce(const EventContext& ctx, const bool isMC) const {
43 
45  const LArBadFebCont *badCont{*badHdl};
46  if(badCont) {
47  if( !isMC && badCont->size()==0) {
48  ATH_MSG_DEBUG("List of known Bad FEBs empty !? ");
49  } else {
50  auto sl=Monitored::Scalar<unsigned>("slotBad",0);
51  auto FT=Monitored::Scalar<unsigned>("FTBad",0);
52  for(LArBadFebCont::BadChanVec::const_iterator i = badCont->begin(); i!=badCont->end(); ++i) {
53  HWIdentifier chid(i->first);
54  sl = m_LArOnlineIDHelper->slot(chid);
56  unsigned sd = partitionNumber(chid)/2;
57  unsigned part = partitionNumber(chid);
58  ATH_MSG_DEBUG("Filled known Bad FEBs for " << sd << " and " << part<<": "<<sl<<" "<<FT);
60  }
61  }
62  } else {
63  ATH_MSG_WARNING("Known Bad FEBs container not existing !? ");
64  }
65 
67  const LArBadFebCont* mnbCont{*mnbHdl};
68  if(mnbCont) {
69  if( !isMC && mnbCont->size()==0) {
70  ATH_MSG_WARNING("List of known MNB FEBs empty !? ");
71  } else {
72  auto sl=Monitored::Scalar<unsigned>("slotMNB",0);
73  auto FT=Monitored::Scalar<unsigned>("FTMNB",0);
74  for(LArBadFebCont::BadChanVec::const_iterator i = mnbCont->begin(); i!=mnbCont->end(); ++i) {
75  HWIdentifier chid(i->first);
76  sl = m_LArOnlineIDHelper->slot(chid);
78  unsigned sd = partitionNumber(chid)/2;
79  unsigned part = partitionNumber(chid);
80  ATH_MSG_DEBUG("Filled known MNB FEBs for " << sd << " and " << m_partitions[part]<<": "<<sl<<" "<<FT);
82  }
83  }
84  } else {
85  ATH_MSG_WARNING("Known MNB FEBs container not existing !? ");
86  }
87  return;
88 }
89 
90 
91 StatusCode LArNoisyROMonAlg::fillHistograms(const EventContext& ctx) const {
92 
94  ATH_CHECK(eventInfo.isValid());
95  const bool isMC=eventInfo->eventType( xAOD::EventInfo::IS_SIMULATION);
96  std::call_once(m_onceFlag, &LArNoisyROMonAlg::fillHistogramsOnce, this, ctx, isMC);
97 
98 
99  // retrieve
101  if (!noisyRO.isValid())
102  {
103  ATH_MSG_WARNING( "Can't retrieve LArNoisyROSummary " );
104  return StatusCode::SUCCESS;
105  }
106 
107  unsigned int LBN = eventInfo->lumiBlock();
109 
110  const std::vector<HWIdentifier>& mnbtightFEB = noisyRO->get_MNBTight_febs();
111  const std::vector<HWIdentifier>& mnbtight_PsVetoFEB = noisyRO->get_MNBTight_PsVeto_febs();
112  const std::vector<HWIdentifier>& mnblooseFEB = noisyRO->get_MNBLoose_febs();
113 
114  // Filling Candidate MNB Tree
115  std::vector<int> v_candidate_MNBTightFEB;
116  std::vector<int> v_candidate_MNBTight_PsVetoFEB;
117  std::vector<int> v_candidate_MNBLooseFEB;
118 
119  for(unsigned int iFeb=0; iFeb<mnbtightFEB.size(); iFeb++)
120  v_candidate_MNBTightFEB.push_back(mnbtightFEB.at(iFeb).get_identifier32().get_compact());
121 
122  for(unsigned int iFeb=0; iFeb<mnbtight_PsVetoFEB.size(); iFeb++)
123  v_candidate_MNBTight_PsVetoFEB.push_back(mnbtight_PsVetoFEB.at(iFeb).get_identifier32().get_compact());
124 
125  if (m_storeLooseMNBFEBs){ // joboption - By default the FEB flagged as MNB-Loose are not stored in the TTree
126  for(unsigned int iFeb=0; iFeb<mnblooseFEB.size(); iFeb++)
127  v_candidate_MNBLooseFEB.push_back(mnblooseFEB.at(iFeb).get_identifier32().get_compact());
128  }
129 
130  if(v_candidate_MNBLooseFEB.size() > 0 || v_candidate_MNBTightFEB.size() > 0) {
131  auto candidate_MNB_time = Monitored::Scalar<unsigned int>("candidate_MNB_time", eventInfo->timeStamp());
132  auto candidate_MNB_time_ns = Monitored::Scalar<unsigned int>("candidate_MNB_time_ns", eventInfo->timeStampNSOffset());
133  auto n_candidate_MNBTight_FEB = Monitored::Scalar<unsigned int>("n_candidate_MNBTight_FEB", mnbtightFEB.size());
134  auto n_candidate_MNBTight_PsVeto_FEB = Monitored::Scalar<unsigned int>("n_candidate_MNBTight_PsVeto_FEB", mnbtightFEB.size());
135  auto n_candidate_MNBLoose_FEB = Monitored::Scalar<unsigned int>("n_candidate_MNBLoose_FEB", mnblooseFEB.size());
136 
137  auto mon_candidate_MNBTightFEB = Monitored::Collection("v_candidate_MNBTightFEB", v_candidate_MNBTightFEB);
138  auto mon_candidate_MNBTight_PsVetoFEB = Monitored::Collection("v_candidate_MNBTight_PsVetoFEB", v_candidate_MNBTight_PsVetoFEB);
139  auto mon_candidate_MNBLooseFEB = Monitored::Collection("v_candidate_MNBLooseFEB", v_candidate_MNBLooseFEB);
140 
141  ATH_MSG_DEBUG("Filling CandidateMNB tree");
142 
143  fill(m_MonGroupName,candidate_MNB_time,candidate_MNB_time_ns,n_candidate_MNBTight_FEB,n_candidate_MNBTight_PsVeto_FEB,n_candidate_MNBLoose_FEB,mon_candidate_MNBTightFEB,mon_candidate_MNBTight_PsVetoFEB,mon_candidate_MNBLooseFEB);
144  }
145 
146  // Fill the noise bursts timestamp ttree
147  auto time = Monitored::Scalar<int>("time",eventInfo->timeStamp());
148  auto time_ns = Monitored::Scalar<int>("time_ns",eventInfo->timeStampNSOffset());
149  auto algo = Monitored::Scalar<unsigned char>("algo",0);
151  {
152  algo |= 0x1;
153  }
155  {
156  algo |= 0x2;
157  }
159  {
160  algo |= 0x8;
161  }
163  {
164  algo |= 0x10;
165  }
167  {
168  algo |= 0x20;
169  }
171  {
172  algo |= 0x40;
173  }
174 
175  if ( algo != 0 ) {
176  if ( burstveto ) algo |= 0x4;
177  ATH_MSG_DEBUG("Filling LArNoise tree with algo: " << algo);
178  fill(m_MonGroupName,time,time_ns,algo);
179  } else {
180  ATH_MSG_DEBUG("Not a noisy event");
181  }
182 
183  // Triggers
184  unsigned long trigbits = 0;
185  unsigned long L1trigbits = 0;
186  if ( m_doTrigger ) {
187  for ( size_t i = 0; i < m_EF_NoiseBurst_Triggers.size(); i++) {
188  if ( m_trigDecTool->isPassed(m_EF_NoiseBurst_Triggers[i])) trigbits |= (0x1 << i);
189  }
190  for ( size_t i = 0; i < m_L1_NoiseBurst_Triggers.size(); i++) {
191  if ( m_trigDecTool->isPassed(m_L1_NoiseBurst_Triggers[i])) L1trigbits |= (0x1 << i);
192  }
193  ATH_MSG_DEBUG("Trigger words: " << std::hex << trigbits << " " << L1trigbits << std::dec);
194  }
195  if(!m_doHisto) return StatusCode::SUCCESS;
196 
197  // Fill the 2D map of noisy and mini-noisy FEBs
198  const std::vector<HWIdentifier>& noisyFEB = noisyRO->get_noisy_febs();
199 
200  // Loop on all FEBs noisy in Std definition (i.e >30 channels with q factor > 4000)
201  // And fill the 2D maps of fraction of fraction of noisy events
202  unsigned int NbNoisyFEB = 0;
204 
205  ATH_MSG_DEBUG("NoisyFEB vector size " << noisyFEB.size());
206 
207  auto slotN=Monitored::Scalar<unsigned>("slotNoisy",0);
208  auto FTN=Monitored::Scalar<unsigned>("FTNoisy",0);
209  for (size_t i = 0; i<noisyFEB.size(); i++) {
210  NbNoisyFEB++;
211  const HWIdentifier& febid = noisyFEB[i];
213  unsigned partition = partitionNumber(febid);
214  unsigned sd = partitionNumber(id)/2;
215 
216  if (partition<4){
217  FTN = m_LArOnlineIDHelper->feedthrough(id);
218  slotN = m_LArOnlineIDHelper->slot(id);
219  fill(m_tools[m_histoGroups.at(sd).at(m_partitions[partition])],slotN,FTN);
220  }
221  } // End of loop on all RNB - noisy FEB
222 
223  auto n_noisyFEB = Monitored::Scalar<int>("n_noisyFEBs",NbNoisyFEB);
224  auto lb = Monitored::Scalar<int>("LBN",LBN);
225  fill(m_MonGroupName,n_noisyFEB,lb);
226 
227  // Loop on all FEBs noisy in MNB-tight definition
228  // And fill the 2D maps of fraction of fraction of noisy events
229  // Fill two histograms with veto cut and all events
230  ATH_MSG_DEBUG("MNBTight FEB vector size " << mnbtightFEB.size());
231  auto slotTightCan=Monitored::Scalar<unsigned>("slotTightCan",0);
232  auto FTTightCan=Monitored::Scalar<unsigned>("FTTightCan",0);
233  auto slotTight=Monitored::Scalar<unsigned>("slotTight",0);
234  auto FTTight=Monitored::Scalar<unsigned>("FTTight",0);
235  for (size_t i = 0; i<mnbtightFEB.size(); i++) {
236  const HWIdentifier& febid = mnbtightFEB[i];
238  unsigned partition = partitionNumber(febid);
239 
240  if (partition<4){
241  unsigned sd = partitionNumber(id)/2;
242  FTTightCan = m_LArOnlineIDHelper->feedthrough(id);
243  slotTightCan = m_LArOnlineIDHelper->slot(id);
244  // FIXME: could not this be done with cutmask ?
245  fill(m_tools[m_histoGroups.at(sd).at(m_partitions[partition])],slotTightCan,FTTightCan);
246  if((noisyRO->MNBTightFlaggedPartitions() & partMask[partition]) != 0){
247  slotTight = unsigned(slotTightCan);
248  FTTight = unsigned(FTTightCan);
249  fill(m_tools[m_histoGroups.at(sd).at(m_partitions[partition])],slotTight,FTTight);
250  }
251  }
252  }// End of loop on all MNB-Tight - noisy FEB
253 
254  // Loop on all FEBs noisy in MNB-tight-PsVeto definition
255  // And fill the 2D maps of fraction of fraction of noisy events
256  // Fill two histograms with veto cut and all events
257  auto slot_PsVetoTightCan=Monitored::Scalar<unsigned>("slot_PsVetoTightCan",0);
258  auto FT_PsVetoTightCan=Monitored::Scalar<unsigned>("FT_PsVetoTightCan",0);
259  auto slot_PsVetoTight=Monitored::Scalar<unsigned>("slot_PsVetoTight",0);
260  auto FT_PsVetoTight=Monitored::Scalar<unsigned>("FT_PsVetoTight",0);
261  ATH_MSG_DEBUG("MNBTight_PsVeto FEB vector size " << mnbtight_PsVetoFEB.size());
262  for (size_t i = 0; i<mnbtight_PsVetoFEB.size(); i++) {
263  const HWIdentifier& febid = mnbtight_PsVetoFEB[i];
265  int partition = partitionNumber(febid);
266 
267  if (partition<4){
268  unsigned sd = partitionNumber(id)/2;
269  FT_PsVetoTightCan = m_LArOnlineIDHelper->feedthrough(id);
270  slot_PsVetoTightCan = m_LArOnlineIDHelper->slot(id);
271  // FIXME: could not this be done with cutmask ?
272  fill(m_tools[m_histoGroups.at(sd).at(m_partitions[partition])],slot_PsVetoTightCan,FT_PsVetoTightCan);
273  if((noisyRO->MNBTight_PsVetoFlaggedPartitions() & partMask[partition]) != 0){
274  slot_PsVetoTight = unsigned(slot_PsVetoTightCan);
275  FT_PsVetoTight = unsigned(FT_PsVetoTightCan);
276  fill(m_tools[m_histoGroups.at(sd).at(m_partitions[partition])],slot_PsVetoTight,FT_PsVetoTight);
277  }
278  }
279  }// End of loop on all MNB-Tight-PsVeto - noisy FEB
280 
281  // Loop on all FEBs noisy in MNB-loose definition
282  // And fill the 2D maps of fraction of fraction of noisy events
283  // Fill two histograms with veto cut and all events
284  auto slotLooseCan=Monitored::Scalar<unsigned>("slotLooseCan",0);
285  auto FTLooseCan=Monitored::Scalar<unsigned>("FTLooseCan",0);
286  auto slotLoose=Monitored::Scalar<unsigned>("slotLoose",0);
287  auto FTLoose=Monitored::Scalar<unsigned>("FTLoose",0);
288  ATH_MSG_DEBUG("MNBLoose FEB vector size " << mnblooseFEB.size());
289  for (size_t i = 0; i<mnblooseFEB.size(); i++) {
290  const HWIdentifier& febid = mnblooseFEB[i];
291  // Will be used in next iteration:
293  int partition = partitionNumber(febid);
294 
295  if (partition<4){
296  unsigned sd = partitionNumber(id)/2;
297  FTLooseCan = m_LArOnlineIDHelper->feedthrough(id);
298  slotLooseCan = m_LArOnlineIDHelper->slot(id);
299  fill(m_tools[m_histoGroups.at(sd).at(m_partitions[partition])],slotLooseCan,FTLooseCan);
300  if((noisyRO->MNBLooseFlaggedPartitions() & partMask[partition]) != 0){
301  slotLoose = unsigned(slotLoose);
302  FTLoose = unsigned(FTLoose);
303  fill(m_tools[m_histoGroups.at(sd).at(m_partitions[partition])],slotLoose,FTLoose);
304  }
305  }
306  }// End of loop on all MNB-Loose - noisy FEB
307  // End of 2D map of FEB found as noisy (in any definition : Std, MNB-Tight, MNB-Tight-PsVeto or MNB-Loose)
308 
309  // Now fill 1D histograms of events found as noisy vetoed or not
310  // Event found noisy by Std method
311  uint8_t BadFEBPartitions = noisyRO->BadFEBFlaggedPartitions();
312  if ( BadFEBPartitions != 0) {
313  auto LBStd = Monitored::Scalar<unsigned>("LBStd",LBN);
314  auto LBStdV = Monitored::Scalar<unsigned>("LBStd_Veto",LBN);
315  for (size_t i= 0;i<m_partitions.size();i++){
316  if ( (BadFEBPartitions & partMask[i]) != 0 ) {
317  fill(m_tools[m_histoGroups.at(i/2).at(m_partitions[i])],LBStd);
318  if ( m_doTrigger ) {
319  fillTriggerHisto(i,trigbits,L1trigbits);
320  }
321  if ( ! burstveto ) {
322  fill(m_tools[m_histoGroups.at(i/2).at(m_partitions[i])],LBStdV);
323  }
324  }
325  }
326  } // End of test on RNB
327 
328  // event flagged by # of saturated quality cells
329  uint8_t SatTightPartitions = noisyRO->SatTightFlaggedPartitions();
331  auto LBSat = Monitored::Scalar<unsigned>("LBSat",LBN);
332  auto LBSatV = Monitored::Scalar<unsigned>("LBSat_Veto",LBN);
333  for (size_t i= 0;i<m_partitions.size();i++){
334  if ( (SatTightPartitions & partMask[i]) != 0 ) {
335  fill(m_tools[m_histoGroups.at(i/2).at(m_partitions[i])],LBSat);
336  if ( ! burstveto ) {
337  fill(m_tools[m_histoGroups.at(i/2).at(m_partitions[i])],LBSatV);
338  }
339  }
340  }
341  } // end of test on RNB-Saturated
342 
343 
344  // event flagged by tight-MNB
345  uint8_t MNBTightPartitions = noisyRO->MNBTightFlaggedPartitions();
346  if ( MNBTightPartitions != 0) {
347  auto LBMTight = Monitored::Scalar<unsigned>("LBMNBTight",LBN);
348  auto LBMTightV = Monitored::Scalar<unsigned>("LBMNBTight_Veto",LBN);
349  for (size_t i= 0;i<m_partitions.size();i++){
350  if ( (MNBTightPartitions & partMask[i]) != 0 ) {
351  fill(m_tools[m_histoGroups.at(i/2).at(m_partitions[i])],LBMTight);
352  if ( ! burstveto ) {
353  fill(m_tools[m_histoGroups.at(i/2).at(m_partitions[i])],LBMTightV);
354  }
355  }
356  }
357  } // End of test on MNB-Tight
358 
359  // event flagged by tight-MNB-PsVeto
360  uint8_t MNBTight_PsVetoPartitions = noisyRO->MNBTight_PsVetoFlaggedPartitions();
361  if ( MNBTight_PsVetoPartitions != 0) {
362  auto LBMTight_PsVeto = Monitored::Scalar<unsigned>("LBMNBTight_PsVeto",LBN);
363  auto LBMTight_PsVetoV = Monitored::Scalar<unsigned>("LBMNBTight_PsVeto_Veto",LBN);
364  for (size_t i= 0;i<m_partitions.size();i++){
365  if ( (MNBTight_PsVetoPartitions & partMask[i]) != 0 ) {
366  fill(m_tools[m_histoGroups.at(i/2).at(m_partitions[i])],LBMTight_PsVeto);
367  if ( ! burstveto ) {
368  fill(m_tools[m_histoGroups.at(i/2).at(m_partitions[i])],LBMTight_PsVetoV);
369  }
370  }
371  }
372  } // End of test on MNB-Tight-PsVeto
373 
374  // event flagged by loose-MNB
375  uint8_t MNBLoosePartitions = noisyRO->MNBLooseFlaggedPartitions();
376  if ( MNBLoosePartitions != 0) {
377  auto LBMLoose = Monitored::Scalar<unsigned>("LBMNBLoose",LBN);
378  auto LBMLooseV = Monitored::Scalar<unsigned>("LBMNBLoose_Veto",LBN);
379  for (size_t i= 0;i<m_partitions.size();i++){
380  if ( (MNBLoosePartitions & partMask[i]) != 0 ) {
381  fill(m_tools[m_histoGroups.at(i/2).at(m_partitions[i])],LBMLoose);
382  if ( ! burstveto ) {
383  fill(m_tools[m_histoGroups.at(i/2).at(m_partitions[i])],LBMLooseV);
384  }
385  }
386  }
387  } // end fo test on MNB-Loose
388 
389  return StatusCode::SUCCESS;
390 }
391 
393  unsigned long triggerbits, unsigned long L1triggerbits) const{
394 
395  auto trig = Monitored::Scalar<unsigned>("Triggers",0);
396  if ( triggerbits ==0 ) {
397  trig = m_EF_NoiseBurst_Triggers.size()+1;
399  } else {
400  for ( size_t i = 0; i < m_EF_NoiseBurst_Triggers.size(); i++) {
401  if ( triggerbits & (0x1 << i) ) {
402  trig = i+1;
404  }
405  }
406  }
407 
408  auto l1trig = Monitored::Scalar<unsigned>("L1Triggers",0);
409  if ( L1triggerbits ==0 ) {
410  l1trig = m_L1_NoiseBurst_Triggers.size()+1;
412  } else {
413  for ( size_t i = 0; i < m_L1_NoiseBurst_Triggers.size(); i++) {
414  if ( L1triggerbits & (0x1 << i) ) {
415  l1trig = i+1;
417  }
418  }
419  }
420 }
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
LArNoisyROMonAlg::fillHistogramsOnce
void fillHistogramsOnce(const EventContext &ctx, const bool isMC) const
Definition: LArNoisyROMonAlg.cxx:42
LArNoisyROMonAlg::LArNoisyROMonAlg
LArNoisyROMonAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: LArNoisyROMonAlg.cxx:14
LArNoisyROSummary::EMBAMask
@ EMBAMask
Definition: LArNoisyROSummary.h:32
LArNoisyROSummary::EMECCMask
@ EMECCMask
Definition: LArNoisyROSummary.h:31
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:575
AthMonitorAlgorithm::m_trigDecTool
PublicToolHandle< Trig::TrigDecisionTool > m_trigDecTool
Tool to tell whether a specific trigger is passed.
Definition: AthMonitorAlgorithm.h:340
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
LArEventBitInfo::MININOISEBURSTTIGHT
@ MININOISEBURSTTIGHT
Definition: LArEventBitInfo.h:18
LArBadXCont
Conditions-Data class holding LAr Bad Channel or Bad Feb information.
Definition: LArBadChannelCont.h:28
LArOnlineID_Base::slot
int slot(const HWIdentifier id) const
Return the slot number of a hardware cell identifier: slot = [1,15] Slot-ID in top part of the crat...
Definition: LArOnlineID_Base.cxx:1961
LArEventBitInfo::BADFEBS
@ BADFEBS
Definition: LArEventBitInfo.h:10
LArNoisyROMonAlg::fillHistograms
virtual StatusCode fillHistograms(const EventContext &ctx) const override final
adds event to the monitoring histograms
Definition: LArNoisyROMonAlg.cxx:91
LArNoisyROMonAlg::partitionNumber
size_t partitionNumber(const HWIdentifier) const
Definition: LArNoisyROMonAlg.h:91
xAOD::EventInfo_v1::timeStampNSOffset
uint32_t timeStampNSOffset() const
Nanosecond time offset wrt. the time stamp.
HWIdentifier
Definition: HWIdentifier.h:13
xAOD::EventInfo_v1::IS_SIMULATION
@ IS_SIMULATION
true: simulation, false: data
Definition: EventInfo_v1.h:151
xAOD::EventInfo_v1::LAr
@ LAr
The LAr calorimeter.
Definition: EventInfo_v1.h:335
LArNoisyROSummary::EMECAMask
@ EMECAMask
Definition: LArNoisyROSummary.h:31
xAOD::unsigned
unsigned
Definition: RingSetConf_v1.cxx:662
LArEventBitInfo.h
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
Monitored::Collection
ValuesCollection< T > Collection(std::string name, const T &collection)
Declare a monitored (double-convertible) collection.
Definition: MonitoredCollection.h:38
LArNoisyROMonAlg.h
AthMonitorAlgorithm
Base class for Athena Monitoring Algorithms.
Definition: AthMonitorAlgorithm.h:36
python.selector.AtlRunQuerySelectorLhcOlc.sd
sd
Definition: AtlRunQuerySelectorLhcOlc.py:612
LArEventBitInfo::NOISEBURSTVETO
@ NOISEBURSTVETO
Definition: LArEventBitInfo.h:13
LArNoisyROMonAlg::m_badFebKey
SG::ReadCondHandleKey< LArBadFebCont > m_badFebKey
Definition: LArNoisyROMonAlg.h:61
LArEventBitInfo::TIGHTSATURATEDQ
@ TIGHTSATURATEDQ
Definition: LArEventBitInfo.h:12
python.BunchSpacingUtils.lb
lb
Definition: BunchSpacingUtils.py:88
LArEventBitInfo::MININOISEBURSTTIGHT_PSVETO
@ MININOISEBURSTTIGHT_PSVETO
Definition: LArEventBitInfo.h:19
lumiFormat.i
int i
Definition: lumiFormat.py:92
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
LArNoisyROMonAlg::m_MonGroupName
Gaudi::Property< std::string > m_MonGroupName
Definition: LArNoisyROMonAlg.h:48
LArNoisyROMonAlg::m_eventInfoDecorKey
SG::ReadDecorHandleKey< xAOD::EventInfo > m_eventInfoDecorKey
Definition: LArNoisyROMonAlg.h:65
LArNoisyROMonAlg::m_EF_NoiseBurst_Triggers
Gaudi::Property< std::vector< std::string > > m_EF_NoiseBurst_Triggers
Definition: LArNoisyROMonAlg.h:54
LArNoisyROSummary::EMBCMask
@ EMBCMask
Definition: LArNoisyROSummary.h:32
LArEventBitInfo::BADFEBS_W
@ BADFEBS_W
Definition: LArEventBitInfo.h:16
LArNoisyROMonAlg::m_doHisto
Gaudi::Property< bool > m_doHisto
Definition: LArNoisyROMonAlg.h:57
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
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
LArNoisyROMonAlg::m_L1_NoiseBurst_Triggers
Gaudi::Property< std::vector< std::string > > m_L1_NoiseBurst_Triggers
Definition: LArNoisyROMonAlg.h:55
LArNoisyROMonAlg::m_partitions
Gaudi::Property< std::vector< std::string > > m_partitions
Definition: LArNoisyROMonAlg.h:50
LArBadXCont::const_iterator
BadChanVec::const_iterator const_iterator
Definition: LArBadChannelCont.h:33
LArNoisyROMonAlg.isMC
isMC
Definition: LArNoisyROMonAlg.py:256
AthMonitorAlgorithm::fill
void fill(const ToolHandle< GenericMonitoringTool > &groupHandle, std::vector< std::reference_wrapper< Monitored::IMonitoredVariable >> &&variables) const
Fills a vector of variables to a group by reference.
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
AthMonitorAlgorithm::GetEventInfo
SG::ReadHandle< xAOD::EventInfo > GetEventInfo(const EventContext &) const
Return a ReadHandle for an EventInfo object (get run/event numbers, etc.)
Definition: AthMonitorAlgorithm.cxx:107
LArNoisyROMonAlg::m_MNBFebKey
SG::ReadCondHandleKey< LArBadFebCont > m_MNBFebKey
Definition: LArNoisyROMonAlg.h:62
xAOD::EventInfo_v1::lumiBlock
uint32_t lumiBlock() const
The current event's luminosity block number.
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
LArEventBitInfo::MININOISEBURSTLOOSE
@ MININOISEBURSTLOOSE
Definition: LArEventBitInfo.h:17
AthMonitorAlgorithm::m_tools
ToolHandleArray< GenericMonitoringTool > m_tools
Array of Generic Monitoring Tools.
Definition: AthMonitorAlgorithm.h:338
LArNoisyROMonAlg::m_inputKey
SG::ReadHandleKey< LArNoisyROSummary > m_inputKey
Definition: LArNoisyROMonAlg.h:59
LArNoisyROMonAlg::initialize
virtual StatusCode initialize() override final
initialize
Definition: LArNoisyROMonAlg.cxx:21
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
AthMonitorAlgorithm::initialize
virtual StatusCode initialize() override
initialize
Definition: AthMonitorAlgorithm.cxx:18
LArNewCalib_Delay_OFC_Cali.FT
FT
Definition: LArNewCalib_Delay_OFC_Cali.py:120
LArNoisyROMonAlg::m_histoGroups
std::vector< std::map< std::string, int > > m_histoGroups
Definition: LArNoisyROMonAlg.h:80
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
CaloSwCorrections.time
def time(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:242
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
StateLessPT_NewConfig.partition
partition
Definition: StateLessPT_NewConfig.py:49
xAOD::EventInfo_v1::timeStamp
uint32_t timeStamp() const
POSIX time in seconds from 1970. January 1st.
EventInfoRead.isMC
isMC
Definition: EventInfoRead.py:11
xAOD::EventInfo_v1::isEventFlagBitSet
bool isEventFlagBitSet(EventFlagSubDet subDet, size_t bit) const
Check one particular bit of one particular sub-detector.
Definition: EventInfo_v1.cxx:703
LArNoisyROMonAlg::m_SubDetNames
Gaudi::Property< std::vector< std::string > > m_SubDetNames
Definition: LArNoisyROMonAlg.h:49
Monitored::Scalar
Declare a monitored scalar variable.
Definition: MonitoredScalar.h:34
LArNoisyROMonAlg::m_storeLooseMNBFEBs
Gaudi::Property< bool > m_storeLooseMNBFEBs
Definition: LArNoisyROMonAlg.h:52
LArNoisyROMonAlg::m_doTrigger
Gaudi::Property< bool > m_doTrigger
Definition: LArNoisyROMonAlg.h:51
LArNoisyROMonAlg::m_LArOnlineIDHelper
const LArOnlineID * m_LArOnlineIDHelper
Definition: LArNoisyROMonAlg.h:46
xAOD::EventInfo_v1::eventType
bool eventType(EventType type) const
Check for one particular bitmask value.
LArOnlineID.h
LArNoisyROMonAlg::fillTriggerHisto
void fillTriggerHisto(size_t partition, unsigned long triggerbits, unsigned long L1triggerbits) const
Definition: LArNoisyROMonAlg.cxx:392