Skip to content
Snippets Groups Projects
Commit 0d5951a9 authored by Wouter Deconinck's avatar Wouter Deconinck
Browse files

null pointer safety on PDG lookup

parent d90c02a3
No related branches found
No related tags found
1 merge request!217null pointer safety on PDG lookup
...@@ -156,8 +156,12 @@ if __name__ == '__main__': ...@@ -156,8 +156,12 @@ if __name__ == '__main__':
dfdecaymcp = dftemp.copy() dfdecaymcp = dftemp.copy()
for iptl in [0, len(dfdecaymcp) - 1]: for iptl in [0, len(dfdecaymcp) - 1]:
infoptl = pdgbase.GetParticle(int(dfdecaymcp['pid'].iloc[iptl])) infoptl = pdgbase.GetParticle(int(dfdecaymcp['pid'].iloc[iptl]))
print("{} Decaying particle = {}, pdgcode = {}, charge = {}, mass = {}"\ if infoptl:
.format(iptl, infoptl.GetName(), infoptl.PdgCode(), infoptl.Charge(), infoptl.Mass())) print("{} Decaying particle = {}, pdgcode = {}, charge = {}, mass = {}"\
.format(iptl, infoptl.GetName(), infoptl.PdgCode(), infoptl.Charge(), infoptl.Mass()))
else:
print("{} Decaying particle unknown pdgcode {}"\
.format(iptl, int(dfdecaymcp['pid'].iloc[iptl])))
# Calculate geometric variables of decaying particles # Calculate geometric variables of decaying particles
dfdecaymcp['r'] = np.sqrt(dfdecaymcp['vex'].values**2 + dfdecaymcp['vey'].values**2 + dfdecaymcp['vez'].values**2) dfdecaymcp['r'] = np.sqrt(dfdecaymcp['vex'].values**2 + dfdecaymcp['vey'].values**2 + dfdecaymcp['vez'].values**2)
dfdecaymcp['phi'] = np.arctan2(dfdecaymcp['vey'].values, dfdecaymcp['vex'].values)*1000. dfdecaymcp['phi'] = np.arctan2(dfdecaymcp['vey'].values, dfdecaymcp['vex'].values)*1000.
...@@ -168,8 +172,12 @@ if __name__ == '__main__': ...@@ -168,8 +172,12 @@ if __name__ == '__main__':
dfmcp = get_mcp_simple(args.file, args.iev, 'mcparticles').iloc[0] dfmcp = get_mcp_simple(args.file, args.iev, 'mcparticles').iloc[0]
#pdgbase = ROOT.TDatabasePDG() #pdgbase = ROOT.TDatabasePDG()
inpart = pdgbase.GetParticle(int(dfmcp['pid'])) inpart = pdgbase.GetParticle(int(dfmcp['pid']))
print("Incoming particle = {}, pdgcode = {}, charge = {}, mass = {}"\ if inpart:
.format(inpart.GetName(), inpart.PdgCode(), inpart.Charge(), inpart.Mass())) print("Incoming particle = {}, pdgcode = {}, charge = {}, mass = {}"\
.format(inpart.GetName(), inpart.PdgCode(), inpart.Charge(), inpart.Mass()))
else:
print("Incoming particle unknown pdgcode {}"\
.format(int(dfmcp['pid'])))
# neutral particle, no need to consider magnetic field # neutral particle, no need to consider magnetic field
if np.isclose(inpart.Charge(), 0., rtol=1e-5): if np.isclose(inpart.Charge(), 0., rtol=1e-5):
vec = dfmcp[['px', 'py', 'pz']].values vec = dfmcp[['px', 'py', 'pz']].values
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment