16 std::ifstream file(csv_file_path);
17 if (!file.is_open()) {
18 throw std::runtime_error(
"Could not open CSV file: " + csv_file_path);
22 std::getline(file, line);
24 while (std::getline(file, line)) {
25 std::istringstream ss(line);
28 std::getline(ss, token,
',');
29 int min_run = std::stoi(token);
31 std::getline(ss, token,
',');
32 int max_run = std::stoi(token);
34 std::getline(ss, token);
35 std::string path = token;
37 if (run_number >= min_run && run_number <= max_run) {
41 throw std::runtime_error(
"Run number not found in CSV mapping.");
47 TPython::Exec(
"import SndlhcGeo");
48 TPython::Exec((
"SndlhcGeo.GeoInterface('" + geometry_path +
"')").c_str());
55 scifi =
dynamic_cast<Scifi *
>(gROOT->GetListOfGlobals()->FindObject(
"Scifi"));
56 mufilter =
dynamic_cast<MuFilter *
>(gROOT->GetListOfGlobals()->FindObject(
"MuFilter"));
58 return std::make_pair(scifi, mufilter);