MdcCalConstMgr Class Reference

#include <MdcCalConstMgr.h>

List of all members.

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

IMdcCalibFunSvcm_mdcFunSvc
IMdcGeomSvcm_mdcGeomSvc


Detailed Description

Definition at line 10 of file MdcCalConstMgr.h.


Constructor & Destructor Documentation

MdcCalConstMgr::MdcCalConstMgr (  ) 

Definition at line 21 of file MdcCalConstMgr.cxx.

00021                               {
00022      // constructor
00023 }

MdcCalConstMgr::~MdcCalConstMgr (  ) 

Definition at line 25 of file MdcCalConstMgr.cxx.

00025                                {
00026      // destructor
00027 }


Member Function Documentation

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  ) 

Definition at line 89 of file MdcCalConstMgr.cxx.

00089                                                         {
00090 
00091 }


Member Data Documentation

IMdcCalibFunSvc* MdcCalConstMgr::m_mdcFunSvc [private]

Definition at line 25 of file MdcCalConstMgr.h.

Referenced by init(), and rdConstTcds().

IMdcGeomSvc* MdcCalConstMgr::m_mdcGeomSvc [private]

Definition at line 26 of file MdcCalConstMgr.h.

Referenced by init(), and rdConstTcds().


Generated on Tue Nov 29 23:20:08 2016 for BOSS_7.0.2 by  doxygen 1.4.7