In [1]:
%load_ext watermark
%watermark -u -d -v -p numpy,matplotlib,scipy,pandas,sklearn,mlxtend
In [2]:
%matplotlib inline
from __future__ import division, print_function
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn.apionly as sns
import glob
from root_numpy import root2array, tree2array, list_trees
from root_pandas import read_root
import comptools as comp
In [3]:
files = sorted(glob.glob('rootfiles/ldf*.root'))
In [4]:
df = read_root(files, 'ldftree')
In [5]:
grouped_r = df.groupby('r')
In [6]:
dist = []
mean_energy = []
std_energy = []
for r, group in grouped_r:
dist.append(r)
mean_energy.append(group['e_em'].mean())
std_energy.append(group['e_em'].std())
dist = np.asarray(dist)
mean_energy = np.asarray(mean_energy)
std_energy = np.asarray(std_energy)
In [9]:
fig, ax = plt.subplots()
ax.errorbar(dist, mean_energy, yerr=std_energy, marker='.', ls='None')
log_s125, beta = comp.analysis.fit_DLP_params(mean_energy, dist, 0, 0)
print(beta)
print(log_s125)
ax.plot(dist, comp.analysis.DLP(dist, log_s125, beta))
ax.set_xlim(0)
ax.set_yscale("log", nonposy='clip')
ax.set_ylabel('EM energy')
ax.set_xlabel('Distance from shower core [m]')
ax.grid()
plt.show()
In [11]:
with sns.color_palette("Greens"):
fig, axarr = plt.subplots(2, 2, sharex=True, figsize=(10, 8))
betas = []
for f in files:
df = read_root(f, 'ldftree')
df_sample = df.sample(10)
log_s125, beta = comp.analysis.fit_DLP_params(df_sample['e_em'], df_sample['r'], 0, 0)
betas.append(beta)
for branch, label, ax in zip(['e_em', 'e_tot', 'e_mu', 'n_mu'],
['EM energy density', 'Total Energy', 'Muon energy', 'Number of muons'],
axarr.flatten()):
ax.plot(df['r'], df[branch], ls='None', alpha=0.25)
ax.set_xlim(0)
if branch != 'n_mu': ax.set_yscale("log", nonposy='clip')
ax.set_ylabel(label)
ax.set_xlabel('Distance from shower core [m]')
ax.grid()
plt.tight_layout()
plt.show()
In [131]:
betas = np.asarray(betas)
In [132]:
betas
Out[132]:
In [ ]:
In [ ]: