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