00001
00002
00007 #include "CalibData/Dedx/DedxCalibData.h"
00008 #include "GaudiKernel/MsgStream.h"
00009 #include "CalibData/Mdc/MdcCalStruct.h"
00010 namespace CalibData {
00011
00012
00013 StatusCode DedxCalibData::update(CalibBase1& other, MsgStream* log)
00014 {
00015 DedxCalibData& other1 = dynamic_cast<DedxCalibData& >(other);
00016 std::cout<<"========================================"<<"\n"<<"here is the update in the DedxCalibData"<<"\n"<<"=================================================="<<std::endl;
00017 CalibBase1::update(other, log);
00018 int i;
00019 int j;
00020 for(i=0;i<4;i++) {
00021 for(j=0;j<43;j++) {
00022
00023
00024
00025
00026
00027
00028
00029 setddg(other1.getddg(i,j),i,j);
00030 setggs(other1.getggs(i,j),i,j);
00031 setzdep(other1.getzdep(i,j),i,j);
00032 setenta(other1.getenta(i,j),i,j);
00033 }
00034 }
00035
00036 setrunNO(other1.getrunNO());
00037 int entries = other1.getrunNO();
00038 for(i=0;i<4;i++) {
00039 for(j=0;j<entries;j++) {
00040 setrung(other1.getrung(i,j),i,j);
00041 }
00042 }
00043
00044
00045 for(i=0;i<6796;i++){
00046
00047 setwireg(other1.getwireg(i),i);
00048 }
00049
00050 for(i=0;i<43;i++){
00051
00052 setlayerg(other1.getlayerg(i),i);
00053 }
00054
00055
00056
00057 setgain(other1.getgain());
00058 setresol(other1.getresol());
00059
00060 for(int i=0;i<1600;i++){
00061 m_id_doca[i]=other1.get_id_doca(i);
00062 m_iner_chi[i]=other1.get_iner_chi(i);
00063 m_iner_gain[i]=other1.get_iner_gain(i);
00064 m_iner_hits[i]=other1.get_iner_hits(i);
00065 m_ip_eangle[i]=other1.get_ip_eangle(i);
00066 m_out_chi[i]=other1.get_out_chi(i);
00067 m_out_gain[i]=other1.get_out_gain(i);
00068 m_out_hits[i]=other1.get_out_hits(i);
00069 }
00070
00071 for(int i=0;i<80;i++){
00072 m_costheta[i]=other1.get_costheta(i);
00073 }
00074 for(int i=0;i<35;i++){
00075 m_t0[i] = other1.get_t0(i);
00076 m_dedx[i]=other1.get_dedx(i);
00077 }
00078
00079 for(int i=0;i<20;i++){
00080 m_hadron[i] = other1.get_hadron(i);
00081 }
00082
00083 m_enanglesize=other1.get_enanglesize();
00084 for(int i=0;i<m_enanglesize;i++){
00085 m_enangle[i]=other1.get_enangle(i);
00086 }
00087
00088 std::cout<<"updata dedx calib constnts complete================="<<std::endl;
00089 return StatusCode::SUCCESS;
00090 }
00091
00092
00093
00094
00095 void DedxCalibData::setddg(const double ddg,int i,int j)
00096 {
00097 m_ddg[i][j] = ddg;
00098 }
00099
00100 void DedxCalibData::setggs(const double ggs,int i,int j)
00101 {
00102 m_ggs[i][j] = ggs;
00103 }
00104
00105 void DedxCalibData::setwireg(const double wireg,int i)
00106 {
00107 m_wireg[i] = wireg;
00108 }
00109
00110 void DedxCalibData::setgain(const double gain)
00111 {
00112 m_gain = gain;
00113 }
00114
00115 void DedxCalibData::setzdep(const double zdep,int i,int j)
00116 {
00117 m_zdep[i][j] = zdep;
00118 }
00119
00120 void DedxCalibData::setresol(const double resol)
00121 {
00122 m_resol = resol;
00123 }
00124
00125 void DedxCalibData::setlayerg(const double layerg,int i)
00126 {
00127 m_layerg[i] = layerg;
00128 }
00129
00130 void DedxCalibData::setenta(const double enta,int i,int j)
00131 {
00132 m_enta[i][j] = enta;
00133 }
00134
00135 void DedxCalibData::setrung(const double rung,int i,int j)
00136 {
00137 double aaa=rung;
00138 if(i==0) m_rung1.push_back(aaa);
00139 if(i==1) m_rung2.push_back(aaa);
00140 if(i==2) m_rung3.push_back(aaa);
00141 if(i==3) m_rung4.push_back(aaa);
00142 }
00143
00144 void DedxCalibData::setrunNO(const int runNO)
00145 {
00146 m_runNO = runNO;
00147 }
00148 }