ATLAS Offline Software
LArElectrodeID.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 #include "GaudiKernel/MsgStream.h"
7 #include "IdDict/IdDictDefs.h"
9 #include <algorithm>
10 #include <cassert>
11 #include <cmath>
12 #include <cstdio>
13 #include <iostream>
14 #include <set>
15 #include <string>
16 
17 
19  m_larElectrodeRegion_index(999),
20  m_larelectrode_index(999),
21  m_atlas_index(999),
22  m_configuration_index(999),
23  m_detector_index(999),
24  m_zside_index(999),
25  m_module_index(999),
26  m_hvphi_index(999),
27  m_hveta_index(999),
28  m_hvgap_index(999),
29  m_electrode_index(999),
30  m_dict(nullptr),
31  m_electrodeHashMax(0)
32 {
33 
34 }
35 
37 
38 
40 {
42  return (IdContext(id, 0, m_electrode_index));
43 }
44 
45 
46 //==========================================================================
48 //==========================================================================
49 {
50 
51  MsgStream log(m_msgSvc, "LArElectrodeID" );
52  std::string strg = " => initialize_from_dictionary()";
53  if(m_msgSvc) {
54  log << MSG::INFO << strg << endmsg;
55  }
56  else {
57  std::cout << strg << std::endl;
58  }
59 
60  // Check whether this helper should be reinitialized
61  // -------------------------------------------------
62  if (!reinitialize(dict_mgr)) {
63  if(m_msgSvc)log << MSG::DEBUG
64  << "Request to reinitialize not satisfied - tags have not changed"
65  << endmsg;
66  return (0);
67  }
68  else {
69  log << MSG::DEBUG << "(Re)initialize" << endmsg;
70  }
71  log << MSG::DEBUG << " => Initialization of dict_mgr done ! " << m_dict << endmsg;
72 
73  // init base object
74  // ----------------
76  return (1);
77  }
78  else{
79  log << MSG::DEBUG << " => initialize_from_dictionary(dict_mgr) ="
81  << endmsg;
82  }
83  m_dict = dict_mgr.find_dictionary ("LArElectrode");
84  log << MSG::DEBUG << " => defined m_dict from find_dictionary(LArElectrode) = "
85  << m_dict << endmsg;
86  if(!m_dict) {
87  strg = " initialize_from_dictionary - cannot access LArElectrode dictionary ";
88  if(m_msgSvc) {
89  log << MSG::ERROR << strg << endmsg;
90  }
91  else {
92  std::cout << "LArElectrodeID::" << strg << std::endl;
93  }
94  return 1;
95  }
96 
97  // Register version of the dictionary used
98  // ---------------------------------------
99  if (register_dict_tag(dict_mgr, "LArElectrode")) return(1);
100  log << MSG::DEBUG << "Register_dict_tag of LArElectrode is OK" << endmsg;
101 
102  // initialize dictionary version
103  // -----------------------------
104  AtlasDetectorID::setDictVersion(dict_mgr, "LArElectrode");
105  log << MSG::DEBUG << "setDictVersion of LArElectrode is OK" << endmsg;
106 
107 
108  // Initialize the field indices
109  // =========================================================================
110  if(initLevelsFromDict()) return (1);
111 
112  /* Find value for the field Calorimeter */
113  const IdDictDictionary* atlasDict = dict_mgr.find_dictionary ("ATLAS");
114  int larField = -1;
115  if (atlasDict->get_label_value("subdet", "LArElectrode", larField)) {
116  std::stringstream strm;
117  strm << atlasDict->m_name;
118  strg= " Could not get value for label 'LArElectrode' of field 'subdet' in dictionary "+strm.str();
119  if(m_msgSvc){
120  log << MSG::ERROR << strg << endmsg;
121  }
122  else{
123  std::cout << "LArElectrodeID:" << strg << std::endl;
124  }
125  return (1);
126  }
127  log << MSG::DEBUG << "[init_from_dictionary] > larField value = "<< larField << endmsg;
128 
129 
130  /* Find values for the field Detector */
131  int configurationValue = 1;
132  if (m_dict->get_label_value("configuration", "Atlas", configurationValue)) {
133  std::stringstream strm;
134  strm << m_dict->m_name;
135  strg = "WARNING : Could not get value for label 'configuration' in dictionary "+strm.str();
136  if(m_msgSvc) {
137  log << MSG::INFO << strg << endmsg;
138  }
139  else{
140  std::cout << strg << std::endl;
141  }
142  return (0);
143  }
144  log << MSG::DEBUG << "[init_from_dictionary] > configurationValue = "
145  << configurationValue << endmsg;
146 
147  // Set up Expanded identifier for electrode range prefix
148  // =========================================================
149  ExpandedIdentifier reg_id;
150  reg_id.add(larField);
151  reg_id.add(configurationValue);
152  Range prefix;
153 
154  /*Full range for all lines */
156  m_full_electrode_range = m_dict->build_multirange(reg_id, prefix, "electrode");
157  log << MSG::DEBUG << "[initialize_from_dictionary] > Electrode range -> "
158  << (std::string)m_full_electrode_range << endmsg;
159 
160  // Setup the hash tables
161  // =========================================================
162  if(init_hashes()) return (1);
163 
164  return 0;
165 }
166 
167 
168 //=====================================================================================
170  ExpandedIdentifier& exp_id,
171  const IdContext* context) const
172 //=====================================================================================
173 {
174  MsgStream log(m_msgSvc, "LArElectrodeID" );
175  // We assume that the context is >= electrode
176  exp_id.clear();
177  exp_id << lar_field_value()
178  << s_larconfig_value
179  << detector(id)
180  << zside(id)
181  << module(id)
182  << hv_phi(id)
183  << hv_eta(id)
184  << gap(id);
185  if(context && context->end_index() >= m_electrode_index) {
186  exp_id << electrode(id);
187  }
188  return (0);
189 }
190 
191 
192 
193 //=============================================================================
195 //=============================================================================
196 {
197  MsgStream log(m_msgSvc, "LArElectrodeID" );
198  log << MSG::DEBUG << "[initLevelsFromDict] Entering routine... " << endmsg;
199 
200  if(!m_dict) {
201  log << MSG::INFO << "LArElectrodeID::initLevelsFromDict - dictionary NOT initialized "
202  << endmsg ;
203  return (1);
204  }
205 
206  log << MSG::DEBUG << "[initLevelsFromDict] m_dict OK ... " << endmsg;
207 
208  // Find out which identifier field corresponds to each level.
209  // ========================================================================
210  m_atlas_index = 999;
211  m_configuration_index = 999;
212  m_detector_index = 999;
213  m_zside_index = 999;
214  m_module_index = 999;
215  m_hvphi_index = 999;
216  m_hveta_index = 999;
217  m_hvgap_index = 999;
218  m_electrode_index = 999;
219  log << MSG::DEBUG << "[initLevelsFromDict] data member initialization OK ... " << endmsg;
220 
221  // Search with region name
222  IdDictRegion* reg = m_dict->find_region("EM-BARREL-ALL");
223  if (reg) {
224  m_larElectrodeRegion_index = reg->m_index;}
225  else {
226  log << MSG::INFO << "WARNING : [initLevelsFromDict] - unable to find 'EM-BARREL-ALL' region"
227  << endmsg;
228  return (0);
229  }
230  log << MSG::DEBUG << "[initLevelsFromDict] region 'EM-BARREL-ALL' found OK ... " << endmsg;
231 
232  // Find LArElectrode field
233  // ========================================================================
234  IdDictField* field = m_dict->find_field("subdet") ;
235  if (field) {
236  m_atlas_index = field->m_index ;}
237  else {
238  log << MSG::INFO
239  << "LArElectrodeID::initLevelsFromDict - unable to find 'subdet' field " << endmsg ;
240  return (1);
241  }
242  log << MSG::DEBUG
243  << "[initLevelsFromDict] field 'LArElectrode' found OK " << endmsg;
244 
245  // Find Configuration field
246  // ========================================================================
247  field = m_dict->find_field("configuration") ;
248  if (field) {
249  m_configuration_index = field->m_index ;}
250  else {
251  log << MSG::INFO
252  << "LArHVLineID::initLevelsFromDict - unable to find 'configuration' field " << endmsg ;
253  return (1);
254  }
255  log << MSG::DEBUG
256  << "[initLevelsFromDict] field config=Atlas found OK " << endmsg;
257 
258  // Find Detector field
259  // ========================================================================
260  field = m_dict->find_field("detector") ;
261  if (field) {
262  m_detector_index = field->m_index ;}
263  else {
264  log << MSG::INFO
265  << "LArElectrodeID::initLevelsFromDict - unable to find 'detector' field " << endmsg ;
266  return (1);
267  }
268  log << MSG::DEBUG
269  << "[initLevelsFromDict] field 'detector' found OK " << endmsg;
270 
271 
272  // Look for Field 'zside'
273  // ========================================================================
274  field = m_dict->find_field("zside") ;
275  if (field) {
276  m_zside_index = field->m_index ;}
277  else {
278  log << MSG::INFO << "LArElectrodeID::initLevelsFromDict - unable to find 'zside' field "
279  << endmsg ;
280  return (1);
281  }
282  log << MSG::DEBUG << "[initLevelsFromDict] field 'zside' found OK " << endmsg;
283 
284 
285  // Look for Fields 'module'
286  // ========================================================================
287  field = m_dict->find_field("module") ;
288  if (field) {
289  m_module_index = field->m_index ;
290  }
291  else {
292  log << MSG::INFO << "LArElectrodeID::initLevelsFromDict - unable to find 'module' field "
293  << endmsg ;
294  return (1);
295  }
296  log << MSG::DEBUG << "[initLevelsFromDict] field 'module' found OK " << endmsg;
297 
298  // Look for Fields 'hvphi'
299  // ========================================================================
300  field = m_dict->find_field("hvphi") ;
301  if (field) {
302  m_hvphi_index = field->m_index ;
303  }
304  else {
305  log << MSG::INFO << "initLevelsFromDict - unable to find 'hvphi' field "<< endmsg ;
306  return (1);
307  }
308  log << MSG::DEBUG << "[initLevelsFromDict] field 'hvphi' found OK " << endmsg;
309 
310  // Look for Fields 'hveta'
311  // ========================================================================
312  field = m_dict->find_field("hveta") ;
313  if (field) {
314  m_hveta_index = field->m_index ;
315  }
316  else {
317  log << MSG::INFO << "[initLevelsFromDict] - unable to find 'hveta' field "
318  << endmsg ;
319  return (1);
320  }
321  log << MSG::DEBUG << "[initLevelsFromDict] field 'hveta' found OK " << endmsg;
322 
323  // Look for Fields 'hvgap'
324  // ========================================================================
325  field = m_dict->find_field("hvgap") ;
326  if (field) {
327  m_hvgap_index = field->m_index ;
328  }
329  else {
330  log << MSG::INFO << "[initLevelsFromDict] - unable to find 'hvgap' field "
331  << endmsg ;
332  return (1);
333  }
334  log << MSG::DEBUG << "[initLevelsFromDict] field 'hvgap' found OK " << endmsg;
335 
336 
337  // Look for Fields 'electrode'
338  // ========================================================================
339  field = m_dict->find_field("electrode") ;
340  if (field) {
341  m_electrode_index = field->m_index ;
342  }
343  else {
344  log << MSG::INFO << "[initLevelsFromDict] - unable to find 'electrode' field "
345  << endmsg ;
346  return (1);
347  }
348  log << MSG::DEBUG << "[initLevelsFromDict] field 'electrode' found OK " << endmsg;
349 
350 
351  // Set the field implementation
352  // ========================================================================
353 
355  log << MSG::DEBUG << "[initLevelsFromDict] Found levels: " << endmsg ;
356  log << MSG::DEBUG << "[initLevelsFromDict] > Atlas : " << m_atlas_index << endmsg ;
357  log << MSG::DEBUG << "[initLevelsFromDict] > Configurat: " << m_configuration_index << endmsg ;
358  log << MSG::DEBUG << "[initLevelsFromDict] > detector : " << m_detector_index << endmsg ;
359  log << MSG::DEBUG << "[initLevelsFromDict] > zside : " << m_zside_index << endmsg ;
360  log << MSG::DEBUG << "[initLevelsFromDict] > hvphi : " << m_hvphi_index << endmsg ;
361  log << MSG::DEBUG << "[initLevelsFromDict] > hveta : " << m_hveta_index << endmsg ;
362  log << MSG::DEBUG << "[initLevelsFromDict] > hvgap : " << m_hvgap_index << endmsg ;
363  log << MSG::DEBUG << "[initLevelsFromDict] > electrode : " << m_electrode_index << endmsg ;
373 
374  log << MSG::DEBUG << "[initLevelsFromDict] Decode index and bit fields for each level: " << endmsg;
375  log << MSG::DEBUG << "[initLevelsFromDict] > Atlas " << m_atlas_impl.show_to_string() << endmsg;
376  log << MSG::DEBUG << "[initLevelsFromDict] > larConfig " << m_configuration_impl.show_to_string() << endmsg;
377  log << MSG::DEBUG << "[initLevelsFromDict] > detector " << m_detector_impl.show_to_string() << endmsg;
378  log << MSG::DEBUG << "[initLevelsFromDict] > z-side " << m_zside_impl.show_to_string() << endmsg;
379  log << MSG::DEBUG << "[initLevelsFromDict] > module " << m_module_impl.show_to_string() << endmsg;
380  log << MSG::DEBUG << "[initLevelsFromDict] > hvphi " << m_hvphi_impl.show_to_string() << endmsg;
381  log << MSG::DEBUG << "[initLevelsFromDict] > hveta " << m_hveta_impl.show_to_string() << endmsg;
382  log << MSG::DEBUG << "[initLevelsFromDict] > hvgap " << m_hvgap_impl.show_to_string() << endmsg;
383  log << MSG::DEBUG << "[initLevelsFromDict] > hv line " << m_electrode_impl.show_to_string() << endmsg;
384 
385 
386  return(0) ;
387 }
388 
389 
390 
391 
392 //=====================================================
394 //=====================================================
395 {
396  MsgStream log(m_msgSvc, "LArElectrodeID" );
397  std::stringstream strm1;
398  std::stringstream strm2;
399  std::stringstream strm3;
400  std::string strg1;
401  std::string strg2;
402  std::string strg3;
403 
404  // tower hash
405  // -----------
408  unsigned int nids = 0;
409  std::set<HWIdentifier> ids;
410  for (unsigned int i = 0; i < m_full_larelectrode_range.size(); ++i) {
412  Range::const_identifier_factory first = range.factory_begin();
413  Range::const_identifier_factory last = range.factory_end();
414  for (; first != last; ++first) {
415  const ExpandedIdentifier& exp_id = (*first);
416  HWIdentifier elec_id = ElectrodeId(
417  exp_id[m_detector_index] ,
418  exp_id[m_zside_index] ,
419  exp_id[m_module_index] ,
420  exp_id[m_hvphi_index] ,
421  exp_id[m_hveta_index] ,
422  exp_id[m_hvgap_index] ,
423  exp_id[m_electrode_index]
424  );
425  if(!(ids.insert(elec_id)).second){
426  strm1 << nids;
427  strg1 = "[init_hashes] > duplicated id for channel nb = "+strm1.str();
428  strm3 << show_to_string(elec_id);
429  strg3 = " expanded Id= "+strm3.str();
430  if(m_msgSvc){
431  log << MSG::ERROR << strg1 << endmsg;
432  log << MSG::ERROR << strg3 << endmsg;
433  }
434  }
435  nids++;
436  }
437  }
438  if(ids.size() != m_electrodeHashMax) {
439  strm1 << ids.size();
440  strm2 << m_electrodeHashMax;
441  strg1 = "[init_hashes] >";
442  strg2 = " set size NOT EQUAL to hash max. size "+strm1.str();
443  strg3 = " hash max "+strm2.str();
444  if(m_msgSvc)
445  {
446  log << MSG::ERROR << strg1 << endmsg;
447  log << MSG::ERROR << strg2 << endmsg;
448  log << MSG::ERROR << strg3 << endmsg;
449  }
450  else
451  {
452  std::cout << "LArOnlineID::" << strg1 << std::endl;
453  std::cout << "Error" << strg2 << std::endl;
454  std::cout << strg3 << std::endl;
455  }
456  return (1);
457  }
458 
459  nids=0;
460  std::set<HWIdentifier>::const_iterator first = ids.begin();
461  std::set<HWIdentifier>::const_iterator last = ids.end();
462  for (;first != last && nids < m_electrode_vec.size(); ++first) {
463  m_electrode_vec[nids] = (*first) ;
464  nids++;
465  }
466  log << MSG::DEBUG << "[init_hashes()] > Electrode_size= " << m_electrode_vec.size() << endmsg;
467  return (0);
468 }
469 
470 
471 
IdDictDictionary::find_region
IdDictRegion * find_region(const std::string &region_name) const
Definition: IdDictMgr.cxx:366
IdDictDictionary::build_multirange
MultiRange build_multirange() const
Get MultiRange for full dictionary.
Definition: IdDictMgr.cxx:1048
AtlasDetectorID::initialize_from_dictionary
virtual int initialize_from_dictionary(const IdDictMgr &dict_mgr) override
Initialization from the identifier dictionary.
Definition: AtlasDetectorID.cxx:320
LArElectrodeID::m_hveta_impl
IdDictFieldImplementation m_hveta_impl
Definition: LArElectrodeID.h:286
LArElectrodeID::init_hashes
int init_hashes(void)
Definition: LArElectrodeID.cxx:393
LArElectrodeID::initLevelsFromDict
int initLevelsFromDict(void)
Definition: LArElectrodeID.cxx:194
LArElectrodeID::m_hvphi_impl
IdDictFieldImplementation m_hvphi_impl
Definition: LArElectrodeID.h:285
IdDictFieldImplementation::show_to_string
std::string show_to_string(void) const
Definition: IdDictFieldImplementation.cxx:57
LArElectrodeID::ElectrodeId
HWIdentifier ElectrodeId(int det, int side, int mod, int phi, int eta, int gap, int elec) const
Create an Electrode identifier from fields.
Definition: LArElectrodeID.h:306
LArElectrodeID::LArElectrodeID
LArElectrodeID(void)
Default constructor.
Definition: LArElectrodeID.cxx:18
ExpandedIdentifier::add
void add(element_type value)
LArElectrodeID::m_hveta_index
size_type m_hveta_index
Definition: LArElectrodeID.h:269
LArElectrodeID::m_atlas_impl
IdDictFieldImplementation m_atlas_impl
Field Implementation.
Definition: LArElectrodeID.h:280
ExpandedIdentifier
Definition: DetectorDescription/Identifier/Identifier/ExpandedIdentifier.h:108
AtlasDetectorID::m_msgSvc
IMessageSvc * m_msgSvc
pointer to the message service
Definition: AtlasDetectorID.h:368
ReadOfcFromCool.field
field
Definition: ReadOfcFromCool.py:48
LArElectrodeID::m_configuration_impl
IdDictFieldImplementation m_configuration_impl
Definition: LArElectrodeID.h:281
HWIdentifier
Definition: HWIdentifier.h:13
python.DomainsRegistry.reg
reg
globals -----------------------------------------------------------------—
Definition: DomainsRegistry.py:343
CaloSwCorrections.gap
def gap(flags, cells_name, *args, **kw)
Definition: CaloSwCorrections.py:212
LArElectrodeID::m_electrodeHashMax
size_type m_electrodeHashMax
Definition: LArElectrodeID.h:276
IdDictDictionary::find_field
IdDictField * find_field(const std::string &name) const
Definition: IdDictMgr.cxx:309
IdDictRegion
Definition: IdDictDefs.h:448
LArElectrodeID::m_hvgap_impl
IdDictFieldImplementation m_hvgap_impl
Definition: LArElectrodeID.h:287
TRT::Hit::detector
@ detector
Definition: HitInfo.h:78
LArElectrodeID::m_zside_index
size_type m_zside_index
Definition: LArElectrodeID.h:266
IdDictDefs.h
LArElectrodeID::m_full_electrode_range
MultiRange m_full_electrode_range
Definition: LArElectrodeID.h:275
LArElectrodeID::m_larElectrodeRegion_index
size_type m_larElectrodeRegion_index
Definition: LArElectrodeID.h:261
python.PyAthena.module
module
Definition: PyAthena.py:134
IdDictMgr
Definition: IdDictDefs.h:32
IdDictMgr::find_dictionary
IdDictDictionary * find_dictionary(const std::string &name) const
Access dictionary by name.
Definition: IdDictMgr.cxx:161
LArElectrodeID::~LArElectrodeID
~LArElectrodeID(void)
Default destructor.
lumiFormat.i
int i
Definition: lumiFormat.py:92
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
IdDictDictionary::m_regions
std::vector< IdDictRegion * > m_regions
Definition: IdDictDefs.h:302
plotBeamSpotVxVal.range
range
Definition: plotBeamSpotVxVal.py:195
checkCorrelInHIST.prefix
dictionary prefix
Definition: checkCorrelInHIST.py:391
Range::const_identifier_factory
Definition: DetectorDescription/Identifier/Identifier/Range.h:191
LArElectrodeID::m_atlas_index
size_type m_atlas_index
Definition: LArElectrodeID.h:263
AtlasDetectorID::register_dict_tag
int register_dict_tag(const IdDictMgr &dict_mgr, const std::string &dict_name)
Register the file and tag names for a particular IdDict dictionary.
Definition: AtlasDetectorID.cxx:266
LArElectrodeID::m_hvphi_index
size_type m_hvphi_index
Definition: LArElectrodeID.h:268
IdDictDictionary::get_label_value
int get_label_value(const std::string &field, const std::string &label, int &value) const
Definition: IdDictMgr.cxx:338
LArElectrodeID::m_configuration_index
size_type m_configuration_index
Definition: LArElectrodeID.h:264
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:194
LArElectrodeID::m_detector_impl
IdDictFieldImplementation m_detector_impl
Definition: LArElectrodeID.h:282
python.subdetectors.mmg.ids
ids
Definition: mmg.py:8
IdentifierHash.h
LArElectrodeID::initialize_from_dictionary
virtual int initialize_from_dictionary(const IdDictMgr &dict_mgr)
Initialization from the identifier dictionary.
Definition: LArElectrodeID.cxx:47
LArElectrodeID::m_dict
const IdDictDictionary * m_dict
Definition: LArElectrodeID.h:273
LArElectrodeID::m_detector_index
size_type m_detector_index
Definition: LArElectrodeID.h:265
LArElectrodeID::get_expanded_id
int get_expanded_id(const HWIdentifier &id, ExpandedIdentifier &exp_id, const IdContext *context) const
Definition: LArElectrodeID.cxx:169
AtlasDetectorID::setDictVersion
virtual void setDictVersion(const IdDictMgr &dict_mgr, const std::string &name) override
Definition: AtlasDetectorID.cxx:759
Range
A Range describes the possible ranges for the field values of an ExpandedIdentifier.
Definition: DetectorDescription/Identifier/Identifier/Range.h:27
IdDictDictionary
Definition: IdDictDefs.h:97
LArElectrodeID::m_electrode_vec
std::vector< HWIdentifier > m_electrode_vec
Definition: LArElectrodeID.h:277
AtlasDetectorID::reinitialize
bool reinitialize(const IdDictMgr &dict_mgr)
Test whether an idhelper should be reinitialized based on the change of tags.
Definition: AtlasDetectorID.cxx:284
IdDictDictionary::m_name
std::string m_name
Definition: IdDictDefs.h:283
AtlasDetectorID::show_to_string
std::string show_to_string(Identifier id, const IdContext *context=0, char sep='.') const
or provide the printout in string form
Definition: AtlasDetectorID.cxx:574
LArElectrodeID::m_electrode_impl
IdDictFieldImplementation m_electrode_impl
Definition: LArElectrodeID.h:288
MultiRange::size
size_type size() const
Definition: DetectorDescription/Identifier/src/Range.cxx:2488
DeMoScan.first
bool first
Definition: DeMoScan.py:534
DEBUG
#define DEBUG
Definition: page_access.h:11
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
LArElectrodeID::electrodeContext
IdContext electrodeContext(void) const
Define feedthrough Context.
Definition: LArElectrodeID.cxx:39
LArElectrodeID::m_electrode_index
size_type m_electrode_index
Definition: LArElectrodeID.h:271
LArElectrodeID.h
IdDictField
Definition: IdDictDefs.h:318
MultiRange::cardinality
size_type cardinality() const
Computes a possible cardinality from all ranges.
Definition: DetectorDescription/Identifier/src/Range.cxx:2503
LArElectrodeID::m_zside_impl
IdDictFieldImplementation m_zside_impl
Definition: LArElectrodeID.h:283
LArElectrodeID::m_module_impl
IdDictFieldImplementation m_module_impl
Definition: LArElectrodeID.h:284
IdContext
class IdContext
Definition: IdContext.h:34
LArElectrodeID::m_full_larelectrode_range
MultiRange m_full_larelectrode_range
Definition: LArElectrodeID.h:274
IdDictRegion::m_implementation
std::vector< IdDictFieldImplementation > m_implementation
Definition: IdDictDefs.h:474
LArElectrodeID::m_module_index
size_type m_module_index
Definition: LArElectrodeID.h:267
LArElectrodeID::m_hvgap_index
size_type m_hvgap_index
Definition: LArElectrodeID.h:270