
import numpy as np
from numpy import nan, inf

add_legend_handle = [
  'Data',
  'Analysis_CSS_FragNone_UENone.yoda.gz',
  'Analysis_Alaric_FragNone_UENone.yoda.gz'
]

xpoints = {
                                       'Data' : [3.400000e+02, 4.050000e+02, 4.750000e+02, 5.500000e+02, 6.300000e+02,
                                                 7.150000e+02, 8.050000e+02, 9.000000e+02, 1.005000e+03, 1.120000e+03,
                                                 1.245000e+03, 1.380000e+03, 1.525000e+03, 1.680000e+03, 1.850000e+03,
                                                 2.030000e+03, 2.225000e+03, 2.440000e+03, 2.665000e+03, 2.910000e+03,
                                                 3.175000e+03, 3.460000e+03, 3.770000e+03, 4.100000e+03, 4.455000e+03,
                                                 4.840000e+03, 5.255000e+03, 6.550000e+03],
       'Analysis_CSS_FragNone_UENone.yoda.gz' : [3.400000e+02, 4.050000e+02, 4.750000e+02, 5.500000e+02, 6.300000e+02,
                                                 7.150000e+02, 8.050000e+02, 9.000000e+02, 1.005000e+03, 1.120000e+03,
                                                 1.245000e+03, 1.380000e+03, 1.525000e+03, 1.680000e+03, 1.850000e+03,
                                                 2.030000e+03, 2.225000e+03, 2.440000e+03, 2.665000e+03, 2.910000e+03,
                                                 3.175000e+03, 3.460000e+03, 3.770000e+03, 4.100000e+03, 4.455000e+03,
                                                 4.840000e+03, 5.255000e+03, 6.550000e+03],
    'Analysis_Alaric_FragNone_UENone.yoda.gz' : [3.400000e+02, 4.050000e+02, 4.750000e+02, 5.500000e+02, 6.300000e+02,
                                                 7.150000e+02, 8.050000e+02, 9.000000e+02, 1.005000e+03, 1.120000e+03,
                                                 1.245000e+03, 1.380000e+03, 1.525000e+03, 1.680000e+03, 1.850000e+03,
                                                 2.030000e+03, 2.225000e+03, 2.440000e+03, 2.665000e+03, 2.910000e+03,
                                                 3.175000e+03, 3.460000e+03, 3.770000e+03, 4.100000e+03, 4.455000e+03,
                                                 4.840000e+03, 5.255000e+03, 6.550000e+03],
}

xedges = {
                                       'Data' : [3.100000e+02, 3.700000e+02, 4.400000e+02, 5.100000e+02, 5.900000e+02,
                                                 6.700000e+02, 7.600000e+02, 8.500000e+02, 9.500000e+02, 1.060000e+03,
                                                 1.180000e+03, 1.310000e+03, 1.450000e+03, 1.600000e+03, 1.760000e+03,
                                                 1.940000e+03, 2.120000e+03, 2.330000e+03, 2.550000e+03, 2.780000e+03,
                                                 3.040000e+03, 3.310000e+03, 3.610000e+03, 3.930000e+03, 4.270000e+03,
                                                 4.640000e+03, 5.040000e+03, 5.470000e+03, 7.630000e+03],
       'Analysis_CSS_FragNone_UENone.yoda.gz' : [3.100000e+02, 3.700000e+02, 4.400000e+02, 5.100000e+02, 5.900000e+02,
                                                 6.700000e+02, 7.600000e+02, 8.500000e+02, 9.500000e+02, 1.060000e+03,
                                                 1.180000e+03, 1.310000e+03, 1.450000e+03, 1.600000e+03, 1.760000e+03,
                                                 1.940000e+03, 2.120000e+03, 2.330000e+03, 2.550000e+03, 2.780000e+03,
                                                 3.040000e+03, 3.310000e+03, 3.610000e+03, 3.930000e+03, 4.270000e+03,
                                                 4.640000e+03, 5.040000e+03, 5.470000e+03, 7.630000e+03],
    'Analysis_Alaric_FragNone_UENone.yoda.gz' : [3.100000e+02, 3.700000e+02, 4.400000e+02, 5.100000e+02, 5.900000e+02,
                                                 6.700000e+02, 7.600000e+02, 8.500000e+02, 9.500000e+02, 1.060000e+03,
                                                 1.180000e+03, 1.310000e+03, 1.450000e+03, 1.600000e+03, 1.760000e+03,
                                                 1.940000e+03, 2.120000e+03, 2.330000e+03, 2.550000e+03, 2.780000e+03,
                                                 3.040000e+03, 3.310000e+03, 3.610000e+03, 3.930000e+03, 4.270000e+03,
                                                 4.640000e+03, 5.040000e+03, 5.470000e+03, 7.630000e+03],
}

