ATLAS Offline Software
TileDddbManager.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 /*
6  * Updates:
7  * - 2022 Jan, Riccardo Maria BIANCHI <riccardo.maria.bianchi@cern.ch>
8  * Added support for SQLite input, for the new DD architecture for Run4 (DetectorFactoryLite)
9  */
10 
12 
16 
18  const std::string& version_tag,
19  const std::string& version_node,
20  bool sqliteInput)
21  : AthMessaging ("TileDddbManager")
22  , m_tag(version_tag)
23  , m_node(version_node)
24  , m_sqliteInput(sqliteInput)
25 {
26  ATH_MSG_INFO( "m_tag = " << m_tag );
27 
28  m_tiglob = access->getRecordsetPtr("TileGlobals",m_tag,m_node);
29  m_n_tiglob = m_tiglob->size();
30  ATH_MSG_INFO( "n_tiglob = " << m_n_tiglob );
31 
32  if (m_sqliteInput || !access->getChildTag("TileModule",m_tag,m_node).empty()) {
33  m_timod = access->getRecordsetPtr("TileModule",m_tag,m_node);
34  }
35  else {
36  m_timod = access->getRecordsetPtr("TileModules",m_tag,m_node);
37  }
38  m_n_timod = m_timod->size();
39  ATH_MSG_INFO( "n_timod = " << m_n_timod );
40 
41  if (m_sqliteInput || !access->getChildTag("TileCuts",m_tag,m_node).empty()) {
42  m_buildCuts = true;
43  m_cuts = access->getRecordsetPtr("TileCuts",m_tag,m_node);
44  m_n_cuts = m_cuts->size();
45  ATH_MSG_INFO( "n_cuts = " << m_n_cuts );
46  }
47 
48  if (m_sqliteInput || !access->getChildTag("TileSaddleSup",m_tag,m_node).empty()) {
49  m_buildSaddle = true;
50  m_saddle = access->getRecordsetPtr("TileSaddleSup",m_tag,m_node);
51  m_n_saddle = m_saddle->size();
52  ATH_MSG_INFO( "n_saddle = " << m_n_saddle );
53  }
54 
55  m_tile = access->getRecordsetPtr("TILE",m_tag,m_node);
56 
57  m_tilb = access->getRecordsetPtr("TILB",m_tag,m_node);
58  m_n_tilb = m_tilb->size();
59  ATH_MSG_INFO( "n_tilb = " << m_n_tilb );
60 
61  m_tigr = access->getRecordsetPtr("TIGR",m_tag,m_node);
62  m_n_tigr = m_tigr->size();
63 
64  m_scnt = access->getRecordsetPtr("SCNT",m_tag,m_node);
65  m_n_scnt = m_scnt->size();
66 
67  m_tifg = access->getRecordsetPtr("TIFG",m_tag,m_node);
68  m_n_tifg = m_tifg->size();
69 
70  m_ticg = access->getRecordsetPtr("TICG",m_tag,m_node);
71  m_n_ticg = m_ticg->size();
72 
73  m_ticl = access->getRecordsetPtr("TICL",m_tag,m_node);
74  m_n_ticl = m_ticl->size();
75 
76  m_tileSwitches = access->getRecordsetPtr("TileSwitches",m_tag,m_node);
78  ATH_MSG_INFO( "n_tileSwitches = " << m_n_tileSwitches );
79 }
80 
81 // ---------- T I L E -------------
82 
84 {
85  return (*m_tile)[0]->getInt("NMODUL");
86 }
87 
89 {
90  return (*m_tile)[0]->getDouble("RMIM");
91 }
92 
94 {
95  return (*m_tile)[0]->getDouble("RMAM");
96 }
97 
99 {
100  return (*m_tile)[0]->getDouble("ZMAM");
101 }
102 
104 {
105  return (*m_tile)[0]->getDouble("RMIN");
106 }
107 
109 {
110  return (*m_tile)[0]->getDouble("RMAX");
111 }
112 
114 {
115  return (*m_tile)[0]->getDouble("ZSHIFT");
116 }
117 
118 unsigned int TileDddbManager::GetNumTilb() const
119 {
120  return m_n_tilb;
121 }
122 
123 // ------------ TILE GLOBALS--------------------
125 {
126  return m_n_tiglob;
127 }
128 
130 {
131  if (m_currentTileGlob) {
132  return m_currentTileGlob->getInt("PART");
133  }
134  else {
135  ATH_MSG_ERROR( "TileDddbManager::GetEnvType() - Current Envelope not set, returning -999" );
136  return -999;
137  }
138 }
139 
140 int TileDddbManager::SetCurrentEnvByType(unsigned int envelopeT)
141 {
142  m_currentTileGlob = 0;
143  m_currentTileMod = 0;
144  m_currentSection = 0;
145  m_modTypes.clear();
146 
147  unsigned int ind2 = 0;
148  while (((*m_tiglob)[ind2]->getInt("PART") != static_cast<int>(envelopeT)) && (++ind2 < m_n_tiglob))
149  {
150  }
151  if (ind2 < m_n_tiglob) {
152  m_currentTileGlob = (*m_tiglob)[ind2];
153  m_EnvSize = m_currentTileGlob->getInt("NMODULES");
154  unsigned int ind3 = 0;
155  while (((*m_timod)[ind3]->getInt("PART") != static_cast<int>(envelopeT)) && (++ind3 < m_n_timod))
156  {
157  }
158  if (ind3 < m_n_timod) {
159  m_EnvBegin = ind3;
160  return 1;
161  }
162  else {
163  m_EnvSize = 0;
164  m_EnvBegin = 0;
165  ATH_MSG_ERROR( "TileDddbManager::SetCurrentEnvByType() - Couldn't return begin of modules" );
166  return 0;
167  }
168  } else {
169  m_currentTileGlob = 0;
170  ATH_MSG_ERROR( "TileDddbManager::SetCurrentEnvByType() - Couldn't return Envelope" );
171  return 0;
172  }
173 }
174 
175 int TileDddbManager::SetCurrentEnvByIndex(unsigned int envelopeI)
176 {
177  m_currentTileGlob = 0;
178  m_currentTileMod = 0;
179  m_currentSection = 0;
180  m_modTypes.clear();
181 
182  if (envelopeI < m_n_tiglob) {
183  m_currentTileGlob = (*m_tiglob)[envelopeI];
184  m_EnvNum = m_currentTileGlob->getInt("PART");
185  m_EnvSize = m_currentTileGlob->getInt("NMODULES");
186  unsigned int ind1 = 0;
187 // while (((*m_timod)[ind1]->getInt("PART") != static_cast<int>(m_EnvNum)) && (++ind1 < m_n_timod))
188 // {
189 // }
190  // FIXME: temporary fix for wrong PART in modules table
191  for ( ; ind1 < m_n_timod; ++ind1) {
192  int part = (*m_timod)[ind1]->getInt("PART");
193  if ( m_tag == "TileCal-02" ) {
194  if (part == 3) part = 5;
195  else if (part == 2) part = 3;
196  }
197  if ( part == static_cast<int>(m_EnvNum)) break;
198  }
199  if (ind1 < m_n_timod) {
200  m_EnvBegin = ind1;
201  return 1;
202  }
203  else {
204  m_EnvSize = 0;
205  m_EnvBegin = 0;
206  ATH_MSG_ERROR( "TileDddbManager::SetCurrentEnvByIndex() - Couldn't return begin of modules" );
207  return 0;
208  }
209  } else {
210  m_currentTileGlob = 0;
211  ATH_MSG_ERROR( "TileDddbManager::SetCurrentEnvByIndex() - Couldn't return Envelope" );
212  return 0;
213  }
214 }
215 
216 
218 {
219  if (m_currentTileGlob) {
220  return m_currentTileGlob->getInt("SIDE");
221  }
222  else {
223  ATH_MSG_ERROR( "TileDddbManager::GetEnvSide() - Current Section not set, returning -999" );
224  return -999;
225  }
226 }
227 
229 {
230  if (m_currentTileGlob) {
231  return m_currentTileGlob->getInt("NMODULES");
232  //sb return 1;
233  }
234  else {
235  ATH_MSG_ERROR( "TileDddbManager::GetEnvNModules() - Current Envelope not set, returning -999" );
236  return -999;
237  }
238 }
239 
241 {
242  if (m_currentTileGlob) {
243  return m_currentTileGlob->getDouble("RIN");
244  }
245  else {
246  ATH_MSG_ERROR( "TileDddbManager::GetEnvRin() - Current Envelope not set, returning -999" );
247  return -999;
248  }
249 }
250 
252 {
253  if (m_currentTileGlob) {
254  return m_currentTileGlob->getDouble("ROUT");
255  }
256  else {
257  ATH_MSG_ERROR( "TileDddbManager::GetEnvRout() - Current Envelope not set, returning -999" );
258  return -999;
259  }
260 }
261 
263 {
264  if (m_currentTileGlob) {
265  // return m_currentTileGlob->getDouble("ZLENGTH");
266  // FIXME: temporary correction for finger length
267  // all fingers for the testbeam are "small fingers"
268  double len =m_currentTileGlob->getDouble("ZLENGTH");
269  if (len > 564 + 37.7*2 && m_tag == "TileCal-02") {
270  len = 564 + 37.7*2;
271  }
272  return len;
273  }
274  else {
275  ATH_MSG_ERROR( "TileDddbManager::GetEnvZLength() - Current Envelope not set, returning -999" );
276  return -999;
277  }
278 }
279 
281 {
282  if (m_currentTileGlob) {
283  // return m_currentTileGlob->getDouble("DPHI");
284  // FIXME: temporary fix for wrong dphi in table
285  double dphi = m_currentTileGlob->getDouble("DPHI");
286  if ( dphi != 0 && m_tag == "TileCal-02") {
287  dphi -= 360.0/64.0/2.;
288  }
289  return dphi;
290  }
291  else {
292  ATH_MSG_ERROR( "TileDddbManager::GetEnvDPhi() - Current Envelope not set, returning -999" );
293  return -999;
294  }
295 }
296 
298 {
299  if (m_currentTileGlob) {
300  // return m_currentTileGlob->getDouble("DZ");
301  // FIXME: temporary correction for finger length
302  // all fingers for the testbeam are "small fingers"
303  double dz = m_currentTileGlob->getDouble("DZ");
304  if ( dz > 20 && m_tag == "TileCal-02") {
305  dz += 43.05 - 37.7;
306  }
307  return dz;
308  }
309  else {
310  ATH_MSG_ERROR( "TileDddbManager::GetEnvDZ() - Current Envelope not set, returning -999" );
311  return -999;
312  }
313 }
314 
316 {
317  if (m_currentTileGlob) {
318  return m_currentTileGlob->getDouble("DX");
319  }
320  else {
321  ATH_MSG_ERROR( "TileDddbManager::GetEnvDX() - Current Envelope not set, returning -999" );
322  return -999;
323  }
324 }
325 
327 {
328  if (m_currentTileGlob) {
329  return m_currentTileGlob->getDouble("DY");
330  }
331  else {
332  ATH_MSG_ERROR( "TileDddbManager::GetEnvDY() - Current Envelope not set, returning -999" );
333  return -999;
334  }
335 }
336 
338 {
339  if (m_currentTileGlob) {
340  return m_currentTileGlob->getDouble("DPSI");
341  }
342  else {
343  ATH_MSG_ERROR( "TileDddbManager::GetEnvDPsi() - Current Envelope not set, returning -999" );
344  return -999;
345  }
346 }
347 
349 {
350  if (m_currentTileGlob) {
351  return m_currentTileGlob->getDouble("DTHETA");
352  }
353  else {
354  ATH_MSG_ERROR( "TileDddbManager::GetEnvDTheta() - Current Envelope not set, returning -999" );
355  return -999;
356  }
357 }
358 
360 {
361  if (m_currentTileGlob) {
362  return m_currentTileGlob->getDouble("ZSHIFT");
363  }
364  else {
365  ATH_MSG_ERROR( "TileDddbManager::GetEnvZShift() - Current Envelope not set, returning -999" );
366  return -999;
367  }
368 }
369 
370 
371 // ------------ TILE MODULES -------------------
373 {
374  m_currentTileMod = 0;
375  m_currentSection = 0;
376  m_modTypes.clear();
377 
378  if (m_currentTileGlob) {
379  // Modules enumerated from zero, so SetCurrentModuleByIndex(0) gives the first module in the Envelope
380  if (Id >= m_EnvSize) {
381  ATH_MSG_ERROR( "TileDddbManager::SetCurrentModuleByIndex() - Module number " << Id << " is out of range" );
382  return 0;
383  }
384  else {
385  m_currentTileMod = (*m_timod)[Id + m_EnvBegin];
386  FillModTypes();
387  return 1;
388  }
389  }
390  else {
391  ATH_MSG_ERROR( "TileDddbManager::SetCurrentModuleByIndex() - Current Envelope not set, returning -999" );
392  return -999;
393  }
394 }
395 
397 {
398  m_currentTileMod = 0;
399  m_currentSection = 0;
400  m_modTypes.clear();
401 
402  if (m_currentTileGlob) {
403  // Input here number from column "MODNUM"
404  unsigned int ind4 = m_EnvBegin;
405  unsigned int EnvEnd = m_EnvBegin + m_EnvSize;
406  while (((*m_timod)[ind4]->getInt("MODNUM") != static_cast<int>(Number))&&(++ind4 < EnvEnd))
407  {
408  }
409  if (ind4 < EnvEnd) {
410  m_currentTileMod = (*m_timod)[ind4];
411  FillModTypes();
412  return 1;
413  }
414  else{
415  m_currentTileMod = 0;
416  ATH_MSG_ERROR( "TileDddbManager::SetCurrentModuleByNumber() - Couldn't return Module" );
417  return 0;
418  }
419  }
420  else {
421  ATH_MSG_ERROR( "TileDddbManager::SetCurrentModuleByNumber() - Current Envelope not set, returning -999" );
422  return -999;
423  }
424 }
425 
427 {
428  if (m_currentTileMod) {
429  return m_currentTileMod->getInt("MODNUM");
430  }
431  else {
432  ATH_MSG_ERROR( "TileDddbManager::GetModNumber() - Current Module not set, returning -999" );
433  return -999;
434  }
435 }
436 
438 {
439  if (m_currentTileMod) {
440  return m_currentTileMod->getInt("TYP");
441  }
442  else {
443  ATH_MSG_ERROR( "TileDddbManager::GetModType() - Current Module not set, returning -999" );
444  return -999;
445  }
446 }
447 
449 {
450  if (m_currentTileMod) {
451  return m_currentTileMod->getDouble("DX");
452  }
453  else {
454  ATH_MSG_ERROR( "TileDddbManager::GetModDX() - Current Module not set, returning -999" );
455  return -999;
456  }
457 }
458 
460 {
461  if (m_currentTileMod) {
462  return m_currentTileMod->getDouble("DY");
463  }
464  else {
465  ATH_MSG_ERROR( "TileDddbManager::GetModDY() - Current Module not set, returning -999" );
466  return -999;
467  }
468 }
469 
471 {
472  if (m_currentTileMod) {
473  return m_currentTileMod->getDouble("DZ");
474  }
475  else {
476  ATH_MSG_ERROR( "TileDddbManager::GetModDZ() - Current Module not set, returning -999" );
477  return -999;
478  }
479 }
480 
482 {
483  if (m_currentTileMod) {
484  return m_currentTileMod->getDouble("DPHI");
485  }
486  else {
487  ATH_MSG_ERROR( "TileDddbManager::GetModDPhi() - Current Module not set, returning -999" );
488  return -999;
489  }
490 }
491 
493 {
494  if (m_currentTileMod) {
495  return m_currentTileMod->getDouble("DPSI");
496  }
497  else {
498  ATH_MSG_ERROR( "TileDddbManager::GetModDPsi() - Current Module not set, returning -999" );
499  return -999;
500  }
501 }
502 
504 {
505  if (m_currentTileMod) {
506  return m_currentTileMod->getDouble("DTHETA");
507  }
508  else {
509  ATH_MSG_ERROR( "TileDddbManager::GetModDTheta() - Current Module not set, returning -999" );
510  return -999;
511  }
512 }
513 
514 
515 // ------------ TILE MODULE TYPES -------------------
517 {
518  if (Id < m_modTypes.size()) {
519  return SetCurrentSection(m_modTypes[Id]);
520  } else {
521  ATH_MSG_ERROR( "TileDddbManager::SetCurrentTypeByIndex() - Type index (" << Id << ") is out of range (" << m_modTypes.size() << ")" );
522  m_currentSection = 0;
523  return 0;
524  }
525 }
526 
528 {
529  return SetCurrentSection(Number);
530 }
531 
532 unsigned int TileDddbManager::GetModType(unsigned int Id) const
533 {
534  if (Id < m_modTypes.size()) {
535  return m_modTypes[Id];
536  } else {
537  return 999;
538  }
539 }
540 
542 {
543  return m_modTypes.size();
544 }
545 
547 {
548  m_modTypes.clear();
549 
550  int fullType = GetModType();
551 
552  while (fullType > 0) {
553  unsigned int subType = fullType%100;
554  m_modTypes.push_back(subType);
555  fullType /= 100;
556  }
558 }
559 
560 
561 // ------------ S E C T I O N ------------------
562 
563 
564 int TileDddbManager::SetCurrentSectionByIndex(unsigned int IdSection)
565 {
566  if (IdSection < m_n_tilb) {
567  m_currentSection = (*m_tilb)[IdSection];
568  return 1;
569  }
570  else {
571  ATH_MSG_ERROR( "TileDddbManager::SetCurrentSectionByIndex() - Section index (" << IdSection << ") is out of range (" << m_n_tilb << ")" );
572  m_currentSection = 0;
573  return 0;
574  }
575 }
576 
578 {
579  return SetCurrentSection(section);
580 }
581 
583 {
584  unsigned int ind = 0;
585 
586  while (((*m_tilb)[ind]->getInt("SECTION") != static_cast<int>(section)) && (++ind < m_n_tilb))
587  {
588  }
589 
590  if (ind >= m_n_tilb) {
591  if (print) ATH_MSG_ERROR( "TileDddbManager::SetCurrentSection() - Unable to find the section" );
592  m_currentSection = 0;
593  return 0;
594  }
595  else {
596  m_currentSection = (*m_tilb)[ind];
597  return 1;
598  }
599 }
600 
602 {
603  if (m_currentSection) {
604  return m_currentSection->getInt("SECTION");
605  }
606  else {
607  ATH_MSG_ERROR( "TileDddbManager::TILBsection() - Current Section not set, returning -999" );
608  return -999;
609  }
610 }
611 
613 {
614  if (m_currentSection) {
615  return m_currentSection->getInt("NPERIOD");
616  }
617  else {
618  ATH_MSG_ERROR( "TileDddbManager::TILBnperiod() - Current Section not set, returning -999" );
619  return -999;
620  }
621 }
622 
624 {
625  if (m_currentSection) {
626  return m_currentSection->getInt("NMODUL");
627  }
628  else {
629  ATH_MSG_ERROR( "TileDddbManager::TILBnmodul() - Current Section not set, returning -999" );
630  return -999;
631  }
632 }
633 
635 {
636  if (m_currentSection) {
637  return m_currentSection->getDouble("RMIN");
638  }
639  else {
640  ATH_MSG_ERROR( "TileDddbManager::TILBrmin() - Current Section not set, returning -999.9" );
641  return -999.9;
642  }
643 }
644 
646 {
647  if (m_currentSection) {
648  return m_currentSection->getDouble("RMAX");
649  }
650  else {
651  ATH_MSG_ERROR( "TileDddbManager::TILBrmax() - Current Section not set, returning -999.9" );
652  return -999.9;
653  }
654 }
655 
657 {
658  if (m_currentSection) {
659  return m_currentSection->getDouble("RMINIMAL");
660  }
661  else {
662  ATH_MSG_ERROR( "TileDddbManager::TILBrminimal() - Current Section not set, returning -999.9" );
663  return -999.9;
664  }
665 }
666 
668 {
669  if (m_currentSection) {
670  return m_currentSection->getDouble("RMAXIMAL");
671  }
672  else {
673  ATH_MSG_ERROR( "TileDddbManager::TILBrmaximal() - Current Section not set, returning -999.9" );
674  return -999.9;
675  }
676 }
677 
679 {
680  if (m_currentSection) {
681  return m_currentSection->getDouble("DZPERIO");
682  }
683  else {
684  ATH_MSG_ERROR( "TileDddbManager::TILBdzperio() - Current Section not set, returning -999.9" );
685  return -999.9;
686  }
687 }
688 
690 {
691  if (m_currentSection) {
692  return m_currentSection->getDouble("DRFRONT");
693  }
694  else {
695  ATH_MSG_ERROR( "TileDddbManager::TILBdrfront() - Current Section not set, returning -999.9" );
696  return -999.9;
697  }
698 }
699 
701 {
702  if (m_currentSection) {
703  return m_currentSection->getDouble("DZEND");
704  }
705  else {
706  ATH_MSG_ERROR( "TileDddbManager::TILBdzend() - Current Section not set, returning -999.9" );
707  return -999.9;
708  }
709 }
710 
712 {
713  if (m_currentSection) {
714  return m_currentSection->getDouble("FLANGEX");
715  }
716  else {
717  ATH_MSG_ERROR( "TileDddbManager::TILBflangex() - Current Section not set, returning -999.9" );
718  return -999.9;
719  }
720 }
721 
723 {
724  if (m_currentSection) {
725  return m_currentSection->getDouble("FLANGEY");
726  }
727  else {
728  ATH_MSG_ERROR( "TileDddbManager::TILBflangey() - Current Section not set, returning -999.9" );
729  return -999.9;
730  }
731 }
732 
734 {
735  if (m_currentSection) {
736  return m_currentSection->getDouble("ZOFFSET");
737  }
738  else {
739  ATH_MSG_ERROR( "TileDddbManager::TILBzoffset() - Current Section not set, returning -999.9" );
740  return -999.9;
741  }
742 }
743 
745 {
746  if (m_currentSection) {
747  return m_currentSection->getDouble("PHIGAP");
748  }
749  else {
750  ATH_MSG_ERROR( "TileDddbManager::TILBphigap() - Current Section not set, returning -999.9" );
751  return -999.9;
752  }
753 }
754 
756 {
757  if (m_currentSection) {
758  return m_currentSection->getInt("ISCI_ST");
759  }
760  else {
761  ATH_MSG_ERROR( "TileDddbManager::TILBisci_st() - Current Section not set, returning -999.9" );
762  return -999.9;
763  }
764 }
765 
767 {
768  if (m_currentSection) {
769  return m_currentSection->getDouble("DZMODUL");
770  }
771  else {
772  ATH_MSG_ERROR( "TileDddbManager::TILBdzmodul() - Current Section not set, returning -999.9" );
773  return -999.9;
774  }
775 }
776 
778 {
779  if (m_currentSection) {
780  return m_currentSection->getDouble("DZMAST");
781  }
782  else {
783  ATH_MSG_ERROR( "TileDddbManager::TILBdzmast() - Current Section not set, returning -999.9" );
784  return -999.9;
785  }
786 }
787 
789 {
790  if (m_currentSection) {
791  return m_currentSection->getDouble("DZSPAC");
792  }
793  else {
794  ATH_MSG_ERROR( "TileDddbManager::TILBdzspac() - Current Section not set, returning -999.9" );
795  return -999.9;
796  }
797 }
798 
800 {
801  if (m_currentSection) {
802  return m_currentSection->getDouble("DZEND1");
803  }
804  else {
805  ATH_MSG_ERROR( "TileDddbManager::TILBdzend1() - Current Section not set, returning -999.9" );
806  return -999.9;
807  }
808 }
809 
811 {
812  if (m_currentSection) {
813  return m_currentSection->getDouble("DZEND2");
814  }
815  else {
816  ATH_MSG_ERROR( "TileDddbManager::TILBdzend2() - Current Section not set, returning -999.9" );
817  return -999.9;
818  }
819 }
820 
822 {
823  if (m_currentSection) {
824  return m_currentSection->getInt("NGIRDER");
825  }
826  else {
827  ATH_MSG_ERROR( "TileDddbManager::TILBngirder() - Current Section not set, returning -999" );
828  return -999;
829  }
830 }
831 
833 {
834  if (m_currentSection) {
835  return m_currentSection->getInt("NSCIN");
836  }
837  else {
838  ATH_MSG_ERROR( "TileDddbManager::TILBnscin() - Current Section not set, returning -999" );
839  return -999;
840  }
841 }
842 
844 {
845  if (m_currentSection) {
846  return m_currentSection->getInt("FINGPATTERN");
847  }
848  else {
849  ATH_MSG_ERROR( "TileDddbManager::TILBfingpattern() - Current Section not set, returning -999" );
850  return -999;
851  }
852 }
853 
855 {
856  if (m_currentSection) {
857  return m_currentSection->getInt("NPERCUTPOS");
858  }
859  else {
860  ATH_MSG_ERROR( "TileDddbManager::TILBnpercutpos() - Current Section not set, returning -999" );
861  return -999;
862  }
863 }
864 
866 {
867  if (m_currentSection) {
868  return m_currentSection->getInt("NPERCUTNEG");
869  }
870  else {
871  ATH_MSG_ERROR( "TileDddbManager::TILBnpercutneg() - Current Section not set, returning -999" );
872  return -999;
873  }
874 }
875 
876 
878 {
879  if (m_currentSection) {
880  if (m_currentSection->isFieldNull("CURSCINT"))
881  return 0;
882  else
883  return m_currentSection->getInt("CURSCINT");
884  }
885  else {
886  ATH_MSG_ERROR( "TileDddbManager::TILBcurscint() - Current Section not set, returning -999" );
887  return -999;
888  }
889 }
890 
892 {
893  if (m_currentSection) {
894  return m_currentSection->getDouble("DZGIR");
895  }
896  else {
897  ATH_MSG_ERROR( "TileDddbManager::TILBdzgir() - Current Section not set, returning -999" );
898  return -999;
899  }
900 }
901 
902 // -------------------- S C I N T I L L A T O R ---------------------
904 {
905  unsigned int ind = 0;
906 
907  while (((*m_scnt)[ind]->getInt("ITEM") != item) && (++ind < m_n_scnt))
908  {
909  }
910 
911  if (ind >= m_n_scnt)
912  {
913  ATH_MSG_ERROR( "TileDddbManager::SetCurrentScin() - Unable to find the scintillator, item = " << item );
914  return 0;
915  }
916  else
917  {
918  m_currentScin = (*m_scnt)[ind];
919  return 1;
920  }
921 }
922 
924 {
925  if (m_currentScin)
926  return m_currentScin->getInt("ITEM");
927  else
928  {
929  ATH_MSG_ERROR( "TileDddbManager::SCNTitem() - Current Scintillator not set, returning -999" );
930  return -999;
931  }
932 }
933 
935 {
936  if (m_currentScin)
937  return m_currentScin->getDouble("DR");
938  else
939  {
940  ATH_MSG_ERROR( "TileDddbManager::SCNTdr() - Current Scintillator not set, returning -999.9" );
941  return -999.9;
942  }
943 }
944 
946 {
947  if (m_currentScin)
948  return m_currentScin->getDouble("RC");
949  else
950  {
951  ATH_MSG_ERROR( "TileDddbManager::SCNTrc() - Current Scintillator not set, returning -999.9" );
952  return -999.9;
953  }
954 }
955 
957 {
958  if (m_currentScin)
959  return m_currentScin->getDouble("ZP");
960  else
961  {
962  ATH_MSG_ERROR( "TileDddbManager::SCNTzp() - Current Scintillator not set, returning -999.9" );
963  return -999.9;
964  }
965 }
966 
968 {
969  if (m_currentScin)
970  return m_currentScin->getDouble("DRW");
971  else
972  {
973  ATH_MSG_ERROR( "TileDddbManager::SCNTdrw() - Current Scintillator not set, returning -999.9" );
974  return -999.9;
975  }
976 }
977 
979 {
980  if (m_currentScin)
981  return m_currentScin->getDouble("DT");
982  else
983  {
984  ATH_MSG_ERROR( "TileDddbManager::SCNTdt() - Current Scintillator not set, returning -999.9" );
985  return -999.9;
986  }
987 }
988 
990 {
991  if (m_currentScin)
992  return m_currentScin->getDouble("DTW");
993  else
994  {
995  ATH_MSG_ERROR( "TileDddbManager::SCNTdtw() - Current Scintillator not set, returning -999.9" );
996  return -999.9;
997  }
998 }
999 
1001 {
1002  if (m_currentScin)
1003  return m_currentScin->getDouble("DPHI");
1004  else
1005  {
1006  ATH_MSG_ERROR( "TileDddbManager::SCNTdphi() - Current Scintillator not set, returning -999.9" );
1007  return -999.9;
1008  }
1009 }
1010 
1011 
1012 // -------------------- Extended Barrel C U T S ---------------------
1013 
1015 {
1016  if (m_buildCuts)
1017  {std::string name(input);
1018  unsigned int ind = 0;
1019 
1020  while (((*m_cuts)[ind]->getString("VOLUME") != name) && (++ind < m_n_cuts))
1021  {
1022  }
1023 
1024  if (ind >= m_n_cuts)
1025  { ATH_MSG_ERROR( "TileDddbManager::SetCurrentCuts() - Unable to find the m_currentCuts volume name = " << name );
1026  return 0;
1027  }
1028  else
1029  { m_currentCuts = (*m_cuts)[ind];
1030  return 1;
1031  }
1032  }
1033  ATH_MSG_WARNING( "TileDddbManager::SetCurrentCuts() - SetCuts Ext.Barrel Cuts unavailable in touched DB" );
1034  return 1;
1035 }
1036 
1038 {
1039  ATH_MSG_DEBUG( "TileDddbManager::BoolCuts() - return "
1040  << std::boolalpha << m_buildCuts );
1041  return m_buildCuts;
1042 }
1043 
1044 std::string TileDddbManager::CutsName() const
1045 {std::string output ="-999.9";
1046  if (m_currentCuts)
1047  return m_currentCuts->getString("VOLUME");
1048  else
1049  { ATH_MSG_ERROR( "TileDddbManager::CutsName() - Current VOLUME dimension not set, returning -999.9" );
1050  return output;
1051  }
1052 }
1053 
1055 {
1056  if (m_currentCuts)
1057  return (double)m_currentCuts->getFloat("DX1");
1058  else
1059  { ATH_MSG_ERROR( "TileDddbManager::CutsDX1() - Current dX1 dimension not set, returning -999.9" );
1060  return -999.9;
1061  }
1062 }
1063 
1065 {
1066  if (m_currentCuts)
1067  return (double)m_currentCuts->getFloat("DX2");
1068  else
1069  { ATH_MSG_ERROR( "TileDddbManager::CutsDX2() - Current dX2 dimension not set, returning -999.9" );
1070  return -999.9;
1071  }
1072 }
1073 
1075 {
1076  if (m_currentCuts)
1077  return (double)m_currentCuts->getFloat("DY1");
1078  else
1079  { ATH_MSG_ERROR( "TileDddbManager::CutsDY1() - Current dY1 dimension not set, returning -999.9" );
1080  return -999.9;
1081  }
1082 }
1083 
1085 {
1086  if (m_currentCuts)
1087  return (double)m_currentCuts->getFloat("DY2");
1088  else
1089  { ATH_MSG_ERROR( "TileDddbManager::CutsDY2() - Current dY2 dimension not set, returning -999.9" );
1090  return -999.9;
1091  }
1092 }
1093 
1095 {
1096  if (m_currentCuts)
1097  return (double)m_currentCuts->getFloat("DZ1");
1098  else
1099  { ATH_MSG_ERROR( "TileDddbManager::CutsDZ1() - Current dZ1 dimension not set, returning -999.9" );
1100  return -999.9;
1101  }
1102 }
1103 
1105 {
1106  if (m_currentCuts)
1107  return (double)m_currentCuts->getFloat("XPOS");
1108  else
1109  { ATH_MSG_ERROR( "TileDddbManager::CutsXpos() - Current Xpos dimension not set, returning -999.9" );
1110  return -999.9;
1111  }
1112 }
1113 
1115 {
1116  if (m_currentCuts)
1117  return (double)m_currentCuts->getFloat("YPOS");
1118  else
1119  { ATH_MSG_ERROR( "TileDddbManager::CutsYpos() - Current Ypos dimension not set, returning -999.9" );
1120  return -999.9;
1121  }
1122 }
1123 
1124 // -------------------- SADDLE SUPPORT ---------------------
1125 
1127 {
1128  if (m_buildSaddle)
1129  { if (index >= m_n_saddle)
1130  { return 0;
1131  }
1132  else
1133  { m_currentSaddle = (*m_saddle)[index];
1134  return 1;
1135  }
1136  }
1137  ATH_MSG_WARNING( "TileDddbManager::SetCurrentSaddle() - Saddle unavailable in touched DB");
1138  return 1;
1139 }
1140 
1142 { if (m_buildSaddle)
1143  { return m_buildSaddle;
1144  } else
1145  { ATH_MSG_DEBUG( "TileDddbManager::BoolSaddle() - return false" );
1146  return false;
1147  }
1148 }
1149 
1151 {
1152  if (m_currentSaddle)
1153  return (double)m_currentSaddle->getFloat("DZSADDLESUPPORT");
1154  else
1155  { ATH_MSG_ERROR( "TileDddbManager::DzSaddleSupport() - dimension not set, returning -999.9" );
1156  return -999.9;
1157  }
1158 }
1159 
1161 {
1162  if (m_currentSaddle)
1163  return (double)m_currentSaddle->getFloat("RADIUSSADDLE");
1164  else
1165  { ATH_MSG_ERROR( "TileDddbManager::RadiusSaddle() - dimension not set, returning -999.9" );
1166  return -999.9;
1167  }
1168 }
1169 
1170 // -------------------- G I R D E R ---------------------
1172 {
1173  unsigned int ind = 0;
1174 
1175  while (((*m_tigr)[ind]->getInt("ITEM") != item) && (++ind < m_n_tigr))
1176  {
1177  }
1178 
1179  if (ind >= m_n_tigr)
1180  {
1181  ATH_MSG_DEBUG( "TileDddbManager::SetCurrentGird() - Unable to find the girder element, item= " << item );
1182  return 0;
1183  }
1184  else
1185  {
1186  m_currentGird = (*m_tigr)[ind];
1187  return 1;
1188  }
1189 }
1190 
1192 {
1193  if (m_currentGird)
1194  return m_currentGird->getInt("ITEM");
1195  else
1196  {
1197  ATH_MSG_ERROR( "TileDddbManager::TIGRitem() - Current Girder element not set, returning -999" );
1198  return -999;
1199  }
1200 }
1201 
1203 {
1204  if (m_currentGird)
1205  return m_currentGird->getInt("MATERIAL");
1206  else
1207  {
1208  ATH_MSG_ERROR( "TileDddbManager::TIGRmaterial() - Current Girder element not set, returning -999" );
1209  return -999;
1210  }
1211 }
1212 
1214 {
1215  if (m_currentGird)
1216  return m_currentGird->getDouble("RC");
1217  else
1218  {
1219  ATH_MSG_ERROR( "TileDddbManager::TIGRrc() - Current Girder element not set, returning -999.9" );
1220  return -999.9;
1221  }
1222 }
1223 
1225 {
1226  if (m_currentGird)
1227  return m_currentGird->getDouble("DR");
1228  else
1229  {
1230  ATH_MSG_ERROR( "TileDddbManager::TIGRdr() - Current Girder element not set, returning -999.9" );
1231  return -999.9;
1232  }
1233 }
1234 
1236 {
1237  if (m_currentGird)
1238  return m_currentGird->getDouble("DW");
1239  else
1240  {
1241  ATH_MSG_ERROR( "TileDddbManager::TIGRdw() - Current Girder element not set, returning -999.9" );
1242  return -999.9;
1243  }
1244 }
1245 
1247 {
1248  if (m_currentGird)
1249  return m_currentGird->getDouble("OFF");
1250  else
1251  {
1252  ATH_MSG_ERROR( "TileDddbManager::TIGRoff() - Current Girder element not set, returning -999.9" );
1253  return -999.9;
1254  }
1255 }
1256 
1257 // -------------------- T I F G ---------------------
1259 {
1260  unsigned int ind = 0;
1261 
1262  while (((*m_tifg)[ind]->getInt("SECTION") != section) && (++ind < m_n_tifg))
1263  {
1264  }
1265 
1266  if (ind >= m_n_tifg)
1267  {
1268  ATH_MSG_DEBUG( "TileDddbManager::SetCurrentTifg() - Unable to find the finger, section = " << section );
1269  return 0;
1270  }
1271  else
1272  {
1273  m_currentTifg = (*m_tifg)[ind];
1274  return 1;
1275  }
1276 }
1277 
1279 {
1280  if (m_currentTifg)
1281  return m_currentTifg->getInt("SECTION");
1282  else
1283  {
1284  ATH_MSG_ERROR( "TileDddbManager::TIFGsection() - Current TIFG not set, returning -999" );
1285  return -999;
1286  }
1287 }
1288 
1290 {
1291  if (m_currentTifg)
1292  return m_currentTifg->getInt("NELEM");
1293  else
1294  {
1295  ATH_MSG_ERROR( "TileDddbManager::TIFGnelem() - Current TIFG not set, returning -999" );
1296  return -999;
1297  }
1298 }
1299 
1301 {
1302  if (m_currentTifg)
1303  return m_currentTifg->getDouble("DZ");
1304  else
1305  {
1306  ATH_MSG_ERROR( "TileDddbManager::TIFGdz() - Current TIFG not set, returning -999.9" );
1307  return -999.9;
1308  }
1309 }
1310 
1311 // -------------------- T I C G ---------------------
1313 {
1314  unsigned int ind = 0;
1315 
1316  while (((*m_ticg)[ind]->getInt("ITEM") != item) && (++ind < m_n_ticg))
1317  {
1318  }
1319 
1320  if (ind >= m_n_ticg)
1321  {
1322  ATH_MSG_DEBUG( "TileDddbManager::SetCurrentTicg() - Unable to find the finger element, item = " << item );
1323  return 0;
1324  }
1325  else
1326  {
1327  m_currentTicg = (*m_ticg)[ind];
1328  return 1;
1329  }
1330 }
1331 
1333 {
1334  if (m_currentTicg)
1335  return m_currentTicg->getInt("ITEM");
1336  else
1337  {
1338  ATH_MSG_ERROR( "TileDddbManager::TICGitem() - Current TICG not set, returning -999" );
1339  return -999;
1340  }
1341 }
1342 
1344 {
1345  if (m_currentTicg)
1346  return m_currentTicg->getInt("MATERIAL");
1347  else
1348  {
1349  ATH_MSG_ERROR( "TileDddbManager::TICGmaterial() - Current TICG not set, returning -999" );
1350  return -999;
1351  }
1352 }
1353 
1355 {
1356  if (m_currentTicg)
1357  return m_currentTicg->getInt("SHAPE");
1358  else
1359  {
1360  ATH_MSG_ERROR( "TileDddbManager::TICGshape() - Current TICG not set, returning -999" );
1361  return -999;
1362  }
1363 }
1364 
1366 {
1367  if (m_currentTicg)
1368  return m_currentTicg->getDouble("RC");
1369  else
1370  {
1371  ATH_MSG_ERROR( "TileDddbManager::TICGrc() - Current TICG not set, returning -999.9" );
1372  return -999.9;
1373  }
1374 }
1375 
1377 {
1378  if (m_currentTicg)
1379  return m_currentTicg->getDouble("DR");
1380  else
1381  {
1382  ATH_MSG_ERROR( "TileDddbManager::TICGdr() - Current TICG not set, returning -999.9" );
1383  return -999.9;
1384  }
1385 }
1386 
1388 {
1389  if (m_currentTicg)
1390  return m_currentTicg->getDouble("DX1");
1391  else
1392  {
1393  ATH_MSG_ERROR( "TileDddbManager::TICGdx1() - Current TICG not set, returning -999.9" );
1394  return -999.9;
1395  }
1396 }
1397 
1399 {
1400  if (m_currentTicg)
1401  return m_currentTicg->getDouble("DX2");
1402  else
1403  {
1404  ATH_MSG_ERROR( "TileDddbManager::TICGdx2() - Current TICG not set, returning -999.9" );
1405  return -999.9;
1406  }
1407 }
1408 
1410 {
1411  if (m_currentTicg)
1412  return m_currentTicg->getDouble("OFF");
1413  else
1414  {
1415  ATH_MSG_ERROR( "TileDddbManager::TICGoff() - Current TICG not set, returning -999.9" );
1416  return -999.9;
1417  }
1418 }
1419 
1421 {
1422  if (m_currentTicg)
1423  return m_currentTicg->getDouble("DZ");
1424  else
1425  {
1426  ATH_MSG_ERROR( "TileDddbManager::TICGdz() - Current TICG not set, returning -999.9" );
1427  return -999.9;
1428  }
1429 }
1430 
1432 {
1433  if (m_currentTicg)
1434  return m_currentTicg->getDouble("ZC");
1435  else
1436  {
1437  ATH_MSG_ERROR( "TileDddbManager::TICGzc() - Current TICG not set, returning -999.9" );
1438  return -999.9;
1439  }
1440 }
1441 
1442 unsigned int TileDddbManager::GetNumTicl() const
1443 {
1444  return m_n_ticl;
1445 }
1446 
1447 // -------------------- T I C L ---------------------
1448 int TileDddbManager::SetCurrentTicl(int detector, double sample, double tower)
1449 {
1450  unsigned int detector_ind = 0;
1451 
1452  // Looking for the first cell of given detector
1453  while (((*m_ticl)[detector_ind]->getInt("DETECTOR") != detector) && (++detector_ind < m_n_ticl))
1454  {
1455  }
1456 
1457  if (detector_ind >= m_n_ticl)
1458  {
1459  ATH_MSG_DEBUG( "TileDddbManager::SetCurrentTicl() - Unable to find any cell for the detector = " << detector );
1460  return 0;
1461  }
1462  else
1463  {
1464  // Looking for the first cell in given sample of given detector
1465  unsigned int sample_ind = detector_ind;
1466 
1467  while (((*m_ticl)[sample_ind]->getInt("SAMPLE") != sample) && (++sample_ind < m_n_ticl))
1468  {
1469  }
1470 
1471  if (sample_ind >= m_n_ticl)
1472  {
1473  ATH_MSG_DEBUG( "TileDddbManager::SetCurrentTicl() - Unable to find any cell for sample = "
1474  << sample << " in the detector = " << detector );
1475  return 0;
1476  }
1477  else
1478  {
1479  // Looking for the cell with give tower inside found sample
1480  unsigned int ind = sample_ind;
1481 
1482  while (((*m_ticl)[ind]->getInt("TOWER") != tower) && (++ind < m_n_ticl))
1483  {
1484  }
1485 
1486  if (ind >= m_n_ticl)
1487  {
1488  ATH_MSG_DEBUG( "TileDddbManager::SetCurrentTicl() - Unable to find any cell for tower = "
1489  << tower << " in the detector = " << detector << " and sample = " << sample );
1490  return 0;
1491  }
1492  else
1493  {
1494  m_currentTicl = (*m_ticl)[ind];
1496  return 1;
1497  }
1498  }
1499  }
1500 }
1501 
1503 {
1504  if (index >= m_n_ticl)
1505  {
1506  ATH_MSG_DEBUG( "TileDddbManager::SetCurrentTicl() - The requested index = " << index << " out of range." );
1507  return 0;
1508  }
1509  else
1510  {
1511  m_currentTicl = (*m_ticl)[index];
1513  return 1;
1514  }
1515 }
1516 
1518 {
1519  unsigned int ind = 0;
1520 
1521  // Looking for the first cell of given detector
1522  while (((*m_ticl)[ind]->getInt("DETECTOR") != detector) && (++ind < m_n_ticl))
1523  {
1524  }
1525 
1526  if (ind >= m_n_ticl)
1527  return 0; // FAILURE
1528 
1529  m_currentTicl = (*m_ticl)[ind];
1531  return 1; // SUCCESS
1532 
1533 }
1534 
1536 {
1537  unsigned int detector_ind = 0;
1538 
1539  // Looking for the first cell of given detector
1540  while (((*m_ticl)[detector_ind]->getInt("DETECTOR") != detector) && (++detector_ind < m_n_ticl))
1541  {
1542  }
1543 
1544  if (detector_ind >= m_n_ticl)
1545  return 0; // FAILURE
1546  else
1547  {
1548  // Looking for the first cell in given sample of given detector
1549  unsigned int sample_ind = detector_ind;
1550 
1551  while (((*m_ticl)[sample_ind]->getInt("SAMPLE") != sample) && (++sample_ind < m_n_ticl))
1552  {
1553  }
1554 
1555  if (sample_ind >= m_n_ticl)
1556  return 0; // FAILURE
1557 
1558  m_currentTicl = (*m_ticl)[sample_ind];
1560  return 1; // SUCCESS
1561  }
1562 }
1563 
1565 {
1566  if (m_currentTiclInd<0) return 0; // FAILURE
1567 
1568  int currentDetector = (*m_ticl)[m_currentTiclInd]->getInt("DETECTOR");
1569 
1570  if ((++m_currentTiclInd == static_cast<int>(m_n_ticl))||((*m_ticl)[m_currentTiclInd]->getInt("DETECTOR") != currentDetector))
1571  {
1572  m_currentTiclInd--;
1573  return 0; // FAILURE
1574  }
1575 
1576  m_currentTicl = (*m_ticl)[m_currentTiclInd];
1577  return 1;
1578 }
1579 
1581 {
1582  if (m_currentTiclInd<0) return 0; // FAILURE
1583 
1584  int currentDetector = (*m_ticl)[m_currentTiclInd]->getInt("DETECTOR");
1585  float currentSample = (*m_ticl)[m_currentTiclInd]->getInt("SAMPLE");
1586 
1587  if ((++m_currentTiclInd == static_cast<int>(m_n_ticl))||
1588  ((*m_ticl)[m_currentTiclInd]->getInt("DETECTOR") != currentDetector)||
1589  ((*m_ticl)[m_currentTiclInd]->getInt("SAMPLE") != currentSample))
1590  {
1591  m_currentTiclInd--;
1592  return 0; // FAILURE
1593  }
1594 
1595  m_currentTicl = (*m_ticl)[m_currentTiclInd];
1596  return 1;
1597 }
1598 
1600 {
1601  if (m_currentTicl)
1602  return m_currentTicl->getInt("DETECTOR");
1603  else
1604  {
1605  ATH_MSG_ERROR( "TileDddbManager::TICLdetector() - Current TICL not set, returning -999" );
1606  return -999;
1607  }
1608 }
1609 
1611 {
1612  if (m_currentTicl)
1613  return m_currentTicl->getInt("NCELL");
1614  else
1615  {
1616  ATH_MSG_ERROR( "TileDddbManager::TICLncell() - Current TICL not set, returning -999.9" );
1617  return -999.9;
1618  }
1619 }
1620 
1622 {
1623  if (m_currentTicl)
1624  return m_currentTicl->getInt("TOWER");
1625  else
1626  {
1627  ATH_MSG_ERROR( "TileDddbManager::TICLtower() - Current TICL not set, returning -999.9" );
1628  return -999.9;
1629  }
1630 }
1631 
1633 {
1634  if (m_currentTicl)
1635  return m_currentTicl->getInt("SAMPLE");
1636  else
1637  {
1638  ATH_MSG_ERROR( "TileDddbManager::TICLsample() - Current TICL not set, returning -999.9" );
1639  return -999.9;
1640  }
1641 }
1642 
1644 {
1645  if (m_currentTicl)
1646  return m_currentTicl->getDouble("ETA");
1647  else
1648  {
1649  ATH_MSG_ERROR( "TileDddbManager::TICLeta() - Current TICL not set, returning -999.9" );
1650  return -999.9;
1651  }
1652 }
1653 
1655 {
1656  if (m_currentTicl)
1657  return m_currentTicl->getDouble("DETA");
1658  else
1659  {
1660  ATH_MSG_ERROR( "TileDddbManager::TICLdeta() - Current TICL not set, returning -999.9" );
1661  return -999.9;
1662  }
1663 }
1664 
1666 {
1667  if (m_currentTicl)
1668  return m_currentTicl->getInt("FIRSTROW");
1669  else
1670  {
1671  ATH_MSG_ERROR( "TileDddbManager::TICLfirstrow() - Current TICL not set, returning -999.9" );
1672  return -999.9;
1673  }
1674 }
1675 
1677 {
1678  if (m_currentTicl)
1679  return m_currentTicl->getInt("LASTROW");
1680  else
1681  {
1682  ATH_MSG_ERROR( "TileDddbManager::TICLlastrow() - Current TICL not set, returning -999.9" );
1683  return -999.9;
1684  }
1685 }
1686 
1687 double TileDddbManager::TICLntilesrow(unsigned int ind) const
1688 {
1689  if (m_currentTicl)
1690  return m_currentTicl->getInt("NTILESROW",ind);
1691  else
1692  {
1693  ATH_MSG_ERROR( "TileDddbManager::TICLntilesrow() - Current TICL not set, returning 9999" );
1694  return 9999;
1695  }
1696 }
1697 
1699 {
1700  if (m_currentTicl)
1701  return m_currentTicl->getInt("NPMT");
1702  else
1703  {
1704  ATH_MSG_ERROR( "TileDddbManager::TICLnpmt() - Current TICL not set, returning -999.9" );
1705  return -999.9;
1706  }
1707 }
1708 
1709 double TileDddbManager::TICLholes(unsigned int ind) const
1710 {
1711  if (m_currentTicl)
1712  return m_currentTicl->getInt("HOLES",ind);
1713  else
1714  {
1715  ATH_MSG_ERROR( "TileDddbManager::TICLholes() - Current TICL not set, returning 9999" );
1716  return 9999;
1717  }
1718 }
1719 
1720 int TileDddbManager::getSwitch(const char *name, int val) const
1721 {
1722  if (m_tileSwitches) {
1723  try {
1724  if ((*m_tileSwitches)[0]->isFieldNull(name)) {
1725  ATH_MSG_DEBUG( "TileDddbManager::getSwitch() - TileSwitches(" << name << ") is EMPTY, returning " << name << " = " << val );
1726  return val;
1727  } else {
1728  return (*m_tileSwitches)[0]->getInt(name);
1729  }
1730  } catch (std::exception& e) {
1731  ATH_MSG_WARNING( "TileDddbManager::getSwitch() - TileSwitches table does not contain field " << name << ", returning " << name << " = " << val );
1732  return val;
1733  }
1734  } else {
1735  ATH_MSG_ERROR( "TileDddbManager::getSwitch() - TileSwitches is not set, returning " << name << " = " << val );
1736  return val;
1737  }
1738 }
1739 
IRDBRecord::getInt
virtual int getInt(const std::string &fieldName) const =0
Get int field value.
TileDddbManager::TICLtower
double TICLtower() const
Definition: TileDddbManager.cxx:1621
LArG4FSStartPointFilter.part
part
Definition: LArG4FSStartPointFilter.py:21
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
TileDddbManager::GetEnvRin
double GetEnvRin() const
Definition: TileDddbManager.cxx:240
TileDddbManager::TICGdx2
double TICGdx2() const
Definition: TileDddbManager.cxx:1398
TileDddbManager::TILBnmodul
int TILBnmodul() const
Definition: TileDddbManager.cxx:623
TileDddbManager::SetCurrentEnvByIndex
int SetCurrentEnvByIndex(unsigned int envelope)
Definition: TileDddbManager.cxx:175
TileDddbManager::m_currentSection
const IRDBRecord * m_currentSection
Definition: TileDddbManager.h:310
TileDddbManager::TILBsection
int TILBsection() const
Definition: TileDddbManager.cxx:601
TileDddbManager::m_currentTileMod
const IRDBRecord * m_currentTileMod
Definition: TileDddbManager.h:309
TileDddbManager::SetCurrentCuts
int SetCurrentCuts(const std::string &input)
Fields of CUTS structure (see also Oracle comments):
Definition: TileDddbManager.cxx:1014
TileDddbManager::TILEzmam
double TILEzmam() const
Definition: TileDddbManager.cxx:98
TileDddbManager::SetCurrentEnvByType
int SetCurrentEnvByType(unsigned int envelope)
Definition: TileDddbManager.cxx:140
TileDddbManager::SetCurrentModuleByNumber
int SetCurrentModuleByNumber(unsigned int Number)
Definition: TileDddbManager.cxx:396
TileDddbManager::m_n_cuts
unsigned int m_n_cuts
Definition: TileDddbManager.h:304
TileDddbManager::TIGRmaterial
int TIGRmaterial() const
Definition: TileDddbManager.cxx:1202
TileDddbManager::TIFGdz
double TIFGdz() const
Definition: TileDddbManager.cxx:1300
TileDddbManager::SCNTitem
int SCNTitem() const
Fields of SCNT structure (see also Oracle comments):
Definition: TileDddbManager.cxx:923
TileDddbManager::SetCurrentSection
int SetCurrentSection(unsigned int section, bool print=true)
Definition: TileDddbManager.cxx:582
TileDddbManager::m_currentTileGlob
const IRDBRecord * m_currentTileGlob
Definition: TileDddbManager.h:308
TileDddbManager::FillModTypes
void FillModTypes()
Definition: TileDddbManager.cxx:546
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
TileDddbManager::GetEnvDZ
double GetEnvDZ() const
Definition: TileDddbManager.cxx:297
TileDddbManager::m_node
std::string m_node
Definition: TileDddbManager.h:322
TileDddbManager::TILBngirder
int TILBngirder() const
Definition: TileDddbManager.cxx:821
TileDddbManager::SetCurrentTifg
int SetCurrentTifg(int section)
Definition: TileDddbManager.cxx:1258
TileDddbManager::TICLntilesrow
double TICLntilesrow(unsigned int ind) const
Definition: TileDddbManager.cxx:1687
TileDddbManager::RadiusSaddle
double RadiusSaddle() const
Definition: TileDddbManager.cxx:1160
TileDddbManager::TILBrmax
double TILBrmax() const
Definition: TileDddbManager.cxx:645
TileDddbManager::GetModDTheta
double GetModDTheta() const
Definition: TileDddbManager.cxx:503
index
Definition: index.py:1
TileDddbManager::TILBisci_st
double TILBisci_st() const
Definition: TileDddbManager.cxx:755
TRTCalib_cfilter.detector
detector
Definition: TRTCalib_cfilter.py:241
TileDddbManager::CutsName
std::string CutsName() const
Definition: TileDddbManager.cxx:1044
TileDddbManager::TICGzc
double TICGzc() const
Definition: TileDddbManager.cxx:1431
TileDddbManager::TILBflangex
double TILBflangex() const
Definition: TileDddbManager.cxx:711
IRDBRecord::getString
virtual const std::string & getString(const std::string &fieldName) const =0
Get string field value.
TileDddbManager::m_tile
IRDBRecordset_ptr m_tile
Definition: TileDddbManager.h:281
TileDddbManager::GetEnvDPsi
double GetEnvDPsi() const
Definition: TileDddbManager.cxx:337
TileDddbManager::BoolSaddle
bool BoolSaddle()
Definition: TileDddbManager.cxx:1141
TileDddbManager::TICGoff
double TICGoff() const
Definition: TileDddbManager.cxx:1409
TileDddbManager::GetEnvDY
double GetEnvDY() const
Definition: TileDddbManager.cxx:326
TileDddbManager::SetCurrentTypeByNumber
int SetCurrentTypeByNumber(unsigned int Number)
Definition: TileDddbManager.cxx:527
TileDddbManager::GetEnvDPhi
double GetEnvDPhi() const
Definition: TileDddbManager.cxx:280
TileDddbManager::m_modTypes
std::vector< unsigned int > m_modTypes
Definition: TileDddbManager.h:326
TileDddbManager::SetCurrentTicg
int SetCurrentTicg(int item)
Definition: TileDddbManager.cxx:1312
TileDddbManager::m_currentTicg
const IRDBRecord * m_currentTicg
Definition: TileDddbManager.h:314
TileDddbManager::TICLsample
double TICLsample() const
Definition: TileDddbManager.cxx:1632
TileDddbManager::GetModType
int GetModType() const
Definition: TileDddbManager.cxx:437
TileDddbManager::TILBnscin
int TILBnscin() const
Definition: TileDddbManager.cxx:832
TileDddbManager::m_n_ticl
unsigned int m_n_ticl
Definition: TileDddbManager.h:300
TileDddbManager::m_currentGird
const IRDBRecord * m_currentGird
Definition: TileDddbManager.h:311
TileDddbManager::GetModDY
double GetModDY() const
Definition: TileDddbManager.cxx:459
TileDddbManager::GetNumberOfEnv
int GetNumberOfEnv() const
Definition: TileDddbManager.cxx:124
TileDddbManager::TILBdzmodul
double TILBdzmodul() const
Definition: TileDddbManager.cxx:766
TileDddbManager::m_buildSaddle
bool m_buildSaddle
Definition: TileDddbManager.h:330
TileDddbManager::m_currentTicl
const IRDBRecord * m_currentTicl
Definition: TileDddbManager.h:315
TileDddbManager::TILEzshift
double TILEzshift() const
Definition: TileDddbManager.cxx:113
TileDddbManager::SetNextTiclInDet
int SetNextTiclInDet()
Definition: TileDddbManager.cxx:1564
TileDddbManager::SetCurrentTicl
int SetCurrentTicl(int detector, double sample, double tower)
Definition: TileDddbManager.cxx:1448
TileDddbManager::TICLfirstrow
double TICLfirstrow() const
Definition: TileDddbManager.cxx:1665
TileDddbManager::TILBdrfront
double TILBdrfront() const
Definition: TileDddbManager.cxx:689
TileDddbManager::TIGRdr
double TIGRdr() const
Definition: TileDddbManager.cxx:1224
TileDddbManager::TILErmim
double TILErmim() const
Definition: TileDddbManager.cxx:88
TileDddbManager::SetCurrentSectionByNumber
int SetCurrentSectionByNumber(unsigned int section)
Definition: TileDddbManager.cxx:577
TileDddbManager::TICLncell
double TICLncell() const
Definition: TileDddbManager.cxx:1610
TileDddbManager::m_currentCuts
const IRDBRecord * m_currentCuts
Definition: TileDddbManager.h:316
TileDddbManager::TICGmaterial
int TICGmaterial() const
Definition: TileDddbManager.cxx:1343
TileDddbManager::GetModDX
double GetModDX() const
Definition: TileDddbManager.cxx:448
TileDddbManager::TILBrmin
double TILBrmin() const
Definition: TileDddbManager.cxx:634
TileDddbManager::TILBphigap
double TILBphigap() const
Definition: TileDddbManager.cxx:744
TileDddbManager::TILBzoffset
double TILBzoffset() const
Definition: TileDddbManager.cxx:733
TileDddbManager::TILErmam
double TILErmam() const
Definition: TileDddbManager.cxx:93
TileDddbManager::m_EnvSize
unsigned int m_EnvSize
Definition: TileDddbManager.h:302
TileDddbManager::SetCurrentScin
int SetCurrentScin(int item)
Definition: TileDddbManager.cxx:903
TileDddbManager::SetCurrentTypeByIndex
int SetCurrentTypeByIndex(unsigned int Id)
Definition: TileDddbManager.cxx:516
TileDddbManager::m_n_timod
unsigned int m_n_timod
Definition: TileDddbManager.h:294
TileDddbManager::TILBcurscint
int TILBcurscint() const
Definition: TileDddbManager.cxx:877
TileDddbManager::TICLholes
double TICLholes(unsigned int ind) const
Definition: TileDddbManager.cxx:1709
TileDddbManager::SCNTdr
double SCNTdr() const
Definition: TileDddbManager.cxx:934
TileDddbManager::TIGRrc
double TIGRrc() const
Definition: TileDddbManager.cxx:1213
TileDddbManager::TIGRdw
double TIGRdw() const
Definition: TileDddbManager.cxx:1235
TileDddbManager::TILBdzperio
double TILBdzperio() const
Definition: TileDddbManager.cxx:678
TileDddbManager::m_currentTiclInd
int m_currentTiclInd
Definition: TileDddbManager.h:319
TileDddbManager::TILErmin
double TILErmin() const
Definition: TileDddbManager.cxx:103
TileDddbManager::GetNumTilb
unsigned int GetNumTilb() const
Definition: TileDddbManager.cxx:118
TileDddbManager::SetCurrentSectionByIndex
int SetCurrentSectionByIndex(unsigned int IdSection)
Definition: TileDddbManager.cxx:564
TileDddbManager::SCNTdphi
double SCNTdphi() const
Definition: TileDddbManager.cxx:1000
IRDBAccessSvc.h
Definition of the abstract IRDBAccessSvc interface.
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
TileDddbManager::CutsXpos
double CutsXpos() const
Definition: TileDddbManager.cxx:1104
TileDddbManager::m_n_saddle
unsigned int m_n_saddle
Definition: TileDddbManager.h:305
TileDddbManager::m_n_tilb
unsigned int m_n_tilb
Definition: TileDddbManager.h:295
FullCPAlgorithmsTest_eljob.sample
sample
Definition: FullCPAlgorithmsTest_eljob.py:113
TileDddbManager::TICLeta
double TICLeta() const
Definition: TileDddbManager.cxx:1643
TileDddbManager::TIFGnelem
int TIFGnelem() const
Definition: TileDddbManager.cxx:1289
TileDddbManager::TICLlastrow
double TICLlastrow() const
Definition: TileDddbManager.cxx:1676
IRDBAccessSvc
IRDBAccessSvc is an abstract interface to the athena service that provides the following functionalit...
Definition: IRDBAccessSvc.h:42
TileDddbManager::GetEnvDX
double GetEnvDX() const
Definition: TileDddbManager.cxx:315
TileDddbManager::DzSaddleSupport
double DzSaddleSupport() const
Definition: TileDddbManager.cxx:1150
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
TileDddbManager::TILBdzgir
double TILBdzgir() const
Definition: TileDddbManager.cxx:891
TileDddbManager::GetEnvZShift
double GetEnvZShift() const
Definition: TileDddbManager.cxx:359
TileDddbManager::GetEnvZLength
double GetEnvZLength() const
Definition: TileDddbManager.cxx:262
TileDddbManager::TIFGsection
int TIFGsection() const
Definition: TileDddbManager.cxx:1278
TileDddbManager::m_n_tileSwitches
unsigned int m_n_tileSwitches
Definition: TileDddbManager.h:306
TileDddbManager::TILBdzend1
double TILBdzend1() const
Definition: TileDddbManager.cxx:799
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
TileDddbManager::m_EnvNum
unsigned int m_EnvNum
Definition: TileDddbManager.h:301
calibdata.exception
exception
Definition: calibdata.py:496
TileDddbManager::GetEnvSide
int GetEnvSide() const
Definition: TileDddbManager.cxx:217
TileDddbManager::TILBrmaximal
double TILBrmaximal() const
Definition: TileDddbManager.cxx:667
TileDddbManager::m_tifg
IRDBRecordset_ptr m_tifg
Definition: TileDddbManager.h:285
TileDddbManager::m_n_tifg
unsigned int m_n_tifg
Definition: TileDddbManager.h:298
TileDddbManager::TICGrc
double TICGrc() const
Definition: TileDddbManager.cxx:1365
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
TileDddbManager::TILBdzend
double TILBdzend() const
Definition: TileDddbManager.cxx:700
TileDddbManager::SetFirstTiclInDetSamp
int SetFirstTiclInDetSamp(int detector, double sample)
Definition: TileDddbManager.cxx:1535
TileDddbManager::getSwitch
int getSwitch(const char *name, int def_val) const
Definition: TileDddbManager.cxx:1720
TileDddbManager::m_scnt
IRDBRecordset_ptr m_scnt
Definition: TileDddbManager.h:284
python.dummyaccess.access
def access(filename, mode)
Definition: dummyaccess.py:18
TileDddbManager::TILBnpercutneg
int TILBnpercutneg() const
Definition: TileDddbManager.cxx:865
TileDddbManager::m_tileSwitches
IRDBRecordset_ptr m_tileSwitches
Definition: TileDddbManager.h:290
TileDddbManager::m_tiglob
IRDBRecordset_ptr m_tiglob
Definition: TileDddbManager.h:279
TileDddbManager::GetModDPhi
double GetModDPhi() const
Definition: TileDddbManager.cxx:481
TileDddbManager::m_ticl
IRDBRecordset_ptr m_ticl
Definition: TileDddbManager.h:287
TileDddbManager::GetModTypeSize
unsigned int GetModTypeSize() const
Definition: TileDddbManager.cxx:541
merge.output
output
Definition: merge.py:17
print
void print(char *figname, TCanvas *c1)
Definition: TRTCalib_StrawStatusPlots.cxx:25
TileDddbManager::TILBnpercutpos
int TILBnpercutpos() const
Definition: TileDddbManager.cxx:854
TileDddbManager::BoolCuts
bool BoolCuts()
Definition: TileDddbManager.cxx:1037
TileDddbManager::m_currentSaddle
const IRDBRecord * m_currentSaddle
Definition: TileDddbManager.h:317
TileDddbManager::TIGRoff
double TIGRoff() const
Definition: TileDddbManager.cxx:1246
TileDddbManager::SCNTzp
double SCNTzp() const
Definition: TileDddbManager.cxx:956
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
TileDddbManager::SetCurrentGird
int SetCurrentGird(int item)
Definition: TileDddbManager.cxx:1171
TileDddbManager::CutsDY2
double CutsDY2() const
Definition: TileDddbManager.cxx:1084
TileDddbManager::m_currentTifg
const IRDBRecord * m_currentTifg
Definition: TileDddbManager.h:313
TileDddbManager::TILBdzspac
double TILBdzspac() const
Definition: TileDddbManager.cxx:788
TileDddbManager::m_timod
IRDBRecordset_ptr m_timod
Definition: TileDddbManager.h:280
item
Definition: ItemListSvc.h:43
TileDddbManager::TICLdetector
int TICLdetector() const
Definition: TileDddbManager.cxx:1599
TileDddbManager::CutsDX1
double CutsDX1() const
Definition: TileDddbManager.cxx:1054
TileDddbManager::m_tilb
IRDBRecordset_ptr m_tilb
Definition: TileDddbManager.h:282
TileDddbManager::m_ticg
IRDBRecordset_ptr m_ticg
Definition: TileDddbManager.h:286
TileDddbManager::GetModNumber
int GetModNumber() const
Definition: TileDddbManager.cxx:426
TileDddbManager::m_n_ticg
unsigned int m_n_ticg
Definition: TileDddbManager.h:299
TileDddbManager::TileDddbManager
TileDddbManager(IRDBAccessSvc *access, const std::string &version_tag, const std::string &version_node, bool sqliteInput=false)
Definition: TileDddbManager.cxx:17
TileDddbManager.h
TileDddbManager::GetModDZ
double GetModDZ() const
Definition: TileDddbManager.cxx:470
TileDddbManager::TILBrminimal
double TILBrminimal() const
Definition: TileDddbManager.cxx:656
TileDddbManager::TICGitem
int TICGitem() const
Definition: TileDddbManager.cxx:1332
TileDddbManager::CutsYpos
double CutsYpos() const
Definition: TileDddbManager.cxx:1114
TileDddbManager::SetNextTiclInDetSamp
int SetNextTiclInDetSamp()
Definition: TileDddbManager.cxx:1580
DeMoScan.index
string index
Definition: DeMoScan.py:364
TileDddbManager::m_tigr
IRDBRecordset_ptr m_tigr
Definition: TileDddbManager.h:283
TileDddbManager::SCNTdtw
double SCNTdtw() const
Definition: TileDddbManager.cxx:989
TileDddbManager::m_n_scnt
unsigned int m_n_scnt
Definition: TileDddbManager.h:297
TileDddbManager::TICGshape
int TICGshape() const
Definition: TileDddbManager.cxx:1354
IRDBRecord.h
Definition of the abstract IRDBRecord interface.
TileDddbManager::m_EnvBegin
unsigned int m_EnvBegin
Definition: TileDddbManager.h:303
TileDddbManager::SCNTdt
double SCNTdt() const
Definition: TileDddbManager.cxx:978
TileDddbManager::SCNTrc
double SCNTrc() const
Definition: TileDddbManager.cxx:945
TileDddbManager::m_currentScin
const IRDBRecord * m_currentScin
Definition: TileDddbManager.h:312
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
TileDddbManager::m_cuts
IRDBRecordset_ptr m_cuts
Definition: TileDddbManager.h:288
IRDBRecord::isFieldNull
virtual bool isFieldNull(const std::string &fieldName) const =0
Check if the field value is NULL.
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
TileDddbManager::CutsDZ1
double CutsDZ1() const
Definition: TileDddbManager.cxx:1094
TileDddbManager::GetNumTicl
unsigned int GetNumTicl() const
Definition: TileDddbManager.cxx:1442
TileDddbManager::SetFirstTiclInDet
int SetFirstTiclInDet(int detector)
Definition: TileDddbManager.cxx:1517
TileDddbManager::TICGdr
double TICGdr() const
Definition: TileDddbManager.cxx:1376
TileDddbManager::TIGRitem
int TIGRitem() const
Definition: TileDddbManager.cxx:1191
TileDddbManager::TILErmax
double TILErmax() const
Definition: TileDddbManager.cxx:108
TileDddbManager::TILBdzend2
double TILBdzend2() const
Definition: TileDddbManager.cxx:810
TileDddbManager::TICGdz
double TICGdz() const
Definition: TileDddbManager.cxx:1420
TileDddbManager::TILBflangey
double TILBflangey() const
Definition: TileDddbManager.cxx:722
TileDddbManager::TILBdzmast
double TILBdzmast() const
Definition: TileDddbManager.cxx:777
TileDddbManager::m_n_tigr
unsigned int m_n_tigr
Definition: TileDddbManager.h:296
TileDddbManager::m_saddle
IRDBRecordset_ptr m_saddle
Definition: TileDddbManager.h:289
TileDddbManager::TILEnmodul
int TILEnmodul() const
Definition: TileDddbManager.cxx:83
IRDBRecord::getDouble
virtual double getDouble(const std::string &fieldName) const =0
Get double field value.
TileDddbManager::m_tag
std::string m_tag
Definition: TileDddbManager.h:321
TileDddbManager::CutsDY1
double CutsDY1() const
Definition: TileDddbManager.cxx:1074
IRDBRecordset.h
Definition of the abstract IRDBRecordset interface.
TileDddbManager::GetEnvRout
double GetEnvRout() const
Definition: TileDddbManager.cxx:251
TileDddbManager::TILBnperiod
int TILBnperiod() const
Definition: TileDddbManager.cxx:612
section
void section(const std::string &sec)
Definition: TestTriggerMenuAccess.cxx:22
TileDddbManager::GetEnvType
int GetEnvType() const
Definition: TileDddbManager.cxx:129
sample_ind
#define sample_ind(r, m, c, i)
Definition: TileAANtuple.cxx:102
TileDddbManager::SetCurrentModuleByIndex
int SetCurrentModuleByIndex(unsigned int Id)
Definition: TileDddbManager.cxx:372
TileDddbManager::SetCurrentSaddle
int SetCurrentSaddle(unsigned int index)
Fields of SADDLE structure (see also Oracle comments):
Definition: TileDddbManager.cxx:1126
TileDddbManager::CutsDX2
double CutsDX2() const
Definition: TileDddbManager.cxx:1064
IRDBRecord::getFloat
virtual float getFloat(const std::string &fieldName) const =0
Get float field value.
TileDddbManager::TILBfingpattern
int TILBfingpattern() const
Definition: TileDddbManager.cxx:843
TileDddbManager::GetEnvDTheta
double GetEnvDTheta() const
Definition: TileDddbManager.cxx:348
TileDddbManager::m_sqliteInput
bool m_sqliteInput
Definition: TileDddbManager.h:324
TileDddbManager::GetEnvNModules
int GetEnvNModules() const
Definition: TileDddbManager.cxx:228
TileDddbManager::TICLnpmt
double TICLnpmt() const
Definition: TileDddbManager.cxx:1698
TileDddbManager::SCNTdrw
double SCNTdrw() const
Definition: TileDddbManager.cxx:967
TileDddbManager::m_n_tiglob
unsigned int m_n_tiglob
Definition: TileDddbManager.h:293
TileDddbManager::GetModDPsi
double GetModDPsi() const
Definition: TileDddbManager.cxx:492
checkFileSG.ind
list ind
Definition: checkFileSG.py:118
TileDddbManager::m_buildCuts
bool m_buildCuts
Definition: TileDddbManager.h:329
TileDddbManager::TICLdeta
double TICLdeta() const
Definition: TileDddbManager.cxx:1654
TileDddbManager::TICGdx1
double TICGdx1() const
Definition: TileDddbManager.cxx:1387