25int main(
int argc,
char** argv)
29 char const* inFileName = argc > 1 ? argv[1] :
"data.hipo";
30 int const numEvents = argc > 2 ? std::stoi(argv[2]) : 3;
33 hipo::reader reader(inFileName, {0});
36 hipo::banklist banks = reader.getBanks({
"RUN::config",
40 "REC::Scintillator"});
45 seq.
Add(
"clas12::EventBuilderFilter");
46 seq.
Add(
"clas12::SectorFinder");
47 seq.
Add(
"clas12::rga::MomentumCorrection");
52 seq.
SetOption(
"clas12::EventBuilderFilter",
"log",
"info");
53 seq.
SetOption(
"clas12::SectorFinder",
"log",
"info");
54 seq.
SetOption(
"clas12::rga::MomentumCorrection",
"log",
"info");
58 seq.
SetOption<std::vector<int>>(
"clas12::EventBuilderFilter",
"pids", {11, 211, -211});
68 auto b_config = hipo::getBanklistIndex(banks,
"RUN::config");
69 auto b_particle = hipo::getBanklistIndex(banks,
"REC::Particle");
70 auto b_sector = hipo::getBanklistIndex(banks, sector_finder_bank_name);
74 while(reader.next(banks) && (numEvents == 0 || iEvent++ < numEvents)) {
77 auto& bank_config = banks.at(b_config);
78 auto& bank_particle = banks.at(b_particle);
79 auto& bank_sector = banks.at(b_sector);
82 fmt::println(
"===== EVENT {} =====", bank_config.getInt(
"event", 0));
85 fmt::println(
"----- BEFORE IGUANA -----");
92 fmt::println(
"----- AFTER IGUANA -----");
97 fmt::print(
"----- Analysis Particles -----\n");
98 fmt::print(
" {:<20} {:<20} {:<20} {:<20}\n",
"row == pindex",
"PDG",
"|p|",
"sector");
102 for(
auto const& row : bank_particle.getRowList()) {
104 bank_particle.getFloat(
"px", row),
105 bank_particle.getFloat(
"py", row),
106 bank_particle.getFloat(
"pz", row));
107 auto pdg = bank_particle.getInt(
"pid", row);
108 auto sector = bank_sector.getInt(
"sector", row);
109 fmt::print(
" {:<20} {:<20} {:<20.3f} {:<20}\n", row, pdg, p, sector);