ref_xerrs = [
  [abs(xpoints['Data'][i]   - xedges['Data'][i]) for i in range(len(xpoints['Data']))],
  [abs(xedges['Data'][i+1] - xpoints['Data'][i]) for i in range(len(xpoints['Data']))]
]

yvals = {
                                       'Data' : [2.005030e+03, 8.511200e+02, 3.753950e+02, 1.751600e+02, 8.407000e+01,
                                                 4.168800e+01, 2.140000e+01, 1.131300e+01, 5.960000e+00, 3.163200e+00,
                                                 1.651700e+00, 8.946000e-01, 4.719200e-01, 2.533200e-01, 1.350100e-01,
                                                 7.217000e-02, 3.845000e-02, 1.985100e-02, 1.067800e-02, 5.415000e-03,
                                                 2.684000e-03, 1.445000e-03, 6.830000e-04, 3.344000e-04, 1.351000e-04,
                                                 7.230000e-05, 2.240000e-05, 3.630000e-06],
       'Analysis_CSS_FragNone_UENone.yoda.gz' : [2.094991e+03, 8.283524e+02, 3.643901e+02, 1.689448e+02, 7.862735e+01,
                                                 4.172724e+01, 2.263336e+01, 1.170173e+01, 6.401100e+00, 3.246764e+00,
                                                 1.779697e+00, 8.872743e-01, 4.477091e-01, 2.502563e-01, 1.557685e-01,
                                                 8.027665e-02, 3.977524e-02, 2.035744e-02, 1.106893e-02, 4.561544e-03,
                                                 3.415614e-03, 1.063329e-03, 5.592416e-04, 3.692583e-04, 9.122643e-05,
                                                 8.001699e-05, 4.306296e-05, 4.671477e-06],
    'Analysis_Alaric_FragNone_UENone.yoda.gz' : [1.947443e+03, 8.333079e+02, 3.584974e+02, 1.651267e+02, 8.113914e+01,
                                                 4.014873e+01, 2.126676e+01, 1.080672e+01, 5.959965e+00, 2.889347e+00,
                                                 1.787390e+00, 8.682088e-01, 4.380973e-01, 2.330582e-01, 1.318842e-01,
                                                 6.127161e-02, 3.701359e-02, 1.793808e-02, 8.858170e-03, 5.013221e-03,
                                                 2.461393e-03, 1.426582e-03, 5.363703e-04, 3.035356e-04, 1.221928e-04,
                                                 5.079761e-05, 1.570706e-05, 2.490615e-06],
}

