44 {
45 MsgStream log(
msgSvc(), name() );
46 log << MSG::INFO << "MdcAlignAlg initialze() ..." << endreq;
47 log << MSG::INFO << "MdcAlignFlg = " << m_alignMeth << endreq;
48
49 StatusCode sc = service("MdcGeomSvc", m_mdcGeomSvc);
50 if(sc != StatusCode::SUCCESS){
51 log << MSG::ERROR << "can not use MdcGeomSvc" << endreq;
52 }
53
54 sc = service("MdcCalibFunSvc", m_mdcFunSvc);
55 if( sc != StatusCode::SUCCESS ){
56 log << MSG::FATAL << "can not use MdcCalibFunSvc" << endreq;
57 }
58
59
60 initParam();
61
62
63 int i;
64 std::string strconfig;
65 std::string strcomment;
66 std::string strTes;
67 int fgTes[50];
68 for(i=0; i<50; i++) fgTes[i] = -999;
69 ifstream fconfig( m_configFile.c_str() );
70 if( ! fconfig.is_open() ){
71 log << MSG::WARNING << "can not open config file " << m_configFile
72 << ". Use defalt config parameters" << endreq;
73 } else {
74 log << MSG::INFO << "Open config file " << m_configFile << endreq;
75 while( fconfig >> strconfig ){
76 if('#' == strconfig[0]){
77 getline(fconfig, strcomment);
78 } else if("EsTimeFlag" == strconfig){
79 getline(fconfig, strTes);
80 int n = sscanf(strTes.c_str(),
"%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d",
81 fgTes+0, fgTes+1, fgTes+2, fgTes+3, fgTes+4,
82 fgTes+5, fgTes+6, fgTes+7, fgTes+8, fgTes+9,
83 fgTes+10, fgTes+11, fgTes+12, fgTes+13, fgTes+14,
84 fgTes+15, fgTes+16, fgTes+17, fgTes+18, fgTes+19);
85 for(i=0; i<
n; i++) m_param.
esFlag[i] = fgTes[i];
87 } else if("TesMin" == strconfig){
89 } else if("TesMax" == strconfig){
91 } else if("ResidualType" == strconfig){
93 } else if("FlagAdjacLayerCut" == strconfig){
95 } else if("FlagBoundLayerCut" == strconfig){
97 } else if("hitStatCut" == strconfig){
99 } else if("nTrkCut" == strconfig){
101 } else if("nHitLayCut" == strconfig){
103 } else if("nHitCut" == strconfig){
105 } else if("ptCut" == strconfig){
106 fconfig >> m_param.
ptCut[0] >> m_param.
ptCut[1];
107 } else if("cosThetaCut" == strconfig){
109 } else if("DrCut" == strconfig){
110 fconfig >> m_param.
drCut;
111 } else if("DzCut" == strconfig){
112 fconfig >> m_param.
dzCut;
113 } else if("MaximalDocaInner" == strconfig){
115 }else if("MaximalDocaOuter" == strconfig){
117 }else if("MaximalResidual" == strconfig){
119 }
120 }
121 fconfig.close();
122 }
123
124
126
127 cout << "EsFlag for Mdc Alignment: ";
128 for(
int iEs=0; iEs<m_param.
nEsFlag; iEs++) cout << setw(6) << m_param.
esFlag[iEs];
129 cout << endl;
130
133
135 m_alignPar -> rdAlignPar(m_alignFile);
136
138 m_mdcevt -> setParam(m_param);
139
140 m_hlist = new TObjArray();
141
142 if( 0 == m_alignMeth ){
144 } else if( 1 == m_alignMeth ){
147 }
149 m_pAlign ->
initialize(m_hlist, m_mdcGeomSvc, m_mdcFunSvc);
150
151 return StatusCode::SUCCESS;
152}
virtual void setParam(MdcAliParams ¶m)=0