12 #include "StGmtGeom.h"
13 #include "StMessMgr.h"
15 double StGmtGeom::mPi = TMath::Pi();
16 double StGmtGeom::mHalfPi = TMath::PiOver2();
19 Int_t StGmtGeom::encodeGeoId(Int_t rdo, Int_t arm, Int_t apv, Int_t channel) {
21 Short_t module = getModuleIdFromElecCoord(rdo, arm, apv);
30 if ( module < 0 || module >= kGmtNumModules ) {
31 LOG_DEBUG <<
"Module " << module <<
" out of range in StGmtGeom::encodeGeoId." << endm;
34 else if ( apv > 1 || apv < 0 ) {
35 LOG_DEBUG <<
"APV " << apv <<
" out of range in StGmtGeom::encodeGeoId." << endm;
38 else if ( channel < 0 || channel >= kGmtNumStrips ) {
39 LOG_DEBUG <<
"Channel " << channel <<
" out of range in StGmtGeom::encodeGeoId." << endm;
42 return ( module * kGmtNumLayers + apv ) * kGmtNumStrips + channel;
46 Int_t StGmtGeom::decodeGeoId(Int_t geoId, Short_t &module, Int_t &layer, Short_t &strip) {
47 if ( geoId < 0 || geoId >= kGmtNumGeoIds ) {
48 LOG_DEBUG <<
"GeoId " << geoId <<
" out of range in StGmtGeom::decodeGeoId." << endm;
57 strip = geoId % kGmtNumStrips;
58 geoId /= kGmtNumStrips;
61 Int_t apv = ( geoId % kGmtNumLayers ) ? 1 : 0;
62 geoId /= kGmtNumLayers;
64 StGmtGeomData stripdata = mStrips[ strip + apv*kGmtNumStrips ];
65 layer = stripdata.isY;
71 std::string StGmtGeom::encodeGeoName(Int_t module, Char_t layer, Int_t strip) {
76 if ( module < 0 || module >= kGmtNumModules ) {
77 LOG_DEBUG <<
"Module " << module <<
" out of range in StGmtGeom::encodeGeoName." << endm;
78 return kGmtErrorString;
80 else if (layer != testS && layer != testP) {
81 LOG_DEBUG <<
"Layer " << layer <<
" out of range in StGmtGeom::encodeGeoName." << endm;
82 return kGmtErrorString;
84 else if ( strip < 0 || strip >= kGmtNumStrips ) {
85 LOG_DEBUG <<
"Strip " << strip <<
" out of range in StGmtGeom::encodeGeoName." << endm;
86 return kGmtErrorString;
89 std::stringstream buff;
91 buff << module+1 << layer;
96 else if ( strip < 100 ) {
105 Int_t StGmtGeom::decodeGeoName(
const std::string &geoName, Short_t &module, Int_t &layer, Short_t &strip) {
106 module = geoName[0] -
'1';
108 strip = std::atoi( (geoName.substr(3)).c_str() );
111 if (module < 0 || module >= kGmtNumModules || (
113 layer < 0 || layer > 1) || strip < 0 || strip > kGmtNumStrips) {
114 LOG_DEBUG <<
"Malformed geoName " << geoName <<
" in StGmtGeom::decodeGeoName." << endm;
116 layer = kGmtErrorChar;
124 std::string StGmtGeom::translateGeoIdToGeoName(Int_t geoId) {
125 Short_t module, strip;
127 if ( geoId < 0 || geoId >= kGmtNumGeoIds ) {
128 LOG_DEBUG <<
"GeoId " << geoId <<
" out of range in StGmtGeom::translateGeoIdToGeoName." << endm;
129 return kGmtErrorString;
132 decodeGeoId(geoId, module, layer, strip);
133 return encodeGeoName(module, layer, strip);
137 Int_t StGmtGeom::getPhysicalCoordinate(Int_t geoId, Short_t &module, Int_t &layer) {
138 if ( geoId < 0 || geoId >= kGmtNumGeoIds ) {
139 LOG_DEBUG <<
"GeoId " << geoId <<
" out of range in StGmtGeom::getPhysicalCoordinate." << endm;
141 layer = kGmtErrorChar;
146 decodeGeoId(geoId, module, layer, strip);
151 Int_t StGmtGeom::getPhysicalCoordinate(
const std::string &geoName, Short_t &module, Int_t &layer) {
153 if ( decodeGeoName( geoName, module, layer, strip ) < 0 ) {
164 Short_t StGmtGeom::getModuleIdFromElecCoord(Int_t rdo, Int_t arm, Int_t apv) {
165 Short_t retVal = kGmtError;
166 if ( (rdo - 1) < 0 || (rdo - 1) >= kGmtNumRdos ) {
167 LOG_DEBUG <<
"RDO " << rdo <<
" out of range in StGmtGeom::getModuleIdFromElecCoord." << endm;
170 else if ( arm < 0 || arm >= kGmtNumArms ) {
171 LOG_DEBUG <<
"ARM " << arm <<
" out of range in StGmtGeom::getModuleIdFromElecCoord." << endm;
174 else if ( apv < 0 || apv > kGmtMaxApvId || (apv > 3 && apv < 12) ) {
175 LOG_DEBUG <<
"APV " << apv <<
" out of range in StGmtGeom::getModuleIdFromElecCoord." << endm;
180 if (apv == 0 || apv == 1) {
183 else if (apv == 2 || apv == 3) {
186 else if (apv == 12 || apv == 13) {
189 else if (apv == 14 || apv == 15) {
193 LOG_DEBUG <<
"Invalid electronics coordinates in StGmtGeom::getModuleIdFromElecCoord." << endm;
197 if (apv == 0 || apv == 1) {
200 else if (apv == 2 || apv == 3) {
203 else if (apv == 12 || apv == 13) {
206 else if (apv == 14 || apv == 15) {
210 LOG_DEBUG <<
"Invalid electronics coordinates in StGmtGeom::getModuleIdFromElecCoord." << endm;
217 Int_t StGmtGeom::getCoordNumFromElecCoord(Int_t rdo, Int_t arm, Int_t apv, Int_t channel) {
219 if ( (rdo - 1) < 0 || ( (rdo - 1) >= kGmtNumRdos ) ) {
220 LOG_DEBUG <<
"RDO " << rdo <<
" out of range in StGmtGeom::getCoordNumFromElecCoord." << endm;
223 else if ( arm < 0 || arm >= kGmtNumArms ) {
224 LOG_DEBUG <<
"ARM " << arm <<
" out of range in StGmtGeom::getCoordNumFromElecCoord." << endm;
227 else if ( apv < 0 || apv > kGmtMaxApvId || (apv > 3 && apv < 12) ) {
228 LOG_DEBUG <<
"APV " << apv <<
" out of range in StGmtGeom::getCoordNumFromElecCoord." << endm;
231 else if ( channel < 0 || channel >= kGmtNumChannels ) {
232 LOG_DEBUG <<
"Channel " << channel <<
" out of range in StGmtGeom::getCoordNumFromElecCoord." << endm;
236 StGmtGeomData stripdata = mStrips[ channel + (apv % 2) * kGmtNumStrips ];
237 return stripdata.coordinate;
241 Double_t StGmtGeom::getPositionFromElecCoord(Int_t rdo, Int_t arm, Int_t apv, Int_t channel) {
243 if ( (rdo - 1) < 0 || (rdo - 1) >= kGmtNumRdos ) {
244 LOG_DEBUG <<
"RDO " << rdo <<
" out of range in StGmtGeom::getCoordNumFromElecCoord." << endm;
247 else if ( arm < 0 || arm >= kGmtNumArms ) {
248 LOG_DEBUG <<
"ARM " << arm <<
" out of range in StGmtGeom::getCoordNumFromElecCoord." << endm;
251 else if ( apv < 0 || apv > kGmtMaxApvId || (apv > 3 && apv < 12) ) {
252 LOG_DEBUG <<
"APV " << apv <<
" out of range in StGmtGeom::getCoordNumFromElecCoord." << endm;
255 else if ( channel < 0 || channel >= kGmtNumChannels ) {
256 LOG_DEBUG <<
"Channel " << channel <<
" out of range in StGmtGeom::getCoordNumFromElecCoord." << endm;
271 StGmtGeomData stripdata = mStrips[ channel + apv*kGmtNumStrips ];
274 return stripdata.location;
280 Int_t StGmtGeom::computeGlobalPhysicalCoordinate(Int_t & layer, Short_t & strip) {
308 Int_t StGmtGeom::getGlobalPhysicalCoordinate(Int_t geoId, Short_t & module, Int_t & layer) {
311 decodeGeoId( geoId, module, layer, strip );
312 if ( geoId < 0 || geoId >= kGmtNumGeoIds ){
313 LOG_DEBUG <<
"GeoId " << geoId <<
" out of range in StGmtGeom::getPhysicalCoordinate." << endm;
319 return computeGlobalPhysicalCoordinate( layer, strip);
325 Int_t StGmtGeom::getGlobalPhysicalCoordinate(
const std::string & geoName, Short_t & module, Int_t & layer) {
328 if ( decodeGeoName( geoName, module, layer, strip ) < 0 ) {
335 return computeGlobalPhysicalCoordinate( layer, strip);
345 Int_t StGmtGeom::encodeElectronicId(Int_t rdo, Int_t arm, Int_t apv, Int_t channel) {
346 if ( (rdo - 1) < 0 || (rdo - 1) >= kGmtNumRdos ) {
347 LOG_DEBUG <<
"RDO " << rdo <<
" out of range in StGmtGeom::encodeElectronicId." << endm;
350 else if ( arm < 0 || arm >= kGmtNumArms ) {
351 LOG_DEBUG <<
"ARM " << arm <<
" out of range in StGmtGeom::encodeElectronicId." << endm;
354 else if ( apv < 0 || apv > kGmtMaxApvId || (apv > 3 && apv < 12) ) {
355 LOG_DEBUG <<
"APV " << apv <<
" out of range in StGmtGeom::encodeElectronicId." << endm;
358 else if ( channel < 0 || channel >= kGmtNumChannels ) {
359 LOG_DEBUG <<
"Channel " << channel <<
" out of range in StGmtGeom::encodeElectronicId." << endm;
362 return channel + kGmtNumStrips*(apv + 4*arm);
366 Int_t StGmtGeom::decodeElectronicId(Int_t elecId, Int_t &rdo, Int_t &arm, Int_t &apv, Int_t &channel) {
367 if (elecId < 0 || elecId >= kGmtNumElecIds) {
368 LOG_DEBUG <<
"Electronic ID " << elecId <<
" out of range in StGmtGeom::decodeElectronicId." << endm;
376 channel = elecId % 128;
389 Bool_t StGmtGeom::mReverseNaiveMappingValid = 0;
392 Int_t StGmtGeom::mReverseNaiveMapping[ kGmtNumStripsPerModule ];
401 {0,0,0,54,4.28,
"S54",0},
402 {0,1,0,37,2.92,
"S37",1},
403 {0,2,0,31,2.44,
"S31",2},
404 {0,3,0,8,0.6,
"S8",3},
405 {0,4,0,51,4.04,
"S51",4},
406 {0,5,0,35,2.76,
"S35",5},
407 {0,6,0,29,2.28,
"S29",6},
408 {0,7,0,21,1.64,
"S21",7},
409 {0,8,0,60,4.76,
"S60",8},
410 {0,9,0,33,2.6,
"S33",9},
411 {0,10,0,27,2.12,
"S27",10},
412 {0,11,0,12,0.92,
"S12",11},
413 {0,12,0,41,3.24,
"S41",12},
414 {0,13,0,55,4.36,
"S55",13},
415 {0,14,0,25,1.96,
"S25",14},
416 {0,15,0,14,1.08,
"S14",15},
417 {0,16,1,999,-999,
"NC",16},
418 {0,17,1,39,3.08,
"P39",17},
419 {0,18,1,2,0.12,
"P2",18},
420 {0,19,1,24,1.88,
"P24",19},
421 {0,20,1,54,4.28,
"P54",20},
422 {0,21,1,37,2.92,
"P37",21},
423 {0,22,1,31,2.44,
"P31",22},
424 {0,23,1,23,1.8,
"P23",23},
425 {0,24,1,43,3.4,
"P43",24},
426 {0,25,1,35,2.76,
"P35",25},
427 {0,26,1,29,2.28,
"P29",26},
428 {0,27,1,21,1.64,
"P21",27},
429 {0,28,1,41,3.24,
"P41",28},
430 {0,29,0,46,3.64,
"S46",29},
431 {0,30,1,26,2.04,
"P26",30},
432 {0,31,1,7,0.52,
"P7",31},
433 {0,32,0,52,4.12,
"S52",32},
434 {0,33,1,57,4.52,
"P57",33},
435 {0,34,0,6,0.44,
"S6",34},
436 {0,35,0,7,0.52,
"S7",35},
437 {0,36,0,48,3.8,
"S48",36},
438 {0,37,0,50,3.96,
"S50",37},
439 {0,38,0,3,0.2,
"S3",38},
440 {0,39,0,20,1.56,
"S20",39},
441 {0,40,0,59,4.68,
"S59",40},
442 {0,41,1,999,-999,
"NC",41},
443 {0,42,1,1,0.04,
"P1",42},
444 {0,43,0,11,0.84,
"S11",43},
445 {0,44,0,42,3.32,
"S42",44},
446 {0,45,0,56,4.44,
"S56",45},
447 {0,46,0,13,1,
"S13",46},
448 {0,47,0,16,1.24,
"S16",47},
449 {0,48,1,61,4.84,
"P61",48},
450 {0,49,1,46,3.64,
"P46",49},
451 {0,50,1,33,2.6,
"P33",50},
452 {0,51,1,25,1.96,
"P25",51},
453 {0,52,1,56,4.44,
"P56",52},
454 {0,53,1,50,3.96,
"P50",53},
455 {0,54,1,10,0.76,
"P10",54},
456 {0,55,1,15,1.16,
"P15",55},
457 {0,56,1,47,3.72,
"P47",56},
458 {0,57,1,55,4.36,
"P55",57},
459 {0,58,1,12,0.92,
"P12",58},
460 {0,59,1,9,0.68,
"P9",59},
461 {0,60,1,42,3.32,
"P42",60},
462 {0,61,0,62,4.92,
"S62",61},
463 {0,62,1,27,2.12,
"P27",62},
464 {0,63,1,6,0.44,
"P6",63},
465 {0,64,0,47,3.72,
"S47",64},
466 {0,65,0,49,3.88,
"S49",65},
467 {0,66,0,5,0.36,
"S5",66},
468 {0,67,0,10,0.76,
"S10",67},
469 {0,68,0,45,3.56,
"S45",68},
470 {0,69,1,59,4.68,
"P59",69},
471 {0,70,0,4,0.28,
"S4",70},
472 {0,71,0,9,0.68,
"S9",71},
473 {0,72,0,39,3.08,
"S39",72},
474 {0,73,0,61,4.84,
"S61",73},
475 {0,74,1,4,0.28,
"P4",74},
476 {0,75,0,18,1.4,
"S18",75},
477 {0,76,0,40,3.16,
"S40",76},
478 {0,77,0,57,4.52,
"S57",77},
479 {0,78,0,24,1.88,
"S24",78},
480 {0,79,0,2,0.12,
"S2",79},
481 {0,80,1,62,4.92,
"P62",80},
482 {0,81,1,48,3.8,
"P48",81},
483 {0,82,1,32,2.52,
"P32",82},
484 {0,83,1,22,1.72,
"P22",83},
485 {0,84,1,58,4.6,
"P58",84},
486 {0,85,1,52,4.12,
"P52",85},
487 {0,86,1,30,2.36,
"P30",86},
488 {0,87,1,17,1.32,
"P17",87},
489 {0,88,1,49,3.88,
"P49",88},
490 {0,89,0,44,3.48,
"S44",89},
491 {0,90,1,28,2.2,
"P28",90},
492 {0,91,1,11,0.84,
"P11",91},
493 {0,92,1,53,4.2,
"P53",92},
494 {0,93,0,63,5,
"S63",93},
495 {0,94,1,18,1.4,
"P18",94},
496 {0,95,1,5,0.36,
"P5",95},
497 {0,96,1,63,5,
"P63",96},
498 {0,97,0,36,2.84,
"S36",97},
499 {0,98,0,30,2.36,
"S30",98},
500 {0,99,0,22,1.72,
"S22",99},
501 {0,100,0,43,3.4,
"S43",100},
502 {0,101,0,34,2.68,
"S34",101},
503 {0,102,0,28,2.2,
"S28",102},
504 {0,103,0,19,1.48,
"S19",103},
505 {0,104,0,53,4.2,
"S53",104},
506 {0,105,0,58,4.6,
"S58",105},
507 {0,106,0,26,2.04,
"S26",106},
508 {0,107,0,17,1.32,
"S17",107},
509 {0,108,0,38,3,
"S38",108},
510 {0,109,0,32,2.52,
"S32",109},
511 {0,110,0,23,1.8,
"S23",110},
512 {0,111,0,1,0.04,
"S1",111},
513 {0,112,1,60,4.76,
"P60",112},
514 {0,113,1,40,3.16,
"P40",113},
515 {0,114,1,8,0.6,
"P8",114},
516 {0,115,1,14,1.08,
"P14",115},
517 {0,116,1,45,3.56,
"P45",116},
518 {0,117,1,38,3,
"P38",117},
519 {0,118,0,15,1.16,
"S15",118},
520 {0,119,1,19,1.48,
"P19",119},
521 {0,120,1,51,4.04,
"P51",120},
522 {0,121,1,36,2.84,
"P36",121},
523 {0,122,1,16,1.24,
"P16",122},
524 {0,123,1,13,1,
"P13",123},
525 {0,124,1,44,3.48,
"P44",124},
526 {0,125,1,34,2.68,
"P34",125},
527 {0,126,1,20,1.56,
"P20",126},
528 {0,127,1,3,0.2,
"P3",127},
529 {1,0,0,117,9.32,
"S117",128},
530 {1,1,0,100,7.96,
"S100",129},
531 {1,2,0,94,7.48,
"S94",130},
532 {1,3,0,71,5.64,
"S71",131},
533 {1,4,0,114,9.08,
"S114",132},
534 {1,5,0,98,7.8,
"S98",133},
535 {1,6,0,92,7.32,
"S92",134},
536 {1,7,0,84,6.68,
"S84",135},
537 {1,8,0,123,9.8,
"S123",136},
538 {1,9,0,96,7.64,
"S96",137},
539 {1,10,0,90,7.16,
"S90",138},
540 {1,11,0,75,5.96,
"S75",139},
541 {1,12,0,104,8.28,
"S104",140},
542 {1,13,0,118,9.4,
"S118",141},
543 {1,14,0,88,7,
"S88",142},
544 {1,15,0,77,6.12,
"S77",143},
545 {1,16,1,999,-999,
"NC",144},
546 {1,17,1,102,8.12,
"P102",145},
547 {1,18,1,65,5.16,
"P65",146},
548 {1,19,1,87,6.92,
"P87",147},
549 {1,20,1,117,9.32,
"P117",148},
550 {1,21,1,100,7.96,
"P100",149},
551 {1,22,1,94,7.48,
"P94",150},
552 {1,23,1,86,6.84,
"P86",151},
553 {1,24,1,106,8.44,
"P106",152},
554 {1,25,1,98,7.8,
"P98",153},
555 {1,26,1,92,7.32,
"P92",154},
556 {1,27,1,84,6.68,
"P84",155},
557 {1,28,1,104,8.28,
"P104",156},
558 {1,29,0,109,8.68,
"S109",157},
559 {1,30,1,89,7.08,
"P89",158},
560 {1,31,1,70,5.56,
"P70",159},
561 {1,32,0,115,9.16,
"S115",160},
562 {1,33,1,120,9.56,
"P120",161},
563 {1,34,0,69,5.48,
"S69",162},
564 {1,35,0,70,5.56,
"S70",163},
565 {1,36,0,111,8.84,
"S111",164},
566 {1,37,0,113,9,
"S113",165},
567 {1,38,0,66,5.24,
"S66",166},
568 {1,39,0,83,6.6,
"S83",167},
569 {1,40,0,122,9.72,
"S122",168},
570 {1,41,1,999,-999,
"NC",169},
571 {1,42,1,64,5.08,
"P64",170},
572 {1,43,0,74,5.88,
"S74",171},
573 {1,44,0,105,8.36,
"S105",172},
574 {1,45,0,119,9.48,
"S119",173},
575 {1,46,0,76,6.04,
"S76",174},
576 {1,47,0,79,6.28,
"S79",175},
577 {1,48,1,124,9.88,
"P124",176},
578 {1,49,1,109,8.68,
"P109",177},
579 {1,50,1,96,7.64,
"P96",178},
580 {1,51,1,88,7,
"P88",179},
581 {1,52,1,119,9.48,
"P119",180},
582 {1,53,1,113,9,
"P113",181},
583 {1,54,1,73,5.8,
"P73",182},
584 {1,55,1,78,6.2,
"P78",183},
585 {1,56,1,110,8.76,
"P110",184},
586 {1,57,1,118,9.4,
"P118",185},
587 {1,58,1,75,5.96,
"P75",186},
588 {1,59,1,72,5.72,
"P72",187},
589 {1,60,1,105,8.36,
"P105",188},
590 {1,61,0,125,9.96,
"S125",189},
591 {1,62,1,90,7.16,
"P90",190},
592 {1,63,1,69,5.48,
"P69",191},
593 {1,64,0,110,8.76,
"S110",192},
594 {1,65,0,112,8.92,
"S112",193},
595 {1,66,0,68,5.4,
"S68",194},
596 {1,67,0,73,5.8,
"S73",195},
597 {1,68,0,108,8.6,
"S108",196},
598 {1,69,1,122,9.72,
"P122",197},
599 {1,70,0,67,5.32,
"S67",198},
600 {1,71,0,72,5.72,
"S72",199},
601 {1,72,0,102,8.12,
"S102",200},
602 {1,73,0,124,9.88,
"S124",201},
603 {1,74,1,67,5.32,
"P67",202},
604 {1,75,0,81,6.44,
"S81",203},
605 {1,76,0,103,8.2,
"S103",204},
606 {1,77,0,120,9.56,
"S120",205},
607 {1,78,0,87,6.92,
"S87",206},
608 {1,79,0,65,5.16,
"S65",207},
609 {1,80,1,125,9.96,
"P125",208},
610 {1,81,1,111,8.84,
"P111",209},
611 {1,82,1,95,7.56,
"P95",210},
612 {1,83,1,85,6.76,
"P85",211},
613 {1,84,1,121,9.64,
"P121",212},
614 {1,85,1,115,9.16,
"P115",213},
615 {1,86,1,93,7.4,
"P93",214},
616 {1,87,1,80,6.36,
"P80",215},
617 {1,88,1,112,8.92,
"P112",216},
618 {1,89,0,107,8.52,
"S107",217},
619 {1,90,1,91,7.24,
"P91",218},
620 {1,91,1,74,5.88,
"P74",219},
621 {1,92,1,116,9.24,
"P116",220},
622 {1,93,0,126,10.04,
"S126",221},
623 {1,94,1,81,6.44,
"P81",222},
624 {1,95,1,68,5.4,
"P68",223},
625 {1,96,1,999,-999,
"NC",224},
626 {1,97,0,99,7.88,
"S99",225},
627 {1,98,0,93,7.4,
"S93",226},
628 {1,99,0,85,6.76,
"S85",227},
629 {1,100,0,106,8.44,
"S106",228},
630 {1,101,0,97,7.72,
"S97",229},
631 {1,102,0,91,7.24,
"S91",230},
632 {1,103,0,82,6.52,
"S82",231},
633 {1,104,0,116,9.24,
"S116",232},
634 {1,105,0,121,9.64,
"S121",233},
635 {1,106,0,89,7.08,
"S89",234},
636 {1,107,0,80,6.36,
"S80",235},
637 {1,108,0,101,8.04,
"S101",236},
638 {1,109,0,95,7.56,
"S95",237},
639 {1,110,0,86,6.84,
"S86",238},
640 {1,111,0,64,5.08,
"S64",239},
641 {1,112,1,123,9.8,
"P123",240},
642 {1,113,1,103,8.2,
"P103",241},
643 {1,114,1,71,5.64,
"P71",242},
644 {1,115,1,77,6.12,
"P77",243},
645 {1,116,1,108,8.6,
"P108",244},
646 {1,117,1,101,8.04,
"P101",245},
647 {1,118,0,78,6.2,
"S78",246},
648 {1,119,1,82,6.52,
"P82",247},
649 {1,120,1,114,9.08,
"P114",248},
650 {1,121,1,99,7.88,
"P99",249},
651 {1,122,1,79,6.28,
"P79",250},
652 {1,123,1,76,6.04,
"P76",251},
653 {1,124,1,107,8.52,
"P107",252},
654 {1,125,1,97,7.72,
"P97",253},
655 {1,126,1,83,6.6,
"P83",254},
656 {1,127,1,66,5.24,
"P66",255}
662 Int_t StGmtGeom::mNaiveMapping[] =
926 Double_t StGmtGeom::getModuleZ(
int iModule) {
929 case 0 :
return 77.768 * 2.54;
931 case 1 :
return 2.729 * 2.54;
933 case 3 :
return -2.729 * 2.54;
935 case 2 :
return -77.768 * 2.54;
936 default :
return -999;
941 Double_t StGmtGeom::getModulePhi(
int iModule) {
942 double R = 85.606 * 2.54;
943 double deltaphi = 5./R;
946 case 1 :
return TMath::Pi()*(10./6.)-deltaphi;
948 case 3 :
return TMath::Pi()*(10./6.)+deltaphi;
950 case 5 :
return TMath::Pi()*(1./6.)-deltaphi;
952 case 7 :
return TMath::Pi()*(1./6.)+deltaphi;