xerrs = {
                                       'Data' : [
                                                   [3.000000e+01, 3.500000e+01, 3.500000e+01, 4.000000e+01, 4.000000e+01,
                                                    4.500000e+01, 4.500000e+01, 5.000000e+01, 5.500000e+01, 6.000000e+01,
                                                    6.500000e+01, 7.000000e+01, 7.500000e+01, 8.000000e+01, 9.000000e+01,
                                                    9.000000e+01, 1.050000e+02, 1.100000e+02, 1.150000e+02, 1.300000e+02,
                                                    1.350000e+02, 1.500000e+02, 1.600000e+02, 1.700000e+02, 1.850000e+02,
                                                    2.000000e+02, 2.150000e+02, 1.080000e+03],
                                                   [3.000000e+01, 3.500000e+01, 3.500000e+01, 4.000000e+01, 4.000000e+01,
                                                    4.500000e+01, 4.500000e+01, 5.000000e+01, 5.500000e+01, 6.000000e+01,
                                                    6.500000e+01, 7.000000e+01, 7.500000e+01, 8.000000e+01, 9.000000e+01,
                                                    9.000000e+01, 1.050000e+02, 1.100000e+02, 1.150000e+02, 1.300000e+02,
                                                    1.350000e+02, 1.500000e+02, 1.600000e+02, 1.700000e+02, 1.850000e+02,
                                                    2.000000e+02, 2.150000e+02, 1.080000e+03],
                                                ],
       'Analysis_CSS_FragNone_UENone.yoda.gz' : [
                                                   [3.000000e+01, 3.500000e+01, 3.500000e+01, 4.000000e+01, 4.000000e+01,
                                                    4.500000e+01, 4.500000e+01, 5.000000e+01, 5.500000e+01, 6.000000e+01,
                                                    6.500000e+01, 7.000000e+01, 7.500000e+01, 8.000000e+01, 9.000000e+01,
                                                    9.000000e+01, 1.050000e+02, 1.100000e+02, 1.150000e+02, 1.300000e+02,
                                                    1.350000e+02, 1.500000e+02, 1.600000e+02, 1.700000e+02, 1.850000e+02,
                                                    2.000000e+02, 2.150000e+02, 1.080000e+03],
                                                   [3.000000e+01, 3.500000e+01, 3.500000e+01, 4.000000e+01, 4.000000e+01,
                                                    4.500000e+01, 4.500000e+01, 5.000000e+01, 5.500000e+01, 6.000000e+01,
                                                    6.500000e+01, 7.000000e+01, 7.500000e+01, 8.000000e+01, 9.000000e+01,
                                                    9.000000e+01, 1.050000e+02, 1.100000e+02, 1.150000e+02, 1.300000e+02,
                                                    1.350000e+02, 1.500000e+02, 1.600000e+02, 1.700000e+02, 1.850000e+02,
                                                    2.000000e+02, 2.150000e+02, 1.080000e+03],
                                                ],
    'Analysis_Alaric_FragNone_UENone.yoda.gz' : [
                                                   [3.000000e+01, 3.500000e+01, 3.500000e+01, 4.000000e+01, 4.000000e+01,
                                                    4.500000e+01, 4.500000e+01, 5.000000e+01, 5.500000e+01, 6.000000e+01,
                                                    6.500000e+01, 7.000000e+01, 7.500000e+01, 8.000000e+01, 9.000000e+01,
                                                    9.000000e+01, 1.050000e+02, 1.100000e+02, 1.150000e+02, 1.300000e+02,
                                                    1.350000e+02, 1.500000e+02, 1.600000e+02, 1.700000e+02, 1.850000e+02,
                                                    2.000000e+02, 2.150000e+02, 1.080000e+03],
                                                   [3.000000e+01, 3.500000e+01, 3.500000e+01, 4.000000e+01, 4.000000e+01,
                                                    4.500000e+01, 4.500000e+01, 5.000000e+01, 5.500000e+01, 6.000000e+01,
                                                    6.500000e+01, 7.000000e+01, 7.500000e+01, 8.000000e+01, 9.000000e+01,
                                                    9.000000e+01, 1.050000e+02, 1.100000e+02, 1.150000e+02, 1.300000e+02,
                                                    1.350000e+02, 1.500000e+02, 1.600000e+02, 1.700000e+02, 1.850000e+02,
                                                    2.000000e+02, 2.150000e+02, 1.080000e+03],
                                                ],
}

