37 Gaudi::svcLocator()->service(
"MessageSvc",
msgSvc );
38 MsgStream log(
msgSvc,
"MdcCalConstMgr" );
39 log << MSG::INFO <<
"Read calibration data from TCDS by MdcCalibFunSvc" << endmsg;
50 nlayer = m_mdcGeomSvc->getLayerSize();
51 nwire = m_mdcGeomSvc->getWireSize();
54 m_mdcFunSvc->setXtBegin();
55 while ( m_mdcFunSvc->getNextXtpar(
key, val ) ) { calconst->
fillXtpar(
key, val ); }
60 for ( wid = 0; wid < nwire; wid++ )
62 t0 = m_mdcFunSvc->getT0( wid );
63 delt0 = m_mdcFunSvc->getDelT0( wid );
71 for ( lay = 0; lay < nlayer; lay++ )
73 qtpar0 = m_mdcFunSvc->getQtpar( lay, 0 );
74 qtpar1 = m_mdcFunSvc->getQtpar( lay, 1 );
80 m_mdcFunSvc->setSdBegin();
81 while ( m_mdcFunSvc->getNextSdpar(
key, val ) ) { calconst->
fillSdpar(
key, val ); }
90 Gaudi::svcLocator()->service(
"MessageSvc",
msgSvc );
91 MsgStream log(
msgSvc,
"MdcCalConstMgr" );
92 log << MSG::WARNING <<
"read calibration data directly from run directory" << endmsg;
94 TFile fconst(
"MdcCalibConst.root" );
95 log << MSG::INFO <<
"open file" << endmsg;
102 TTree* xttree = (TTree*)fconst.Get(
"XtTree" );
103 xttree->SetBranchAddress(
"xtkey", &
key );
104 xttree->SetBranchAddress(
"xtpar", &xtpar );
105 entry = (int)xttree->GetEntries();
106 for ( i = 0; i < entry; i++ )
108 xttree->GetEntry( i );
111 log << MSG::INFO <<
"read XTtree" << endmsg;
116 TTree* t0tree = (TTree*)fconst.Get(
"T0Tree" );
117 t0tree->SetBranchAddress(
"t0", &t0 );
118 t0tree->SetBranchAddress(
"delt0", &delt0 );
119 entry = (int)t0tree->GetEntries();
120 for ( i = 0; i < entry; i++ )
122 t0tree->GetEntry( i );
126 log << MSG::INFO <<
"read XTtree" << endmsg;
131 TTree* qttree = (TTree*)fconst.Get(
"QtTree" );
132 qttree->SetBranchAddress(
"qtpar0", &qtpar0 );
133 qttree->SetBranchAddress(
"qtpar1", &qtpar1 );
134 entry = (int)qttree->GetEntries();
135 for ( i = 0; i < entry; i++ )
137 qttree->GetEntry( i );
144 TTree* sdtree = (TTree*)fconst.Get(
"SdTree" );
145 sdtree->SetBranchAddress(
"sdkey", &
key );
146 sdtree->SetBranchAddress(
"sdpar", &sdpar );
147 entry = sdtree->GetEntries();
148 for ( i = 0; i < entry; i++ )
150 sdtree->GetEntry( i );
156 log << MSG::INFO <<
"read MdcCalibConst over" << endmsg;
162 Gaudi::svcLocator()->service(
"MessageSvc",
msgSvc );
163 MsgStream log(
msgSvc,
"MdcCalConstMgr" );
164 log << MSG::INFO <<
"MdcCalConstMgr::wrtConst()" << endmsg;
166 TFile fconst(
"MdcCalibConst_new.root",
"recreate" );
173 TTree* xttree =
new TTree(
"XtTree",
"XtTree" );
174 xttree->Branch(
"xtkey", &
key,
"key/I" );
175 xttree->Branch(
"xtpar", &xtpar,
"xtpar/D" );
183 TTree* t0tree =
new TTree(
"T0Tree",
"T0Tree" );
184 t0tree->Branch(
"t0", &t0,
"t0/D" );
185 t0tree->Branch(
"delt0", &delt0,
"delt0/D" );
187 for ( i = 0; i < entry; i++ )
189 t0 = calconst->
getT0( i );
198 TTree* qttree =
new TTree(
"QtTree",
"QtTree" );
199 qttree->Branch(
"qtpar0", &qtpar0,
"qtpar0/D" );
200 qttree->Branch(
"qtpar1", &qtpar1,
"qtpar1/D" );
202 for ( i = 0; i < entry; i++ )
212 TTree* sdtree =
new TTree(
"SdTree",
"SdTree" );
213 sdtree->Branch(
"sdkey", &
key,
"key/I" );
214 sdtree->Branch(
"sdpar", &sdpar,
"sdpar/D" );
230 log << MSG::INFO <<
"MdcCalibConst_new.root was written." << endmsg;