292{
295 std::vector<double> zplane, rmin, rmax;
296
297 std::string id1 =
id;
298 if(id.starts_with( "FrontSupportMother")) id1 = "FrontSupportMother";
299 else if(id.starts_with( "BackSupportMother")) id1 = "BackSupportMother";
300 else if(
id.
find(
"Stretchers") != std::string::npos) id1 =
"Stretchers";
301 else if(id == "FrontMiddleRing::LowerHole") id1 = "FrontMiddleRing::LH";
302 else if(id == "FrontMiddleRing::LowerGTen") id1 = "FrontMiddleRing::LGT";
303 else if(id == "FrontMiddleRing::UpperHole") id1 = "FrontMiddleRing::UH";
304 else if(id == "FrontMiddleRing::UpperGTen") id1 = "FrontMiddleRing::UGT";
305 else if(id == "BackMiddleRing::LowerHole") id1 = "BackMiddleRing::LH";
306 else if(id == "BackMiddleRing::LowerGTen") id1 = "BackMiddleRing::LGT";
307 else if(id == "BackMiddleRing::UpperHole") id1 = "BackMiddleRing::UH";
308 else if(id == "BackMiddleRing::UpperGTen") id1 = "BackMiddleRing::UGT";
309
310 std::map<int, unsigned int> pcone;
311 int nzplanes = 0;
312 double R0 = 0.;
314 const std::string&
object = (*m_DB_pcons)[
i]->getString(
"PCONNAME");
315 if(object == id1){
316 int key = (*m_DB_pcons)[
i]->getInt(
"NZPLANE");
317 if(pcone.find(key) != pcone.end()){
319 nzplanes = 0;
320 break;
321 }
323 if(key >= 0) ++ nzplanes;
324 else R0 = (*m_DB_pcons)[
i]->getDouble(
"RMIN")*Gaudi::Units::mm;
325 }
326 }
327 if(nzplanes > 0){
328 zplane.resize(nzplanes); rmin.resize(nzplanes); rmax.resize(nzplanes);
329 for(
int n = 0;
n < nzplanes; ++
n){
330 zplane[
n] = (*m_DB_pcons)[pcone[
n]]->getDouble(
"ZPOS")*Gaudi::Units::mm;
331 rmin[
n] = R0 + (*m_DB_pcons)[pcone[
n]]->getDouble(
"RMIN")*Gaudi::Units::mm;
332 rmax[
n] = R0 + (*m_DB_pcons)[pcone[
n]]->getDouble(
"RMAX")*Gaudi::Units::mm;
333 }
334 if(id1 == "FrontSupportMother"){
335 if(
id.
find(
"Inner") != std::string::npos){
336 zplane.resize(2); rmin.resize(2); rmax.resize(2);
338 rmax[0] = rlim;
339 rmax[1] = rlim;
340 }
else if(
id.
find(
"Outer") != std::string::npos){
342 rmin[0] = rlim;
343 rmin[1] = rlim;
344 }
345 }
346 if(id1 == "BackSupportMother"){
347 if(
id.
find(
"Inner") != std::string::npos){
348 zplane.resize(2); rmin.resize(2); rmax.resize(2);
350 rmax[0] = rlim;
351 rmax[1] = rlim;
352 }
else if(
id.
find(
"Outer") != std::string::npos){
354 rmin[0] = rlim;
355 rmin[1] = rlim;
356 }
357 }
358 if(id1 == "Stretchers"){
359 if(id == "WideStretchers"){
360 double dfiWS = 360./3./256.*24.*Gaudi::Units::deg;
362 phi_size = dfiWS;
363 }
364 if(id == "NarrowStretchers"){
366 double dfiNS = lengthNS / rmax[0] * Gaudi::Units::rad;
368 phi_size = dfiNS;
369 }
370 }
371
372#ifdef DEBUG
373std::cout << "!!!! " << id << ":" << std::endl;
374for(
int i = 0;
i < nzplanes; ++
i){
375 std::cout <<
"\t" <<
i <<
" " << zplane[
i] <<
" " << rmin[
i] <<
" " << rmax[
i] << std::endl;
376}
377#endif
378 } else {
379 if(id.starts_with( "FrontSupportMother")){
380 zplane.resize(6); rmin.resize(6); rmax.resize(6);
381 zplane[0] = 0. *Gaudi::Units::mm; rmin[0] = 292.*Gaudi::Units::mm-1.*Gaudi::Units::mm; rmax[0] = 2077.*Gaudi::Units::mm-7.*Gaudi::Units::mm;
382 zplane[1] = 61. *Gaudi::Units::mm; rmin[1] = 292.*Gaudi::Units::mm-1.*Gaudi::Units::mm; rmax[1] = 2077.*Gaudi::Units::mm-7.*Gaudi::Units::mm;
383 zplane[2] = 61. *Gaudi::Units::mm; rmin[2] = 2023.*Gaudi::Units::mm-7.*Gaudi::Units::mm; rmax[2] = 2077.*Gaudi::Units::mm-7.*Gaudi::Units::mm;
384 zplane[3] = 72.3*Gaudi::Units::mm; rmin[3] = 2023.*Gaudi::Units::mm-7.*Gaudi::Units::mm; rmax[3] = 2077.*Gaudi::Units::mm-7.*Gaudi::Units::mm;
385 zplane[4] = 124.2*Gaudi::Units::mm; rmin[4] = 2051.*Gaudi::Units::mm-7.*Gaudi::Units::mm; rmax[4] = 2077.*Gaudi::Units::mm-7.*Gaudi::Units::mm;
386 zplane[5] = 153. *Gaudi::Units::mm; rmin[5] = 2051.*Gaudi::Units::mm-7.*Gaudi::Units::mm; rmax[5] = 2077.*Gaudi::Units::mm-7.*Gaudi::Units::mm;
387 if(id == "FrontSupportMother::Outer"){
388 rmin[0] = 603.*Gaudi::Units::mm-1.*Gaudi::Units::mm;
389 rmin[1] = 603.*Gaudi::Units::mm-1.*Gaudi::Units::mm;
390 }
391 if(id == "FrontSupportMother::Inner"){
392 zplane.resize(2); rmin.resize(2); rmax.resize(2);
393 rmax[0] = 614.*Gaudi::Units::mm;
394 rmax[1] = 614.*Gaudi::Units::mm;
395 }
396 } else if(id.starts_with( "BackSupportMother")){
397 zplane.resize(4); rmin.resize(4); rmax.resize(4);
398 zplane[0] = 0.001*Gaudi::Units::mm; rmin[0] = 333.*Gaudi::Units::mm-1.*Gaudi::Units::mm; rmax[0] = 2077.*Gaudi::Units::mm-7.*Gaudi::Units::mm;
399 zplane[1] = 55. *Gaudi::Units::mm; rmin[1] = 333.*Gaudi::Units::mm-1.*Gaudi::Units::mm; rmax[1] = 2077.*Gaudi::Units::mm-7.*Gaudi::Units::mm;
400 zplane[2] = 55. *Gaudi::Units::mm; rmin[2] = 2051.*Gaudi::Units::mm-7.*Gaudi::Units::mm; rmax[2] = 2077.*Gaudi::Units::mm-7.*Gaudi::Units::mm;
401 zplane[3] = 147. *Gaudi::Units::mm; rmin[3] = 2051.*Gaudi::Units::mm-7.*Gaudi::Units::mm; rmax[3] = 2077.*Gaudi::Units::mm-7.*Gaudi::Units::mm;
402 if(id == "BackSupportMother::Outer"){
403 rmin[0] = 687.*Gaudi::Units::mm-1.*Gaudi::Units::mm;
404 rmin[1] = 687.*Gaudi::Units::mm-1.*Gaudi::Units::mm;
405 }
406 if(id == "BackSupportMother::Inner"){
407 zplane.resize(2); rmin.resize(2); rmax.resize(2);
408 rmax[0] = 699.*Gaudi::Units::mm;
409 rmax[1] = 699.*Gaudi::Units::mm;
410 }
411 } else if(id == "WideStretchers" || id == "NarrowStretchers"){
412 double dzS = 165.*Gaudi::Units::mm;
413 double dznotch = 10.*Gaudi::Units::mm;
414 double drnotch = 6.5*Gaudi::Units::mm;
415 double rmaxS = (2077. - 7.)*Gaudi::Units::mm;
416 double rminS = rmaxS - 26.*Gaudi::Units::mm;
417 double rmidS = rminS + drnotch;
418 zplane.resize(6); rmin.resize(6); rmax.resize(6);
419 zplane[0] = -dzS ; rmin[0] = rminS; rmax[0] = rmaxS;
420 zplane[1] = -dznotch; rmin[1] = rminS; rmax[1] = rmaxS;
421 zplane[2] = -dznotch; rmin[2] = rmidS; rmax[2] = rmaxS;
422 zplane[3] = dznotch; rmin[3] = rmidS; rmax[3] = rmaxS;
423 zplane[4] = dznotch; rmin[4] = rminS; rmax[4] = rmaxS;
424 zplane[5] = dzS ; rmin[5] = rminS; rmax[5] = rmaxS;
425 if(id == "WideStretchers"){
426 double dfiWS = 360./3./256.*24.*Gaudi::Units::deg;
428 phi_size = dfiWS;
429 }
430 if(id == "NarrowStretchers"){
431 double lengthNS = 200.*Gaudi::Units::mm;
432 double dfiNS = lengthNS / rmaxS * Gaudi::Units::rad;
434 phi_size = dfiNS;
435 }
436 } else if(id == "OuterSupportMother"){
437 double dzS = 165.*Gaudi::Units::mm;
438 double rmaxS = (2077. - 7.)*Gaudi::Units::mm;
439 double rminOTB = (2034. + 2.)*Gaudi::Units::mm;
440 double rmaxOTB = rminOTB + 3.*Gaudi::Units::mm;
441 double dzOTB = 201.*Gaudi::Units::mm;
442 zplane.resize(6); rmin.resize(6); rmax.resize(6);
443 zplane[0] = -dzOTB ; rmin[0] = rminOTB; rmax[0] = rmaxOTB;
444 zplane[1] = -dzS; rmin[1] = rminOTB; rmax[1] = rmaxOTB;
445 zplane[2] = -dzS; rmin[2] = rminOTB; rmax[2] = rmaxS;
446 zplane[3] = dzS; rmin[3] = rminOTB; rmax[3] = rmaxS;
447 zplane[4] = dzS; rmin[4] = rminOTB; rmax[4] = rmaxOTB;
448 zplane[5] = dzOTB ; rmin[5] = rminOTB; rmax[5] = rmaxOTB;
449 } else if(id == "FrontMiddleRing"){
450 double r0 =614.*Gaudi::Units::mm-2.*Gaudi::Units::mm ;
451 zplane.resize(4); rmin.resize(4); rmax.resize(4);
452 zplane[0] = 0. *Gaudi::Units::mm; rmin[0] =
r0 - 57.*Gaudi::Units::mm; rmax[0] =
r0 + 57.*Gaudi::Units::mm;
453 zplane[1] = 27.5*Gaudi::Units::mm; rmin[1] =
r0 - 57.*Gaudi::Units::mm; rmax[1] =
r0 + 57.*Gaudi::Units::mm;
454 zplane[2] = 27.5*Gaudi::Units::mm; rmin[2] =
r0 - 40.*Gaudi::Units::mm; rmax[2] =
r0 + 40.*Gaudi::Units::mm;
455 zplane[3] = 59. *Gaudi::Units::mm; rmin[3] =
r0 - 40.*Gaudi::Units::mm; rmax[3] =
r0 + 40.*Gaudi::Units::mm;
456 } else if(id == "FrontMiddleRing::LowerHole"){
457 double r0 = 614.*Gaudi::Units::mm-2.*Gaudi::Units::mm;
458 zplane.resize(6); rmin.resize(6); rmax.resize(6);
459 zplane[0] = 23. *Gaudi::Units::mm; rmin[0] =
r0 - 28.3*Gaudi::Units::mm; rmax[0] =
r0 - 8.*Gaudi::Units::mm;
460 zplane[1] = 27.5*Gaudi::Units::mm; rmin[1] =
r0 - 28.3*Gaudi::Units::mm; rmax[1] =
r0 - 8.*Gaudi::Units::mm;
461 zplane[2] = 27.5*Gaudi::Units::mm; rmin[2] =
r0 - 40. *Gaudi::Units::mm; rmax[2] =
r0 - 8.*Gaudi::Units::mm;
462 zplane[3] = 48.5*Gaudi::Units::mm; rmin[3] =
r0 - 40. *Gaudi::Units::mm; rmax[3] =
r0 - 8.*Gaudi::Units::mm;
463 zplane[4] = 48.5*Gaudi::Units::mm; rmin[4] =
r0 - 28.3*Gaudi::Units::mm; rmax[4] =
r0 - 8.*Gaudi::Units::mm;
464 zplane[5] = 53. *Gaudi::Units::mm; rmin[5] =
r0 - 28.3*Gaudi::Units::mm; rmax[5] =
r0 - 8.*Gaudi::Units::mm;
465 } else if(id == "FrontMiddleRing::LowerGTen"){
466 double r0 = 614.*Gaudi::Units::mm - 2.*Gaudi::Units::mm;
467 zplane.resize(6); rmin.resize(6); rmax.resize(6);
468 zplane[0] = 23.*Gaudi::Units::mm; rmin[0] =
r0 - 28.*Gaudi::Units::mm; rmax[0] =
r0 - 8.*Gaudi::Units::mm;
469 zplane[1] = 28.*Gaudi::Units::mm; rmin[1] =
r0 - 28.*Gaudi::Units::mm; rmax[1] =
r0 - 8.*Gaudi::Units::mm;
470 zplane[2] = 28.*Gaudi::Units::mm; rmin[2] =
r0 - 40.*Gaudi::Units::mm; rmax[2] =
r0 - 8.*Gaudi::Units::mm;
471 zplane[3] = 48.*Gaudi::Units::mm; rmin[3] =
r0 - 40.*Gaudi::Units::mm; rmax[3] =
r0 - 8.*Gaudi::Units::mm;
472 zplane[4] = 48.*Gaudi::Units::mm; rmin[4] =
r0 - 28.*Gaudi::Units::mm; rmax[4] =
r0 - 8.*Gaudi::Units::mm;
473 zplane[5] = 53.*Gaudi::Units::mm; rmin[5] =
r0 - 28.*Gaudi::Units::mm; rmax[5] =
r0 - 8.*Gaudi::Units::mm;
474 } else if(id == "FrontMiddleRing::UpperHole"){
475 double r0 =614.*Gaudi::Units::mm-2.*Gaudi::Units::mm ;
476 zplane.resize(6); rmin.resize(6); rmax.resize(6);
477 zplane[0] = 23. *Gaudi::Units::mm; rmin[0] =
r0 + 8.*Gaudi::Units::mm; rmax[0] =
r0 + 28.3*Gaudi::Units::mm;
478 zplane[1] = 27.5*Gaudi::Units::mm; rmin[1] =
r0 + 8.*Gaudi::Units::mm; rmax[1] =
r0 + 28.3*Gaudi::Units::mm;
479 zplane[2] = 27.5*Gaudi::Units::mm; rmin[2] =
r0 + 8.*Gaudi::Units::mm; rmax[2] =
r0 + 40. *Gaudi::Units::mm;
480 zplane[3] = 48.5*Gaudi::Units::mm; rmin[3] =
r0 + 8.*Gaudi::Units::mm; rmax[3] =
r0 + 40. *Gaudi::Units::mm;
481 zplane[4] = 48.5*Gaudi::Units::mm; rmin[4] =
r0 + 8.*Gaudi::Units::mm; rmax[4] =
r0 + 28.3*Gaudi::Units::mm;
482 zplane[5] = 53. *Gaudi::Units::mm; rmin[5] =
r0 + 8.*Gaudi::Units::mm; rmax[5] =
r0 + 28.3*Gaudi::Units::mm;
483 } else if(id == "FrontMiddleRing::UpperGTen"){
484 double r0 =614.*Gaudi::Units::mm-2.*Gaudi::Units::mm ;
485 zplane.resize(6); rmin.resize(6); rmax.resize(6);
486 zplane[0] = 23.*Gaudi::Units::mm; rmin[0] =
r0 + 8.*Gaudi::Units::mm; rmax[0] =
r0 + 28.*Gaudi::Units::mm;
487 zplane[1] = 28.*Gaudi::Units::mm; rmin[1] =
r0 + 8.*Gaudi::Units::mm; rmax[1] =
r0 + 28.*Gaudi::Units::mm;
488 zplane[2] = 28.*Gaudi::Units::mm; rmin[2] =
r0 + 8.*Gaudi::Units::mm; rmax[2] =
r0 + 40.*Gaudi::Units::mm;
489 zplane[3] = 48.*Gaudi::Units::mm; rmin[3] =
r0 + 8.*Gaudi::Units::mm; rmax[3] =
r0 + 40.*Gaudi::Units::mm;
490 zplane[4] = 48.*Gaudi::Units::mm; rmin[4] =
r0 + 8.*Gaudi::Units::mm; rmax[4] =
r0 + 28.*Gaudi::Units::mm;
491 zplane[5] = 53.*Gaudi::Units::mm; rmin[5] =
r0 + 8.*Gaudi::Units::mm; rmax[5] =
r0 + 28.*Gaudi::Units::mm;
492 } else if(id == "FrontInnerRing"){
493 double r0 = 335.5*Gaudi::Units::mm-1.*Gaudi::Units::mm;
494 zplane.resize(5); rmin.resize(5); rmax.resize(5);
495 zplane[0] = 0. *Gaudi::Units::mm; rmin[0] =
r0 - 22.5*Gaudi::Units::mm; rmax[0] =
r0 + 51.5*Gaudi::Units::mm;
496 zplane[1] = 6. *Gaudi::Units::mm; rmin[1] =
r0 - 28.5*Gaudi::Units::mm; rmax[1] =
r0 + 51.5*Gaudi::Units::mm;
497 zplane[2] = 27.5*Gaudi::Units::mm; rmin[2] =
r0 - 28.5*Gaudi::Units::mm; rmax[2] =
r0 + 51.5*Gaudi::Units::mm;
498 zplane[3] = 27.5*Gaudi::Units::mm; rmin[3] =
r0 - 43.5*Gaudi::Units::mm; rmax[3] =
r0 + 40.5*Gaudi::Units::mm;
499 zplane[4] = 59. *Gaudi::Units::mm; rmin[4] =
r0 - 43.5*Gaudi::Units::mm; rmax[4] =
r0 + 40.5*Gaudi::Units::mm;
500 } else if(id == "FrontInnerRing::Hole"){
501 double r0 = 335.5*Gaudi::Units::mm-1.*Gaudi::Units::mm;
502 zplane.resize(6); rmin.resize(6); rmax.resize(6);
503 zplane[0] = 23. *Gaudi::Units::mm; rmin[0] =
r0 + 6.5*Gaudi::Units::mm; rmax[0] =
r0 + 29.5*Gaudi::Units::mm;
504 zplane[1] = 27.5*Gaudi::Units::mm; rmin[1] =
r0 + 6.5*Gaudi::Units::mm; rmax[1] =
r0 + 29.5*Gaudi::Units::mm;
505 zplane[2] = 27.5*Gaudi::Units::mm; rmin[2] =
r0 + 6.5*Gaudi::Units::mm; rmax[2] =
r0 + 40.5*Gaudi::Units::mm;
506 zplane[3] = 48.5*Gaudi::Units::mm; rmin[3] =
r0 + 6.5*Gaudi::Units::mm; rmax[3] =
r0 + 40.5*Gaudi::Units::mm;
507 zplane[4] = 48.5*Gaudi::Units::mm; rmin[4] =
r0 + 6.5*Gaudi::Units::mm; rmax[4] =
r0 + 29.5*Gaudi::Units::mm;
508 zplane[5] = 53. *Gaudi::Units::mm; rmin[5] =
r0 + 6.5*Gaudi::Units::mm; rmax[5] =
r0 + 29.5*Gaudi::Units::mm;
509 } else if(id == "FrontInnerRing::GTen"){
510 double r0 = 335.5*Gaudi::Units::mm-1.*Gaudi::Units::mm;
511 zplane.resize(6); rmin.resize(6); rmax.resize(6);
512 zplane[0] = 23.*Gaudi::Units::mm; rmin[0] =
r0 + 8.5*Gaudi::Units::mm; rmax[0] =
r0 + 28.5*Gaudi::Units::mm;
513 zplane[1] = 28.*Gaudi::Units::mm; rmin[1] =
r0 + 8.5*Gaudi::Units::mm; rmax[1] =
r0 + 28.5*Gaudi::Units::mm;
514 zplane[2] = 28.*Gaudi::Units::mm; rmin[2] =
r0 + 8.5*Gaudi::Units::mm; rmax[2] =
r0 + 40.5*Gaudi::Units::mm;
515 zplane[3] = 48.*Gaudi::Units::mm; rmin[3] =
r0 + 8.5*Gaudi::Units::mm; rmax[3] =
r0 + 40.5*Gaudi::Units::mm;
516 zplane[4] = 48.*Gaudi::Units::mm; rmin[4] =
r0 + 8.5*Gaudi::Units::mm; rmax[4] =
r0 + 28.5*Gaudi::Units::mm;
517 zplane[5] = 53.*Gaudi::Units::mm; rmin[5] =
r0 + 8.5*Gaudi::Units::mm; rmax[5] =
r0 + 28.5*Gaudi::Units::mm;
518 } else if(id == "BackMiddleRing"){
519 double r0 = 699.*Gaudi::Units::mm-2.5*Gaudi::Units::mm;
520 zplane.resize(4); rmin.resize(4); rmax.resize(4);
521 zplane[0] = 0. *Gaudi::Units::mm; rmin[0] =
r0 - 57.*Gaudi::Units::mm; rmax[0] =
r0 + 57.*Gaudi::Units::mm;
522 zplane[1] = 21. *Gaudi::Units::mm; rmin[1] =
r0 - 57.*Gaudi::Units::mm; rmax[1] =
r0 + 57.*Gaudi::Units::mm;
523 zplane[2] = 21. *Gaudi::Units::mm; rmin[2] =
r0 - 40.*Gaudi::Units::mm; rmax[2] =
r0 + 40.*Gaudi::Units::mm;
524 zplane[3] = 52.5*Gaudi::Units::mm; rmin[3] =
r0 - 40.*Gaudi::Units::mm; rmax[3] =
r0 + 40.*Gaudi::Units::mm;
525 } else if(id == "BackMiddleRing::LowerHole"){
526 double r0 = 699.*Gaudi::Units::mm-2.5*Gaudi::Units::mm;
527 zplane.resize(6); rmin.resize(6); rmax.resize(6);
528 zplane[0] = 16.5*Gaudi::Units::mm; rmin[0] =
r0 - 28.3*Gaudi::Units::mm; rmax[0] =
r0 - 8.*Gaudi::Units::mm;
529 zplane[1] = 21. *Gaudi::Units::mm; rmin[1] =
r0 - 28.3*Gaudi::Units::mm; rmax[1] =
r0 - 8.*Gaudi::Units::mm;
530 zplane[2] = 21. *Gaudi::Units::mm; rmin[2] =
r0 - 40. *Gaudi::Units::mm; rmax[2] =
r0 - 8.*Gaudi::Units::mm;
531 zplane[3] = 42. *Gaudi::Units::mm; rmin[3] =
r0 - 40. *Gaudi::Units::mm; rmax[3] =
r0 - 8.*Gaudi::Units::mm;
532 zplane[4] = 42. *Gaudi::Units::mm; rmin[4] =
r0 - 28.3*Gaudi::Units::mm; rmax[4] =
r0 - 8.*Gaudi::Units::mm;
533
534 zplane[5] = 46.5*Gaudi::Units::mm; rmin[5] =
r0 - 28.3*Gaudi::Units::mm; rmax[5] =
r0 - 8.*Gaudi::Units::mm;
535 } else if(id == "BackMiddleRing::LowerGTen"){
536 double r0 = 699.*Gaudi::Units::mm-2.5*Gaudi::Units::mm;
537 zplane.resize(6); rmin.resize(6); rmax.resize(6);
538 zplane[0] = 16.5*Gaudi::Units::mm; rmin[0] =
r0 - 28.*Gaudi::Units::mm; rmax[0] =
r0 - 8.*Gaudi::Units::mm;
539 zplane[1] = 21.5*Gaudi::Units::mm; rmin[1] =
r0 - 28.*Gaudi::Units::mm; rmax[1] =
r0 - 8.*Gaudi::Units::mm;
540 zplane[2] = 21.5*Gaudi::Units::mm; rmin[2] =
r0 - 40.*Gaudi::Units::mm; rmax[2] =
r0 - 8.*Gaudi::Units::mm;
541 zplane[3] = 41.5*Gaudi::Units::mm; rmin[3] =
r0 - 40.*Gaudi::Units::mm; rmax[3] =
r0 - 8.*Gaudi::Units::mm;
542 zplane[4] = 41.5*Gaudi::Units::mm; rmin[4] =
r0 - 28.*Gaudi::Units::mm; rmax[4] =
r0 - 8.*Gaudi::Units::mm;
543 zplane[5] = 46.5*Gaudi::Units::mm; rmin[5] =
r0 - 28.*Gaudi::Units::mm; rmax[5] =
r0 - 8.*Gaudi::Units::mm;
544 } else if(id == "BackMiddleRing::UpperHole"){
545 double r0 = 699.*Gaudi::Units::mm-2.5*Gaudi::Units::mm;
546 zplane.resize(6); rmin.resize(6); rmax.resize(6);
547 zplane[0] = 16.5*Gaudi::Units::mm; rmin[0] =
r0 + 8.*Gaudi::Units::mm; rmax[0] =
r0 + 28.3*Gaudi::Units::mm;
548 zplane[1] = 21. *Gaudi::Units::mm; rmin[1] =
r0 + 8.*Gaudi::Units::mm; rmax[1] =
r0 + 28.3*Gaudi::Units::mm;
549 zplane[2] = 21. *Gaudi::Units::mm; rmin[2] =
r0 + 8.*Gaudi::Units::mm; rmax[2] =
r0 + 40. *Gaudi::Units::mm;
550 zplane[3] = 42. *Gaudi::Units::mm; rmin[3] =
r0 + 8.*Gaudi::Units::mm; rmax[3] =
r0 + 40. *Gaudi::Units::mm;
551 zplane[4] = 42. *Gaudi::Units::mm; rmin[4] =
r0 + 8.*Gaudi::Units::mm; rmax[4] =
r0 + 28.3*Gaudi::Units::mm;
552 zplane[5] = 46.5*Gaudi::Units::mm; rmin[5] =
r0 + 8.*Gaudi::Units::mm; rmax[5] =
r0 + 28.3*Gaudi::Units::mm;
553 } else if(id == "BackMiddleRing::UpperGTen"){
554 double r0 = 699.*Gaudi::Units::mm-2.5*Gaudi::Units::mm;
555 zplane.resize(6); rmin.resize(6); rmax.resize(6);
556 zplane[0] = 16.5*Gaudi::Units::mm; rmin[0] =
r0 + 8.*Gaudi::Units::mm; rmax[0] =
r0 + 28.*Gaudi::Units::mm;
557 zplane[1] = 21.5*Gaudi::Units::mm; rmin[1] =
r0 + 8.*Gaudi::Units::mm; rmax[1] =
r0 + 28.*Gaudi::Units::mm;
558 zplane[2] = 21.5*Gaudi::Units::mm; rmin[2] =
r0 + 8.*Gaudi::Units::mm; rmax[2] =
r0 + 40.*Gaudi::Units::mm;
559 zplane[3] = 41.5*Gaudi::Units::mm; rmin[3] =
r0 + 8.*Gaudi::Units::mm; rmax[3] =
r0 + 40.*Gaudi::Units::mm;
560 zplane[4] = 41.5*Gaudi::Units::mm; rmin[4] =
r0 + 8.*Gaudi::Units::mm; rmax[4] =
r0 + 28.*Gaudi::Units::mm;
561 zplane[5] = 46.5*Gaudi::Units::mm; rmin[5] =
r0 + 8.*Gaudi::Units::mm; rmax[5] =
r0 + 28.*Gaudi::Units::mm;
562 } else if(id == "BackInnerRing"){
563 double r0 =357.5*Gaudi::Units::mm-1.*Gaudi::Units::mm;
564 zplane.resize(4); rmin.resize(4); rmax.resize(4);
565 zplane[0] = 0. *Gaudi::Units::mm; rmin[0] =
r0 - 22.5*Gaudi::Units::mm; rmax[0] =
r0 + 53.5*Gaudi::Units::mm;
566 zplane[1] = 22.5*Gaudi::Units::mm; rmin[1] =
r0 - 22.5*Gaudi::Units::mm; rmax[1] =
r0 + 53.5*Gaudi::Units::mm;
567 zplane[2] = 22.5*Gaudi::Units::mm; rmin[2] =
r0 - 24.5*Gaudi::Units::mm; rmax[2] =
r0 + 40.5*Gaudi::Units::mm;
568 zplane[3] = 54. *Gaudi::Units::mm; rmin[3] =
r0 - 24.5*Gaudi::Units::mm; rmax[3] =
r0 + 40.5*Gaudi::Units::mm;
569 } else if(id == "BackInnerRing::Hole"){
570 double r0 =357.5*Gaudi::Units::mm-1.*Gaudi::Units::mm;
571 zplane.resize(6); rmin.resize(6); rmax.resize(6);
572 zplane[0] = 18. *Gaudi::Units::mm; rmin[0] =
r0 + 6.5*Gaudi::Units::mm; rmax[0] =
r0 + 29.5*Gaudi::Units::mm;
573 zplane[1] = 22.5*Gaudi::Units::mm; rmin[1] =
r0 + 6.5*Gaudi::Units::mm; rmax[1] =
r0 + 29.5*Gaudi::Units::mm;
574 zplane[2] = 22.5*Gaudi::Units::mm; rmin[2] =
r0 + 6.5*Gaudi::Units::mm; rmax[2] =
r0 + 40.5*Gaudi::Units::mm;
575 zplane[3] = 43.5*Gaudi::Units::mm; rmin[3] =
r0 + 6.5*Gaudi::Units::mm; rmax[3] =
r0 + 40.5*Gaudi::Units::mm;
576 zplane[4] = 43.5*Gaudi::Units::mm; rmin[4] =
r0 + 6.5*Gaudi::Units::mm; rmax[4] =
r0 + 29.5*Gaudi::Units::mm;
577 zplane[5] = 48. *Gaudi::Units::mm; rmin[5] =
r0 + 6.5*Gaudi::Units::mm; rmax[5] =
r0 + 29.5*Gaudi::Units::mm;
578 } else if(id == "BackInnerRing::GTen"){
579 double r0 =357.5*Gaudi::Units::mm-1.*Gaudi::Units::mm;
580 zplane.resize(6); rmin.resize(6); rmax.resize(6);
581 zplane[0] = 18.*Gaudi::Units::mm; rmin[0] =
r0 + 8.5*Gaudi::Units::mm; rmax[0] =
r0 + 28.5*Gaudi::Units::mm;
582 zplane[1] = 23.*Gaudi::Units::mm; rmin[1] =
r0 + 8.5*Gaudi::Units::mm; rmax[1] =
r0 + 28.5*Gaudi::Units::mm;
583 zplane[2] = 23.*Gaudi::Units::mm; rmin[2] =
r0 + 8.5*Gaudi::Units::mm; rmax[2] =
r0 + 40.5*Gaudi::Units::mm;
584 zplane[3] = 43.*Gaudi::Units::mm; rmin[3] =
r0 + 8.5*Gaudi::Units::mm; rmax[3] =
r0 + 40.5*Gaudi::Units::mm;
585 zplane[4] = 43.*Gaudi::Units::mm; rmin[4] =
r0 + 8.5*Gaudi::Units::mm; rmax[4] =
r0 + 28.5*Gaudi::Units::mm;
586 zplane[5] = 48.*Gaudi::Units::mm; rmin[5] =
r0 + 8.5*Gaudi::Units::mm; rmax[5] =
r0 + 28.5*Gaudi::Units::mm;
587 } else if(id == "FrontOuterRing"){
588 double r0 = 1961.*Gaudi::Units::mm-7.*Gaudi::Units::mm;
589 zplane.resize(7); rmin.resize(7); rmax.resize(7);
590 zplane[0] = 0. *Gaudi::Units::mm; rmin[0] =
r0 + 0.*Gaudi::Units::mm; rmax[0] =
r0 + 111.*Gaudi::Units::mm;
591 zplane[1] = 5. *Gaudi::Units::mm; rmin[1] =
r0 + 0.*Gaudi::Units::mm; rmax[1] =
r0 + 116.*Gaudi::Units::mm;
592 zplane[2] = 20. *Gaudi::Units::mm; rmin[2] =
r0 + 0.*Gaudi::Units::mm; rmax[2] =
r0 + 116.*Gaudi::Units::mm;
593 zplane[3] = 20. *Gaudi::Units::mm; rmin[3] =
r0 + 62.*Gaudi::Units::mm; rmax[3] =
r0 + 116.*Gaudi::Units::mm;
594 zplane[4] = 63.3*Gaudi::Units::mm; rmin[4] =
r0 + 62.*Gaudi::Units::mm; rmax[4] =
r0 + 116.*Gaudi::Units::mm;
595 zplane[5] = 115.2*Gaudi::Units::mm; rmin[5] =
r0 + 90.*Gaudi::Units::mm; rmax[5] =
r0 + 116.*Gaudi::Units::mm;
596 zplane[6] = 144. *Gaudi::Units::mm; rmin[6] =
r0 + 90.*Gaudi::Units::mm; rmax[6] =
r0 + 116.*Gaudi::Units::mm;
597 } else if(id == "FrontOuterLongBar"){
598 zplane.resize(4); rmin.resize(4); rmax.resize(4);
599 zplane[0] = 0.*Gaudi::Units::mm; rmin[0] = 1969.7*Gaudi::Units::mm; rmax[0] = 2016.*Gaudi::Units::mm;
600 zplane[1] = 1.*Gaudi::Units::mm; rmin[1] = 1969.7*Gaudi::Units::mm; rmax[1] = 2016.*Gaudi::Units::mm;
601 zplane[2] = 1.*Gaudi::Units::mm; rmin[2] = 652. *Gaudi::Units::mm; rmax[2] = 2016.*Gaudi::Units::mm;
602 zplane[3] = 21.*Gaudi::Units::mm; rmin[3] = 652. *Gaudi::Units::mm; rmax[3] = 2016.*Gaudi::Units::mm;
603
604 } else if(id == "BackOuterRing"){
605 double r0 = 1961.*Gaudi::Units::mm-7.*Gaudi::Units::mm;
606 zplane.resize(7); rmin.resize(7); rmax.resize(7);
607 zplane[0] = 0.*Gaudi::Units::mm; rmin[0] =
r0 + 0.*Gaudi::Units::mm; rmax[0] =
r0 + 111.*Gaudi::Units::mm;
608 zplane[1] = 5.*Gaudi::Units::mm; rmin[1] =
r0 + 0.*Gaudi::Units::mm; rmax[1] =
r0 + 116.*Gaudi::Units::mm;
609 zplane[2] = 15.*Gaudi::Units::mm; rmin[2] =
r0 + 0.*Gaudi::Units::mm; rmax[2] =
r0 + 116.*Gaudi::Units::mm;
610 zplane[3] = 15.*Gaudi::Units::mm; rmin[3] =
r0 + 62.*Gaudi::Units::mm; rmax[3] =
r0 + 116.*Gaudi::Units::mm;
611 zplane[4] = 41.*Gaudi::Units::mm; rmin[4] =
r0 + 62.*Gaudi::Units::mm; rmax[4] =
r0 + 116.*Gaudi::Units::mm;
612 zplane[5] = 41.*Gaudi::Units::mm; rmin[5] =
r0 + 90.*Gaudi::Units::mm; rmax[5] =
r0 + 116.*Gaudi::Units::mm;
613 zplane[6] = 139.*Gaudi::Units::mm; rmin[6] =
r0 + 90.*Gaudi::Units::mm; rmax[6] =
r0 + 116.*Gaudi::Units::mm;
614 } else if(id == "BackOuterLongBar"){
615 zplane.resize(4); rmin.resize(4); rmax.resize(4);
616 zplane[0] = 0.*Gaudi::Units::mm; rmin[0] = 1969.7*Gaudi::Units::mm; rmax[0] = 2016.*Gaudi::Units::mm;
617 zplane[1] = 1.*Gaudi::Units::mm; rmin[1] = 1969.7*Gaudi::Units::mm; rmax[1] = 2016.*Gaudi::Units::mm;
618 zplane[2] = 1.*Gaudi::Units::mm; rmin[2] = 736.5*Gaudi::Units::mm; rmax[2] = 2016.*Gaudi::Units::mm;
619 zplane[3] = 21.*Gaudi::Units::mm; rmin[3] = 736.5*Gaudi::Units::mm; rmax[3] = 2016.*Gaudi::Units::mm;
620 } else {
621 throw std::runtime_error("EMECSupportConstruction: wrong Pcone id");
622 }
624 }
625
626 GeoPcon* shape = new GeoPcon(phi_start, phi_size);
627 for(
size_t i = 0;
i < zplane.size(); ++
i){
628 shape->addPlane(zplane[i], rmin[i], rmax[i]);
629 }
630
631 return shape;
632}
double getNumber(const IRDBRecordset_ptr &db, const map_t &m, const std::string &idx, const char *number, double defval=0.) const
std::string find(const std::string &s)
return a remapped string
const double r0
electron radius{cm}