yerrs = {
                                       'Data' : [
                                                   [1.263715e+02, 4.959143e+01, 2.089307e+01, 9.208919e+00, 4.299383e+00,
                                                    2.025592e+00, 1.050245e+00, 5.950361e-01, 3.282048e-01, 1.761536e-01,
                                                    9.296137e-02, 5.232760e-02, 2.914346e-02, 1.613775e-02, 8.756726e-03,
                                                    4.916011e-03, 2.849962e-03, 1.583867e-03, 9.011181e-04, 4.895018e-04,
                                                    2.667819e-04, 1.586066e-04, 8.660665e-05, 5.026787e-05, 2.524386e-05,
                                                    1.604912e-05, 7.098918e-06, 1.399548e-06],
                                                   [1.231802e+02, 4.808514e+01, 2.100934e+01, 9.424935e+00, 4.500780e+00,
                                                    2.165747e+00, 1.109072e+00, 5.948892e-01, 3.155207e-01, 1.703321e-01,
                                                    9.212397e-02, 5.185376e-02, 2.914915e-02, 1.667091e-02, 9.200287e-03,
                                                    5.043021e-03, 2.791659e-03, 1.533102e-03, 8.829020e-04, 4.731755e-04,
                                                    2.542373e-04, 1.524701e-04, 8.372687e-05, 4.833820e-05, 2.428622e-05,
                                                    1.546125e-05, 6.940118e-06, 1.366487e-06],
                                                ],
       'Analysis_CSS_FragNone_UENone.yoda.gz' : [
                                                   [5.081064e+01, 1.874040e+01, 9.712034e+00, 4.328495e+00, 2.616623e+00,
                                                    1.486763e+00, 8.502992e-01, 5.451987e-01, 2.700825e-01, 1.335466e-01,
                                                    8.362926e-02, 4.153958e-02, 2.247809e-02, 1.314135e-02, 8.909804e-03,
                                                    5.450998e-03, 3.159791e-03, 1.700324e-03, 1.086847e-03, 4.748053e-04,
                                                    4.595697e-04, 1.305578e-04, 1.053252e-04, 6.572817e-05, 2.007993e-05,
                                                    2.310401e-05, 1.266254e-05, 1.072892e-06],
                                                   [5.081064e+01, 1.874040e+01, 9.712034e+00, 4.328495e+00, 2.616623e+00,
                                                    1.486763e+00, 8.502992e-01, 5.451987e-01, 2.700825e-01, 1.335466e-01,
                                                    8.362926e-02, 4.153958e-02, 2.247809e-02, 1.314135e-02, 8.909804e-03,
                                                    5.450998e-03, 3.159791e-03, 1.700324e-03, 1.086847e-03, 4.748053e-04,
                                                    4.595697e-04, 1.305578e-04, 1.053252e-04, 6.572817e-05, 2.007993e-05,
                                                    2.310401e-05, 1.266254e-05, 1.072892e-06],
                                                ],
    'Analysis_Alaric_FragNone_UENone.yoda.gz' : [
                                                   [4.355788e+01, 2.043024e+01, 9.481126e+00, 5.166507e+00, 2.432331e+00,
                                                    1.337874e+00, 8.049509e-01, 4.272691e-01, 2.416186e-01, 1.158699e-01,
                                                    1.593865e-01, 4.494528e-02, 2.049333e-02, 1.290749e-02, 7.398284e-03,
                                                    4.033282e-03, 2.755482e-03, 1.313898e-03, 8.610920e-04, 4.962813e-04,
                                                    3.998843e-04, 2.284789e-04, 9.009402e-05, 4.807955e-05, 2.258938e-05,
                                                    1.233539e-05, 4.879853e-06, 6.953493e-07],
                                                   [4.355788e+01, 2.043024e+01, 9.481126e+00, 5.166507e+00, 2.432331e+00,
                                                    1.337874e+00, 8.049509e-01, 4.272691e-01, 2.416186e-01, 1.158699e-01,
                                                    1.593865e-01, 4.494528e-02, 2.049333e-02, 1.290749e-02, 7.398284e-03,
                                                    4.033282e-03, 2.755482e-03, 1.313898e-03, 8.610920e-04, 4.962813e-04,
                                                    3.998843e-04, 2.284789e-04, 9.009402e-05, 4.807955e-05, 2.258938e-05,
                                                    1.233539e-05, 4.879853e-06, 6.953493e-07],
                                                ],
}

variation_yvals = {
}



# lists for ratio plot
ratio0_yvals = {
                                       'Data' : [1.000000e+00, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1.000000e+00,
                                                 1.000000e+00, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1.000000e+00,
                                                 1.000000e+00, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1.000000e+00,
                                                 1.000000e+00, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1.000000e+00,
                                                 1.000000e+00, 1.000000e+00, 1.000000e+00, 1.000000e+00, 1.000000e+00,
                                                 1.000000e+00, 1.000000e+00, 1.000000e+00],
       'Analysis_CSS_FragNone_UENone.yoda.gz' : [1.044868e+00, 9.732498e-01, 9.706845e-01, 9.645170e-01, 9.352605e-01,
                                                 1.000941e+00, 1.057634e+00, 1.034361e+00, 1.074010e+00, 1.026418e+00,
                                                 1.077494e+00, 9.918112e-01, 9.486970e-01, 9.879058e-01, 1.153755e+00,
                                                 1.112327e+00, 1.034467e+00, 1.025512e+00, 1.036611e+00, 8.423904e-01,
                                                 1.272583e+00, 7.358678e-01, 8.188018e-01, 1.104241e+00, 6.752511e-01,
                                                 1.106736e+00, 1.922454e+00, 1.286908e+00],
    'Analysis_Alaric_FragNone_UENone.yoda.gz' : [9.712787e-01, 9.790722e-01, 9.549871e-01, 9.427192e-01, 9.651379e-01,
                                                 9.630764e-01, 9.937738e-01, 9.552479e-01, 9.999941e-01, 9.134253e-01,
                                                 1.082152e+00, 9.704994e-01, 9.283296e-01, 9.200150e-01, 9.768476e-01,
                                                 8.489900e-01, 9.626421e-01, 9.036361e-01, 8.295720e-01, 9.258026e-01,
                                                 9.170615e-01, 9.872540e-01, 7.853152e-01, 9.077022e-01, 9.044619e-01,
                                                 7.025949e-01, 7.012080e-01, 6.861198e-01],
}

