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
Branches
No related tags found
1 merge request!217null pointer safety on PDG lookup
......@@ -156,8 +156,12 @@ if __name__ == '__main__':
dfdecaymcp = dftemp.copy()
for iptl in [0, len(dfdecaymcp) - 1]:
infoptl = pdgbase.GetParticle(int(dfdecaymcp['pid'].iloc[iptl]))
print("{} Decaying particle = {}, pdgcode = {}, charge = {}, mass = {}"\
.format(iptl, infoptl.GetName(), infoptl.PdgCode(), infoptl.Charge(), infoptl.Mass()))
if infoptl:
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
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.
......@@ -168,8 +172,12 @@ if __name__ == '__main__':
dfmcp = get_mcp_simple(args.file, args.iev, 'mcparticles').iloc[0]
#pdgbase = ROOT.TDatabasePDG()
inpart = pdgbase.GetParticle(int(dfmcp['pid']))
print("Incoming particle = {}, pdgcode = {}, charge = {}, mass = {}"\
.format(inpart.GetName(), inpart.PdgCode(), inpart.Charge(), inpart.Mass()))
if inpart:
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
if np.isclose(inpart.Charge(), 0., rtol=1e-5):
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