ATLAS Offline Software
RDBReaderAtlas.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 #include "GaudiKernel/SystemOfUnits.h"
17 
18 namespace MuonGM {
19 
24 
25  RDBReaderAtlas::RDBReaderAtlas(StoreGateSvc *pDetStore, IRDBAccessSvc *pRDBAccess, const std::string& geoTag, const std::string& geoNode,
26  const std::map<std::string, std::string>& asciiFileDBMap):
27  DBReader(pDetStore), AthMessaging{"MuGM:RDBReadAtlas"},
28  m_geoTag(geoTag), m_geoNode(geoNode), m_pRDBAccess(pRDBAccess) {
29  m_SCdbaccess = StatusCode::FAILURE;
30 
31 
32  ATH_MSG_INFO("Start retriving dbObjects with tag = <" << geoTag << "> node <" << geoNode << ">");
33 
34  // here putting RDB data in private "objects" form
35  m_dhatyp = std::make_unique<DblQ00Atyp>(m_pRDBAccess, geoTag, geoNode);
36  m_atyp = m_dhatyp->data();
37 
38 
39  m_dhasmp = std::make_unique<DblQ00Asmp>(m_pRDBAccess, geoTag, geoNode);
40  m_asmp = m_dhasmp->data();
41 
42 
43  m_dhalmn = std::make_unique<DblQ00Almn>(m_pRDBAccess, geoTag, geoNode);
44  m_almn = m_dhalmn->data();
45 
46 
47  m_dhaptp = std::make_unique<DblQ00Aptp>(m_pRDBAccess, geoTag, geoNode);
48  m_aptp = m_dhaptp->data();
49 
50 
51  m_dhacut = std::make_unique<DblQ00Acut>(m_pRDBAccess, geoTag, geoNode);
52  m_acut = m_dhacut->data();
53 
54  m_dhalin = std::make_unique<DblQ00Alin>(m_pRDBAccess, geoTag, geoNode);
55  m_alin = m_dhalin->data();
56 
57  m_dhdbam = std::make_unique<DblQ00Dbam>(m_pRDBAccess, geoTag, geoNode);
58  m_dbam = m_dhdbam->data();
59 
60 
61  m_dhwrpc = std::make_unique<DblQ00Awln>(m_pRDBAccess, geoTag, geoNode);
62  m_wrpc = m_dhwrpc->data();
63 
64  m_dhwtgc = std::make_unique<DblQ00Atln>(m_pRDBAccess, geoTag, geoNode);
65  m_wtgc = m_dhwtgc->data();
66 
67  m_dhwmdt = std::make_unique<DblQ00Wmdt>(m_pRDBAccess, geoTag, geoNode);
68  m_wmdt = m_dhwmdt->data();
69 
70  m_dhwcsc = std::make_unique<DblQ00Wcsc>(m_pRDBAccess, geoTag, geoNode);
71  m_wcsc = m_dhwcsc->data();
72 
73 
74  m_dhwrpcall = std::make_unique<DblQ00Wrpc>(m_pRDBAccess, geoTag, geoNode);
75  m_wrpcall = m_dhwrpcall->data();
76 
77  m_dhwtgcall = std::make_unique<DblQ00Wtgc>(m_pRDBAccess, geoTag, geoNode);
78  m_wtgcall = m_dhwtgcall->data();
79 
80  m_dhwspa = std::make_unique<DblQ00Wspa>(m_pRDBAccess, geoTag, geoNode);
81  m_wspa = m_dhwspa->data();
82 
83 
84  m_dhwded = std::make_unique<DblQ00Wded>(m_pRDBAccess, geoTag, geoNode);
85  m_wded = m_dhwded->data();
86 
87 
88  m_dhwsup = std::make_unique<DblQ00Wsup>(m_pRDBAccess, geoTag, geoNode);
89  m_wsup = m_dhwsup->data();
90 
91  if (m_pRDBAccess->getRecordsetPtr("XtomoData", geoTag, geoNode)->size()!=0) {
92  m_dhxtomo= std::make_unique<DblQ00Xtomo>(pRDBAccess, geoTag, geoNode);
93  ATH_MSG_INFO("XtomoData table found in Oracle");
94  } else {
95  m_dhxtomo= std::make_unique<DblQ00Xtomo>();
96  ATH_MSG_INFO("No XtomoData table in Oracle");
97  }
98 
99  if (m_dhxtomo)
100  m_xtomo = m_dhxtomo->data();
101 
102  // ASZT
103  if (asciiFileDBMap.find("ASZT") != asciiFileDBMap.end()) {
104  ATH_MSG_INFO( "getting aszt from ascii file - named <" << asciiFileDBMap.find("ASZT")->second << ">");
105  ATH_MSG_INFO( "Ascii aszt input has priority over A-lines in ORACLE; A-lines from Oracle will not be read");
106  // dbdata = 0;
107  m_dhaszt = std::make_unique<DblQ00Aszt>(asciiFileDBMap.find("ASZT")->second);
108  if (m_dhaszt->size() == 0) {
109  ATH_MSG_ERROR("Couldn't read ASZT from ascii file!");
110  } else {
111  ATH_MSG_INFO("N. of lines read = " << m_dhaszt->size());
112  }
113  }
114 
115  if (!m_dhaszt || m_dhaszt->size() == 0) {
116  ATH_MSG_INFO( "No Ascii aszt input found: looking for A-lines in ORACLE");
117  if (m_pRDBAccess->getRecordsetPtr("ASZT",geoTag,geoNode)->size()==0) {
118  m_dhaszt = std::make_unique<DblQ00Aszt>();
119  ATH_MSG_INFO("No ASZT table in Oracle");
120  } else {
121  ATH_MSG_INFO("ASZT table found in Oracle");
122  m_dhaszt = std::make_unique<DblQ00Aszt>(m_pRDBAccess, geoTag, geoNode);
123  ATH_MSG_INFO("ASZT size is " << m_dhaszt->size());
124  }
125  } else {
126  ATH_MSG_INFO( "ASZT table in Oracle, if any, will not be read" );
127  }
128  if (m_dhaszt)
129  m_aszt = m_dhaszt->data();
130 
131  // Internal CSC Alignment parameters
132  if (asciiFileDBMap.find("IACSC") != asciiFileDBMap.end()) {
133 
134  ATH_MSG_INFO( "getting iacsc from ascii file - named <" << asciiFileDBMap.find("IACSC")->second << ">" );
135  ATH_MSG_INFO( "Ascii iacsc input has priority over A-lines in ORACLE; A-lines from Oracle will not be read" );
136  // dbdata = 0;
137  m_dhiacsc = std::make_unique<DblQ00IAcsc>(asciiFileDBMap.find("IACSC")->second);
138  if (m_dhiacsc->size() == 0) {
139  ATH_MSG_ERROR( "Couldn't read IACSC from ascii file!" );
140  } else {
141  ATH_MSG_INFO( "N. of lines read = " << m_dhiacsc->size() );
142  }
143  }
144  if (!m_dhiacsc || m_dhiacsc->size() == 0) {
145  ATH_MSG_INFO( "No Ascii iacsc input found: looking for A-lines in ORACLE" );
146  if (m_pRDBAccess->getRecordsetPtr("IZST", geoTag,geoNode)->size()==0) {
147  m_dhiacsc = std::make_unique<DblQ00IAcsc>();
148  ATH_MSG_INFO( "No ISZT table in Oracle" );
149  } else {
150  ATH_MSG_INFO( "ISZT table found in Oracle" );
151  m_dhiacsc = std::make_unique<DblQ00IAcsc>(m_pRDBAccess, geoTag, geoNode);
152  }
153  } else {
154  ATH_MSG_INFO( "ISZT table in Oracle, if any, will not be read" );
155  }
156  if (m_dhiacsc)
157  m_iacsc = m_dhiacsc->data();
158 
159 
160  m_dhwchv = std::make_unique<DblQ00Wchv>(m_pRDBAccess, geoTag, geoNode);
161  m_wchv = m_dhwchv->data();
162 
163  m_dhwcro = std::make_unique<DblQ00Wcro>(m_pRDBAccess, geoTag, geoNode);
164  m_wcro = m_dhwcro->data();
165 
166  m_dhwcmi = std::make_unique<DblQ00Wcmi>(m_pRDBAccess, geoTag, geoNode);
167  m_wcmi = m_dhwcmi->data();
168 
169 
170  m_dhwlbi = std::make_unique<DblQ00Wlbi>(m_pRDBAccess, geoTag, geoNode);
171  m_wlbi = m_dhwlbi->data();
172 
173  // everything fetched
174  m_SCdbaccess = StatusCode::SUCCESS;
175  ATH_MSG_INFO( "Access granted for all dbObjects needed by muon detectors" );
176  }
177 
179  // Check access to the database (from the constructor)
180  if (m_SCdbaccess == StatusCode::FAILURE) {
181  return m_SCdbaccess;
182  }
183 
184  // set GeometryVersion in MYSQL
186  // set LayoutName read from amdb
187  mysql.setLayoutName(m_dbam[0].amdb);
188  // set NovaVersion in MYSQL
189  mysql.setNovaVersion(m_dbam[0].version);
190  // set AmdbVersion in MYSQL
191  mysql.setNovaReadVersion(m_dbam[0].nvrs);
192 
193  // Process Stations and components
194  MuonGM::ProcessStations(mysql, m_dhalmn.get(), m_almn, m_dhatyp.get(), m_atyp, m_dhwmdt.get(), m_wmdt);
195 
196  // Process Technologies
197  ProcessTechnologies(mysql);
198 
199  // Process Positions
200  MuonGM::ProcessPositions(mysql, m_dhaptp.get(), m_aptp);
201 
202  // Process Cutouts
203  if (getGeometryVersion().substr(0, 1) != "P") {
204  MuonGM::ProcessCutouts(mysql, m_dhacut.get(), m_acut, m_dhalin.get(), m_alin, m_dhatyp.get(), m_atyp);
205  }
206 
207  // Process Alignements
208  if (m_dhaszt && m_dhaszt->size() > 0) {
209  MuonGM::ProcessAlignements(mysql, m_dhaszt.get(), m_aszt);
210  }
211 
212  // Process TgcReadout
214 
215  //
216  ATH_MSG_INFO( "Intermediate Objects built from primary numbers" );
217 
218  return m_SCdbaccess;
219  }
220 
222  // here loop over station-components to init technologies at each new entry
223  std::vector<std::string> slist;
224  slist.emplace_back("*");
225  StationSelector sel(mysql, slist);
227  ATH_MSG_DEBUG( " from RDBReaderAtlas --- start " );
228 
229  bool have_spa_details = (getGeometryVersion().substr(0, 1) != "P");
230 
231  for (it = sel.begin(); it != sel.end(); ++it) {
232  Station *station = (*it).second;
233  for (int ic = 0; ic < station->GetNrOfComponents(); ic++) {
234  Component *c = station->GetComponent(ic);
235  if (c == nullptr)
236  continue;
237  const std::string &cname = c->name;
238 
239  if (cname.compare(0, 3, "CSC") == 0)
240  MuonGM::ProcessCSC(mysql, m_dhwcsc.get(), m_wcsc, cname);
241  else if (cname.compare(0, 3, "MDT") == 0)
242  MuonGM::ProcessMDT(mysql, m_dhwmdt.get(), m_wmdt, cname);
243  else if (cname.compare(0, 3, "RPC") == 0)
244  MuonGM::ProcessRPC(mysql, m_dhwrpc.get(), m_wrpc, m_dhwrpcall.get(), m_wrpcall, cname);
245  else if (cname.compare(0, 3, "TGC") == 0)
246  MuonGM::ProcessTGC(mysql, m_dhwtgc.get(), m_wtgc, m_dhwtgcall.get(), m_wtgcall, cname);
247  else if (cname.compare(0, 3, "SPA") == 0)
248  MuonGM::ProcessSPA(mysql, m_dhwspa.get(), m_wspa, cname);
249  else if (cname.compare(0, 3, "DED") == 0)
250  MuonGM::ProcessDED(mysql, m_dhwded.get(), m_wded, cname);
251  else if (cname.compare(0, 3, "SUP") == 0)
252  MuonGM::ProcessSUP(mysql, m_dhwsup.get(), m_wsup, cname);
253  else if (cname.compare(0, 3, "CHV") == 0 && have_spa_details)
254  MuonGM::ProcessCHV(mysql, m_dhwchv.get(), m_wchv, cname);
255  else if (cname.compare(0, 3, "CRO") == 0 && have_spa_details)
256  MuonGM::ProcessCRO(mysql, m_dhwcro.get(), m_wcro, cname);
257  else if (cname.compare(0, 3, "CMI") == 0 && have_spa_details)
258  MuonGM::ProcessCMI(mysql, m_dhwcmi.get(), m_wcmi, cname);
259  else if (cname.compare(0, 2, "LB") == 0 && have_spa_details)
260  MuonGM::ProcessLBI(mysql, m_dhwlbi.get(), m_wlbi, cname);
261  }
262  }
263 
264  ATH_MSG_INFO( "nMDT " << nmdt << " nCSC " << ncsc << " nTGC " << ntgc << " nRPC " << nrpc );
265  ATH_MSG_INFO( "nDED " << nded << " nSUP " << nsup << " nSPA " << nspa );
266  ATH_MSG_INFO( "nCHV " << nchv << " nCRO " << ncro << " nCMI " << ncmi << " nLBI " << nlbi );
267  }
268 
270 
271  if (getGeometryVersion().substr(0, 1) == "P") {
274  ATH_MSG_INFO( "RDBReaderAtlas::ProcessTGCreadout GGSD, GGCD retrieven from Oracle" );
275 
276  int version = (int)(*ggsd)[0]->getDouble("VERS");
277  float wirespacing = (*ggsd)[0]->getDouble("WIRESP") * Gaudi::Units::cm;
278  ATH_MSG_INFO( " ProcessTGCreadout - version " << version << " wirespacing " << wirespacing );
279 
280  //
281  // in case of the layout P03
282  //
283 
284  // loop over the banks of station components: ALMN
285  for (unsigned int ich = 0; ich < ggcd->size(); ++ich) {
286  int type = (int)(*ggcd)[ich]->getDouble("ICHTYP");
287 
288  if (ich < 19) {
290 
291  int nchrng = (int)(*ggcd)[ich]->getDouble("NCHRNG");
292 
293  GasGapIntArray nwgs{}, nsps{};
294  WiregangArray iwgs1{}, iwgs2{}, iwgs3{};
295 
296  for (int i = 0; i < 3; ++i) {
297  nwgs[i] = (*ggcd)[ich]->getDouble("NWGS", i);
298  nsps[i] = (*ggcd)[ich]->getDouble("NSPS", i);
299  }
300 
301  for (int i = 0; i < nwgs[0]; ++i) {
302  iwgs1[i] = (*ggcd)[ich]->getDouble("IWGS1", i);
303  }
304  for (int i = 0; i < nwgs[1]; ++i) {
305  iwgs2[i] = (*ggcd)[ich]->getDouble("IWGS2" , i);
306  }
307 
308  for (int i = 0; i < nwgs[2]; ++i) {
309  iwgs3[i] = (*ggcd)[ich]->getDouble("IWGS3", i);
310  }
312  std::make_unique<TgcReadoutParams>(name, type, version, wirespacing, nchrng,
313  std::move(nwgs), std::move(iwgs1),
314  std::move(iwgs2), std::move(iwgs3),
315  std::move(nsps));
316  mysql.StoreTgcRPars(rpar);
317  }
318  }
319  } else {
320  //
321  // in case of layout Q and following
322  //
324 
325  int version(0);
326  float wirespacing(0);
327  unsigned int gglnSize(0);
328  if (ggln)
329  gglnSize = ggln->size();
330  else {
331  ATH_MSG_WARNING(" ProcessTGCreadout - IRDBRecordset_ptr GGLN is nullptr" );
332  }
333  if (gglnSize) {
334  version = (int)(*ggln)[0]->getInt("VERS");
335  wirespacing = (*ggln)[0]->getFloat("WIRESP") * Gaudi::Units::mm;
336  }
337 
338  ATH_MSG_INFO( " ProcessTGCreadout - version " << version << " wirespacing " << wirespacing );
339 
340  // loop over the banks of station components: ALMN
341  for (unsigned int ich = 0; ich < gglnSize; ++ich) {
342  int type = (int)(*ggln)[ich]->getInt("JSTA");
343  std::string name = "TGCReadout" + MuonGM::buildString(type, 2);
344 
345  // NCHRNG missing in GGLN, HARD-CODED !!!
346  int nchrng;
347  if (type == 1 || type == 6 || type == 12 || type >= 18) {
348  nchrng = 24;
349  } else {
350  nchrng = 48;
351  }
352  GasGapIntArray nwgs{}, nsps{};
353  WiregangArray iwgs1{}, iwgs2{}, iwgs3{};
354  StripArray slarge{}, sshort{};
355 
356  for (int i = 0; i < 3; i++) {
357  nwgs[i] = (*ggln)[ich]->getInt("NWGS", i );
358  nsps[i] = (*ggln)[ich]->getInt("NSPS", i);
359  }
360 
361  for (int i = 0; i < nwgs[0]; i++) {
362  iwgs1[i] = (*ggln)[ich]->getInt("IWGS1", i);
363  }
364 
365  for (int i = 0; i < nwgs[1]; i++) {
366  iwgs2[i] = (*ggln)[ich]->getInt("IWGS2", i);
367  }
368  for (int i = 0; i < nwgs[2]; i++) {
369  iwgs3[i] = (*ggln)[ich]->getInt("IWGS3", i);
370  }
371 
372  // read and store parameters for strips
373  float pdist = (*ggln)[ich]->getFloat("PDIST");
374 
375  for (int i = 0; i < nsps[0] + 1; i++) {
376  slarge[i] = (*ggln)[ich]->getFloat("SLARGE", i);
377  sshort[i] = (*ggln)[ich]->getFloat("SHORT", i);
378  }
380  std::make_unique<TgcReadoutParams>(name, type, version, wirespacing, nchrng,
381  std::move(nwgs), std::move(iwgs1), std::move(iwgs2), std::move(iwgs3),
382  pdist,
383  std::move(slarge), std::move(sshort),
384  std::move(nsps));
385  mysql.StoreTgcRPars(rpar);
386 
387  // parameters for TGC inactive inner structure
388 
389  std::ostringstream Astr;
390  if (ich < 9) {
391  Astr << "0" << ich + 1;
392  } else {
393  Astr << ich + 1;
394  }
395  std::string A = Astr.str();
396  TGC *tgc = dynamic_cast<TGC*>(mysql.GetTechnology("TGC" + A));
397  tgc->widthWireSupport = (*ggln)[ich]->getFloat("S1PP");
398  tgc->widthGasChannel = (*ggln)[ich]->getFloat("S2PP");
399  tgc->distanceWireSupport = (*ggln)[ich]->getFloat("WSEP");
400  tgc->offsetWireSupport[0] = (*ggln)[ich]->getFloat("SP1WI");
401  tgc->offsetWireSupport[1] = (*ggln)[ich]->getFloat("SP2WI");
402  tgc->offsetWireSupport[2] = (*ggln)[ich]->getFloat("SP3WI");
403  tgc->angleTilt = (*ggln)[ich]->getFloat("TILT") * Gaudi::Units::deg;
404  tgc->radiusButton = (*ggln)[ich]->getFloat("SP1BU");
405  tgc->pitchButton[0] = (*ggln)[ich]->getFloat("SP2BU");
406  tgc->pitchButton[1] = (*ggln)[ich]->getFloat("SP3BU");
407  tgc->angleButton = (*ggln)[ich]->getFloat("SP4BU") * Gaudi::Units::deg;
408  }
409  }
410  }
411 
412  std::string RDBReaderAtlas::TGCreadoutName(int ichtyp) {
413 
414  if (getGeometryVersion().substr(0, 1) == "P") {
415 
416  if (m_tgcReadoutMapping.empty()) {
417  // first time fill the vector
418  m_tgcReadoutMapping.emplace_back("T1F1"); // 1
419 
420  m_tgcReadoutMapping.emplace_back("T1E1"); // 2
421  m_tgcReadoutMapping.emplace_back("T1E2");
422  m_tgcReadoutMapping.emplace_back("T1E3");
423  m_tgcReadoutMapping.emplace_back("T1E4");
424 
425  m_tgcReadoutMapping.emplace_back("T2F1"); // 6
426 
427  m_tgcReadoutMapping.emplace_back("T2E1"); // 7
428  m_tgcReadoutMapping.emplace_back("T2E2");
429  m_tgcReadoutMapping.emplace_back("T2E3");
430  m_tgcReadoutMapping.emplace_back("T2E4");
431  m_tgcReadoutMapping.emplace_back("T2E5"); // 11
432 
433  m_tgcReadoutMapping.emplace_back("T3F1"); // 12
434 
435  m_tgcReadoutMapping.emplace_back("T3E1"); // 13
436  m_tgcReadoutMapping.emplace_back("T3E2");
437  m_tgcReadoutMapping.emplace_back("T3E3");
438  m_tgcReadoutMapping.emplace_back("T3E4");
439  m_tgcReadoutMapping.emplace_back("T3E5"); // 17
440 
441  m_tgcReadoutMapping.emplace_back("T4F1"); // 18
442 
443  m_tgcReadoutMapping.emplace_back("T4E1"); // 19
444  }
445 
446  if (ichtyp < 1 || ichtyp > 19) {
447  ATH_MSG_ERROR( " DBReader::TGCreadoutName - ichtype " << ichtyp << " out of range 1-19" );
448  return "XXXY";
449  }
450  } else { // if (getGeometryVersion().substr(0,1) == "Q")
451 
452  // Layout Q and following
453  //
454  if (m_tgcReadoutMapping.empty()) {
455  // first time fill the vector
456 
457  m_tgcReadoutMapping.emplace_back("T1F1_1"); // 1
458 
459  m_tgcReadoutMapping.emplace_back("T1E1_1"); // 2
460  m_tgcReadoutMapping.emplace_back("T1E1_2");
461  m_tgcReadoutMapping.emplace_back("T1E1_3");
462  m_tgcReadoutMapping.emplace_back("T1E1_4");
463 
464  m_tgcReadoutMapping.emplace_back("T2F1_1"); // 6
465 
466  m_tgcReadoutMapping.emplace_back("T2E1_1"); // 7
467  m_tgcReadoutMapping.emplace_back("T2E1_2");
468  m_tgcReadoutMapping.emplace_back("T2E1_3");
469  m_tgcReadoutMapping.emplace_back("T2E1_4");
470  m_tgcReadoutMapping.emplace_back("T2E1_5"); // 11
471 
472  m_tgcReadoutMapping.emplace_back("T3F1_1"); // 12
473 
474  m_tgcReadoutMapping.emplace_back("T3E1_1"); // 13
475  m_tgcReadoutMapping.emplace_back("T3E1_2");
476  m_tgcReadoutMapping.emplace_back("T3E1_3");
477  m_tgcReadoutMapping.emplace_back("T3E1_4");
478  m_tgcReadoutMapping.emplace_back("T3E1_5"); // 17
479 
480  m_tgcReadoutMapping.emplace_back("T4F1_1"); // 18
481  m_tgcReadoutMapping.emplace_back("T4F2_1"); // 19
482 
483  m_tgcReadoutMapping.emplace_back("T4E1_1"); // 20
484  m_tgcReadoutMapping.emplace_back("T4E2_1"); // 21
485  }
486 
487  if (ichtyp < 1 || ichtyp > 21) {
488  ATH_MSG_ERROR( " DBReader::TGCreadoutName - ichtype " << ichtyp << " out of range 1-21" );
489  return "XXXY";
490  }
491  }
492 
493  return m_tgcReadoutMapping[ichtyp - 1];
494  }
495 } // namespace MuonGM
MuonGM::RDBReaderAtlas::ProcessTechnologies
void ProcessTechnologies(MYSQL &mysql)
Definition: RDBReaderAtlas.cxx:221
MuonGM::RDBReaderAtlas::m_dhwcro
std::unique_ptr< DblQ00Wcro > m_dhwcro
Definition: RDBReaderAtlas.h:54
MuonGM::RDBReaderAtlas::m_dhaptp
std::unique_ptr< DblQ00Aptp > m_dhaptp
Definition: RDBReaderAtlas.h:41
MuonGM::MYSQL::setLayoutName
void setLayoutName(const std::string &s)
Definition: MYSQL.cxx:289
MuonGM::MYSQL::GetTechnology
Technology * GetTechnology(const std::string &name)
Definition: MYSQL.cxx:105
MuonGM::RDBReaderAtlas::m_dhwtgcall
std::unique_ptr< DblQ00Wtgc > m_dhwtgcall
Definition: RDBReaderAtlas.h:49
MuonGM::RDBReaderAtlas::m_geoTag
const std::string m_geoTag
Definition: RDBReaderAtlas.h:84
MuonGM::RDBReaderAtlas::m_wcmi
const DblQ00Wcmi::WCMI * m_wcmi
Definition: RDBReaderAtlas.h:78
GeoModel::TransientConstSharedPtr< TgcReadoutParams >
MuonGM::RDBReaderAtlas::m_wcsc
const DblQ00Wcsc::WCSC * m_wcsc
Definition: RDBReaderAtlas.h:70
MuonGM
Ensure that the Athena extensions are properly loaded.
Definition: GeoMuonHits.h:27
MuonGM::RDBReaderAtlas::m_aszt
const DblQ00Aszt::ASZT * m_aszt
Definition: RDBReaderAtlas.h:80
MuonGM::DBReader
Definition: DBReader.h:116
MuonGM::TgcReadoutParams::GasGapFloatArray
std::array< double, MaxNGaps > GasGapFloatArray
Definition: TgcReadoutParams.h:44
MuonGM::DBReader::m_SCdbaccess
StatusCode m_SCdbaccess
Definition: DBReader.h:128
MuonGM::RDBReaderAtlas::m_wmdt
const DblQ00Wmdt::WMDT * m_wmdt
Definition: RDBReaderAtlas.h:69
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
IRDBAccessSvc::getRecordsetPtr
virtual IRDBRecordset_ptr getRecordsetPtr(const std::string &node, const std::string &tag, const std::string &tag2node="", const std::string &connName="ATLASDD")=0
Provides access to the Recordset object containing HVS-tagged data.
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
MuonGM::MYSQL::setNovaVersion
void setNovaVersion(int i)
Definition: MYSQL.cxx:300
MuonGM::RDBReaderAtlas::TGCreadoutName
std::string TGCreadoutName(int ichtyp)
Definition: RDBReaderAtlas.cxx:412
MuonGM::TGC::widthWireSupport
double widthWireSupport
Definition: TGC_Technology.h:26
MuonGM::GasGapIntArray
TgcReadoutParams::GasGapIntArray GasGapIntArray
Definition: RDBReaderAtlas.cxx:20
MuonGM::RDBReaderAtlas::m_dhwspa
std::unique_ptr< DblQ00Wspa > m_dhwspa
Definition: RDBReaderAtlas.h:52
MuonGM::Station
Definition: Station.h:40
skel.it
it
Definition: skel.GENtoEVGEN.py:423
MuonGM::RDBReaderAtlas::m_dhwmdt
std::unique_ptr< DblQ00Wmdt > m_dhwmdt
Definition: RDBReaderAtlas.h:46
deg
#define deg
Definition: SbPolyhedron.cxx:17
MuonGM::RDBReaderAtlas::m_wsup
const DblQ00Wsup::WSUP * m_wsup
Definition: RDBReaderAtlas.h:74
MuonGM::MYSQL
Definition: MYSQL.h:43
MuonGM::TGC::radiusButton
double radiusButton
Definition: TGC_Technology.h:32
MuonGM::RDBReaderAtlas::m_wchv
const DblQ00Wchv::WCHV * m_wchv
Definition: RDBReaderAtlas.h:76
MuonGM::RDBReaderAtlas::m_atyp
const DblQ00Atyp::ATYP * m_atyp
Definition: RDBReaderAtlas.h:61
MuonGM::RDBReaderAtlas::m_dhalmn
std::unique_ptr< DblQ00Almn > m_dhalmn
Definition: RDBReaderAtlas.h:40
MuonGM::TgcReadoutParams::StripArray
std::array< double, MaxNStrips > StripArray
Definition: TgcReadoutParams.h:46
MuonGM::RDBReaderAtlas::m_wlbi
const DblQ00Wlbi::WLBI * m_wlbi
Definition: RDBReaderAtlas.h:79
MuonGM::WiregangArray
TgcReadoutParams::WiregangArray WiregangArray
Definition: RDBReaderAtlas.cxx:22
MuonGM::TGC::pitchButton
std::array< double, 2 > pitchButton
Definition: TGC_Technology.h:33
MuonGM::RDBReaderAtlas::m_aptp
const DblQ00Aptp::APTP * m_aptp
Definition: RDBReaderAtlas.h:64
TgcReadoutParams.h
MuonGM::RDBReaderAtlas::m_dhwcmi
std::unique_ptr< DblQ00Wcmi > m_dhwcmi
Definition: RDBReaderAtlas.h:55
RDBReaderAtlas.h
cm
const double cm
Definition: Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/tools/FCAL_ChannelMap.cxx:25
MuonGM::RDBReaderAtlas::m_dhwrpcall
std::unique_ptr< DblQ00Wrpc > m_dhwrpcall
Definition: RDBReaderAtlas.h:48
MuonGM::MYSQL::setGeometryVersion
void setGeometryVersion(const std::string &s)
Definition: MYSQL.cxx:271
MuonGM::TGC::angleTilt
double angleTilt
Definition: TGC_Technology.h:30
StationSelector.h
MuonGM::Component
Definition: Component.h:11
StoreGateSvc
The Athena Transient Store API.
Definition: StoreGateSvc.h:128
MuonGM::MYSQL::StoreTgcRPars
void StoreTgcRPars(GeoModel::TransientConstSharedPtr< TgcReadoutParams > t)
Definition: MYSQL.cxx:141
IRDBAccessSvc.h
Definition of the abstract IRDBAccessSvc interface.
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
MuonGM::RDBReaderAtlas::m_dhaszt
std::unique_ptr< DblQ00Aszt > m_dhaszt
Definition: RDBReaderAtlas.h:57
MuonGM::TGC::distanceWireSupport
double distanceWireSupport
Definition: TGC_Technology.h:28
lumiFormat.i
int i
Definition: lumiFormat.py:92
TGC
Definition: TgcBase.h:6
IRDBAccessSvc
IRDBAccessSvc is an abstract interface to the athena service that provides the following functionalit...
Definition: IRDBAccessSvc.h:45
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
MuonGM::TGC::widthGasChannel
double widthGasChannel
Definition: TGC_Technology.h:27
MuonGM::TGC::angleButton
double angleButton
Definition: TGC_Technology.h:34
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
MuonGM::RDBReaderAtlas::m_wspa
const DblQ00Wspa::WSPA * m_wspa
Definition: RDBReaderAtlas.h:75
sel
sel
Definition: SUSYToolsTester.cxx:92
MuonGM::RDBReaderAtlas::m_dhacut
std::unique_ptr< DblQ00Acut > m_dhacut
Definition: RDBReaderAtlas.h:44
MuonGM::TgcReadoutParams::GasGapIntArray
std::array< int, MaxNGaps > GasGapIntArray
Definition: TgcReadoutParams.h:43
MuonGM::RDBReaderAtlas::m_dhwded
std::unique_ptr< DblQ00Wded > m_dhwded
Definition: RDBReaderAtlas.h:50
AthMessaging
Class to provide easy MsgStream access and capabilities.
Definition: AthMessaging.h:55
MuonGM::RDBReaderAtlas::m_almn
const DblQ00Almn::ALMN * m_almn
Definition: RDBReaderAtlas.h:63
IRDBRecordset_ptr
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
Definition: IRDBAccessSvc.h:25
GlobalUtilities.h
MuonGM::RDBReaderAtlas::RDBReaderAtlas
RDBReaderAtlas(StoreGateSvc *pDetStore, IRDBAccessSvc *m_pRDBAccess, const std::string &geoTag, const std::string &geoNode, const std::map< std::string, std::string > &asciiFileDBMap)
Definition: RDBReaderAtlas.cxx:25
MuonGM::StationSelector
Definition: StationSelector.h:17
grepfile.ic
int ic
Definition: grepfile.py:33
MuonGM::RDBReaderAtlas::m_wrpcall
const DblQ00Wrpc::WRPC * m_wrpcall
Definition: RDBReaderAtlas.h:71
MuonGM::RDBReaderAtlas::m_wded
const DblQ00Wded::WDED * m_wded
Definition: RDBReaderAtlas.h:73
MuonGM::RDBReaderAtlas::m_acut
const DblQ00Acut::ACUT * m_acut
Definition: RDBReaderAtlas.h:67
MuonGM::DBReader::m_tgcReadoutMapping
std::vector< std::string > m_tgcReadoutMapping
Definition: DBReader.h:131
MuonGM::RDBReaderAtlas::m_pRDBAccess
IRDBAccessSvc * m_pRDBAccess
Definition: RDBReaderAtlas.h:86
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
MuonGM::RDBReaderAtlas::m_wtgcall
const DblQ00Wtgc::WTGC * m_wtgcall
Definition: RDBReaderAtlas.h:72
MuonGM::TGC::offsetWireSupport
std::array< double, 3 > offsetWireSupport
Definition: TGC_Technology.h:29
MuonDetectorManager.h
MuonGM::MYSQL::setNovaReadVersion
void setNovaReadVersion(int i)
Definition: MYSQL.cxx:284
MuonGM::RDBReaderAtlas::m_alin
const DblQ00Alin::ALIN * m_alin
Definition: RDBReaderAtlas.h:68
MuonGM::RDBReaderAtlas::m_dhwchv
std::unique_ptr< DblQ00Wchv > m_dhwchv
Definition: RDBReaderAtlas.h:53
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
get_generator_info.version
version
Definition: get_generator_info.py:33
MuonGM::RDBReaderAtlas::ProcessTGCreadout
void ProcessTGCreadout(MYSQL &mysql)
Definition: RDBReaderAtlas.cxx:269
MuonGM::StripArray
TgcReadoutParams::StripArray StripArray
Definition: RDBReaderAtlas.cxx:23
IRDBRecord.h
Definition of the abstract IRDBRecord interface.
MuonGM::RDBReaderAtlas::m_wcro
const DblQ00Wcro::WCRO * m_wcro
Definition: RDBReaderAtlas.h:77
MuonGM::StationSelector::StationIterator
StationMap::const_iterator StationIterator
Definition: StationSelector.h:20
MuonGM::Station::GetNrOfComponents
int GetNrOfComponents() const
Definition: Station.cxx:322
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
MuonGM::RDBReaderAtlas::m_geoNode
const std::string m_geoNode
Definition: RDBReaderAtlas.h:85
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
MuonGM::RDBReaderAtlas::m_wtgc
const DblQ00Atln::ATLN * m_wtgc
Definition: RDBReaderAtlas.h:66
MuonGM::RDBReaderAtlas::m_dhwsup
std::unique_ptr< DblQ00Wsup > m_dhwsup
Definition: RDBReaderAtlas.h:51
MuonGM::RDBReaderAtlas::m_wrpc
const DblQ00Awln::AWLN * m_wrpc
Definition: RDBReaderAtlas.h:65
MuonGM::RDBReaderAtlas::m_dhwcsc
std::unique_ptr< DblQ00Wcsc > m_dhwcsc
Definition: RDBReaderAtlas.h:47
MuonGM::RDBReaderAtlas::m_dbam
const DblQ00Dbam::DBAM * m_dbam
Definition: RDBReaderAtlas.h:60
MuonGM::RDBReaderAtlas::ProcessDB
virtual StatusCode ProcessDB(MYSQL &mysql) override
Definition: RDBReaderAtlas.cxx:178
MuonGM::TgcReadoutParams::WiregangArray
std::array< int, MaxNGangs > WiregangArray
Definition: TgcReadoutParams.h:45
MuonGM::GasGapFloatArray
TgcReadoutParams::GasGapFloatArray GasGapFloatArray
Definition: RDBReaderAtlas.cxx:21
MuonGM::RDBReaderAtlas::m_dhwrpc
std::unique_ptr< DblQ00Awln > m_dhwrpc
Definition: RDBReaderAtlas.h:42
TGC_Technology.h
MdtComponent.h
MuonGM::DBReader::getGeometryVersion
const std::string & getGeometryVersion() const
Definition: DBReader.cxx:22
IRDBRecordset.h
Definition of the abstract IRDBRecordset interface.
MuonGM::RDBReaderAtlas::m_dhwlbi
std::unique_ptr< DblQ00Wlbi > m_dhwlbi
Definition: RDBReaderAtlas.h:56
MuonGM::buildString
std::string buildString(int i, int ncha)
Definition: GlobalUtilities.cxx:23
MuonGM::Station::GetComponent
Component * GetComponent(int i) const
Definition: Station.cxx:83
python.compressB64.c
def c
Definition: compressB64.py:93
MuonGM::RDBReaderAtlas::m_dhatyp
std::unique_ptr< DblQ00Atyp > m_dhatyp
Definition: RDBReaderAtlas.h:38
MuonGM::RDBReaderAtlas::m_dhalin
std::unique_ptr< DblQ00Alin > m_dhalin
Definition: RDBReaderAtlas.h:45
MuonGM::RDBReaderAtlas::m_dhwtgc
std::unique_ptr< DblQ00Atln > m_dhwtgc
Definition: RDBReaderAtlas.h:43