ATLAS Offline Software
LArHVPathologyDbAlg.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 "LArHVPathologyDbAlg.h"
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 
33 LArHVPathologyDbAlg::LArHVPathologyDbAlg(const std::string& name, ISvcLocator* pSvcLocator)
34  : AthAlgorithm(name, pSvcLocator)
35  , m_writeCondObjs(false)
36  , m_inpFile("LArHVPathology.inp")
37  , m_outFile("")
38  , m_folder("")
39  , m_outpTag("HVPathologies-TEST")
40  , m_regSvc("IOVRegistrationSvc",name)
41  , m_pathologyTool("LArHVPathologyDbTool")
42  , m_mode(0)
43 {
44  declareProperty("WriteCondObjs", m_writeCondObjs);
45  declareProperty("InpFile", m_inpFile);
46  declareProperty("OutFile", m_outFile);
47  declareProperty("Folder", m_folder);
48  declareProperty("TagName", m_outpTag);
49  declareProperty("Mode", m_mode,"Mode to read file (0=offlineID/elecID, 1=online ID fields + HV module/line, 2=type is HV value to overwrite)");
50 }
51 
53 = default;
54 
56 {
57  ATH_MSG_INFO(" in initialize()");
58 
59  if(m_folder.value().empty()) {
60  ATH_MSG_ERROR("Folder property not set. Exiting ... ");
61  return StatusCode::FAILURE;
62  }
63 
64  // Get HVPathology tool
65  ATH_CHECK(m_pathologyTool.retrieve());
66 
67  // Get the IOVRegistrationSvc when needed
68  if(m_writeCondObjs) ATH_CHECK(m_regSvc.retrieve());
69 
70  // retrieve LArEM id helpers
72 
76 
77  ATH_CHECK(detStore()->retrieve(m_laronline_id,"LArOnlineID"));
78 
82 
83  return StatusCode::SUCCESS;
84 }
85 
87 {
88  ATH_MSG_INFO(" in execute()");
89 
90  const EventContext& ctx = Gaudi::Hive::currentContext();
91 
92  int nevt = ctx.eventID().event_number();
93 
95  ATH_CHECK(caloMgrHandle.isValid());
96  const CaloDetDescrManager* calodetdescrmgr = *caloMgrHandle;
97 
98  if(m_writeCondObjs && nevt==1) {
99  ATH_MSG_INFO("Creating conditions objects");
100 
101  // Create cond objects
102  if(!createCondObjects(ctx,calodetdescrmgr).isSuccess()) {
103  ATH_MSG_ERROR("Could not create cond objects ");
104  m_writeCondObjs = false;
105  return StatusCode::FAILURE;
106  }
107  }
108 
109  // Dump cond objects
110  StatusCode sc = printCondObjects (ctx,calodetdescrmgr);
111  if(!sc.isSuccess()) {
112  ATH_MSG_ERROR("Could not print out cond objects");
113  return sc;
114  }
115 
116  return sc;
117 }
118 
120 {
121  ATH_MSG_INFO(" in stop()");
122  StatusCode sc= StatusCode::SUCCESS;
123 
124  if(m_writeCondObjs) {
126  if(!sc.isSuccess()) {
127  ATH_MSG_ERROR("Could not register objects");
128  return sc;
129  }
130  else {
131  ATH_MSG_INFO("Register OK");
132  }
133  }
134 
135  return sc;
136 }
137 
138 StatusCode LArHVPathologyDbAlg::createCondObjects (const EventContext & ctx, const CaloDetDescrManager* calodetdescrmgr)
139 {
140  ATH_MSG_INFO(" in createCondObjects() ");
141 
142  if(detStore()->contains<AthenaAttributeList>(m_folder)) {
143  ATH_MSG_INFO("EMB Pathologies already in SG, skipping ");
144  }
145  else {
147 
149  const LArOnOffIdMapping *cabling = *cabHdl;
150  if(!cabling) {
151  ATH_MSG_ERROR("Do not have cabling object with key " << m_cablingKey.key());
152  return StatusCode::FAILURE;
153  }
154  // Read input file and construct LArHVPathologiesDb for given folder
155  std::ifstream infile;
156  infile.open(m_inpFile.value().c_str());
157 
158  if(!infile.is_open()) {
159  ATH_MSG_ERROR("Unable to open " << m_inpFile << " for reading");
160  return StatusCode::FAILURE;
161  }
162 
163  char checkChar;
164  char commentSign('#');
165  std::string commentLine(""), foldername("");
166  unsigned int cellID;
167  unsigned short electInd, pathologyType;
168 
169  // Look for the folder name in the file
170  while(!infile.eof()) {
171  infile >> foldername;
172  if(foldername==m_folder.value())
173  break;
174  }
175 
176  if(foldername!=m_folder.value()) {
177  ATH_MSG_ERROR("Unable to find data for the folder " << m_folder
178  << " in the input file");
179  return StatusCode::FAILURE;
180  }
181  else
182  ATH_MSG_INFO("Found folder " << foldername << " in the input file");
183 
184  // Get data corresponding to the folder and put it into LArHVPathologiesDb object
185  LArHVPathologiesDb pathologies;
186 
187  ATH_MSG_INFO(" start reading input file ");
188  while(!infile.eof()) {
189  // Number or string?
190  checkChar = static_cast<char> (infile.get());
191  ATH_MSG_INFO(" checChar " << checkChar);
192  if(checkChar=='\n')
193  continue;
194  if((checkChar >= '0') && (checkChar <= '9')) {
195  // Number - read three values
196  infile.unget();
197  std::vector<unsigned int> elecList;
198  elecList.reserve(2);
199  if (m_mode==0) {
200  infile >> cellID >> electInd >> pathologyType;
201  elecList.push_back(electInd);
202  } else {
203  unsigned int bec,pos_neg,FT,slot,channel,hvModule,hvLine;
204  infile >> bec >> pos_neg >> FT >> slot >> channel >> hvModule >> hvLine >> pathologyType;
205  ATH_MSG_INFO(" read " << bec << " " << pos_neg << " " << FT << " " << slot << " " << channel << " " << hvModule << " " << hvLine << " " << pathologyType);
206  HWIdentifier hwid = m_laronline_id->channel_Id(bec,pos_neg,FT,slot,channel);
207  Identifier id = cabling->cnvToIdentifier( hwid);
208  cellID = (unsigned int)(id.get_identifier32().get_compact());
209  elecList=getElectInd(**hvIdMapping, id,hvModule,hvLine,calodetdescrmgr);
210  ATH_MSG_INFO(" cellId , elecList size " << cellID << " " << elecList.size());
211  }
212  for (unsigned int i=0;i<elecList.size();i++) {
214  electPath.cellID = cellID;
215  electPath.electInd = elecList[i];
216  if(m_mode==2) electPath.pathologyType = ((pathologyType&0x0FFF)<<4);
217  else electPath.pathologyType = pathologyType;
218  pathologies.m_v.push_back(electPath);
219  ATH_MSG_INFO("Created electrode pathology (" << cellID
220  << "," << elecList[i]
221  << "," << pathologyType << ")");
222  }
223  }
224  else if(checkChar==commentSign) {
225  // Skip the comment
226  std::getline(infile,commentLine);
227  }
228  else {
229  // We found another folder. Stop parsing
230  break;
231  }
232  }
233 
234  infile.close();
235  ATH_MSG_INFO("Finished parsing input file");
236 
237  AthenaAttributeList* attrlist = m_pathologyTool->hvPathology2AttrList(pathologies);
238  ATH_MSG_INFO("Created Attribute List");
239 
240  StatusCode sc = detStore()->record(attrlist,m_folder);
241  if(!sc.isSuccess()) {
242  ATH_MSG_ERROR("Could not record " << m_folder);
243  return sc;
244  }
245  else
246  ATH_MSG_INFO("Recorded " << m_folder);
247  }
248 
249  return StatusCode::SUCCESS;
250 }
251 
252 StatusCode LArHVPathologyDbAlg::printCondObjects (const EventContext& ctx, const CaloDetDescrManager* calodetdescrmgr)
253 {
254  ATH_MSG_INFO(" in printCondObjects() ");
255 
258  const LArOnOffIdMapping *cabling = *cabHdl;
259  if(!cabling) {
260  ATH_MSG_ERROR("Do not have cabling object with key " << m_cablingKey.key());
261  return StatusCode::FAILURE;
262  }
263 
264  std::ofstream *fout=nullptr;
265  const AthenaAttributeList* attrlist = nullptr;
266  StatusCode sc = detStore()->retrieve(attrlist,m_folder);
267 
268  if(sc.isFailure())
269  ATH_MSG_WARNING("Could not find object for " << m_folder);
270  else {
271  LArHVPathologiesDb* pathologyContainer = m_pathologyTool->attrList2HvPathology(*attrlist);
272  ATH_MSG_INFO("Unpacked pathologies from Attribute List for " << m_folder);
273  if(!m_outFile.value().empty()) {
274  fout = new std::ofstream(m_outFile.value().c_str());
275  if((!fout) || (fout && !(fout->good()))) {
276  ATH_MSG_WARNING("Could not open output file: " << m_outFile.value());
277  fout=nullptr;
278  }
279  if(fout) *fout<<m_folder.value()<<std::endl;
280  }
281  for(unsigned i=0; i<pathologyContainer->m_v.size(); ++i) {
282  LArHVPathologiesDb::LArHVElectPathologyDb electPath = pathologyContainer->m_v[i];
283  if(m_mode==0) {
284  ATH_MSG_INFO("Got pathology for cell ID: " << electPath.cellID
285  << "(" << electPath.electInd
286  << "," << electPath.pathologyType << ") ");
287  if(fout) *fout<<electPath.cellID<<"\t"<<electPath.electInd<<"\t"<<electPath.pathologyType<<std::endl;
288  } else {
289  ATH_MSG_INFO("Got pathology for cell ID: " << electPath.cellID);
290  HWIdentifier hwid = cabling->createSignalChannelID(Identifier32(electPath.cellID));
291  int HVLine=getHVline(**hvIdMapping,Identifier(electPath.cellID),electPath.electInd,calodetdescrmgr);
292  if(HVLine<0) {
293  ATH_MSG_ERROR("No HVline for cell "<<electPath.cellID);
294  } else {
295  int hvmodule=HVLine/1000;
296  int hvline=HVLine%1000;
297  if(m_mode==1) {
298  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);
299  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;
300  } else if (m_mode==2){
301  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));
302  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;
303 
304  }
305  }
306  }
307  }
308  delete pathologyContainer;
309  }
310  if(fout) fout->close();
311  return sc;
312 }
313 
315 {
316  ATH_MSG_INFO("entering registerCondObject()" );
317 
318  std::string objname("AthenaAttributeList");
319 
320  StatusCode sc = m_regSvc->registerIOV(objname, m_folder, m_outpTag);
321  if(!sc.isSuccess())
322  ATH_MSG_ERROR("Could not register (" << objname << ", " << m_outpTag << ") in IOV DB ");
323  else
324  ATH_MSG_INFO("Successfully registered");
325 
326  return sc;
327 }
328 
329 std::vector<unsigned int>
331  const Identifier & id,
332  unsigned int module,
333  unsigned int line,
334  const CaloDetDescrManager* calodetdescrmgr)
335 {
336 
337  std::vector<unsigned int> list;
338  list.clear();
339  int HVline = 1000*module + line;
340 // EM calo
341  if (m_larem_id->is_lar_em(id)) {
342 // LAr EMB
343  if (abs(m_larem_id->barrel_ec(id))==1 && m_larem_id->sampling(id) > 0) {
344  if (const EMBDetectorElement* embElement = dynamic_cast<const EMBDetectorElement*>(calodetdescrmgr->get_element(id))) {
345  const EMBCellConstLink cell = embElement->getEMBCell();
346  unsigned int nelec = cell->getNumElectrodes();
347  for (unsigned int i=0;i<nelec;i++) {
348  const EMBHVElectrode& electrode = cell->getElectrode(i);
349  for (unsigned int igap=0;igap<2;igap++) {
350  if (electrode.hvLineNo(igap, &hvIdMapping)==HVline) {
351  list.push_back(2*i+igap);
352  }
353  }
354  }
355  }
356  }
357 // LAr EMEC
358  if (abs(m_larem_id->barrel_ec(id))>1 && m_larem_id->sampling(id) > 0) {
359  if (const EMECDetectorElement* emecElement = dynamic_cast<const EMECDetectorElement*>(calodetdescrmgr->get_element(id))) {
360  const EMECCellConstLink cell = emecElement->getEMECCell();
361  unsigned int nelec = cell->getNumElectrodes();
362  for (unsigned int i=0;i<nelec;i++) {
363  const EMECHVElectrode& electrode = cell->getElectrode(i);
364  for (unsigned int igap=0;igap<2;igap++) {
365  if (electrode.hvLineNo(igap, &hvIdMapping)==HVline) {
366  list.push_back(2*i+igap);
367  }
368  }
369  }
370  }
371  }
372 // EMBPS
373  if (abs(m_larem_id->barrel_ec(id))==1 && m_larem_id->sampling(id)==0) {
374  if (const EMBDetectorElement* embElement = dynamic_cast<const EMBDetectorElement*>(calodetdescrmgr->get_element(id))) {
375  const EMBCellConstLink cell = embElement->getEMBCell();
376  const EMBPresamplerHVModule& hvmodule = cell->getPresamplerHVModule ();
377  for (unsigned int igap=0;igap<2;igap++) {
378  if (hvmodule.hvLineNo(igap, &hvIdMapping)==HVline) {
379  list.push_back(igap);
380  }
381  }
382  }
383  }
384 // EMECPS
385  if (abs(m_larem_id->barrel_ec(id))>1 && m_larem_id->sampling(id)==0) {
386  if (const EMECDetectorElement* emecElement = dynamic_cast<const EMECDetectorElement*>(calodetdescrmgr->get_element(id))) {
387  const EMECCellConstLink cell = emecElement->getEMECCell();
388  const EMECPresamplerHVModule& hvmodule = cell->getPresamplerHVModule ();
389  for (unsigned int igap=0;igap<2;igap++) {
390  if (hvmodule.hvLineNo(igap, &hvIdMapping)==HVline) {
391  list.push_back(igap);
392  }
393  }
394  }
395  }
396  }
397 //HEC
398  if (m_larhec_id->is_lar_hec(id)) {
399  if (const HECDetectorElement* hecElement = dynamic_cast<const HECDetectorElement*>(calodetdescrmgr->get_element(id))) {
400  const HECCellConstLink cell = hecElement->getHECCell();
401  unsigned int nsubgaps = cell->getNumSubgaps();
402  for (unsigned int i=0;i<nsubgaps;i++) {
403  const HECHVSubgap& subgap = cell->getSubgap(i);
404  if (subgap.hvLineNo(&hvIdMapping)==HVline) {
405  list.push_back(i);
406  }
407  }
408  }
409  }
410 //FCAL
411  if (m_larfcal_id->is_lar_fcal(id)) {
412  if (const FCALDetectorElement* fcalElement = dynamic_cast<const FCALDetectorElement*>(calodetdescrmgr->get_element(id))) {
413  const FCALTile* tile = fcalElement->getFCALTile();
414  unsigned int nlines = FCALTile::getNumHVLines();
415  for (unsigned int i=0;i<nlines;i++) {
416  const FCALHVLine* line2 = tile->getHVLine(i);
417  if(line2) {
418  if (line2->hvLineNo(&hvIdMapping)==HVline) {
419  list.push_back(i);
420  }
421  }
422  }
423  }
424  }
425 
426  return list;
427 
428 }
429 
431  const Identifier & id,
432  short unsigned int ElectInd,
433  const CaloDetDescrManager* calodetdescrmgr)
434 {
435 
436  unsigned int igap, ielec;
437 // EM calo
438  if (m_larem_id->is_lar_em(id)) {
439 // LAr EMB
440  if (abs(m_larem_id->barrel_ec(id))==1 && m_larem_id->sampling(id) > 0) {
441  if (const EMBDetectorElement* embElement = dynamic_cast<const EMBDetectorElement*>(calodetdescrmgr->get_element(id))) {
442  const EMBCellConstLink cell = embElement->getEMBCell();
443  unsigned int nelec = cell->getNumElectrodes();
444  igap = ElectInd % 2;
445  ielec = std::div(ElectInd - igap, 2).quot;
446  if (ielec > nelec) {
447  ATH_MSG_ERROR("Wrong electrode number " << ielec << " for cell "<< id.get_identifier32().get_compact());
448  return -1;
449  } else {
450  return cell->getElectrode(ielec).hvLineNo(igap, &hvIdMapping);
451  }
452  }
453  }
454 // LAr EMEC
455  if (abs(m_larem_id->barrel_ec(id))>1 && m_larem_id->sampling(id) > 0) {
456  if (const EMECDetectorElement* emecElement = dynamic_cast<const EMECDetectorElement*>(calodetdescrmgr->get_element(id))) {
457  const EMECCellConstLink cell = emecElement->getEMECCell();
458  unsigned int nelec = cell->getNumElectrodes();
459  igap = ElectInd % 2;
460  ielec = std::div(ElectInd - igap, 2).quot;
461  if (ielec > nelec) {
462  ATH_MSG_ERROR("Wrong electrode number " << ielec << " for cell "<< id.get_identifier32().get_compact());
463  return -1;
464  } else {
465  return cell->getElectrode(ielec).hvLineNo(igap, &hvIdMapping);
466  }
467  }
468  }
469 // EMBPS
470  if (abs(m_larem_id->barrel_ec(id))==1 && m_larem_id->sampling(id)==0) {
471  if (const EMBDetectorElement* embElement = dynamic_cast<const EMBDetectorElement*>(calodetdescrmgr->get_element(id))) {
472  const EMBCellConstLink cell = embElement->getEMBCell();
473  const EMBPresamplerHVModule& hvmodule = cell->getPresamplerHVModule ();
474  if(ElectInd >= 2) {
475  ATH_MSG_ERROR("Wrong igap "<<ElectInd<<" for EMBPS cell "<<id.get_identifier32().get_compact());
476  return -1;
477  } else {
478  return hvmodule.hvLineNo(ElectInd, &hvIdMapping);
479  }
480  }
481  }
482 // EMECPS
483  if (abs(m_larem_id->barrel_ec(id))>1 && m_larem_id->sampling(id)==0) {
484  if (const EMECDetectorElement* emecElement = dynamic_cast<const EMECDetectorElement*>(calodetdescrmgr->get_element(id))) {
485  const EMECCellConstLink cell = emecElement->getEMECCell();
486  const EMECPresamplerHVModule& hvmodule = cell->getPresamplerHVModule ();
487  if(ElectInd >= 2) {
488  ATH_MSG_ERROR("Wrong igap "<<ElectInd<<" for EMECPS cell "<<id.get_identifier32().get_compact());
489  return -1;
490  } else {
491  return hvmodule.hvLineNo(ElectInd, &hvIdMapping);
492  }
493  }
494  }
495  }
496 //HEC
497  if (m_larhec_id->is_lar_hec(id)) {
498  if (const HECDetectorElement* hecElement = dynamic_cast<const HECDetectorElement*>(calodetdescrmgr->get_element(id))) {
499  const HECCellConstLink cell = hecElement->getHECCell();
500  unsigned int nsubgaps = cell->getNumSubgaps();
501  if( ElectInd >= nsubgaps) {
502  ATH_MSG_ERROR("Wrong igap "<<ElectInd<<" for HEC cell "<<id.get_identifier32().get_compact());
503  return -1;
504  } else {
505  return cell->getSubgap(ElectInd).hvLineNo(&hvIdMapping);
506  }
507  }
508  }
509 //FCAL
510  if (m_larfcal_id->is_lar_fcal(id)) {
511  if (const FCALDetectorElement* fcalElement = dynamic_cast<const FCALDetectorElement*>(calodetdescrmgr->get_element(id))) {
512  const FCALTile* tile = fcalElement->getFCALTile();
513  unsigned int nlines = FCALTile::getNumHVLines();
514  if( ElectInd >= nlines) {
515  ATH_MSG_ERROR("Wrong line "<<ElectInd<<" for FCAL cell "<<id.get_identifier32().get_compact());
516  return -1;
517  } else {
518  const FCALHVLine* line2 = tile->getHVLine(ElectInd);
519  if(line2) {
520  return line2->hvLineNo(&hvIdMapping);
521  } else {
522  ATH_MSG_ERROR("Do not have HVLine for "<<ElectInd<<" for FCAL cell "<<id.get_identifier32().get_compact());
523  return -1;
524  }
525  }
526  }
527  }
528 
529  // should not get up to this point....
530  return -1;
531 
532 }
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:61
Identifier32
Definition: Identifier32.h:25
EMBHVElectrode
Definition: EMBHVElectrode.h:15
LArHVPathologyDbAlg::registerCondObjects
StatusCode registerCondObjects()
Definition: LArHVPathologyDbAlg.cxx:314
LArHVPathologyDbAlg::m_larem_id
const LArEM_ID * m_larem_id
Definition: LArHVPathologyDbAlg.h:59
EMECHVElectrode.h
checkFileSG.line
line
Definition: checkFileSG.py:75
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:50
run.infile
string infile
Definition: run.py:13
plotting.yearwise_efficiency.channel
channel
Definition: yearwise_efficiency.py:28
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
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
ParticleGun_SamplingFraction.bec
int bec
Definition: ParticleGun_SamplingFraction.py:89
AthCommonDataStore< AthCommonMsg< Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
LArHVPathologyDbAlg::m_caloMgrKey
SG::ReadCondHandleKey< CaloDetDescrManager > m_caloMgrKey
Definition: LArHVPathologyDbAlg.h:69
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
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:67
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
LArHVPathologyDbAlg::~LArHVPathologyDbAlg
~LArHVPathologyDbAlg()
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 :
ILArHVPathologyDbTool.h
LArHVPathologyDbAlg::m_hvCablingKey
SG::ReadCondHandleKey< LArHVIdMapping > m_hvCablingKey
Definition: LArHVPathologyDbAlg.h:65
LArHVPathologyDbAlg::m_laronline_id
const LArOnlineID * m_laronline_id
Definition: LArHVPathologyDbAlg.h:62
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
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:1942
AthenaAttributeList.h
LArHVPathologyDbAlg::m_mode
int m_mode
Definition: LArHVPathologyDbAlg.h:56
EMECPresamplerHVModule.h
EMBHVElectrode.h
LArHVPathologyDbAlg::m_pathologyTool
ToolHandle< ILArHVPathologyDbTool > m_pathologyTool
Definition: LArHVPathologyDbAlg.h:54
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
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:46
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:134
LArHVPathologiesDb::LArHVElectPathologyDb::electInd
unsigned short electInd
Definition: LArHVPathologiesDb.h:24
LArHVPathologyDbAlg::m_inpFile
StringProperty m_inpFile
Definition: LArHVPathologyDbAlg.h:47
LArHVPathologiesDb.h
LArHVPathologyDbAlg::m_regSvc
ServiceHandle< IIOVRegistrationSvc > m_regSvc
Definition: LArHVPathologyDbAlg.h:53
FCALHVLine
Definition: FCALHVLine.h:15
LArHVPathologyDbAlg::printCondObjects
StatusCode printCondObjects(const EventContext &ctx, const CaloDetDescrManager *calodetdescrmgr)
Definition: LArHVPathologyDbAlg.cxx:252
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:1967
CaloIdManager::getHEC_ID
const LArHEC_ID * getHEC_ID(void) const
Definition: CaloIdManager.cxx:95
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
lumiFormat.i
int i
Definition: lumiFormat.py:92
LArHVPathologyDbAlg::m_outFile
StringProperty m_outFile
Definition: LArHVPathologyDbAlg.h:48
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
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
FCALDetectorElement
LAr FCAL Detector Element.
Definition: CaloDetectorElements.h:261
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
LArHVPathologyDbAlg::createCondObjects
StatusCode createCondObjects(const EventContext &ctx, const CaloDetDescrManager *calodetdescrmgr)
Definition: LArHVPathologyDbAlg.cxx:138
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
LArHVPathologyDbAlg::m_outpTag
StringProperty m_outpTag
Definition: LArHVPathologyDbAlg.h:51
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
EMBPresamplerHVModule::hvLineNo
int hvLineNo(int iGap, const LArHVIdMapping *hvIdMapping) const
Definition: EMBPresamplerHVModule.cxx:91
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AthenaAttributeList
An AttributeList represents a logical row of attributes in a metadata table. The name and type of eac...
Definition: PersistentDataModel/PersistentDataModel/AthenaAttributeList.h:45
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
AthAlgorithm
Definition: AthAlgorithm.h:47
FCALTile::getNumHVLines
static unsigned int getNumHVLines()
Get num hvlines.
Definition: FCALTile.cxx:81
LArHVPathologiesDb::LArHVElectPathologyDb::pathologyType
unsigned short pathologyType
Definition: LArHVPathologiesDb.h:25
LArHVPathologyDbAlg::getElectInd
std::vector< unsigned int > getElectInd(const LArHVIdMapping &hvIdMapping, const Identifier &id, unsigned int module, unsigned int line, const CaloDetDescrManager *calodetdescrmgr)
Definition: LArHVPathologyDbAlg.cxx:330
EMBPresamplerHVModule.h
EMECPresamplerHVModule::hvLineNo
int hvLineNo(int iGap, const LArHVIdMapping *hvIdMapping) const
Definition: EMECPresamplerHVModule.cxx:74
LArHVPathologiesDb
Definition: LArHVPathologiesDb.h:19
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
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 :
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
LArHVPathologyDbAlg::stop
virtual StatusCode stop() override
Definition: LArHVPathologyDbAlg.cxx:119
LArHVPathologyDbAlg::initialize
virtual StatusCode initialize() override
Definition: LArHVPathologyDbAlg.cxx:55
LArNewCalib_Delay_OFC_Cali.FT
FT
Definition: LArNewCalib_Delay_OFC_Cali.py:120
LArFCAL_ID.h
LArHVPathologyDbAlg::m_larhec_id
const LArHEC_ID * m_larhec_id
Definition: LArHVPathologyDbAlg.h:60
LArHVPathologyDbAlg::LArHVPathologyDbAlg
LArHVPathologyDbAlg(const std::string &name, ISvcLocator *pSvcLocator)
Definition: LArHVPathologyDbAlg.cxx:33
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
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::getHVline
int getHVline(const LArHVIdMapping &hvIdMapping, const Identifier &id, short unsigned int ElectInd, const CaloDetDescrManager *calodetdescrmgr)
Definition: LArHVPathologyDbAlg.cxx:430
LArHVPathologyDbAlg::execute
virtual StatusCode execute() override
Definition: LArHVPathologyDbAlg.cxx:86
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
EMECPresamplerHVModule
Describes one HV Module within the EMEc Presampler.
Definition: EMECPresamplerHVModule.h:22
CaloIdManager.h
LArG4FSStartPointFilterLegacy.line2
line2
Definition: LArG4FSStartPointFilterLegacy.py:59
LArHVPathologyDbAlg::m_caloIdMgr
const CaloIdManager * m_caloIdMgr
Definition: LArHVPathologyDbAlg.h:58
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
CaloDetectorElements.h
Calo Subsystem specific Detector Elements + Dummy element for testing.
LArOnlineID.h
LArOnOffIdMapping
Definition: LArOnOffIdMapping.h:20