Esempio n. 1
0
def make_doc_sections():
    return [{
        'name'  : latex_to_rst(section.name()),
        'groups': make_doc_groups(section)
        } for section in eos.Observables().sections()]
Esempio n. 2
0
#!/usr/bin/env python3
# vim: set sw=4 sts=4 et tw=120 :

import eos

observables = eos.Observables()

for section in observables.sections():

    section_title = section.name()
    print('\section{' + section_title + '}\n')

    for group in section:
        group_title = group.name()
        print('\subsection{' + group_title + '}\n')

        print(r'{%')
        print(r'\captionsetup{type=table}')
        print(r'\renewcommand{\arraystretch}{1.1}')
        print(r'\newcolumntype{L}[1]{>{\raggedright\arraybackslash}p{#1}}')
        print(r'\begin{center}')
        print(r'\begin{longtable}{@{} p{.5\textwidth} p{.5\textwidth} @{}}')
        print(r'\toprule')
        print(r'    \textbf{Qualified Name} & \textbf{Description} \\')
        print(r'\midrule')
        for qn, entry in group:
            latex = entry.latex()
            if 0 == len(latex):
                continue

            print(r'    \verb|{0}| & {1} \\'.format(str(qn),
Esempio n. 3
0
        def plot(self):
            xvalues     = []
            xticklabels = []
            yvalues     = []
            yerrors     = []
            idx = 0
            for constraint in self.constraints:
                if constraint['type'] == 'Gaussian':
                    sigma_hi = np.sqrt(float(constraint['sigma-stat']['hi'])**2 + float(constraint['sigma-sys']['hi'])**2) / width
                    sigma_lo = np.sqrt(float(constraint['sigma-stat']['lo'])**2 + float(constraint['sigma-sys']['lo'])**2) / width
                    latex = '$' + eos.Observables()[constraint['observable']].latex() + '$'
                    xvalues.append(idx)
                    xticklabels.append(latex)
                    yvalues.append(constraint['mean'])
                    yerrors.append([sigma_hi, sigma_lo])
                    idx = idx + 1
                elif constraint['type'] == 'MultivariateGaussian(Covariance)':
                    dim         = constraint['dim']
                    observables = constraint['observables']
                    kinematics  = constraint['kinematics']
                    options     = constraint['options']
                    covariance  = np.array(constraint['covariance'])
                    means       = constraint['means']

                    for i in range(0, dim):
                        latex = '$' + eos.Observables()[observables[i]].latex() + '$'
                        sigma = np.sqrt(covariance[i, i])
                        xvalues.append(idx)
                        xticklabels.append(latex)
                        yvalues.append(means[i])
                        yerrors.append([sigma, sigma])
                        idx = idx + 1
                elif constraint['type'] == 'MultivariateGaussian':
                    dim = constraint['dim']
                    observables = constraint['observables']
                    sigma_stat_hi = np.array(constraint['sigma-stat-hi'])
                    sigma_stat_lo = np.array(constraint['sigma-stat-lo'])
                    sigma_sys = np.array(constraint['sigma-sys'])
                    sigma = np.sqrt(np.power(sigma_sys, 2) + 0.25 * np.power(sigma_stat_hi + sigma_stat_lo, 2))
                    means = constraint['means']

                    for i in range(0, dim):
                        latex = '$' + eos.Observables()[observables[i]].latex() + '$'
                        xvalues.append(idx)
                        xticklabels.append(latex)
                        yvalues.append(means[i])
                        yerrors.append(sigma[i])
                        idx = idx + 1
                else:
                    raise ValueError('type of constraint presently not supported')

            xvalues = np.array(xvalues)
            yvalues = np.array(yvalues)
            yerrors = np.array(yerrors)

            self.plotter.ax.tick_params(axis='x', which='minor', bottom=False)
            plt.xticks(xvalues, xticklabels, rotation=self.rotation)
            plt.errorbar(x=xvalues, y=yvalues, xerr=None, yerr=yerrors.T,
                color=self.color, elinewidth=1.0, fmt='_', linestyle='none', label=self.label)
            plt.margins(0.2)
            # Tweak spacing to prevent clipping of tick-labels
            plt.subplots_adjust(bottom=0.15)