// Keep note of the modifiers: // @ to access the container methods (eg. vector::size()) // ? to indicate that the fields may not exist/have contents // () to indicate that the field is a method to be called { type: "NTUPLE", version: 1, index: "mc", run_range: [0, 0], pass: 0, comment: "", timestamp: "", fields: [ "mc_run", "runID", "mc_id", "mc.mcid", "mc_time", "mc.mcTime", "mc_ut_days", "mc.universalTime.days", "mc_ut_secs", "mc.universalTime.seconds", "mc_ut_nsecs", "mc.universalTime.nanoSeconds", "mc_numPE", "mc.mcPECount", "mc_pdgcode", "mc.particles.pdgCode", "mc_parent_ke", "mc.parents?.kineticEnergy", "mc_parent_x","mc.parents?.position.X()", "mc_parent_y", "mc.parents?.position.Y()", "mc_parent_z", "mc.parents?.position.Z()", "mc_parent_px","mc.parents?.momentum.X()", "mc_parent_py","mc.parents?.momentum.Y()", "mc_parent_pz", "mc.parents?.momentum.Z()", "mc_t", "mc.particles.mcTime", "mc_ke", "mc.particles.kineticEnergy", "mc_x", "mc.particles.position.X()", "mc_y", "mc.particles.position.Y()", "mc_z", "mc.particles.position.Z()", "mc_r2", "mc.particles.position.Mag2()", "mc_px", "mc.particles.momentum.X()", "mc_py", "mc.particles.momentum.Y()", "mc_pz", "mc.particles.momentum.Z()", "mc_nhit", "mc.@pmts.size()", "mc_edep", "mc.scintEnergyDeposit", "mc_edep_quenched", "mc.scintQuenchedEnergyDeposit", "mc_initial_scint_time", "mc.intialScintTime", "mc_cerenkov_photon_count", "mc.nCherPhotons", ], } { type: "NTUPLE", version: 1, index: "data", run_range: [0, 0], pass: 0, comment: "", timestamp: "", fields: [ "ev_id", "mcevs.gtid", "ev_nhits", "evs.nhits", "ev_clock_count_50", "evs.clockCount50", "ev_clock_count_10", "evs.clockCount10", "ev_gtrig_time", "mcevs.gtTime", "ev_trig_type", "evs.trigType", "ev_data_clean_flags", "evs.dataCleaningFlags.flags.flags", "ev_fit_position_x", "evs?.fit?.position.X()", "ev_fit_position_y", "evs?.fit?.position.Y()", "ev_fit_position_z", "evs?.fit?.position.Z()", "ev_fit_energy", "evs?.fit?.energy", "ev_fit_time", "evs?.fit?.time", "ev_fit_direction_x", "evs?.fit?.direction.X()", "ev_fit_direction_y", "evs?.fit?.direction.Y()", "ev_fit_direction_z", "evs?.fit?.direction.Z()", ], } { type: "NTUPLE", version: 1, index: "mc_ev", run_range: [0, 0], pass: 0, comment: "", timestamp: "", fields: [ "mc_run", "runID", "mc_id", "mc.mcid", "mc_time", "mc.mcTime", "mc_ut_days", "mc.universalTime.days", "mc_ut_secs", "mc.universalTime.seconds", "mc_ut_nsecs", "mc.universalTime.nanoSeconds", "mc_numPE", "mc.mcPECount", "mc_pdgcode", "mc.particles.pdgCode", "mc_t", "mc.particles.mcTime", "mc_ke", "mc.particles.kineticEnergy", "mc_x", "mc.particles.position.X()", "mc_y", "mc.particles.position.Y()", "mc_z", "mc.particles.position.Z()", "mc_r2", "mc.particles.position.Mag2()", "mc_px", "mc.particles.momentum.X()", "mc_py", "mc.particles.momentum.Y()", "mc_pz", "mc.particles.momentum.Z()", "mc_nhit", "mc.@pmts.size()", "mc_edep", "mc.scintEnergyDeposit", "mc_edep_quenched", "mc.scintQuenchedEnergyDeposit", "mc_initial_scint_time", "mc.intialScintTime", "mc_cerenkov_photon_count", "mc.nCherPhotons", "ev_id", "mcevs.gtid", "ev_nhits", "evs?.nhits", "ev_clock_count_50", "evs?.clockCount50", "ev_clock_count_10", "evs?.clockCount10", "ev_gtrig_time", "mcevs?.gtTime", "ev_trig_type", "evs?.trigType", "ev_data_clean_flags", "evs?.dataCleaningFlags.flags.flags", ], } { type: "NTUPLE", version: 1, index: "pmt", run_range: [0, 0], pass: 0, comment: "Only the normal PMTs are extracted as with the DS review the PMTs are now grouped by type", timestamp: "", fields: [ "pmt_qhs", "evs.calPMTs.normal.qhs", "pmt_qhl", "evs.calPMTs.normal.qhl", "pmt_qlx", "evs.calPMTs.normal.qlx", "pmt_time", "evs.calPMTs.normal.time", ], }