20int main(
int argc,
char** argv)
24 char const* inFileName = argc > 1 ? argv[1] :
"data.hipo";
25 int const numEvents = argc > 2 ? std::stoi(argv[2]) : 3;
28 hipo::reader reader(inFileName,{0});
31 hipo::banklist banks = reader.getBanks({
"RUN::config",
35 "REC::Scintillator"});
40 seq.
Add(
"clas12::EventBuilderFilter");
41 seq.
Add(
"clas12::SectorFinder");
42 seq.
Add(
"clas12::MomentumCorrection");
47 seq.
SetOption(
"clas12::EventBuilderFilter",
"log",
"info");
48 seq.
SetOption(
"clas12::SectorFinder",
"log",
"info");
49 seq.
SetOption(
"clas12::MomentumCorrection",
"log",
"info");
53 seq.
SetOption<std::vector<int>>(
"clas12::EventBuilderFilter",
"pids", {11, 211, -211});
60 auto b_config = hipo::getBanklistIndex(banks,
"RUN::config");
61 auto b_particle = hipo::getBanklistIndex(banks,
"REC::Particle");
62 auto b_sector = hipo::getBanklistIndex(banks,
"REC::Particle::Sector");
66 while(reader.next(banks) && (numEvents == 0 || iEvent++ < numEvents)) {
69 auto& bank_config = banks.at(b_config);
70 auto& bank_particle = banks.at(b_particle);
71 auto& bank_sector = banks.at(b_sector);
74 fmt::println(
"===== EVENT {} =====", bank_config.getInt(
"event", 0));
77 fmt::println(
"----- BEFORE IGUANA -----");
84 fmt::println(
"----- AFTER IGUANA -----");
89 fmt::print(
"----- Analysis Particles -----\n");
90 fmt::print(
" {:<20} {:<20} {:<20} {:<20}\n",
"row == pindex",
"PDG",
"|p|",
"sector");
94 for(
auto const& row : bank_particle.getRowList()) {
96 bank_particle.getFloat(
"px", row),
97 bank_particle.getFloat(
"py", row),
98 bank_particle.getFloat(
"pz", row));
99 auto pdg = bank_particle.getInt(
"pid", row);
100 auto sector = bank_sector.getInt(
"sector", row);
101 fmt::print(
" {:<20} {:<20} {:<20.3f} {:<20}\n", row, pdg, p, sector);