317 def dump_event(self, event, mom_threshold: float = 0) -> None:
318 """Dump the MCtruth of the event."""
319 headers = [
320 "#",
321 "particle",
322 "pdgcode",
323 "mother_id",
324 "Momentum [Px,Py,Pz] (GeV/c)",
325 "StartVertex[x,y,z] (m)",
326 "Process",
327 "GetWeight()",
328 ]
329
330 event_table = []
331 for trackNr, track in enumerate(event.MCTrack):
332 if track.GetP() / u.GeV < mom_threshold:
333 continue
334
335 particle = self.pdg.GetParticle(track.GetPdgCode())
336 particlename = particle.GetName() if particle else "----"
337
338 event_table.append(
339 [
340 trackNr,
341 particlename,
342 track.GetPdgCode(),
343 track.GetMotherId(),
344 f"[{track.GetPx() / u.GeV:7.3f},{track.GetPy() / u.GeV:7.3f},{track.GetPz() / u.GeV:7.3f}]",
345 f"[{track.GetStartX() / u.m:7.3f},{track.GetStartY() / u.m:7.3f},{track.GetStartZ() / u.m:7.3f}]",
346 track.GetProcName().Data(),
347 track.GetWeight(),
348 ]
349 )
350
351 print(tabulate(event_table, headers=headers, floatfmt=".3f", tablefmt="simple_outline"))