ATLAS Offline Software
IdDictParser.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
13 #include "IdDict/IdDictField.h"
15 #include "IdDict/IdDictLabel.h"
16 #include "IdDict/IdDictRange.h"
17 #include "IdDict/IdDictReference.h"
18 #include "IdDict/IdDictRegion.h"
19 #include "IdDict/IdDictSubRegion.h"
21 
22 #include <cstdlib>
23 #include <iostream>
24 
25 namespace IdDictParserNS{
26  class Debugger {
27  public:
28  static bool get_debug_state(){
29  return ::getenv ("XMLDEBUG") != 0;
30  }
31  //
32  static bool debug (){
33  static const bool debug_state = get_debug_state();
34  return debug_state;
35  }
36  //
37  static void tab (int n) {
38  std::cout << std::string(n, ' ');
39  }
40  };
41 
43  public:
44  void do_start (XMLCoreParser& parser, const XMLCoreNode& node);
45  void do_end (XMLCoreParser& parser, const XMLCoreNode& node);
46  virtual void idd_start (IdDictParser& parser, const XMLCoreNode& node);
47  virtual void idd_end (IdDictParser& parser, const XMLCoreNode& node);
48  };
49 
51  public:
52  void idd_start (IdDictParser& parser, const XMLCoreNode& node);
53  void idd_end (IdDictParser& parser, const XMLCoreNode& node);
54  };
55 
57  public:
58  void idd_start (IdDictParser& parser, const XMLCoreNode& node);
59  void idd_end (IdDictParser& parser, const XMLCoreNode& node);
60  };
61 
62  class FieldFactory : public IdDictBaseFactory {
63  public:
64  void idd_start (IdDictParser& parser, const XMLCoreNode& node);
65  void idd_end (IdDictParser& parser, const XMLCoreNode& node);
66  };
67 
68  class LabelFactory : public IdDictBaseFactory {
69  public:
70  void idd_start (IdDictParser& parser, const XMLCoreNode& node);
71  void idd_end (IdDictParser& parser, const XMLCoreNode& node);
72  };
73 
75  public:
76  void idd_start (IdDictParser& parser, const XMLCoreNode& node);
77  void idd_end (IdDictParser& parser, const XMLCoreNode& node);
78  };
79 
80  class RegionFactory : public IdDictBaseFactory {
81  public:
82  void idd_start (IdDictParser& parser, const XMLCoreNode& node);
83  void idd_end (IdDictParser& parser, const XMLCoreNode& node);
84  };
85 
87  public:
88  void idd_start (IdDictParser& parser, const XMLCoreNode& node);
89  void idd_end (IdDictParser& parser, const XMLCoreNode& node);
90  };
91 
93  public:
94  virtual void idd_start (IdDictParser& parser, const XMLCoreNode& node);
95  virtual void idd_end (IdDictParser& parser, const XMLCoreNode& node);
96  };
97 
98  class RangeFactory : public RegionEntryFactory {
99  public:
100  void idd_start (IdDictParser& parser, const XMLCoreNode& node);
101  };
102 
104  public:
105  void idd_start (IdDictParser& parser, const XMLCoreNode& node);
106  };
107 
109  public:
110  void idd_start (IdDictParser& parser, const XMLCoreNode& node);
111  };
112 }
113 
114 using namespace IdDictParserNS;
115 
117  register_factory ("IdDict", std::make_unique<IdDictMgrFactory>());
118  register_factory ("IdDictionary", std::make_unique<DictionaryFactory>());
119  register_factory ("field", std::make_unique<FieldFactory>());
120  register_factory ("label", std::make_unique<LabelFactory>());
121  register_factory ("alternate_regions", std::make_unique<AltRegionsFactory>());
122  register_factory ("region", std::make_unique<RegionFactory>());
123  register_factory ("subregion", std::make_unique<SubRegionFactory>());
124  register_factory ("range", std::make_unique<RangeFactory>());
125  register_factory ("reference", std::make_unique<ReferenceFactory>());
126  register_factory ("dictionary", std::make_unique<DictionaryRefFactory>());
127 
128  m_dictionary = 0;
129  m_field = 0;
130  m_region = 0;
131  m_subregion = 0;
132  m_altregions = 0;
133  m_regionentry = 0;
134 }
135 
136 IdDictMgr&
137 IdDictParser::parse (const std::string& file_name, const std::string& tag) {
138  m_idd.clear ();
140  if (Debugger::debug ()) {
141  std::cout << "IdDictParser::parse1>" << std::endl;
142  }
144  if (Debugger::debug ()) {
145  std::cout << "IdDictParser::parse2>" << std::endl;
146  }
148  if (Debugger::debug ()) {
149  std::cout << "IdDictParser::parse3>" << std::endl;
150  }
151  return (m_idd);
152 }
153 
154 void
155 IdDictBaseFactory::do_start (XMLCoreParser& parser,
156  const XMLCoreNode& node) {
157  parser.up ();
158  idd_start (static_cast<IdDictParser&>(parser), node);
159 }
160 
161 void
163  idd_end (static_cast<IdDictParser&>(parser), node);
164  parser.down ();
165 }
166 
168  const XMLCoreNode& /*node*/) {
169 }
170 
172  const XMLCoreNode& /*node*/) {
173 }
174 
175 
176 
177 void
179  if (Debugger::debug ()) {
180  Debugger::tab (parser.level());
181  std::cout << "IdDictMgrFactoryFactory::idd_start>" << std::endl;
182  }
183  parser.m_idd.set_DTD_version(get_value (node, "DTD_version"));
184 }
185 
186 void
188  const XMLCoreNode& /*node*/) {
189  if (Debugger::debug ()) {
190  Debugger::tab (parser.level());
191  std::cout << "IdDictMgrFactoryFactory::idd_end>" << std::endl;
192  }
193 }
194 
195 void
197  if (Debugger::debug ()) {
198  Debugger::tab (parser.level());
199  std::cout << "DictionaryFactory::idd_start>" << std::endl;
200  }
201  parser.m_dictionary = new IdDictDictionary (get_value (node, "name"),
202  get_value (node, "version"),
203  get_value (node, "date"),
204  get_value (node, "author"));
205 }
206 
207 void
209  if (Debugger::debug ()) {
210  Debugger::tab (parser.level());
211  std::cout << "DictionaryFactory::idd_end> d=" << parser.m_dictionary << std::endl;
212  }
213 
214  if (parser.m_dictionary != 0){
215  parser.m_idd.add_dictionary (parser.m_dictionary);
216  parser.m_dictionary = 0;
217  }
218 }
219 
220 void
222  if (Debugger::debug ()) {
223  Debugger::tab (parser.level());
224  std::cout << "FieldFactory::idd_start>" << std::endl;
225  }
226  parser.m_field = new IdDictField(get_value (node, "name"));
227 }
228 
229 void
231  if (Debugger::debug ()) {
232  Debugger::tab (parser.level());
233  std::cout << "FieldFactory::idd_end>" << std::endl;
234  }
235 
236  if (parser.m_field != 0) {
237  if (parser.m_dictionary != 0) parser.m_dictionary->add_field (parser.m_field);
238  else delete parser.m_field;
239  parser.m_field = 0;
240  }
241 }
242 
243 void
245  if (Debugger::debug ()) {
246  Debugger::tab (parser.level());
247  std::cout << "LabelFactory::idd_start>" << std::endl;
248  }
249 
251  if (has_attribute (node, "value")) {
252  label = new IdDictLabel (get_value (node, "name"), get_int (node, "value"));
253  } else {
254  label = new IdDictLabel (get_value (node, "name"));
255  }
256  if (parser.m_field != 0) parser.m_field->add_label (label);
257  else delete label;
258 }
259 
260 void
262  if (Debugger::debug ()) {
263  Debugger::tab (parser.level());
264  std::cout << "LabelFactory::idd_end>" << std::endl;
265  }
266 }
267 
268 void
270  if (Debugger::debug ()) {
271  Debugger::tab (parser.level());
272  std::cout << "AltRegionsFactory::idd_start>" << std::endl;
273  }
274  IdDictAltRegions* altregions = new IdDictAltRegions;
275  if (Debugger::debug ()) {
276  Debugger::tab (parser.level());
277  std::cout << "AltRegionsFactory::idd_start> previous=" << parser.m_altregions
278  << " new=" << altregions
279  << std::endl;
280  }
281  parser.m_altregions = altregions;
282 }
283 
284 void
286  if (Debugger::debug ()) {
287  Debugger::tab (parser.level());
288  std::cout << "AltRegionsFactory::idd_end>" << std::endl;
289  }
290  if (parser.m_altregions != 0) {
291  // Set altregions to point to the default region
292  parser.m_altregions->select_region ("");
293 
294  // add to dict
295  if (parser.m_dictionary != 0) parser.m_dictionary->add_dictentry (parser.m_altregions);
296  else delete parser.m_altregions;
297  // reset pointer to altregions
298  parser.m_altregions = 0;
299  }
300 }
301 
302 void
304  if (Debugger::debug ()) {
305  Debugger::tab (parser.level());
306  std::cout << "RegionFactory::idd_start>" << std::endl;
307  }
308 
309  parser.m_region = new IdDictRegion (get_value (node, "name"),
310  get_value (node, "group"),
311  get_value (node, "tag"));
312 
313  // check for next region in absolute eta
314  if (has_attribute (node, "next_abs_eta")) {
315  parser.m_region->set_next_abs_eta_name (get_value (node, "next_abs_eta"));
316  }
317 
318  // Look for regions in the previous sampling
319  if (has_attribute (node, "prev_samp")) {
320  std::string names = get_value (node, "prev_samp");
321  std::string::size_type pos = 0;
322  for (;;) {
323  std::string::size_type next;
324  next = names.find_first_not_of (" ", pos);
325  if (next == std::string::npos) break;
326  pos = next;
327  next = names.find_first_of (" ", pos);
328  std::string name;
329  name = names.substr (pos, next - pos);
330  parser.m_region->add_prev_samp_name (name);
331  if (next == std::string::npos) {
332  break;
333  } else {
334  pos = next;
335  }
336  }
337  }
338  // Look for regions in the next sampling
339  if (has_attribute (node, "next_samp")) {
340  std::string names = get_value (node, "next_samp");
341  std::string::size_type pos = 0;
342  for (;;) {
343  std::string::size_type next;
344 
345  next = names.find_first_not_of (" ", pos);
346  if (next == std::string::npos) break;
347  pos = next;
348  next = names.find_first_of (" ", pos);
349 
350  std::string name;
351  name = names.substr (pos, next - pos);
352  parser.m_region->add_next_samp_name (name);
353 
354  if (next == std::string::npos) {
355  break;
356  } else {
357  pos = next;
358  }
359  }
360  }
361  // Look for regions in the prev subdet
362  if (has_attribute (node, "prev_subdet")) {
363  std::string names = get_value (node, "prev_subdet");
364  std::string::size_type pos = 0;
365  for (;;) {
366  std::string::size_type prev;
367  prev = names.find_first_not_of (" ", pos);
368  if (prev == std::string::npos) break;
369  pos = prev;
370  prev = names.find_first_of (" ", pos);
371  std::string name;
372  name = names.substr (pos, prev - pos);
373  parser.m_region->add_prev_subdet_name (name);
374  if (prev == std::string::npos) {
375  break;
376  } else {
377  pos = prev;
378  }
379  }
380  }
381  // Look for regions in the next subdet
382  if (has_attribute (node, "next_subdet")) {
383  std::string names = get_value (node, "next_subdet");
384  std::string::size_type pos = 0;
385  for (;;) {
386  std::string::size_type next;
387  next = names.find_first_not_of (" ", pos);
388  if (next == std::string::npos) break;
389  pos = next;
390  next = names.find_first_of (" ", pos);
391  std::string name;
392  name = names.substr (pos, next - pos);
393  parser.m_region->add_next_subdet_name (name);
394  if (next == std::string::npos) {
395  break;
396  } else {
397  pos = next;
398  }
399  }
400  }
401 
402  parser.m_region->set_etaphi (get_double (node, "eta0"),
403  get_double (node, "deta"),
404  get_double (node, "phi0"),
405  get_double (node, "dphi"));
406 
407  if (Debugger::debug ()) {
408  Debugger::tab (parser.level());
409  std::cout << "RegionFactory::idd_start> name, group, tag, next eta, prev/next samp, prev/next subdet "
410  << parser.m_region->name() << " "
411  << parser.m_region->group_name() << " "
412  << parser.m_region->tag() << " "
413  << parser.m_region->next_abs_eta() << " ";
414  for (const std::string& s : parser.m_region->prev_samp_names()) {
415  std::cout << s << " ";
416  }
417  for (const std::string& s : parser.m_region->next_samp_names()) {
418  std::cout << s << " ";
419  }
420  for (const std::string& s : parser.m_region->prev_subdet_names()) {
421  std::cout << s << " ";
422  }
423  for (const std::string& s : parser.m_region->next_subdet_names()) {
424  std::cout << s << " ";
425  }
426  std::cout << parser.m_region->eta0() << " "
427  << parser.m_region->deta() << " "
428  << parser.m_region->phi0() << " "
429  << parser.m_region->dphi() << " "
430  << std::endl;
431  }
432 }
433 
434 void
436  if (Debugger::debug ()){
437  Debugger::tab (parser.level());
438  std::cout << "RegionFactory::idd_end>" << std::endl;
439  }
440  if (parser.m_region != 0){
441  if (parser.m_altregions != 0) {
442  parser.m_altregions->add_region (parser.m_region);
443  if (parser.m_dictionary != 0) parser.m_dictionary->add_region (parser.m_region);
444  // Check whether region is empty, i.e. no region entries have
445  // been found and added
446  if (parser.m_region->entries().size() == 0) {
447  parser.m_region->set_is_empty();
448  }
449  } else if (parser.m_dictionary != 0) {
450  parser.m_dictionary->add_dictentry (parser.m_region);
451  parser.m_dictionary->add_region (parser.m_region);
452  // Check whether region is empty, i.e. no region entries have
453  // been found and added
454  if (parser.m_region->entries().size() == 0) {
455  parser.m_region->set_is_empty();
456  }
457  } else {
458  delete parser.m_region;
459  }
460  parser.m_region = 0;
461  }
462 }
463 
464 void
466  if (Debugger::debug ()){
467  Debugger::tab (parser.level());
468  std::cout << "SubRegionFactory::idd_start>" << std::endl;
469  }
470  parser.m_subregion = new IdDictSubRegion (get_value (node, "name"), "", "");
471 }
472 
473 void
475  if (Debugger::debug ()) {
476  Debugger::tab (parser.level());
477  std::cout << "SubRegionFactory::idd_end>" << std::endl;
478  }
479  if (parser.m_subregion != 0) {
480  if (parser.m_dictionary != 0) parser.m_dictionary->add_subregion (parser.m_subregion);
481  else delete parser.m_subregion;
482 
483  parser.m_subregion = 0;
484  }
485 }
486 
487 void
489  if (Debugger::debug ()){
490  Debugger::tab (parser.level());
491  std::cout << "RegionEntryFactory::idd_start>" << std::endl;
492  }
493 }
494 
495 void
497  if (Debugger::debug ()) {
498  Debugger::tab (parser.level());
499  std::cout << "RegionEntryFactory::idd_end>" << std::endl;
500  }
501  if (parser.m_regionentry != 0){
502  if (parser.m_region != 0) parser.m_region->add_entry (parser.m_regionentry);
503  else if (parser.m_subregion != 0) parser.m_subregion->add_entry (parser.m_regionentry);
504  else delete parser.m_regionentry;
505  parser.m_regionentry = 0;
506  }
507 }
508 
509 void
511  if (Debugger::debug ()) {
512  Debugger::tab (parser.level());
513  std::cout << "RangeFactory::idd_start>" << std::endl;
514  }
515  IdDictRange* range = new IdDictRange (get_value (node, "field"));
516  parser.m_regionentry = range;
517  if (has_attribute (node, "value")){
518  range->set_range (get_value (node, "value"));
519  } else if (has_attribute (node, "values")) {
520  std::string labels = get_value (node, "values");
521  std::string::size_type pos = 0;
522  std::vector<std::string> label_vec;
523  for (;;){
524  std::string::size_type next;
525  next = labels.find_first_not_of (" ", pos);
526  if (next == std::string::npos) break;
527  pos = next;
528  next = labels.find_first_of (" ", pos);
529  label_vec.push_back (labels.substr (pos, next - pos));
530  if (next == std::string::npos) {
531  break;
532  } else {
533  pos = next;
534  }
535  }
536  range->set_range (label_vec);
537  } else {
538  const bool hasMin = has_attribute (node, "minvalue");
539  const bool hasMax = has_attribute (node, "maxvalue");
540  if (hasMin and hasMax) {
541  range->set_range (get_int (node, "minvalue"),
542  get_int (node, "maxvalue"));
543  }
544  //falls through to a case where there is *no* attribute value, values, minvalue, maxvalue
545  //https://its.cern.ch/jira/browse/ATLASSIM-7295
546  }
547  if (has_attribute (node, "wraparound")){
548  bool wraparound = get_boolean (node, "wraparound");
549  if (wraparound) range->set_wrap_around();
550  }
551  if (has_attribute (node, "prev_value")){
552  range->set_prev (get_int (node, "prev_value"));
553  }
554  if (has_attribute (node, "next_value")) {
555  range->set_next (get_int (node, "next_value"));
556  }
557 }
558 
559 void
561  if (Debugger::debug ()){
562  Debugger::tab (parser.level());
563  std::cout << "ReferenceFactory::idd_start>" << std::endl;
564  }
565  parser.m_regionentry = new IdDictReference(get_value (node, "subregion"));
566 }
567 
568 void
570  if (Debugger::debug ()) {
571  Debugger::tab (parser.level());
572  std::cout << "DictionaryRefFactory::idd_start>" << std::endl;
573  }
574  IdDictDictionaryRef* dictionaryref = new IdDictDictionaryRef (get_value (node, "name"));
575  parser.m_regionentry = dictionaryref;
576  // Add dictionary name to subdictionaries
577  if (dictionaryref->dictionary_name() != "") {
578  parser.m_idd.add_subdictionary_name (dictionaryref->dictionary_name());
579  if (parser.m_dictionary != 0) parser.m_dictionary->add_subdictionary_name (dictionaryref->dictionary_name());
580  }
581 }
582 
IdDictParserNS::IdDictMgrFactory::idd_end
void idd_end(IdDictParser &parser, const XMLCoreNode &node)
Definition: IdDictParser.cxx:187
IdDictRange.h
IdDictParserNS::SubRegionFactory
Definition: IdDictParser.cxx:86
IdDictParserNS::FieldFactory
Definition: IdDictParser.cxx:62
IdDictParserNS::RegionFactory::idd_start
void idd_start(IdDictParser &parser, const XMLCoreNode &node)
Definition: IdDictParser.cxx:303
IdDictMgr::resolve_references
void resolve_references()
Construct dictionary after parsing.
Definition: IdDictMgr.cxx:161
IdDictParserNS::RangeFactory
Definition: IdDictParser.cxx:98
IdDictParserNS::IdDictMgrFactory::idd_start
void idd_start(IdDictParser &parser, const XMLCoreNode &node)
Definition: IdDictParser.cxx:178
IdDictParserNS
Definition: IdDictParser.cxx:25
IdDictParserNS::Debugger::get_debug_state
static bool get_debug_state()
Definition: IdDictParser.cxx:28
IdDictLabel.h
IdDictParserNS::DictionaryRefFactory
Definition: IdDictParser.cxx:108
IdDictParserNS::DictionaryFactory
Definition: IdDictParser.cxx:56
IdDictParserNS::AltRegionsFactory::idd_end
void idd_end(IdDictParser &parser, const XMLCoreNode &node)
Definition: IdDictParser.cxx:285
IdDictParserNS::SubRegionFactory::idd_end
void idd_end(IdDictParser &parser, const XMLCoreNode &node)
Definition: IdDictParser.cxx:474
IdDictParserNS::IdDictMgrFactory
Definition: IdDictParser.cxx:50
IdDictParserNS::IdDictBaseFactory::idd_start
virtual void idd_start(IdDictParser &parser, const XMLCoreNode &node)
Definition: IdDictParser.cxx:167
IdDictDictionary.h
IdDictParser::m_dictionary
IdDictDictionary * m_dictionary
Definition: IdDictParser.h:24
XMLCoreFactory::has_attribute
static bool has_attribute(const XMLCoreNode &node, const std::string &name)
Definition: XMLCoreParser.cxx:117
IdDictParser::m_altregions
IdDictAltRegions * m_altregions
Definition: IdDictParser.h:27
IdDictDictionaryRef
Definition: IdDictDictionaryRef.h:16
IdDictParser::m_regionentry
IdDictRegionEntry * m_regionentry
Definition: IdDictParser.h:29
IdDictSubRegion.h
IdDictParser::parse
IdDictMgr & parse(const std::string &file_name, const std::string &tag="")
Definition: IdDictParser.cxx:137
IdDictParser::m_field
IdDictField * m_field
Definition: IdDictParser.h:25
XMLCoreFactory::get_int
static int get_int(const XMLCoreNode &node, const std::string &name)
Definition: XMLCoreParser.cxx:125
IdDictParser::m_idd
IdDictMgr m_idd
Definition: IdDictParser.h:23
XMLCoreFactory::get_boolean
static bool get_boolean(const XMLCoreNode &node, const std::string &name)
Definition: XMLCoreParser.cxx:141
IdDictParserNS::Debugger::tab
static void tab(int n)
Definition: IdDictParser.cxx:37
IdDictParserNS::RegionEntryFactory::idd_end
virtual void idd_end(IdDictParser &parser, const XMLCoreNode &node)
Definition: IdDictParser.cxx:496
IdDictAltRegions
Definition: IdDictAltRegions.h:20
XMLCoreNode
Definition: XMLCoreParser.h:19
IdDictRegion
Definition: IdDictRegion.h:20
IdDictParserNS::RegionEntryFactory::idd_start
virtual void idd_start(IdDictParser &parser, const XMLCoreNode &node)
Definition: IdDictParser.cxx:488
IdDictParserNS::ReferenceFactory
Definition: IdDictParser.cxx:103
IdDictParserNS::FieldFactory::idd_start
void idd_start(IdDictParser &parser, const XMLCoreNode &node)
Definition: IdDictParser.cxx:221
IdDictParserNS::DictionaryFactory::idd_start
void idd_start(IdDictParser &parser, const XMLCoreNode &node)
Definition: IdDictParser.cxx:196
IdDictParserNS::RegionFactory::idd_end
void idd_end(IdDictParser &parser, const XMLCoreNode &node)
Definition: IdDictParser.cxx:435
IdDictParserNS::IdDictBaseFactory::idd_end
virtual void idd_end(IdDictParser &parser, const XMLCoreNode &node)
Definition: IdDictParser.cxx:171
IdDictAltRegions.h
IdDictParserNS::FieldFactory::idd_end
void idd_end(IdDictParser &parser, const XMLCoreNode &node)
Definition: IdDictParser.cxx:230
python.CaloAddPedShiftConfig.parser
parser
Definition: CaloAddPedShiftConfig.py:41
IdDictLabel
Definition: IdDictLabel.h:10
physics_parameters.file_name
string file_name
Definition: physics_parameters.py:32
XMLCoreParser
Definition: XMLCoreParser.h:97
IdDictParserNS::Debugger
Definition: IdDictParser.cxx:26
IdDictMgr
Definition: IdDictMgr.h:15
IdDictParserNS::ReferenceFactory::idd_start
void idd_start(IdDictParser &parser, const XMLCoreNode &node)
Definition: IdDictParser.cxx:560
beamspotnt.labels
list labels
Definition: bin/beamspotnt.py:1446
IdDictParser.h
IdDictParserNS::DictionaryFactory::idd_end
void idd_end(IdDictParser &parser, const XMLCoreNode &node)
Definition: IdDictParser.cxx:208
fillPileUpNoiseLumi.next
next
Definition: fillPileUpNoiseLumi.py:52
IdDictParserNS::AltRegionsFactory
Definition: IdDictParser.cxx:74
IdDictParserNS::LabelFactory
Definition: IdDictParser.cxx:68
IdDictParserNS::LabelFactory::idd_end
void idd_end(IdDictParser &parser, const XMLCoreNode &node)
Definition: IdDictParser.cxx:261
beamspotman.n
n
Definition: beamspotman.py:727
python.subdetectors.mmg.names
names
Definition: mmg.py:8
XMLCoreFactory::get_value
static std::string get_value(const XMLCoreNode &node, const std::string &name)
Definition: XMLCoreParser.cxx:154
IdDictParser::m_region
IdDictRegion * m_region
Definition: IdDictParser.h:26
IdDictParserNS::IdDictBaseFactory::do_start
void do_start(XMLCoreParser &parser, const XMLCoreNode &node)
Definition: IdDictParser.cxx:155
IdDictParserNS::RegionFactory
Definition: IdDictParser.cxx:80
add-xsec-uncert-quadrature-N.label
label
Definition: add-xsec-uncert-quadrature-N.py:104
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:194
XMLCoreParser::register_factory
void register_factory(const std::string &name, std::unique_ptr< XMLCoreFactory > factory)
Definition: XMLCoreParser.cxx:372
IdDictParserNS::RegionEntryFactory
Definition: IdDictParser.cxx:92
IdDictParser
Definition: IdDictParser.h:18
IdDictParserNS::AltRegionsFactory::idd_start
void idd_start(IdDictParser &parser, const XMLCoreNode &node)
Definition: IdDictParser.cxx:269
XMLCoreFactory
Definition: XMLCoreParser.h:62
Debugger::debug
static bool debug()
Definition: Debugger.h:18
IdDictParserNS::DictionaryRefFactory::idd_start
void idd_start(IdDictParser &parser, const XMLCoreNode &node)
Definition: IdDictParser.cxx:569
IdDictParserNS::IdDictBaseFactory::do_end
void do_end(XMLCoreParser &parser, const XMLCoreNode &node)
Definition: IdDictParser.cxx:162
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
IdDictDictionaryRef.h
IdDictParserNS::LabelFactory::idd_start
void idd_start(IdDictParser &parser, const XMLCoreNode &node)
Definition: IdDictParser.cxx:244
IdDictParserNS::SubRegionFactory::idd_start
void idd_start(IdDictParser &parser, const XMLCoreNode &node)
Definition: IdDictParser.cxx:465
IdDictReference
Definition: IdDictReference.h:17
IdDictDictionary
Definition: IdDictDictionary.h:30
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:16
IdDictFieldImplementation.h
IdDictReference.h
IdDictRange
Definition: IdDictRange.h:18
IdDictField.h
SCT_ConditionsAlgorithms::CoveritySafe::getenv
std::string getenv(const std::string &variableName)
get an environment variable
Definition: SCT_ConditionsUtilities.cxx:17
IdDictParser::m_subregion
IdDictSubRegion * m_subregion
Definition: IdDictParser.h:28
python.SystemOfUnits.s
float s
Definition: SystemOfUnits.py:147
IdDictMgr::clear
void clear()
Definition: IdDictMgr.cxx:221
IdDictParser::IdDictParser
IdDictParser()
Definition: IdDictParser.cxx:116
IdDictRegion.h
IdDictSubRegion
Definition: IdDictSubRegion.h:13
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:23
IdDictField
Definition: IdDictField.h:15
XMLCoreFactory::get_double
static double get_double(const XMLCoreNode &node, const std::string &name)
Definition: XMLCoreParser.cxx:133
IdDictParserNS::IdDictBaseFactory
Definition: IdDictParser.cxx:42
XMLCoreParser::visit
void visit(const std::string &file_name)
Definition: XMLCoreParser.cxx:285
node
Definition: node.h:21
IdDictDictionaryRef::dictionary_name
const std::string & dictionary_name() const
Definition: IdDictDictionaryRef.h:68
IdDictParserNS::Debugger::debug
static bool debug()
Definition: IdDictParser.cxx:32
IdDictParserNS::RangeFactory::idd_start
void idd_start(IdDictParser &parser, const XMLCoreNode &node)
Definition: IdDictParser.cxx:510
IdDictMgr::generate_implementation
void generate_implementation(const std::string &tag="")
Definition: IdDictMgr.cxx:172