#include <TofCalibManager.h>
|
00014 { 00015 m_dataset = new TofDataSet; 00016 return; 00017 }
|
|
00020 { 00021 if( !calib_barrel_item.empty() ) { 00022 std::vector<TofCalib*>::iterator iter = calib_barrel_item.begin(); 00023 for( ; iter != calib_barrel_item.end(); iter++ ) { 00024 if( (*iter) ) delete (*iter); 00025 } 00026 calib_barrel_item.clear(); 00027 } 00028 if( !calib_endcap_item.empty() ) { 00029 std::vector<TofCalib*>::iterator iter = calib_endcap_item.begin(); 00030 for( ; iter != calib_endcap_item.end(); iter++ ) { 00031 if( (*iter) ) delete (*iter); 00032 } 00033 calib_endcap_item.clear(); 00034 } 00035 if( !calibration_barrel_item.empty() ) { 00036 std::vector<TofCalibFit*>::iterator iter = calibration_barrel_item.begin(); 00037 for( ; iter != calibration_barrel_item.end(); iter++ ) { 00038 if( (*iter) ) delete (*iter); 00039 } 00040 calibration_barrel_item.clear(); 00041 } 00042 if( !calibration_barrel_item2.empty() ) { 00043 std::vector<TofCalibFit*>::iterator iter = calibration_barrel_item2.begin(); 00044 for( ; iter != calibration_barrel_item2.end(); iter++ ) { 00045 if( (*iter) ) delete (*iter); 00046 } 00047 calibration_barrel_item2.clear(); 00048 } 00049 if( !calibration_endcap_item.empty() ) { 00050 std::vector<TofCalibFit*>::iterator iter = calibration_endcap_item.begin(); 00051 for( ; iter != calibration_endcap_item.end(); iter++ ) { 00052 if( (*iter) ) delete (*iter); 00053 } 00054 calibration_endcap_item.clear(); 00055 } 00056 00057 delete m_dataset; 00058 return; 00059 }
|
|
|
|
|
|
|
|
|
|
00073 { 00074 if( isbarrel ) { 00075 if( cal_item2->name()=="calib_barrel_sigma" ) { 00076 calibration_barrel_item2.push_back(cal_item2); 00077 } 00078 else { 00079 calibration_barrel_item.push_back(cal_item2); 00080 } 00081 } 00082 else { 00083 calibration_endcap_item.push_back(cal_item2); 00084 } 00085 return; 00086 }
|
|
00062 { 00063 if( isbarrel ) { 00064 calib_barrel_item.push_back(cal_item1); 00065 } 00066 else { 00067 calib_endcap_item.push_back(cal_item1); 00068 } 00069 return; 00070 }
|
|
00016 { return m_dataset; }
|
|
00016 { return m_dataset; }
|
|
|
|
00089 { 00090 00091 if( !calib_barrel_item.empty() || !calibration_barrel_item.empty() ) { 00092 std::cout << "Begin barrel counters calibration..." << std::endl; 00093 std::cout << setiosflags(ios::left) << setw(10) << "TOF ID" << setw(8) << "Entries" << setw(30) << "What Calibration" << std::endl; 00094 HepVector tcorrelation; 00095 for( unsigned int i=0; i<NBarrel; i++ ) { 00096 RecordSet* barrelData = m_dataset->getBarrelData(i); 00097 if( !calib_barrel_item.empty() ) { 00098 std::vector<TofCalib*>::iterator iter1 = calib_barrel_item.begin(); 00099 for( ; iter1!=calib_barrel_item.end(); iter1++ ) { 00100 (*iter1)->reset(); 00101 (*iter1)->calculate( barrelData, i ); 00102 } 00103 } 00104 if( !calibration_barrel_item.empty() ) { 00105 std::vector<TofCalibFit*>::iterator iter2 = calibration_barrel_item.begin(); 00106 for( ; iter2!=calibration_barrel_item.end(); iter2++ ) { 00107 (*iter2)->calculate( barrelData, i ); 00108 if( i==(NBarrel-1) ) { 00109 if( (*iter2)->name()=="calib_barrel_common" ) { 00110 tcorrelation = (*iter2)->tcorrelation(); 00111 } 00112 } 00113 } 00114 } 00115 } 00116 00117 for( unsigned int i=0; i<NBarrel; i++ ) { 00118 RecordSet* barrelData = m_dataset->getBarrelData(i); 00119 if( !calibration_barrel_item2.empty() ) { 00120 std::vector<TofCalibFit*>::iterator iter2 = calibration_barrel_item2.begin(); 00121 for( ; iter2!=calibration_barrel_item2.end(); iter2++ ) { 00122 if( i==0 ) { 00123 if( (*iter2)->name()=="calib_barrel_sigma" ) { 00124 (*iter2)->setTCorrelation( tcorrelation ); 00125 } 00126 } 00127 (*iter2)->calculate( barrelData, i ); 00128 } 00129 } 00130 } 00131 } 00132 00133 if( !calib_endcap_item.empty() || !calibration_endcap_item.empty() ) { 00134 std::cout << "Begin endcap counters calibration..." << std::endl; 00135 std::cout << setiosflags(ios::left) << setw(10)<<"TOF ID" << setw(8) << "Entries" << setw(30) << "What Calibration" << std::endl; 00136 for( unsigned int i=0; i<NEndcap; i++ ) { 00137 RecordSet* endcapData = m_dataset->getEndcapData(i); 00138 if( !calib_endcap_item.empty() ) { 00139 std::vector<TofCalib*>::iterator iter1 = calib_endcap_item.begin(); 00140 for( ; iter1!=calib_endcap_item.end(); iter1++ ) { 00141 (*iter1)->reset(); 00142 (*iter1)->calculate( endcapData, i ); 00143 } 00144 } 00145 if( !calibration_endcap_item.empty() ) { 00146 std::vector<TofCalibFit*>::iterator iter2 = calibration_endcap_item.begin(); 00147 for( ; iter2!=calibration_endcap_item.end(); iter2++ ) { 00148 (*iter2)->calculate( endcapData, i ); 00149 } 00150 } 00151 } 00152 } 00153 00154 return; 00155 }
|
|
|
|
00203 { 00204 int count = 1; 00205 char filename1[256]; 00206 sprintf( filename1, "%s/barrel%i.root", dir.c_str(), count ); 00207 TFile f1(filename1,"RECREATE"); 00208 TTree* ntbarrel = new TTree( "btrk", "barrel data after calibration" ); 00209 00210 int run; 00211 int event; 00212 int tofid; 00213 double qleft; 00214 double qright; 00215 double tleft; 00216 double tright; 00217 double zrhit; 00218 double texp; 00219 double path; 00220 double phi; 00221 double theta; 00222 double p; 00223 double t0; 00224 double q0; 00225 int hitcase; 00226 00227 ntbarrel->Branch( "run", &run, "run/I" ); 00228 ntbarrel->Branch( "event", &event, "event/I" ); 00229 ntbarrel->Branch( "tofid", &tofid, "tofid/I" ); 00230 ntbarrel->Branch( "qleft", &qleft, "qleft/D" ); 00231 ntbarrel->Branch( "qright", &qright, "qright/D" ); 00232 ntbarrel->Branch( "tleft", &tleft, "tleft/D" ); 00233 ntbarrel->Branch( "tright", &tright, "tright/D" ); 00234 ntbarrel->Branch( "zrhit", &zrhit, "zrhit/D" ); 00235 ntbarrel->Branch( "texp", &texp, "texp/D" ); 00236 ntbarrel->Branch( "path", &path, "path/D" ); 00237 ntbarrel->Branch( "phi", &phi, "phi/D" ); 00238 ntbarrel->Branch( "theta", &theta, "theta/D" ); 00239 ntbarrel->Branch( "p", &p, "p/D" ); 00240 ntbarrel->Branch( "t0", &t0, "t0/D" ); 00241 ntbarrel->Branch( "q0", &q0, "q0/D" ); 00242 ntbarrel->Branch( "hitcase",&hitcase,"hitcase/I"); 00243 00244 int counter = 0; 00245 std::cout << "begin to write..." << filename1 << std::endl; 00246 for( unsigned int i=0; i<NBarrel; i++ ) { 00247 std::cout << "\r\b Writing record ... " << (int((++counter)*100./NBarrel)) << "%"; 00248 RecordSet* barrelData = m_dataset->getBarrelData(i); 00249 std::vector<Record*>::iterator iter = barrelData->begin(); 00250 for( ; iter!=barrelData->end(); iter++ ) { 00251 run = (*iter)->run(); 00252 event = (*iter)->event(); 00253 tofid = (*iter)->tofid(); 00254 qleft = (*iter)->qleft(); 00255 qright = (*iter)->qright(); 00256 tleft = (*iter)->tleft(); 00257 tright = (*iter)->tright(); 00258 zrhit = (*iter)->zrhit(); 00259 texp = (*iter)->texp(); 00260 path = (*iter)->path(); 00261 phi = (*iter)->phi(); 00262 theta = (*iter)->theta(); 00263 p = (*iter)->p(); 00264 t0 = (*iter)->t0(); 00265 q0 = (*iter)->q0(); 00266 hitcase = (*iter)->hitcase(); 00267 ntbarrel->Fill(); 00268 } 00269 } 00270 std::cout << std::endl; 00271 ntbarrel->Write(); 00272 delete ntbarrel; 00273 f1.Close(); 00274 00275 char filename2[256]; 00276 sprintf( filename2, "%s/endcap%i.root", dir.c_str(), count ); 00277 TFile f2(filename2,"RECREATE"); 00278 TTree* ntendcap = new TTree( "etrk", "endcap data after calibration" ); 00279 00280 ntendcap->Branch( "run", &run, "run/I" ); 00281 ntendcap->Branch( "event", &event, "event/I" ); 00282 ntendcap->Branch( "tofid", &tofid, "tofid/I" ); 00283 ntendcap->Branch( "qleft", &qleft, "qleft/D" ); 00284 ntendcap->Branch( "qright", &qright, "qright/D" ); 00285 ntendcap->Branch( "tleft", &tleft, "tleft/D" ); 00286 ntendcap->Branch( "tright", &tright, "tright/D" ); 00287 ntendcap->Branch( "zrhit", &zrhit, "zrhit/D" ); 00288 ntendcap->Branch( "texp", &texp, "texp/D" ); 00289 ntendcap->Branch( "path", &path, "path/D" ); 00290 ntendcap->Branch( "phi", &phi, "phi/D" ); 00291 ntendcap->Branch( "theta", &theta, "theta/D" ); 00292 ntendcap->Branch( "p", &p, "p/D" ); 00293 ntendcap->Branch( "t0", &t0, "t0/D" ); 00294 ntendcap->Branch( "q0", &q0, "q0/D" ); 00295 ntendcap->Branch( "hitcase",&hitcase,"hitcase/I"); 00296 00297 counter = 0; 00298 std::cout << "begin to write..." << filename2 << std::endl; 00299 for( unsigned int i=0; i<NEndcap; i++ ) { 00300 std::cout << "\r\b Writing record ... " << (int((++counter)*100./NEndcap)) << "%"; 00301 RecordSet* endcapData = m_dataset->getEndcapData(i); 00302 std::vector<Record*>::iterator iter = endcapData->begin(); 00303 for( ; iter!=endcapData->end(); iter++ ) { 00304 run = (*iter)->run(); 00305 event = (*iter)->event(); 00306 tofid = (*iter)->tofid(); 00307 qleft = (*iter)->qleft(); 00308 qright = (*iter)->qright(); 00309 tleft = (*iter)->tleft(); 00310 tright = (*iter)->tright(); 00311 zrhit = (*iter)->zrhit(); 00312 texp = (*iter)->texp(); 00313 path = (*iter)->path(); 00314 phi = (*iter)->phi(); 00315 theta = (*iter)->theta(); 00316 p = (*iter)->p(); 00317 t0 = (*iter)->t0(); 00318 q0 = (*iter)->q0(); 00319 hitcase = (*iter)->hitcase(); 00320 ntendcap->Fill(); 00321 } 00322 } 00323 std::cout << std::endl; 00324 ntendcap->Write(); 00325 delete ntendcap; 00326 f2.Close(); 00327 00328 00329 if( !calibration_barrel_item.empty() ) { 00330 std::vector<TofCalibFit*>::iterator iter = calibration_barrel_item.begin(); 00331 for( ; iter != calibration_barrel_item.end(); iter++ ) { 00332 string fname = dir + string("/") + (*iter)->name() + string(".root"); 00333 (*iter)->fillRoot( fname.c_str() ); 00334 } 00335 } 00336 if( !calibration_barrel_item2.empty() ) { 00337 std::vector<TofCalibFit*>::iterator iter = calibration_barrel_item2.begin(); 00338 for( ; iter != calibration_barrel_item2.end(); iter++ ) { 00339 string fname = dir + string("/") + (*iter)->name() + string(".root"); 00340 (*iter)->fillRoot( fname.c_str() ); 00341 } 00342 } 00343 00344 if( !calibration_endcap_item.empty() ) { 00345 std::vector<TofCalibFit*>::iterator iter = calibration_endcap_item.begin(); 00346 for( ; iter != calibration_endcap_item.end(); iter++ ) { 00347 string fname = dir + string("/") + (*iter)->name() + string(".root"); 00348 (*iter)->fillRoot( fname.c_str() ); 00349 } 00350 } 00351 00352 return; 00353 }
|
|
|
|
00158 { 00159 00160 if( !calib_barrel_item.empty() ) { 00161 std::vector<TofCalib*>::iterator iter = calib_barrel_item.begin(); 00162 for( ; iter != calib_barrel_item.end(); iter++ ) { 00163 string fname = dir + string("/") + (*iter)->name() + string(".txt"); 00164 (*iter)->fillTxt( fname.c_str() ); 00165 } 00166 } 00167 00168 if( !calib_endcap_item.empty() ) { 00169 std::vector<TofCalib*>::iterator iter = calib_endcap_item.begin(); 00170 for( ; iter != calib_endcap_item.end(); iter++ ) { 00171 string fname = dir + string("/") + (*iter)->name() + string(".txt"); 00172 (*iter)->fillTxt( fname.c_str() ); 00173 } 00174 } 00175 00176 if( !calibration_barrel_item.empty() ) { 00177 std::vector<TofCalibFit*>::iterator iter = calibration_barrel_item.begin(); 00178 for( ; iter != calibration_barrel_item.end(); iter++ ) { 00179 string fname = dir + string("/") + (*iter)->name() + string(".txt"); 00180 (*iter)->fillTxt( fname.c_str() ); 00181 } 00182 } 00183 if( !calibration_barrel_item2.empty() ) { 00184 std::vector<TofCalibFit*>::iterator iter = calibration_barrel_item2.begin(); 00185 for( ; iter != calibration_barrel_item2.end(); iter++ ) { 00186 string fname = dir + string("/") + (*iter)->name() + string(".txt"); 00187 (*iter)->fillTxt( fname.c_str() ); 00188 } 00189 } 00190 00191 if( !calibration_endcap_item.empty() ) { 00192 std::vector<TofCalibFit*>::iterator iter = calibration_endcap_item.begin(); 00193 for( ; iter != calibration_endcap_item.end(); iter++ ) { 00194 string fname = dir + string("/") + (*iter)->name() + string(".txt"); 00195 (*iter)->fillTxt( fname.c_str() ); 00196 } 00197 } 00198 00199 return; 00200 }
|
|
|
|
00006 { 00007 if( m_manager == 0 ) { 00008 m_manager = new TofCalibManager; 00009 } 00010 return m_manager; 00011 }
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|