Skip to content
Snippets Groups Projects

Resolve "Add true decaying particle info onto event display"

Merged Jihee Kim requested to merge 43-add-true-decaying-particle-info-onto-event-display into master
1 file
+ 12
11
Compare changes
  • Side-by-side
  • Inline
@@ -151,17 +151,18 @@ if __name__ == '__main__':
@@ -151,17 +151,18 @@ if __name__ == '__main__':
dfallmcp = get_all_mcp(args.file, args.iev, 'mcparticles2')
dfallmcp = get_all_mcp(args.file, args.iev, 'mcparticles2')
# Select decaying particles
# Select decaying particles
dftemp = dfallmcp[dfallmcp['g4Parent'] == 1.0]
dftemp = dfallmcp[dfallmcp['g4Parent'] == 1.0]
dfdecaymcp = dftemp.copy()
if len(dfdecaymcp) > 0:
pdgbase = ROOT.TDatabasePDG()
dfdecaymcp = dftemp.copy()
for iptl in [0, len(dfdecaymcp) - 1]:
pdgbase = ROOT.TDatabasePDG()
infoptl = pdgbase.GetParticle(int(dfdecaymcp['pid'].iloc[iptl]))
for iptl in [0, len(dfdecaymcp) - 1]:
print("{} Decaying particle = {}, pdgcode = {}, charge = {}, mass = {}"\
infoptl = pdgbase.GetParticle(int(dfdecaymcp['pid'].iloc[iptl]))
.format(iptl, infoptl.GetName(), infoptl.PdgCode(), infoptl.Charge(), infoptl.Mass()))
print("{} Decaying particle = {}, pdgcode = {}, charge = {}, mass = {}"\
# Calculate geometric variables of decaying particles
.format(iptl, infoptl.GetName(), infoptl.PdgCode(), infoptl.Charge(), infoptl.Mass()))
dfdecaymcp['r'] = np.sqrt(dfdecaymcp['vex'].values**2 + dfdecaymcp['vey'].values**2 + dfdecaymcp['vez'].values**2)
# Calculate geometric variables of decaying particles
dfdecaymcp['phi'] = np.arctan2(dfdecaymcp['vey'].values, dfdecaymcp['vex'].values)*1000.
dfdecaymcp['r'] = np.sqrt(dfdecaymcp['vex'].values**2 + dfdecaymcp['vey'].values**2 + dfdecaymcp['vez'].values**2)
dfdecaymcp['theta'] = np.arccos(dfdecaymcp['vez'].values/dfdecaymcp['r'].values)*1000.
dfdecaymcp['phi'] = np.arctan2(dfdecaymcp['vey'].values, dfdecaymcp['vex'].values)*1000.
dfdecaymcp['eta'] = -np.log(np.tan(dfdecaymcp['theta'].values/1000./2.))
dfdecaymcp['theta'] = np.arccos(dfdecaymcp['vez'].values/dfdecaymcp['r'].values)*1000.
 
dfdecaymcp['eta'] = -np.log(np.tan(dfdecaymcp['theta'].values/1000./2.))
# truth
# truth
dfmcp = get_mcp_simple(args.file, args.iev, 'mcparticles2').iloc[0]
dfmcp = get_mcp_simple(args.file, args.iev, 'mcparticles2').iloc[0]
Loading