Пример #1
0
def test_set_style_self_consistent(fig_test, fig_ref, mplhep_style, str_alias):
    plt.rcParams.update(plt.rcParamsDefault)

    hep.rcParams.clear()
    hep.set_style(mplhep_style)
    fig_ref.subplots()

    hep.rcParams.clear()
    hep.set_style(str_alias)
    fig_test.subplots()
Пример #2
0
def test_set_style_style_list(fig_test, fig_ref, mplhep_style, str_alias):
    plt.rcParams.update(plt.rcParamsDefault)

    hep.rcParams.clear()
    plt.style.use([mplhep_style, {"font.sans-serif": "Comic Sans MS"}])
    fig_ref.subplots()

    hep.rcParams.clear()
    hep.set_style([str_alias, {"font.sans-serif": "Comic Sans MS"}])
    fig_test.subplots()
Пример #3
0
def test_set_style(fig_test, fig_ref, mplhep_style):
    plt.rcParams.update(plt.rcParamsDefault)

    hep.rcParams.clear()
    plt.style.use(mplhep_style)
    fig_ref.subplots()

    hep.rcParams.clear()
    hep.set_style(mplhep_style)
    fig_test.subplots()
Пример #4
0
def test_set_style_LHCb_dep(fig_test, fig_ref):
    plt.rcParams.update(plt.rcParamsDefault)

    hep.rcParams.clear()
    with pytest.warns(FutureWarning):
        plt.style.use(hep.style.LHCb)
    fig_ref.subplots()

    hep.rcParams.clear()
    hep.set_style(hep.style.LHCb)
    fig_test.subplots()
Пример #5
0
def plotMatrix(biasMatrix, funcs, funcDegs, outdir):
    hep.set_style(hep.style.CMS)
    fig, ax = plt.subplots()
    ax.set_xticklabels(funcs)
    ax.set_yticklabels(funcs)
    hep.hist2dplot(biasMatrix, labels=True, vmin=-1, vmax=1, cmap='RdBu_r')
    ax.set_xlabel('gen function', ha='right', x=1)
    ax.set_ylabel('fit function', ha='right', y=1)
    #ax.set_title('MC')
    if not os.path.isdir(outdir): os.makedirs(outdir)
    for ext in ['png', 'pdf']:
        fig.savefig(
            os.path.join(
                outdir, f'{args.dataOrMC}_' +
                '_'.join([f'{f}{d}' for f, d in funcDegs.items()]) +
                f'_r{args.rInjected}_{args.signal}.{ext}'))
Пример #6
0
    morph_base = MorphHistW2(source_file['catp2'])

    scale_up = morph_base.get(shift=args.scale)
    scale_down = morph_base.get(shift=-args.scale)
    smear_up = morph_base.get(scale=1 + args.smear)
    smear_down = morph_base.get(scale=1 - args.smear)


    if args.plot:
        import matplotlib
        matplotlib.use('Agg')
        import matplotlib.pyplot as plt
        import mplhep as hep

        hep.set_style("CMS")
        fig, ax = plt.subplots()
        hep.histplot(morph_base.get()[:2], c='black' , ls=':', label='Nominal')
        hep.histplot(scale_up[:2], c='blue' , ls='--', label='Up')
        hep.histplot(scale_down[:2], c='red' , ls='--', label='Down')
        ax.set_xlabel('jet $m_{SD}$')
        ax.legend()
        fig.savefig(f'{work_dir}/scale.png')

        fig, ax = plt.subplots()
        hep.histplot(morph_base.get()[:2], c='black' , ls=':', label='Nominal')
        hep.histplot(smear_up[:2], c='blue' , ls='--', label='Up')
        hep.histplot(smear_down[:2], c='red' , ls='--', label='Down')
        ax.set_xlabel('jet $m_{SD}$')
        ax.legend()
        fig.savefig(f'{work_dir}/smear.png')
Пример #7
0
#  Copyright (c) 2020 zfit

import mplhep
import numpy as np

import zfit

mplhep.set_style('LHCb2')
import matplotlib.pyplot as plt

plt.rcParams["font.serif"] = "cmr10"

# create space
obs = zfit.Space("x", limits=(-10, 10))

# parameters
mu = zfit.Parameter("mu", 1., -4, 6)
sigma = zfit.Parameter("sigma", 1., 0.1, 10)
lambd = zfit.Parameter("lambda", -0.06, -1, -0.01)
frac = zfit.Parameter("fraction", 0.3, 0, 1)

