Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
LArHVPathologyDbAlg.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "LArHVPathologyDbAlg.h"
6 
10 
16 
19 #include "LArHV/EMBHVElectrode.h"
22 #include "LArHV/EMECHVElectrode.h"
25 #include "LArHV/HECHVSubgap.h"
27 #include "LArHV/FCALHVLine.h"
28 #include "GaudiKernel/ThreadLocalContext.h"
29 
30 #include <fstream>
31 #include <cstdlib>
32 
34 #include "CoralBase/Blob.h"
35 
36 #include "TBufferFile.h"
37 #include "TClass.h"
38 
39 
41 {
42  ATH_MSG_INFO(" in initialize()");
43 
44  if(m_writeCondObjs && m_folder.value().empty()) {
45  ATH_MSG_ERROR("Folder property not set. Exiting ... ");
46  return StatusCode::FAILURE;
47  }
48 
49  // Get HVPathology tool
50  //ATH_CHECK(m_pathologyTool.retrieve());
51 
52  // retrieve LArEM id helpers
54 
58 
59  ATH_CHECK(detStore()->retrieve(m_laronline_id,"LArOnlineID"));
60 
65 
66  return StatusCode::SUCCESS;
67 }
68 
70 {
71  ATH_MSG_INFO(" in execute()");
72 
73  const EventContext& ctx = Gaudi::Hive::currentContext();
74 
75  int nevt = ctx.eventID().event_number();
76  if (nevt!=1) return StatusCode::SUCCESS;
77 
78 
80  ATH_CHECK(caloMgrHandle.isValid());
81  const CaloDetDescrManager* calodetdescrmgr = *caloMgrHandle;
82 
83 
84  const std::vector<LArHVPathologiesDb::LArHVElectPathologyDb>* pathologyContainer=nullptr;
85  if(m_writeCondObjs) {
86  ATH_MSG_INFO("Creating conditions objects");
87 
88  // Create cond objects
89  auto pathologies=createCondObjects(ctx,calodetdescrmgr);
90  if(!pathologies) {
91  ATH_MSG_ERROR("Could not create cond objects ");
92  m_writeCondObjs = false;
93  return StatusCode::FAILURE;
94  }
95  pathologyContainer=&(pathologies->m_v);
96  std::unique_ptr<AthenaAttributeList> attrlist = hvPathology2AttrList(*pathologies);
97  ATH_MSG_INFO("Created Attribute List");
98  coral::Blob& blob=(*attrlist)["Constants"].data<coral::Blob>();
99  ATH_MSG_DEBUG("Blob size=" << blob.size());
100  StatusCode sc = detStore()->record(std::move(attrlist),m_folder.value());
101  if(!sc.isSuccess()) {
102  ATH_MSG_ERROR("Could not record " << m_folder.value());
103  return sc;
104  }
105  else
106  ATH_MSG_INFO("Recorded " << m_folder.value());
107  }
108  // Dump cond objects
109  ATH_CHECK(printCondObjects (ctx,calodetdescrmgr,pathologyContainer));
110  return StatusCode::SUCCESS;
111 }
112 
113 
114 std::optional<LArHVPathologiesDb> LArHVPathologyDbAlg::createCondObjects (const EventContext & ctx, const CaloDetDescrManager* calodetdescrmgr) const
115 {
116  ATH_MSG_INFO(" in createCondObjects() ");
117 
119 
121  const LArOnOffIdMapping *cabling = *cabHdl;
122  if(!cabling) {
123  ATH_MSG_ERROR("Do not have cabling object with key " << m_cablingKey.key());
124  return std::nullopt;
125  }
126  // Read input file and construct LArHVPathologiesDb for given folder
127  std::ifstream infile;
128  infile.open(m_inpFile.value().c_str());
129 
130  if(!infile.is_open()) {
131  ATH_MSG_ERROR("Unable to open " << m_inpFile << " for reading");
132  return std::nullopt;
133  }
134 
135  char checkChar;
136  char commentSign('#');
137  std::string commentLine(""), foldername("");
138  unsigned int cellID;
139  unsigned short electInd, pathologyType;
140 
141  // Look for the folder name in the file
142  while(!infile.eof()) {
143  infile >> foldername;
144  if(foldername==m_folder.value())
145  break;
146  }
147 
148  if(foldername!=m_folder.value()) {
149  ATH_MSG_ERROR("Unable to find data for the folder " << m_folder.value()
150  << " in the input file");
151  return std::nullopt;
152  }
153  else
154  ATH_MSG_INFO("Found folder " << foldername << " in the input file");
155 
156  // Get data corresponding to the folder and put it into LArHVPathologiesDb object
157  LArHVPathologiesDb pathologies;
158 
159  ATH_MSG_INFO(" start reading input file ");
160  while(!infile.eof()) {
161  // Number or string?
162  checkChar = static_cast<char> (infile.get());
163  if(checkChar=='\n')
164  continue;
165  if((checkChar >= '0') && (checkChar <= '9')) {
166  // Number - read three values
167  infile.unget();
168  std::vector<unsigned int> elecList;
169  elecList.reserve(2);
170  if (m_mode==0) {
171  infile >> cellID >> electInd >> pathologyType;
172  elecList.push_back(electInd);
173  } else {
174  unsigned int bec,pos_neg,FT,slot,channel,hvModule,hvLine;
175  infile >> bec >> pos_neg >> FT >> slot >> channel >> hvModule >> hvLine >> pathologyType;
176  ATH_MSG_INFO(" read " << bec << " " << pos_neg << " " << FT << " " << slot << " " << channel << " " << hvModule << " " << hvLine << " " << pathologyType);
177  HWIdentifier hwid = m_laronline_id->channel_Id(bec,pos_neg,FT,slot,channel);
178  Identifier id = cabling->cnvToIdentifier( hwid);
179  cellID = (unsigned int)(id.get_identifier32().get_compact());
180  elecList=getElectInd(**hvIdMapping, id,hvModule,hvLine,calodetdescrmgr);
181  ATH_MSG_INFO(" cellId , elecList size " << cellID << " " << elecList.size());
182  }
183  for (unsigned int i=0;i<elecList.size();i++) {
185  electPath.cellID = cellID;
186  electPath.electInd = elecList[i];
187  if(m_mode==2) electPath.pathologyType = ((pathologyType&0x0FFF)<<4);
188  else electPath.pathologyType = pathologyType;
189  pathologies.m_v.push_back(electPath);
190  ATH_MSG_INFO("Created electrode pathology (" << cellID
191  << "," << elecList[i]
192  << "," << pathologyType << ")");
193  }
194  }
195  else if(checkChar==commentSign) {
196  // Skip the comment
197  std::getline(infile,commentLine);
198  }
199  else {
200  // We found another folder. Stop parsing
201  break;
202  }
203  }
204 
205  infile.close();
206  ATH_MSG_INFO("Finished parsing input file");
207  return std::make_optional<LArHVPathologiesDb>(pathologies);
208 }
209 
210 StatusCode LArHVPathologyDbAlg::printCondObjects (const EventContext& ctx, const CaloDetDescrManager* calodetdescrmgr,
211  const std::vector<LArHVPathologiesDb::LArHVElectPathologyDb>* pathologyContainer) const
212 {
213  ATH_MSG_INFO(" in printCondObjects() ");
214 
217  const LArOnOffIdMapping *cabling = *cabHdl;
218  if(!cabling) {
219  ATH_MSG_ERROR("Do not have cabling object with key " << m_cablingKey.key());
220  return StatusCode::FAILURE;
221  }
222 
223  std::ofstream *fout=nullptr;
224  if (!m_hvPathologyKey.empty() && pathologyContainer==nullptr) {
226  pathologyContainer=&(pathHdl->getPathology());
227  }
228  if (!pathologyContainer) {
229  ATH_MSG_WARNING("No input data ");
230 
231  return StatusCode::SUCCESS;
232  }
233 
234  else {
235  if(!m_outFile.value().empty()) {
236  fout = new std::ofstream(m_outFile.value().c_str());
237  if((!fout) || (fout && !(fout->good()))) {
238  ATH_MSG_WARNING("Could not open output file: " << m_outFile.value());
239  fout=nullptr;
240  }
241  if(fout) *fout<<m_folder.value()<<std::endl;
242  }
243  for (const LArHVPathologiesDb::LArHVElectPathologyDb& electPath : *pathologyContainer) {
244  if(m_mode==0) {
245  ATH_MSG_INFO("Got pathology for cell ID: " << electPath.cellID
246  << "(" << electPath.electInd
247  << "," << electPath.pathologyType << ") ");
248  if(fout) *fout<<electPath.cellID<<"\t"<<electPath.electInd<<"\t"<<electPath.pathologyType<<std::endl;
249  } else {
250  ATH_MSG_INFO("Got pathology for cell ID: " << electPath.cellID);
251  HWIdentifier hwid = cabling->createSignalChannelID(Identifier32(electPath.cellID));
252  int HVLine=getHVline(**hvIdMapping,Identifier(electPath.cellID),electPath.electInd,calodetdescrmgr);
253  if(HVLine<0) {
254  ATH_MSG_ERROR("No HVline for cell "<<electPath.cellID);
255  } else {
256  int hvmodule=HVLine/1000;
257  int hvline=HVLine%1000;
258  if(m_mode==1) {
259  ATH_MSG_INFO(m_laronline_id->barrel_ec(hwid) << " " << m_laronline_id->pos_neg(hwid) << " " << m_laronline_id->feedthrough(hwid) << " " << m_laronline_id->slot(hwid) << " " << m_laronline_id->channel(hwid) << " " << hvmodule << " " << hvline << " " << electPath.pathologyType);
260  if(fout) *fout << m_laronline_id->barrel_ec(hwid) << " " << m_laronline_id->pos_neg(hwid) << " " << m_laronline_id->feedthrough(hwid) << " " << m_laronline_id->slot(hwid) << " " << m_laronline_id->channel(hwid) << " " << hvmodule << " " << hvline << " " << electPath.pathologyType << std::endl;
261  } else if (m_mode==2){
262  ATH_MSG_INFO(m_laronline_id->barrel_ec(hwid) << " " << m_laronline_id->pos_neg(hwid) << " " << m_laronline_id->feedthrough(hwid) << " " << m_laronline_id->slot(hwid) << " " << m_laronline_id->channel(hwid) << " " << hvmodule << " " << hvline << " " << ((electPath.pathologyType&0xFF0)>>4));
263  if(fout) *fout << m_laronline_id->barrel_ec(hwid) << " " << m_laronline_id->pos_neg(hwid) << " " << m_laronline_id->feedthrough(hwid) << " " << m_laronline_id->slot(hwid) << " " << m_laronline_id->channel(hwid) << " " << hvmodule << " " << hvline << " " << ((electPath.pathologyType&0xFFF0)>>4) << std::endl;
264 
265  }
266  }
267  }
268  }
269  }
270  if(fout) fout->close();
271  return StatusCode::SUCCESS;
272 }
273 
274 std::vector<unsigned int>
276  const Identifier & id,
277  unsigned int module,
278  unsigned int line,
279  const CaloDetDescrManager* calodetdescrmgr) const
280 {
281 
282  std::vector<unsigned int> list;
283  int HVline = 1000*module + line;
284 // EM calo
285  if (m_larem_id->is_lar_em(id)) {
286 // LAr EMB
287  if (abs(m_larem_id->barrel_ec(id))==1 && m_larem_id->sampling(id) > 0) {
288  if (const EMBDetectorElement* embElement = dynamic_cast<const EMBDetectorElement*>(calodetdescrmgr->get_element(id))) {
289  const EMBCellConstLink cell = embElement->getEMBCell();
290  unsigned int nelec = cell->getNumElectrodes();
291  for (unsigned int i=0;i<nelec;i++) {
292  const EMBHVElectrode& electrode = cell->getElectrode(i);
293  for (unsigned int igap=0;igap<2;igap++) {
294  if (electrode.hvLineNo(igap, &hvIdMapping)==HVline) {
295  list.push_back(2*i+igap);
296  }
297  }
298  }
299  }
300  }
301 // LAr EMEC
302  if (abs(m_larem_id->barrel_ec(id))>1 && m_larem_id->sampling(id) > 0) {
303  if (const EMECDetectorElement* emecElement = dynamic_cast<const EMECDetectorElement*>(calodetdescrmgr->get_element(id))) {
304  const EMECCellConstLink cell = emecElement->getEMECCell();
305  unsigned int nelec = cell->getNumElectrodes();
306  for (unsigned int i=0;i<nelec;i++) {
307  const EMECHVElectrode& electrode = cell->getElectrode(i);
308  for (unsigned int igap=0;igap<2;igap++) {
309  if (electrode.hvLineNo(igap, &hvIdMapping)==HVline) {
310  list.push_back(2*i+igap);
311  }
312  }
313  }
314  }
315  }
316 // EMBPS
317  if (abs(m_larem_id->barrel_ec(id))==1 && m_larem_id->sampling(id)==0) {
318  if (const EMBDetectorElement* embElement = dynamic_cast<const EMBDetectorElement*>(calodetdescrmgr->get_element(id))) {
319  const EMBCellConstLink cell = embElement->getEMBCell();
320  const EMBPresamplerHVModule& hvmodule = cell->getPresamplerHVModule ();
321  for (unsigned int igap=0;igap<2;igap++) {
322  if (hvmodule.hvLineNo(igap, &hvIdMapping)==HVline) {
323  list.push_back(igap);
324  }
325  }
326  }
327  }
328 // EMECPS
329  if (abs(m_larem_id->barrel_ec(id))>1 && m_larem_id->sampling(id)==0) {
330  if (const EMECDetectorElement* emecElement = dynamic_cast<const EMECDetectorElement*>(calodetdescrmgr->get_element(id))) {
331  const EMECCellConstLink cell = emecElement->getEMECCell();
332  const EMECPresamplerHVModule& hvmodule = cell->getPresamplerHVModule ();
333  for (unsigned int igap=0;igap<2;igap++) {
334  if (hvmodule.hvLineNo(igap, &hvIdMapping)==HVline) {
335  list.push_back(igap);
336  }
337  }
338  }
339  }
340  }
341 //HEC
342  if (m_larhec_id->is_lar_hec(id)) {
343  if (const HECDetectorElement* hecElement = dynamic_cast<const HECDetectorElement*>(calodetdescrmgr->get_element(id))) {
344  const HECCellConstLink cell = hecElement->getHECCell();
345  unsigned int nsubgaps = cell->getNumSubgaps();
346  for (unsigned int i=0;i<nsubgaps;i++) {
347  const HECHVSubgap& subgap = cell->getSubgap(i);
348  if (subgap.hvLineNo(&hvIdMapping)==HVline) {
349  list.push_back(i);
350  }
351  }
352  }
353  }
354 //FCAL
355  if (m_larfcal_id->is_lar_fcal(id)) {
356  if (const FCALDetectorElement* fcalElement = dynamic_cast<const FCALDetectorElement*>(calodetdescrmgr->get_element(id))) {
357  const FCALTile* tile = fcalElement->getFCALTile();
358  unsigned int nlines = FCALTile::getNumHVLines();
359  for (unsigned int i=0;i<nlines;i++) {
360  const FCALHVLine* line2 = tile->getHVLine(i);
361  if(line2) {
362  if (line2->hvLineNo(&hvIdMapping)==HVline) {
363  list.push_back(i);
364  }
365  }
366  }
367  }
368  }
369 
370  return list;
371 
372 }
373 
375  const Identifier & id,
376  short unsigned int ElectInd,
377  const CaloDetDescrManager* calodetdescrmgr) const
378 {
379 
380  unsigned int igap, ielec;
381 // EM calo
382  if (m_larem_id->is_lar_em(id)) {
383 // LAr EMB
384  if (abs(m_larem_id->barrel_ec(id))==1 && m_larem_id->sampling(id) > 0) {
385  if (const EMBDetectorElement* embElement = dynamic_cast<const EMBDetectorElement*>(calodetdescrmgr->get_element(id))) {
386  const EMBCellConstLink cell = embElement->getEMBCell();
387  unsigned int nelec = cell->getNumElectrodes();
388  igap = ElectInd % 2;
389  ielec = std::div(ElectInd - igap, 2).quot;
390  if (ielec > nelec) {
391  ATH_MSG_ERROR("Wrong electrode number " << ielec << " for cell "<< id.get_identifier32().get_compact());
392  return -1;
393  } else {
394  return cell->getElectrode(ielec).hvLineNo(igap, &hvIdMapping);
395  }
396  }
397  }
398 // LAr EMEC
399  if (abs(m_larem_id->barrel_ec(id))>1 && m_larem_id->sampling(id) > 0) {
400  if (const EMECDetectorElement* emecElement = dynamic_cast<const EMECDetectorElement*>(calodetdescrmgr->get_element(id))) {
401  const EMECCellConstLink cell = emecElement->getEMECCell();
402  unsigned int nelec = cell->getNumElectrodes();
403  igap = ElectInd % 2;
404  ielec = std::div(ElectInd - igap, 2).quot;
405  if (ielec > nelec) {
406  ATH_MSG_ERROR("Wrong electrode number " << ielec << " for cell "<< id.get_identifier32().get_compact());
407  return -1;
408  } else {
409  return cell->getElectrode(ielec).hvLineNo(igap, &hvIdMapping);
410  }
411  }
412  }
413 // EMBPS
414  if (abs(m_larem_id->barrel_ec(id))==1 && m_larem_id->sampling(id)==0) {
415  if (const EMBDetectorElement* embElement = dynamic_cast<const EMBDetectorElement*>(calodetdescrmgr->get_element(id))) {
416  const EMBCellConstLink cell = embElement->getEMBCell();
417  const EMBPresamplerHVModule& hvmodule = cell->getPresamplerHVModule ();
418  if(ElectInd >= 2) {
419  ATH_MSG_ERROR("Wrong igap "<<ElectInd<<" for EMBPS cell "<<id.get_identifier32().get_compact());
420  return -1;
421  } else {
422  return hvmodule.hvLineNo(ElectInd, &hvIdMapping);
423  }
424  }
425  }
426 // EMECPS
427  if (abs(m_larem_id->barrel_ec(id))>1 && m_larem_id->sampling(id)==0) {
428  if (const EMECDetectorElement* emecElement = dynamic_cast<const EMECDetectorElement*>(calodetdescrmgr->get_element(id))) {
429  const EMECCellConstLink cell = emecElement->getEMECCell();
430  const EMECPresamplerHVModule& hvmodule = cell->getPresamplerHVModule ();
431  if(ElectInd >= 2) {
432  ATH_MSG_ERROR("Wrong igap "<<ElectInd<<" for EMECPS cell "<<id.get_identifier32().get_compact());
433  return -1;
434  } else {
435  return hvmodule.hvLineNo(ElectInd, &hvIdMapping);
436  }
437  }
438  }
439  }
440 //HEC
441  if (m_larhec_id->is_lar_hec(id)) {
442  if (const HECDetectorElement* hecElement = dynamic_cast<const HECDetectorElement*>(calodetdescrmgr->get_element(id))) {
443  const HECCellConstLink cell = hecElement->getHECCell();
444  unsigned int nsubgaps = cell->getNumSubgaps();
445  if( ElectInd >= nsubgaps) {
446  ATH_MSG_ERROR("Wrong igap "<<ElectInd<<" for HEC cell "<<id.get_identifier32().get_compact());
447  return -1;
448  } else {
449  return cell->getSubgap(ElectInd).hvLineNo(&hvIdMapping);
450  }
451  }
452  }
453 //FCAL
454  if (m_larfcal_id->is_lar_fcal(id)) {
455  if (const FCALDetectorElement* fcalElement = dynamic_cast<const FCALDetectorElement*>(calodetdescrmgr->get_element(id))) {
456  const FCALTile* tile = fcalElement->getFCALTile();
457  unsigned int nlines = FCALTile::getNumHVLines();
458  if( ElectInd >= nlines) {
459  ATH_MSG_ERROR("Wrong line "<<ElectInd<<" for FCAL cell "<<id.get_identifier32().get_compact());
460  return -1;
461  } else {
462  const FCALHVLine* line2 = tile->getHVLine(ElectInd);
463  if(line2) {
464  return line2->hvLineNo(&hvIdMapping);
465  } else {
466  ATH_MSG_ERROR("Do not have HVLine for "<<ElectInd<<" for FCAL cell "<<id.get_identifier32().get_compact());
467  return -1;
468  }
469  }
470  }
471  }
472 
473  // should not get up to this point....
474  return -1;
475 
476 }
477 
478 std::unique_ptr<AthenaAttributeList> LArHVPathologyDbAlg::hvPathology2AttrList(const LArHVPathologiesDb& pathologyContainer) const {
479 
480  coral::AttributeListSpecification* spec = new coral::AttributeListSpecification();
481  spec->extend("blobVersion",
482  "unsigned int"); // Should allow schema evolution if needed
483  spec->extend("Constants", "blob"); // Holds the container
484 
485  std::unique_ptr<AthenaAttributeList> attrList = std::make_unique<AthenaAttributeList>(*spec);
486 
487  (*attrList)["blobVersion"].data<unsigned int>() = (unsigned int)0;
488  coral::Blob& blob = (*attrList)["Constants"].data<coral::Blob>();
489 
490  TClass* klass = TClass::GetClass("LArHVPathologiesDb");
491  if (klass == nullptr) {
492  ATH_MSG_ERROR("Can't find TClass LArHVPathologiesDb");
493  return nullptr;
494  } else
495  ATH_MSG_DEBUG("Got TClass LArHVPathologiesDb");
496 
497  TBufferFile buf(TBuffer::kWrite);
498 
499  if (buf.WriteObjectAny(&pathologyContainer, klass) != 1) {
500  ATH_MSG_ERROR("Failed to stream LArHVPathologiesDb");
501  return nullptr;
502  }
503 
504  blob.resize(buf.Length());
505  void* adr = blob.startingAddress();
506  memcpy(adr, buf.Buffer(), buf.Length());
507  return attrList;
508 }
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
LArHVPathologyDbAlg::m_larfcal_id
const LArFCAL_ID * m_larfcal_id
Definition: LArHVPathologyDbAlg.h:66
Identifier32
Definition: Identifier32.h:25
EMBHVElectrode
Definition: EMBHVElectrode.h:15
LArHVPathologyDbAlg::m_larem_id
const LArEM_ID * m_larem_id
Definition: LArHVPathologyDbAlg.h:64
EMECHVElectrode.h
LArEM_ID.h
EMECDetectorElement
LAr EMEC Detector Element.
Definition: CaloDetectorElements.h:116
ReadCellNoiseFromCool.cell
cell
Definition: ReadCellNoiseFromCool.py:53
LArHVPathologyDbAlg::m_folder
StringProperty m_folder
Definition: LArHVPathologyDbAlg.h:60
LArHVPathology::getPathology
const std::vector< LArHVPathologiesDb::LArHVElectPathologyDb > & getPathology() const
Definition: LArHVPathology.h:23
run.infile
string infile
Definition: run.py:13
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:24
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
AtlasDetectorID::is_lar_fcal
bool is_lar_fcal(Identifier id) const
Definition: AtlasDetectorID.h:839
collListGuids.line
string line
Definition: collListGuids.py:77
ParticleGun_SamplingFraction.bec
int bec
Definition: ParticleGun_SamplingFraction.py:89
CaloCondBlobAlgs_fillNoiseFromASCII.spec
spec
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:47
LArHVPathologyDbAlg::m_caloMgrKey
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
Definition: LArHVPathologyDbAlg.h:74
LArHVPathologyDbAlg::m_mode
IntegerProperty m_mode
Definition: LArHVPathologyDbAlg.h:61
LArHVPathologyDbAlg.h
CaloIdManager::getEM_ID
const LArEM_ID * getEM_ID(void) const
Definition: CaloIdManager.cxx:80
CaloDetDescrManager_Base::get_element
const CaloDetDescrElement * get_element(const Identifier &cellId) const
get element by its identifier
Definition: CaloDetDescrManager.cxx:159
LArHVPathologyDbAlg::getElectInd
std::vector< unsigned int > getElectInd(const LArHVIdMapping &hvIdMapping, const Identifier &id, unsigned int module, unsigned int line, const CaloDetDescrManager *calodetdescrmgr) const
Definition: LArHVPathologyDbAlg.cxx:275
ReadCellNoiseFromCool.cabling
cabling
Definition: ReadCellNoiseFromCool.py:154
python.checkUPD1.foldername
foldername
Definition: checkUPD1.py:77
LArHVPathologyDbAlg::m_cablingKey
SG::ReadCondHandleKey< LArOnOffIdMapping > m_cablingKey
Definition: LArHVPathologyDbAlg.h:72
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:1957
python.subdetectors.tile.Blob
Blob
Definition: tile.py:17
IIOVRegistrationSvc.h
This is an interface to a tool used to register conditions objects in the Interval of Validity (IOV) ...
LArEM_Base_ID::sampling
int sampling(const Identifier id) const
return sampling according to :
LArHVPathologyDbAlg::m_hvCablingKey
SG::ReadCondHandleKey< LArHVIdMapping > m_hvCablingKey
Definition: LArHVPathologyDbAlg.h:70
LArHVPathologyDbAlg::m_laronline_id
const LArOnlineID * m_laronline_id
Definition: LArHVPathologyDbAlg.h:67
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
LArHEC_ID.h
SG::VarHandleKey::empty
bool empty() const
Test if the key is blank.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:150
LArHVPathologiesDb::LArHVElectPathologyDb::cellID
unsigned int cellID
Definition: LArHVPathologiesDb.h:23
EMBDetectorElement
LAr EMB Detector Element.
Definition: CaloDetectorElements.h:52
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:1938
AthenaAttributeList.h
EMECPresamplerHVModule.h
EMBHVElectrode.h
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
klass
This class describe the base functionalities of a HypoTool used by the ComboAlg.
AthCommonDataStore< AthCommonMsg< Algorithm > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
HECDetectorElement
LAr HEC Detector Element.
Definition: CaloDetectorElements.h:189
LArHVPathologyDbAlg::m_writeCondObjs
BooleanProperty m_writeCondObjs
Definition: LArHVPathologyDbAlg.h:57
ReadCellNoiseFromCool.tile
tile
Definition: ReadCellNoiseFromCool.py:92
FCALHVLine.h
FCALTile
A tile of the forward calorimeter readout geometry.
Definition: FCALTile.h:27
dumpHVPathFromNtuple.hvline
hvline
Definition: dumpHVPathFromNtuple.py:72
EMBCell.h
python.PyAthena.module
module
Definition: PyAthena.py:131
LArHVPathologyDbAlg::m_inpFile
StringProperty m_inpFile
Definition: LArHVPathologyDbAlg.h:58
LArHVPathologiesDb.h
FCALHVLine
Definition: FCALHVLine.h:15
EMBHVElectrode::hvLineNo
int hvLineNo(int iGap, const LArHVIdMapping *hvIdMapping) const
Definition: EMBHVElectrode.cxx:43
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:1963
CaloIdManager::getHEC_ID
const LArHEC_ID * getHEC_ID(void) const
Definition: CaloIdManager.cxx:95
LArHVPathologyDbAlg::m_hvPathologyKey
SG::ReadCondHandleKey< LArHVPathology > m_hvPathologyKey
Definition: LArHVPathologyDbAlg.h:77
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
lumiFormat.i
int i
Definition: lumiFormat.py:85
LArHVPathologyDbAlg::m_outFile
StringProperty m_outFile
Definition: LArHVPathologyDbAlg.h:59
dqt_zlumi_alleff_HIST.fout
fout
Definition: dqt_zlumi_alleff_HIST.py:59
FCALTile.h
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
FCALDetectorElement
LAr FCAL Detector Element.
Definition: CaloDetectorElements.h:261
python.LArMinBiasAlgConfig.int
int
Definition: LArMinBiasAlgConfig.py:59
CaloIdManager::getFCAL_ID
const LArFCAL_ID * getFCAL_ID(void) const
Definition: CaloIdManager.cxx:85
HECHVSubgap::hvLineNo
int hvLineNo(const LArHVIdMapping *hvIdMapping) const
Definition: HECHVSubgap.cxx:45
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:1565
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:1950
EMBPresamplerHVModule::hvLineNo
int hvLineNo(int iGap, const LArHVIdMapping *hvIdMapping) const
Definition: EMBPresamplerHVModule.cxx:91
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AtlasDetectorID::is_lar_hec
bool is_lar_hec(Identifier id) const
Definition: AtlasDetectorID.h:829
EMECCell.h
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
HECHVSubgap.h
LArDigits2NtupleDumper.FT
FT
Definition: LArDigits2NtupleDumper.py:77
FCALTile::getNumHVLines
static unsigned int getNumHVLines()
Get num hvlines.
Definition: FCALTile.cxx:81
EMBPresamplerHVModule.h
EMECPresamplerHVModule::hvLineNo
int hvLineNo(int iGap, const LArHVIdMapping *hvIdMapping) const
Definition: EMECPresamplerHVModule.cxx:74
LArHVPathologiesDb
Definition: LArHVPathologiesDb.h:19
LArHVPathologiesDb::m_v
std::vector< LArHVElectPathologyDb > m_v
Definition: LArHVPathologiesDb.h:31
LArEM_Base_ID::barrel_ec
int barrel_ec(const Identifier id) const
return barrel_ec according to :
LArHVPathologyDbAlg::getHVline
int getHVline(const LArHVIdMapping &hvIdMapping, const Identifier &id, short unsigned int ElectInd, const CaloDetDescrManager *calodetdescrmgr) const
Definition: LArHVPathologyDbAlg.cxx:374
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
LArHVPathologyDbAlg::initialize
virtual StatusCode initialize() override
Definition: LArHVPathologyDbAlg.cxx:40
LArFCAL_ID.h
LArHVPathologyDbAlg::m_larhec_id
const LArHEC_ID * m_larhec_id
Definition: LArHVPathologyDbAlg.h:65
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:1944
LArHVIdMapping
Definition: LArHVIdMapping.h:21
CaloDetDescrManager
This class provides the client interface for accessing the detector description information common to...
Definition: CaloDetDescrManager.h:473
LArHVPathologyDbAlg::execute
virtual StatusCode execute() override
Definition: LArHVPathologyDbAlg.cxx:69
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
LArHVPathologyDbAlg::createCondObjects
std::optional< LArHVPathologiesDb > createCondObjects(const EventContext &ctx, const CaloDetDescrManager *calodetdescrmgr) const
Definition: LArHVPathologyDbAlg.cxx:114
EMECPresamplerHVModule
Describes one HV Module within the EMEc Presampler.
Definition: EMECPresamplerHVModule.h:22
LArHVPathologyDbAlg::hvPathology2AttrList
std::unique_ptr< AthenaAttributeList > hvPathology2AttrList(const LArHVPathologiesDb &pathologyContainer) const
Definition: LArHVPathologyDbAlg.cxx:478
CaloIdManager.h
LArG4FSStartPointFilterLegacy.line2
line2
Definition: LArG4FSStartPointFilterLegacy.py:59
LArHVPathologyDbAlg::m_caloIdMgr
const CaloIdManager * m_caloIdMgr
Definition: LArHVPathologyDbAlg.h:63
EMECHVElectrode
Definition: EMECHVElectrode.h:15
HECCell.h
AtlasDetectorID::is_lar_em
bool is_lar_em(Identifier id) const
Definition: AtlasDetectorID.h:818
LArHVPathologiesDb::LArHVElectPathologyDb
Definition: LArHVPathologiesDb.h:22
HECHVSubgap
Definition: HECHVSubgap.h:15
EMECHVElectrode::hvLineNo
int hvLineNo(int iGap, const LArHVIdMapping *hvIdMapping) const
Definition: EMECHVElectrode.cxx:49
EMBPresamplerHVModule
Describes one HV Module within the EMB Presampler.
Definition: EMBPresamplerHVModule.h:22
CaloCondBlobAlgs_fillNoiseFromASCII.blob
blob
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:96
CaloDetectorElements.h
Calo Subsystem specific Detector Elements + Dummy element for testing.
LArOnlineID.h
LArHVPathologyDbAlg::printCondObjects
StatusCode printCondObjects(const EventContext &ctx, const CaloDetDescrManager *calodetdescrmgr, const std::vector< LArHVPathologiesDb::LArHVElectPathologyDb > *path=nullptr) const
Definition: LArHVPathologyDbAlg.cxx:210
LArOnOffIdMapping
Definition: LArOnOffIdMapping.h:20
Identifier
Definition: IdentifierFieldParser.cxx:14