/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Mdc/MdcCalibAlg/MdcCalibAlg-00-09-02/share/distcalib/src/MdcCalibConst.cpp

Go to the documentation of this file.
00001 #include "include/MdcCalibConst.h"
00002 
00003 #include <iostream>
00004 
00005 typedef std::map<int, double>::value_type valType;
00006 
00007 MdcCalibConst::MdcCalibConst(){
00008      // constructor
00009 }
00010 
00011 MdcCalibConst::MdcCalibConst(const MdcCalibConst& calconst){
00012      m_xtmap = calconst.m_xtmap;
00013      m_t0 = calconst.m_t0;
00014      m_delt0 = calconst.m_delt0;
00015 //      m_wshift = calconst.m_wshift;
00016 //      m_delwshift = calconst.m_delwshift;
00017      m_qtpar0 = calconst.m_qtpar0;
00018      m_qtpar1 = calconst.m_qtpar1;
00019      m_sdmap = calconst.m_sdmap;
00020 }
00021 
00022 void MdcCalibConst::fillXtpar(int key, double val){
00023      m_xtmap.insert( valType( key, val ) );
00024 }
00025 
00026 void MdcCalibConst::resetXtpar(int lay, int entr, int lr, int order, double val){
00027      int key = getXtKey(lay, entr, lr, order);
00028      m_xtmap[key] = val;
00029 }
00030 
00031 double MdcCalibConst::getXtpar(int lay, int entr, int lr, int order){
00032      double xtpar = -999.0;
00033      int key = getXtKey(lay, entr, lr, order);
00034      if( 1 == m_xtmap.count(key) )
00035           xtpar = m_xtmap[key];
00036 
00037      return xtpar;
00038 }
00039 
00040 int MdcCalibConst::getXtKey(int lay, int entr, int lr, int order) const{
00041      int key;
00042 
00043      key = ( (lay << XTLAYER_INDEX) & XTLAYER_MASK ) |
00044           ( (entr << XTENTRA_INDEX) & XTENTRA_MASK ) |
00045           ( (lr << XTLR_INDEX) & XTLR_MASK ) |
00046           ( (order << XTORDER_INDEX) & XTORDER_MASK );
00047 
00048      return key;
00049 }
00050 
00051 void MdcCalibConst::setXtBegin(){
00052      m_xtiter = m_xtmap.begin();
00053 }
00054 
00055 int MdcCalibConst::getNextXtpar(int& key, double& xtpar) {
00056      if( m_xtiter != m_xtmap.end() ){
00057           key = (*m_xtiter).first;
00058           xtpar = (*m_xtiter).second;
00059           m_xtiter++;
00060           return 1;
00061      }
00062      else return 0;
00063 }
00064 
00065 void MdcCalibConst::fillQtpar(int order, double val){
00066      if( 0 == order ){
00067           m_qtpar0.push_back( val );
00068      } else if( 1 == order ){
00069           m_qtpar1.push_back( val );
00070      } else {
00071           std::cout << "Order of Qtpar Error in fillQtpar()!" << std::endl;
00072      }
00073 }
00074 
00075 void MdcCalibConst::resetQtpar(int lay, int order, double val){
00076      if( 0 == order ){
00077           m_qtpar0[lay] = val;
00078      } else if( 1 == order ){
00079           m_qtpar1[lay] = val;
00080      } else{
00081           std::cout << "Order of Qtpar Error in resetQtpar()!" << std::endl;
00082      }
00083 }
00084 
00085 double MdcCalibConst::getQtpar(int lay, int order) const{
00086      if( 0 == order ){
00087           return m_qtpar0[lay];
00088      } else if( 1 == order ){
00089           return m_qtpar1[lay];
00090      } else{
00091           std::cout << "Order of Qtpar Error in getQtpar()!" << std::endl;
00092           return -9999.0;
00093      }
00094 }
00095 
00096 void MdcCalibConst::fillSdpar(int key, double val){
00097      m_sdmap.insert( valType( key, val) );
00098 }
00099 
00100 void MdcCalibConst::resetSdpar(int lay, int entr, int lr, int bin, double val){
00101      int key = getSdKey(lay, entr, lr, bin);
00102      m_sdmap[key] = val;
00103 }
00104 
00105 double MdcCalibConst::getSdpar(int lay, int entr, int lr, int bin){
00106                                
00107      double sdpar = -999.0;
00108      int key = getSdKey(lay, entr, lr, bin);
00109      if( 1 == m_sdmap.count(key) ){
00110           return m_sdmap[key];
00111      }
00112 
00113      return sdpar;
00114 }
00115 
00116 int MdcCalibConst::getSdKey(int lay, int entr, int lr, int bin) const{
00117      int key;
00118 
00119      key = ( (lay << SDLAYER_INDEX) & SDLAYER_MASK ) |
00120           ( (entr << SDENTRA_INDEX) & SDENTRA_MASK ) |
00121           ( (lr << SDLR_INDEX) & SDLR_MASK ) |
00122           ( (bin << SDBIN_INDEX) & SDBIN_MASK );
00123 
00124      return key;
00125 }
00126 
00127 void MdcCalibConst::setSdBegin(){
00128      m_sditer = m_sdmap.begin();
00129 }
00130 
00131 int MdcCalibConst::getNextSdpar(int& key, double& sdpar) {
00132      if( m_sditer != m_sdmap.end() ){
00133           key = (*m_sditer).first;
00134           sdpar = (*m_sditer).second;
00135           m_sditer++;
00136           return 1;
00137      }
00138      else return 0;
00139 }
00140 
00141 void MdcCalibConst::clear(){
00142      m_xtmap.clear();
00143      m_t0.clear();
00144      m_delt0.clear();
00145 //      m_wshift.clear();
00146 //      m_delwshift.clear();
00147      m_qtpar0.clear();
00148      m_qtpar1.clear();
00149      m_sdmap.clear();
00150 }

Generated on Tue Nov 29 23:12:49 2016 for BOSS_7.0.2 by  doxygen 1.4.7