Changeset 19886 for trunk/FACT++/src
- Timestamp:
- 12/11/19 20:39:31 (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/FACT++/src/spectrum.cc
r19882 r19886 130 130 #endif 131 131 , "Database link as in\n\tuser:password@server[:port]/database[?compress=0|1].") 132 ("out,o", var<string>(conf.GetName()), " ")132 ("out,o", var<string>(conf.GetName()), "Defines the prefix (with path) of the output files.") 133 133 ("dry-run", po_switch(), "Only write the queries to the query.log file. Internally overwrites uri with an empty string.") 134 134 ; … … 136 136 po::options_description binnings("Binnings"); 137 137 binnings.add_options() 138 ("theta", var<Binning>(Binning(90, 0, 90)), "")139 ("theta-bin", vars<double>(), "")140 ("esim", var<Binning>(Binning(15, 2, 5)), "")141 ("esim-bin", vars<double>(), "")142 ("eest", var<Binning>(Binning(15, 2, 5)), "")143 ("eest-bin", vars<double>(), "")138 ("theta", var<Binning>(Binning(90, 0, 90)), "Add equidistant bins in theta (degrees). Syntax: N,lo,hi (Number N of equidistant bins between lo and hi)") 139 ("theta-bin", vars<double>(), "Add a bin-edge to the theta binning (degree)") 140 ("esim", var<Binning>(Binning(15, 2, 5)), "Add equidistant bins in log10 simulated energy. Syntax: N,lo,hi (Number N of equidistant bins between lo and hi)") 141 ("esim-bin", vars<double>(), "Add a bin-edge to the binnnig in log10 simulated enegry") 142 ("eest", var<Binning>(Binning(15, 2, 5)), "Add equidistant bins in log10 estimated energy. Syntax: N,lo,hi (Number N of equidistant bins between lo and hi)") 143 ("eest-bin", vars<double>(), "Add a bin-edge to the binning in log10 estimated enegry") 144 144 ; 145 145 146 146 po::options_description queries("Queries"); 147 147 queries.add_options() 148 ("analysis", var<string>("analysis.sql"), " ")149 ("data", var<string>("data.sql"), " ")150 ("simulation", var<string>("simulation.sql"), " ")148 ("analysis", var<string>("analysis.sql"), "File with the analysis query. A default file is created automatically in the <prefix> directory it does not exist.") 149 ("data", var<string>("data.sql"), "File with the query which creates the data summary. A default file is created automatically in the <prefix> directory it does not exist.") 150 ("simulation", var<string>("simulation.sql"), "File with the query which creates the simulation summary. A default file is created automatically in the <prefix> directory it does not exist.") 151 151 ; 152 152 153 153 po::options_description preparation("Preparation"); 154 154 preparation.add_options() 155 ("source-key", var<uint16_t>(5), " ")156 ("selector", vars<string>(), " ")157 ("estimator", var<string>()->required(), " ")158 ("spectrum", var<string>()->required(), " ")159 ("env.*", var<string>(), " ")155 ("source-key", var<uint16_t>(5), "Source key to be used in file selection.") 156 ("selector", vars<string>(), "WHERE clause to be used in file selection.") 157 ("estimator", var<string>()->required(), "Energy estimator to be used.") 158 ("spectrum", var<string>()->required(), "Spectral shape for re-weighting of simulated 'Energy'") 159 ("env.*", var<string>(), "Define a variable that is replaced in all queries automatically.") 160 160 ; 161 161 … … 163 163 debug.add_options() 164 164 ("print-connection", po_switch(), "Print database connection information") 165 ("print-queries", po_switch(), "") 165 #ifdef HAVE_HIGHLIGHT 166 ("print-queries", po_switch(), "Print all queries to the console. They are automatically highlighted.") 167 #else 168 ("print-queries", po_switch(), "Print all queries to the console. (For highlighting recompile with 'libsource-highlight-dev' installed)") 169 #endif 166 170 ("verbose,v", var<uint16_t>(1), "Verbosity (0: quiet, 1: default, 2: more, 3, ...)") 167 171 ; … … 567 571 Binning binning_eest = conf.Get<Binning>("eest"); 568 572 569 cout << "B\"theta\": " << binning_theta.str() << endl; 570 cout << "B\"esim\": " << binning_esim.str() << endl; 571 cout << "B\"eest\": " << binning_eest.str() << endl; 573 cout << '\n'; 574 cout << "Binning 'theta': " << binning_theta.str() << endl; 575 cout << "Binning 'Esim': " << binning_esim.str() << endl; 576 cout << "Binning 'Eest': " << binning_eest.str() << endl; 572 577 573 578 const uint16_t source_key = conf.Get<uint16_t>("source-key"); … … 1028 1033 1029 1034 1030 const mysqlpp::StoreQueryResult res4 = connection.query("SELECT * FROM ThetaHist").store(); 1031 1032 cout << " Bin MC Counts OnTime ZdWeight\n"; 1033 const auto bins = binning_theta.vec(); 1034 for (auto ir=res4.cbegin(); ir!=res4.cend(); ir++) 1035 if (verbose>0) 1035 1036 { 1036 const mysqlpp::Row &row = *ir; 1037 1038 const uint32_t bin = row[".theta"]; 1039 cout << setw(5) << bins[bin] << ": " << setw(10) << row["CountN"] << " " << setw(10) << row["OnTime"] << " " << setw(10) << row["ZdWeight"] << '\n'; 1037 const mysqlpp::StoreQueryResult res4 = connection.query("SELECT * FROM ThetaHist").store(); 1038 1039 cout << " Bin MC Counts OnTime ZdWeight\n"; 1040 const auto bins = binning_theta.vec(); 1041 for (auto ir=res4.cbegin(); ir!=res4.cend(); ir++) 1042 { 1043 const mysqlpp::Row &row = *ir; 1044 1045 const uint32_t bin = row[".theta"]; 1046 cout << setw(5) << bins[bin] << ": " << setw(10) << row["CountN"] << " " << setw(10) << row["OnTime"] << " " << setw(10) << row["ZdWeight"] << '\n'; 1047 } 1048 cout << endl; 1040 1049 } 1041 cout << endl;1042 1050 } 1043 1051 … … 1142 1150 cout << "Execution time: " << sec5 << "s\n"; 1143 1151 1144 1145 const mysqlpp::StoreQueryResult res5 = connection.query("SELECT * FROM AnalysisData").store(); 1146 1147 cout << " Bin Signal Background Excess Significance Error" << endl; 1148 for (auto row=res5.cbegin(); row!=res5.cend(); row++) 1152 if (verbose>0) 1149 1153 { 1150 for (auto it=row->begin(); it!=row->end(); it++) 1151 cout << setw(10) << *it << " "; 1152 cout << '\n'; 1154 const mysqlpp::StoreQueryResult res5 = connection.query("SELECT * FROM AnalysisData").store(); 1155 1156 cout << " Bin Signal Background Excess Significance Error" << endl; 1157 for (auto row=res5.cbegin(); row!=res5.cend(); row++) 1158 { 1159 for (auto it=row->begin(); it!=row->end(); it++) 1160 cout << setw(10) << *it << " "; 1161 cout << '\n'; 1162 } 1163 cout << endl; 1153 1164 } 1154 cout << endl;1155 1165 } 1156 1166 … … 1298 1308 1299 1309 1300 const mysqlpp::StoreQueryResult res7 = connection.query("SELECT * FROM SimulatedSpectrum").store(); 1301 1302 //cout << "Received rows: " << res7.num_rows() << '\n' << endl; 1303 1304 // 123456789|123456789|123456789|123456789|123456789|123456789|123456789 1305 cout << " Bin CountW CountW2" << endl; 1306 const auto bins = binning_esim.vec(); 1307 for (auto ir=res7.cbegin(); ir!=res7.cend(); ir++) 1310 if (verbose>0) 1308 1311 { 1309 const mysqlpp::Row &row = *ir; 1310 1311 const uint32_t bin = row[".energy"]; 1312 cout << setw(5) << bins[bin] << ": " << setw(10) << row["CountW"] << " " << setw(10) << row["CountW2"] << '\n'; 1312 const mysqlpp::StoreQueryResult res7 = connection.query("SELECT * FROM SimulatedSpectrum").store(); 1313 1314 cout << " Bin CountW CountW2" << endl; 1315 const auto bins = binning_esim.vec(); 1316 for (auto ir=res7.cbegin(); ir!=res7.cend(); ir++) 1317 { 1318 const mysqlpp::Row &row = *ir; 1319 1320 const uint32_t bin = row[".energy"]; 1321 cout << setw(5) << bins[bin] << ": " << setw(10) << row["CountW"] << " " << setw(10) << row["CountW2"] << '\n'; 1322 } 1323 cout << endl; 1313 1324 } 1314 cout << endl;1315 1325 } 1316 1326 … … 1463 1473 const mysqlpp::StoreQueryResult res8 = connection.query("SELECT * FROM Spectrum").store(); 1464 1474 1465 cout << " Bin Flux Error" << endl; 1466 const auto bins = binning_eest.vec(); 1467 for (auto ir=res8.cbegin(); ir!=res8.cend(); ir++) 1475 if (verbose>0) 1468 1476 { 1469 const mysqlpp::Row &row = *ir; 1470 1471 const uint32_t bin = row[".energy"]; 1472 cout << setw(5) << bins[bin] << ": " << setw(10) << row["Flux"] << " " << setw(10) << row["ErrFlux"] << '\n'; 1477 cout << " Bin Flux Error" << endl; 1478 const auto bins = binning_eest.vec(); 1479 for (auto ir=res8.cbegin(); ir!=res8.cend(); ir++) 1480 { 1481 const mysqlpp::Row &row = *ir; 1482 1483 const uint32_t bin = row[".energy"]; 1484 cout << setw(5) << bins[bin] << ": " << setw(10) << row["Flux"] << " " << setw(10) << row["ErrFlux"] << '\n'; 1485 } 1486 cout << endl; 1473 1487 } 1474 cout << endl;1475 1488 1476 1489 // --------------------------------------------------------------------------
Note:
See TracChangeset
for help on using the changeset viewer.