00001 #include <iostream>
00002 #include <fstream>
00003 #include <iomanip>
00004 #include <cstring>
00005 #include <string>
00006 #include <vector>
00007
00008 using namespace std;
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 int main(){
00022 char runlist[200];
00023 char rawlist[200];
00024 sprintf(runlist, "RunList.txt");
00025 sprintf(rawlist, "rawFileList.txt");
00026
00027 string str;
00028 vector<int> vRun;
00029 vector<string> vRunFile;
00030 ifstream frunlist(runlist);
00031 while(frunlist >> str){
00032 vRunFile.push_back(str);
00033
00034 string strtmp = str;
00035 strtmp.erase(0,strtmp.find("_")+1);
00036 strtmp.erase(strtmp.find("."),4);
00037 int iRun;
00038 sscanf(strtmp.c_str(), "%d", &iRun);
00039 vRun.push_back(iRun);
00040
00041 }
00042 frunlist.close();
00043
00044 vector<int> vRawRun;
00045 vector<string> vRawFile;
00046 vector<string> vRawFileInput;
00047 ifstream frawlist(rawlist);
00048 while(frawlist >> str){
00049 vRawFile.push_back(str);
00050
00051 string strtmp = str;
00052 string::size_type i1 = str.find("run_");
00053 strtmp = str.substr(i1+4, 7);
00054 int iRun;
00055 sscanf(strtmp.c_str(), "%d", &iRun);
00056 vRawRun.push_back(iRun);
00057
00058
00059 string strtmp2 = str;
00060 string::size_type i2 = str.find("All_");
00061 strtmp2 = str.substr(0, i2+8);
00062 string strtmp3 = strtmp2 + "*.raw";
00063 vRawFileInput.push_back(strtmp3);
00064
00065 }
00066 frawlist.close();
00067
00068 ofstream fout("job.txt");
00069 for(unsigned i=0; i<vRun.size(); i++){
00070 int index = -1;
00071 for(unsigned k=0; k<vRawRun.size(); k++){
00072
00073 if(vRun[i] == vRawRun[k]){ index = k; break;}
00074 }
00075 if(index > -1){
00076 fout << "raw_evt_filter.exe " << vRunFile[i] << " \"" << vRawFileInput[index] << "\"" << endl;
00077 } else{
00078 cout << "can not find raw file for " << vRunFile[i] << endl;
00079 }
00080 }
00081 fout.close();
00082
00083 return 0;
00084 }
00085