11 TString txtfile_path =
"$VMCWORKDIR/database/uni_db/macros/parse_schemes/spill_run6/summary.txt",
12 TString scheme_path =
"$VMCWORKDIR/database/uni_db/macros/parse_schemes/spill_run6/spill_run6.xslt")
20 vector<structParseValue*> parse_values;
21 vector<structParseSchema> vecElements;
22 int res_code = parser.
ParseTxt2Struct(txtfile_path, scheme_path, parse_values, vecElements);
24 cout << endl <<
"Macro finished with errors: parser error (" << res_code <<
")" << endl;
28 if (parse_values.size() < 1) {
29 cout << endl <<
"Macro finished with errors: there are no lines to parse" << endl;
41 cout << endl <<
"Macro finished with errors: no runs exists in the given period #" << period << endl;
51 arrayConditions.
Add((
TObject*)searchCondition);
55 arrayConditions.
Add((
TObject*)searchCondition);
60 cout << endl <<
"Macro finished with errors: no runs exists for the given target: " << target << endl;
67 int sum_size = parse_values[0]->arrValues.size();
68 vector<Long64_t> total_columns;
69 for (
int i_total = 0; i_total < sum_size; i_total++)
70 total_columns.push_back(0);
72 for (
int i = 0;
i < run_count;
i++) {
73 if (run_numbers !=
nullptr)
75 if (pRunArray !=
nullptr)
76 run = ((
UniRun*)pRunArray->
At(
i))->GetRunNumber();
80 if (pRun ==
nullptr) {
82 <<
"Macro finished with errors: no experimental run was found " << period <<
" : " << run <<
" / "
83 << ((
UniRun*)pRunArray->
At(
i))->GetRunNumber() << endl;
84 if (run_numbers !=
nullptr)
86 if (pRunArray !=
nullptr)
93 if (dateEnd ==
nullptr) {
94 cout <<
"Macro finished with errors: no end datetime in the database for this run" << endl;
96 if (run_numbers !=
nullptr)
98 if (pRunArray !=
nullptr)
106 int current_spill = -1;
107 vector<int> veto_spills;
109 veto_spills = GemRun6VetoSpills(run);
111 vector<Long64_t> sum_columns;
112 for (
int i_sum = 0; i_sum < sum_size; i_sum++)
113 sum_columns.push_back(0);
115 bool isFound =
false;
117 for (
int ind = 0; ind < parse_values.size(); ind++) {
124 stPrevious = parse_values.at(ind - 1);
127 if (find(veto_spills.begin(), veto_spills.end(), current_spill) != veto_spills.end()) {
132#ifdef ScaleBorderInfo
136 double sec_ratio = sec2 / sec1;
138 for (
int i_sum = 0; i_sum < sum_size; i_sum++)
139 sum_columns[i_sum] +=
143 for (
int i_sum = 0; i_sum < sum_size; i_sum++)
144 sum_columns[i_sum] += boost::any_cast<int>(st->
arrValues[i_sum]);
153 stPrevious = parse_values.at(ind - 1);
159 if (find(veto_spills.begin(), veto_spills.end(), current_spill) != veto_spills.end()) {
164#ifdef ScaleBorderInfo
168 double sec_ratio = sec2 / sec1;
170 for (
int i_sum = 0; i_sum < sum_size; i_sum++)
171 sum_columns[i_sum] +=
178 if (find(veto_spills.begin(), veto_spills.end(), current_spill) != veto_spills.end()) {
184 for (
int i_sum = 0; i_sum < sum_size; i_sum++)
185 sum_columns[i_sum] += boost::any_cast<int>(st->
arrValues[i_sum]);
189 for (
int i_sum = 0; i_sum < sum_size; i_sum++)
190 total_columns[i_sum] += sum_columns[i_sum];
193 cout << endl <<
"Run #" << run <<
" (" << dtStart.
AsSQLString() <<
" - " << dtEnd.
AsSQLString() <<
")" << endl;
195 int count_column = 0;
196 for (vector<structParseSchema>::iterator it = vecElements.begin(); it != vecElements.end(); ++it) {
197 if (count_column >= sum_size)
204 if (schema.
vecRows[0].strStatementType ==
"int") {
205 if (count_column > 0)
207 cout <<
"sum(" << schema.
vecRows[0].strColumnName <<
"): " << sum_columns[count_column];
210 if (schema.
vecRows[0].strStatementType ==
"double") {
211 cout <<
"ERROR: type of the column is not supported: " << schema.
vecRows[0].strStatementType
219 cout <<
"No spill data in the file!" << endl;
224 cout << endl <<
"Total count for all runs:" << endl;
225 int count_column = 0;
226 for (vector<structParseSchema>::iterator it = vecElements.begin(); it != vecElements.end(); ++it) {
227 if (count_column >= sum_size)
234 if (schema.
vecRows[0].strStatementType ==
"int") {
235 if (count_column > 0)
237 cout <<
"total(" << schema.
vecRows[0].strColumnName <<
"): " << total_columns[count_column];
240 if (schema.
vecRows[0].strStatementType ==
"double") {
241 cout <<
"ERROR: type of the column is not supported: " << schema.
vecRows[0].strStatementType
247 cout << endl << endl;
251 if (run_numbers !=
nullptr)
252 delete[] run_numbers;
253 if (pRunArray !=
nullptr)
256 cout <<
"Macro finished successfully" << endl;
void run_beam_info(int period=7, int run=0, TString target="", TString txtfile_path="$VMCWORKDIR/database/uni_db/macros/parse_schemes/spill_run6/summary.txt", TString scheme_path="$VMCWORKDIR/database/uni_db/macros/parse_schemes/spill_run6/spill_run6.xslt")