ATLAS Offline Software
TRT_StrawNeighbourSvc.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
11 #include "TRT_StrawNeighbourSvc.h"
12 
13 #include <cstdio>
14 #include <fstream>
15 #include <iostream>
16 #include <sstream>
17 
18 #include "StoreGate/StoreGateSvc.h"
19 
22 
23 #include "Identifier/Identifier.h"
24 #include "InDetIdentifier/TRT_ID.h"
25 
29 
30 //Geometry db
34 #include "GaudiKernel/ISvcLocator.h"
35 #include "GaudiKernel/GaudiException.h"
36 
37 //Geomodel
40 
41 
43  ISvcLocator* pSvcLocator )
44  : base_class(name,pSvcLocator),
45  m_detStore("DetectorStore",name),
46  m_trtid(nullptr)
47 {
48  declareProperty("DetectorStore",m_detStore);
49 }
50 
51 
53 = default;
54 
55 
57 {
58  ATH_MSG_DEBUG("TRT_StrawNeighbourSvc initialize method called");
59 
60  if (StatusCode::SUCCESS!=m_detStore.retrieve()) {
61  msg(MSG::FATAL) << "Couldn't retrieve " << m_detStore << endmsg;
62  return StatusCode::FAILURE;
63  }
64 
65  // Get the TRT ID helper
66  if (StatusCode::SUCCESS!=m_detStore->retrieve(m_trtid,"TRT_ID")) {
67  msg(MSG::FATAL) << "Problem retrieving TRTID helper" << endmsg;
68  return StatusCode::FAILURE;
69  }
70 
71 
72  int chipConversionSocketToChip_m1[]={0,1,2,3,4,21,7,6,5,20,19,8,9,16,17,18,10,15,14,13,12,11};
73  for(int j=0; j<22; j++) m_chipConversionSocketToChip_m1[j]=chipConversionSocketToChip_m1[j];
74  int chipConversionChipToSocket_m1[] = {0,1,2,3,4,8,7,6,11,12,16,21,20,19,18,17,13,14,15,10,9,5};
75  for(int j=0; j<22; j++) m_chipConversionChipToSocket_m1[j]=chipConversionChipToSocket_m1[j];
76 
77  int chipConversionSocketToChip_m2[] = {0,5,4,3,2,1,33,6,7,8,9,32,31,12,11,10,27,28,29,30,13,14,26,25,24,23,22,15,16,17,18,19,20,21};
78  for(int j=0; j<34; j++) m_chipConversionSocketToChip_m2[j]=chipConversionSocketToChip_m2[j];
79  int chipConversionChipToSocket_m2[] = {0,5,4,3,2,1,7,8,9,10,15,14,13,20,21,27,28,29,30,31,32,33,26,25,24,23,22,16,17,18,19,12,11,6};
80  for(int j=0; j<34; j++) m_chipConversionChipToSocket_m2[j]=chipConversionChipToSocket_m2[j];
81 
82  int chipConversionSocketToChip_m3[] = {0,1,2,3,4,5,6,50,11,10,9,8,7,49,12,13,14,15,48,47,46,18,17,16,42,43,44,45,19,20,41,40,39,38,37,22,21,31,32,33,34,35,36,23,30,29,28,27,26,25,24};
83  for(int j=0; j<51; j++) m_chipConversionSocketToChip_m3[j]=chipConversionSocketToChip_m3[j];
84  int chipConversionChipToSocket_m3[] = {0,1,2,3,4,5,6,12,11,10,9,8,14,15,16,17,23,22,21,28,29,36,35,43,50,49,48,47,46,45,44,37,38,39,40,41,42,34,33,32,31,30,24,25,26,27,20,19,18,13,7};
85  for(int j=0; j<51; j++) m_chipConversionChipToSocket_m3[j]=chipConversionChipToSocket_m3[j];
86 
87  if (1) { // initialize endcap chip maps, sasa 27 July 2009
88 
89  int chipIndexToChipHardware_A0[] = {2, 1, 3, 0, 6, 5, 7, 4, 10, 9, 11, 8};
90  int chipIndexToChipHardware_A8[] = {8, 11, 9, 10, 4, 7, 5, 6, 0, 3, 1, 2};
91  int chipIndexToChipHardware_C0[] = {1, 2, 0, 3, 5, 6, 4, 7, 9, 10, 8, 11};
92  int chipIndexToChipHardware_C8[] = {11, 8, 10, 9, 7, 4, 6, 5, 3, 0, 2, 1};
94  int *chip_list[] = {chipIndexToChipHardware_A0, chipIndexToChipHardware_A8, chipIndexToChipHardware_C0, chipIndexToChipHardware_C8};
95  for (int i=0; i<4; i++) for (int j=0; j<12; j++) map_list[i][j] = chip_list[i][j];
96  }
97 
98 
99 
100  //Geometry db
101  // RDBAccessSvc (Interface to the DD database).
102  SmartIF<IRDBAccessSvc> iAccessSvc{service("RDBAccessSvc")};
103  if ( !iAccessSvc ) {
104  msg(MSG::FATAL) << "Could not initialize RDBAccessSvc!" << endmsg;
105  throw GaudiException("Could not initalize RDBAccessSvc","TRT_GeoModel",StatusCode::FAILURE);
106  }
107 
108  SmartIF<IGeoModelSvc> geoModel{service("GeoModelSvc")};
109  if ( !geoModel ) {
110  msg(MSG::FATAL) << "Could not locate GeoModelSvc" << endmsg;
111  throw GaudiException("Could not locate GeoModelSvc","TRT_GeoModel",StatusCode::FAILURE);
112  }
113  DecodeVersionKey versionKey(geoModel, "TRT");
114  const std::string& detectorKey = versionKey.tag();
115  const std::string& detectorNode = versionKey.node();
116  IRDBRecordset_ptr RDB_TRTElec = iAccessSvc->getRecordsetPtr("TRTBarElecToStrawRel",detectorKey,detectorNode);
117 
118  if (RDB_TRTElec->size()==0) {
119  RDB_TRTElec = iAccessSvc->getRecordsetPtr("TRTBarElecToStrawRel","TRTBarElecToStrawRel-02");
120  msg(MSG::INFO) << "The folder: InnerDetector->TRT->TRTBarrel->TRTBarrelElectronics not found in DetDesc tag. Using hardcoded tag: TRTBarElecToStrawRel-02" << endmsg;
121  }
122 
123 
124  // initialization
125 
126  const int numberOfm1layers=19;
127  const int numberOfm2layers=24;
128  const int numberOfm3layers=30;
129 
130  int layer_m1_array[numberOfm1layers]= {15,16,16,16,16,17,17,17,17,17,18,18,18,18,18,19,19,19,18};
131  int layer_m2_array[numberOfm2layers]= {19,20,20,20,20,20,21,21,21,21,21,22,22,22,22,22,23,23,23,23,23,24,24,23};
132  int layer_m3_array[numberOfm3layers]= {23,24,24,24,24,25,25,25,25,25,26,26,26,26,26,27,27,27,27,27,28,28,28,28,28,29,29,29,29,28};
133 
134  int i =0;
135  unsigned int acc=0;
136 
137  for (i=0; i<numberOfm1layers ;i++){
138  m_layer_m1.push_back(layer_m1_array[i]);
139  acc +=layer_m1_array[i];
140  m_layer_m1_acc.push_back(acc);
141  }
142 
143  acc=0;
144  for (i=0; i<numberOfm2layers;i++){
145  m_layer_m2.push_back(layer_m2_array[i]);
146  acc +=layer_m2_array[i];
147  m_layer_m2_acc.push_back(acc);
148  }
149 
150  acc=0;
151  for (i=0; i<numberOfm3layers;i++){
152  m_layer_m3.push_back(layer_m3_array[i]);
153  acc +=layer_m3_array[i];
154  m_layer_m3_acc.push_back(acc);
155  }
156 
157 
158 
159 
161 
162 
163  int straw =0;
164  int stnm=0, pad=0, previous_pad=1, layer = 0, pad_rel_mod=0;
165  double chip=0.;
166 
167  std::vector<std::vector<int> > dummy1;
168  std::vector<int> dummy12;
169  std::vector<std::vector<int> > dummy2;
170  std::vector<int> dummy22;
171  std::vector<std::vector<int> > dummy3;
172  std::vector<int> dummy32;
173 
174  std::vector<std::vector<int> > dumdumdum1;
175  std::vector<std::vector<int> > dumdumdum2;
176  std::vector<std::vector<int> > dumdumdum3;
177  std::vector<int> dumdum ;
178  for (unsigned int d =0; d<=100; d++ ) {
179  dumdumdum1.push_back(dumdum);
180  dumdumdum2.push_back(dumdum);
181  dumdumdum3.push_back(dumdum);
182  }
183 
184  m_m1.push_back(0);
185  m_m2.push_back(0);
186  m_m3.push_back(0);
187 
188 
189  dummy1.clear();
190  dummy12.clear();
191  while(layer == 0) {
192  const IRDBRecord* RDBVars__TRTElec = (*RDB_TRTElec)[straw];
193  layer = RDBVars__TRTElec->getInt("LAYER");
194  if (!(layer==0)) break;
195  stnm = RDBVars__TRTElec->getInt("STRAWNUM");
196  pad = RDBVars__TRTElec->getInt("HVPADRELSTRAW");
197  pad_rel_mod = RDBVars__TRTElec->getInt("HVPADRELMOD");
198  m_m1.push_back(pad_rel_mod);
199  if (pad==previous_pad) dummy12.push_back(stnm);
200  else if (pad != previous_pad) {
201  previous_pad=pad;
202  dummy1.push_back(dummy12);
203  dummy12.clear();
204  dummy12.push_back(stnm);
205  }
206  chip=(RDBVars__TRTElec->getDouble("CHIPRELSTRAW"));
207  m_chip_vector1.push_back(chip);
208  (dumdumdum1[(int)chip]).push_back(straw+1);
209  straw++;
210  }
211  m_pad_to_straw.push_back(dummy1);
212  m_chip_to_straw.push_back(dumdumdum1);
213 
214 
215  dummy2.clear();
216  dummy22.clear();
217  previous_pad=1;
218  while(layer == 1) {
219  const IRDBRecord* RDBVars__TRTElec = (*RDB_TRTElec)[straw];
220  layer = RDBVars__TRTElec->getInt("LAYER");
221  if (!(layer==1)) break;
222  stnm = RDBVars__TRTElec->getInt("STRAWNUM");
223  pad = RDBVars__TRTElec->getInt("HVPADRELSTRAW");
224  pad_rel_mod = RDBVars__TRTElec->getInt("HVPADRELMOD");
225  m_m2.push_back(pad_rel_mod);
226  if (pad==previous_pad) dummy22.push_back(stnm);
227  else if (pad != previous_pad) {
228  previous_pad=pad;
229  dummy2.push_back(dummy22);
230  dummy22.clear();
231  dummy22.push_back(stnm);
232  }
233  chip=(RDBVars__TRTElec->getDouble("CHIPRELSTRAW"));
234  m_chip_vector2.push_back(chip);
235  (dumdumdum2[(int)chip]).push_back(straw+1-329);
236  straw++;
237  }
238  m_pad_to_straw.push_back(dummy2);
239  m_chip_to_straw.push_back(dumdumdum2);
240 
241 
242 
243  dummy3.clear();
244  dummy32.clear();
245  previous_pad=1;
246  while(layer == 2) {
247  if (straw>1641) break;// return StatusCode::SUCCESS;
248  const IRDBRecord* RDBVars__TRTElec = (*RDB_TRTElec)[straw];
249  layer = RDBVars__TRTElec->getInt("LAYER");
250  if (!(layer==2)) break;
251  stnm = RDBVars__TRTElec->getInt("STRAWNUM");
252  pad = RDBVars__TRTElec->getInt("HVPADRELSTRAW");
253  pad_rel_mod = RDBVars__TRTElec->getInt("HVPADRELMOD");
254  m_m3.push_back(pad_rel_mod);
255  if (pad==previous_pad) dummy32.push_back(stnm);
256  else if (pad != previous_pad) {
257  previous_pad=pad;
258  dummy3.push_back(dummy32);
259  dummy32.clear();
260  dummy32.push_back(stnm);
261  }
262  chip=(RDBVars__TRTElec->getDouble("CHIPRELSTRAW"));
263  m_chip_vector3.push_back(chip);
264  (dumdumdum3[(int)chip]).push_back(straw+1-329-520);
265  straw++;
266 
267  }
268  m_pad_to_straw.push_back(dummy3);
269  m_chip_to_straw.push_back(dumdumdum3);
270 
271 
272 
273  ATH_MSG_DEBUG("TRT_StrawNeighbourSvc initialized ");
274  if (!((m_m1.size()==330)&&(m_m2.size()==521)&&(m_m3.size()==794) )) ATH_MSG_WARNING("Initialization of TRT_StrawNeighbourTool incomplete. Depending on usage, this can give rise to runtime problems");
275 
276 
277  //for strawLayer barrel
278  int numberOfStraws[75] = {0,
279  15,
280  16,16,16,16,
281  17,17,17,17,17,
282  18,18,18,18,18,
283  19,19,19,
284  18,
285  19,
286  20,20,20,20,20,
287  21,21,21,21,21,
288  22,22,22,22,22,
289  23,23,23,23,23,
290  24,24,
291  23,23,
292  24,24,24,24,
293  25,25,25,25,25,
294  26,26,26,26,26,
295  27,27,27,27,27,
296  28,28,28,28,28,
297  29,29,29,29,
298  28,
299  0};
300  for(int j=0; j<75; j++) m_numberOfStraws[j]=numberOfStraws[j];
301 
302  int TripletOrientation[2][32] = {
303  {1,1,1,1,1,1,1,1,
304  0,0,0,0,0,0,0,0,
305  1,1,1,1,1,1,1,1,
306  0,0,0,0,0,0,0,0},
307  {1,1,1,1,1,1,1,1,
308  0,0,0,0,0,0,0,0,
309  1,1,1,1,1,1,1,1,
310  0,0,0,0,0,0,0,0}
311  };
312 
313 
314 
315  for(int j=0; j<2; j++)
316  for(int jj=0; jj<32; jj++)
317  m_TripletOrientation[j][jj]=TripletOrientation[j][jj];
318 
319 
320  return StatusCode::SUCCESS;
321 
322 
323 
324 }
325 
327 
328 
329 
331 {
332 
333  msg(MSG::INFO) << "TRT_StrawNeighbourSvc finalize method called" << endmsg;
334  return StatusCode::SUCCESS;
335 }
336 
337 
339 
340 void TRT_StrawNeighbourSvc::getAtlasIdentifier(int strawnumber, Identifier &outputID, Identifier inputID){
341  int straw=0,layer=0;
342  int moduleType = m_trtid->layer_or_wheel(inputID);
343 
344  if (moduleType==0) {
345  for (unsigned int i=0; i< m_layer_m1_acc.size();i++){
346  if (((unsigned int)strawnumber)<=m_layer_m1_acc[i]) {
347  layer=i;
348  straw= m_layer_m1_acc[i]-strawnumber;
349  break;
350  }
351  }
352  }
353  else if (moduleType==1) {
354  for (unsigned int i=0; i< m_layer_m2_acc.size();i++){
355  if (((unsigned int)strawnumber)<=m_layer_m2_acc[i]) {
356  layer=i;
357  straw= m_layer_m2_acc[i]-strawnumber;
358  break;
359  }
360  }
361  }
362  else if (moduleType==2) {
363  for (unsigned int i=0; i< m_layer_m3_acc.size();i++){
364  if (((unsigned int)strawnumber)<=m_layer_m3_acc[i]) {
365  layer=i;
366  straw= m_layer_m3_acc[i]-strawnumber;
367  break;
368  }
369  }
370  }
371 
372 
373  outputID = m_trtid->straw_id(m_trtid->barrel_ec(inputID),
374  m_trtid->phi_module(inputID),
375  m_trtid->layer_or_wheel(inputID),
376  layer,
377  straw);
378 }
379 
380 
381 
383 
385 
386  if (abs((m_trtid->barrel_ec(offlineID)))!=1 ) {
387  msg(MSG::ERROR) << "Sorry, getRunningNumbering only works for barrel" << endmsg;
388  return 0;
389  }
390 
391  int layer = m_trtid->straw_layer(offlineID);
392  int straw = m_trtid->straw(offlineID);
393  int moduleType = m_trtid->layer_or_wheel(offlineID);
394 
395 
396  int strawnumber=0;
397  if (moduleType==0) {
398  strawnumber += m_layer_m1_acc[layer];
399  strawnumber -= straw;
400  }
401  else if (moduleType==1) {
402  strawnumber += m_layer_m2_acc[layer];
403  strawnumber -= straw;
404  }
405  else if (moduleType==2) {
406  strawnumber += m_layer_m3_acc[layer];
407  strawnumber -= straw;
408  }
409  return strawnumber;
410 }
411 
412 
414 void TRT_StrawNeighbourSvc::getSocket(Identifier offlineID, int&socket){
415 
416  if ( !(abs(m_trtid->barrel_ec(offlineID))==1)) {
417  msg(MSG::ERROR) << "Sorry, this only works for barrel"<<endmsg;
418  return;
419  } else {
420 
421 
422 
423  int chip = 0;
424  getChip(offlineID,chip);
425  int layer_or_wheel = m_trtid->layer_or_wheel(offlineID);
426 
427  if (layer_or_wheel==0 )socket = m_chipConversionChipToSocket_m1[chip];
428  else if (layer_or_wheel==1 )socket = m_chipConversionChipToSocket_m2[chip];
429  else if (layer_or_wheel==2 )socket = m_chipConversionChipToSocket_m3[chip];
430 
431  return;
432  }
433 }
434 
435 
436 void TRT_StrawNeighbourSvc::getChip(Identifier offlineID, int& chip ){
437 
438  int socket=0;
439  chip=0;
440 
441  int layer_or_wheel = m_trtid->layer_or_wheel(offlineID);
442 
443  if (abs((m_trtid->barrel_ec(offlineID)))!=2 ) {
444  if (layer_or_wheel == 0) socket = (int)m_chip_vector1[getRunningNumbering(offlineID)-1];
445  else if (layer_or_wheel == 1) socket = (int)m_chip_vector2[getRunningNumbering(offlineID)-1];
446  else if (layer_or_wheel == 2) socket = (int)m_chip_vector3[getRunningNumbering(offlineID)-1];
447  else { msg(MSG::ERROR) << "Something is very wrong: According to identifier, straw belongs to a barrel module which is not of type 1,2 or 3 (corresponding to offline numbering: layer_or_wheel = 0,1 or 2) " << endmsg;}
448 
449 
450  if (layer_or_wheel == 0) chip = m_chipConversionSocketToChip_m1[socket] ;
451  else if (layer_or_wheel == 1) chip = m_chipConversionSocketToChip_m2[socket] ;
452  else if (layer_or_wheel == 2) chip = m_chipConversionSocketToChip_m3[socket] ;
453  return;
454  }
455  int straw = m_trtid->straw(offlineID);
456  int strawlayer = m_trtid->straw_layer(offlineID);
457  int bec = m_trtid->barrel_ec(offlineID);
458  int phi = m_trtid->phi_module(offlineID);
459 
460 // FIX ENDCAP CHIP MAPPING - SASA, 27 July 2009
461 
462  chip = (straw - straw%4) / 2;
463  if (strawlayer%8 >= 4) chip++;
464 
465  int nominal_reversed = 1 - ( (phi - phi%8)/8 ) %2 ;
466  int *map = nullptr;
467  if (bec==2) {
468  map = nominal_reversed ? m_endcapChipMapA8 : m_endcapChipMapA0;
469  chip = map[chip];
470  }
471  else if (bec==-2) {
472  map = nominal_reversed ? m_endcapChipMapC8 : m_endcapChipMapC0;
473  chip = map[chip];
474  }
475  else { msg(MSG::ERROR) << "Something is very wrong: endcap chip mapping " << bec << endmsg; chip = 12; }
476 
477  chip += 104;
478 
479  int board = layer_or_wheel;
480  if (board<6) { board *= 2; if (strawlayer>7) board++; }
481  else { board += 6; }
482  chip += board * 12;
483 
484 // end FIX ENDCAP CHIP MAPPING - SASA, 27 July 2009
485 
486  //orientation
487 
488  // endcap A is normal. endcap C is reverse
489 /*
490  int orientation = 1;
491  if (bec < 0) orientation = -1;
492 
493  //some phi sectors has reverse chip orientation
494  if (!( ( phi >= 24 ) || ( (phi >= 8) && ( phi <= 15)) )) orientation = orientation * (-1 );
495 
496  int strawlayer_temp = strawlayer % 8 ;
497  int straw_temp=straw;
498 
499  if (bec<0) straw_temp=23-straw_temp;
500 
501  //case normal orientation
502  if (orientation > 0 ) {
503  if (strawlayer_temp < 4 ) {
504  if (straw_temp<4) chip = 1;
505  else if (straw_temp<8) chip = 0;
506  else if (straw_temp<12) chip = 5;
507  else if (straw_temp<16) chip = 4;
508  else if (straw_temp<20) chip = 9;
509  else chip = 8;
510  }else{
511  if (straw_temp<4) chip = 2;
512  else if (straw_temp<8) chip = 3;
513  else if (straw_temp<12) chip = 6;
514  else if (straw_temp<16) chip = 7;
515  else if (straw_temp<20) chip = 10;
516  else chip = 11;
517  }
518  }else{
519  if (strawlayer_temp < 4 ) {
520  if (straw_temp<4) chip = 11;
521  else if (straw_temp<8) chip = 10;
522  else if (straw_temp<12) chip = 7;
523  else if (straw_temp<16) chip = 6;
524  else if (straw_temp<20) chip =3;
525  else chip = 2;
526  }else{
527  if (straw_temp<4) chip = 8;
528  else if (straw_temp<8) chip = 9;
529  else if (straw_temp<12) chip = 4;
530  else if (straw_temp<16) chip = 5;
531  else if (straw_temp<20) chip = 0;
532  else chip = 1;
533  }
534  }
535 
536 
537  chip+=104;
538  if (layer_or_wheel<=5) chip+=layer_or_wheel*24+ (strawlayer <8?0:12);
539  else chip+=6*24+(layer_or_wheel-6)*12;
540 
541 
542  return;
543 */
544 }
545 
546 
547 
548 
549 
550 
551 
552 
553 
554 
555 void TRT_StrawNeighbourSvc::getPin(Identifier offlineID, int& pin ){
556 
557 
558  pin=0;
559 
560  int layer_or_wheel = m_trtid->layer_or_wheel(offlineID);
561  if (abs((m_trtid->barrel_ec(offlineID)))==1 ) {
562  if (layer_or_wheel == 0) {
563  pin = (int)(100*fmod(m_chip_vector1[getRunningNumbering(offlineID)-1],1.)+0.1);
564  }
565  else if (layer_or_wheel == 1) {
566  pin = (int)(100*fmod(m_chip_vector2[getRunningNumbering(offlineID)-1],1.)+0.1);
567  }
568  else if (layer_or_wheel == 2){
569  pin = (int)(100*fmod(m_chip_vector3[getRunningNumbering(offlineID)-1],1.)+0.1);
570  }
571  else { msg(MSG::ERROR) << "Something is very wrong: According to identifier, straw belongs to a barrel module which is not of type 1,2 or 3 (corresponding to offline numbering: layer_or_wheel = 0,1 or 2) " << endmsg;}
572 
573  return;
574  }
575 
576  else {
577  msg(MSG::WARNING) << " Sorry getPin only implemented for barrel so far. Returning pin=0 " << endmsg;
578  pin=0;
579 
580  return ;
581  }
582 }
583 
584 
585 
586 
587 void TRT_StrawNeighbourSvc::getPad(Identifier offlineID, int& pad ){
588 
589  if (abs((m_trtid->barrel_ec(offlineID)))!=1 ) {
590  // msg(MSG::ERROR) << "Sorry, getPad only works for barrel. barrel_ec(offlineID) = "<<m_trtid->barrel_ec(offlineID) << endmsg;
591  int temp_straw = (m_trtid->straw(offlineID))/8;
592  int temp_straw_layer = (m_trtid->straw_layer(offlineID))/4;
593  pad= temp_straw_layer*3+temp_straw+1;
594  return;
595  }
596 
597 
598  int strawnumber=getRunningNumbering(offlineID);
599  int moduleType = m_trtid->layer_or_wheel(offlineID);
600 
601 
602  strawnumber=strawnumber%1642;
603 
604 
605 
606  if (moduleType==0) {
607  pad = m_m1[strawnumber];
608  return;
609  }
610  else if (moduleType==1) {
611  pad = m_m2[strawnumber];
612  return;
613  }
614  else if (moduleType==2) {
615  pad = m_m3[strawnumber];
616  return;
617  }
618  msg(MSG::ERROR) << "Something went wrong: Pad not found, returning 0" << endmsg;
619  pad = 0;
620 }
621 
622 
623 
624 
625 
627 
628 
629 void TRT_StrawNeighbourSvc::getStrawsFromPad(Identifier offlineID, std::vector<Identifier>& neighbourIDs) {
630 
631  Identifier outputID;
632 
633  if (abs((m_trtid->barrel_ec(offlineID))) != 1 ) {
634  // msg(MSG::ERROR) << "Sorry, getStrawsFromPad only works for barrel" << endmsg;
635  // The Endcap getStrawsFromPad has NOT been properly tested!!!!
636 
637  int temp_straw = (m_trtid->straw(offlineID))/8;
638  int temp_straw_layer = (m_trtid->straw_layer(offlineID))/4;
639 
640 
641  for (int temp_it = temp_straw * 8 ; temp_it < temp_straw * 8 +8 ; temp_it++){
642  for (int temp_it2 = temp_straw_layer * 4 ; temp_it2 < temp_straw_layer * 4 +4 ; temp_it2++){
643  outputID = m_trtid->straw_id(m_trtid->barrel_ec(offlineID),
644  m_trtid->phi_module(offlineID),
645  m_trtid->layer_or_wheel(offlineID),
646  temp_straw_layer,
647  temp_straw);
648 
649  neighbourIDs.push_back(outputID);
650  }
651  }
652 
653  }else{
654  int moduleType = m_trtid->layer_or_wheel(offlineID);
655  int pad = 0;
656  getPad(offlineID, pad);
657  for ( unsigned int j=0; j<(m_pad_to_straw[moduleType][pad-1]).size();j++){
658  getAtlasIdentifier((m_pad_to_straw[moduleType][pad-1][j]),outputID,offlineID);
659  neighbourIDs.push_back(outputID);
660  if (j>9) {
661  msg(MSG::ERROR) << " Error in getStrawsFromPad. Returning "<<endmsg;
662  continue;
663  }
664  }
665  }
666  }
667 
669 
670 
671 
672 void TRT_StrawNeighbourSvc::getStrawsFromChip(Identifier inputID, std::vector<Identifier>& neighbourIDs) {
673 
674  Identifier outputID;
675 
676  if (abs((m_trtid->barrel_ec(inputID))) == 2) {
677 
678  unsigned int straw = (m_trtid->straw(inputID));
679  unsigned int straw_layer = (m_trtid->straw_layer(inputID));
680 
681  unsigned int local_straw = (m_trtid->straw(inputID))%4;
682  unsigned int local_straw_layer = (m_trtid->straw_layer(inputID))%4;
683 
684 
685  // int sign_straw_layer = 0; // set but not used
686  // int sign_straw = 0; // set but not used
687 
688  for( unsigned int i = 0 ; i < 4 ; i ++ ) {
689  for( unsigned int j = 0 ; j < 4 ; j ++ ) {
690 
691 
692  // set but not used
693  // sign_straw = (i<local_straw ?
694  // -1 :
695  // +1);
696 
697  // set but not used
698  // sign_straw_layer = (j<local_straw ?
699  // -1 :
700  // +1);
701 
702  outputID = m_trtid->straw_id(m_trtid->barrel_ec(inputID),
703  m_trtid->phi_module(inputID),
704  m_trtid->layer_or_wheel(inputID),
705  ( straw_layer + j - local_straw_layer),
706  ( straw + i - local_straw));
707  neighbourIDs.push_back(outputID);
708  // sign_straw=0;
709  // sign_straw_layer=0; // set but not used
710  }
711  }
712  }
713  else if (abs((m_trtid->barrel_ec(inputID))) == 1 ) {
714  //m_chip_to_straw
715 
716  int moduleType = m_trtid->layer_or_wheel(inputID);
717  int chip = 0, chiptest=-10;
718  getChip(inputID, chip);
719 
720  for ( unsigned int j=0; j<(m_chip_to_straw[moduleType][chip]).size(); j++){
721  if ( (m_chip_to_straw[moduleType][chip][j] ) ==0 ) continue;
722  getAtlasIdentifier((m_chip_to_straw[moduleType][chip][j]),outputID,inputID);
723  getChip(outputID,chiptest);
724  neighbourIDs.push_back(outputID);
725  if (j>17) {
726  msg(MSG::ERROR) << " Error in getStrawsFromChip. Returning "<<endmsg;
727  continue;
728  }
729  }
730  }
731  else if ( (abs((m_trtid->barrel_ec(inputID))) != 1 ) && (abs((m_trtid->barrel_ec(inputID))) != 2 )) {
732  msg(MSG::ERROR) << "Attempt to use getStrawsFromChip based on a non-TRT identifier. barrel_ec(inputID) = " << m_trtid->barrel_ec(inputID) <<endmsg; }
733 
734 
735 
736  }
737 
739 
741  Identifier outputID;
742 
743  if (abs(m_trtid->barrel_ec(inputID)) == 2 ) {
744 
745  unsigned int straw = (m_trtid->straw(inputID));
746  unsigned int straw_layer = (m_trtid->straw_layer(inputID));
747 
748  unsigned int local_straw = (m_trtid->straw(inputID))%4;
749  unsigned int local_straw_layer = (m_trtid->straw_layer(inputID))%4;
750 
751  //FIXME extra layer not needed
752 
753  //construt identifier of first straw in chip
754  outputID = m_trtid->straw_id(m_trtid->barrel_ec(inputID),
755  m_trtid->phi_module(inputID),
756  m_trtid->layer_or_wheel(inputID),
757  ( straw_layer - local_straw_layer),
758  ( straw - local_straw ) );
759 
760  }
761  else if (abs((m_trtid->barrel_ec(inputID))) == 1 ) {
762 
763  int moduleType = m_trtid->layer_or_wheel(inputID);
764  int chip = 0;
765  getChip(inputID, chip);
766 
767  getAtlasIdentifier(m_chip_to_straw[moduleType][chip][0],outputID,inputID);
768 
769  }
770  else { msg(MSG::ERROR) << "Attempt to use getFirstStrawFromChip based on a non-TRT identifier. barrel_ec(inputID) = "<<m_trtid->barrel_ec(inputID) << endmsg; }
771 
774  m_trtid->phi_module(outputID),m_trtid->straw_layer(outputID),
775  m_trtid->straw(outputID),level );
776  return id;
777 }
778 
779 
781 
782  // First translate between internal software numbering and hardware numbering:
783  int hardwarechip = 0;
784 
785  if ( (chip<1) || (chip > 50) || (abs(layer)>2) ) msg(MSG::ERROR) << "Attempt to use chipToBoard(int chip, int layer) with input outside bounds: 1<=chip<=50 and 0<=|layer|<=2 . Input was: chip = "<<chip<<" layer = "<<layer <<endmsg;
786 
787  if (abs(layer)==0) hardwarechip = chip -1;
788  else if (abs(layer)==1) hardwarechip = chip + 20;
789  else if (abs(layer)==2) hardwarechip = chip + 20 + 33;
790 
791  //From Sasa
792 
793  // return logical board index:
794  // 0 for Board 1S (has 10 chips_
795  // 1 for 1L (11)
796  // 2 for 2S (15)
797  // 3 for 2L, first 9 chips
798  // 4 for 2L, second 9 chips
799  // 5 for 3S, first 11
800  // 6 for 3S, second 12
801  // 7 for 3L, first 13
802  // 8 for 3L, second 14
803 
804  int list[] = {10, 11, 15, 9, 9, 11, 12, 13, 14};
805  int count = 0;
806  for (int i=0; i<9; i++) {
807  count += list[i];
808  if (hardwarechip < count) return i;
809  }
810  assert(count==104);
811  assert(0); // should never come this far
812 
813  msg(MSG::ERROR) << "Something went wrong in chipToBoardBarrel - please contact the author "<<endmsg;
814 
815  return -1;
816 }
817 
818 
820 
821  if ( abs( m_trtid->barrel_ec( id ) ) != 2 ) {
822  ATH_MSG_WARNING( "getRing is not valid for barrel straws!" );
823  return -1;
824  }
825 
826  // const TRT_ID* m_trtid;
827  unsigned int wheel = m_trtid->layer_or_wheel( id );
828  unsigned int strawlayer = m_trtid->straw_layer( id );
829 
830  if (wheel < 6)
831  return (16*wheel + strawlayer) / 4;
832  else
833  return (16*6+8*(wheel-6) + strawlayer) /4;
834 }
835 
837  //----------------------------------------------------------------
838 {
839  int Board = -1;
840  int remainder = (chip-1) % 12;
841  Board = int(((chip -1) - remainder) / 12);
842  return Board;
843 }
844 
845 
846 
848 //-----------------------------------------------------------------//
849 {
850  int bec = m_trtid->barrel_ec(id);
851  int phi_stack = m_trtid->phi_module(id);
852  int LayerNumber = m_trtid->layer_or_wheel(id);
853  int strawlayerNumber = m_trtid->straw_layer(id);
854  int strawNumber = m_trtid->straw(id);
855 
856 
857  if (abs(bec)==1) {
858 
859  int addToStrawNumber=0;
860  int addToStrawNumberNext=0;
861  int i=0;
862 
863 
864  do
865  {
866  i++;
867  addToStrawNumber+=m_numberOfStraws[i-1];
868  addToStrawNumberNext = addToStrawNumber+m_numberOfStraws[i];
869  }
870  while(strawLayerNumber(id)!=i-1);
871  /*
872  if(strawLayerNumber(id)%2==-10)
873  {
874  strawNumber += addToStrawNumber;
875  }
876  else
877  {
878  strawNumber = addToStrawNumberNext - strawNumber-1;
879  }
880  */
881  strawNumber = addToStrawNumberNext - strawNumber-1;
882 
883  return strawNumber;
884  }
885 
886  //strawNumber() for barrel
887 
888  else if (abs(bec)==2) {
889  int phi1=-1;
890  int side=bec;
891  if(side==2) phi1=phi_stack, side=1;
892  else if (side==-2) phi1=31-phi_stack, side=0;
893  if (phi1>-1){
894  //if (side==1 && TripletOrientation[side][phi1]){
895  if (m_TripletOrientation[side][phi1]){
896  //Change straw number from 0-23 in straw layer to 0-192
897 
898  if (strawlayerNumber < 8)strawNumber = strawNumber + 24*strawlayerNumber;
899  if (strawlayerNumber > 7)strawNumber = strawNumber + 24*(strawlayerNumber -8);
900 
901  strawNumber = (192-1)*m_TripletOrientation[side][phi1]+strawNumber*(1-2*m_TripletOrientation[side][phi1]);//actual rotation
902 
903  //take strawNumber back to 0-23
904  if (strawlayerNumber<8) strawlayerNumber = int(strawNumber/24);
905  if (strawlayerNumber>7) strawlayerNumber = int(strawNumber/24) + 8;
907  }
908 
909  //Finish rotation
910 
911  //Flip straw in layer.
912 
913  if (side==0) strawNumber = 23 - strawNumber;
914 
915  //Finish Flipping
916  }
917 
918  // Done with corrections
919 
920  //Start mapping from athena identifiers to TRTViewer maps
921 
922  int strawNumberNew=0;
923 
924  if(LayerNumber<6 && strawlayerNumber>7)
925  {
926  strawNumberNew=strawNumberNew+(384*LayerNumber);
927  strawNumberNew=strawNumberNew+192+(strawlayerNumber%8)+(strawNumber*8);
928  }
929  else if(LayerNumber<6 && strawlayerNumber<8)
930  {
931  strawNumberNew=strawNumberNew+(384*LayerNumber);
932  strawNumberNew=strawNumberNew + (strawlayerNumber%8) + (strawNumber*8);
933  }
934 
935  else if(LayerNumber>5 && strawlayerNumber>7)
936  {
937  strawNumberNew = strawNumberNew + 2304 + 192*(LayerNumber-6);
938  strawNumberNew = strawNumberNew + 192 + (strawlayerNumber%8) + (8*strawNumber);
939  }
940  else if(LayerNumber>5 && strawlayerNumber<8)
941  {
942  strawNumberNew = strawNumberNew + 2304 + 192*(LayerNumber-6);
943  strawNumberNew = strawNumberNew + (strawlayerNumber%8) + (8*strawNumber);
944  }
945 
946  strawNumber=strawNumberNew;
947 
948  return strawNumber;
949  }
950  else {
951  msg(MSG::ERROR) << "corrupted input identifier to TRT_StrawNeighbourSvc::strawNumber(). barrel_ec=" <<bec<< endmsg;
952  }
953  return -1;
954 }
956  //----------------------------------------------------------------------//
957 {
958 
959  int bec = m_trtid->barrel_ec(id);
960  // int phi_stack = m_trtid->phi_module(id);
961  int LayerNumber = m_trtid->layer_or_wheel(id);
963  // int strawNumber = m_trtid->straw(id);
964 
965 
966  if (abs(bec)==1) {
967 
968  if(LayerNumber==0)
969  {
970  strawLayerNumber+=0;
971  }
972  else if(LayerNumber==1)
973  {
974  strawLayerNumber+=19;
975  }
976  else if(LayerNumber==2)
977  {
978  strawLayerNumber+=43;
979  }
980 
981  return strawLayerNumber;
982  }//strawLayerNumber()
983  else{
984  msg(MSG::ERROR) << "Sorry, TRT_StrawNeighbourSvc::strawLayerNumber only works for barrel" << endmsg;
985  }
986  return -1;
987 }
IRDBRecord::getInt
virtual int getInt(const std::string &fieldName) const =0
Get int field value.
StrawStatusContainer.h
TRT_StrawNeighbourSvc::initialize
virtual StatusCode initialize()
tool initialize
Definition: TRT_StrawNeighbourSvc.cxx:56
TRT::Hit::straw
@ straw
Definition: HitInfo.h:82
TRT_StrawNeighbourSvc::m_endcapChipMapC0
int m_endcapChipMapC0[12]
Definition: TRT_StrawNeighbourSvc.h:102
TRT_StrawNeighbourSvc::m_layer_m2
std::vector< unsigned int > m_layer_m2
Definition: TRT_StrawNeighbourSvc.h:76
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
python.Constants.FATAL
int FATAL
Definition: Control/AthenaCommon/python/Constants.py:19
TRT_StrawNeighbourSvc::strawNumber
int strawNumber(Identifier id)
Definition: TRT_StrawNeighbourSvc.cxx:847
TRT_StrawNeighbourSvc::m_layer_m3_acc
std::vector< unsigned int > m_layer_m3_acc
Definition: TRT_StrawNeighbourSvc.h:79
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
ParticleGun_SamplingFraction.bec
int bec
Definition: ParticleGun_SamplingFraction.py:89
TRT_StrawNeighbourSvc::m_chipConversionChipToSocket_m1
int m_chipConversionChipToSocket_m1[22]
Definition: TRT_StrawNeighbourSvc.h:94
TRT_StrawNeighbourSvc::strawLayerNumber
int strawLayerNumber(Identifier id)
Definition: TRT_StrawNeighbourSvc.cxx:955
TRT_StrawNeighbourSvc::getChip
void getChip(Identifier offlineID, int &chip)
Definition: TRT_StrawNeighbourSvc.cxx:436
hist_file_dump.d
d
Definition: hist_file_dump.py:137
TRT_StrawNeighbourSvc::m_endcapChipMapA0
int m_endcapChipMapA0[12]
Definition: TRT_StrawNeighbourSvc.h:100
TRT_StrawNeighbourSvc::m_numberOfStraws
int m_numberOfStraws[75]
Definition: TRT_StrawNeighbourSvc.h:71
TRT_StrawNeighbourSvc::getPin
void getPin(Identifier offlineID, int &pin)
Definition: TRT_StrawNeighbourSvc.cxx:555
TRT_StrawNeighbourSvc::m_chipConversionChipToSocket_m2
int m_chipConversionChipToSocket_m2[34]
Definition: TRT_StrawNeighbourSvc.h:96
TRT_StrawNeighbourSvc::m_chip_vector2
std::vector< double > m_chip_vector2
Definition: TRT_StrawNeighbourSvc.h:90
TRT_ID.h
This is an Identifier helper class for the TRT subdetector. This class is a factory for creating comp...
TRT_StrawNeighbourSvc::getSocket
void getSocket(Identifier offlineID, int &socket)
Definition: TRT_StrawNeighbourSvc.cxx:414
IIOVRegistrationSvc.h
This is an interface to a tool used to register conditions objects in the Interval of Validity (IOV) ...
TRT_StrawNeighbourSvc::m_m3
std::vector< unsigned int > m_m3
Definition: TRT_StrawNeighbourSvc.h:83
DecodeVersionKey::node
const std::string & node() const
Return the version node.
Definition: DecodeVersionKey.cxx:97
ExpandedIdentifier.h
dummy2
std::pair< HWIdentifier, LArBadFeb > dummy2
Definition: LArBadChannelDBToolsDict.h:18
TRT_StrawNeighbourSvc::m_pad_to_straw
std::vector< std::vector< std::vector< int > > > m_pad_to_straw
Definition: TRT_StrawNeighbourSvc.h:85
TRT_StrawNeighbourSvc::m_chip_to_straw
std::vector< std::vector< std::vector< int > > > m_chip_to_straw
Definition: TRT_StrawNeighbourSvc.h:87
TRT_StrawNeighbourSvc::getPad
void getPad(Identifier offlineID, int &pad)
public methods
Definition: TRT_StrawNeighbourSvc.cxx:587
TRT_StrawNeighbourSvc::getStrawsFromPad
void getStrawsFromPad(Identifier offlineID, std::vector< Identifier > &neighbourIDs)
Definition: TRT_StrawNeighbourSvc.cxx:629
TRT_StrawNeighbourSvc::~TRT_StrawNeighbourSvc
virtual ~TRT_StrawNeighbourSvc()
destructor
TRT_StrawNeighbourSvc::m_chipConversionSocketToChip_m3
int m_chipConversionSocketToChip_m3[51]
Definition: TRT_StrawNeighbourSvc.h:97
TRT_StrawNeighbourSvc::getFirstStrawFromChip
TRTCond::ExpandedIdentifier getFirstStrawFromChip(Identifier offlineID)
Definition: TRT_StrawNeighbourSvc.cxx:740
TRT_StrawNeighbourSvc::TRT_StrawNeighbourSvc
TRT_StrawNeighbourSvc(const std::string &name, ISvcLocator *pSvcLocator)
constructor
Definition: TRT_StrawNeighbourSvc.cxx:42
StrawStatusMultChanContainer.h
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
TRT_StrawNeighbourSvc::m_endcapChipMapC8
int m_endcapChipMapC8[12]
Definition: TRT_StrawNeighbourSvc.h:103
TRT_StrawNeighbourSvc::m_endcapChipMapA8
int m_endcapChipMapA8[12]
Definition: TRT_StrawNeighbourSvc.h:101
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
TRT_StrawNeighbourSvc::finalize
virtual StatusCode finalize()
tool finalize
Definition: TRT_StrawNeighbourSvc.cxx:330
TRT::Hit::side
@ side
Definition: HitInfo.h:83
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
TRT_StrawNeighbourSvc::m_chipConversionChipToSocket_m3
int m_chipConversionChipToSocket_m3[51]
Definition: TRT_StrawNeighbourSvc.h:98
TRT_ID::straw
int straw(const Identifier &id) const
Definition: TRT_ID.h:902
IRDBAccessSvc.h
Definition of the abstract IRDBAccessSvc interface.
TRT_StrawNeighbourSvc::getStrawsFromChip
void getStrawsFromChip(Identifier offlineID, std::vector< Identifier > &neighbourIDs)
Definition: TRT_StrawNeighbourSvc.cxx:672
lumiFormat.i
int i
Definition: lumiFormat.py:85
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
dummy22
std::pair< HWIdentifier32, LArBadFeb > dummy22
Definition: LArBadChannelDBToolsDict.h:19
DecodeVersionKey
This is a helper class to query the version tags from GeoModelSvc and determine the appropriate tag a...
Definition: DecodeVersionKey.h:18
TRT_StrawNeighbourSvc::m_trtid
const TRT_ID * m_trtid
Definition: TRT_StrawNeighbourSvc.h:69
TRT_StrawNeighbourSvc::m_detStore
ServiceHandle< StoreGateSvc > m_detStore
Definition: TRT_StrawNeighbourSvc.h:68
DecodeVersionKey::tag
const std::string & tag() const
Return version tag.
Definition: DecodeVersionKey.cxx:91
AthenaPoolTestRead.acc
acc
Definition: AthenaPoolTestRead.py:16
TRT_StrawNeighbourSvc::getRunningNumbering
int getRunningNumbering(Identifier offlineID)
Definition: TRT_StrawNeighbourSvc.cxx:384
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
dummy1
std::pair< bool, LArBadChannel::LArBadChannelEnum::ProblemType > dummy1
Definition: LArBadChannelDBToolsDict.h:16
TRT_ID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: TRT_ID.h:866
TRT_ID::straw_layer
int straw_layer(const Identifier &id) const
Definition: TRT_ID.h:893
TRT_ID::layer_or_wheel
int layer_or_wheel(const Identifier &id) const
Definition: TRT_ID.h:884
IRDBRecordset_ptr
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
Definition: IRDBAccessSvc.h:25
TRT_StrawNeighbourSvc.h
Service to information on straws electronic grouping Developed for the study of noise correlations be...
TRT_StrawNeighbourSvc::chipToBoardEndCap
static int chipToBoardEndCap(int chip)
Definition: TRT_StrawNeighbourSvc.cxx:836
TRT_StrawNeighbourSvc::m_layer_m2_acc
std::vector< unsigned int > m_layer_m2_acc
Definition: TRT_StrawNeighbourSvc.h:77
PathResolver.h
remainder
std::vector< std::string > remainder(const std::vector< std::string > &v1, const std::vector< std::string > &v2)
list of entries in a vector that are not in another
Definition: compareFlatTrees.cxx:44
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:227
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
TRTCond::ExpandedIdentifier::STRAW
@ STRAW
Definition: InnerDetector/InDetConditions/TRT_ConditionsData/TRT_ConditionsData/ExpandedIdentifier.h:37
TRT_StrawNeighbourSvc::m_layer_m3
std::vector< unsigned int > m_layer_m3
Definition: TRT_StrawNeighbourSvc.h:78
TRT_StrawNeighbourSvc::m_chip_vector3
std::vector< double > m_chip_vector3
Definition: TRT_StrawNeighbourSvc.h:91
TRT_StrawNeighbourSvc::m_m1
std::vector< unsigned int > m_m1
Definition: TRT_StrawNeighbourSvc.h:81
TRT_ID::phi_module
int phi_module(const Identifier &id) const
Definition: TRT_ID.h:875
DecodeVersionKey.h
TRT_StrawNeighbourSvc::m_layer_m1_acc
std::vector< unsigned int > m_layer_m1_acc
Definition: TRT_StrawNeighbourSvc.h:75
TRT_StrawNeighbourSvc::getAtlasIdentifier
void getAtlasIdentifier(int strawnumber, Identifier &outputID, Identifier inputID)
Definition: TRT_StrawNeighbourSvc.cxx:340
TRT_StrawNeighbourSvc::m_chipConversionSocketToChip_m1
int m_chipConversionSocketToChip_m1[22]
Definition: TRT_StrawNeighbourSvc.h:93
IRDBRecord.h
Definition of the abstract IRDBRecord interface.
TRT_StrawNeighbourSvc::m_TripletOrientation
int m_TripletOrientation[2][32]
Definition: TRT_StrawNeighbourSvc.h:72
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
IRDBRecord
IRDBRecord is one record in the IRDBRecordset object.
Definition: IRDBRecord.h:27
TRT_StrawNeighbourSvc::m_chip_vector1
std::vector< double > m_chip_vector1
Definition: TRT_StrawNeighbourSvc.h:89
dummy3
std::vector< std::pair< HWIdentifier, LArBadFeb > > dummy3
Definition: LArBadChannelDBToolsDict.h:21
TRT_StrawNeighbourSvc::chipToBoardBarrel
int chipToBoardBarrel(int chip, int layer)
Definition: TRT_StrawNeighbourSvc.cxx:780
TRT_StrawNeighbourSvc::m_m2
std::vector< unsigned int > m_m2
Definition: TRT_StrawNeighbourSvc.h:82
IRDBRecord::getDouble
virtual double getDouble(const std::string &fieldName) const =0
Get double field value.
IRDBRecordset.h
Definition of the abstract IRDBRecordset interface.
TRTCond::ExpandedIdentifier
Identifier for TRT detector elements in the conditions code.
Definition: InnerDetector/InDetConditions/TRT_ConditionsData/TRT_ConditionsData/ExpandedIdentifier.h:30
IGeoModelSvc.h
StoreGateSvc.h
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
TRT_StrawNeighbourSvc::getRing
int getRing(const Identifier &id)
Definition: TRT_StrawNeighbourSvc.cxx:819
TRT_StrawNeighbourSvc::m_layer_m1
std::vector< unsigned int > m_layer_m1
Definition: TRT_StrawNeighbourSvc.h:74
TRT_ID::straw_id
Identifier straw_id(int barrel_ec, int phi_module, int layer_or_wheel, int straw_layer, int straw) const
Three ways of getting id for a single straw:
Definition: TRT_ID.h:581
TRT_StrawNeighbourSvc::m_chipConversionSocketToChip_m2
int m_chipConversionSocketToChip_m2[34]
Definition: TRT_StrawNeighbourSvc.h:95
Identifier
Definition: IdentifierFieldParser.cxx:14