#include <MdcCalConstMgr.h>
Public Member Functions | |
MdcCalConstMgr () | |
~MdcCalConstMgr () | |
void | init (IMdcGeomSvc *mdcGeomSvc, IMdcCalibFunSvc *mdcFunSvc) |
void | rdConstTcds (MdcCalibConst *calconst) |
void | wrtConstTcds (MdcCalibConst *calconst) |
void | rdConst (MdcCalibConst *calconst) |
void | wrtConst (MdcCalibConst *calconst) |
Private Attributes | |
IMdcCalibFunSvc * | m_mdcFunSvc |
IMdcGeomSvc * | m_mdcGeomSvc |
Definition at line 10 of file MdcCalConstMgr.h.
MdcCalConstMgr::MdcCalConstMgr | ( | ) |
MdcCalConstMgr::~MdcCalConstMgr | ( | ) |
void MdcCalConstMgr::init | ( | IMdcGeomSvc * | mdcGeomSvc, | |
IMdcCalibFunSvc * | mdcFunSvc | |||
) |
Definition at line 29 of file MdcCalConstMgr.cxx.
References m_mdcFunSvc, and m_mdcGeomSvc.
00029 { 00030 m_mdcGeomSvc = mdcGeomSvc; 00031 m_mdcFunSvc = mdcFunSvc; 00032 }
void MdcCalConstMgr::rdConst | ( | MdcCalibConst * | calconst | ) |
Definition at line 95 of file MdcCalConstMgr.cxx.
References genRecEmupikp::i, Bes_Common::INFO, key, msgSvc(), and Bes_Common::WARNING.
00095 { 00096 IMessageSvc* msgSvc; 00097 Gaudi::svcLocator() -> service("MessageSvc", msgSvc); 00098 MsgStream log(msgSvc, "MdcCalConstMgr"); 00099 log << MSG::WARNING << "read calibration data directly from run directory" 00100 << endreq; 00101 00102 TFile fconst("MdcCalibConst.root"); 00103 log << MSG::INFO << "open file" << endreq; 00104 00105 // read xttree ------------------------------------------------------------ 00106 int i; 00107 int key; 00108 double xtpar; 00109 int entry; 00110 TTree* xttree = (TTree*)fconst.Get("XtTree"); 00111 xttree -> SetBranchAddress("xtkey", &key); 00112 xttree -> SetBranchAddress("xtpar", &xtpar); 00113 entry = (int)xttree -> GetEntries(); 00114 for(i=0; i<entry; i++){ 00115 xttree -> GetEntry(i); 00116 calconst -> fillXtpar(key, xtpar); 00117 } 00118 log << MSG::INFO << "read XTtree" << endreq; 00119 00120 // read t0tree ------------------------------------------------------------ 00121 double t0; 00122 double delt0; 00123 TTree* t0tree = (TTree*)fconst.Get("T0Tree"); 00124 t0tree -> SetBranchAddress("t0", &t0); 00125 t0tree -> SetBranchAddress("delt0", &delt0); 00126 entry = (int)t0tree -> GetEntries(); 00127 for(i=0; i<entry; i++){ 00128 t0tree -> GetEntry(i); 00129 calconst -> fillT0(t0); 00130 calconst -> fillDelT0(delt0); 00131 } 00132 log << MSG::INFO << "read XTtree" << endreq; 00133 00134 // read qttree ------------------------------------------------------------ 00135 double qtpar0; 00136 double qtpar1; 00137 TTree* qttree = (TTree*)fconst.Get("QtTree"); 00138 qttree -> SetBranchAddress("qtpar0", &qtpar0); 00139 qttree -> SetBranchAddress("qtpar1", &qtpar1); 00140 entry = (int)qttree -> GetEntries(); 00141 for(i=0; i<entry; i++){ 00142 qttree -> GetEntry(i); 00143 calconst -> fillQtpar0(qtpar0); 00144 calconst -> fillQtpar1(qtpar1); 00145 } 00146 00147 // read sdtree --------------------------------------------------------- 00148 double sdpar; 00149 TTree* sdtree = (TTree*)fconst.Get("SdTree"); 00150 sdtree -> SetBranchAddress("sdkey", &key); 00151 sdtree -> SetBranchAddress("sdpar", &sdpar); 00152 entry = sdtree -> GetEntries(); 00153 for(i=0; i<entry; i++){ 00154 sdtree -> GetEntry(i); 00155 calconst -> fillSdpar(key, sdpar); 00156 } 00157 00158 fconst.Close(); 00159 00160 log << MSG::INFO << "read MdcCalibConst over" << endreq; 00161 }
void MdcCalConstMgr::rdConstTcds | ( | MdcCalibConst * | calconst | ) |
Definition at line 35 of file MdcCalConstMgr.cxx.
References Bes_Common::INFO, key, m_mdcFunSvc, m_mdcGeomSvc, and msgSvc().
00035 { 00036 IMessageSvc* msgSvc; 00037 Gaudi::svcLocator() -> service("MessageSvc", msgSvc); 00038 MsgStream log(msgSvc, "MdcCalConstMgr"); 00039 log << MSG::INFO << "Read calibration data from TCDS by MdcCalibFunSvc" 00040 << endreq; 00041 00042 int lay; 00043 int wid; 00044 00045 int nlayer; 00046 int nwire; 00047 00048 int key; 00049 double val; 00050 00051 nlayer = m_mdcGeomSvc -> getLayerSize(); 00052 nwire = m_mdcGeomSvc -> getWireSize(); 00053 00054 // read XT data ----------------------------------------------------------- 00055 m_mdcFunSvc -> setXtBegin(); 00056 while( m_mdcFunSvc -> getNextXtpar(key, val) ){ 00057 calconst -> fillXtpar(key, val); 00058 } 00059 00060 // read T0 data ----------------------------------------------------------- 00061 double t0; 00062 double delt0; 00063 for(wid=0; wid<nwire; wid++){ 00064 t0 = m_mdcFunSvc -> getT0(wid); 00065 delt0 = m_mdcFunSvc -> getDelT0(wid); 00066 calconst -> fillT0(t0); 00067 calconst -> fillDelT0(delt0); 00068 } 00069 00070 // read QT data ----------------------------------------------------------- 00071 double qtpar0; 00072 double qtpar1; 00073 for(lay=0; lay<nlayer; lay++){ 00074 qtpar0 = m_mdcFunSvc -> getQtpar(lay, 0); 00075 qtpar1 = m_mdcFunSvc -> getQtpar(lay, 1); 00076 calconst -> fillQtpar0(qtpar0); 00077 calconst -> fillQtpar1(qtpar1); 00078 } 00079 00080 // read spatial resolution data ------------------------------------------- 00081 m_mdcFunSvc -> setSdBegin(); 00082 while( m_mdcFunSvc -> getNextSdpar(key, val) ){ 00083 calconst -> fillSdpar(key, val); 00084 } 00085 }
void MdcCalConstMgr::wrtConst | ( | MdcCalibConst * | calconst | ) |
Definition at line 165 of file MdcCalConstMgr.cxx.
References genRecEmupikp::i, Bes_Common::INFO, key, and msgSvc().
00165 { 00166 IMessageSvc* msgSvc; 00167 Gaudi::svcLocator() -> service("MessageSvc", msgSvc); 00168 MsgStream log(msgSvc, "MdcCalConstMgr"); 00169 log << MSG::INFO << "MdcCalConstMgr::wrtConst()" << endreq; 00170 00171 TFile fconst("MdcCalibConst_new.root", "recreate"); 00172 00173 // XT parameter tree ------------------------------------------------------- 00174 int i; 00175 int key; 00176 int entry; 00177 double xtpar; 00178 TTree* xttree = new TTree("XtTree", "XtTree"); 00179 xttree -> Branch("xtkey", &key, "key/I"); 00180 xttree -> Branch("xtpar", &xtpar, "xtpar/D"); 00181 calconst -> setXtBegin(); 00182 while( calconst -> getNextXtpar(key, xtpar) ){ 00183 xttree -> Fill(); 00184 } 00185 00186 // T0 parameter tree ------------------------------------------------------- 00187 double t0; 00188 double delt0; 00189 00190 TTree* t0tree = new TTree("T0Tree", "T0Tree"); 00191 t0tree -> Branch("t0", &t0, "t0/D"); 00192 t0tree -> Branch("delt0", &delt0, "delt0/D"); 00193 entry = calconst -> getT0Size(); 00194 for(i=0; i<entry; i++){ 00195 t0 = calconst -> getT0(i); 00196 delt0 = calconst -> getDelT0(i); 00197 t0tree -> Fill(); 00198 } 00199 00200 // QT parameter tree ------------------------------------------------------- 00201 double qtpar0; 00202 double qtpar1; 00203 00204 TTree* qttree = new TTree("QtTree", "QtTree"); 00205 qttree -> Branch("qtpar0", &qtpar0, "qtpar0/D"); 00206 qttree -> Branch("qtpar1", &qtpar1, "qtpar1/D"); 00207 entry = calconst -> getQtSize(); 00208 for(i=0; i<entry; i++){ 00209 qtpar0 = calconst -> getQtpar0(i); 00210 qtpar1 = calconst -> getQtpar1(i); 00211 qttree -> Fill(); 00212 } 00213 00214 // Spacial Resolution parameter tree --------------------------------------- 00215 double sdpar; 00216 00217 TTree* sdtree = new TTree("SdTree", "SdTree"); 00218 sdtree -> Branch("sdkey", &key, "key/I"); 00219 sdtree -> Branch("sdpar", &sdpar, "sdpar/D"); 00220 calconst -> setSdBegin(); 00221 while( calconst -> getNextSdpar(key, sdpar) ){ 00222 sdtree -> Fill(); 00223 } 00224 00225 xttree -> Write(); 00226 t0tree -> Write(); 00227 qttree -> Write(); 00228 sdtree -> Write(); 00229 00230 delete xttree; 00231 delete t0tree; 00232 delete qttree; 00233 delete sdtree; 00234 00235 fconst.Close(); 00236 00237 log << MSG::INFO << "MdcCalibConst_new.root was written." << endreq; 00238 }
void MdcCalConstMgr::wrtConstTcds | ( | MdcCalibConst * | calconst | ) |
IMdcCalibFunSvc* MdcCalConstMgr::m_mdcFunSvc [private] |
IMdcGeomSvc* MdcCalConstMgr::m_mdcGeomSvc [private] |