ratio0_yerrs = {
                                       'Data' : [
                                                   [6.302725e-02, 5.826608e-02, 5.565624e-02, 5.257433e-02, 5.114051e-02,
                                                    4.858932e-02, 4.907687e-02, 5.259755e-02, 5.506791e-02, 5.568843e-02,
                                                    5.628223e-02, 5.849273e-02, 6.175509e-02, 6.370501e-02, 6.485984e-02,
                                                    6.811710e-02, 7.412124e-02, 7.978777e-02, 8.439015e-02, 9.039738e-02,
                                                    9.939712e-02, 1.097624e-01, 1.268033e-01, 1.503226e-01, 1.868531e-01,
                                                    2.219795e-01, 3.169160e-01, 3.855505e-01],
                                                   [6.143557e-02, 5.649631e-02, 5.596596e-02, 5.380758e-02, 5.353610e-02,
                                                    5.195132e-02, 5.182579e-02, 5.258457e-02, 5.293972e-02, 5.384803e-02,
                                                    5.577525e-02, 5.796306e-02, 6.176715e-02, 6.580969e-02, 6.814523e-02,
                                                    6.987698e-02, 7.260492e-02, 7.723048e-02, 8.268421e-02, 8.738237e-02,
                                                    9.472327e-02, 1.055156e-01, 1.225869e-01, 1.445520e-01, 1.797647e-01,
                                                    2.138486e-01, 3.098267e-01, 3.764427e-01],
                                                ],
       'Analysis_CSS_FragNone_UENone.yoda.gz' : [
                                                   [2.534159e-02, 2.201852e-02, 2.587151e-02, 2.471166e-02, 3.112434e-02,
                                                    3.566405e-02, 3.973361e-02, 4.819223e-02, 4.531586e-02, 4.221883e-02,
                                                    5.063223e-02, 4.643369e-02, 4.763115e-02, 5.187648e-02, 6.599366e-02,
                                                    7.552997e-02, 8.217922e-02, 8.565432e-02, 1.017838e-01, 8.768334e-02,
                                                    1.712257e-01, 9.035142e-02, 1.542097e-01, 1.965555e-01, 1.486301e-01,
                                                    3.195575e-01, 5.652920e-01, 2.955625e-01],
                                                   [2.534159e-02, 2.201852e-02, 2.587151e-02, 2.471166e-02, 3.112434e-02,
                                                    3.566405e-02, 3.973361e-02, 4.819223e-02, 4.531586e-02, 4.221883e-02,
                                                    5.063223e-02, 4.643369e-02, 4.763115e-02, 5.187648e-02, 6.599366e-02,
                                                    7.552997e-02, 8.217922e-02, 8.565432e-02, 1.017838e-01, 8.768334e-02,
                                                    1.712257e-01, 9.035142e-02, 1.542097e-01, 1.965555e-01, 1.486301e-01,
                                                    3.195575e-01, 5.652920e-01, 2.955625e-01],
                                                ],
    'Analysis_Alaric_FragNone_UENone.yoda.gz' : [
                                                   [2.172430e-02, 2.400395e-02, 2.525640e-02, 2.949593e-02, 2.893221e-02,
                                                    3.209254e-02, 3.761453e-02, 3.776797e-02, 4.054003e-02, 3.663060e-02,
                                                    9.649846e-02, 5.024064e-02, 4.342543e-02, 5.095330e-02, 5.479804e-02,
                                                    5.588585e-02, 7.166403e-02, 6.618800e-02, 8.064169e-02, 9.164936e-02,
                                                    1.489882e-01, 1.581169e-01, 1.319093e-01, 1.437786e-01, 1.672049e-01,
                                                    1.706140e-01, 2.178506e-01, 1.915563e-01],
                                                   [2.172430e-02, 2.400395e-02, 2.525640e-02, 2.949593e-02, 2.893221e-02,
                                                    3.209254e-02, 3.761453e-02, 3.776797e-02, 4.054003e-02, 3.663060e-02,
                                                    9.649846e-02, 5.024064e-02, 4.342543e-02, 5.095330e-02, 5.479804e-02,
                                                    5.588585e-02, 7.166403e-02, 6.618800e-02, 8.064169e-02, 9.164936e-02,
                                                    1.489882e-01, 1.581169e-01, 1.319093e-01, 1.437786e-01, 1.672049e-01,
                                                    1.706140e-01, 2.178506e-01, 1.915563e-01],
                                                ],
}

ratio0_variation_vals = {
}

ratio_band_edges = {
}
