File indexing completed on 2024-10-04 22:55:00
0001 #include <string>
0002 #include <iostream>
0003 #include <fstream>
0004 #include <algorithm>
0005 #include <iterator>
0006 #include <boost/regex.hpp>
0007 #include <boost/tokenizer.hpp>
0008 int main() {
0009 std::string input("TK_HV_ON&N/A&N/A%PIX_HV_ON&N/A&N/A%LHC_RAMPING&false&false%PHYSICS_DECLARED&false&false%");
0010 std::string nameinput("CMS.LVL0:RUNSECTION_DELIMITER_DCSLHCFLAGS_5");
0011
0012 const boost::regex e("%PHYSICS_DECLARED&(true|false|N/A)&(true|false|N/A)%");
0013 const boost::regex ename("^CMS.LVL0:RUNSECTION_DELIMITER_DCSLHCFLAGS_([0-9]+)");
0014 boost::match_results<std::string::const_iterator> what;
0015 boost::regex_search(input, what, e, boost::match_default);
0016 if (what[0].matched) {
0017 std::cout << "matched" << std::endl;
0018 std::cout << std::string(what[1].first, what[1].second) << std::endl;
0019 std::cout << std::string(what[2].first, what[2].second) << std::endl;
0020 }
0021 boost::regex_match(nameinput, what, ename, boost::match_default);
0022 if (what[0].matched) {
0023 std::cout << "named matched" << std::endl;
0024 std::cout << std::string(what[1].first, what[1].second) << std::endl;
0025 }
0026 std::string fname("fillsummary.dat");
0027 std::ifstream ins(fname.c_str());
0028 if (!ins.is_open()) {
0029 std::cout << "cannot open file " << fname << std::endl;
0030 return 0;
0031 }
0032 typedef boost::tokenizer<boost::escaped_list_separator<char> > Tokenizer;
0033 std::vector<std::string> result;
0034 std::string line;
0035 while (std::getline(ins, line)) {
0036 Tokenizer tok(line);
0037 result.assign(tok.begin(), tok.end());
0038 if (result.size() < 3)
0039 continue;
0040 std::cout << "fill num " << result[0] << " , fill scheme " << result[1] << ", ncolliding bunches " << result[2]
0041 << std::endl;
0042
0043 }
0044 }