def make_doc_sections(): return [{ 'name' : latex_to_rst(section.name()), 'groups': make_doc_groups(section) } for section in eos.Observables().sections()]
#!/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),
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)