StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
StFgtGeom.cxx
1 /* StFgtGeom.cxx
2  *
3  * FGT geometry class implementation.
4  *
5  * \author W. Witzke (wowitz0@uky.edu)
6  *
7  */
8 
9 #include <TMath.h>
10 //#include <assert.h>
11 #include <iostream>
12 #include <algorithm>
13 #include "StFgtGeom.h"
14 #include "StMessMgr.h"
15 #include "fgtAlignment.h"
16 
17 //ClassImp(StFgtGeom)
18 
19 double StFgtGeom::mPi = TMath::Pi();
20 double StFgtGeom::mHalfPi = TMath::PiOver2();
21 
22 double StFgtGeom::mRadStripOff =
23  (
24  (rOut()-rIn()/radStrip_pitch())
25  -
26  int (
27  (rOut() - rIn())/radStrip_pitch()
28  )
29  ) * radStrip_pitch();
30 
31 double StFgtGeom::mPhiStripOff =
32  (
33  mHalfPi/phiStrip_pitch()
34  -
35  int (
36  mHalfPi/phiStrip_pitch()
37  )
38  ) * phiStrip_pitch();
39 
40 
41 int StFgtGeom::mRadStripLOCId_number =
42  int (
43  (rOut()-rIn()-radStripOff()) / radStrip_pitch()
44  ) + 5;
45 
46 int StFgtGeom::mPhiStripLOCId_number =
47  int (
48  (mHalfPi-phiStripOff()) / phiStrip_pitch()
49  ) + 5;
50 // function to setup the reverse mapping based on the forward mapping
51 void StFgtGeom::makeReverseNaiveMappingValid(){
52  for( Int_t *p = mReverseNaiveMapping; p != &mNaiveMapping[2*kFgtNumStrips]; ++p )
53  (*p) = 0;
54 
55  Int_t i = 0;
56  for( const Int_t *p = mNaiveMapping; p != &mNaiveMapping[ kFgtNumChannels*kFgtApvsPerQuad]; ++p, ++i )
57  mReverseNaiveMapping[ (*p) ] = i;
58 
59  mReverseNaiveMappingValid = 1;
60 }
61 
62 Double_t StFgtGeom::getDiscZ(int iDisc)
63 {
64  switch(iDisc)
65  {
66  case 0:
67  return 67.399;
68  case 1:
69  return 77.8765;
70  case 2:
71  return 87.084;
72  case 3:
73  return 97.4821;
74  case 4:
75  return 108.9121;
76  case 5:
77  return 118.9927;
78  default:
79  LOG_DEBUG << "Disc " << iDisc << " out of range in StFgtGeom::getDiscZ." << endm;
80  return kFgtError;
81  }
82 }
83 
84 double StFgtGeom::phiQuadXaxis( int iquad )
85 {
86  switch( iquad )
87  {
88  case 0:
89  return -15.0*mPi/180.0;
90  case 1:
91  return -105.0*mPi/180.0;
92  case 2:
93  return 165.0*mPi/180.0;
94  case 3:
95  return 75.0*mPi/180.0;
96  default:
97  LOG_DEBUG << "Quadrant " << iquad << " out of range in StFgtGeom::phiQuadXaxis." << endm;
98  return kFgtError;
99  //assert(2==3); // Safe without costing us any clock cycles.
100  }
101 }
102 
103 bool StFgtGeom::inDisc( TVector3 r ) // 'r' in LAB ref
104 {
105  double Rxy = r.Perp();
106  //printf("StFgtGeom::inDisc Rxy=%f rIn=%f rOut=%f\n",Rxy,kFgtRin,kFgtRout);
107  if ( Rxy < kFgtRin )
108  return false;
109  if ( Rxy > kFgtRout )
110  return false;
111  return true;
112 }
113 
114 bool StFgtGeom::belowFlat( TVector3 r ) // 'r' in LOC ref
115 {
116  double Rf = r.X()*cos(kFgtPhiflat) + r.Y()*sin(kFgtPhiflat);
117  //printf("StFgtGeom::belowFlat Rf=%f Rflat=%f \n",Rf,kFgtRflat);
118  if ( Rf > kFgtRflat )
119  return false;
120  return true;
121 }
122 
123 int StFgtGeom::getQuad( double phiLab )
124 {
125  // printf("StFgtGeom::getQuad phiLab/rad=%f\n", phiLab );
126  //assert(phiLab <= mPi );
127  //assert(phiLab >= -mPi );
128 
129  if(phiLab<(-mPi))
130  phiLab+=(2*mPi);
131  if(phiLab>mPi)
132  phiLab-=(2*mPi);
133 
134 
135  if ( phiLab > phiQuadXaxis(1) && phiLab <= phiQuadXaxis(0) )
136  return 1;
137  if ( phiLab > phiQuadXaxis(0) && phiLab <= phiQuadXaxis(3) )
138  return 0;
139  if ( phiLab > phiQuadXaxis(3) && phiLab <= phiQuadXaxis(2) )
140  return 3;
141  return 2;
142 }
143 
144 Int_t StFgtGeom::encodeGeoId
145 (
146  Int_t disc, Int_t quadrant, Char_t layer, Int_t strip
147 )
148 {
149 
150  Char_t testR='R';
151  Char_t testP='P';
152 
153  if ( disc < 0 || disc >= kFgtNumDiscs )
154  {
155  LOG_DEBUG << "Disc " << disc << " out of range in StFgtGeom::encodeGeoId." << endm;
156  return kFgtError;
157  }
158  else if ( quadrant < 0 || quadrant >= kFgtNumQuads )
159  {
160  LOG_DEBUG << "Quadrant " << quadrant << " out of range in StFgtGeom::encodeGeoId." << endm;
161  return kFgtError;
162  }
163  else if (
164  layer != testR
165  && layer != testP
166  )
167  {
168  LOG_DEBUG << "Layer " << layer << " out of range in StFgtGeom::encodeGeoId." << endm;
169  return kFgtError;
170  }
171  else if ( strip < 0 || strip >= kFgtNumStrips )
172  {
173  LOG_DEBUG << "Strip " << strip << " out of range in StFgtGeom::encodeGeoId." << endm;
174  return kFgtError;
175  }
176 
177  return
178  (
179  ( disc*kFgtNumQuads + quadrant ) * kFgtNumLayers + ( layer == 'P' )
180  ) * kFgtNumStrips + strip;
181 }
182 
183 Int_t StFgtGeom::decodeGeoId
184 (
185  Int_t geoId,
186  Short_t & disc, Short_t & quadrant, Char_t & layer, Short_t & strip
187 )
188 {
189  if ( geoId < 0 || geoId >= kFgtNumGeoIds )
190  {
191  LOG_DEBUG << "GeoId " << geoId << " out of range in StFgtGeom::decodeGeoId." << endm;
192  disc = kFgtError;
193  quadrant = kFgtError;
194  layer = kFgtErrorChar;
195  strip = kFgtError;
196 
197  return kFgtError;
198  }
199 
200  strip = geoId % kFgtNumStrips;
201  geoId /= kFgtNumStrips;
202 
203  layer = ( geoId % kFgtNumLayers ) ? 'P' : 'R';
204  geoId /= kFgtNumLayers;
205 
206  quadrant = geoId % kFgtNumQuads;
207  disc = geoId / kFgtNumQuads;
208 
209  return 0;
210 }
211 
212 std::string StFgtGeom::encodeGeoName
213 (
214  Int_t disc, Int_t quadrant, Char_t layer, Int_t strip
215 )
216 {
217  Char_t testR='R';
218  Char_t testP='P';
219 
220  if ( disc < 0 || disc >= kFgtNumDiscs )
221  {
222  LOG_DEBUG << "Disc " << disc << " out of range in StFgtGeom::encodeGeoName." << endm;
223  return kFgtErrorString;
224  }
225  else if ( quadrant < 0 || quadrant >= kFgtNumQuads )
226  {
227  LOG_DEBUG << "Quadrant " << quadrant << " out of range in StFgtGeom::encodeGeoName." << endm;
228  return kFgtErrorString;
229  }
230  else if (
231  layer != testR
232  && layer != testP
233  )
234  {
235  LOG_DEBUG << "Layer " << layer << " out of range in StFgtGeom::encodeGeoName." << endm;
236  return kFgtErrorString;
237  }
238  else if ( strip < 0 || strip >= kFgtNumStrips )
239  {
240  LOG_DEBUG << "Strip " << strip << " out of range in StFgtGeom::encodeGeoName." << endm;
241  return kFgtErrorString;
242  }
243 
244  std::stringstream buff;
245  buff << disc+1 << (Char_t)(quadrant+'A') << layer;
246 
247  if ( strip < 10 )
248  buff << "00";
249  else if ( strip < 100 )
250  buff << "0";
251 
252  buff << strip;
253  return buff.str();
254 }
255 
256 Int_t StFgtGeom::decodeGeoName
257 (
258  const std::string & geoName,
259  Short_t & disc, Short_t & quadrant, Char_t & layer, Short_t & strip
260 )
261 {
262  Char_t testR='R';
263  Char_t testP='P';
264 
265  //assert( geoName.size() == 6 );
266  disc = geoName[0] - '1';
267  quadrant = geoName[1] - 'A';
268  layer = geoName[2];
269  strip = std::atoi( (geoName.substr(3)).c_str() );
270 
271  // This is unlikely to catch all errors with the geoName, but it should
272  // do fairly well.
273  if (
274  disc < 0
275  || disc >= kFgtNumDiscs
276  || quadrant < 0
277  || quadrant >= kFgtNumQuads
278  || (
279  layer != testR
280  && layer != testP
281  )
282  || strip < 0
283  || strip > kFgtNumStrips
284  )
285  {
286  LOG_DEBUG << "Malformed geoName " << geoName << " in StFgtGeom::decodeGeoName." << endm;
287  disc = kFgtError;
288  quadrant = kFgtError;
289  layer = kFgtErrorChar;
290  strip = kFgtError;
291 
292  return kFgtError;
293  }
294 
295  return 0;
296 }
297 
298 std::string StFgtGeom::translateGeoIdToGeoName( Int_t geoId )
299 {
300  Short_t disc, quadrant, strip;
301  Char_t layer;
302 
303  if ( geoId < 0 || geoId >= kFgtNumGeoIds )
304  {
305  LOG_DEBUG << "GeoId " << geoId << " out of range in StFgtGeom::translateGeoIdToGeoName." << endm;
306  return kFgtErrorString;
307  }
308 
309  decodeGeoId( geoId, disc, quadrant, layer, strip );
310  return encodeGeoName( disc, quadrant, layer, strip );
311 }
312 
313 Int_t StFgtGeom::translateGeoNameToGeoId( const std::string & geoName )
314 {
315  Short_t disc, quadrant, strip;
316  Char_t layer;
317 
318  // Error message already taken care of in decodeGeoName.
319  if ( decodeGeoName( geoName, disc, quadrant, layer, strip ) < 0 )
320  return kFgtError;
321 
322  return encodeGeoId( disc, quadrant, layer, strip );
323 }
324 
325 // The ordinate, lowerSpan and upperSpan are all in centimeters or
326 // radians, depending on the layer.
327 Int_t StFgtGeom::getPhysicalCoordinate
328 (
329  Int_t geoId,
330  Short_t & disc, Short_t & quadrant, Char_t & layer,
331  Double_t & ordinate, Double_t & lowerSpan, Double_t & upperSpan
332 )
333 {
334  if ( geoId < 0 || geoId >= kFgtNumGeoIds )
335  {
336  LOG_DEBUG << "GeoId " << geoId << " out of range in StFgtGeom::getPhysicalCoordinate." << endm;
337  disc = kFgtError;
338  quadrant = kFgtError;
339  layer = kFgtErrorChar;
340  ordinate = kFgtError;
341  lowerSpan = kFgtError;
342  upperSpan = kFgtError;
343 
344  return kFgtError;
345  }
346 
347  Short_t strip;
348 
349  decodeGeoId( geoId, disc, quadrant, layer, strip );
350  ordinate =
351  mStrips[
352  (layer == 'P') * kFgtNumStrips + strip
353  ].ordinate;
354  lowerSpan =
355  mStrips[
356  (layer == 'P') * kFgtNumStrips + strip
357  ].lowerSpan;
358  upperSpan =
359  mStrips[
360  (layer == 'P') * kFgtNumStrips + strip
361  ].upperSpan;
362 
363  return 0;
364 }
365 
366 // The ordinate, lowerSpan and upperSpan are all in centimeters or
367 // radians, depending on the layer.
368 Int_t StFgtGeom::getPhysicalCoordinate
369 (
370  const std::string & geoName,
371  Short_t & disc, Short_t & quadrant, Char_t & layer,
372  Double_t & ordinate, Double_t & lowerSpan, Double_t & upperSpan
373 )
374 {
375  Short_t strip;
376 
377  if ( decodeGeoName( geoName, disc, quadrant, layer, strip ) < 0 )
378  {
379  // Error is mostly handled by the decodeGeoName call.
380  disc = kFgtError;
381  quadrant = kFgtError;
382  layer = kFgtErrorChar;
383  ordinate = kFgtError;
384  lowerSpan = kFgtError;
385  upperSpan = kFgtError;
386 
387  return kFgtError;
388  }
389 
390  ordinate =
391  mStrips[
392  (layer == 'P') * kFgtNumStrips + strip
393  ].ordinate;
394  lowerSpan =
395  mStrips[
396  (layer == 'P') * kFgtNumStrips + strip
397  ].lowerSpan;
398  upperSpan =
399  mStrips[
400  (layer == 'P') * kFgtNumStrips + strip
401  ].upperSpan;
402 
403  return 0;
404 }
405 
406 
407 // Calculates coordinates of strip in global coordinate system
408 // Units are in cm andradians, depending on the layer.
409 Int_t StFgtGeom::computeGlobalPhysicalCoordinate
410 (
411  Short_t & quadrant, Char_t & layer,
412  Double_t & ordinate, Double_t & lowerSpan, Double_t & upperSpan, Short_t & strip
413 )
414 {
415  switch (layer) {
416  case ('P') :
417  ordinate =
418  mStrips[kFgtNumStrips + strip].ordinate + StFgtGeom::phiQuadXaxis(quadrant);
419  lowerSpan =
420  mStrips[kFgtNumStrips + strip].lowerSpan;
421  upperSpan =
422  mStrips[kFgtNumStrips + strip].upperSpan;
423  break;
424  case ('R') :
425  ordinate =
426  mStrips[strip].ordinate;
427  lowerSpan =
428  mStrips[strip].lowerSpan + StFgtGeom::phiQuadXaxis(quadrant);
429  upperSpan =
430  mStrips[strip].upperSpan + StFgtGeom::phiQuadXaxis(quadrant);
431  break;
432  default:
433  return kFgtError;
434  break;
435  }
436 
437  return 0;
438 }
439 
440 Int_t StFgtGeom::getGlobalPhysicalCoordinate
441 (
442  Int_t geoId,
443  Short_t & disc, Short_t & quadrant, Char_t & layer,
444  Double_t & ordinate, Double_t & lowerSpan, Double_t & upperSpan
445 )
446 {
447  Short_t strip;
448 
449  decodeGeoId( geoId, disc, quadrant, layer, strip );
450 
451 
452  if ( geoId < 0 || geoId >= kFgtNumGeoIds )
453  {
454  LOG_DEBUG << "GeoId " << geoId << " out of range in StFgtGeom::getPhysicalCoordinate." << endm;
455  disc = kFgtError;
456  quadrant = kFgtError;
457  layer = kFgtErrorChar;
458  ordinate = kFgtError;
459  lowerSpan = kFgtError;
460  upperSpan = kFgtError;
461 
462  return kFgtError;
463  }
464 
465  return computeGlobalPhysicalCoordinate( quadrant, layer,
466  ordinate, lowerSpan, upperSpan, strip);
467 }
468 
469 // The ordinate, lowerSpan and upperSpan are all in centimeters or
470 // radians, depending on the layer.
471 Int_t StFgtGeom::getGlobalPhysicalCoordinate
472 (
473  const std::string & geoName,
474  Short_t & disc, Short_t & quadrant, Char_t & layer,
475  Double_t & ordinate, Double_t & lowerSpan, Double_t & upperSpan
476 )
477 {
478  Short_t strip;
479 
480  if ( decodeGeoName( geoName, disc, quadrant, layer, strip ) < 0 )
481  {
482  // Error is mostly handled by the decodeGeoName call.
483  disc = kFgtError;
484  quadrant = kFgtError;
485  layer = kFgtErrorChar;
486  ordinate = kFgtError;
487  lowerSpan = kFgtError;
488  upperSpan = kFgtError;
489 
490  return kFgtError;
491  }
492 
493  return computeGlobalPhysicalCoordinate( quadrant, layer,
494  ordinate, lowerSpan, upperSpan, strip);
495 
496 }
497 
498 
499 
500 
501 // Please note that the following functions do NOT access the STAR
502 // database to find mapping information. They assume the most
503 // straight-forward mapping scheme and use that.
504 // For those functions that have them, currently rdo can be 1-2, arm
505 // can be 0-5, apv can be 0-23 (although 10, 11, 22, and 23 are not
506 // technically valid) and channel is 0-127.
507 Int_t StFgtGeom::encodeElectronicId
508 (
509  Int_t rdo, Int_t arm, Int_t apv, Int_t channel
510 )
511 {
512  if ( (rdo - 1) < 0 || (rdo - 1) >= kFgtNumRdos )
513  {
514  LOG_DEBUG << "RDO " << rdo << " out of range in StFgtGeom::encodeElectronicId." << endm;
515  return kFgtError;
516  }
517  else if ( arm < 0 || arm >= kFgtNumArms )
518  {
519  LOG_DEBUG << "ARM " << arm << " out of range in StFgtGeom::encodeElectronicId." << endm;
520  return kFgtError;
521  }
522  else if ( apv < 0 || apv > kFgtMaxApvId || apv == 10 || apv == 11 )
523  {
524  LOG_DEBUG << "APV " << apv << " out of range in StFgtGeom::encodeElectronicId." << endm;
525  return kFgtError;
526  }
527  else if ( channel < 0 || channel >= kFgtNumChannels )
528  {
529  LOG_DEBUG << "Channel " << channel << " out of range in StFgtGeom::encodeElectronicId." << endm;
530  return kFgtError;
531  }
532 
533 
534  if ( apv >= 12 )
535  {
536  apv -= 2;
537  }
538  return channel+128*(apv+20*(arm+6*(rdo-1)));
539 }
540 
541 Int_t StFgtGeom::decodeElectronicId
542 (
543  Int_t elecId,
544  Int_t &rdo, Int_t &arm, Int_t &apv, Int_t &channel
545 )
546 {
547  if ( elecId < 0 || elecId >= kFgtNumElecIds )
548  {
549  LOG_DEBUG << "Electronic ID " << elecId << " out of range in StFgtGeom::decodeElectronicId." << endm;
550 
551  rdo = kFgtError;
552  arm = kFgtError;
553  apv = kFgtError;
554  channel = kFgtError;
555 
556  return kFgtError;
557  }
558 
559  channel = elecId % 128;
560  elecId /= 128;
561 
562  apv = elecId % 20;
563  elecId /= 20;
564 
565  arm = elecId % 6;
566  rdo = 1 + elecId / 6;
567 
568  if ( apv > 9 )
569  {
570  apv += 2;
571  }
572  return 0;
573 }
574 
575 Int_t StFgtGeom::getNaiveGeoIdFromElecCoord
576 (
577  Int_t rdo, Int_t arm, Int_t apv, Int_t channel
578 )
579 {
580  if ( (rdo - 1) < 0 || (rdo - 1) >= kFgtNumRdos )
581  {
582  LOG_DEBUG << "RDO " << rdo << " out of range in StFgtGeom::getNaiveGeoIdFromElecCoord." << endm;
583  return kFgtError;
584  }
585  else if ( arm < 0 || arm >= kFgtNumArms )
586  {
587  LOG_DEBUG << "ARM " << arm << " out of range in StFgtGeom::getNaiveGeoIdFromElecCoord." << endm;
588  return kFgtError;
589  }
590  else if ( apv < 0 || apv > kFgtMaxApvId || apv == 10 || apv == 11 )
591  {
592  LOG_DEBUG << "APV " << apv << " out of range in StFgtGeom::getNaiveGeoIdFromElecCoord." << endm;
593  return kFgtError;
594  }
595  else if ( channel < 0 || channel >= kFgtNumChannels )
596  {
597  LOG_DEBUG << "Channel " << channel << " out of range in StFgtGeom::getNaiveGeoIdFromElecCoord." << endm;
598  return kFgtError;
599  }
600 
601  Short_t disc = int(arm/2) + (rdo-1)*3;
602  Short_t quadrant = (arm & 1)*2 + int( apv/12 );
603 
604  if ( apv >= 12 )
605  return
606  (
607  disc*kFgtNumQuads + quadrant
608  ) * kFgtNumLayers * kFgtNumStrips
609  + mNaiveMapping[ (apv-12)*128+channel ];
610  else
611  return
612  (
613  disc*kFgtNumQuads + quadrant
614  ) * kFgtNumLayers * kFgtNumStrips
615  + mNaiveMapping[ apv*128+channel ];
616 
617 }
618 
619 // get the octant for a given layer and strip
620 Char_t StFgtGeom::getOctant( Char_t layer, Int_t strip )
621 {
622  if (
623  layer != kFgtLowerStripOctant
624  && layer != kFgtHigherStripOctant
625  )
626  {
627  LOG_DEBUG << "Layer " << layer << " out of range in StFgtGeom::getOctant." << endm;
628  return kFgtErrorChar;
629  }
630  else if ( strip < 0 || strip >= kFgtNumStrips )
631  {
632  LOG_DEBUG << "Strip " << strip << " out of range in StFgtGeom::getOctant." << endm;
633  return kFgtErrorChar;
634  }
635 
636  return
637  ( strip < ( layer == 'R' ? kFgtNumRstripsPerOctant : kFgtNumPstripsPerOctant )
638  ? kFgtLowerStripOctant
639  : kFgtHigherStripOctant );
640 }
641 
642 // get the octant given the APV number
643 Char_t StFgtGeom::getOctant( Int_t apv )
644 {
645  if ( apv < 0 || apv > kFgtMaxApvId || apv == 10 || apv == 11 )
646  {
647  LOG_DEBUG << "APV " << apv << " out of range in StFgtGeom::getOctant." << endm;
648  return kFgtErrorChar;
649  }
650 
651  return ( (apv%kFgtApvsPerAssembly) < kFgtApvsPerOct
652  ? kFgtLowerStripOctant
653  : kFgtHigherStripOctant );
654 }
655 
656 // This is similar to the above functions, but it takes electronic
657 // coordinates and only returns the final ordinate. This is here
658 // primarily so that it can be used as a drop in replacement for
659 // older code that has similar functionality.
660 Double_t StFgtGeom::getNaiveMapping(
661  Int_t rdo, Int_t arm, Int_t apv, Int_t channel
662 )
663 {
664  if ( (rdo - 1) < 0 || (rdo - 1) >= kFgtNumRdos )
665  {
666  LOG_DEBUG << "RDO " << rdo << " out of range in StFgtGeom::getNaiveMapping." << endm;
667  return kFgtError;
668  }
669  else if ( arm < 0 || arm >= kFgtNumArms )
670  {
671  LOG_DEBUG << "ARM " << arm << " out of range in StFgtGeom::getNaiveMapping." << endm;
672  return kFgtError;
673  }
674  else if ( apv < 0 || apv > kFgtMaxApvId || apv == 10 || apv == 11 )
675  {
676  LOG_DEBUG << "APV " << apv << " out of range in StFgtGeom::getNaiveMapping." << endm;
677  return kFgtError;
678  }
679  else if ( channel < 0 || channel >= kFgtNumChannels )
680  {
681  LOG_DEBUG << "Channel " << channel << " out of range in StFgtGeom::getNaiveMapping." << endm;
682  return kFgtError;
683  }
684 
685  if ( apv >= 12 )
686  return
687  mStrips[ mNaiveMapping[ (apv-12)*128+channel ] ].ordinate;
688  else
689  return
690  mStrips[ mNaiveMapping[ apv*128+channel ] ].ordinate;
691 }
692 
693 bool StFgtGeom::isNaiveR(
694  Int_t rdo, Int_t arm, Int_t apv, Int_t channel
695 )
696 {
697  // There isn't much I can do here without causing potential problems with
698  // calls to this function. So, warnings are all I can do.
699  if ( (rdo - 1) < 0 || (rdo - 1) >= kFgtNumRdos )
700  {
701  LOG_DEBUG << "RDO " << rdo << " out of range in StFgtGeom::isNaiveR." << endm;
702  }
703  else if ( arm < 0 || arm >= kFgtNumArms )
704  {
705  LOG_DEBUG << "ARM " << arm << " out of range in StFgtGeom::isNaiveR." << endm;
706  }
707  else if ( apv < 0 || apv > kFgtMaxApvId || apv == 10 || apv == 11 )
708  {
709  LOG_DEBUG << "APV " << apv << " out of range in StFgtGeom::isNaiveR." << endm;
710  }
711  else if ( channel < 0 || channel >= kFgtNumChannels )
712  {
713  LOG_DEBUG << "Channel " << channel << " out of range in StFgtGeom::isNaiveR." << endm;
714  }
715 
716  if ( apv >= 12 )
717  return
718  mNaiveMapping[ (apv-12)*128+channel ] < 720;
719  else
720  return
721  mNaiveMapping[ apv*128+channel ] < 720;
722 }
723 
724 Int_t StFgtGeom::getNaiveElecCoordFromGeoId
725 (
726  Int_t geoId,
727  Int_t& rdo, Int_t& arm, Int_t& apv, Int_t& channel
728 )
729 {
730  Short_t disc, quadrant, strip;
731  Char_t layer;
732 
733  // Most of this error should be handled by the decodeGeoId call.
734  if ( decodeGeoId( geoId, disc, quadrant, layer, strip ) < 0 )
735  return kFgtError;
736 
737  if( !mReverseNaiveMappingValid )
738  makeReverseNaiveMappingValid();
739 
740  Int_t key = ( (layer=='P')*kFgtNumStrips + strip );
741  channel = mReverseNaiveMapping[ key ];
742  apv = channel / 128;
743  channel %= 128;
744 
745  if( quadrant % 2 )
746  apv += 12;
747 
748  rdo = disc/3+1;
749  arm = (disc % 3)*2 + (quadrant>1);
750 
751  return 0;
752 }
753 
754 //This function takes in a radius and a LOCAL phi values (0-pi/2 radians)
755 //It returns the closest phi strip to the input radius,phi pair (0-719)
756 //If there are not strips implemented on the detector at that r,phi
757 //then it returns -1
758 int StFgtGeom::phi2LocalStripId( double rad, double phiLoc, double *binFrac )
759 {
760 
761  /*
762  const int pbins = ((pLast() - pFirst())/phiStrip_pitch()) + 1;//720 strips total numbered from 0-719
763 
764  double pstrip[pbins];//array that holds phi location of strips
765 
766  //fill array of pstrip with difference between passed phi and strip phi location values
767  double min_p_diff = phiStrip_pitch()/2.0;
768  int pindex = -1;//index in array is the strip value
769  for ( int i =0; i < pbins; i++)
770  {
771  double p=-i*phiStrip_pitch() + pLast();
772  pstrip[i] = (-i*phiStrip_pitch() + pLast() - phiLoc);
773  if ( fabs(pstrip[i]) < fabs(min_p_diff) )
774  {
775  min_p_diff = pstrip[i];
776  pindex = i;
777  //printf("ppp i=%3d phi=%8.4f p=%8.4f %8.4f %8.4f pst=%8.4f pindex=%3d ",
778  // i,phiLoc,p-phiStrip_pitch()/2.0,p,p+phiStrip_pitch()/2.0,pstrip[i],pindex);
779  //break;
780  }
781  //printf("ppp i=%3d phi=%8.4f p=%8.4f %8.4f %8.4f pst=%8.4f pindex=%3d\n",
782  // i,phiLoc,p-phiStrip_pitch()/2.0,p,p+phiStrip_pitch()/2.0,pstrip[i],pindex);
783  }
784  */
785  int pindex=-1;
786  double p3=0.0;
787  if(phiLoc>=pFirst()-phiStrip_pitch()/2.0 || phiLoc<=pLast()+phiStrip_pitch()/2.0){
788  double p2=pLast()+phiStrip_pitch()/2.0-phiLoc;
789  p3=p2/phiStrip_pitch();
790  pindex=int(p3);
791  }
792  //printf("pindex=%d pindex2=%d diff=%d\n",pindex,pindex2,pindex-pindex2);
793  //if(pindex!=pindex2) printf("pindex=%d pindex2=%d diff=%d\n",pindex,pindex2,pindex-pindex2);
794 
795 
796  //if r is < 19.125 and >= 11.5 then all even strips are not there
797  //if index is odd the width is 2x phiStrip_pitch()
798  if ( (rad < rMid()) && (rad >= rIn()) && (pindex%2==1) && pindex>-1){
799 
800  /*
801  //if min_p_diff < 0 then phiLoc > stripPhi and is closer to the lower numbered odd strip
802  if (min_p_diff <= 0) pindex-=1;
803  //if min_p_diff > 0 then phiLoc < stripPhi and is closer to higher numbered odd strip
804  if (min_p_diff > 0) pindex+=1;
805  */
806  //printf("EvenOdd pindex=%3d p3=%6.2f mod=%2d\n",pindex,p3,pindex%2);
807  if(p3-pindex<0.5) {pindex-=1;}
808  else {pindex+=1;}
809  }
810 
811  //the first and last 35 strips have irregular rinner values
812  if ( (pindex < 35) || ( pindex > 684) )
813  {
814  if ( rad < pHistrip_R_Low(pindex)) pindex = -1;
815  }
816 
817  //these strips have irregular router values
818  if ( (pindex < 347) || ( pindex > 306) )
819  {
820  if ( rad > pHistrip_R_High(pindex)) pindex = -1;
821  }
822 
823  //if radius is outside of geometric location of the foil then return -1
824  if ( (rad > rOut()) || (rad < rIn()) ) pindex = -1;
825 
826  //if phi is outside of first strip - width or last strip + width then return -1
827  if ( (phiLoc > (pLast()+phiStrip_pitch())) || (phiLoc < (pFirst()-phiStrip_pitch())) ) pindex = -1;
828 
829  return pindex;
830 
831 }
832 
833 
834 
835 double StFgtGeom::pHistrip_R_High(int pindex){
836 
837  double r;
838 
839  double holdtemp[340]={38.2243,//strip 307
840  38.1948,
841  38.1655,
842  38.1364,
843  38.1075,
844  38.0789,
845  38.0504,
846  38.0222,
847  37.9942,
848  37.9663,
849  37.9387,
850  37.9113,
851  37.8841,
852  37.8571,
853  37.8303,
854  37.8037,
855  37.7773,
856  37.7511,
857  37.7251,
858  37.6993,
859  37.6737,
860  37.6483,
861  37.6231,
862  37.5981,
863  37.5733,
864  37.5488,
865  37.5244,
866  37.5002,
867  37.4761,
868  37.4523,
869  37.4287,
870  37.4053,
871  37.382,
872  37.359,
873  37.3362,
874  37.3135,
875  37.2911,
876  37.2688,
877  37.2467,
878  37.2248,
879  37.2031,
880  37.1816,
881  37.1602,
882  37.1391,
883  37.1181,
884  37.0974,
885  37.0768,
886  37.0564,
887  37.0362,
888  37.0162,
889  36.9963,
890  36.9766,
891  36.9572,
892  36.9379,
893  36.9188,
894  36.8998,
895  36.8811,
896  36.8625,
897  36.8441,
898  36.8259,
899  36.8079,
900  36.79,
901  36.7723,
902  36.7548,
903  36.7375,
904  36.7204,
905  36.7034,
906  36.6866,
907  36.67,
908  36.6536,
909  36.6373,
910  36.6213,
911  36.6053,
912  36.5896,
913  36.574,
914  36.5587,
915  36.5434,
916  36.5284,
917  36.5135,
918  36.4988,
919  36.4843,
920  36.47,
921  36.4558,
922  36.4418,
923  36.4279,
924  36.4143,
925  36.4008,
926  36.3874,
927  36.3743,
928  36.3613,
929  36.3484,
930  36.3358,
931  36.3233,
932  36.311,
933  36.2988,
934  36.2868,
935  36.275,
936  36.2634,
937  36.2519,
938  36.2406,
939  36.2294,
940  36.2184,
941  36.2076,
942  36.1969,
943  36.1865,
944  36.1761,
945  36.166,
946  36.156,
947  36.1461,
948  36.1365,
949  36.127,
950  36.1176,
951  36.1084,
952  36.0994,
953  36.0906,
954  36.0819,
955  36.0733,
956  36.065,
957  36.0568,
958  36.0487,
959  36.0409,
960  36.0331,
961  36.0256,
962  36.0182,
963  36.0109,
964  36.0039,
965  35.997,
966  35.9902,
967  35.9836,
968  35.9772,
969  35.9709,
970  35.9648,
971  35.9588,
972  35.953,
973  35.9474,
974  35.9419,
975  35.9366,
976  35.9315,
977  35.9265,
978  35.9216,
979  35.9169,
980  35.9124,
981  35.9081,
982  35.9039,
983  35.8998,
984  35.8959,
985  35.8922,
986  35.8886,
987  35.8852,
988  35.882,
989  35.8789,
990  35.8759,
991  35.8732,
992  35.8705,
993  35.8681,
994  35.8658,
995  35.8636,
996  35.8616,
997  35.8598,
998  35.8581,
999  35.8566,
1000  35.8552,
1001  35.854,
1002  35.853,
1003  35.8521,
1004  35.8514,
1005  35.8508,
1006  35.8504,
1007  35.8501,
1008  35.85,
1009  35.8501,
1010  35.8503,
1011  35.8506,
1012  35.8512,
1013  35.8518,
1014  35.8527,
1015  35.8537,
1016  35.8548,
1017  35.8562,
1018  35.8576,
1019  35.8593,
1020  35.861,
1021  35.863,
1022  35.8651,
1023  35.8673,
1024  35.8698,
1025  35.8723,
1026  35.8751,
1027  35.878,
1028  35.881,
1029  35.8842,
1030  35.8876,
1031  35.8911,
1032  35.8948,
1033  35.8986,
1034  35.9026,
1035  35.9068,
1036  35.9111,
1037  35.9155,
1038  35.9202,
1039  35.925,
1040  35.9299,
1041  35.935,
1042  35.9403,
1043  35.9457,
1044  35.9513,
1045  35.957,
1046  35.9629,
1047  35.969,
1048  35.9752,
1049  35.9816,
1050  35.9882,
1051  35.9949,
1052  36.0017,
1053  36.0088,
1054  36.0159,
1055  36.0233,
1056  36.0308,
1057  36.0385,
1058  36.0463,
1059  36.0543,
1060  36.0625,
1061  36.0708,
1062  36.0792,
1063  36.0879,
1064  36.0967,
1065  36.1057,
1066  36.1148,
1067  36.1241,
1068  36.1335,
1069  36.1432,
1070  36.1529,
1071  36.1629,
1072  36.173,
1073  36.1833,
1074  36.1937,
1075  36.2043,
1076  36.2151,
1077  36.226,
1078  36.2371,
1079  36.2484,
1080  36.2598,
1081  36.2714,
1082  36.2832,
1083  36.2951,
1084  36.3072,
1085  36.3195,
1086  36.3319,
1087  36.3446,
1088  36.3573,
1089  36.3703,
1090  36.3834,
1091  36.3967,
1092  36.4101,
1093  36.4237,
1094  36.4375,
1095  36.4515,
1096  36.4656,
1097  36.4799,
1098  36.4944,
1099  36.509,
1100  36.5238,
1101  36.5388,
1102  36.554,
1103  36.5693,
1104  36.5848,
1105  36.6005,
1106  36.6164,
1107  36.6324,
1108  36.6486,
1109  36.665,
1110  36.6815,
1111  36.6983,
1112  36.7152,
1113  36.7323,
1114  36.7495,
1115  36.767,
1116  36.7846,
1117  36.8024,
1118  36.8204,
1119  36.8385,
1120  36.8569,
1121  36.8754,
1122  36.8941,
1123  36.9129,
1124  36.932,
1125  36.9512,
1126  36.9707,
1127  36.9903,
1128  37.0101,
1129  37.03,
1130  37.0502,
1131  37.0705,
1132  37.0911,
1133  37.1118,
1134  37.1327,
1135  37.1538,
1136  37.175,
1137  37.1965,
1138  37.2181,
1139  37.24,
1140  37.262,
1141  37.2842,
1142  37.3066,
1143  37.3292,
1144  37.352,
1145  37.375,
1146  37.3982,
1147  37.4215,
1148  37.4451,
1149  37.4688,
1150  37.4928,
1151  37.5169,
1152  37.5413,
1153  37.5658,
1154  37.5905,
1155  37.6155,
1156  37.6406,
1157  37.6659,
1158  37.6915,
1159  37.7172,
1160  37.7431,
1161  37.7692,
1162  37.7956,
1163  37.8221,
1164  37.8488,
1165  37.8758,
1166  37.9029,
1167  37.9303,
1168  37.9578,
1169  37.9856,
1170  38.0136,
1171  38.0418,
1172  38.0702,
1173  38.0988,
1174  38.1276,
1175  38.1566,
1176  38.1858,
1177  38.2153,
1178  38.2449};//647
1179 
1180 
1181  double hold[720];
1182  for (int i=0;i<307;i++) hold[i]=38.25;
1183  for (int i=307;i<647;i++) hold[i]=holdtemp[i-307];
1184  for (int i=647;i<720;i++) hold[i]=38.25;
1185 
1186 
1187  r = hold[pindex];
1188  return r;
1189 
1190 }
1191 
1192 double StFgtGeom::pHistrip_R_Low(int pindex){
1193 
1194  double r;
1195 
1196  double holdLow[35]={37.0706,//strip 0
1197  34.8235,
1198  32.8244,
1199  31.0505,
1200  29.4515,
1201  28.0157,
1202  26.7075,
1203  25.5216,
1204  24.4317,
1205  23.4357,
1206  22.5179,
1207  21.6654,
1208  20.8788,
1209  20.144,
1210  19.4624,
1211  19.125,
1212  18.2264,
1213  19.125,
1214  17.1382,
1215  19.125,
1216  16.1729,
1217  19.125,
1218  15.3108,
1219  19.125,
1220  14.5362,
1221  19.125,
1222  13.8365,
1223  19.125,
1224  13.2012,
1225  19.125,
1226  12.6219,
1227  19.125,
1228  12.0916,
1229  19.125,
1230  11.6042};//strip 34
1231 
1232  double holdHigh[35]={19.125,//strip 685
1233  11.8432,
1234  19.125,
1235  12.3514,
1236  19.125,
1237  12.9053,
1238  19.125,
1239  13.5115,
1240  19.125,
1241  14.1778,
1242  19.125,
1243  14.9134,
1244  19.125,
1245  15.7299,
1246  19.125,
1247  16.6412,
1248  19.125,
1249  17.6649,
1250  19.125,
1251  18.8232,
1252  19.4614,
1253  20.1444,
1254  20.8773,
1255  21.6656,
1256  22.5158,
1257  23.4356,
1258  24.4339,
1259  25.5211,
1260  26.7097,
1261  28.0145,
1262  29.4536,
1263  31.0486,
1264  32.8265,
1265  34.8204,
1266  37.0723};//strip 719
1267 
1268 
1269 
1270  if (pindex < 35) { r = holdLow[pindex]; }
1271  if (pindex > 684){ r = holdHigh[pindex-685]; }
1272 
1273  return r;
1274 }
1275 
1276 
1277 //This function takes in a radius and a LOCAL phi values (0-pi/2 radians)
1278 //It returns the closest r strip to the input radius,phi pair
1279 //If there are no strips implemented on the detector at that r,phi
1280 //then it returns -1
1281 int StFgtGeom::rad2LocalStripId( double rad, double phiLoc, double *binFrac )
1282 {
1283  const int rbins = ((rLast() - rFirst())/radStrip_pitch())+1;//280 strips on each side of the quadrant
1284 
1285  /*
1286  double rstrip[rbins];//array that holds r location of strips
1287  //fill array of rstrip with difference between passed radius and strip r location values
1288  //double min_r_diff = radStrip_pitch();
1289  double min_r_diff = radStrip_pitch()/2.0;
1290  int rindex = -1;//index in array is the strip value
1291  for ( int i =0; i < rbins; i++)
1292  {
1293  //double r=-i*radStrip_pitch() + rLast();
1294  rstrip[i] = fabs(-i*radStrip_pitch() + rLast() - rad);
1295 
1296  if (rstrip[i] < min_r_diff)
1297  {
1298  min_r_diff = rstrip[i];
1299  rindex = i;
1300  //printf("rrr i=%3d rad=%8.4f r=%8.4f %8.4f %8.4f rst=%8.4f rindex=%3d ",
1301  // i,rad,r-radStrip_pitch()/2.0,r,r+radStrip_pitch()/2.0,rstrip[i],rindex);
1302  break;
1303  }
1304  //printf("rrr i=%3d r=%8.4f mid=%8.4f rindex=%3d\n",i,r,r+radStrip_pitch()*0.5,rindex);
1305  }
1306  */
1307  int rindex=-1;
1308  if(rad>=rFirst()-radStrip_pitch()/2.0 || rad<=rLast()+radStrip_pitch()/2.0){
1309  double r2=rLast()+radStrip_pitch()/2.0-rad;
1310  rindex=int(r2/radStrip_pitch());
1311  }
1312  //printf("rindex=%d rindex2=%d diff=%d\n",rindex,rindex2,rindex-rindex2);
1313  //if(rindex!=rindex2) printf("rindex=%d rindex2=%d diff=%d\n",rindex,rindex2,rindex-rindex2);
1314 
1315  //if phi = 45-90 (135-180,0--45, -90-135), then strips are 0-279 and flag =0
1316  Int_t Phi_flag = 0;
1317 
1318  //if phi = 0-45 (90-135,-45--90, -135--180) then strips are 400-678 and flag =1
1319  if ((phiLoc >= 0)&&(phiLoc < mPi/4)) Phi_flag = 1;
1320 
1321 
1322  //only exception are for strips 13-24 that extend over the midway point
1323  //this is so ugly but what can I do - it is the hardware!
1324  if ((rindex<25)&&(rindex>12))
1325  {
1326 
1327  if ((phiLoc > 0.57)&&(phiLoc <= mHalfPi)) Phi_flag = 0;
1328 
1329  }
1330 
1331  if (Phi_flag == 1) rindex+=400;
1332 
1333  //Last make a series of checks to be sure that there are strips in the phi region for strips 0 - 24 and 400-424
1334  if (((rindex < 25)&&(rindex >=0)) || (( rindex < 425 )&&( rindex >= 400)))
1335  {
1336  if (phiLoc > (rStrip_Phi_High(rindex))) rindex = -1;
1337  if (phiLoc < (rStrip_Phi_Low(rindex))) rindex = -1;
1338  }
1339 
1340 
1341  Int_t checkHighRad = rbins;// max r strip value
1342  Int_t checkLowRad = 0;// min r strip values
1343  if (Phi_flag ==1 )
1344  {
1345  checkHighRad +=400;
1346  checkLowRad +=400;
1347  }
1348 
1349  if (( rindex < checkLowRad ) || (rindex >= checkHighRad) || ( rad < (rFirst() - (radStrip_pitch()/2))) || ( rad > ( rLast() + (radStrip_pitch()/2) ) ) ) rindex = -1;
1350 
1351  return rindex;
1352 
1353 }
1354 
1355 double StFgtGeom::rStrip_Phi_High(int rindex){
1356 
1357  double phi=0.0;
1358 
1359  double hold[25]={0.19153084,
1360  0.19847378,
1361  0.20559055,
1362  0.21289241,
1363  0.22039270,
1364  0.22809740,
1365  0.23603912,
1366  0.24422818,
1367  0.25268644,
1368  0.26143829,
1369  0.27050272,
1370  0.27993242,
1371  0.28975896,
1372  0.30003085,
1373  0.31080764,
1374  0.32215264,
1375  0.33418531,
1376  0.34702006,
1377  0.36082815,
1378  0.37585491,
1379  0.39245105,
1380  0.41125997,
1381  0.43341014,
1382  0.46165336,
1383  0.50945919};
1384 
1385  double high[kFgtNumStrips];
1386 
1387  for (int i = 0; i < 25; i++)
1388  {
1389  high[i+400]=hold[i];
1390  }
1391 
1392  for (int i = 425; i < 680; i++)
1393  {
1394  high[i]=0.7866672;
1395  }
1396 
1397  for (int i = 0;i<280; i++)
1398  {
1399  high[i] = mHalfPi;
1400  }
1401 
1402  if (((rindex >=0)&&(rindex < 280))||((rindex < 680)&&(rindex >=400)))
1403  phi = high[rindex];
1404 
1405  return phi;
1406 }
1407 
1408 double StFgtGeom::rStrip_Phi_Low(int rindex){
1409 
1410  double phi=0.0;
1411 
1412  double low[kFgtNumStrips]={0.8905733,
1413  0.88363036,
1414  0.87651359,
1415  0.86921173,
1416  0.86171144,
1417  0.85400674,
1418  0.84606502,
1419  0.83787596,
1420  0.82941770,
1421  0.82066585,
1422  0.81160142,
1423  0.80217172,
1424  0.79234517,
1425  0.78207329,
1426  0.77129650,
1427  0.75995149,
1428  0.74791883,
1429  0.73508408,
1430  0.72127599,
1431  0.70624922,
1432  0.68965309,
1433  0.67084417,
1434  0.64869399,
1435  0.62045077,
1436  0.57264494};
1437 
1438  for ( int i = 25; i< 280; i++)
1439  {
1440  low[i] = 0.7866672;
1441  }
1442 
1443  //note all other values are set to zero which isn't completely true.
1444  //On other side of quadrant we have low values of 0.03 - 0.05.
1445  //For now we go with simple approach
1446 
1447  if (((rindex >=0)&&(rindex < 280))||((rindex < 680)&&(rindex >=400)))
1448  phi = low[rindex];
1449 
1450  return phi;
1451 }
1452 
1453 
1454 // Whether the reverse map is valid
1455 Bool_t StFgtGeom::mReverseNaiveMappingValid = 0;
1456 
1457 // The reverse map data member
1458 Int_t StFgtGeom::mReverseNaiveMapping[ 2*kFgtNumStrips ];
1459 
1460 // Initialize our physical coordinate database here. These are:
1461 // isPhi?, ordinate, lowerSpan, upperSpan
1462 // The index corresponds to (apv*128)+channel (assuming that the apv is in
1463 // [0,12). If apv is in [12,24), then the index is (apv-12)*128+channel.
1464 StFgtGeom::StFgtGeomData StFgtGeom::mStrips[] =
1465 {
1466  { false, 38.1571, 0.8905733, 1.53935776 },
1467  { false, 38.0617, 0.88363036, 1.53927901 },
1468  { false, 37.9663, 0.87651359, 1.53919987 },
1469  { false, 37.8709, 0.86921173, 1.53912033 },
1470  { false, 37.7755, 0.86171144, 1.53904038 },
1471  { false, 37.6802, 0.85400674, 1.53896012 },
1472  { false, 37.5848, 0.84606502, 1.53887937 },
1473  { false, 37.4894, 0.83787596, 1.53879821 },
1474  { false, 37.394, 0.8294177, 1.53871663 },
1475  { false, 37.2986, 0.82066585, 1.53863463 },
1476  { false, 37.2033, 0.81160142, 1.5385523 },
1477  { false, 37.1079, 0.80217172, 1.53846947 },
1478  { false, 37.0125, 0.79234517, 1.5383862 },
1479  { false, 36.9171, 0.78207329, 1.53830251 },
1480  { false, 36.8217, 0.7712965, 1.53821838 },
1481  { false, 36.7264, 0.75995149, 1.5381339 },
1482  { false, 36.631, 0.74791883, 1.5380489 },
1483  { false, 36.5356, 0.73508408, 1.53796345 },
1484  { false, 36.4402, 0.72127599, 1.53787756 },
1485  { false, 36.3448, 0.70624922, 1.53779121 },
1486  { false, 36.2495, 0.68965309, 1.53770451 },
1487  { false, 36.1541, 0.67084417, 1.53761725 },
1488  { false, 36.0587, 0.64869399, 1.53752953 },
1489  { false, 35.9633, 0.62045077, 1.53744135 },
1490  { false, 35.8679, 0.57264494, 1.5373527 },
1491  { false, 35.7726, 0.7866672, 1.53726367 },
1492  { false, 35.6772, 0.7866672, 1.53717408 },
1493  { false, 35.5818, 0.7866672, 1.537084 },
1494  { false, 35.4864, 0.7866672, 1.53699344 },
1495  { false, 35.391, 0.7866672, 1.53690239 },
1496  { false, 35.2957, 0.7866672, 1.53681094 },
1497  { false, 35.2003, 0.7866672, 1.5367189 },
1498  { false, 35.1049, 0.7866672, 1.53662637 },
1499  { false, 35.0095, 0.7866672, 1.53653333 },
1500  { false, 34.9141, 0.7866672, 1.53643978 },
1501  { false, 34.8188, 0.7866672, 1.53634582 },
1502  { false, 34.7234, 0.7866672, 1.53625125 },
1503  { false, 34.628, 0.7866672, 1.53615615 },
1504  { false, 34.5326, 0.7866672, 1.53606053 },
1505  { false, 34.4372, 0.7866672, 1.53596438 },
1506  { false, 34.3419, 0.7866672, 1.5358678 },
1507  { false, 34.2465, 0.7866672, 1.53577058 },
1508  { false, 34.1511, 0.7866672, 1.53567282 },
1509  { false, 34.0557, 0.7866672, 1.53557451 },
1510  { false, 33.9603, 0.7866672, 1.53547565 },
1511  { false, 33.865, 0.7866672, 1.53537633 },
1512  { false, 33.7696, 0.7866672, 1.53527636 },
1513  { false, 33.6742, 0.7866672, 1.53517581 },
1514  { false, 33.5788, 0.7866672, 1.53507469 },
1515  { false, 33.4834, 0.7866672, 1.53497301 },
1516  { false, 33.3881, 0.7866672, 1.53487084 },
1517  { false, 33.2927, 0.7866672, 1.53476799 },
1518  { false, 33.1973, 0.7866672, 1.53466454 },
1519  { false, 33.1019, 0.7866672, 1.5345605 },
1520  { false, 33.0065, 0.7866672, 1.53445586 },
1521  { false, 32.9112, 0.7866672, 1.53435072 },
1522  { false, 32.8158, 0.7866672, 1.53424486 },
1523  { false, 32.7204, 0.7866672, 1.53413839 },
1524  { false, 32.625, 0.7866672, 1.53403129 },
1525  { false, 32.5296, 0.7866672, 1.53392357 },
1526  { false, 32.4343, 0.7866672, 1.53381532 },
1527  { false, 32.3389, 0.7866672, 1.53370633 },
1528  { false, 32.2435, 0.7866672, 1.53359669 },
1529  { false, 32.1481, 0.7866672, 1.5334864 },
1530  { false, 32.0527, 0.7866672, 1.53337546 },
1531  { false, 31.9574, 0.7866672, 1.53326397 },
1532  { false, 31.862, 0.7866672, 1.5331517 },
1533  { false, 31.7666, 0.7866672, 1.53303875 },
1534  { false, 31.6712, 0.7866672, 1.53292513 },
1535  { false, 31.5758, 0.7866672, 1.53281082 },
1536  { false, 31.4805, 0.7866672, 1.53269594 },
1537  { false, 31.3851, 0.7866672, 1.53258024 },
1538  { false, 31.2897, 0.7866672, 1.53246383 },
1539  { false, 31.1943, 0.7866672, 1.53234672 },
1540  { false, 31.0989, 0.7866672, 1.53222889 },
1541  { false, 31.0036, 0.7866672, 1.53211046 },
1542  { false, 30.9082, 0.7866672, 1.53199117 },
1543  { false, 30.8128, 0.7866672, 1.53187114 },
1544  { false, 30.7174, 0.7866672, 1.53175038 },
1545  { false, 30.622, 0.7866672, 1.53162886 },
1546  { false, 30.5267, 0.7866672, 1.53150671 },
1547  { false, 30.4313, 0.7866672, 1.53138366 },
1548  { false, 30.3359, 0.7866672, 1.53125985 },
1549  { false, 30.2405, 0.7866672, 1.53113525 },
1550  { false, 30.1451, 0.7866672, 1.53100987 },
1551  { false, 30.0498, 0.7866672, 1.53088382 },
1552  { false, 29.9544, 0.7866672, 1.53075685 },
1553  { false, 29.859, 0.7866672, 1.53062905 },
1554  { false, 29.7636, 0.7866672, 1.53050045 },
1555  { false, 29.6682, 0.7866672, 1.53037102 },
1556  { false, 29.5729, 0.7866672, 1.53024089 },
1557  { false, 29.4775, 0.7866672, 1.53010978 },
1558  { false, 29.3821, 0.7866672, 1.52997782 },
1559  { false, 29.2867, 0.7866672, 1.529845 },
1560  { false, 29.1913, 0.7866672, 1.52971132 },
1561  { false, 29.096, 0.7866672, 1.5295769 },
1562  { false, 29.0006, 0.7866672, 1.52944147 },
1563  { false, 28.9052, 0.7866672, 1.52930513 },
1564  { false, 28.8098, 0.7866672, 1.5291679 },
1565  { false, 28.7144, 0.7866672, 1.52902975 },
1566  { false, 28.6191, 0.7866672, 1.52889084 },
1567  { false, 28.5237, 0.7866672, 1.52875084 },
1568  { false, 28.4283, 0.7866672, 1.52860991 },
1569  { false, 28.3329, 0.7866672, 1.52846804 },
1570  { false, 28.2375, 0.7866672, 1.5283252 },
1571  { false, 28.1422, 0.7866672, 1.52818155 },
1572  { false, 28.0468, 0.7866672, 1.52803677 },
1573  { false, 27.9514, 0.7866672, 1.52789102 },
1574  { false, 27.856, 0.7866672, 1.52774425 },
1575  { false, 27.7606, 0.7866672, 1.52759649 },
1576  { false, 27.6653, 0.7866672, 1.52744786 },
1577  { false, 27.5699, 0.7866672, 1.52729805 },
1578  { false, 27.4745, 0.7866672, 1.5271472 },
1579  { false, 27.3791, 0.7866672, 1.52699531 },
1580  { false, 27.2837, 0.7866672, 1.52684235 },
1581  { false, 27.1884, 0.7866672, 1.52668848 },
1582  { false, 27.093, 0.7866672, 1.52653337 },
1583  { false, 26.9976, 0.7866672, 1.52637717 },
1584  { false, 26.9022, 0.7866672, 1.52621986 },
1585  { false, 26.8068, 0.7866672, 1.52606143 },
1586  { false, 26.7115, 0.7866672, 1.52590204 },
1587  { false, 26.6161, 0.7866672, 1.52574135 },
1588  { false, 26.5207, 0.7866672, 1.52557949 },
1589  { false, 26.4253, 0.7866672, 1.52541648 },
1590  { false, 26.3299, 0.7866672, 1.52525228 },
1591  { false, 26.2346, 0.7866672, 1.52508707 },
1592  { false, 26.1392, 0.7866672, 1.52492048 },
1593  { false, 26.0438, 0.7866672, 1.52475266 },
1594  { false, 25.9484, 0.7866672, 1.52458363 },
1595  { false, 25.853, 0.7866672, 1.52441334 },
1596  { false, 25.7577, 0.7866672, 1.52424198 },
1597  { false, 25.6623, 0.7866672, 1.52406916 },
1598  { false, 25.5669, 0.7866672, 1.52389506 },
1599  { false, 25.4715, 0.7866672, 1.52371966 },
1600  { false, 25.3761, 0.7866672, 1.52354294 },
1601  { false, 25.2808, 0.7866672, 1.52336508 },
1602  { false, 25.1854, 0.7866672, 1.52318568 },
1603  { false, 25.09, 0.7866672, 1.52300492 },
1604  { false, 24.9946, 0.7866672, 1.52282279 },
1605  { false, 24.8992, 0.7866672, 1.52263927 },
1606  { false, 24.8039, 0.7866672, 1.52245453 },
1607  { false, 24.7085, 0.7866672, 1.52226818 },
1608  { false, 24.6131, 0.7866672, 1.52208038 },
1609  { false, 24.5177, 0.7866672, 1.52189112 },
1610  { false, 24.4223, 0.7866672, 1.52170039 },
1611  { false, 24.327, 0.7866672, 1.52150837 },
1612  { false, 24.2316, 0.7866672, 1.52131464 },
1613  { false, 24.1362, 0.7866672, 1.52111938 },
1614  { false, 24.0408, 0.7866672, 1.52092258 },
1615  { false, 23.9454, 0.7866672, 1.52072421 },
1616  { false, 23.8501, 0.7866672, 1.52052447 },
1617  { false, 23.7547, 0.7866672, 1.52032291 },
1618  { false, 23.6593, 0.7866672, 1.52011974 },
1619  { false, 23.5639, 0.7866672, 1.51991493 },
1620  { false, 23.4685, 0.7866672, 1.51970845 },
1621  { false, 23.3732, 0.7866672, 1.51950051 },
1622  { false, 23.2778, 0.7866672, 1.51929066 },
1623  { false, 23.1824, 0.7866672, 1.51907908 },
1624  { false, 23.087, 0.7866672, 1.51886575 },
1625  { false, 22.9916, 0.7866672, 1.51865067 },
1626  { false, 22.8963, 0.7866672, 1.51843402 },
1627  { false, 22.8009, 0.7866672, 1.51821534 },
1628  { false, 22.7055, 0.7866672, 1.51799482 },
1629  { false, 22.6101, 0.7866672, 1.51777245 },
1630  { false, 22.5147, 0.7866672, 1.5175482 },
1631  { false, 22.4194, 0.7866672, 1.51732228 },
1632  { false, 22.324, 0.7866672, 1.5170942 },
1633  { false, 22.2286, 0.7866672, 1.51686417 },
1634  { false, 22.1332, 0.7866672, 1.51663216 },
1635  { false, 22.0378, 0.7866672, 1.51639815 },
1636  { false, 21.9425, 0.7866672, 1.51616236 },
1637  { false, 21.8471, 0.7866672, 1.51592427 },
1638  { false, 21.7517, 0.7866672, 1.51568409 },
1639  { false, 21.6563, 0.7866672, 1.51544181 },
1640  { false, 21.5609, 0.7866672, 1.51519738 },
1641  { false, 21.4656, 0.7866672, 1.51495106 },
1642  { false, 21.3702, 0.7866672, 1.51470227 },
1643  { false, 21.2748, 0.7866672, 1.51445127 },
1644  { false, 21.1794, 0.7866672, 1.51419801 },
1645  { false, 21.084, 0.7866672, 1.51394247 },
1646  { false, 20.9887, 0.7866672, 1.51368488 },
1647  { false, 20.8933, 0.7866672, 1.51342468 },
1648  { false, 20.7979, 0.7866672, 1.51316209 },
1649  { false, 20.7025, 0.7866672, 1.5128971 },
1650  { false, 20.6071, 0.7866672, 1.51262966 },
1651  { false, 20.5118, 0.7866672, 1.51236002 },
1652  { false, 20.4164, 0.7866672, 1.51208759 },
1653  { false, 20.321, 0.7866672, 1.51181262 },
1654  { false, 20.2256, 0.7866672, 1.51153505 },
1655  { false, 20.1302, 0.7866672, 1.51125486 },
1656  { false, 20.0349, 0.7866672, 1.51097231 },
1657  { false, 19.9395, 0.7866672, 1.51068678 },
1658  { false, 19.8441, 0.7866672, 1.5103985 },
1659  { false, 19.7487, 0.7866672, 1.51010745 },
1660  { false, 19.6533, 0.7866672, 1.50981359 },
1661  { false, 19.558, 0.7866672, 1.50951718 },
1662  { false, 19.4626, 0.7866672, 1.50921757 },
1663  { false, 19.3672, 0.7866672, 1.50891501 },
1664  { false, 19.2718, 0.7866672, 1.50860947 },
1665  { false, 19.1764, 0.7866672, 1.5083009 },
1666  { false, 19.0736, 0.7866672, 1.50796495 },
1667  { false, 18.9782, 0.7866672, 1.50764995 },
1668  { false, 18.8828, 0.7866672, 1.50733177 },
1669  { false, 18.7874, 0.7866672, 1.50701038 },
1670  { false, 18.692, 0.7866672, 1.50668572 },
1671  { false, 18.5967, 0.7866672, 1.50635808 },
1672  { false, 18.5013, 0.7866672, 1.50602674 },
1673  { false, 18.4059, 0.7866672, 1.50569198 },
1674  { false, 18.3105, 0.7866672, 1.50535374 },
1675  { false, 18.2151, 0.7866672, 1.50501198 },
1676  { false, 18.1198, 0.7866672, 1.50466699 },
1677  { false, 18.0244, 0.7866672, 1.50431801 },
1678  { false, 17.929, 0.7866672, 1.50396533 },
1679  { false, 17.8336, 0.7866672, 1.50360889 },
1680  { false, 17.7382, 0.7866672, 1.50324864 },
1681  { false, 17.6429, 0.7866672, 1.50288489 },
1682  { false, 17.5475, 0.7866672, 1.50251683 },
1683  { false, 17.4521, 0.7866672, 1.50214475 },
1684  { false, 17.3567, 0.7866672, 1.50176861 },
1685  { false, 17.2613, 0.7866672, 1.50138832 },
1686  { false, 17.166, 0.7866672, 1.50100424 },
1687  { false, 17.0706, 0.7866672, 1.50061547 },
1688  { false, 16.9752, 0.7866672, 1.50022237 },
1689  { false, 16.8798, 0.7866672, 1.49982484 },
1690  { false, 16.7844, 0.7866672, 1.49942281 },
1691  { false, 16.6891, 0.7866672, 1.49901664 },
1692  { false, 16.5937, 0.7866672, 1.49860539 },
1693  { false, 16.4983, 0.7866672, 1.49818942 },
1694  { false, 16.4029, 0.7866672, 1.49776863 },
1695  { false, 16.3075, 0.7866672, 1.49734294 },
1696  { false, 16.2122, 0.7866672, 1.49691272 },
1697  { false, 16.1168, 0.7866672, 1.49647699 },
1698  { false, 16.0214, 0.7866672, 1.4960361 },
1699  { false, 15.926, 0.7866672, 1.49558995 },
1700  { false, 15.8306, 0.7866672, 1.49513846 },
1701  { false, 15.7353, 0.7866672, 1.494682 },
1702  { false, 15.6399, 0.7866672, 1.49421953 },
1703  { false, 15.5445, 0.7866672, 1.49375141 },
1704  { false, 15.4491, 0.7866672, 1.49327755 },
1705  { false, 15.3537, 0.7866672, 1.49279783 },
1706  { false, 15.2584, 0.7866672, 1.49231266 },
1707  { false, 15.163, 0.7866672, 1.49182092 },
1708  { false, 15.0676, 0.7866672, 1.49132298 },
1709  { false, 14.9722, 0.7866672, 1.49081875 },
1710  { false, 14.8768, 0.7866672, 1.49030808 },
1711  { false, 14.7815, 0.7866672, 1.48979141 },
1712  { false, 14.6861, 0.7866672, 1.48926753 },
1713  { false, 14.5907, 0.7866672, 1.48873684 },
1714  { false, 14.4953, 0.7866672, 1.48819922 },
1715  { false, 14.3999, 0.7866672, 1.48765452 },
1716  { false, 14.3046, 0.7866672, 1.48710319 },
1717  { false, 14.2092, 0.7866672, 1.48654392 },
1718  { false, 14.1138, 0.7866672, 1.48597715 },
1719  { false, 14.0184, 0.7866672, 1.48540272 },
1720  { false, 13.923, 0.7866672, 1.48482047 },
1721  { false, 13.8277, 0.7866672, 1.48423087 },
1722  { false, 13.7323, 0.7866672, 1.48363253 },
1723  { false, 13.6369, 0.7866672, 1.48302587 },
1724  { false, 13.5415, 0.7866672, 1.48241073 },
1725  { false, 13.4461, 0.7866672, 1.48178693 },
1726  { false, 13.3508, 0.7866672, 1.48115495 },
1727  { false, 13.2554, 0.7866672, 1.48051329 },
1728  { false, 13.16, 0.7866672, 1.4798624 },
1729  { false, 13.0646, 0.7866672, 1.47920207 },
1730  { false, 12.9692, 0.7866672, 1.47853212 },
1731  { false, 12.8739, 0.7866672, 1.47785304 },
1732  { false, 12.7785, 0.7866672, 1.47716319 },
1733  { false, 12.6831, 0.7866672, 1.47646305 },
1734  { false, 12.5877, 0.7866672, 1.4757524 },
1735  { false, 12.4923, 0.7866672, 1.47503098 },
1736  { false, 12.397, 0.7866672, 1.47429935 },
1737  { false, 12.3016, 0.7866672, 1.4735557 },
1738  { false, 12.2062, 0.7866672, 1.47280053 },
1739  { false, 12.1108, 0.7866672, 1.47203359 },
1740  { false, 12.0154, 0.7866672, 1.47125458 },
1741  { false, 11.9201, 0.7866672, 1.47046406 },
1742  { false, 11.8247, 0.7866672, 1.46966008 },
1743  { false, 11.7293, 0.7866672, 1.46884315 },
1744  { false, 11.6339, 0.7866672, 1.46801297 },
1745  { false, 11.5385, 0.7866672, 1.46716921 },
1746  { false, 0.0, 0.0, 0.0 },
1747  { false, 0.0, 0.0, 0.0 },
1748  { false, 0.0, 0.0, 0.0 },
1749  { false, 0.0, 0.0, 0.0 },
1750  { false, 0.0, 0.0, 0.0 },
1751  { false, 0.0, 0.0, 0.0 },
1752  { false, 0.0, 0.0, 0.0 },
1753  { false, 0.0, 0.0, 0.0 },
1754  { false, 0.0, 0.0, 0.0 },
1755  { false, 0.0, 0.0, 0.0 },
1756  { false, 0.0, 0.0, 0.0 },
1757  { false, 0.0, 0.0, 0.0 },
1758  { false, 0.0, 0.0, 0.0 },
1759  { false, 0.0, 0.0, 0.0 },
1760  { false, 0.0, 0.0, 0.0 },
1761  { false, 0.0, 0.0, 0.0 },
1762  { false, 0.0, 0.0, 0.0 },
1763  { false, 0.0, 0.0, 0.0 },
1764  { false, 0.0, 0.0, 0.0 },
1765  { false, 0.0, 0.0, 0.0 },
1766  { false, 0.0, 0.0, 0.0 },
1767  { false, 0.0, 0.0, 0.0 },
1768  { false, 0.0, 0.0, 0.0 },
1769  { false, 0.0, 0.0, 0.0 },
1770  { false, 0.0, 0.0, 0.0 },
1771  { false, 0.0, 0.0, 0.0 },
1772  { false, 0.0, 0.0, 0.0 },
1773  { false, 0.0, 0.0, 0.0 },
1774  { false, 0.0, 0.0, 0.0 },
1775  { false, 0.0, 0.0, 0.0 },
1776  { false, 0.0, 0.0, 0.0 },
1777  { false, 0.0, 0.0, 0.0 },
1778  { false, 0.0, 0.0, 0.0 },
1779  { false, 0.0, 0.0, 0.0 },
1780  { false, 0.0, 0.0, 0.0 },
1781  { false, 0.0, 0.0, 0.0 },
1782  { false, 0.0, 0.0, 0.0 },
1783  { false, 0.0, 0.0, 0.0 },
1784  { false, 0.0, 0.0, 0.0 },
1785  { false, 0.0, 0.0, 0.0 },
1786  { false, 0.0, 0.0, 0.0 },
1787  { false, 0.0, 0.0, 0.0 },
1788  { false, 0.0, 0.0, 0.0 },
1789  { false, 0.0, 0.0, 0.0 },
1790  { false, 0.0, 0.0, 0.0 },
1791  { false, 0.0, 0.0, 0.0 },
1792  { false, 0.0, 0.0, 0.0 },
1793  { false, 0.0, 0.0, 0.0 },
1794  { false, 0.0, 0.0, 0.0 },
1795  { false, 0.0, 0.0, 0.0 },
1796  { false, 0.0, 0.0, 0.0 },
1797  { false, 0.0, 0.0, 0.0 },
1798  { false, 0.0, 0.0, 0.0 },
1799  { false, 0.0, 0.0, 0.0 },
1800  { false, 0.0, 0.0, 0.0 },
1801  { false, 0.0, 0.0, 0.0 },
1802  { false, 0.0, 0.0, 0.0 },
1803  { false, 0.0, 0.0, 0.0 },
1804  { false, 0.0, 0.0, 0.0 },
1805  { false, 0.0, 0.0, 0.0 },
1806  { false, 0.0, 0.0, 0.0 },
1807  { false, 0.0, 0.0, 0.0 },
1808  { false, 0.0, 0.0, 0.0 },
1809  { false, 0.0, 0.0, 0.0 },
1810  { false, 0.0, 0.0, 0.0 },
1811  { false, 0.0, 0.0, 0.0 },
1812  { false, 0.0, 0.0, 0.0 },
1813  { false, 0.0, 0.0, 0.0 },
1814  { false, 0.0, 0.0, 0.0 },
1815  { false, 0.0, 0.0, 0.0 },
1816  { false, 0.0, 0.0, 0.0 },
1817  { false, 0.0, 0.0, 0.0 },
1818  { false, 0.0, 0.0, 0.0 },
1819  { false, 0.0, 0.0, 0.0 },
1820  { false, 0.0, 0.0, 0.0 },
1821  { false, 0.0, 0.0, 0.0 },
1822  { false, 0.0, 0.0, 0.0 },
1823  { false, 0.0, 0.0, 0.0 },
1824  { false, 0.0, 0.0, 0.0 },
1825  { false, 0.0, 0.0, 0.0 },
1826  { false, 0.0, 0.0, 0.0 },
1827  { false, 0.0, 0.0, 0.0 },
1828  { false, 0.0, 0.0, 0.0 },
1829  { false, 0.0, 0.0, 0.0 },
1830  { false, 0.0, 0.0, 0.0 },
1831  { false, 0.0, 0.0, 0.0 },
1832  { false, 0.0, 0.0, 0.0 },
1833  { false, 0.0, 0.0, 0.0 },
1834  { false, 0.0, 0.0, 0.0 },
1835  { false, 0.0, 0.0, 0.0 },
1836  { false, 0.0, 0.0, 0.0 },
1837  { false, 0.0, 0.0, 0.0 },
1838  { false, 0.0, 0.0, 0.0 },
1839  { false, 0.0, 0.0, 0.0 },
1840  { false, 0.0, 0.0, 0.0 },
1841  { false, 0.0, 0.0, 0.0 },
1842  { false, 0.0, 0.0, 0.0 },
1843  { false, 0.0, 0.0, 0.0 },
1844  { false, 0.0, 0.0, 0.0 },
1845  { false, 0.0, 0.0, 0.0 },
1846  { false, 0.0, 0.0, 0.0 },
1847  { false, 0.0, 0.0, 0.0 },
1848  { false, 0.0, 0.0, 0.0 },
1849  { false, 0.0, 0.0, 0.0 },
1850  { false, 0.0, 0.0, 0.0 },
1851  { false, 0.0, 0.0, 0.0 },
1852  { false, 0.0, 0.0, 0.0 },
1853  { false, 0.0, 0.0, 0.0 },
1854  { false, 0.0, 0.0, 0.0 },
1855  { false, 0.0, 0.0, 0.0 },
1856  { false, 0.0, 0.0, 0.0 },
1857  { false, 0.0, 0.0, 0.0 },
1858  { false, 0.0, 0.0, 0.0 },
1859  { false, 0.0, 0.0, 0.0 },
1860  { false, 0.0, 0.0, 0.0 },
1861  { false, 0.0, 0.0, 0.0 },
1862  { false, 0.0, 0.0, 0.0 },
1863  { false, 0.0, 0.0, 0.0 },
1864  { false, 0.0, 0.0, 0.0 },
1865  { false, 0.0, 0.0, 0.0 },
1866  { false, 38.1571, 0.03143857, 0.19153084 },
1867  { false, 38.0617, 0.03151732, 0.19847378 },
1868  { false, 37.9663, 0.03159646, 0.20559055 },
1869  { false, 37.8709, 0.031676, 0.21289241 },
1870  { false, 37.7755, 0.03175594, 0.2203927 },
1871  { false, 37.6802, 0.0318362, 0.2280974 },
1872  { false, 37.5848, 0.03191696, 0.23603912 },
1873  { false, 37.4894, 0.03199812, 0.24422818 },
1874  { false, 37.394, 0.0320797, 0.25268644 },
1875  { false, 37.2986, 0.0321617, 0.26143829 },
1876  { false, 37.2033, 0.03224402, 0.27050272 },
1877  { false, 37.1079, 0.03232686, 0.27993242 },
1878  { false, 37.0125, 0.03241013, 0.28975896 },
1879  { false, 36.9171, 0.03249382, 0.30003085 },
1880  { false, 36.8217, 0.03257795, 0.31080764 },
1881  { false, 36.7264, 0.03266242, 0.32215264 },
1882  { false, 36.631, 0.03274743, 0.33418531 },
1883  { false, 36.5356, 0.03283288, 0.34702006 },
1884  { false, 36.4402, 0.03291877, 0.36082815 },
1885  { false, 36.3448, 0.03300511, 0.37585491 },
1886  { false, 36.2495, 0.03309182, 0.39245105 },
1887  { false, 36.1541, 0.03317908, 0.41125997 },
1888  { false, 36.0587, 0.03326679, 0.43341014 },
1889  { false, 35.9633, 0.03335497, 0.46165336 },
1890  { false, 35.8679, 0.03344363, 0.50945919 },
1891  { false, 35.7726, 0.03353265, 0.78412913 },
1892  { false, 35.6772, 0.03362225, 0.78412913 },
1893  { false, 35.5818, 0.03371233, 0.78412913 },
1894  { false, 35.4864, 0.03380289, 0.78412913 },
1895  { false, 35.391, 0.03389394, 0.78412913 },
1896  { false, 35.2957, 0.03398539, 0.78412913 },
1897  { false, 35.2003, 0.03407742, 0.78412913 },
1898  { false, 35.1049, 0.03416996, 0.78412913 },
1899  { false, 35.0095, 0.034263, 0.78412913 },
1900  { false, 34.9141, 0.03435654, 0.78412913 },
1901  { false, 34.8188, 0.03445051, 0.78412913 },
1902  { false, 34.7234, 0.03454508, 0.78412913 },
1903  { false, 34.628, 0.03464018, 0.78412913 },
1904  { false, 34.5326, 0.0347358, 0.78412913 },
1905  { false, 34.4372, 0.03483194, 0.78412913 },
1906  { false, 34.3419, 0.03492853, 0.78412913 },
1907  { false, 34.2465, 0.03502575, 0.78412913 },
1908  { false, 34.1511, 0.03512351, 0.78412913 },
1909  { false, 34.0557, 0.03522182, 0.78412913 },
1910  { false, 33.9603, 0.03532068, 0.78412913 },
1911  { false, 33.865, 0.03542, 0.78412913 },
1912  { false, 33.7696, 0.03551997, 0.78412913 },
1913  { false, 33.6742, 0.03562052, 0.78412913 },
1914  { false, 33.5788, 0.03572163, 0.78412913 },
1915  { false, 33.4834, 0.03582332, 0.78412913 },
1916  { false, 33.3881, 0.03592548, 0.78412913 },
1917  { false, 33.2927, 0.03602834, 0.78412913 },
1918  { false, 33.1973, 0.03613179, 0.78412913 },
1919  { false, 33.1019, 0.03623583, 0.78412913 },
1920  { false, 33.0065, 0.03634047, 0.78412913 },
1921  { false, 32.9112, 0.03644561, 0.78412913 },
1922  { false, 32.8158, 0.03655147, 0.78412913 },
1923  { false, 32.7204, 0.03665794, 0.78412913 },
1924  { false, 32.625, 0.03676504, 0.78412913 },
1925  { false, 32.5296, 0.03687276, 0.78412913 },
1926  { false, 32.4343, 0.036981, 0.78412913 },
1927  { false, 32.3389, 0.03709, 0.78412913 },
1928  { false, 32.2435, 0.03719964, 0.78412913 },
1929  { false, 32.1481, 0.03730992, 0.78412913 },
1930  { false, 32.0527, 0.03742087, 0.78412913 },
1931  { false, 31.9574, 0.03753235, 0.78412913 },
1932  { false, 31.862, 0.03764463, 0.78412913 },
1933  { false, 31.7666, 0.03775757, 0.78412913 },
1934  { false, 31.6712, 0.0378712, 0.78412913 },
1935  { false, 31.5758, 0.03798551, 0.78412913 },
1936  { false, 31.4805, 0.03810039, 0.78412913 },
1937  { false, 31.3851, 0.03821609, 0.78412913 },
1938  { false, 31.2897, 0.03833249, 0.78412913 },
1939  { false, 31.1943, 0.03844961, 0.78412913 },
1940  { false, 31.0989, 0.03856744, 0.78412913 },
1941  { false, 31.0036, 0.03868587, 0.78412913 },
1942  { false, 30.9082, 0.03880516, 0.78412913 },
1943  { false, 30.8128, 0.03892518, 0.78412913 },
1944  { false, 30.7174, 0.03904595, 0.78412913 },
1945  { false, 30.622, 0.03916747, 0.78412913 },
1946  { false, 30.5267, 0.03928962, 0.78412913 },
1947  { false, 30.4313, 0.03941267, 0.78412913 },
1948  { false, 30.3359, 0.03953648, 0.78412913 },
1949  { false, 30.2405, 0.03966107, 0.78412913 },
1950  { false, 30.1451, 0.03978646, 0.78412913 },
1951  { false, 30.0498, 0.0399125, 0.78412913 },
1952  { false, 29.9544, 0.04003948, 0.78412913 },
1953  { false, 29.859, 0.04016727, 0.78412913 },
1954  { false, 29.7636, 0.04029588, 0.78412913 },
1955  { false, 29.6682, 0.04042531, 0.78412913 },
1956  { false, 29.5729, 0.04055544, 0.78412913 },
1957  { false, 29.4775, 0.04068655, 0.78412913 },
1958  { false, 29.3821, 0.04081851, 0.78412913 },
1959  { false, 29.2867, 0.04095132, 0.78412913 },
1960  { false, 29.1913, 0.04108501, 0.78412913 },
1961  { false, 29.096, 0.04121942, 0.78412913 },
1962  { false, 29.0006, 0.04135486, 0.78412913 },
1963  { false, 28.9052, 0.0414912, 0.78412913 },
1964  { false, 28.8098, 0.04162843, 0.78412913 },
1965  { false, 28.7144, 0.04176657, 0.78412913 },
1966  { false, 28.6191, 0.04190549, 0.78412913 },
1967  { false, 28.5237, 0.04204548, 0.78412913 },
1968  { false, 28.4283, 0.04218642, 0.78412913 },
1969  { false, 28.3329, 0.04232829, 0.78412913 },
1970  { false, 28.2375, 0.04247113, 0.78412913 },
1971  { false, 28.1422, 0.04261477, 0.78412913 },
1972  { false, 28.0468, 0.04275955, 0.78412913 },
1973  { false, 27.9514, 0.04290531, 0.78412913 },
1974  { false, 27.856, 0.04305207, 0.78412913 },
1975  { false, 27.7606, 0.04319984, 0.78412913 },
1976  { false, 27.6653, 0.04334846, 0.78412913 },
1977  { false, 27.5699, 0.04349827, 0.78412913 },
1978  { false, 27.4745, 0.04364912, 0.78412913 },
1979  { false, 27.3791, 0.04380102, 0.78412913 },
1980  { false, 27.2837, 0.04395398, 0.78412913 },
1981  { false, 27.1884, 0.04410784, 0.78412913 },
1982  { false, 27.093, 0.04426296, 0.78412913 },
1983  { false, 26.9976, 0.04441916, 0.78412913 },
1984  { false, 26.9022, 0.04457647, 0.78412913 },
1985  { false, 26.8068, 0.0447349, 0.78412913 },
1986  { false, 26.7115, 0.04489429, 0.78412913 },
1987  { false, 26.6161, 0.04505498, 0.78412913 },
1988  { false, 26.5207, 0.04521683, 0.78412913 },
1989  { false, 26.4253, 0.04537985, 0.78412913 },
1990  { false, 26.3299, 0.04554404, 0.78412913 },
1991  { false, 26.2346, 0.04570926, 0.78412913 },
1992  { false, 26.1392, 0.04587585, 0.78412913 },
1993  { false, 26.0438, 0.04604366, 0.78412913 },
1994  { false, 25.9484, 0.0462127, 0.78412913 },
1995  { false, 25.853, 0.04638299, 0.78412913 },
1996  { false, 25.7577, 0.04655435, 0.78412913 },
1997  { false, 25.6623, 0.04672717, 0.78412913 },
1998  { false, 25.5669, 0.04690126, 0.78412913 },
1999  { false, 25.4715, 0.04707667, 0.78412913 },
2000  { false, 25.3761, 0.04725339, 0.78412913 },
2001  { false, 25.2808, 0.04743125, 0.78412913 },
2002  { false, 25.1854, 0.04761064, 0.78412913 },
2003  { false, 25.09, 0.0477914, 0.78412913 },
2004  { false, 24.9946, 0.04797353, 0.78412913 },
2005  { false, 24.8992, 0.04815706, 0.78412913 },
2006  { false, 24.8039, 0.0483418, 0.78412913 },
2007  { false, 24.7085, 0.04852815, 0.78412913 },
2008  { false, 24.6131, 0.04871595, 0.78412913 },
2009  { false, 24.5177, 0.04890521, 0.78412913 },
2010  { false, 24.4223, 0.04909593, 0.78412913 },
2011  { false, 24.327, 0.04928796, 0.78412913 },
2012  { false, 24.2316, 0.04948169, 0.78412913 },
2013  { false, 24.1362, 0.04967695, 0.78412913 },
2014  { false, 24.0408, 0.04987375, 0.78412913 },
2015  { false, 23.9454, 0.05007212, 0.78412913 },
2016  { false, 23.8501, 0.05027186, 0.78412913 },
2017  { false, 23.7547, 0.05047341, 0.78412913 },
2018  { false, 23.6593, 0.05067659, 0.78412913 },
2019  { false, 23.5639, 0.0508814, 0.78412913 },
2020  { false, 23.4685, 0.05108788, 0.78412913 },
2021  { false, 23.3732, 0.05129581, 0.78412913 },
2022  { false, 23.2778, 0.05150567, 0.78412913 },
2023  { false, 23.1824, 0.05171725, 0.78412913 },
2024  { false, 23.087, 0.05193057, 0.78412913 },
2025  { false, 22.9916, 0.05214566, 0.78412913 },
2026  { false, 22.8963, 0.05236231, 0.78412913 },
2027  { false, 22.8009, 0.05258099, 0.78412913 },
2028  { false, 22.7055, 0.05280151, 0.78412913 },
2029  { false, 22.6101, 0.05302388, 0.78412913 },
2030  { false, 22.5147, 0.05324813, 0.78412913 },
2031  { false, 22.4194, 0.05347404, 0.78412913 },
2032  { false, 22.324, 0.05370212, 0.78412913 },
2033  { false, 22.2286, 0.05393216, 0.78412913 },
2034  { false, 22.1332, 0.05416416, 0.78412913 },
2035  { false, 22.0378, 0.05439817, 0.78412913 },
2036  { false, 21.9425, 0.05463397, 0.78412913 },
2037  { false, 21.8471, 0.05487206, 0.78412913 },
2038  { false, 21.7517, 0.05511224, 0.78412913 },
2039  { false, 21.6563, 0.05535452, 0.78412913 },
2040  { false, 21.5609, 0.05559894, 0.78412913 },
2041  { false, 21.4656, 0.05584527, 0.78412913 },
2042  { false, 21.3702, 0.05609405, 0.78412913 },
2043  { false, 21.2748, 0.05634506, 0.78412913 },
2044  { false, 21.1794, 0.05659831, 0.78412913 },
2045  { false, 21.084, 0.05685386, 0.78412913 },
2046  { false, 20.9887, 0.05711145, 0.78412913 },
2047  { false, 20.8933, 0.05737165, 0.78412913 },
2048  { false, 20.7979, 0.05763423, 0.78412913 },
2049  { false, 20.7025, 0.05789923, 0.78412913 },
2050  { false, 20.6071, 0.05816667, 0.78412913 },
2051  { false, 20.5118, 0.0584363, 0.78412913 },
2052  { false, 20.4164, 0.05870873, 0.78412913 },
2053  { false, 20.321, 0.05898371, 0.78412913 },
2054  { false, 20.2256, 0.05926128, 0.78412913 },
2055  { false, 20.1302, 0.05954146, 0.78412913 },
2056  { false, 20.0349, 0.05982401, 0.78412913 },
2057  { false, 19.9395, 0.06010955, 0.78412913 },
2058  { false, 19.8441, 0.06039783, 0.78412913 },
2059  { false, 19.7487, 0.06068887, 0.78412913 },
2060  { false, 19.6533, 0.06098274, 0.78412913 },
2061  { false, 19.558, 0.06127915, 0.78412913 },
2062  { false, 19.4626, 0.06157876, 0.78412913 },
2063  { false, 19.3672, 0.06188132, 0.78412913 },
2064  { false, 19.2718, 0.06218686, 0.78412913 },
2065  { false, 19.1764, 0.06249543, 0.78412913 },
2066  { false, 19.0736, 0.06283138, 0.78412913 },
2067  { false, 18.9782, 0.06314638, 0.78412913 },
2068  { false, 18.8828, 0.06346455, 0.78412913 },
2069  { false, 18.7874, 0.06378595, 0.78412913 },
2070  { false, 18.692, 0.06411061, 0.78412913 },
2071  { false, 18.5967, 0.06443824, 0.78412913 },
2072  { false, 18.5013, 0.06476958, 0.78412913 },
2073  { false, 18.4059, 0.06510434, 0.78412913 },
2074  { false, 18.3105, 0.06544258, 0.78412913 },
2075  { false, 18.2151, 0.06578435, 0.78412913 },
2076  { false, 18.1198, 0.06612933, 0.78412913 },
2077  { false, 18.0244, 0.06647831, 0.78412913 },
2078  { false, 17.929, 0.066831, 0.78412913 },
2079  { false, 17.8336, 0.06718743, 0.78412913 },
2080  { false, 17.7382, 0.06754768, 0.78412913 },
2081  { false, 17.6429, 0.06791143, 0.78412913 },
2082  { false, 17.5475, 0.0682795, 0.78412913 },
2083  { false, 17.4521, 0.06865158, 0.78412913 },
2084  { false, 17.3567, 0.06902772, 0.78412913 },
2085  { false, 17.2613, 0.069408, 0.78412913 },
2086  { false, 17.166, 0.06979209, 0.78412913 },
2087  { false, 17.0706, 0.07018085, 0.78412913 },
2088  { false, 16.9752, 0.07057396, 0.78412913 },
2089  { false, 16.8798, 0.07097149, 0.78412913 },
2090  { false, 16.7844, 0.07137352, 0.78412913 },
2091  { false, 16.6891, 0.07177968, 0.78412913 },
2092  { false, 16.5937, 0.07219093, 0.78412913 },
2093  { false, 16.4983, 0.07260691, 0.78412913 },
2094  { false, 16.4029, 0.07302769, 0.78412913 },
2095  { false, 16.3075, 0.07345339, 0.78412913 },
2096  { false, 16.2122, 0.0738836, 0.78412913 },
2097  { false, 16.1168, 0.07431933, 0.78412913 },
2098  { false, 16.0214, 0.07476023, 0.78412913 },
2099  { false, 15.926, 0.07520638, 0.78412913 },
2100  { false, 15.8306, 0.07565787, 0.78412913 },
2101  { false, 15.7353, 0.07611433, 0.78412913 },
2102  { false, 15.6399, 0.0765768, 0.78412913 },
2103  { false, 15.5445, 0.07704491, 0.78412913 },
2104  { false, 15.4491, 0.07751878, 0.78412913 },
2105  { false, 15.3537, 0.07799849, 0.78412913 },
2106  { false, 15.2584, 0.07848366, 0.78412913 },
2107  { false, 15.163, 0.07897541, 0.78412913 },
2108  { false, 15.0676, 0.07947334, 0.78412913 },
2109  { false, 14.9722, 0.07997758, 0.78412913 },
2110  { false, 14.8768, 0.08048824, 0.78412913 },
2111  { false, 14.7815, 0.08100491, 0.78412913 },
2112  { false, 14.6861, 0.0815288, 0.78412913 },
2113  { false, 14.5907, 0.08205948, 0.78412913 },
2114  { false, 14.4953, 0.08259711, 0.78412913 },
2115  { false, 14.3999, 0.08314181, 0.78412913 },
2116  { false, 14.3046, 0.08369314, 0.78412913 },
2117  { false, 14.2092, 0.08425241, 0.78412913 },
2118  { false, 14.1138, 0.08481918, 0.78412913 },
2119  { false, 14.0184, 0.0853936, 0.78412913 },
2120  { false, 13.923, 0.08597586, 0.78412913 },
2121  { false, 13.8277, 0.08656545, 0.78412913 },
2122  { false, 13.7323, 0.0871638, 0.78412913 },
2123  { false, 13.6369, 0.08777046, 0.78412913 },
2124  { false, 13.5415, 0.0883856, 0.78412913 },
2125  { false, 13.4461, 0.0890094, 0.78412913 },
2126  { false, 13.3508, 0.08964138, 0.78412913 },
2127  { false, 13.2554, 0.09028304, 0.78412913 },
2128  { false, 13.16, 0.09093393, 0.78412913 },
2129  { false, 13.0646, 0.09159426, 0.78412913 },
2130  { false, 12.9692, 0.09226421, 0.78412913 },
2131  { false, 12.8739, 0.09294329, 0.78412913 },
2132  { false, 12.7785, 0.09363314, 0.78412913 },
2133  { false, 12.6831, 0.09433328, 0.78412913 },
2134  { false, 12.5877, 0.09504393, 0.78412913 },
2135  { false, 12.4923, 0.09576534, 0.78412913 },
2136  { false, 12.397, 0.09649698, 0.78412913 },
2137  { false, 12.3016, 0.09724063, 0.78412913 },
2138  { false, 12.2062, 0.0979958, 0.78412913 },
2139  { false, 12.1108, 0.09876274, 0.78412913 },
2140  { false, 12.0154, 0.09954175, 0.78412913 },
2141  { false, 11.9201, 0.10033227, 0.78412913 },
2142  { false, 11.8247, 0.10113625, 0.78412913 },
2143  { false, 11.7293, 0.10195317, 0.78412913 },
2144  { false, 11.6339, 0.10278336, 0.78412913 },
2145  { false, 11.5385, 0.10362712, 0.78412913 },
2146  { false, 0.0, 0.0, 0.0 },
2147  { false, 0.0, 0.0, 0.0 },
2148  { false, 0.0, 0.0, 0.0 },
2149  { false, 0.0, 0.0, 0.0 },
2150  { false, 0.0, 0.0, 0.0 },
2151  { false, 0.0, 0.0, 0.0 },
2152  { false, 0.0, 0.0, 0.0 },
2153  { false, 0.0, 0.0, 0.0 },
2154  { false, 0.0, 0.0, 0.0 },
2155  { false, 0.0, 0.0, 0.0 },
2156  { false, 0.0, 0.0, 0.0 },
2157  { false, 0.0, 0.0, 0.0 },
2158  { false, 0.0, 0.0, 0.0 },
2159  { false, 0.0, 0.0, 0.0 },
2160  { false, 0.0, 0.0, 0.0 },
2161  { false, 0.0, 0.0, 0.0 },
2162  { false, 0.0, 0.0, 0.0 },
2163  { false, 0.0, 0.0, 0.0 },
2164  { false, 0.0, 0.0, 0.0 },
2165  { false, 0.0, 0.0, 0.0 },
2166  { false, 0.0, 0.0, 0.0 },
2167  { false, 0.0, 0.0, 0.0 },
2168  { false, 0.0, 0.0, 0.0 },
2169  { false, 0.0, 0.0, 0.0 },
2170  { false, 0.0, 0.0, 0.0 },
2171  { false, 0.0, 0.0, 0.0 },
2172  { false, 0.0, 0.0, 0.0 },
2173  { false, 0.0, 0.0, 0.0 },
2174  { false, 0.0, 0.0, 0.0 },
2175  { false, 0.0, 0.0, 0.0 },
2176  { false, 0.0, 0.0, 0.0 },
2177  { false, 0.0, 0.0, 0.0 },
2178  { false, 0.0, 0.0, 0.0 },
2179  { false, 0.0, 0.0, 0.0 },
2180  { false, 0.0, 0.0, 0.0 },
2181  { false, 0.0, 0.0, 0.0 },
2182  { false, 0.0, 0.0, 0.0 },
2183  { false, 0.0, 0.0, 0.0 },
2184  { false, 0.0, 0.0, 0.0 },
2185  { false, 0.0, 0.0, 0.0 },
2186  { true, 1.53841996, 37.0706, 38.25 },
2187  { true, 1.53632998, 34.8235, 38.25 },
2188  { true, 1.53422999, 32.8244, 38.25 },
2189  { true, 1.53214002, 31.0505, 38.25 },
2190  { true, 1.53004003, 29.4515, 38.25 },
2191  { true, 1.52795005, 28.0157, 38.25 },
2192  { true, 1.52585006, 26.7075, 38.25 },
2193  { true, 1.52375996, 25.5216, 38.25 },
2194  { true, 1.52165997, 24.4317, 38.25 },
2195  { true, 1.51956999, 23.4357, 38.25 },
2196  { true, 1.51748002, 22.5179, 38.25 },
2197  { true, 1.51538002, 21.6654, 38.25 },
2198  { true, 1.51329005, 20.8788, 38.25 },
2199  { true, 1.51119006, 20.144, 38.25 },
2200  { true, 1.50909996, 19.4624, 38.25 },
2201  { true, 1.50699997, 19.125, 38.25 },
2202  { true, 1.50490999, 18.2264, 38.25 },
2203  { true, 1.50281, 19.125, 38.25 },
2204  { true, 1.50072002, 17.1382, 38.25 },
2205  { true, 1.49862003, 19.125, 38.25 },
2206  { true, 1.49653006, 16.1729, 38.25 },
2207  { true, 1.49442995, 19.125, 38.25 },
2208  { true, 1.49233997, 15.3108, 38.25 },
2209  { true, 1.49023998, 19.125, 38.25 },
2210  { true, 1.48815, 14.5362, 38.25 },
2211  { true, 1.48606002, 19.125, 38.25 },
2212  { true, 1.48396003, 13.8365, 38.25 },
2213  { true, 1.48187006, 19.125, 38.25 },
2214  { true, 1.47976995, 13.2012, 38.25 },
2215  { true, 1.47767997, 19.125, 38.25 },
2216  { true, 1.47557998, 12.6219, 38.25 },
2217  { true, 1.47349, 19.125, 38.25 },
2218  { true, 1.47139001, 12.0916, 38.25 },
2219  { true, 1.46930003, 19.125, 38.25 },
2220  { true, 1.46720004, 11.6042, 38.25 },
2221  { true, 1.46510994, 19.125, 38.25 },
2222  { true, 1.46300995, 11.5, 38.25 },
2223  { true, 1.46091998, 19.125, 38.25 },
2224  { true, 1.45883, 11.5, 38.25 },
2225  { true, 1.45673001, 19.125, 38.25 },
2226  { true, 1.45464003, 11.5, 38.25 },
2227  { true, 1.45254004, 19.125, 38.25 },
2228  { true, 1.45044994, 11.5, 38.25 },
2229  { true, 1.44834995, 19.125, 38.25 },
2230  { true, 1.44625998, 11.5, 38.25 },
2231  { true, 1.44415998, 19.125, 38.25 },
2232  { true, 1.44207001, 11.5, 38.25 },
2233  { true, 1.43997002, 19.125, 38.25 },
2234  { true, 1.43788004, 11.5, 38.25 },
2235  { true, 1.43578005, 19.125, 38.25 },
2236  { true, 1.43368995, 11.5, 38.25 },
2237  { true, 1.43158996, 19.125, 38.25 },
2238  { true, 1.42949998, 11.5, 38.25 },
2239  { true, 1.42741001, 19.125, 38.25 },
2240  { true, 1.42531002, 11.5, 38.25 },
2241  { true, 1.42322004, 19.125, 38.25 },
2242  { true, 1.42112005, 11.5, 38.25 },
2243  { true, 1.41902995, 19.125, 38.25 },
2244  { true, 1.41692996, 11.5, 38.25 },
2245  { true, 1.41483998, 19.125, 38.25 },
2246  { true, 1.41273999, 11.5, 38.25 },
2247  { true, 1.41065001, 19.125, 38.25 },
2248  { true, 1.40855002, 11.5, 38.25 },
2249  { true, 1.40646005, 19.125, 38.25 },
2250  { true, 1.40436006, 11.5, 38.25 },
2251  { true, 1.40226996, 19.125, 38.25 },
2252  { true, 1.40017998, 11.5, 38.25 },
2253  { true, 1.39807999, 19.125, 38.25 },
2254  { true, 1.39599001, 11.5, 38.25 },
2255  { true, 1.39389002, 19.125, 38.25 },
2256  { true, 1.39180005, 11.5, 38.25 },
2257  { true, 1.38970006, 19.125, 38.25 },
2258  { true, 1.38760996, 11.5, 38.25 },
2259  { true, 1.38550997, 19.125, 38.25 },
2260  { true, 1.38341999, 11.5, 38.25 },
2261  { true, 1.38132, 19.125, 38.25 },
2262  { true, 1.37923002, 11.5, 38.25 },
2263  { true, 1.37713003, 19.125, 38.25 },
2264  { true, 1.37504005, 11.5, 38.25 },
2265  { true, 1.37293994, 19.125, 38.25 },
2266  { true, 1.37084997, 11.5, 38.25 },
2267  { true, 1.36875999, 19.125, 38.25 },
2268  { true, 1.36666, 11.5, 38.25 },
2269  { true, 1.36457002, 19.125, 38.25 },
2270  { true, 1.36247003, 11.5, 38.25 },
2271  { true, 1.36038005, 19.125, 38.25 },
2272  { true, 1.35827994, 11.5, 38.25 },
2273  { true, 1.35618997, 19.125, 38.25 },
2274  { true, 1.35408998, 11.5, 38.25 },
2275  { true, 1.352, 19.125, 38.25 },
2276  { true, 1.34990001, 11.5, 38.25 },
2277  { true, 1.34781003, 19.125, 38.25 },
2278  { true, 1.34571004, 11.5, 38.25 },
2279  { true, 1.34361994, 19.125, 38.25 },
2280  { true, 1.34152997, 11.5, 38.25 },
2281  { true, 1.33942997, 19.125, 38.25 },
2282  { true, 1.33734, 11.5, 38.25 },
2283  { true, 1.33524001, 19.125, 38.25 },
2284  { true, 1.33315003, 11.5, 38.25 },
2285  { true, 1.33105004, 19.125, 38.25 },
2286  { true, 1.32895994, 11.5, 38.25 },
2287  { true, 1.32685995, 19.125, 38.25 },
2288  { true, 1.32476997, 11.5, 38.25 },
2289  { true, 1.32266998, 19.125, 38.25 },
2290  { true, 1.32058001, 11.5, 38.25 },
2291  { true, 1.31848001, 19.125, 38.25 },
2292  { true, 1.31639004, 11.5, 38.25 },
2293  { true, 1.31429005, 19.125, 38.25 },
2294  { true, 1.31219995, 11.5, 38.25 },
2295  { true, 1.31010997, 19.125, 38.25 },
2296  { true, 1.30800998, 11.5, 38.25 },
2297  { true, 1.30592, 19.125, 38.25 },
2298  { true, 1.30382001, 11.5, 38.25 },
2299  { true, 1.30173004, 19.125, 38.25 },
2300  { true, 1.29963005, 11.5, 38.25 },
2301  { true, 1.29753995, 19.125, 38.25 },
2302  { true, 1.29543996, 11.5, 38.25 },
2303  { true, 1.29334998, 19.125, 38.25 },
2304  { true, 1.29124999, 11.5, 38.25 },
2305  { true, 1.28916001, 19.125, 38.25 },
2306  { true, 1.28706002, 11.5, 38.25 },
2307  { true, 1.28497005, 19.125, 38.25 },
2308  { true, 1.28287995, 11.5, 38.25 },
2309  { true, 1.28077996, 19.125, 38.25 },
2310  { true, 1.27868998, 11.5, 38.25 },
2311  { true, 1.27658999, 19.125, 38.25 },
2312  { true, 1.27450001, 11.5, 38.25 },
2313  { true, 1.27240002, 19.125, 38.25 },
2314  { true, 1.27031004, 11.5, 38.25 },
2315  { true, 1.26821005, 19.125, 38.25 },
2316  { true, 1.26611996, 11.5, 38.25 },
2317  { true, 1.26401997, 19.125, 38.25 },
2318  { true, 1.26192999, 11.5, 38.25 },
2319  { true, 1.25983, 19.125, 38.25 },
2320  { true, 1.25774002, 11.5, 38.25 },
2321  { true, 1.25565004, 19.125, 38.25 },
2322  { true, 1.25355005, 11.5, 38.25 },
2323  { true, 1.25145996, 19.125, 38.25 },
2324  { true, 1.24935997, 11.5, 38.25 },
2325  { true, 1.24726999, 19.125, 38.25 },
2326  { true, 1.24517, 11.5, 38.25 },
2327  { true, 1.24308002, 19.125, 38.25 },
2328  { true, 1.24098003, 11.5, 38.25 },
2329  { true, 1.23889005, 19.125, 38.25 },
2330  { true, 1.23678994, 11.5, 38.25 },
2331  { true, 1.23469996, 19.125, 38.25 },
2332  { true, 1.23259997, 11.5, 38.25 },
2333  { true, 1.23051, 19.125, 38.25 },
2334  { true, 1.22841001, 11.5, 38.25 },
2335  { true, 1.22632003, 19.125, 38.25 },
2336  { true, 1.22423005, 11.5, 38.25 },
2337  { true, 1.22212994, 19.125, 38.25 },
2338  { true, 1.22003996, 11.5, 38.25 },
2339  { true, 1.21793997, 19.125, 38.25 },
2340  { true, 1.21585, 11.5, 38.25 },
2341  { true, 1.21375, 19.125, 38.25 },
2342  { true, 1.21166003, 11.5, 38.25 },
2343  { true, 1.20956004, 19.125, 38.25 },
2344  { true, 1.20747006, 11.5, 38.25 },
2345  { true, 1.20536995, 19.125, 38.25 },
2346  { true, 1.20327997, 11.5, 38.25 },
2347  { true, 1.20117998, 19.125, 38.25 },
2348  { true, 1.19909, 11.5, 38.25 },
2349  { true, 1.19700003, 19.125, 38.25 },
2350  { true, 1.19490004, 11.5, 38.25 },
2351  { true, 1.19281006, 19.125, 38.25 },
2352  { true, 1.19070995, 11.5, 38.25 },
2353  { true, 1.18861997, 19.125, 38.25 },
2354  { true, 1.18651998, 11.5, 38.25 },
2355  { true, 1.18443, 19.125, 38.25 },
2356  { true, 1.18233001, 11.5, 38.25 },
2357  { true, 1.18024004, 19.125, 38.25 },
2358  { true, 1.17814004, 11.5, 38.25 },
2359  { true, 1.17604995, 19.125, 38.25 },
2360  { true, 1.17394996, 11.5, 38.25 },
2361  { true, 1.17185998, 19.125, 38.25 },
2362  { true, 1.16975999, 11.5, 38.25 },
2363  { true, 1.16767001, 19.125, 38.25 },
2364  { true, 1.16558003, 11.5, 38.25 },
2365  { true, 1.16348004, 19.125, 38.25 },
2366  { true, 1.16138995, 11.5, 38.25 },
2367  { true, 1.15928996, 19.125, 38.25 },
2368  { true, 1.15719998, 11.5, 38.25 },
2369  { true, 1.15509999, 19.125, 38.25 },
2370  { true, 1.15301001, 11.5, 38.25 },
2371  { true, 1.15091002, 19.125, 38.25 },
2372  { true, 1.14882004, 11.5, 38.25 },
2373  { true, 1.14672005, 19.125, 38.25 },
2374  { true, 1.14462996, 11.5, 38.25 },
2375  { true, 1.14252996, 19.125, 38.25 },
2376  { true, 1.14043999, 11.5, 38.25 },
2377  { true, 1.13835001, 19.125, 38.25 },
2378  { true, 1.13625002, 11.5, 38.25 },
2379  { true, 1.13416004, 19.125, 38.25 },
2380  { true, 1.13206005, 11.5, 38.25 },
2381  { true, 1.12996995, 19.125, 38.25 },
2382  { true, 1.12786996, 11.5, 38.25 },
2383  { true, 1.12577999, 19.125, 38.25 },
2384  { true, 1.12368, 11.5, 38.25 },
2385  { true, 1.12159002, 19.125, 38.25 },
2386  { true, 1.11949003, 11.5, 38.25 },
2387  { true, 1.11740005, 19.125, 38.25 },
2388  { true, 1.11530006, 11.5, 38.25 },
2389  { true, 1.11320996, 19.125, 38.25 },
2390  { true, 1.11110997, 11.5, 38.25 },
2391  { true, 1.10901999, 19.125, 38.25 },
2392  { true, 1.10693002, 11.5, 38.25 },
2393  { true, 1.10483003, 19.125, 38.25 },
2394  { true, 1.10274005, 11.5, 38.25 },
2395  { true, 1.10064006, 19.125, 38.25 },
2396  { true, 1.09854996, 11.5, 38.25 },
2397  { true, 1.09644997, 19.125, 38.25 },
2398  { true, 1.09435999, 11.5, 38.25 },
2399  { true, 1.09226, 19.125, 38.25 },
2400  { true, 1.09017003, 11.5, 38.25 },
2401  { true, 1.08807003, 19.125, 38.25 },
2402  { true, 1.08598006, 11.5, 38.25 },
2403  { true, 1.08387995, 19.125, 38.25 },
2404  { true, 1.08178997, 11.5, 38.25 },
2405  { true, 1.07969999, 19.125, 38.25 },
2406  { true, 1.0776, 11.5, 38.25 },
2407  { true, 1.07551003, 19.125, 38.25 },
2408  { true, 1.07341003, 11.5, 38.25 },
2409  { true, 1.07132006, 19.125, 38.25 },
2410  { true, 1.06921995, 11.5, 38.25 },
2411  { true, 1.06712997, 19.125, 38.25 },
2412  { true, 1.06502998, 11.5, 38.25 },
2413  { true, 1.06294, 19.125, 38.25 },
2414  { true, 1.06084001, 11.5, 38.25 },
2415  { true, 1.05875003, 19.125, 38.25 },
2416  { true, 1.05665004, 11.5, 38.25 },
2417  { true, 1.05455995, 19.125, 38.25 },
2418  { true, 1.05245996, 11.5, 38.25 },
2419  { true, 1.05036998, 19.125, 38.25 },
2420  { true, 1.04828, 11.5, 38.25 },
2421  { true, 1.04618001, 19.125, 38.25 },
2422  { true, 1.04409003, 11.5, 38.25 },
2423  { true, 1.04199004, 19.125, 38.25 },
2424  { true, 1.03989995, 11.5, 38.25 },
2425  { true, 1.03779995, 19.125, 38.25 },
2426  { true, 1.03570998, 11.5, 38.25 },
2427  { true, 1.03360999, 19.125, 38.25 },
2428  { true, 1.03152001, 11.5, 38.25 },
2429  { true, 1.02942002, 19.125, 38.25 },
2430  { true, 1.02733004, 11.5, 38.25 },
2431  { true, 1.02523005, 19.125, 38.25 },
2432  { true, 1.02313995, 11.5, 38.25 },
2433  { true, 1.02104998, 19.125, 38.25 },
2434  { true, 1.01894999, 11.5, 38.25 },
2435  { true, 1.01686001, 19.125, 38.25 },
2436  { true, 1.01476002, 11.5, 38.25 },
2437  { true, 1.01267004, 19.125, 38.25 },
2438  { true, 1.01057005, 11.5, 38.25 },
2439  { true, 1.00847995, 19.125, 38.25 },
2440  { true, 1.00637996, 11.5, 38.25 },
2441  { true, 1.00428998, 19.125, 38.25 },
2442  { true, 1.00218999, 11.5, 38.25 },
2443  { true, 1.00010002, 19.125, 38.25 },
2444  { true, 0.99800402, 11.5, 38.25 },
2445  { true, 0.99590999, 19.125, 38.25 },
2446  { true, 0.993815, 11.5, 38.25 },
2447  { true, 0.99172002, 19.125, 38.25 },
2448  { true, 0.98962599, 11.5, 38.25 },
2449  { true, 0.98753101, 19.125, 38.25 },
2450  { true, 0.98543602, 11.5, 38.25 },
2451  { true, 0.98334199, 19.125, 38.25 },
2452  { true, 0.98124701, 11.5, 38.25 },
2453  { true, 0.97915202, 19.125, 38.25 },
2454  { true, 0.97705799, 11.5, 38.25 },
2455  { true, 0.97496301, 19.125, 38.25 },
2456  { true, 0.97286898, 11.5, 38.25 },
2457  { true, 0.97077399, 19.125, 38.25 },
2458  { true, 0.96867901, 11.5, 38.25 },
2459  { true, 0.96658498, 19.125, 38.25 },
2460  { true, 0.96449, 11.5, 38.25 },
2461  { true, 0.96239501, 19.125, 38.25 },
2462  { true, 0.96030098, 11.5, 38.25 },
2463  { true, 0.958206, 19.125, 38.25 },
2464  { true, 0.95611101, 11.5, 38.25 },
2465  { true, 0.95401698, 19.125, 38.25 },
2466  { true, 0.951922, 11.5, 38.25 },
2467  { true, 0.94982702, 19.125, 38.25 },
2468  { true, 0.94773299, 11.5, 38.25 },
2469  { true, 0.945638, 19.125, 38.25 },
2470  { true, 0.94354397, 11.5, 38.25 },
2471  { true, 0.94144899, 19.125, 38.25 },
2472  { true, 0.939354, 11.5, 38.25 },
2473  { true, 0.93725997, 19.125, 38.25 },
2474  { true, 0.93516499, 11.5, 38.25 },
2475  { true, 0.93307, 19.125, 38.25 },
2476  { true, 0.93097597, 11.5, 38.25 },
2477  { true, 0.92888099, 19.125, 38.25 },
2478  { true, 0.92678601, 11.5, 38.25 },
2479  { true, 0.92469198, 19.125, 38.25 },
2480  { true, 0.92259699, 11.5, 38.25 },
2481  { true, 0.92050302, 19.125, 38.25 },
2482  { true, 0.91840798, 11.5, 38.25 },
2483  { true, 0.91631299, 19.125, 38.25 },
2484  { true, 0.91421902, 11.5, 38.25 },
2485  { true, 0.91212398, 19.125, 38.25 },
2486  { true, 0.91002899, 11.5, 38.25 },
2487  { true, 0.90793502, 19.125, 38.25 },
2488  { true, 0.90583998, 11.5, 38.25 },
2489  { true, 0.903745, 19.125, 38.25 },
2490  { true, 0.90165102, 11.5, 38.25 },
2491  { true, 0.89955598, 19.125, 38.25 },
2492  { true, 0.897461, 11.5, 38.25 },
2493  { true, 0.89536703, 19.125, 38.2243 },
2494  { true, 0.89327198, 11.5, 38.1948 },
2495  { true, 0.89117801, 19.125, 38.1655 },
2496  { true, 0.88908303, 11.5, 38.1364 },
2497  { true, 0.88698798, 19.125, 38.1075 },
2498  { true, 0.88489401, 11.5, 38.0789 },
2499  { true, 0.88279903, 19.125, 38.0504 },
2500  { true, 0.88070399, 11.5, 38.0222 },
2501  { true, 0.87861001, 19.125, 37.9942 },
2502  { true, 0.87651497, 11.5, 37.9663 },
2503  { true, 0.87441999, 19.125, 37.9387 },
2504  { true, 0.87232602, 11.5, 37.9113 },
2505  { true, 0.87023097, 19.125, 37.8841 },
2506  { true, 0.86813599, 11.5, 37.8571 },
2507  { true, 0.86604202, 19.125, 37.8303 },
2508  { true, 0.86394697, 11.5, 37.8037 },
2509  { true, 0.861853, 19.125, 37.7773 },
2510  { true, 0.85975802, 11.5, 37.7511 },
2511  { true, 0.85766298, 19.125, 37.7251 },
2512  { true, 0.85556901, 11.5, 37.6993 },
2513  { true, 0.85347402, 19.125, 37.6737 },
2514  { true, 0.85137898, 11.5, 37.6483 },
2515  { true, 0.84928501, 19.125, 37.6231 },
2516  { true, 0.84719002, 11.5, 37.5981 },
2517  { true, 0.84509498, 19.125, 37.5733 },
2518  { true, 0.84300101, 11.5, 37.5488 },
2519  { true, 0.84090602, 19.125, 37.5244 },
2520  { true, 0.83881199, 11.5, 37.5002 },
2521  { true, 0.83671701, 19.125, 37.4761 },
2522  { true, 0.83462203, 11.5, 37.4523 },
2523  { true, 0.832528, 19.125, 37.4287 },
2524  { true, 0.83043301, 11.5, 37.4053 },
2525  { true, 0.82833803, 19.125, 37.382 },
2526  { true, 0.826244, 11.5, 37.359 },
2527  { true, 0.82414901, 19.125, 37.3362 },
2528  { true, 0.82205403, 11.5, 37.3135 },
2529  { true, 0.81996, 19.125, 37.2911 },
2530  { true, 0.81786501, 11.5, 37.2688 },
2531  { true, 0.81576997, 19.125, 37.2467 },
2532  { true, 0.813676, 11.5, 37.2248 },
2533  { true, 0.81158102, 19.125, 37.2031 },
2534  { true, 0.80948699, 11.5, 37.1816 },
2535  { true, 0.807392, 19.125, 37.1602 },
2536  { true, 0.80529702, 11.5, 37.1391 },
2537  { true, 0.80320299, 19.125, 37.1181 },
2538  { true, 0.801108, 11.5, 37.0974 },
2539  { true, 0.79901302, 19.125, 37.0768 },
2540  { true, 0.79691899, 11.5, 37.0564 },
2541  { true, 0.794824, 19.125, 37.0362 },
2542  { true, 0.79272902, 11.5, 37.0162 },
2543  { true, 0.79063499, 19.125, 36.9963 },
2544  { true, 0.78854001, 11.5, 36.9766 },
2545  { true, 0.78644502, 19.125, 36.9572 },
2546  { true, 0.78435099, 11.5, 36.9379 },
2547  { true, 0.78225601, 19.125, 36.9188 },
2548  { true, 0.78016198, 11.5, 36.8998 },
2549  { true, 0.77806699, 19.125, 36.8811 },
2550  { true, 0.77597201, 11.5, 36.8625 },
2551  { true, 0.77387798, 19.125, 36.8441 },
2552  { true, 0.77178299, 11.5, 36.8259 },
2553  { true, 0.76968801, 19.125, 36.8079 },
2554  { true, 0.76759398, 11.5, 36.79 },
2555  { true, 0.765499, 19.125, 36.7723 },
2556  { true, 0.76340401, 11.5, 36.7548 },
2557  { true, 0.76130998, 19.125, 36.7375 },
2558  { true, 0.759215, 11.5, 36.7204 },
2559  { true, 0.75712103, 19.125, 36.7034 },
2560  { true, 0.75502598, 11.5, 36.6866 },
2561  { true, 0.752931, 19.125, 36.67 },
2562  { true, 0.75083703, 11.5, 36.6536 },
2563  { true, 0.74874198, 19.125, 36.6373 },
2564  { true, 0.746647, 11.5, 36.6213 },
2565  { true, 0.74455303, 19.125, 36.6053 },
2566  { true, 0.74245799, 11.5, 36.5896 },
2567  { true, 0.740363, 19.125, 36.574 },
2568  { true, 0.73826897, 11.5, 36.5587 },
2569  { true, 0.73617399, 19.125, 36.5434 },
2570  { true, 0.734079, 11.5, 36.5284 },
2571  { true, 0.73198497, 19.125, 36.5135 },
2572  { true, 0.72988999, 11.5, 36.4988 },
2573  { true, 0.72779602, 19.125, 36.4843 },
2574  { true, 0.72570097, 11.5, 36.47 },
2575  { true, 0.72360599, 19.125, 36.4558 },
2576  { true, 0.72151202, 11.5, 36.4418 },
2577  { true, 0.71941698, 19.125, 36.4279 },
2578  { true, 0.71732199, 11.5, 36.4143 },
2579  { true, 0.71522802, 19.125, 36.4008 },
2580  { true, 0.71313298, 11.5, 36.3874 },
2581  { true, 0.71103799, 19.125, 36.3743 },
2582  { true, 0.70894402, 11.5, 36.3613 },
2583  { true, 0.70684898, 19.125, 36.3484 },
2584  { true, 0.70475399, 11.5, 36.3358 },
2585  { true, 0.70266002, 19.125, 36.3233 },
2586  { true, 0.70056498, 11.5, 36.311 },
2587  { true, 0.69847101, 19.125, 36.2988 },
2588  { true, 0.69637603, 11.5, 36.2868 },
2589  { true, 0.69428098, 19.125, 36.275 },
2590  { true, 0.69218701, 11.5, 36.2634 },
2591  { true, 0.69009203, 19.125, 36.2519 },
2592  { true, 0.68799698, 11.5, 36.2406 },
2593  { true, 0.68590301, 19.125, 36.2294 },
2594  { true, 0.68380803, 11.5, 36.2184 },
2595  { true, 0.68171299, 19.125, 36.2076 },
2596  { true, 0.67961901, 11.5, 36.1969 },
2597  { true, 0.67752397, 19.125, 36.1865 },
2598  { true, 0.67543, 11.5, 36.1761 },
2599  { true, 0.67333502, 19.125, 36.166 },
2600  { true, 0.67123997, 11.5, 36.156 },
2601  { true, 0.669146, 19.125, 36.1461 },
2602  { true, 0.66705102, 11.5, 36.1365 },
2603  { true, 0.66495597, 19.125, 36.127 },
2604  { true, 0.662862, 11.5, 36.1176 },
2605  { true, 0.66076702, 19.125, 36.1084 },
2606  { true, 0.65867198, 11.5, 36.0994 },
2607  { true, 0.656578, 19.125, 36.0906 },
2608  { true, 0.65448302, 11.5, 36.0819 },
2609  { true, 0.65238798, 19.125, 36.0733 },
2610  { true, 0.65029401, 11.5, 36.065 },
2611  { true, 0.64819902, 19.125, 36.0568 },
2612  { true, 0.64610499, 11.5, 36.0487 },
2613  { true, 0.64401001, 19.125, 36.0409 },
2614  { true, 0.64191502, 11.5, 36.0331 },
2615  { true, 0.63982099, 19.125, 36.0256 },
2616  { true, 0.63772601, 11.5, 36.0182 },
2617  { true, 0.63563102, 19.125, 36.0109 },
2618  { true, 0.63353699, 11.5, 36.0039 },
2619  { true, 0.63144201, 19.125, 35.997 },
2620  { true, 0.62934703, 11.5, 35.9902 },
2621  { true, 0.627253, 19.125, 35.9836 },
2622  { true, 0.62515801, 11.5, 35.9772 },
2623  { true, 0.62306303, 19.125, 35.9709 },
2624  { true, 0.620969, 11.5, 35.9648 },
2625  { true, 0.61887401, 19.125, 35.9588 },
2626  { true, 0.61677998, 11.5, 35.953 },
2627  { true, 0.614685, 19.125, 35.9474 },
2628  { true, 0.61259001, 11.5, 35.9419 },
2629  { true, 0.61049598, 19.125, 35.9366 },
2630  { true, 0.608401, 11.5, 35.9315 },
2631  { true, 0.60630602, 19.125, 35.9265 },
2632  { true, 0.60421199, 11.5, 35.9216 },
2633  { true, 0.602117, 19.125, 35.9169 },
2634  { true, 0.60002202, 11.5, 35.9124 },
2635  { true, 0.59792799, 19.125, 35.9081 },
2636  { true, 0.595833, 11.5, 35.9039 },
2637  { true, 0.59373897, 19.125, 35.8998 },
2638  { true, 0.59164399, 11.5, 35.8959 },
2639  { true, 0.58954901, 19.125, 35.8922 },
2640  { true, 0.58745497, 11.5, 35.8886 },
2641  { true, 0.58535999, 19.125, 35.8852 },
2642  { true, 0.58326501, 11.5, 35.882 },
2643  { true, 0.58117098, 19.125, 35.8789 },
2644  { true, 0.57907599, 11.5, 35.8759 },
2645  { true, 0.57698101, 19.125, 35.8732 },
2646  { true, 0.57488698, 11.5, 35.8705 },
2647  { true, 0.57279199, 19.125, 35.8681 },
2648  { true, 0.57069701, 11.5, 35.8658 },
2649  { true, 0.56860298, 19.125, 35.8636 },
2650  { true, 0.566508, 11.5, 35.8616 },
2651  { true, 0.56441402, 19.125, 35.8598 },
2652  { true, 0.56231898, 11.5, 35.8581 },
2653  { true, 0.560224, 19.125, 35.8566 },
2654  { true, 0.55813003, 11.5, 35.8552 },
2655  { true, 0.55603498, 19.125, 35.854 },
2656  { true, 0.55394, 11.5, 35.853 },
2657  { true, 0.55184603, 19.125, 35.8521 },
2658  { true, 0.54975098, 11.5, 35.8514 },
2659  { true, 0.547656, 19.125, 35.8508 },
2660  { true, 0.54556203, 11.5, 35.8504 },
2661  { true, 0.54346699, 19.125, 35.8501 },
2662  { true, 0.541372, 11.5, 35.85 },
2663  { true, 0.53927797, 19.125, 35.8501 },
2664  { true, 0.53718299, 11.5, 35.8503 },
2665  { true, 0.53508902, 19.125, 35.8506 },
2666  { true, 0.53299397, 11.5, 35.8512 },
2667  { true, 0.53089899, 19.125, 35.8518 },
2668  { true, 0.52880502, 11.5, 35.8527 },
2669  { true, 0.52670997, 19.125, 35.8537 },
2670  { true, 0.52461499, 11.5, 35.8548 },
2671  { true, 0.52252102, 19.125, 35.8562 },
2672  { true, 0.52042598, 11.5, 35.8576 },
2673  { true, 0.51833099, 19.125, 35.8593 },
2674  { true, 0.51623702, 11.5, 35.861 },
2675  { true, 0.51414198, 19.125, 35.863 },
2676  { true, 0.51204801, 11.5, 35.8651 },
2677  { true, 0.50995302, 19.125, 35.8673 },
2678  { true, 0.50785798, 11.5, 35.8698 },
2679  { true, 0.50576401, 19.125, 35.8723 },
2680  { true, 0.50366902, 11.5, 35.8751 },
2681  { true, 0.50157398, 19.125, 35.878 },
2682  { true, 0.49948001, 11.5, 35.881 },
2683  { true, 0.497385, 19.125, 35.8842 },
2684  { true, 0.49529001, 11.5, 35.8876 },
2685  { true, 0.49319601, 19.125, 35.8911 },
2686  { true, 0.491101, 11.5, 35.8948 },
2687  { true, 0.48900601, 19.125, 35.8986 },
2688  { true, 0.48691201, 11.5, 35.9026 },
2689  { true, 0.484817, 19.125, 35.9068 },
2690  { true, 0.482723, 11.5, 35.9111 },
2691  { true, 0.48062801, 19.125, 35.9155 },
2692  { true, 0.478533, 11.5, 35.9202 },
2693  { true, 0.476439, 19.125, 35.925 },
2694  { true, 0.47434399, 11.5, 35.9299 },
2695  { true, 0.472249, 19.125, 35.935 },
2696  { true, 0.470155, 11.5, 35.9403 },
2697  { true, 0.46805999, 19.125, 35.9457 },
2698  { true, 0.465965, 11.5, 35.9513 },
2699  { true, 0.463871, 19.125, 35.957 },
2700  { true, 0.46177599, 11.5, 35.9629 },
2701  { true, 0.45968199, 19.125, 35.969 },
2702  { true, 0.457587, 11.5, 35.9752 },
2703  { true, 0.45549199, 19.125, 35.9816 },
2704  { true, 0.45339799, 11.5, 35.9882 },
2705  { true, 0.45130301, 19.125, 35.9949 },
2706  { true, 0.44920799, 11.5, 36.0017 },
2707  { true, 0.44711399, 19.125, 36.0088 },
2708  { true, 0.44501901, 11.5, 36.0159 },
2709  { true, 0.44292399, 19.125, 36.0233 },
2710  { true, 0.44082999, 11.5, 36.0308 },
2711  { true, 0.43873501, 19.125, 36.0385 },
2712  { true, 0.43663999, 11.5, 36.0463 },
2713  { true, 0.43454599, 19.125, 36.0543 },
2714  { true, 0.43245101, 11.5, 36.0625 },
2715  { true, 0.43035701, 19.125, 36.0708 },
2716  { true, 0.428262, 11.5, 36.0792 },
2717  { true, 0.42616701, 19.125, 36.0879 },
2718  { true, 0.42407301, 11.5, 36.0967 },
2719  { true, 0.421978, 19.125, 36.1057 },
2720  { true, 0.41988301, 11.5, 36.1148 },
2721  { true, 0.41778901, 19.125, 36.1241 },
2722  { true, 0.415694, 11.5, 36.1335 },
2723  { true, 0.41359901, 19.125, 36.1432 },
2724  { true, 0.41150501, 11.5, 36.1529 },
2725  { true, 0.40941, 19.125, 36.1629 },
2726  { true, 0.40731499, 11.5, 36.173 },
2727  { true, 0.40522099, 19.125, 36.1833 },
2728  { true, 0.403126, 11.5, 36.1937 },
2729  { true, 0.401032, 19.125, 36.2043 },
2730  { true, 0.39893699, 11.5, 36.2151 },
2731  { true, 0.396842, 19.125, 36.226 },
2732  { true, 0.394748, 11.5, 36.2371 },
2733  { true, 0.39265299, 19.125, 36.2484 },
2734  { true, 0.390558, 11.5, 36.2598 },
2735  { true, 0.388464, 19.125, 36.2714 },
2736  { true, 0.38636899, 11.5, 36.2832 },
2737  { true, 0.38427401, 19.125, 36.2951 },
2738  { true, 0.38218001, 11.5, 36.3072 },
2739  { true, 0.38008499, 19.125, 36.3195 },
2740  { true, 0.37799099, 11.5, 36.3319 },
2741  { true, 0.37589601, 19.125, 36.3446 },
2742  { true, 0.37380099, 11.5, 36.3573 },
2743  { true, 0.37170699, 19.125, 36.3703 },
2744  { true, 0.36961201, 11.5, 36.3834 },
2745  { true, 0.36751699, 19.125, 36.3967 },
2746  { true, 0.36542299, 11.5, 36.4101 },
2747  { true, 0.36332801, 19.125, 36.4237 },
2748  { true, 0.361233, 11.5, 36.4375 },
2749  { true, 0.359139, 19.125, 36.4515 },
2750  { true, 0.35704401, 11.5, 36.4656 },
2751  { true, 0.354949, 19.125, 36.4799 },
2752  { true, 0.352855, 11.5, 36.4944 },
2753  { true, 0.35076001, 19.125, 36.509 },
2754  { true, 0.34866601, 11.5, 36.5238 },
2755  { true, 0.346571, 19.125, 36.5388 },
2756  { true, 0.34447601, 11.5, 36.554 },
2757  { true, 0.34238201, 19.125, 36.5693 },
2758  { true, 0.340287, 11.5, 36.5848 },
2759  { true, 0.33819199, 19.125, 36.6005 },
2760  { true, 0.33609799, 11.5, 36.6164 },
2761  { true, 0.334003, 19.125, 36.6324 },
2762  { true, 0.33190799, 11.5, 36.6486 },
2763  { true, 0.32981399, 19.125, 36.665 },
2764  { true, 0.327719, 11.5, 36.6815 },
2765  { true, 0.32562399, 19.125, 36.6983 },
2766  { true, 0.32352999, 11.5, 36.7152 },
2767  { true, 0.321435, 19.125, 36.7323 },
2768  { true, 0.319341, 11.5, 36.7495 },
2769  { true, 0.31724599, 19.125, 36.767 },
2770  { true, 0.31515101, 11.5, 36.7846 },
2771  { true, 0.31305701, 19.125, 36.8024 },
2772  { true, 0.31096199, 11.5, 36.8204 },
2773  { true, 0.30886701, 19.125, 36.8385 },
2774  { true, 0.30677301, 11.5, 36.8569 },
2775  { true, 0.30467799, 19.125, 36.8754 },
2776  { true, 0.30258301, 11.5, 36.8941 },
2777  { true, 0.30048901, 19.125, 36.9129 },
2778  { true, 0.29839399, 11.5, 36.932 },
2779  { true, 0.29629999, 19.125, 36.9512 },
2780  { true, 0.29420501, 11.5, 36.9707 },
2781  { true, 0.29211, 19.125, 36.9903 },
2782  { true, 0.290016, 11.5, 37.0101 },
2783  { true, 0.28792101, 19.125, 37.03 },
2784  { true, 0.285826, 11.5, 37.0502 },
2785  { true, 0.283732, 19.125, 37.0705 },
2786  { true, 0.28163701, 11.5, 37.0911 },
2787  { true, 0.279542, 19.125, 37.1118 },
2788  { true, 0.277448, 11.5, 37.1327 },
2789  { true, 0.27535301, 19.125, 37.1538 },
2790  { true, 0.273258, 11.5, 37.175 },
2791  { true, 0.271164, 19.125, 37.1965 },
2792  { true, 0.26906899, 11.5, 37.2181 },
2793  { true, 0.26697499, 19.125, 37.24 },
2794  { true, 0.26488, 11.5, 37.262 },
2795  { true, 0.26278499, 19.125, 37.2842 },
2796  { true, 0.26069099, 11.5, 37.3066 },
2797  { true, 0.258596, 19.125, 37.3292 },
2798  { true, 0.25650099, 11.5, 37.352 },
2799  { true, 0.25440699, 19.125, 37.375 },
2800  { true, 0.252312, 11.5, 37.3982 },
2801  { true, 0.25021699, 19.125, 37.4215 },
2802  { true, 0.24812301, 11.5, 37.4451 },
2803  { true, 0.24602801, 19.125, 37.4688 },
2804  { true, 0.24393301, 11.5, 37.4928 },
2805  { true, 0.24183901, 19.125, 37.5169 },
2806  { true, 0.23974399, 11.5, 37.5413 },
2807  { true, 0.23765001, 19.125, 37.5658 },
2808  { true, 0.23555499, 11.5, 37.5905 },
2809  { true, 0.23345999, 19.125, 37.6155 },
2810  { true, 0.23136599, 11.5, 37.6406 },
2811  { true, 0.22927099, 19.125, 37.6659 },
2812  { true, 0.227176, 11.5, 37.6915 },
2813  { true, 0.225082, 19.125, 37.7172 },
2814  { true, 0.222987, 11.5, 37.7431 },
2815  { true, 0.220892, 19.125, 37.7692 },
2816  { true, 0.218798, 11.5, 37.7956 },
2817  { true, 0.216703, 19.125, 37.8221 },
2818  { true, 0.214609, 11.5, 37.8488 },
2819  { true, 0.212514, 19.125, 37.8758 },
2820  { true, 0.210419, 11.5, 37.9029 },
2821  { true, 0.208325, 19.125, 37.9303 },
2822  { true, 0.20623, 11.5, 37.9578 },
2823  { true, 0.204135, 19.125, 37.9856 },
2824  { true, 0.202041, 11.5, 38.0136 },
2825  { true, 0.199946, 19.125, 38.0418 },
2826  { true, 0.197851, 11.5, 38.0702 },
2827  { true, 0.195757, 19.125, 38.0988 },
2828  { true, 0.193662, 11.5, 38.1276 },
2829  { true, 0.191567, 19.125, 38.1566 },
2830  { true, 0.189473, 11.5, 38.1858 },
2831  { true, 0.187378, 19.125, 38.2153 },
2832  { true, 0.185284, 11.5, 38.2449 },
2833  { true, 0.183189, 19.125, 38.25 },
2834  { true, 0.18109401, 11.5, 38.25 },
2835  { true, 0.17900001, 19.125, 38.25 },
2836  { true, 0.17690501, 11.5, 38.25 },
2837  { true, 0.17481001, 19.125, 38.25 },
2838  { true, 0.17271601, 11.5, 38.25 },
2839  { true, 0.17062099, 19.125, 38.25 },
2840  { true, 0.16852599, 11.5, 38.25 },
2841  { true, 0.16643199, 19.125, 38.25 },
2842  { true, 0.16433699, 11.5, 38.25 },
2843  { true, 0.162242, 19.125, 38.25 },
2844  { true, 0.16014799, 11.5, 38.25 },
2845  { true, 0.158053, 19.125, 38.25 },
2846  { true, 0.155959, 11.5, 38.25 },
2847  { true, 0.153864, 19.125, 38.25 },
2848  { true, 0.151769, 11.5, 38.25 },
2849  { true, 0.149675, 19.125, 38.25 },
2850  { true, 0.14758, 11.5, 38.25 },
2851  { true, 0.145485, 19.125, 38.25 },
2852  { true, 0.143391, 11.5, 38.25 },
2853  { true, 0.141296, 19.125, 38.25 },
2854  { true, 0.139201, 11.5, 38.25 },
2855  { true, 0.137107, 19.125, 38.25 },
2856  { true, 0.135012, 11.5, 38.25 },
2857  { true, 0.132918, 19.125, 38.25 },
2858  { true, 0.130823, 11.5, 38.25 },
2859  { true, 0.128728, 19.125, 38.25 },
2860  { true, 0.126634, 11.5, 38.25 },
2861  { true, 0.124539, 19.125, 38.25 },
2862  { true, 0.122444, 11.5, 38.25 },
2863  { true, 0.12035, 19.125, 38.25 },
2864  { true, 0.118255, 11.5, 38.25 },
2865  { true, 0.11616, 19.125, 38.25 },
2866  { true, 0.114066, 11.5, 38.25 },
2867  { true, 0.111971, 19.125, 38.25 },
2868  { true, 0.109876, 11.5, 38.25 },
2869  { true, 0.107782, 19.125, 38.25 },
2870  { true, 0.105687, 11.5, 38.25 },
2871  { true, 0.103593, 19.125, 38.25 },
2872  { true, 0.101498, 11.8432, 38.25 },
2873  { true, 0.0994033, 19.125, 38.25 },
2874  { true, 0.0973086, 12.3514, 38.25 },
2875  { true, 0.095214, 19.125, 38.25 },
2876  { true, 0.0931193, 12.9053, 38.25 },
2877  { true, 0.0910247, 19.125, 38.25 },
2878  { true, 0.0889301, 13.5115, 38.25 },
2879  { true, 0.0868354, 19.125, 38.25 },
2880  { true, 0.0847408, 14.1778, 38.25 },
2881  { true, 0.0826461, 19.125, 38.25 },
2882  { true, 0.0805515, 14.9134, 38.25 },
2883  { true, 0.0784569, 19.125, 38.25 },
2884  { true, 0.0763622, 15.7299, 38.25 },
2885  { true, 0.0742676, 19.125, 38.25 },
2886  { true, 0.0721729, 16.6412, 38.25 },
2887  { true, 0.0700783, 19.125, 38.25 },
2888  { true, 0.0679837, 17.6649, 38.25 },
2889  { true, 0.065889, 19.125, 38.25 },
2890  { true, 0.0637944, 18.8232, 38.25 },
2891  { true, 0.0616997, 19.4614, 38.25 },
2892  { true, 0.0596051, 20.1444, 38.25 },
2893  { true, 0.0575104, 20.8773, 38.25 },
2894  { true, 0.0554158, 21.6656, 38.25 },
2895  { true, 0.0533212, 22.5158, 38.25 },
2896  { true, 0.0512265, 23.4356, 38.25 },
2897  { true, 0.0491319, 24.4339, 38.25 },
2898  { true, 0.0470372, 25.5211, 38.25 },
2899  { true, 0.0449426, 26.7097, 38.25 },
2900  { true, 0.042848, 28.0145, 38.25 },
2901  { true, 0.0407533, 29.4536, 38.25 },
2902  { true, 0.0386587, 31.0486, 38.25 },
2903  { true, 0.036564, 32.8265, 38.25 },
2904  { true, 0.0344694, 34.8204, 38.25 },
2905  { true, 0.0323748, 37.0723, 38.25 }
2906 };
2907 
2908 // This initialized an idealized mapping.
2909 Int_t StFgtGeom::mNaiveMapping[] =
2910 {
2911  9,
2912  720,
2913  733,
2914  723,
2915  740,
2916  722,
2917  721,
2918  724,
2919  11,
2920  731,
2921  13,
2922  8,
2923  15,
2924  726,
2925  745,
2926  743,
2927  4,
2928  746,
2929  5,
2930  14,
2931  19,
2932  738,
2933  732,
2934  735,
2935  748,
2936  18,
2937  17,
2938  747,
2939  749,
2940  10,
2941  752,
2942  16,
2943  753,
2944  751,
2945  727,
2946  742,
2947  737,
2948  739,
2949  21,
2950  750,
2951  756,
2952  754,
2953  736,
2954  12,
2955  725,
2956  734,
2957  757,
2958  20,
2959  23,
2960  22,
2961  0,
2962  730,
2963  3,
2964  744,
2965  6,
2966  755,
2967  729,
2968  741,
2969  728,
2970  2,
2971  7,
2972  1,
2973  760,
2974  758,
2975  761,
2976  796,
2977  791,
2978  759,
2979  45,
2980  24,
2981  25,
2982  789,
2983  764,
2984  762,
2985  47,
2986  42,
2987  46,
2988  763,
2989  765,
2990  779,
2991  27,
2992  26,
2993  797,
2994  784,
2995  794,
2996  766,
2997  28,
2998  38,
2999  29,
3000  768,
3001  782,
3002  767,
3003  30,
3004  776,
3005  31,
3006  774,
3007  43,
3008  770,
3009  790,
3010  769,
3011  786,
3012  772,
3013  32,
3014  781,
3015  33,
3016  771,
3017  34,
3018  780,
3019  787,
3020  777,
3021  35,
3022  775,
3023  783,
3024  773,
3025  41,
3026  788,
3027  36,
3028  785,
3029  37,
3030  40,
3031  39,
3032  44,
3033  778,
3034  792,
3035  48,
3036  793,
3037  49,
3038  795,
3039  60,
3040  798,
3041  62,
3042  801,
3043  815,
3044  800,
3045  799,
3046  802,
3047  63,
3048  808,
3049  814,
3050  806,
3051  818,
3052  804,
3053  69,
3054  68,
3055  54,
3056  821,
3057  55,
3058  816,
3059  826,
3060  813,
3061  61,
3062  811,
3063  823,
3064  824,
3065  822,
3066  70,
3067  71,
3068  809,
3069  827,
3070  820,
3071  73,
3072  72,
3073  805,
3074  817,
3075  65,
3076  66,
3077  830,
3078  825,
3079  831,
3080  829,
3081  64,
3082  812,
3083  803,
3084  810,
3085  75,
3086  828,
3087  834,
3088  832,
3089  50,
3090  807,
3091  53,
3092  819,
3093  56,
3094  74,
3095  59,
3096  67,
3097  58,
3098  52,
3099  57,
3100  51,
3101  835,
3102  833,
3103  77,
3104  875,
3105  100,
3106  76,
3107  101,
3108  836,
3109  838,
3110  863,
3111  839,
3112  837,
3113  103,
3114  860,
3115  102,
3116  78,
3117  79,
3118  91,
3119  80,
3120  840,
3121  877,
3122  858,
3123  871,
3124  841,
3125  843,
3126  854,
3127  844,
3128  81,
3129  93,
3130  842,
3131  82,
3132  852,
3133  83,
3134  850,
3135  98,
3136  846,
3137  99,
3138  845,
3139  96,
3140  848,
3141  84,
3142  856,
3143  85,
3144  847,
3145  86,
3146  855,
3147  97,
3148  853,
3149  87,
3150  851,
3151  94,
3152  849,
3153  95,
3154  861,
3155  88,
3156  859,
3157  89,
3158  857,
3159  92,
3160  865,
3161  90,
3162  867,
3163  104,
3164  869,
3165  105,
3166  873,
3167  116,
3168  879,
3169  118,
3170  885,
3171  123,
3172  883,
3173  881,
3174  887,
3175  119,
3176  899,
3177  122,
3178  895,
3179  125,
3180  891,
3181  127,
3182  917,
3183  110,
3184  921,
3185  111,
3186  913,
3187  131,
3188  909,
3189  117,
3190  905,
3191  129,
3192  925,
3193  128,
3194  923,
3195  130,
3196  901,
3197  132,
3198  919,
3199  133,
3200  929,
3201  893,
3202  915,
3203  121,
3204  911,
3205  134,
3206  927,
3207  135,
3208  933,
3209  120,
3210  907,
3211  889,
3212  903,
3213  136,
3214  931,
3215  137,
3216  937,
3217  106,
3218  897,
3219  109,
3220  126,
3221  112,
3222  935,
3223  115,
3224  124,
3225  114,
3226  108,
3227  113,
3228  107,
3229  138,
3230  939,
3231  139,
3232  1003,
3233  164,
3234  941,
3235  165,
3236  943,
3237  140,
3238  991,
3239  141,
3240  945,
3241  167,
3242  987,
3243  166,
3244  947,
3245  142,
3246  155,
3247  143,
3248  949,
3249  1005,
3250  983,
3251  999,
3252  951,
3253  144,
3254  975,
3255  145,
3256  955,
3257  157,
3258  953,
3259  146,
3260  971,
3261  147,
3262  967,
3263  162,
3264  959,
3265  163,
3266  957,
3267  160,
3268  963,
3269  148,
3270  979,
3271  149,
3272  961,
3273  150,
3274  977,
3275  161,
3276  973,
3277  151,
3278  969,
3279  158,
3280  965,
3281  159,
3282  989,
3283  152,
3284  985,
3285  153,
3286  981,
3287  156,
3288  993,
3289  154,
3290  995,
3291  168,
3292  997,
3293  169,
3294  1001,
3295  180,
3296  1007,
3297  182,
3298  1013,
3299  1043,
3300  1011,
3301  1009,
3302  1015,
3303  1033,
3304  1027,
3305  1041,
3306  1023,
3307  1049,
3308  1019,
3309  188,
3310  187,
3311  174,
3312  1055,
3313  175,
3314  1045,
3315  191,
3316  1039,
3317  181,
3318  183,
3319  1059,
3320  1061,
3321  1057,
3322  189,
3323  190,
3324  1029,
3325  192,
3326  1053,
3327  193,
3328  1065,
3329  1021,
3330  1047,
3331  184,
3332  185,
3333  194,
3334  1063,
3335  195,
3336  1069,
3337  1035,
3338  1037,
3339  1017,
3340  1031,
3341  196,
3342  1067,
3343  197,
3344  1073,
3345  170,
3346  1025,
3347  173,
3348  1051,
3349  176,
3350  1071,
3351  179,
3352  186,
3353  178,
3354  172,
3355  177,
3356  171,
3357  198,
3358  1075,
3359  199,
3360  928,
3361  220,
3362  1077,
3363  221,
3364  1079,
3365  200,
3366  916,
3367  866,
3368  862,
3369  223,
3370  912,
3371  222,
3372  864,
3373  868,
3374  211,
3375  202,
3376  201,
3377  930,
3378  908,
3379  924,
3380  870,
3381  874,
3382  900,
3383  876,
3384  203,
3385  213,
3386  872,
3387  204,
3388  896,
3389  882,
3390  207,
3391  218,
3392  880,
3393  219,
3394  878,
3395  216,
3396  886,
3397  884,
3398  904,
3399  206,
3400  205,
3401  890,
3402  902,
3403  217,
3404  898,
3405  892,
3406  894,
3407  214,
3408  888,
3409  215,
3410  914,
3411  208,
3412  910,
3413  209,
3414  906,
3415  212,
3416  918,
3417  210,
3418  920,
3419  224,
3420  922,
3421  225,
3422  926,
3423  233,
3424  932,
3425  962,
3426  940,
3427  976,
3428  228,
3429  934,
3430  942,
3431  235,
3432  958,
3433  237,
3434  232,
3435  239,
3436  948,
3437  986,
3438  982,
3439  229,
3440  988,
3441  944,
3442  238,
3443  243,
3444  972,
3445  960,
3446  966,
3447  992,
3448  242,
3449  241,
3450  990,
3451  994,
3452  234,
3453  1000,
3454  240,
3455  1002,
3456  998,
3457  950,
3458  980,
3459  970,
3460  974,
3461  245,
3462  996,
3463  1008,
3464  1004,
3465  968,
3466  236,
3467  230,
3468  964,
3469  1010,
3470  244,
3471  247,
3472  246,
3473  226,
3474  956,
3475  938,
3476  984,
3477  946,
3478  1006,
3479  954,
3480  978,
3481  952,
3482  936,
3483  231,
3484  227,
3485  248,
3486  1012,
3487  249,
3488  1076,
3489  274,
3490  1014,
3491  275,
3492  1016,
3493  250,
3494  1064,
3495  251,
3496  1018,
3497  277,
3498  1060,
3499  276,
3500  1020,
3501  252,
3502  265,
3503  253,
3504  1022,
3505  1078,
3506  1056,
3507  1072,
3508  1024,
3509  254,
3510  1048,
3511  255,
3512  1028,
3513  267,
3514  1026,
3515  256,
3516  1044,
3517  257,
3518  1040,
3519  272,
3520  1032,
3521  273,
3522  1030,
3523  270,
3524  1036,
3525  258,
3526  1052,
3527  259,
3528  1034,
3529  260,
3530  1050,
3531  271,
3532  1046,
3533  261,
3534  1042,
3535  268,
3536  1038,
3537  269,
3538  1062,
3539  262,
3540  1058,
3541  263,
3542  1054,
3543  266,
3544  1066,
3545  264,
3546  1068,
3547  278,
3548  1070,
3549  279,
3550  1074,
3551  669,
3552  1080,
3553  667,
3554  1086,
3555  662,
3556  1084,
3557  1082,
3558  1088,
3559  666,
3560  1100,
3561  663,
3562  1096,
3563  660,
3564  1092,
3565  1122,
3566  1118,
3567  675,
3568  1124,
3569  674,
3570  1114,
3571  656,
3572  1110,
3573  668,
3574  1106,
3575  1128,
3576  657,
3577  658,
3578  1126,
3579  1130,
3580  1102,
3581  1136,
3582  659,
3583  1138,
3584  1134,
3585  1094,
3586  1116,
3587  664,
3588  1112,
3589  654,
3590  1132,
3591  1144,
3592  1140,
3593  665,
3594  1108,
3595  1090,
3596  1104,
3597  1146,
3598  655,
3599  652,
3600  653,
3601  679,
3602  1098,
3603  676,
3604  1120,
3605  673,
3606  1142,
3607  670,
3608  661,
3609  671,
3610  677,
3611  672,
3612  678,
3613  1152,
3614  1148,
3615  1154,
3616  1224,
3617  1214,
3618  1150,
3619  630,
3620  651,
3621  650,
3622  1210,
3623  1160,
3624  1156,
3625  628,
3626  633,
3627  629,
3628  1158,
3629  1162,
3630  1190,
3631  648,
3632  649,
3633  1226,
3634  1200,
3635  1220,
3636  1164,
3637  647,
3638  637,
3639  646,
3640  1168,
3641  1196,
3642  1166,
3643  645,
3644  1184,
3645  644,
3646  1180,
3647  632,
3648  1172,
3649  1212,
3650  1170,
3651  1204,
3652  1176,
3653  643,
3654  1194,
3655  642,
3656  1174,
3657  641,
3658  1192,
3659  1206,
3660  1186,
3661  640,
3662  1182,
3663  1198,
3664  1178,
3665  634,
3666  1208,
3667  639,
3668  1202,
3669  638,
3670  635,
3671  636,
3672  631,
3673  1188,
3674  1216,
3675  627,
3676  1218,
3677  626,
3678  1222,
3679  615,
3680  1228,
3681  613,
3682  1234,
3683  609,
3684  1232,
3685  1230,
3686  1236,
3687  612,
3688  1248,
3689  1260,
3690  1244,
3691  1268,
3692  1240,
3693  1274,
3694  1270,
3695  621,
3696  606,
3697  620,
3698  1264,
3699  1284,
3700  610,
3701  614,
3702  1254,
3703  605,
3704  1280,
3705  1276,
3706  1278,
3707  1282,
3708  1250,
3709  603,
3710  1272,
3711  1290,
3712  1286,
3713  1242,
3714  608,
3715  1258,
3716  1262,
3717  1292,
3718  604,
3719  601,
3720  602,
3721  611,
3722  1256,
3723  1238,
3724  1252,
3725  1298,
3726  1288,
3727  1300,
3728  1296,
3729  625,
3730  1246,
3731  622,
3732  607,
3733  619,
3734  1294,
3735  616,
3736  1266,
3737  617,
3738  623,
3739  618,
3740  624,
3741  599,
3742  600,
3743  1085,
3744  1149,
3745  576,
3746  1081,
3747  575,
3748  1083,
3749  1087,
3750  1137,
3751  597,
3752  598,
3753  573,
3754  1133,
3755  574,
3756  1089,
3757  1093,
3758  585,
3759  1095,
3760  1091,
3761  1151,
3762  1129,
3763  1145,
3764  596,
3765  595,
3766  1121,
3767  1101,
3768  1099,
3769  583,
3770  1097,
3771  1103,
3772  1117,
3773  593,
3774  1113,
3775  578,
3776  1105,
3777  577,
3778  594,
3779  580,
3780  1109,
3781  592,
3782  1125,
3783  591,
3784  1107,
3785  590,
3786  1123,
3787  579,
3788  1119,
3789  589,
3790  1115,
3791  582,
3792  1111,
3793  581,
3794  1135,
3795  588,
3796  1131,
3797  587,
3798  1127,
3799  584,
3800  1139,
3801  586,
3802  1141,
3803  572,
3804  1143,
3805  571,
3806  1147,
3807  560,
3808  1153,
3809  558,
3810  1159,
3811  553,
3812  1157,
3813  1155,
3814  1161,
3815  557,
3816  1173,
3817  554,
3818  1169,
3819  551,
3820  1165,
3821  549,
3822  1191,
3823  566,
3824  1195,
3825  565,
3826  1187,
3827  545,
3828  1183,
3829  559,
3830  1179,
3831  547,
3832  1199,
3833  548,
3834  1197,
3835  546,
3836  1175,
3837  544,
3838  1193,
3839  543,
3840  1203,
3841  1167,
3842  1189,
3843  555,
3844  1185,
3845  542,
3846  1201,
3847  541,
3848  1207,
3849  556,
3850  1181,
3851  1163,
3852  1177,
3853  540,
3854  1205,
3855  539,
3856  1211,
3857  570,
3858  1171,
3859  567,
3860  550,
3861  564,
3862  1209,
3863  561,
3864  552,
3865  562,
3866  568,
3867  563,
3868  569,
3869  538,
3870  1213,
3871  537,
3872  1277,
3873  512,
3874  1215,
3875  511,
3876  1217,
3877  536,
3878  1265,
3879  535,
3880  1219,
3881  509,
3882  1261,
3883  510,
3884  1221,
3885  534,
3886  521,
3887  533,
3888  1223,
3889  1279,
3890  1257,
3891  1273,
3892  1225,
3893  532,
3894  1249,
3895  531,
3896  1229,
3897  519,
3898  1227,
3899  530,
3900  1245,
3901  529,
3902  1241,
3903  514,
3904  1233,
3905  513,
3906  1231,
3907  516,
3908  1237,
3909  528,
3910  1253,
3911  527,
3912  1235,
3913  526,
3914  1251,
3915  515,
3916  1247,
3917  525,
3918  1243,
3919  518,
3920  1239,
3921  517,
3922  1263,
3923  524,
3924  1259,
3925  523,
3926  1255,
3927  520,
3928  1267,
3929  522,
3930  1269,
3931  508,
3932  1271,
3933  507,
3934  1275,
3935  496,
3936  1281,
3937  494,
3938  1287,
3939  490,
3940  1285,
3941  1283,
3942  1289,
3943  493,
3944  1301,
3945  1307,
3946  1297,
3947  1311,
3948  1293,
3949  1314,
3950  1312,
3951  502,
3952  487,
3953  501,
3954  1309,
3955  1319,
3956  491,
3957  495,
3958  1304,
3959  486,
3960  1317,
3961  1315,
3962  1316,
3963  1318,
3964  1302,
3965  484,
3966  1313,
3967  483,
3968  1320,
3969  1295,
3970  489,
3971  1306,
3972  1308,
3973  482,
3974  485,
3975  481,
3976  1322,
3977  492,
3978  1305,
3979  1291,
3980  1303,
3981  480,
3982  1321,
3983  479,
3984  1324,
3985  506,
3986  1299,
3987  503,
3988  488,
3989  500,
3990  1323,
3991  497,
3992  1310,
3993  498,
3994  504,
3995  499,
3996  505,
3997  478,
3998  1325,
3999  477,
4000  1361,
4001  456,
4002  1326,
4003  455,
4004  1327,
4005  476,
4006  1355,
4007  475,
4008  1328,
4009  453,
4010  1353,
4011  454,
4012  1329,
4013  474,
4014  465,
4015  1332,
4016  1330,
4017  1362,
4018  1351,
4019  1359,
4020  1331,
4021  1333,
4022  1347,
4023  472,
4024  1334,
4025  463,
4026  473,
4027  1336,
4028  467,
4029  1337,
4030  1342,
4031  458,
4032  471,
4033  457,
4034  1335,
4035  460,
4036  1339,
4037  470,
4038  1349,
4039  1340,
4040  1338,
4041  1341,
4042  1348,
4043  459,
4044  1346,
4045  468,
4046  1343,
4047  462,
4048  469,
4049  461,
4050  1354,
4051  1344,
4052  1352,
4053  1345,
4054  1350,
4055  464,
4056  1356,
4057  466,
4058  1357,
4059  452,
4060  1358,
4061  451,
4062  1360,
4063  442,
4064  1363,
4065  1377,
4066  1366,
4067  1384,
4068  1365,
4069  1364,
4070  1367,
4071  440,
4072  1375,
4073  438,
4074  443,
4075  436,
4076  1370,
4077  1389,
4078  1387,
4079  446,
4080  1390,
4081  1368,
4082  437,
4083  432,
4084  1382,
4085  1376,
4086  1379,
4087  1392,
4088  433,
4089  434,
4090  1391,
4091  1393,
4092  441,
4093  1396,
4094  435,
4095  1397,
4096  1395,
4097  1371,
4098  1386,
4099  1381,
4100  1383,
4101  430,
4102  1394,
4103  1400,
4104  1398,
4105  1380,
4106  439,
4107  445,
4108  1378,
4109  1401,
4110  431,
4111  428,
4112  429,
4113  450,
4114  1374,
4115  447,
4116  1388,
4117  1369,
4118  1399,
4119  1373,
4120  1385,
4121  1372,
4122  448,
4123  444,
4124  449,
4125  427,
4126  1402,
4127  426,
4128  1438,
4129  405,
4130  1403,
4131  404,
4132  1404,
4133  425,
4134  1432,
4135  424,
4136  1405,
4137  402,
4138  1430,
4139  403,
4140  1406,
4141  423,
4142  1423,
4143  422,
4144  1407,
4145  1439,
4146  1428,
4147  1436,
4148  1408,
4149  421,
4150  413,
4151  420,
4152  1410,
4153  1426,
4154  1409,
4155  419,
4156  1420,
4157  418,
4158  1417,
4159  407,
4160  1412,
4161  406,
4162  1411,
4163  409,
4164  417,
4165  1414,
4166  1425,
4167  1415,
4168  1413,
4169  416,
4170  1424,
4171  408,
4172  1421,
4173  1418,
4174  415,
4175  1427,
4176  1416,
4177  410,
4178  1431,
4179  1419,
4180  1429,
4181  414,
4182  411,
4183  412,
4184  1433,
4185  1422,
4186  1434,
4187  401,
4188  1435,
4189  400,
4190  1437
4191 };
4192 
4193 // This gives center of quadrant XYZ in STAR coordinate
4194 // This does NOT get modified by alignment parameters.
4195 void StFgtGeom::getQuadCenterXYZ(Short_t disc, Short_t quad, TVector3 &xyz){
4196  char l;
4197  short d,q;
4198  double p,p1,p2,r,r1,r2;
4199  int gidp=encodeGeoId(disc,quad,'P',(short)(kFgtNumStrips/2));
4200  getGlobalPhysicalCoordinate(gidp,d,q,l,p,p1,p2);
4201  int gidr=encodeGeoId(disc,quad,'R',(short)(kFgtNumRstripsPerOctant/2));
4202  getGlobalPhysicalCoordinate(gidr,d,q,l,r,r1,r2);
4203  xyz.SetXYZ(r*cos(p),r*sin(p),getDiscZ(disc));
4204 }
4205 
4206 /*
4207  * $Id: StFgtGeom.cxx,v 1.38 2015/05/21 19:46:19 akio Exp $
4208  * $Log: StFgtGeom.cxx,v $
4209  * Revision 1.38 2015/05/21 19:46:19 akio
4210  * fixes to pass cppcheck
4211  *
4212  * Revision 1.37 2013/01/31 15:44:27 akio
4213  * Adding getQuadCenterXYZ
4214  *
4215  * Revision 1.36 2012/11/05 15:43:40 akio
4216  * FgtSlowSimu related fixes for r/phi consistency & speed up
4217  *
4218  * Revision 1.35 2012/08/25 17:23:34 avossen
4219  * made getQuad compatible with angles between 0 and 2*pi
4220  *
4221  * Revision 1.34 2012/08/15 18:03:36 rfatemi
4222  * Bug fix for getGlobalPhysicalCoordinate by pnord, computation done in computeGlobalPhysicalCoordinate
4223  *
4224  * Revision 1.33 2012/05/11 19:45:18 rfatemi
4225  * added getGlobalPhysicalCoordinate
4226  *
4227  * Revision 1.32 2012/03/15 17:17:44 rfatemi
4228  * more INFO->DEBUG
4229  *
4230  * Revision 1.31 2012/03/15 15:42:46 rfatemi
4231  * changed layer tests to "R" and "P" instead of "S" and "L"
4232  *
4233  * Revision 1.30 2012/03/15 00:18:12 wwitzke
4234  * Added boundary conditions to StFgtGeom.
4235  *
4236  * Revision 1.29 2012/02/09 18:23:24 wwitzke
4237  * Fixed various minor issues, including nesting the StFgtGeomData, making the
4238  * various "pi" variables use the TMath definions of pi, and removing the various
4239  * asserts from the code.
4240  *
4241  * Revision 1.26 2012/02/09 16:49:02 wwitzke
4242  * Fixed naming convention problems (camel casing).
4243  *
4244  * Revision 1.25 2012/02/09 16:16:39 wwitzke
4245  * Made minor fix to StFgtGeom.h to eliminate warnings.
4246  *
4247  * Revision 1.24 2012/01/27 13:21:55 rfatemi
4248  * Use only constants in StFgtConsts.h
4249  *
4250  * Revision 1.23 2012/01/26 13:13:12 sgliske
4251  * Updated to use StFgtConsts, which
4252  * replaces StFgtEnums and StFgtGeomDefs
4253  *
4254  * Revision 1.22 2011/11/09 00:50:04 rfatemi
4255  * Fix width phi strips with r < rMid()
4256  *
4257  * Revision 1.21 2011/11/08 22:40:06 rfatemi
4258  * Fixed flat part in phi2LocalStripId
4259  *
4260  * Revision 1.20 2011/11/06 22:34:21 rfatemi
4261  * implement phi2LocalStripId
4262  *
4263  * Revision 1.19 2011/11/05 02:25:14 rfatemi
4264  * add phi2LocalStripId
4265  *
4266  * Revision 1.18 2011/11/03 16:18:51 balewski
4267  * remove printout
4268  *
4269  * Revision 1.17 2011/10/13 21:02:15 balewski
4270  * cleanup of not needed intermediate methods
4271  *
4272  * Revision 1.16 2011/10/13 15:41:36 rfatemi
4273  * change acceptance area for hits to Rlast + 1/2 pitch or Rfirst - 1/2 pitch
4274  *
4275  * Revision 1.15 2011/10/11 17:52:22 rfatemi
4276  * Put back mRadStripOff and mPhiStripOff
4277  *
4278  * Revision 1.14 2011/10/09 16:24:21 rfatemi
4279  * Update rad2LocalStripId
4280  *
4281  * Revision 1.13 2011/10/09 13:37:10 rfatemi
4282  * Update rad2LocalStripId
4283  *
4284  * Revision 1.12 2011/10/07 03:42:54 rfatemi
4285  * Update to rad2LocalStripId
4286  *
4287  * Revision 1.11 2011/09/29 21:35:47 balewski
4288  * more functions, fixing phi error for quadrant recognision
4289  *
4290  * Revision 1.10 2011/09/29 18:52:03 wwitzke
4291  * Changed the ordering of the items in the file. The big arrays are now towards
4292  * the bottom. This was to facilitate editing and maintenance.
4293  *
4294  * Revision 1.9 2011/09/29 18:45:49 wwitzke
4295  * Fixed bug with calculation of pi. Weird.
4296  *
4297  * Revision 1.8 2011/09/29 18:34:53 sgliske
4298  * Fixed phiQuadXaxis, added asserts to getQuad,and added reverse lookup: elec. coord. from geoId
4299  *
4300  *
4301  */