KVNumberList KVINDRAReconDataAnalyser::PrintAvailableRuns(KVString & datatype) { //Prints list of available runs, sorted according to multiplicity //trigger, for selected dataset, data type/analysis task, and system //Returns list containing all run numbers KVNumberList all_runs= fDataSet->GetRunList(datatype.Data(), fSystem); KVINDRADBRun *dbrun; //first read list and find what triggers are available int triggers[10], n_trigs = 0; all_runs.Begin(); while ( !all_runs.End() ) { dbrun = (KVINDRADBRun *)fDataSet->GetDataBase()->GetTable("Runs")->GetRecord(all_runs.Next()); if (!KVBase:: ArrContainsValue(n_trigs, triggers, dbrun->GetTrigger())) { triggers[n_trigs++] = dbrun->GetTrigger(); } } //sort triggers in ascending order int ord_trig[10]; TMath::Sort(n_trigs, triggers, ord_trig, kFALSE); int trig = 0; while (trig < n_trigs) { cout << " ---> Trigger M>" << triggers[ord_trig[trig]] << endl; all_runs.Begin(); while ( !all_runs.End() ) { dbrun = (KVINDRADBRun *)fDataSet->GetDataBase()->GetTable("Runs")->GetRecord(all_runs.Next()); if (dbrun->GetTrigger() == triggers[ord_trig[trig]]) { cout << " " << Form("%4d", dbrun->GetNumber()); cout << Form("\t(%7d events)", dbrun->GetEvents()); cout << "\t[File written: " << dbrun->GetDatime(). AsString() << "]"; if (dbrun->GetComments()) cout << "\t" << dbrun->GetComments(); cout << endl; } } trig++; cout << endl; } return all_runs; }
KVNumberList KVINDRARawDataAnalyser::PrintAvailableRuns(KVString& datatype) { //Prints list of available runs, sorted according to multiplicity //trigger, for selected dataset, data type/analysis task, and system //Returns list containing all run numbers KVNumberList all_runs = GetDataSet()->GetRunList(datatype.Data(), GetSystem()); KVINDRADBRun* dbrun; //first read list and find what triggers are available vector<int> triggers; all_runs.Begin(); while (!all_runs.End()) { dbrun = (KVINDRADBRun*)GetDataSet()->GetDataBase()->GetDBRun(all_runs.Next()); if (triggers.size() == 0 || std::find(triggers.begin(), triggers.end(), dbrun->GetTrigger()) != triggers.end()) { triggers.push_back(dbrun->GetTrigger()); } } //sort triggers in ascending order std::sort(triggers.begin(), triggers.end()); for (std::vector<int>::iterator it = triggers.begin(); it != triggers.end(); ++it) { cout << " ---> Trigger M>" << *it << endl; all_runs.Begin(); while (!all_runs.End()) { dbrun = (KVINDRADBRun*)GetDataSet()->GetDataBase()->GetDBRun(all_runs.Next()); if (dbrun->GetTrigger() == *it) { cout << " " << Form("%4d", dbrun->GetNumber()); cout << Form("\t(%7d events)", dbrun->GetEvents()); cout << "\t[File written: " << dbrun->GetDatime(). AsString() << "]"; if (dbrun->GetComments()) cout << "\t" << dbrun->GetComments(); cout << endl; } } cout << endl; } return all_runs; }