25int main(
int argc,
char *argv[]){
27 cout <<
"plase append the old calibration const root file, Ex. insert_run_calib.exe old.root [runlist.txt]" << endl;
31 TString str_runlist =
"runlist.txt";
32 if(argc>=3) str_runlist = argv[2];
33 cout <<
"old file: " <<
str_old <<
" runlist file: " << str_runlist << endl;
35 TFile f_new(
"new.root",
"recreate");
37 ifstream in(str_runlist);
39 cout <<
"cannot open runlist.txt" << endl;
44 int runno, evtfrom, evtto;
45 Double_t runmean, rungain, runresol;
48 sscanf(str ,
"%d", &in_runno);
49 if(!in_runno)
continue;
50 arr_tree[0]->SetBranchAddress(
"runno", &runno );
51 arr_tree[0]->SetBranchAddress(
"evtfrom", &evtfrom );
52 arr_tree[0]->SetBranchAddress(
"evtto", &evtto );
53 arr_tree[0]->SetBranchAddress(
"runmean", &runmean);
54 arr_tree[0]->SetBranchAddress(
"rungain", &rungain);
55 arr_tree[0]->SetBranchAddress(
"runresol", &runresol);
57 double temp_runmean(0), temp_rungain(0), temp_runresol(0);
58 for(Long64_t i=0; i<
arr_tree[0]->GetEntries(); i++){
60 if( ((runno-in_runno)<0 &&
abs(runno-in_runno)<=min_diff) || ((runno-in_runno)>0 &&
abs(runno-in_runno)<min_diff)){
61 min_diff =
abs(runno-in_runno);
62 temp_runmean = runmean;
63 temp_rungain = rungain;
64 temp_runresol = runresol;
70 runmean = temp_runmean;
71 rungain = temp_rungain;
72 runresol = temp_runresol;
73 cout <<
"runno " << runno << endl;