Source code for echidna.output.plot_chi_squared_root
import ROOT
import numpy
[docs]def chi_squared_vs_signal(signal_config):
""" Plot the chi squared as a function of signal counts
Args:
signal_config (:class:`echidna.limit.limit_config.LimitConfig`): signal
config class, where chi squareds have been stored.
Returns:
ROOT.TGraph: Plot.
"""
x = numpy.array(signal_config._chi_squareds[2])
y = numpy.array(signal_config._chi_squareds[0])
graph = ROOT.TGraph(len(x), x, y)
graph.GetXaxis().SetTitle("Signal counts")
graph.GetYaxis().SetTitle("$\chi^{2}$")
return graph
[docs]def chi_squared_vs_half_life(signal_config, converter):
""" Plot the chi squared as a function of signal counts
Args:
signal_config (:class:`echidna.limit.limit_config.LimitConfig`): signal
config class, where chi squareds have been stored.
converter (:class:`echidna.calc.decay.DBIsotope`, optional): Converter
used to convert between counts and half-life/effective mass.
Returns:
ROOT.TGraph: Plot.
"""
x = numpy.array(signal_config._chi_squareds[2])
y = numpy.array(signal_config._chi_squareds[0])
graph = ROOT.TGraph()
for i in range(len(x)):
half_life = converter.counts_to_half_life(x[i])
graph.SetPoint(i, 1./half_life, y[i])
graph.GetXaxis().SetTitle("1/T_{1/2}")
graph.GetYaxis().SetTitle("$\chi^{2}$")
return graph
[docs]def chi_squared_vs_mass(signal_config, converter):
""" Plot the chi squared as a function of signal counts
Args:
signal_config (:class:`echidna.limit.limit_config.LimitConfig`): signal
config class, where chi squareds have been stored.
converter (:class:`echidna.calc.decay.DBIsotope`, optional): Converter
used to convert between counts and half-life/effective mass.
Returns:
ROOT.TGraph: Plot.
"""
x = numpy.array(signal_config._chi_squareds[2])
y = numpy.array(signal_config._chi_squareds[0])
graph = ROOT.TGraph()
for i in range(len(x)):
mass = converter.counts_to_eff_mass(x[i])
graph.SetPoint(i, mass, y[i])
graph.GetXaxis().SetTitle("$m_{#beta#beta}$")
graph.GetYaxis().SetTitle("$\chi^{2}$")
return graph