based on demo_JPAC_fit.ipynb
import PyPWA as pwa
import pandas
import numpy as npy
from IPython.display import display
import warnings
warnings.filterwarnings('ignore')
import matplotlib.pyplot as plt
import pyroot
import emcee
import corner
import os
# try to stick to [epsilon][L][M]_[epsilon][L][M]_...
outputpath = "example/"
try:
os.makedirs(outputpath)
except OSError:
if os.path.isdir(outputpath):
print(f"Directory {outputpath} already exists.")
else:
print (f"Creation of the directory {outputpath} failed.")
else:
print (f"Successfully created the directory {outputpath}.")
Directory example/ already exists.
pre-processed by process_data.py
data = pwa.read("../TUTORIAL/simdata_JPAC-np.csv")
mc = pwa.read("../TUTORIAL_FILES/etapi_acc.csv")
Vs = {"errordef": 1}
initial = []
# for param_type in ["r", "i"]:
for param_type in ["r", "i"]: #try to fit magnitude and angle
initial.append(f"{param_type}.1.0.0")
initial.append(f"{param_type}.1.1.0")
initial.append(f"{param_type}.1.1.1")
# initial.append(f"{param_type}.1.1.-1")
initial.append(f"{param_type}.1.2.0")
initial.append(f"{param_type}.1.2.1")
initial.append(f"{param_type}.1.2.2")
# initial.append(f"{param_type}.1.2.-1")
# initial.append(f"{param_type}.1.2.-2")
# initial.append(f"{param_type}.1.3.0")
# initial.append(f"{param_type}.1.3.1")
# initial.append(f"{param_type}.1.3.2")
# initial.append(f"{param_type}.1.3.3")
# initial.append(f"{param_type}.1.3.-1")
# initial.append(f"{param_type}.1.3.-2")
# initial.append(f"{param_type}.1.3.-3")
# initial.append(f"{param_type}.1.4.0")
# initial.append(f"{param_type}.1.4.1")
# initial.append(f"{param_type}.1.4.2")
# initial.append(f"{param_type}.1.4.3")
# initial.append(f"{param_type}.1.4.4")
# initial.append(f"{param_type}.1.4.-1")
# initial.append(f"{param_type}.1.4.-2")
# initial.append(f"{param_type}.1.4.-3")
# initial.append(f"{param_type}.1.4.-4")
# initial.append(f"{param_type}.-1.0.0")
# initial.append(f"{param_type}.-1.1.0")
# initial.append(f"{param_type}.-1.1.1")
# initial.append(f"{param_type}.-1.1.-1")
# initial.append(f"{param_type}.-1.2.0")
# initial.append(f"{param_type}.-1.2.1")
# initial.append(f"{param_type}.-1.2.2")
# initial.append(f"{param_type}.-1.2.-1")
# initial.append(f"{param_type}.-1.2.-2")
# initial.append(f"{param_type}.-1.3.0")
# initial.append(f"{param_type}.-1.3.1")
# initial.append(f"{param_type}.-1.3.2")
# initial.append(f"{param_type}.-1.3.3")
# initial.append(f"{param_type}.-1.3.-1")
# initial.append(f"{param_type}.-1.3.-2")
# initial.append(f"{param_type}.-1.3.-3")
# initial.append(f"{param_type}.-1.4.0")
# initial.append(f"{param_type}.-1.4.1")
# initial.append(f"{param_type}.-1.4.2")
# initial.append(f"{param_type}.-1.4.3")
# initial.append(f"{param_type}.-1.4.4")
# initial.append(f"{param_type}.-1.4.-1")
# initial.append(f"{param_type}.-1.4.-2")
# initial.append(f"{param_type}.-1.4.-3")
# initial.append(f"{param_type}.-1.4.-4")
Vs[f"{param_type}.1.0.0"] = 20
Vs[f"limit_{param_type}.1.0.0"] = [-500, 1500.]
Vs[f"error_{param_type}.1.0.0"] = .1
Vs[f"{param_type}.1.1.0"] = 10
Vs[f"limit_{param_type}.1.1.0"] = [-500, 1500.]
Vs[f"error_{param_type}.1.1.0"] = .1
Vs[f"{param_type}.1.1.1"] = 10
Vs[f"limit_{param_type}.1.1.1"] = [-500, 1500.]
Vs[f"error_{param_type}.1.1.1"] = .1
# # Vs[f"fix_i.1.1.1"] = True
# Vs[f"{param_type}.1.1.-1"] = 10
# Vs[f"limit_{param_type}.1.1.-1"] = [-500, 1500.]
# Vs[f"error_{param_type}.1.1.-1"] = .1
Vs[f"{param_type}.1.2.0"] = 10
Vs[f"limit_{param_type}.1.2.0"] = [-500, 1500.]
Vs[f"error_{param_type}.1.2.0"] = .1
Vs[f"{param_type}.1.2.1"] = 10
Vs[f"limit_{param_type}.1.2.1"] = [-500, 1500.]
Vs[f"error_{param_type}.1.2.1"] = .1
Vs[f"{param_type}.1.2.2"] = 10
Vs[f"limit_{param_type}.1.2.2"] = [-500, 1500.]
Vs[f"error_{param_type}.1.2.2"] = .1
# Vs[f"{param_type}.1.2.-1"] = 10
# Vs[f"limit_{param_type}.1.2.-1"] = [-500, 1500.]
# Vs[f"error_{param_type}.1.2.-1"] = .1
# Vs[f"{param_type}.1.2.-2"] = 10
# Vs[f"limit_{param_type}.1.2.-2"] = [-500, 1500.]
# Vs[f"error_{param_type}.1.2.-2"] = .1
# Vs[f"{param_type}.1.3.0"] = 10
# Vs[f"limit_{param_type}.1.3.0"] = [-500, 1500.]
# Vs[f"error_{param_type}.1.3.0"] = .1
# Vs[f"{param_type}.1.3.1"] = 10
# Vs[f"limit_{param_type}.1.3.1"] = [-500, 1500.]
# Vs[f"error_{param_type}.1.3.1"] = .1
# Vs[f"{param_type}.1.3.2"] = 10
# Vs[f"limit_{param_type}.1.3.2"] = [-500, 1500.]
# Vs[f"error_{param_type}.1.3.2"] = .1
# Vs[f"{param_type}.1.3.3"] = 10
# Vs[f"limit_{param_type}.1.3.3"] = [-500, 1500.]
# Vs[f"error_{param_type}.1.3.3"] = .1
# Vs[f"{param_type}.1.3.-1"] = 10
# Vs[f"limit_{param_type}.1.3.-1"] = [-500, 1500.]
# Vs[f"error_{param_type}.1.3.-1"] = .1
# Vs[f"{param_type}.1.3.-2"] = 10
# Vs[f"limit_{param_type}.1.3.-2"] = [-500, 1500.]
# Vs[f"error_{param_type}.1.3.-2"] = .1
# Vs[f"{param_type}.1.3.-3"] = 10
# Vs[f"limit_{param_type}.1.3.-3"] = [-500, 1500.]
# Vs[f"error_{param_type}.1.3.-3"] = .1
# Vs[f"{param_type}.1.4.0"] = 10
# Vs[f"limit_{param_type}.1.4.0"] = [-500, 1500.]
# Vs[f"error_{param_type}.1.4.0"] = .1
# Vs[f"{param_type}.1.4.1"] = 10
# Vs[f"limit_{param_type}.1.4.1"] = [-500, 1500.]
# Vs[f"error_{param_type}.1.4.1"] = .1
# Vs[f"{param_type}.1.4.2"] = 10
# Vs[f"limit_{param_type}.1.4.2"] = [-500, 1500.]
# Vs[f"error_{param_type}.1.4.2"] = .1
# Vs[f"{param_type}.1.4.3"] = 10
# Vs[f"limit_{param_type}.1.4.3"] = [-500, 1500.]
# Vs[f"error_{param_type}.1.4.3"] = .1
# Vs[f"{param_type}.1.4.4"] = 10
# Vs[f"limit_{param_type}.1.4.4"] = [-500, 1500.]
# Vs[f"error_{param_type}.1.4.4"] = .1
# Vs[f"{param_type}.1.4.-1"] = 10
# Vs[f"limit_{param_type}.1.4.-1"] = [-500, 1500.]
# Vs[f"error_{param_type}.1.4.-1"] = .1
# Vs[f"{param_type}.1.4.-2"] = 10
# Vs[f"limit_{param_type}.1.4.-2"] = [-500, 1500.]
# Vs[f"error_{param_type}.1.4.-2"] = .1
# Vs[f"{param_type}.1.4.-3"] = 10
# Vs[f"limit_{param_type}.1.4.-3"] = [-500, 1500.]
# Vs[f"error_{param_type}.1.4.-3"] = .1
# Vs[f"{param_type}.1.4.-4"] = 10
# Vs[f"limit_{param_type}.1.4.-4"] = [-500, 1500.]
# Vs[f"error_{param_type}.1.4.-4"] = .1
# Vs[f"{param_type}.-1.0.0"] = 10
# Vs[f"limit_{param_type}.-1.0.0"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.0.0"] = .1
# Vs[f"fix_i.-1.0.0"] = True
# Vs[f"{param_type}.-1.1.0"] = 10
# Vs[f"limit_{param_type}.-1.1.0"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.1.0"] = .1
# Vs[f"{param_type}.-1.1.1"] = 10
# Vs[f"limit_{param_type}.-1.1.1"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.1.1"] = .1
# # Vs[f"fix_i.1.1.1"] = True
# Vs[f"{param_type}.-1.1.-1"] = 10
# Vs[f"limit_{param_type}.-1.1.-1"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.1.-1"] = .1
# Vs[f"{param_type}.-1.2.0"] = 10
# Vs[f"limit_{param_type}.-1.2.0"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.2.0"] = .1
# Vs[f"{param_type}.-1.2.1"] = 10
# Vs[f"limit_{param_type}.-1.2.1"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.2.1"] = .1
# Vs[f"{param_type}.-1.2.2"] = 10
# Vs[f"limit_{param_type}.-1.2.2"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.2.2"] = .1
# Vs[f"{param_type}.-1.2.-1"] = 10
# Vs[f"limit_{param_type}.-1.2.-1"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.2.-1"] = .1
# Vs[f"{param_type}.-1.2.-2"] = 10
# Vs[f"limit_{param_type}.-1.2.-2"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.2.-2"] = .1
# Vs[f"{param_type}.-1.3.0"] = 10
# Vs[f"limit_{param_type}.-1.3.0"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.3.0"] = .1
# Vs[f"{param_type}.-1.3.1"] = 10
# Vs[f"limit_{param_type}.-1.3.1"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.3.1"] = .1
# Vs[f"{param_type}.-1.3.2"] = 10
# Vs[f"limit_{param_type}.-1.3.2"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.3.2"] = .1
# Vs[f"{param_type}.-1.3.3"] = 10
# Vs[f"limit_{param_type}.-1.3.3"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.3.3"] = .1
# Vs[f"{param_type}.-1.3.-1"] = 10
# Vs[f"limit_{param_type}.-1.3.-1"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.3.-1"] = .1
# Vs[f"{param_type}.-1.3.-2"] = 10
# Vs[f"limit_{param_type}.-1.3.-2"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.3.-2"] = .1
# Vs[f"{param_type}.-1.3.-3"] = 10
# Vs[f"limit_{param_type}.-1.3.-3"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.3.-3"] = .1
# Vs[f"{param_type}.-1.4.0"] = 10
# Vs[f"limit_{param_type}.-1.4.0"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.4.0"] = .1
# Vs[f"{param_type}.-1.4.1"] = 10
# Vs[f"limit_{param_type}.-1.4.1"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.4.1"] = .1
# Vs[f"{param_type}.-1.4.2"] = 10
# Vs[f"limit_{param_type}.-1.4.2"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.4.2"] = .1
# Vs[f"{param_type}.-1.4.3"] = 10
# Vs[f"limit_{param_type}.-1.4.3"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.4.3"] = .1
# Vs[f"{param_type}.-1.4.4"] = 10
# Vs[f"limit_{param_type}.-1.4.4"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.4.4"] = .1
# Vs[f"{param_type}.-1.4.-1"] = 10
# Vs[f"limit_{param_type}.-1.4.-1"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.4.-1"] = .1
# Vs[f"{param_type}.-1.4.-2"] = 10
# Vs[f"limit_{param_type}.-1.4.-2"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.4.-2"] = .1
# Vs[f"{param_type}.-1.4.-3"] = 10
# Vs[f"limit_{param_type}.-1.4.-3"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.4.-3"] = .1
# Vs[f"{param_type}.-1.4.-4"] = 10
# Vs[f"limit_{param_type}.-1.4.-4"] = [-500, 1500.]
# Vs[f"error_{param_type}.-1.4.-4"] = .1
Vs[f"i.1.0.0"] = 0
Vs[f"fix_i.1.0.0"] = True
print(Vs)
with open(f'{outputpath}/wave_set.csv', 'w') as file:
for key in Vs.keys():
file.write(f"{key},{Vs[key]}\n")
{'errordef': 1, 'r.1.0.0': 20, 'limit_r.1.0.0': [-500, 1500.0], 'error_r.1.0.0': 0.1, 'r.1.1.0': 10, 'limit_r.1.1.0': [-500, 1500.0], 'error_r.1.1.0': 0.1, 'r.1.1.1': 10, 'limit_r.1.1.1': [-500, 1500.0], 'error_r.1.1.1': 0.1, 'r.1.2.0': 10, 'limit_r.1.2.0': [-500, 1500.0], 'error_r.1.2.0': 0.1, 'r.1.2.1': 10, 'limit_r.1.2.1': [-500, 1500.0], 'error_r.1.2.1': 0.1, 'r.1.2.2': 10, 'limit_r.1.2.2': [-500, 1500.0], 'error_r.1.2.2': 0.1, 'i.1.0.0': 0, 'limit_i.1.0.0': [-500, 1500.0], 'error_i.1.0.0': 0.1, 'i.1.1.0': 10, 'limit_i.1.1.0': [-500, 1500.0], 'error_i.1.1.0': 0.1, 'i.1.1.1': 10, 'limit_i.1.1.1': [-500, 1500.0], 'error_i.1.1.1': 0.1, 'i.1.2.0': 10, 'limit_i.1.2.0': [-500, 1500.0], 'error_i.1.2.0': 0.1, 'i.1.2.1': 10, 'limit_i.1.2.1': [-500, 1500.0], 'error_i.1.2.1': 0.1, 'i.1.2.2': 10, 'limit_i.1.2.2': [-500, 1500.0], 'error_i.1.2.2': 0.1, 'fix_i.1.0.0': True}
Vs = {"errordef": 1}
initial = []
for param_type in ["a", "p"]: #try to fit magnitude and angle
initial.append(f"{param_type}.1.0.0")
initial.append(f"{param_type}.1.1.0")
initial.append(f"{param_type}.1.1.1")
initial.append(f"{param_type}.1.2.0")
initial.append(f"{param_type}.1.2.1")
initial.append(f"{param_type}.1.2.2")
# initial.append(f"{param_type}.1.2.-1")
# initial.append(f"{param_type}.1.2.-2")
Vs[f"a.1.0.0"] = 10
Vs[f"limit_a.1.0.0"] = [0, 1500.]
Vs[f"error_a.1.0.0"] = .1
Vs[f"a.1.1.0"] = 10
Vs[f"limit_a.1.1.0"] = [0, 1500.]
Vs[f"error_a.1.1.0"] = .1
Vs[f"a.1.1.1"] = 10
Vs[f"limit_a.1.1.1"] = [0, 1500.]
Vs[f"error_a.1.1.1"] = .1
Vs[f"a.1.2.0"] = 10
Vs[f"limit_a.1.2.0"] = [0, 1500.]
Vs[f"error_a.1.2.0"] = .1
Vs[f"a.1.2.1"] = 10
Vs[f"limit_a.1.2.1"] = [0, 1500.]
Vs[f"error_a.1.2.1"] = .1
Vs[f"a.1.2.2"] = 10
Vs[f"limit_a.1.2.2"] = [0, 1500.]
Vs[f"error_a.1.2.2"] = .1
# Vs[f"a.1.2.-1"] = 10
# Vs[f"limit_a.1.2.-1"] = [0, 1500.]
# Vs[f"error_a.1.2.-1"] = .1
# Vs[f"a.1.2.-2"] = 10
# Vs[f"limit_a.1.2.-2"] = [0, 1500.]
# Vs[f"error_a.1.2.-2"] = .1
Vs[f"p.1.0.0"] = 0
Vs[f"limit_p.1.0.0"] = [0, 2*npy.pi]
Vs[f"error_p.1.0.0"] = .01
Vs[f"fix_p.1.0.0"] = True
Vs[f"p.1.1.0"] = 0
Vs[f"limit_p.1.1.0"] = [0, 2*npy.pi]
Vs[f"error_p.1.1.0"] = .01
Vs[f"p.1.1.1"] = 0
Vs[f"limit_p.1.1.1"] = [0, 2*npy.pi]
Vs[f"error_p.1.1.1"] = .01
Vs[f"p.1.2.0"] = 0
Vs[f"limit_p.1.2.0"] = [0, 2*npy.pi]
Vs[f"error_p.1.2.0"] = .01
Vs[f"p.1.2.1"] = 0
Vs[f"limit_p.1.2.1"] = [0, 2*npy.pi]
Vs[f"error_p.1.2.1"] = .01
Vs[f"p.1.2.2"] = 0
Vs[f"limit_p.1.2.2"] = [0, 2*npy.pi]
Vs[f"error_p.1.2.2"] = .01
# Vs[f"p.1.2.-1"] = 0
# Vs[f"limit_p.1.2.-1"] = [0, 2*npy.pi]
# Vs[f"error_p.1.2.-1"] = .01
# Vs[f"p.1.2.-2"] = 0
# Vs[f"limit_p.1.2.-2"] = [0, 2*npy.pi]
# Vs[f"error_p.1.2.-2"] = .01
print(Vs)
with open(f'{outputpath}/wave_set.csv', 'w') as file:
for key in Vs.keys():
file.write(f"{key},{Vs[key]}\n")
{'errordef': 1, 'a.1.0.0': 10, 'limit_a.1.0.0': [0, 1500.0], 'error_a.1.0.0': 0.1, 'a.1.1.0': 10, 'limit_a.1.1.0': [0, 1500.0], 'error_a.1.1.0': 0.1, 'a.1.1.1': 10, 'limit_a.1.1.1': [0, 1500.0], 'error_a.1.1.1': 0.1, 'a.1.2.0': 10, 'limit_a.1.2.0': [0, 1500.0], 'error_a.1.2.0': 0.1, 'a.1.2.1': 10, 'limit_a.1.2.1': [0, 1500.0], 'error_a.1.2.1': 0.1, 'a.1.2.2': 10, 'limit_a.1.2.2': [0, 1500.0], 'error_a.1.2.2': 0.1, 'p.1.0.0': 0, 'limit_p.1.0.0': [0, 6.283185307179586], 'error_p.1.0.0': 0.01, 'fix_p.1.0.0': True, 'p.1.1.0': 0, 'limit_p.1.1.0': [0, 6.283185307179586], 'error_p.1.1.0': 0.01, 'p.1.1.1': 0, 'limit_p.1.1.1': [0, 6.283185307179586], 'error_p.1.1.1': 0.01, 'p.1.2.0': 0, 'limit_p.1.2.0': [0, 6.283185307179586], 'error_p.1.2.0': 0.01, 'p.1.2.1': 0, 'limit_p.1.2.1': [0, 6.283185307179586], 'error_p.1.2.1': 0.01, 'p.1.2.2': 0, 'limit_p.1.2.2': [0, 6.283185307179586], 'error_p.1.2.2': 0.01}
import AmplitudeJPACfit
amplitude = AmplitudeJPACfit.FitAmplitude(initial)
# import AmplitudeJPACfitAngles
# amplitude = AmplitudeJPACfitAngles.FitAmplitude(initial)
Here the user defines number of bins, variable to be binned and range
#Define number of bins
nbins = 20
binsda = pwa.bin_by_range(data, "mass", nbins, .6, 2.0)
binsma = pwa.bin_by_range(mc, mc["mass"], nbins, .6, 2.0)
Plot events per bin for visualisation and to make sure there are enough events per bin
counts=[]
centers=[]
for bin in binsda:
counts.append(len(bin))
centers.append(npy.mean(bin["mass"]))
# Add yerr to argment list when we have errors
yerr = npy.empty(len(binsda))
yerr = npy.sqrt(counts)
plt.errorbar(centers,counts, yerr, linestyle="dashed", fmt="o",label='data')
plt.legend(loc='upper right')
plt.show()
Look at other possibilities through pypwa (use the ?pwa command\ or see https://pypwa.jlab.org or https://github.com/JeffersonLab/PyPWA)
from IPython.display import display
intensities = []
for the_bin in binsda:
amplitude.setup(the_bin)
results = []
for index, dbin in enumerate(binsda):
with pwa.LogLikelihood(
amplitude, dbin, binsma[index], generated_length=len(binsma[index]), num_of_processes=1) as Likelihood:
results.append(
pwa.minuit(initial, Vs, Likelihood, 1, 1, 2000)
)
print(f"Fit #{index} done.")
Fit #0 done. Fit #1 done. Fit #2 done. Fit #3 done. Fit #4 done. Fit #5 done. Fit #6 done. Fit #7 done. Fit #8 done. Fit #9 done. Fit #10 done. Fit #11 done. Fit #12 done. Fit #13 done. Fit #14 done. Fit #15 done. Fit #16 done. Fit #17 done. Fit #18 done. Fit #19 done.
Looking at the results of fitting
failed = 0
for index, result in enumerate(results):
display(f"Bin #{index}:")
display(result.get_fmin())
try:
display(result.get_param_states())
except:
failed += 1
pass
display(f"{(failed / len(results)) * 100}% ({failed})Failed. ")
'Bin #0:'
FCN = -5.541e+04 | Nfcn = 858 (858 total) | |||
EDM = 3.13e-05 (Goal: 0.0002) | ||||
Valid Minimum | Valid Parameters | No Parameters at limit | ||
Below EDM threshold (goal x 10) | Below call limit | |||
Hesse ok | Has Covariance | Accurate | Pos. def. | Not forced |
Name | Value | Hesse Error | Minos Error- | Minos Error+ | Limit- | Limit+ | Fixed | |
---|---|---|---|---|---|---|---|---|
0 | r.1.0.0 | 154.6 | 3.4 | -500 | 1.5E+03 | |||
1 | r.1.1.0 | -0.1 | 2.5 | -500 | 1.5E+03 | |||
2 | r.1.1.1 | 0.7 | 2.9 | -500 | 1.5E+03 | |||
3 | r.1.2.0 | 75.9 | 2.4 | -500 | 1.5E+03 | |||
4 | r.1.2.1 | 74.0 | 2.3 | -500 | 1.5E+03 | |||
5 | r.1.2.2 | 70.9 | 3.2 | -500 | 1.5E+03 | |||
6 | i.1.0.0 | 0.0 | 0.1 | -500 | 1.5E+03 | yes | ||
7 | i.1.1.0 | 13 | 12 | -500 | 1.5E+03 | |||
8 | i.1.1.1 | -1 | 8 | -500 | 1.5E+03 | |||
9 | i.1.2.0 | 31 | 10 | -500 | 1.5E+03 | |||
10 | i.1.2.1 | -21 | 10 | -500 | 1.5E+03 | |||
11 | i.1.2.2 | -20 | 9 | -500 | 1.5E+03 |
'Bin #1:'
FCN = -8.263e+04 | Nfcn = 1085 (1085 total) | |||
EDM = 0.000343 (Goal: 0.0002) | ||||
Valid Minimum | Valid Parameters | No Parameters at limit | ||
Below EDM threshold (goal x 10) | Below call limit | |||
Hesse ok | Has Covariance | Accurate | Pos. def. | Not forced |
Name | Value | Hesse Error | Minos Error- | Minos Error+ | Limit- | Limit+ | Fixed | |
---|---|---|---|---|---|---|---|---|
0 | r.1.0.0 | 194 | 4 | -500 | 1.5E+03 | |||
1 | r.1.1.0 | -1.1 | 3.0 | -500 | 1.5E+03 | |||
2 | r.1.1.1 | -1.5 | 3.0 | -500 | 1.5E+03 | |||
3 | r.1.2.0 | 83 | 3 | -500 | 1.5E+03 | |||
4 | r.1.2.1 | 77.9 | 2.7 | -500 | 1.5E+03 | |||
5 | r.1.2.2 | 85 | 4 | -500 | 1.5E+03 | |||
6 | i.1.0.0 | 0.0 | 0.1 | -500 | 1.5E+03 | yes | ||
7 | i.1.1.0 | 35 | 25 | -500 | 1.5E+03 | |||
8 | i.1.1.1 | 19 | 10 | -500 | 1.5E+03 | |||
9 | i.1.2.0 | 1 | 17 | -500 | 1.5E+03 | |||
10 | i.1.2.1 | 33 | 17 | -500 | 1.5E+03 | |||
11 | i.1.2.2 | 4 | 14 | -500 | 1.5E+03 |
'Bin #2:'
FCN = -1.499e+05 | Nfcn = 1415 (1415 total) | |||
EDM = 2.38e-05 (Goal: 0.0002) | ||||
Valid Minimum | Valid Parameters | No Parameters at limit | ||
Below EDM threshold (goal x 10) | Below call limit | |||
Hesse ok | Has Covariance | Accurate | Pos. def. | Not forced |
Name | Value | Hesse Error | Minos Error- | Minos Error+ | Limit- | Limit+ | Fixed | |
---|---|---|---|---|---|---|---|---|
0 | r.1.0.0 | 281.5 | 3.1 | -500 | 1.5E+03 | |||
1 | r.1.1.0 | 1.7 | 2.7 | -500 | 1.5E+03 | |||
2 | r.1.1.1 | 0.6 | 2.5 | -500 | 1.5E+03 | |||
3 | r.1.2.0 | 89.3 | 2.6 | -500 | 1.5E+03 | |||
4 | r.1.2.1 | 85.6 | 2.4 | -500 | 1.5E+03 | |||
5 | r.1.2.2 | 89.6 | 3.4 | -500 | 1.5E+03 | |||
6 | i.1.0.0 | 0.0 | 0.1 | -500 | 1.5E+03 | yes | ||
7 | i.1.1.0 | -10 | 17 | -500 | 1.5E+03 | |||
8 | i.1.1.1 | 11 | 18 | -500 | 1.5E+03 | |||
9 | i.1.2.0 | 43 | 17 | -500 | 1.5E+03 | |||
10 | i.1.2.1 | -6 | 21 | -500 | 1.5E+03 | |||
11 | i.1.2.2 | 5 | 14 | -500 | 1.5E+03 |
'Bin #3:'
FCN = -4.556e+05 | Nfcn = 1410 (1410 total) | |||
EDM = 0.000314 (Goal: 0.0002) | ||||
Valid Minimum | Valid Parameters | No Parameters at limit | ||
Below EDM threshold (goal x 10) | Below call limit | |||
Hesse ok | Has Covariance | Accurate | Pos. def. | Not forced |
Name | Value | Hesse Error | Minos Error- | Minos Error+ | Limit- | Limit+ | Fixed | |
---|---|---|---|---|---|---|---|---|
0 | r.1.0.0 | 501 | 4 | -500 | 1.5E+03 | |||
1 | r.1.1.0 | -0.6 | 2.8 | -500 | 1.5E+03 | |||
2 | r.1.1.1 | -7.1 | 3.3 | -500 | 1.5E+03 | |||
3 | r.1.2.0 | 86.1 | 2.6 | -500 | 1.5E+03 | |||
4 | r.1.2.1 | 82.9 | 3.2 | -500 | 1.5E+03 | |||
5 | r.1.2.2 | 91.9 | 3.3 | -500 | 1.5E+03 | |||
6 | i.1.0.0 | 0.0 | 0.1 | -500 | 1.5E+03 | yes | ||
7 | i.1.1.0 | 33 | 17 | -500 | 1.5E+03 | |||
8 | i.1.1.1 | -12 | 14 | -500 | 1.5E+03 | |||
9 | i.1.2.0 | 34 | 16 | -500 | 1.5E+03 | |||
10 | i.1.2.1 | 93 | 15 | -500 | 1.5E+03 | |||
11 | i.1.2.2 | 71 | 13 | -500 | 1.5E+03 |
'Bin #4:'
FCN = -1.368e+06 | Nfcn = 1385 (1385 total) | |||
EDM = 3.23e-05 (Goal: 0.0002) | ||||
Valid Minimum | Valid Parameters | No Parameters at limit | ||
Below EDM threshold (goal x 10) | Below call limit | |||
Hesse ok | Has Covariance | Accurate | Pos. def. | Not forced |
Name | Value | Hesse Error | Minos Error- | Minos Error+ | Limit- | Limit+ | Fixed | |
---|---|---|---|---|---|---|---|---|
0 | r.1.0.0 | 423 | 4 | -500 | 1.5E+03 | |||
1 | r.1.1.0 | 472 | 4 | -500 | 1.5E+03 | |||
2 | r.1.1.1 | -109 | 15 | -500 | 1.5E+03 | |||
3 | r.1.2.0 | -220 | 6 | -500 | 1.5E+03 | |||
4 | r.1.2.1 | 110 | 14 | -500 | 1.5E+03 | |||
5 | r.1.2.2 | 13 | 4 | -500 | 1.5E+03 | |||
6 | i.1.0.0 | 0.0 | 0.1 | -500 | 1.5E+03 | yes | ||
7 | i.1.1.0 | 25 | 13 | -500 | 1.5E+03 | |||
8 | i.1.1.1 | -402 | 7 | -500 | 1.5E+03 | |||
9 | i.1.2.0 | 219 | 10 | -500 | 1.5E+03 | |||
10 | i.1.2.1 | 328 | 10 | -500 | 1.5E+03 | |||
11 | i.1.2.2 | 65 | 12 | -500 | 1.5E+03 |
'Bin #5:'
FCN = -4.724e+05 | Nfcn = 885 (885 total) | |||
EDM = 5.69e-05 (Goal: 0.0002) | ||||
Valid Minimum | Valid Parameters | No Parameters at limit | ||
Below EDM threshold (goal x 10) | Below call limit | |||
Hesse ok | Has Covariance | Accurate | Pos. def. | Not forced |
Name | Value | Hesse Error | Minos Error- | Minos Error+ | Limit- | Limit+ | Fixed | |
---|---|---|---|---|---|---|---|---|
0 | r.1.0.0 | 506 | 4 | -500 | 1.5E+03 | |||
1 | r.1.1.0 | 2.7 | 3.1 | -500 | 1.5E+03 | |||
2 | r.1.1.1 | -1.2 | 3.3 | -500 | 1.5E+03 | |||
3 | r.1.2.0 | -82.2 | 2.8 | -500 | 1.5E+03 | |||
4 | r.1.2.1 | -83 | 4 | -500 | 1.5E+03 | |||
5 | r.1.2.2 | -83.7 | 2.8 | -500 | 1.5E+03 | |||
6 | i.1.0.0 | 0.0 | 0.1 | -500 | 1.5E+03 | yes | ||
7 | i.1.1.0 | -3 | 7 | -500 | 1.5E+03 | |||
8 | i.1.1.1 | 14 | 11 | -500 | 1.5E+03 | |||
9 | i.1.2.0 | -86 | 7 | -500 | 1.5E+03 | |||
10 | i.1.2.1 | -97 | 9 | -500 | 1.5E+03 | |||
11 | i.1.2.2 | -80 | 14 | -500 | 1.5E+03 |
'Bin #6:'
FCN = -2.001e+05 | Nfcn = 865 (865 total) | |||
EDM = 8.36e-05 (Goal: 0.0002) | ||||
Valid Minimum | Valid Parameters | No Parameters at limit | ||
Below EDM threshold (goal x 10) | Below call limit | |||
Hesse ok | Has Covariance | Accurate | Pos. def. | Not forced |
Name | Value | Hesse Error | Minos Error- | Minos Error+ | Limit- | Limit+ | Fixed | |
---|---|---|---|---|---|---|---|---|
0 | r.1.0.0 | 238 | 3 | -500 | 1.5E+03 | |||
1 | r.1.1.0 | -3.6 | 3.5 | -500 | 1.5E+03 | |||
2 | r.1.1.1 | -3 | 4 | -500 | 1.5E+03 | |||
3 | r.1.2.0 | -151.7 | 3.2 | -500 | 1.5E+03 | |||
4 | r.1.2.1 | -151 | 4 | -500 | 1.5E+03 | |||
5 | r.1.2.2 | -140.6 | 2.8 | -500 | 1.5E+03 | |||
6 | i.1.0.0 | 0.0 | 0.1 | -500 | 1.5E+03 | yes | ||
7 | i.1.1.0 | 92 | 4 | -500 | 1.5E+03 | |||
8 | i.1.1.1 | 71 | 7 | -500 | 1.5E+03 | |||
9 | i.1.2.0 | -0.4 | 3.5 | -500 | 1.5E+03 | |||
10 | i.1.2.1 | -3 | 6 | -500 | 1.5E+03 | |||
11 | i.1.2.2 | 4 | 8 | -500 | 1.5E+03 |
'Bin #7:'
FCN = -2.164e+05 | Nfcn = 1009 (1009 total) | |||
EDM = 0.000194 (Goal: 0.0002) | ||||
Valid Minimum | Valid Parameters | No Parameters at limit | ||
Below EDM threshold (goal x 10) | Below call limit | |||
Hesse ok | Has Covariance | Accurate | Pos. def. | Not forced |
Name | Value | Hesse Error | Minos Error- | Minos Error+ | Limit- | Limit+ | Fixed | |
---|---|---|---|---|---|---|---|---|
0 | r.1.0.0 | 165 | 7 | -500 | 1.5E+03 | |||
1 | r.1.1.0 | 6 | 4 | -500 | 1.5E+03 | |||
2 | r.1.1.1 | 6 | 5 | -500 | 1.5E+03 | |||
3 | r.1.2.0 | -164 | 7 | -500 | 1.5E+03 | |||
4 | r.1.2.1 | -168 | 11 | -500 | 1.5E+03 | |||
5 | r.1.2.2 | -163 | 6 | -500 | 1.5E+03 | |||
6 | i.1.0.0 | 0.0 | 0.1 | -500 | 1.5E+03 | yes | ||
7 | i.1.1.0 | 2 | 5 | -500 | 1.5E+03 | |||
8 | i.1.1.1 | 1 | 6 | -500 | 1.5E+03 | |||
9 | i.1.2.0 | 109 | 9 | -500 | 1.5E+03 | |||
10 | i.1.2.1 | 103 | 15 | -500 | 1.5E+03 | |||
11 | i.1.2.2 | 121 | 7 | -500 | 1.5E+03 |
'Bin #8:'
FCN = -4.118e+05 | Nfcn = 1478 (1478 total) | |||
EDM = 4.17e-05 (Goal: 0.0002) | ||||
Valid Minimum | Valid Parameters | No Parameters at limit | ||
Below EDM threshold (goal x 10) | Below call limit | |||
Hesse ok | Has Covariance | APPROXIMATE | NOT pos. def. | FORCED |
Name | Value | Hesse Error | Minos Error- | Minos Error+ | Limit- | Limit+ | Fixed | |
---|---|---|---|---|---|---|---|---|
0 | r.1.0.0 | 88 | 4 | -500 | 1.5E+03 | |||
1 | r.1.1.0 | -12 | 6 | -500 | 1.5E+03 | |||
2 | r.1.1.1 | -40 | 11 | -500 | 1.5E+03 | |||
3 | r.1.2.0 | -276 | 12 | -500 | 1.5E+03 | |||
4 | r.1.2.1 | -252 | 25 | -500 | 1.5E+03 | |||
5 | r.1.2.2 | -277 | 7 | -500 | 1.5E+03 | |||
6 | i.1.0.0 | 0.0 | 0.1 | -500 | 1.5E+03 | yes | ||
7 | i.1.1.0 | 34 | 10 | -500 | 1.5E+03 | |||
8 | i.1.1.1 | 63 | 13 | -500 | 1.5E+03 | |||
9 | i.1.2.0 | -80 | 40 | -500 | 1.5E+03 | |||
10 | i.1.2.1 | -150 | 40 | -500 | 1.5E+03 | |||
11 | i.1.2.2 | -50 | 34 | -500 | 1.5E+03 |
'Bin #9:'
FCN = -6.042e+05 | Nfcn = 1654 (1654 total) | |||
EDM = 0.000204 (Goal: 0.0002) | ||||
Valid Minimum | Valid Parameters | No Parameters at limit | ||
Below EDM threshold (goal x 10) | Below call limit | |||
Hesse ok | Has Covariance | APPROXIMATE | NOT pos. def. | FORCED |
Name | Value | Hesse Error | Minos Error- | Minos Error+ | Limit- | Limit+ | Fixed | |
---|---|---|---|---|---|---|---|---|
0 | r.1.0.0 | -12.5 | 2.7 | -500 | 1.5E+03 | |||
1 | r.1.1.0 | -17 | 18 | -500 | 1.5E+03 | |||
2 | r.1.1.1 | -13 | 14 | -500 | 1.5E+03 | |||
3 | r.1.2.0 | 341 | 7 | -500 | 1.5E+03 | |||
4 | r.1.2.1 | 340 | 8 | -500 | 1.5E+03 | |||
5 | r.1.2.2 | 341 | 6 | -500 | 1.5E+03 | |||
6 | i.1.0.0 | 0.0 | 0.1 | -500 | 1.5E+03 | yes | ||
7 | i.1.1.0 | 101 | 13 | -500 | 1.5E+03 | |||
8 | i.1.1.1 | 79 | 14 | -500 | 1.5E+03 | |||
9 | i.1.2.0 | 40 | 60 | -500 | 1.5E+03 | |||
10 | i.1.2.1 | 50 | 60 | -500 | 1.5E+03 | |||
11 | i.1.2.2 | 40 | 60 | -500 | 1.5E+03 |
'Bin #10:'
FCN = -1.887e+05 | Nfcn = 1541 (1541 total) | |||
EDM = 2.99e-05 (Goal: 0.0002) | ||||
Valid Minimum | Valid Parameters | No Parameters at limit | ||
Below EDM threshold (goal x 10) | Below call limit | |||
Hesse ok | Has Covariance | Accurate | Pos. def. | Not forced |
Name | Value | Hesse Error | Minos Error- | Minos Error+ | Limit- | Limit+ | Fixed | |
---|---|---|---|---|---|---|---|---|
0 | r.1.0.0 | -43 | 6 | -500 | 1.5E+03 | |||
1 | r.1.1.0 | -30 | 12 | -500 | 1.5E+03 | |||
2 | r.1.1.1 | -1 | 6 | -500 | 1.5E+03 | |||
3 | r.1.2.0 | -160 | 28 | -500 | 1.5E+03 | |||
4 | r.1.2.1 | -172 | 21 | -500 | 1.5E+03 | |||
5 | r.1.2.2 | -178 | 25 | -500 | 1.5E+03 | |||
6 | i.1.0.0 | 0.0 | 0.1 | -500 | 1.5E+03 | yes | ||
7 | i.1.1.0 | -54 | 9 | -500 | 1.5E+03 | |||
8 | i.1.1.1 | -12 | 10 | -500 | 1.5E+03 | |||
9 | i.1.2.0 | 120 | 40 | -500 | 1.5E+03 | |||
10 | i.1.2.1 | 106 | 34 | -500 | 1.5E+03 | |||
11 | i.1.2.2 | 100 | 40 | -500 | 1.5E+03 |
'Bin #11:'
FCN = -4.072e+04 | Nfcn = 1208 (1208 total) | |||
EDM = 8.44e-05 (Goal: 0.0002) | ||||
Valid Minimum | Valid Parameters | No Parameters at limit | ||
Below EDM threshold (goal x 10) | Below call limit | |||
Hesse ok | Has Covariance | Accurate | Pos. def. | Not forced |
Name | Value | Hesse Error | Minos Error- | Minos Error+ | Limit- | Limit+ | Fixed | |
---|---|---|---|---|---|---|---|---|
0 | r.1.0.0 | -17.0 | 3.3 | -500 | 1.5E+03 | |||
1 | r.1.1.0 | -13 | 22 | -500 | 1.5E+03 | |||
2 | r.1.1.1 | -12 | 15 | -500 | 1.5E+03 | |||
3 | r.1.2.0 | -91 | 9 | -500 | 1.5E+03 | |||
4 | r.1.2.1 | -92 | 8 | -500 | 1.5E+03 | |||
5 | r.1.2.2 | -83 | 11 | -500 | 1.5E+03 | |||
6 | i.1.0.0 | 0.0 | 0.1 | -500 | 1.5E+03 | yes | ||
7 | i.1.1.0 | 65 | 6 | -500 | 1.5E+03 | |||
8 | i.1.1.1 | 50 | 7 | -500 | 1.5E+03 | |||
9 | i.1.2.0 | -22 | 33 | -500 | 1.5E+03 | |||
10 | i.1.2.1 | -20 | 31 | -500 | 1.5E+03 | |||
11 | i.1.2.2 | -26 | 31 | -500 | 1.5E+03 |
'Bin #12:'
FCN = -2.469e+04 | Nfcn = 977 (977 total) | |||
EDM = 2.11e-05 (Goal: 0.0002) | ||||
Valid Minimum | Valid Parameters | No Parameters at limit | ||
Below EDM threshold (goal x 10) | Below call limit | |||
Hesse ok | Has Covariance | Accurate | Pos. def. | Not forced |
Name | Value | Hesse Error | Minos Error- | Minos Error+ | Limit- | Limit+ | Fixed | |
---|---|---|---|---|---|---|---|---|
0 | r.1.0.0 | 11.4 | 3.1 | -500 | 1.5E+03 | |||
1 | r.1.1.0 | -10 | 28 | -500 | 1.5E+03 | |||
2 | r.1.1.1 | -6 | 23 | -500 | 1.5E+03 | |||
3 | r.1.2.0 | -77 | 9 | -500 | 1.5E+03 | |||
4 | r.1.2.1 | -75 | 9 | -500 | 1.5E+03 | |||
5 | r.1.2.2 | -69 | 8 | -500 | 1.5E+03 | |||
6 | i.1.0.0 | 0.0 | 0.1 | -500 | 1.5E+03 | yes | ||
7 | i.1.1.0 | 50 | 8 | -500 | 1.5E+03 | |||
8 | i.1.1.1 | 37 | 7 | -500 | 1.5E+03 | |||
9 | i.1.2.0 | -20 | 40 | -500 | 1.5E+03 | |||
10 | i.1.2.1 | -20 | 40 | -500 | 1.5E+03 | |||
11 | i.1.2.2 | -14 | 35 | -500 | 1.5E+03 |
'Bin #13:'
FCN = -4.231e+04 | Nfcn = 2018 (2018 total) | |||
EDM = 0.0283 (Goal: 0.0002) | ||||
INVALID Minimum | Valid Parameters | No Parameters at limit | ||
Below EDM threshold (goal x 10) | ABOVE call limit | |||
Hesse ok | Has Covariance | APPROXIMATE | Pos. def. | Not forced |
Name | Value | Hesse Error | Minos Error- | Minos Error+ | Limit- | Limit+ | Fixed | |
---|---|---|---|---|---|---|---|---|
0 | r.1.0.0 | 9.9 | 2.7 | -500 | 1.5E+03 | |||
1 | r.1.1.0 | -5 | 6 | -500 | 1.5E+03 | |||
2 | r.1.1.1 | 8 | 8 | -500 | 1.5E+03 | |||
3 | r.1.2.0 | -99.9 | 3.5 | -500 | 1.5E+03 | |||
4 | r.1.2.1 | -100 | 5 | -500 | 1.5E+03 | |||
5 | r.1.2.2 | -107 | 5 | -500 | 1.5E+03 | |||
6 | i.1.0.0 | 0.0 | 0.1 | -500 | 1.5E+03 | yes | ||
7 | i.1.1.0 | 22 | 7 | -500 | 1.5E+03 | |||
8 | i.1.1.1 | -29 | 7 | -500 | 1.5E+03 | |||
9 | i.1.2.0 | -15 | 23 | -500 | 1.5E+03 | |||
10 | i.1.2.1 | -22 | 26 | -500 | 1.5E+03 | |||
11 | i.1.2.2 | -20 | 25 | -500 | 1.5E+03 |
'Bin #14:'
FCN = -9.544e+04 | Nfcn = 1324 (1324 total) | |||
EDM = 6.1e-05 (Goal: 0.0002) | ||||
Valid Minimum | Valid Parameters | No Parameters at limit | ||
Below EDM threshold (goal x 10) | Below call limit | |||
Hesse ok | Has Covariance | APPROXIMATE | NOT pos. def. | FORCED |
Name | Value | Hesse Error | Minos Error- | Minos Error+ | Limit- | Limit+ | Fixed | |
---|---|---|---|---|---|---|---|---|
0 | r.1.0.0 | 17 | 6 | -500 | 1.5E+03 | |||
1 | r.1.1.0 | 27 | 8 | -500 | 1.5E+03 | |||
2 | r.1.1.1 | -2 | 8 | -500 | 1.5E+03 | |||
3 | r.1.2.0 | -102 | 24 | -500 | 1.5E+03 | |||
4 | r.1.2.1 | -93 | 29 | -500 | 1.5E+03 | |||
5 | r.1.2.2 | -84 | 26 | -500 | 1.5E+03 | |||
6 | i.1.0.0 | 0.0 | 0.1 | -500 | 1.5E+03 | yes | ||
7 | i.1.1.0 | 20 | 8 | -500 | 1.5E+03 | |||
8 | i.1.1.1 | -2 | 6 | -500 | 1.5E+03 | |||
9 | i.1.2.0 | 110 | 22 | -500 | 1.5E+03 | |||
10 | i.1.2.1 | 120 | 22 | -500 | 1.5E+03 | |||
11 | i.1.2.2 | 124 | 17 | -500 | 1.5E+03 |
'Bin #15:'
FCN = -1.712e+05 | Nfcn = 1238 (1238 total) | |||
EDM = 3.9e-05 (Goal: 0.0002) | ||||
Valid Minimum | Valid Parameters | No Parameters at limit | ||
Below EDM threshold (goal x 10) | Below call limit | |||
Hesse ok | Has Covariance | Accurate | Pos. def. | Not forced |
Name | Value | Hesse Error | Minos Error- | Minos Error+ | Limit- | Limit+ | Fixed | |
---|---|---|---|---|---|---|---|---|
0 | r.1.0.0 | 47 | 16 | -500 | 1.5E+03 | |||
1 | r.1.1.0 | -1 | 13 | -500 | 1.5E+03 | |||
2 | r.1.1.1 | -22 | 14 | -500 | 1.5E+03 | |||
3 | r.1.2.0 | 43 | 19 | -500 | 1.5E+03 | |||
4 | r.1.2.1 | 62 | 18 | -500 | 1.5E+03 | |||
5 | r.1.2.2 | 17 | 20 | -500 | 1.5E+03 | |||
6 | i.1.0.0 | 0.0 | 0.1 | -500 | 1.5E+03 | yes | ||
7 | i.1.1.0 | 1 | 5 | -500 | 1.5E+03 | |||
8 | i.1.1.1 | 6 | 6 | -500 | 1.5E+03 | |||
9 | i.1.2.0 | 194 | 5 | -500 | 1.5E+03 | |||
10 | i.1.2.1 | 184 | 6 | -500 | 1.5E+03 | |||
11 | i.1.2.2 | 192.9 | 3.0 | -500 | 1.5E+03 |
'Bin #16:'
FCN = -1.787e+05 | Nfcn = 1450 (1450 total) | |||
EDM = 0.000101 (Goal: 0.0002) | ||||
Valid Minimum | Valid Parameters | No Parameters at limit | ||
Below EDM threshold (goal x 10) | Below call limit | |||
Hesse ok | Has Covariance | Accurate | Pos. def. | Not forced |
Name | Value | Hesse Error | Minos Error- | Minos Error+ | Limit- | Limit+ | Fixed | |
---|---|---|---|---|---|---|---|---|
0 | r.1.0.0 | -35 | 12 | -500 | 1.5E+03 | |||
1 | r.1.1.0 | 6 | 10 | -500 | 1.5E+03 | |||
2 | r.1.1.1 | -15 | 12 | -500 | 1.5E+03 | |||
3 | r.1.2.0 | -91 | 31 | -500 | 1.5E+03 | |||
4 | r.1.2.1 | -107 | 24 | -500 | 1.5E+03 | |||
5 | r.1.2.2 | -80 | 40 | -500 | 1.5E+03 | |||
6 | i.1.0.0 | 0.0 | 0.1 | -500 | 1.5E+03 | yes | ||
7 | i.1.1.0 | -0 | 6 | -500 | 1.5E+03 | |||
8 | i.1.1.1 | -14 | 9 | -500 | 1.5E+03 | |||
9 | i.1.2.0 | 178 | 16 | -500 | 1.5E+03 | |||
10 | i.1.2.1 | 168 | 15 | -500 | 1.5E+03 | |||
11 | i.1.2.2 | 187 | 15 | -500 | 1.5E+03 |
'Bin #17:'
FCN = -1.208e+05 | Nfcn = 2000 (2000 total) | |||
EDM = 0.0104 (Goal: 0.0002) | ||||
INVALID Minimum | Valid Parameters | No Parameters at limit | ||
Below EDM threshold (goal x 10) | ABOVE call limit | |||
Hesse ok | Has Covariance | APPROXIMATE | Pos. def. | Not forced |
Name | Value | Hesse Error | Minos Error- | Minos Error+ | Limit- | Limit+ | Fixed | |
---|---|---|---|---|---|---|---|---|
0 | r.1.0.0 | -24 | 4 | -500 | 1.5E+03 | |||
1 | r.1.1.0 | -2 | 6 | -500 | 1.5E+03 | |||
2 | r.1.1.1 | 1 | 6 | -500 | 1.5E+03 | |||
3 | r.1.2.0 | -152 | 21 | -500 | 1.5E+03 | |||
4 | r.1.2.1 | -154 | 20 | -500 | 1.5E+03 | |||
5 | r.1.2.2 | -159 | 19 | -500 | 1.5E+03 | |||
6 | i.1.0.0 | 0.0 | 0.1 | -500 | 1.5E+03 | yes | ||
7 | i.1.1.0 | -8 | 10 | -500 | 1.5E+03 | |||
8 | i.1.1.1 | 4 | 10 | -500 | 1.5E+03 | |||
9 | i.1.2.0 | 60 | 50 | -500 | 1.5E+03 | |||
10 | i.1.2.1 | 70 | 40 | -500 | 1.5E+03 | |||
11 | i.1.2.2 | 60 | 50 | -500 | 1.5E+03 |
'Bin #18:'
FCN = -7.036e+04 | Nfcn = 1634 (1634 total) | |||
EDM = 0.000177 (Goal: 0.0002) | ||||
Valid Minimum | Valid Parameters | No Parameters at limit | ||
Below EDM threshold (goal x 10) | Below call limit | |||
Hesse ok | Has Covariance | Accurate | Pos. def. | Not forced |
Name | Value | Hesse Error | Minos Error- | Minos Error+ | Limit- | Limit+ | Fixed | |
---|---|---|---|---|---|---|---|---|
0 | r.1.0.0 | 28 | 8 | -500 | 1.5E+03 | |||
1 | r.1.1.0 | -7 | 9 | -500 | 1.5E+03 | |||
2 | r.1.1.1 | -9 | 7 | -500 | 1.5E+03 | |||
3 | r.1.2.0 | 109 | 27 | -500 | 1.5E+03 | |||
4 | r.1.2.1 | 114 | 18 | -500 | 1.5E+03 | |||
5 | r.1.2.2 | 106 | 27 | -500 | 1.5E+03 | |||
6 | i.1.0.0 | 0.0 | 0.1 | -500 | 1.5E+03 | yes | ||
7 | i.1.1.0 | 16 | 20 | -500 | 1.5E+03 | |||
8 | i.1.1.1 | 18 | 19 | -500 | 1.5E+03 | |||
9 | i.1.2.0 | 80 | 40 | -500 | 1.5E+03 | |||
10 | i.1.2.1 | 62 | 35 | -500 | 1.5E+03 | |||
11 | i.1.2.2 | 70 | 40 | -500 | 1.5E+03 |
'Bin #19:'
FCN = -4.298e+04 | Nfcn = 1431 (1431 total) | |||
EDM = 0.000248 (Goal: 0.0002) | ||||
Valid Minimum | Valid Parameters | No Parameters at limit | ||
Below EDM threshold (goal x 10) | Below call limit | |||
Hesse ok | Has Covariance | APPROXIMATE | NOT pos. def. | FORCED |
Name | Value | Hesse Error | Minos Error- | Minos Error+ | Limit- | Limit+ | Fixed | |
---|---|---|---|---|---|---|---|---|
0 | r.1.0.0 | -25 | 5 | -500 | 1.5E+03 | |||
1 | r.1.1.0 | -6 | 6 | -500 | 1.5E+03 | |||
2 | r.1.1.1 | -7 | 6 | -500 | 1.5E+03 | |||
3 | r.1.2.0 | -99 | 16 | -500 | 1.5E+03 | |||
4 | r.1.2.1 | -99 | 13 | -500 | 1.5E+03 | |||
5 | r.1.2.2 | -97 | 20 | -500 | 1.5E+03 | |||
6 | i.1.0.0 | 0.0 | 0.1 | -500 | 1.5E+03 | yes | ||
7 | i.1.1.0 | -9 | 16 | -500 | 1.5E+03 | |||
8 | i.1.1.1 | -13 | 18 | -500 | 1.5E+03 | |||
9 | i.1.2.0 | 40 | 40 | -500 | 1.5E+03 | |||
10 | i.1.2.1 | 30 | 40 | -500 | 1.5E+03 | |||
11 | i.1.2.2 | 40 | 50 | -500 | 1.5E+03 |
'0.0% (0)Failed. '
Checking the waves used (and filling waves variable for later use)
waves = amplitude.make_elm(result.values)
waves
e | l | m | |
---|---|---|---|
0 | 1 | 0 | 0 |
1 | 1 | 1 | 0 |
2 | 1 | 1 | 1 |
3 | 1 | 2 | 0 |
4 | 1 | 2 | 1 |
5 | 1 | 2 | 2 |
Filling strings with wave names (for plotting)
wave = npy.empty(len(waves),dtype="int")
string = npy.empty(len(waves),dtype="U5")
for index, w in waves.iterrows():
#print(w["l"])
string[index]= "{}{}{}".format(w["e"],w["l"],w["m"])
wave[index]=w.name
Getting the bin mass values and number of events in datasample for those bins
bmass=[]
mcounts=[]
for index, bin in enumerate(binsda):
if len(bin)==0:
bmass.append(0.)
mcounts.append(0.)
else:
bmass.append(npy.average(bin["mass"]))
mcounts.append(len(bin))
total_nExp = npy.empty(len(binsma))
for index, the_bin, result in zip(range(len(binsma)), binsma, results):
amp=amplitude
amp.setup(the_bin)
# print(amp.calculate(result.values))
# print(len(amp.calculate(result.values)))
# print(npy.average(amp.calculate(result.values)))
# print()
total_nExp[index] = npy.average(amp.calculate(result.values))
Plot expected number of events vs mass and data vs mass (both should agree if fitting worked)
import matplotlib.pyplot as plt
mni = npy.empty(len(total_nExp), dtype=[("mass", float), ("int", float)])
mda = npy.empty(len(mcounts), dtype=[("mass", float), ("intd", float)])
mni["mass"] = bmass
mni["int"] = total_nExp
mni = pandas.DataFrame(mni)
counts, bin_edges = npy.histogram(mni["mass"], nbins, weights=mni["int"])
mda["mass"] = bmass
mda["intd"] = mcounts
mda = pandas.DataFrame(mda)
dcounts, bin_edges = npy.histogram(mda["mass"], nbins, weights=mda["intd"])
#dcounts, bin_edges = npy.histogram(bmass, nbins, weights=total_nExp)
centers = (bin_edges[:-1] + bin_edges[1:]) / 2
# Add yerr to argment list when we have errors
yerr = npy.empty(nbins)
yerr = npy.sqrt(counts)
myerr = npy.empty(nbins)
myerr = npy.sqrt(dcounts)
#plt.errorbar(centers,counts, yerr, fmt="s",linestyle="dashed",markersize='10',label="nExp")
plt.errorbar(centers,total_nExp, yerr, fmt="s",linestyle="dashed",markersize='10',label="nExp")
plt.errorbar(centers,mcounts, myerr, fmt="o",label="Data")
#plt.xlim(.6, 3.2)
#plt.ylim(0.,65000)
plt.legend(loc='upper right')
plt.show()
Calculate initial intensities (in case we need to check them)
intensities = []
for the_bin in binsda:
amp.setup(the_bin)
intensities.append(amp.calculate(Vs))
intesities=pandas.DataFrame(intensities)
wave_nExp = npy.empty([len(waves),len(binsma)],npy.longdouble)
for index, the_bin, result in zip(range(len(binsma)), binsma, results):
amp.setup(the_bin)
for i in range(len(waves)):
wave_nExp[i][index] = npy.average(amp.calculate_wave(result.values,wave[i]))
Plot expected number of events vs mass for each wave
for i in range(len(waves)):
mni0 = npy.empty(len(wave_nExp[i]), dtype=[("mass", float), ("int0", float)])
mni0["mass"] = bmass
mni0["int0"] = wave_nExp[i]
mni0 = pandas.DataFrame(mni0)
counts0, bin_edges = npy.histogram(mni0["mass"], nbins, weights=mni0["int0"])
centers = (bin_edges[:-1] + bin_edges[1:]) / 2
# Add yerr to argment list when we have errors
yerr = npy.empty(nbins)
yerr = npy.sqrt(counts0)
plt.errorbar(centers,wave_nExp[i], yerr, linestyle="dashed", fmt="o",label=string[i])
plt.legend(loc='upper right', title="ε L M")
plt.show()
for i in range(len(waves)):
plt.errorbar(centers,wave_nExp[i], yerr, linestyle="dashed",fmt="o",label=string[i])
plt.legend(loc='upper right', title="ε L M")
plt.ylim(0,8000)
plt.show()
plt.stackplot(centers,wave_nExp)
plt.errorbar(centers,mcounts, myerr, fmt="o",label="Data")
plt.show()
Calculate Moments
# H000,H010,H011,H020,H021,H022,H100,H110,H111,H120,H121,H122,sigma4,sigmay = amp.calculate_moments_JPAC(result.values)
#H00,H11,H10,H20,H21,H22 = amp.calculate_moments_STD()
In this example between 2nd and 3rd waves in amp list
phase = npy.empty(len(binsda))
for index, the_bin, result in zip(range(len(binsda)), binsda, results):
amp.setup(the_bin)
phase[index] = amp.Phasediff(result.values,wave[0],wave[1])
Plot PhaseMotion
mnip = npy.empty(len(bmass), dtype=[("mass", float), ("intp", float)])
mnip["mass"] = bmass
mnip["intp"] = phase
mnip = pandas.DataFrame(mnip)
countsp, bin_edges = npy.histogram(mnip["mass"], nbins, weights=mnip["intp"])
centers = (bin_edges[:-1] + bin_edges[1:]) / 2
# Add yerr to argment list when we have errors
yerr = npy.empty(nbins)
yerr = npy.sqrt(npy.abs(countsp))
plt.errorbar(centers,countsp, yerr, fmt="o")
#plt.xlim(.6, 2.5)
<ErrorbarContainer object of 3 artists>
final_values = pandas.DataFrame([res.np_values() for res in results], columns=results[0].parameters)
final_values.to_csv(f"{outputpath}/minuit.csv", index=False)
pandas.DataFrame([res.np_errors() for res in results], columns=results[0].parameters)
r.1.0.0 | r.1.1.0 | r.1.1.1 | r.1.2.0 | r.1.2.1 | r.1.2.2 | i.1.0.0 | i.1.1.0 | i.1.1.1 | i.1.2.0 | i.1.2.1 | i.1.2.2 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 3.356559 | 2.493889 | 2.897309 | 2.412219 | 2.349451 | 3.159494 | 0.1 | 11.896594 | 8.218363 | 10.109807 | 10.432683 | 9.130513 |
1 | 4.416766 | 2.972887 | 2.975433 | 2.978733 | 2.693817 | 3.730951 | 0.1 | 25.044043 | 10.345596 | 16.575160 | 17.452087 | 13.657293 |
2 | 3.137401 | 2.673419 | 2.468381 | 2.605047 | 2.438578 | 3.395842 | 0.1 | 16.554781 | 17.576742 | 16.480376 | 21.036333 | 14.450415 |
3 | 3.886067 | 2.780332 | 3.327680 | 2.584334 | 3.241689 | 3.267893 | 0.1 | 16.691861 | 13.842671 | 15.684937 | 15.028312 | 13.029986 |
4 | 4.299323 | 4.252481 | 15.279354 | 5.702096 | 13.604444 | 3.827145 | 0.1 | 12.867038 | 6.973652 | 10.007481 | 9.888591 | 11.840692 |
5 | 3.773300 | 3.076172 | 3.262908 | 2.800284 | 4.257909 | 2.798191 | 0.1 | 6.867280 | 10.959710 | 7.263425 | 8.749806 | 14.508771 |
6 | 2.979822 | 3.497594 | 4.487051 | 3.227650 | 3.939076 | 2.753546 | 0.1 | 4.195450 | 6.826856 | 3.487915 | 5.907637 | 7.562205 |
7 | 7.061385 | 4.129486 | 4.561160 | 7.273888 | 11.210191 | 5.605608 | 0.1 | 4.661305 | 5.674431 | 8.798420 | 14.865016 | 7.289212 |
8 | 4.180322 | 6.132705 | 10.849362 | 12.458509 | 25.041922 | 6.561484 | 0.1 | 9.687383 | 12.724864 | 41.505276 | 43.442313 | 33.857627 |
9 | 2.728004 | 17.598370 | 14.255408 | 7.227073 | 8.227364 | 6.328641 | 0.1 | 13.126750 | 14.527248 | 61.428964 | 63.948525 | 60.322763 |
10 | 6.154873 | 12.388660 | 5.730840 | 27.863965 | 20.924606 | 24.674816 | 0.1 | 9.400346 | 10.005191 | 38.103790 | 33.451038 | 41.251961 |
11 | 3.301959 | 22.308811 | 15.236390 | 8.720746 | 7.813974 | 11.076527 | 0.1 | 6.403592 | 6.714552 | 33.403239 | 30.918787 | 31.095269 |
12 | 3.085644 | 28.145759 | 23.013823 | 8.697122 | 9.199121 | 7.930431 | 0.1 | 7.761087 | 7.125221 | 41.296250 | 42.183269 | 35.147170 |
13 | 2.713880 | 5.784672 | 7.523729 | 3.544206 | 5.043791 | 5.253414 | 0.1 | 6.890559 | 6.648305 | 23.123403 | 26.281344 | 25.108624 |
14 | 6.176205 | 8.243866 | 7.813045 | 23.962241 | 29.041879 | 25.525595 | 0.1 | 7.663374 | 5.685298 | 22.195582 | 22.226554 | 16.608544 |
15 | 15.647021 | 13.261054 | 13.703613 | 19.134597 | 18.117330 | 20.029447 | 0.1 | 4.738635 | 6.198186 | 4.845927 | 6.296107 | 3.029765 |
16 | 11.938587 | 10.276920 | 11.462838 | 31.292138 | 24.148004 | 36.103987 | 0.1 | 6.390168 | 9.356747 | 15.783444 | 15.119060 | 14.721444 |
17 | 3.972433 | 6.354970 | 5.550405 | 20.935094 | 20.058272 | 19.372352 | 0.1 | 10.385657 | 9.708252 | 47.168804 | 42.061896 | 47.024688 |
18 | 8.372497 | 8.586970 | 6.889079 | 27.279227 | 18.089992 | 27.186950 | 0.1 | 19.567899 | 18.619954 | 39.311690 | 35.226986 | 40.225057 |
19 | 5.184387 | 5.867679 | 6.176789 | 15.828975 | 13.222626 | 20.404691 | 0.1 | 15.696385 | 17.969291 | 43.086348 | 39.122732 | 48.279477 |
final_values