26int main(
int argc,
char** argv)
30 char const* in_file = argc > 1 ? argv[1] :
"data.hipo";
31 int const num_events = argc > 2 ? std::stoi(argv[2]) : 100;
32 bool const interactive_mode = argc > 3 ? std::string(argv[3]) ==
"true" :
false;
36 algo_eventbuilder_filter.
SetOption<std::vector<int>>(
"pids", {11, 211, -211});
37 algo_eventbuilder_filter.
Start();
40 auto app = interactive_mode ?
new TApplication(
"app", &argc, argv) :
nullptr;
46 auto frame_init = MakeHipoDataFrame(in_file).Range(0, num_events);
49 fmt::print(
"DATAFRAME COLUMNS:\n");
50 for(
auto const& column_name : frame_init.GetColumnNames())
51 fmt::print(
" - {}\n", column_name);
57 auto frame_filtered = frame_init
59 "REC_Particle_EventBuilderFilter",
60 [&](std::vector<int>
const& pids)
61 {
return algo_eventbuilder_filter.
Filter(pids); },
64 "REC_Particle_pid_good",
65 [](std::vector<int>
const& pids, std::deque<bool>& filter)
67 std::vector<int> result;
68 for(std::deque<bool>::size_type i = 0; i < filter.size(); i++) {
70 result.push_back(pids.at(i));
74 {
"REC_Particle_pid",
"REC_Particle_EventBuilderFilter"});
77 auto hist = frame_filtered.Histo1D({
"pid_filter",
"PDG", 6000, -3000, 3000},
"REC_Particle_pid_good");
80 auto canv =
new TCanvas(
"canv",
"canv", 1600, 1200);
83 if(interactive_mode) {
84 fmt::print(
"\n\nShowing plots interactively;\npress ^C to exit.\n\n");
88 canv->SaveAs(
"out-iguana-dataframe-example.png");