404 SmartIF<IRndmGenSvc> randsvc{Gaudi::svcLocator()->service(
"RndmGenSvc")};
405 Rndm::Numbers gauss(randsvc,Rndm::Gauss(0.,1.));
421 m_survey_IDAlignDBTool->dispGroup(-1, -1, -1, -1, -1,
m_TransLayerRand,
m_TransLayerRand,
m_TransLayerRand, 2, 2, 0);
424 m_survey_IDAlignDBTool->dispGroup(1, 2, 0, -1, -1,
m_TransLayerRand, 0, 0, 1, 2, 0);
427 m_survey_IDAlignDBTool->dispGroup(1, 2, 2, -1, -1,
m_TransLayerRand, 0, 0, 1, 2, 0);
430 int nSCT(0), nPixel(0);
431 std::vector< Amg::Vector3D > localSurveyCoords;
433 SurveyTransRand.setIdentity();
434 SurveyTransRandSect.setIdentity();
436 unsigned int nSCTMod = 0,nSCTModInMap = 0,nSCTModEC = 0,nSCTModPointsEC = 0;
440 if (not sctDetEleHandle.
isValid() or sctElements==
nullptr) {
445 const Identifier SCT_ModuleID = element->identify();
446 if(
m_sctid->side(SCT_ModuleID) != 0)
continue;
472 if(abs(
m_sctid->barrel_ec(SCT_ModuleID)) == 2){
485 Misalign_Vector[0]=m1;Misalign_Vector[1]=m2;Misalign_Vector[2]=m3;Misalign_Vector[3]=m4;Misalign_Vector[4]=m5;Misalign_Vector[5]=m6;
489 else if(
m_sctid->barrel_ec(SCT_ModuleID) == 0) {
502 Misalign_Vector[0]=m1;Misalign_Vector[1]=m2;Misalign_Vector[2]=m3;Misalign_Vector[3]=m4;Misalign_Vector[4]=m5;Misalign_Vector[5]=m6;
509 for (
unsigned int iCorn(0); iCorn < localSurveyCoords.size(); ++iCorn ) {
512 Amg::Vector3D surveyPoint = (SurveyTrans*SurveyTransRand) * localSurveyCoords[iCorn];
517 Amg::VectorX globalSurveyPoint = element->globalPosition( surveyPoint );
518 Amg::VectorX globalCurrentPoint = element->globalPosition( currentPoint);
526 bool first =
true, NewDisk =
true, NewSector =
true, firstB =
true;
527 unsigned int nPixMod = 0,nPixModInMap = 0,nPixModEC = 0,nPixModPointsEC = 0;
528 int previous_disk = -1, previous_sector = -1;
532 if (not pixelDetEleHandle.
isValid() or pixelElements==
nullptr) {
537 const Identifier Pixel_ModuleID = element->identify();
550 if(abs(
m_pixid->barrel_ec(Pixel_ModuleID)) == 2){
562 if(previous_disk ==
m_pixid->layer_disk(Pixel_ModuleID) && previous_sector ==
SectorNumber(
m_pixid->phi_module(Pixel_ModuleID)))
565 if(previous_disk ==
m_pixid->layer_disk(Pixel_ModuleID))
592 Misalign_Vector[0]=m1;Misalign_Vector[1]=m2;Misalign_Vector[2]=m3;Misalign_Vector[3]=m4;Misalign_Vector[4]=m5;Misalign_Vector[5]=m6;
603 SurveyTransRandSect =
Amg::Translation3D(m1,m2,m3) * Amg::RotationMatrix3D::Identity()
613 for (
unsigned int iCorn(0); iCorn < localSurveyCoords.size(); ++iCorn ) {
617 Amg::Vector3D surveyPoint = (SurveyTrans*SurveyTransRand) * localSurveyCoords[iCorn];
623 Amg::VectorX globalSurveyPoint = element->globalPosition( surveyPoint);
624 Amg::VectorX globalCurrentPoint = element->globalPosition( currentPoint );
637 ATH_MSG_INFO(
"Local Coordinates = (" << localSurveyCoords[iCorn][0] <<
","
638 << localSurveyCoords[iCorn][1] <<
"," << localSurveyCoords[iCorn][2] <<
")");
639 ATH_MSG_INFO(
"Survey Local Coordinates = (" << surveyPoint[0] <<
","
640 << surveyPoint[1] <<
"," << surveyPoint[2] <<
")");
641 ATH_MSG_INFO(
"Current Local Coordinates = (" << currentPoint[0] <<
","
642 << currentPoint[1] <<
"," << currentPoint[2] <<
")");
643 ATH_MSG_INFO(
"Survey Global Coordinates = (" << globalSurveyPoint[0] <<
","
644 << globalSurveyPoint[1] <<
"," << globalSurveyPoint[2] <<
")");
645 ATH_MSG_INFO(
"Current Global Coordinates = (" << globalCurrentPoint[0] <<
","
646 << globalCurrentPoint[1] <<
"," << globalCurrentPoint[2] <<
")");
647 ATH_MSG_INFO(
"SurveyConstraint().setup_SurveyConstraintModules: nModulePoints " <<
m_ModuleMap[Pixel_ModuleID]->nModulePoints());
653 previous_disk =
m_pixid->layer_disk(Pixel_ModuleID);
658 if(
m_pixid->barrel_ec(Pixel_ModuleID) == 0){
680 Misalign_Vector[0]=m1;Misalign_Vector[1]=m2;Misalign_Vector[2]=m3;Misalign_Vector[3]=m4;Misalign_Vector[4]=m5;Misalign_Vector[5]=m6;
686 for (
unsigned int iCorn(0); iCorn < localSurveyCoords.size(); ++iCorn ) {
689 Amg::Vector3D surveyPoint = (SurveyTrans*SurveyTransRand) *localSurveyCoords[iCorn] ;
694 Amg::VectorX globalSurveyPoint = element->globalPosition( surveyPoint );
695 Amg::VectorX globalCurrentPoint = element->globalPosition( currentPoint );
704 <<
", nSCTModInMap " << nSCTModInMap
705 <<
", nSCTModEC " << nSCTModEC
706 <<
", nSCTModPointsEC " << nSCTModPointsEC
707 <<
", nPixMod " << nPixMod
708 <<
", nPixModInMap " << nPixModInMap
709 <<
", nPixModEC " << nPixModEC
710 <<
", nPixModPointsEC " << nPixModPointsEC);
718 std::vector< SurveyConstraintPoint > Stavepoints;
720 unsigned int nPixModEC2 = 0,nPixModPixModEC = 0,nPixModECPixModEC = 0,nSameLayer = 0,nNotIdentical = 0;
723 if(abs(
m_pixid->barrel_ec(Pixel_ModuleID)) == 2){
727 const Identifier Pixel_ModuleID2 = *wafer_it2;
728 if(
m_pixid->barrel_ec(Pixel_ModuleID2) ==
m_pixid->barrel_ec(Pixel_ModuleID)){
730 if(
m_pixid->layer_disk(Pixel_ModuleID2) ==
m_pixid->layer_disk(Pixel_ModuleID)){
736 if(Pixel_ModuleID != Pixel_ModuleID2){
739 (
m_ModuleMap[Pixel_ModuleID])->addStaveConstraintPoint(Stavepoints);
744 std::vector< SurveyConstraintPoint > Testpoints;
746 ATH_MSG_INFO(
"SurveyConstraint().setup_SurveyConstraintModules: Stavepoints.size() (from map) " << Testpoints.size());
758 ATH_MSG_INFO(
"Loop 2, filling stave-points, nPixModEC2 " << nPixModEC2
759 <<
", nPixModPixModEC " << nPixModPixModEC
760 <<
", nPixModECPixModEC " << nPixModECPixModEC
761 <<
", nSameLayer " << nSameLayer
762 <<
", nNotIdentical " << nNotIdentical);
765 nPixModEC2 = 0;nPixModPixModEC = 0;nPixModECPixModEC = 0;nSameLayer = 0;nNotIdentical = 0;
768 if(
m_pixid->barrel_ec(Pixel_ModuleID) != 0)
continue;
772 const Identifier Pixel_ModuleID2 = *wafer_it2;
773 if(
m_pixid->barrel_ec(Pixel_ModuleID2) !=
m_pixid->barrel_ec(Pixel_ModuleID))
continue;
775 if(
m_pixid->layer_disk(Pixel_ModuleID2) !=
m_pixid->layer_disk(Pixel_ModuleID))
continue;
778 if(
m_pixid->phi_module(Pixel_ModuleID2) !=
m_pixid->phi_module(Pixel_ModuleID))
continue;
779 if(Pixel_ModuleID == Pixel_ModuleID2)
continue;
782 (
m_ModuleMap[Pixel_ModuleID])->addStaveConstraintPoint(Stavepoints);
785 ATH_MSG_INFO(
"Loop 2, filling stave-points, nPixModB2 " << nPixModEC2
786 <<
", nPixModPixModB " << nPixModPixModEC
787 <<
", nPixModBPixModB " << nPixModECPixModEC
788 <<
", nSameLayer " << nSameLayer
789 <<
", nNotIdentical " << nNotIdentical);
792 nPixModEC2 = 0;nPixModPixModEC = 0;nPixModECPixModEC = 0;nSameLayer = 0;nNotIdentical = 0;
795 if(
m_sctid->side(SCT_ModuleID) != 0)
continue;
796 if(abs(
m_sctid->barrel_ec(SCT_ModuleID)) != 2)
continue;
801 if(
m_sctid->side(SCT_ModuleID2) != 0)
continue;
802 if(
m_sctid->barrel_ec(SCT_ModuleID2) !=
m_sctid->barrel_ec(SCT_ModuleID))
continue;
804 if(
m_sctid->layer_disk(SCT_ModuleID2) !=
m_sctid->layer_disk(SCT_ModuleID))
continue;
808 if(SCT_ModuleID == SCT_ModuleID2)
continue;
811 (
m_ModuleMap[SCT_ModuleID])->addStaveConstraintPoint(Stavepoints);
816 if (
m_sctid->barrel_ec(SCT_ModuleID)==2 &&
817 m_sctid->layer_disk(SCT_ModuleID)==0 &&
818 m_sctid->eta_module(SCT_ModuleID)==0 &&
819 m_sctid->side(SCT_ModuleID) == 0 &&
822 std::vector< SurveyConstraintPoint > Testpoints;
824 ATH_MSG_INFO(
"SurveyConstraint().setup_SurveyConstraintModules: Stavepoints.size() (from map) " << Testpoints.size());
830 ATH_MSG_INFO(
"Loop 2, filling stave-points, nSCTModEC2 " << nPixModEC2
831 <<
", nSCTModSCTModEC " << nPixModPixModEC
832 <<
", nSCTModECSCTModEC " << nPixModECPixModEC
833 <<
", nSameLayer " << nSameLayer
834 <<
", nNotIdentical " << nNotIdentical);
837 nPixModEC2 = 0;nPixModPixModEC = 0;nPixModECPixModEC = 0;nSameLayer = 0;nNotIdentical = 0;
840 if(
m_sctid->side(SCT_ModuleID) != 0)
continue;
841 if(
m_sctid->barrel_ec(SCT_ModuleID) != 0)
continue;
846 if(
m_sctid->side(SCT_ModuleID2) != 0)
continue;
847 if(
m_sctid->barrel_ec(SCT_ModuleID2) !=
m_sctid->barrel_ec(SCT_ModuleID))
continue;
849 if(
m_sctid->layer_disk(SCT_ModuleID2) !=
m_sctid->layer_disk(SCT_ModuleID))
continue;
852 if(
m_sctid->phi_module(SCT_ModuleID2) !=
m_sctid->phi_module(SCT_ModuleID))
continue;
853 if(SCT_ModuleID == SCT_ModuleID2)
continue;
856 (
m_ModuleMap[SCT_ModuleID])->addStaveConstraintPoint(Stavepoints);
859 ATH_MSG_INFO(
"Loop 2, filling stave-points, nSCTModB2 " << nPixModEC2
860 <<
", nSCTModSCTModB " << nPixModPixModEC
861 <<
", nSCTModBSCTModB " << nPixModECPixModEC
862 <<
", nSameLayer " << nSameLayer
863 <<
", nNotIdentical " << nNotIdentical);