00001 #include "tofcalgsec/TofCalibCheck.h" 00002 #include <cmath> 00003 00004 TofCalibCheck::TofCalibCheck( NTuple::Tuple*& tuple ):m_tuple(tuple) { 00005 if( !m_tuple ) { 00006 std::cerr << " Error: invalid pionter in TofCalibCheck(NTuple::Tuple*) for m_tuple " << std::endl; 00007 } 00008 else { 00009 m_tuple->addItem("run", m_run ); 00010 m_tuple->addItem("event", m_event ); 00011 m_tuple->addItem("tofid", m_tofid ); 00012 m_tuple->addItem("strip", m_strip ); 00013 m_tuple->addItem("qleft", m_q1 ); 00014 m_tuple->addItem("qright", m_q2 ); 00015 m_tuple->addItem("tleft", m_t1 ); 00016 m_tuple->addItem("tright", m_t2 ); 00017 m_tuple->addItem("zrhit", m_zrhit ); 00018 m_tuple->addItem("dt", m_dt ); 00019 m_tuple->addItem("texp", m_texp ); 00020 m_tuple->addItem("path", m_path ); 00021 m_tuple->addItem("phi", m_phi ); 00022 m_tuple->addItem("theta", m_theta ); 00023 m_tuple->addItem("p", m_p ); 00024 m_tuple->addItem("t0", m_t0 ); 00025 m_tuple->addItem("q0", m_q0 ); 00026 m_tuple->addItem("hitcase", m_hitcase ); 00027 } 00028 } 00029 00030 00031 void TofCalibCheck::FillBarrelCol( RecBTofCalHitCol& bhitcol ) { 00032 if( m_tuple ) { 00033 RecBTofCalHitCol::iterator iter = bhitcol.begin(); 00034 for( ; iter!=bhitcol.end(); iter++ ) { 00035 if( fabs( (*iter)->dzHit() - 1.0 )>1.0e-6 ) continue; 00036 m_run = (*iter)->run(); 00037 m_event = (*iter)->event(); 00038 m_tofid = (*iter)->mod(); 00039 m_strip = -1; 00040 m_q1 = (*iter)->adc1(); 00041 m_q2 = (*iter)->adc2(); 00042 m_t1 = (*iter)->tdc1(); 00043 m_t2 = (*iter)->tdc2(); 00044 m_zrhit = (*iter)->zHit(); 00045 m_dt = -99.0; 00046 m_texp = (*iter)->tpred(); 00047 m_path = (*iter)->path(); 00048 m_phi = (*iter)->deltaPhi(); 00049 m_theta = (*iter)->sinTheta(); 00050 m_p = (*iter)->p(); 00051 m_t0 = -99.0; 00052 m_q0 = -99.0; 00053 m_hitcase = (*iter)->qual(); 00054 m_tuple->write(); 00055 } 00056 } 00057 return; 00058 } 00059 00060 00061 void TofCalibCheck::FillEndcapCol( RecETofCalHitCol& ehitcol ) { 00062 if( m_tuple ) { 00063 RecETofCalHitCol::iterator iter = ehitcol.begin(); 00064 for( ; iter!=ehitcol.end(); iter++ ) { 00065 m_run = (*iter)->run(); 00066 m_event = (*iter)->event(); 00067 m_tofid = (*iter)->mod(); 00068 m_strip = -1; 00069 m_q1 = (*iter)->adc(); 00070 m_q2 = -99.0; 00071 m_t1 = (*iter)->tdc(); 00072 m_t2 = -99.0; 00073 m_zrhit = (*iter)->rHit(); 00074 m_dt = -99.0; 00075 m_texp = (*iter)->tpred(); 00076 m_path = (*iter)->path(); 00077 m_phi = (*iter)->deltaPhi(); 00078 m_theta = (*iter)->cosTheta(); 00079 m_p = (*iter)->p(); 00080 m_t0 = -99.0; 00081 m_q0 = -99.0; 00082 m_hitcase = (*iter)->qual(); 00083 m_tuple->write(); 00084 } 00085 } 00086 return; 00087 } 00088 00089 00090 void TofCalibCheck::FillEtfCol( RecBTofCalHitCol& bhitcol ) { 00091 if( m_tuple ) { 00092 RecBTofCalHitCol::iterator iter = bhitcol.begin(); 00093 for( ; iter!=bhitcol.end(); iter++ ) { 00094 if( fabs( (*iter)->dzHit() )>1.0e-6 ) continue; 00095 m_run = (*iter)->run(); 00096 m_event = (*iter)->event(); 00097 m_tofid = (*iter)->mod(); 00098 m_strip = (*iter)->sinTheta(); 00099 m_q1 = (*iter)->adc1(); 00100 m_q2 = (*iter)->adc2(); 00101 m_t1 = (*iter)->tdc1(); 00102 m_t2 = (*iter)->tdc2(); 00103 m_zrhit = (*iter)->zHit(); 00104 m_dt = ( (*iter)->tdc2() - (*iter)->tdc1() )/2.0; 00105 m_texp = (*iter)->tpred(); 00106 m_path = (*iter)->path(); 00107 m_phi = (*iter)->deltaPhi(); 00108 m_theta = (*iter)->sinTheta(); 00109 m_p = (*iter)->p(); 00110 m_t0 = -99.0; 00111 m_q0 = -99.0; 00112 m_hitcase = (*iter)->qual(); 00113 m_tuple->write(); 00114 } 00115 } 00116 return; 00117 }