# model building, pdf creation
gauss = zfit.pdf.Gauss(mu=mu, sigma=sigma, obs=obs)
exponential = zfit.pdf.Exponential(lambd, obs=obs)
model = zfit.pdf.SumPDF([gauss, exponential], fracs=frac)

# data
n_sample = 10000

exp_data = exponential.sample(n=n_sample * (1 - frac)).numpy()
Пример #8
0
#  Coded in Python 3
#  c-tagger WP measurement using NanoAOD.
#  Author: Spandan Mondal,
#  RWTH Aachen University

import pickle, glob, sys, pandas as pd, argparse
import matplotlib.pyplot as plt
import matplotlib.patches as mpatches
from matplotlib.lines import Line2D
import mplhep as hep, numpy as np
hep.set_style(hep.style.CMS)

parser = argparse.ArgumentParser("Measurement of c-tagger WPs")
parser.add_argument('-i',
                    '--inputdir',
                    type=str,
                    default="/mnt/c/Work/ctaggerWP/",
                    help="Path to input dir containing pkls (if multiple).")
parser.add_argument(
    '-f',
    '--inputfile',
    type=str,
    default="/mnt/c/Work/ctaggerWP/UL16NanoAODAPVv2_TTToHadronic.pkl",
    help="Input file name.")
parser.add_argument(
    '-s',
    '--skipseeds',
    action="store_true",
    default=False,
    help="Skip 1D scans that identify starting points for 2D scans.")
parser.add_argument('-p',
import numpy as np
import pandas as pd
from matplotlib import pyplot as plt
import matplotlib.patches as mpatches
from PIL import Image

import argparse
from glob import glob
import gc
import yaml

from utils import *
from fit_model import norm_pdf, uniform_pdf, model, MyChi2
from iminuit import Minuit
import mplhep
mplhep.set_style('CMS')

import time

############################################################################

parser = argparse.ArgumentParser()
parser.add_argument("cfg", type=str, help="path to yaml configuration file")
args = parser.parse_args()
with open(args.cfg) as f:
    cfg_dict = yaml.load(f, Loader=yaml.FullLoader)

# definitions
path_to_images = cfg_dict['path_to_images']
images_range = cfg_dict['images_range']
log_step = cfg_dict['log_step']
import torch.nn.utils.prune as prune

# Import our own code
import models
import jet_dataset
from training.early_stopping import EarlyStopping
from training.train_funcs import train, val  # ,test_pruned as test
from tools.aiq import calc_AiQ
from training.training_plots import plot_total_loss, plot_total_eff, plot_metric_vs_bitparam, plot_kernels
from tools.param_count import countNonZeroWeights
from tools.parse_yaml_config import parse_config

from matplotlib import rcParams
rcParams.update({'figure.autolayout': True})
import mplhep as hep
hep.set_style(hep.style.ROOT)

# Quick and dirty script to generate a few misc plots, specifically those requiring an inference
# on the test set to be run, and another because im too lazy to make it a seperate script


def loss_plot(precision, model_loss, model_estop,label="", outputDir='..'):
#{nbits:[model_loss,model_eff,model_estop]})
# Total loss over fine tuning
    tloss_plt = plt.figure()
    tloss_ax = tloss_plt.add_subplot()
    nbits = precision
    filename = 'total_loss_{}b_{}.pdf'.format(nbits, label)
    tloss_ax.plot(range(1, len(model_loss[0]) + 1), model_loss[0], label='Training Loss')
    tloss_ax.plot(range(1, len(model_loss[1]) + 1), model_loss[1], label='Validation Loss')
    # plot each stopping point
Пример #11
0
                     ax=ax1,
                     error_opts={'color': 'black'})
    hist.plot.plot1d(Fail['data_obs'].integrate('genflavor', 0),
                     ax=ax2,
                     error_opts={'color': 'black'})
    hist.plot.plot1d(Pass[mclist].integrate('genflavor'),
                     ax=ax1,
                     clear=False,
                     stack=True)
    hist.plot.plot1d(Fail[mclist].integrate('genflavor'),
                     ax=ax2,
                     clear=False,
                     stack=True)
    fig.savefig(f'{store_dir}/datamc.png')

    hep.set_style('CMS')
    fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(18, 8))
    hep.histplot(temp_data_pass.values()[()],
                 temp_data_pass.axis('msd').edges(),
                 ax=ax1,
                 histtype='errorbar',
                 color='black',
                 label='Data',
                 yerr=True)
    hep.histplot(
        [temp_unmatched_pass.values()[()],
         temp_matched_pass.values()[()]],
        temp_matched_pass.axis('msd').edges(),
        stack=True,
        ax=ax1,
        label=['Unmatched', 'Matched'],