3#include "GaudiKernel/Bootstrap.h"
4#include "GaudiKernel/IDataProviderSvc.h"
5#include "GaudiKernel/IMessageSvc.h"
6#include "GaudiKernel/ISvcLocator.h"
7#include "GaudiKernel/MsgStream.h"
8#include "GaudiKernel/PropertyMgr.h"
9#include "GaudiKernel/SmartDataPtr.h"
10#include "GaudiKernel/StatusCode.h"
21 for (
int iEP = 0; iEP <
NEP; iEP++ )
34 for (
int iEP = 0; iEP <
NEP; iEP++ )
54 Gaudi::svcLocator()->service(
"MessageSvc",
msgSvc );
55 MsgStream log(
msgSvc,
"MdcAlignPar" );
56 log << MSG::WARNING <<
"read MdcAlignPar data directly from run directory" << endmsg;
59 log << MSG::INFO <<
"open file" << endmsg;
60 if ( !fpar.is_open() )
62 log << MSG::FATAL <<
"can not open alignment file " << alignFile.c_str() << endmsg;
68 for ( i = 0; i < 7; i++ ) fpar >> strtmp;
69 for (
int iEP = 0; iEP <
NEP; iEP++ )
71 fpar >> strtmp >> m_dx[iEP] >> m_dy[iEP] >> m_dz[iEP] >> m_rx[iEP] >> m_ry[iEP] >>
80 Gaudi::svcLocator()->service(
"MessageSvc",
msgSvc );
81 MsgStream log(
msgSvc,
"MdcAlignPar" );
82 log << MSG::INFO <<
"MdcAlignPar::wrtAlignPar()" << endmsg;
86 string str[] = {
"Inner_east",
"Step0_east",
"Step1_east",
"Step2_east",
87 "Step3_east",
"Step4_east",
"Step5_east",
"Outer_east",
88 "Inner_west",
"Step0_west",
"Step1_west",
"Step2_west",
89 "Step3_west",
"Step4_west",
"Step5_west",
"Outer_west" };
91 string name[] = {
"Elements",
"DeltaX(mm)",
"DeltaY(mm)",
"DeltaZ(mm)",
92 "RX(rad)",
"RY(rad)",
"RZ(rad)" };
95 fout << setw( 14 ) << name[0];
96 for ( i = 1; i < 7; i++ ) fout << setw( 13 ) << name[i];
98 for ( iEnd = 0; iEnd <
NEP; iEnd++ )
100 fout << setw( 14 ) << str[iEnd] << setw( 13 ) << m_dx[iEnd] + m_delDx[iEnd] << setw( 13 )
101 << m_dy[iEnd] + m_delDy[iEnd] << setw( 13 ) << m_dz[iEnd] + m_delDz[iEnd]
102 << setw( 13 ) << m_rx[iEnd] + m_delRx[iEnd] << setw( 13 )
103 << m_ry[iEnd] + m_delRy[iEnd] << setw( 13 ) << m_rz[iEnd] + m_delRz[iEnd] << endl;
104 if ( 7 == iEnd ) fout << endl;
108 ofstream fdel(
"delAlign_new.txt" );
109 fdel << setw( 14 ) << name[0];
110 for ( i = 1; i < 7; i++ ) fdel << setw( 13 ) << name[i];
112 for ( iEnd = 0; iEnd <
NEP; iEnd++ )
114 fdel << setw( 14 ) << str[iEnd] << setw( 13 ) << m_delDx[iEnd] << setw( 13 )
115 << m_delDy[iEnd] << setw( 13 ) << m_delDz[iEnd] << setw( 13 ) << m_delRx[iEnd]
116 << setw( 13 ) << m_delRy[iEnd] << setw( 13 ) << m_delRz[iEnd] << endl;
117 if ( 7 == iEnd ) fdel << endl;
120 fdel << endl <<
"Fit error:" << endl;
121 for ( iEnd = 0; iEnd <
NEP; iEnd++ )
123 fdel << setw( 14 ) << str[iEnd] << setw( 13 ) << m_errDx[iEnd] << setw( 13 )
124 << m_errDy[iEnd] << setw( 13 ) << m_errDz[iEnd] << setw( 13 ) << m_errRx[iEnd]
125 << setw( 13 ) << m_errRy[iEnd] << setw( 13 ) << m_errRz[iEnd] << endl;
126 if ( 7 == iEnd ) fdel << endl;
bool rdAlignPar(std::string alignFile)