618{
619
620 switch(magnet){
622 pointMagStart = HepGeom::Point3D<double>(
m_Config.pointQ1Start[(beam-1)*3],
m_Config.pointQ1Start[(beam-1)*3+1],
m_Config.pointQ1Start[(beam-1)*3+2]);
623 pointMagEnd = HepGeom::Point3D<double>(
m_Config.pointQ1End[(beam-1)*3],
m_Config.pointQ1End[(beam-1)*3+1],
m_Config.pointQ1End[(beam-1)*3+2]);
625 break;
627 if(std::abs(
Point[2]) < 38*CLHEP::m){
628 pointMagStart = HepGeom::Point3D<double>(
m_Config.pointQ2aStart[(beam-1)*3],
m_Config.pointQ2aStart[(beam-1)*3+1],
m_Config.pointQ2aStart[(beam-1)*3+2]);
629 pointMagEnd = HepGeom::Point3D<double>(
m_Config.pointQ2aEnd[(beam-1)*3],
m_Config.pointQ2aEnd[(beam-1)*3+1],
m_Config.pointQ2aEnd[(beam-1)*3+2]);
631 }
632 else
633 {
634 pointMagStart = HepGeom::Point3D<double>(
m_Config.pointQ2bStart[(beam-1)*3],
m_Config.pointQ2bStart[(beam-1)*3+1],
m_Config.pointQ2bStart[(beam-1)*3+2]);
635 pointMagEnd = HepGeom::Point3D<double>(
m_Config.pointQ2bEnd[(beam-1)*3],
m_Config.pointQ2bEnd[(beam-1)*3+1],
m_Config.pointQ2bEnd[(beam-1)*3+2]);
637 }
638 break;
640 pointMagStart = HepGeom::Point3D<double>(
m_Config.pointQ3Start[(beam-1)*3],
m_Config.pointQ3Start[(beam-1)*3+1],
m_Config.pointQ3Start[(beam-1)*3+2]);
641 pointMagEnd = HepGeom::Point3D<double>(
m_Config.pointQ3End[(beam-1)*3],
m_Config.pointQ3End[(beam-1)*3+1],
m_Config.pointQ3End[(beam-1)*3+2]);
643 break;
645 pointMagStart = HepGeom::Point3D<double>(
m_Config.pointQ4Start[(beam-1)*3],
m_Config.pointQ4Start[(beam-1)*3+1],
m_Config.pointQ4Start[(beam-1)*3+2]);
646 pointMagEnd = HepGeom::Point3D<double>(
m_Config.pointQ4End[(beam-1)*3],
m_Config.pointQ4End[(beam-1)*3+1],
m_Config.pointQ4End[(beam-1)*3+2]);
648 break;
650 pointMagStart = HepGeom::Point3D<double>(
m_Config.pointQ5Start[(beam-1)*3],
m_Config.pointQ5Start[(beam-1)*3+1],
m_Config.pointQ5Start[(beam-1)*3+2]);
651 pointMagEnd = HepGeom::Point3D<double>(
m_Config.pointQ5End[(beam-1)*3],
m_Config.pointQ5End[(beam-1)*3+1],
m_Config.pointQ5End[(beam-1)*3+2]);
653 break;
655 pointMagStart = HepGeom::Point3D<double>(
m_Config.pointQ6Start[(beam-1)*3],
m_Config.pointQ6Start[(beam-1)*3+1],
m_Config.pointQ6Start[(beam-1)*3+2]);
656 pointMagEnd = HepGeom::Point3D<double>(
m_Config.pointQ6End[(beam-1)*3],
m_Config.pointQ6End[(beam-1)*3+1],
m_Config.pointQ6End[(beam-1)*3+2]);
658 break;
660 if(std::abs(
Point[2]) < 263.5*CLHEP::m){
661 pointMagStart = HepGeom::Point3D<double>(
m_Config.pointQ7aStart[(beam-1)*3],
m_Config.pointQ7aStart[(beam-1)*3+1],
m_Config.pointQ7aStart[(beam-1)*3+2]);
662 pointMagEnd = HepGeom::Point3D<double>(
m_Config.pointQ7aEnd[(beam-1)*3],
m_Config.pointQ7aEnd[(beam-1)*3+1],
m_Config.pointQ7aEnd[(beam-1)*3+2]);
664 }
665 else
666 {
667 pointMagStart = HepGeom::Point3D<double>(
m_Config.pointQ7bStart[(beam-1)*3],
m_Config.pointQ7bStart[(beam-1)*3+1],
m_Config.pointQ7bStart[(beam-1)*3+2]);
668 pointMagEnd = HepGeom::Point3D<double>(
m_Config.pointQ7bEnd[(beam-1)*3],
m_Config.pointQ7bEnd[(beam-1)*3+1],
m_Config.pointQ7bEnd[(beam-1)*3+2]);
670 }
671 break;
673 if(std::abs(
Point[2]) < 63.5*CLHEP::m){
674 pointMagStart = HepGeom::Point3D<double>(
m_Config.pointD1aStart[(beam-1)*3],
m_Config.pointD1aStart[(beam-1)*3+1],
m_Config.pointD1aStart[(beam-1)*3+2]);
675 pointMagEnd = HepGeom::Point3D<double>(
m_Config.pointD1aEnd[(beam-1)*3],
m_Config.pointD1aEnd[(beam-1)*3+1],
m_Config.pointD1aEnd[(beam-1)*3+2]);
677 }
678 else if(std::abs(
Point[2]) < 67.5*CLHEP::m){
679 pointMagStart = HepGeom::Point3D<double>(
m_Config.pointD1bStart[(beam-1)*3],
m_Config.pointD1bStart[(beam-1)*3+1],
m_Config.pointD1bStart[(beam-1)*3+2]);
680 pointMagEnd = HepGeom::Point3D<double>(
m_Config.pointD1bEnd[(beam-1)*3],
m_Config.pointD1bEnd[(beam-1)*3+1],
m_Config.pointD1bEnd[(beam-1)*3+2]);
682 }
683
684 else if(std::abs(
Point[2]) < 72*CLHEP::m){
685 pointMagStart = HepGeom::Point3D<double>(
m_Config.pointD1cStart[(beam-1)*3],
m_Config.pointD1cStart[(beam-1)*3+1],
m_Config.pointD1cStart[(beam-1)*3+2]);
686 pointMagEnd = HepGeom::Point3D<double>(
m_Config.pointD1cEnd[(beam-1)*3],
m_Config.pointD1cEnd[(beam-1)*3+1],
m_Config.pointD1cEnd[(beam-1)*3+2]);
688 }
689
690 else if(std::abs(
Point[2]) < 76*CLHEP::m){
691 pointMagStart = HepGeom::Point3D<double>(
m_Config.pointD1dStart[(beam-1)*3],
m_Config.pointD1dStart[(beam-1)*3+1],
m_Config.pointD1dStart[(beam-1)*3+2]);
692 pointMagEnd = HepGeom::Point3D<double>(
m_Config.pointD1dEnd[(beam-1)*3],
m_Config.pointD1dEnd[(beam-1)*3+1],
m_Config.pointD1dEnd[(beam-1)*3+2]);
694 }
695
696 else if(std::abs(
Point[2]) < 80.5*CLHEP::m){
697 pointMagStart = HepGeom::Point3D<double>(
m_Config.pointD1eStart[(beam-1)*3],
m_Config.pointD1eStart[(beam-1)*3+1],
m_Config.pointD1eStart[(beam-1)*3+2]);
698 pointMagEnd = HepGeom::Point3D<double>(
m_Config.pointD1eEnd[(beam-1)*3],
m_Config.pointD1eEnd[(beam-1)*3+1],
m_Config.pointD1eEnd[(beam-1)*3+2]);
700 }
701
702 else {
703 pointMagStart = HepGeom::Point3D<double>(
m_Config.pointD1fStart[(beam-1)*3],
m_Config.pointD1fStart[(beam-1)*3+1],
m_Config.pointD1fStart[(beam-1)*3+2]);
704 pointMagEnd = HepGeom::Point3D<double>(
m_Config.pointD1fEnd[(beam-1)*3],
m_Config.pointD1fEnd[(beam-1)*3+1],
m_Config.pointD1fEnd[(beam-1)*3+2]);
706 }
707 break;
709 pointMagStart = HepGeom::Point3D<double>(
m_Config.pointD2Start[(beam-1)*3],
m_Config.pointD2Start[(beam-1)*3+1],
m_Config.pointD2Start[(beam-1)*3+2]);
710 pointMagEnd = HepGeom::Point3D<double>(
m_Config.pointD2End[(beam-1)*3],
m_Config.pointD2End[(beam-1)*3+1],
m_Config.pointD2End[(beam-1)*3+2]);
712 break;
713 }
714}