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