In [1]:
import sys
sys.path.append('/home/jbourbeau/cr-composition')
In [2]:
from __future__ import division
import numpy as np
import sys
import matplotlib.pyplot as plt
import seaborn.apionly as sns
import composition as comp
import composition.analysis.plotting as plotting
%matplotlib inline
In [3]:
sns.set_palette('Paired', 10)
# sns.set_palette(sns.color_palette('Blues', 10))
sns.set_color_codes()
In [4]:
# standard_cut_keys = ['reco_exists', 'reco_zenith', 'num_hits_1_60', 'IT_signal',
# 'StationDensity', 'max_charge_frac', 'reco_containment', 'energy_range']
standard_cut_keys = ['LLHlap_reco_exists', 'LLHlap_zenith', 'num_hits_1_60', 'IT_signal',
'StationDensity', 'max_qfrac_1_60', 'LLHlap_containment', 'energy_range']
labels = ['Reco success', 'Reco zenith', 'NChannel/NStation', 'IT signal cuts',
'StationDensity', 'InIce charge frac', 'LLHlap containment', 'Energy range']
# Import ShowerLLH sim reconstructions and cuts to be made
df, cut_dict = comp.load_sim(return_cut_dict=True)
selection_mask = np.array([True]*len(df))
fig, ax = plt.subplots()
containment_bins = np.linspace(0, 6, 100)
IT_containment = df[selection_mask]['IceTop_FractionContainment']
print('IT fraction contained = {}'.format(sum(IT_containment <= 1.0)/len(IT_containment)))
sns.distplot(IT_containment, containment_bins, kde=False,
hist_kws={"histtype": "step", "linewidth": 1,
"alpha": 1},
label='Coincident')
for cut_key, label in zip(standard_cut_keys, labels):
selection_mask = selection_mask & cut_dict[cut_key]
df_cuts = df[selection_mask]
print('Number of events = {}'.format(len(df_cuts)))
IT_containment = df_cuts['IceTop_FractionContainment']
print('IT fraction contained = {}'.format(sum(IT_containment <= 1.0)/len(IT_containment)))
sns.distplot(IT_containment, containment_bins, kde=False,
hist_kws={"histtype": "step", "linewidth": 1,
"alpha": 1},
label='+ ' + label)
# axarr[0].legend()
ax.legend()
ax.set_ylim([1e-1,1e5])
ax.set_yscale("log", nonposy='clip')
ax.set_xlabel('True IT Containment Fraction')
ax.set_ylabel('Counts')
Out[4]:
In [5]:
selection_mask = np.array([True]*len(df))
# InIce_containment = df[selection_mask]['LLHlap_InIce_containment']
InIce_containment = df[selection_mask]['InIce_FractionContainment']
print('InIce fraction contained = {}'.format(sum(InIce_containment <= 1.0)/len(InIce_containment)))
fig, ax = plt.subplots()
sns.distplot(InIce_containment, containment_bins, kde=False,
hist_kws={"histtype": "step", "linewidth": 1,
"alpha": 1},
label='Coincident')
for cut_key, label in zip(standard_cut_keys, labels):
selection_mask = selection_mask & cut_dict[cut_key]
df_cuts = df[selection_mask]
print('Number of events = {}'.format(len(df_cuts)))
InIce_containment = df_cuts['InIce_FractionContainment']
print('InIce fraction contained = {}'.format(sum(InIce_containment <= 1.0)/len(InIce_containment)))
sns.distplot(InIce_containment, containment_bins, kde=False,
hist_kws={"histtype": "step", "linewidth": 1,
"alpha": 1},
label='+ ' + label)
ax.legend()
ax.set_ylim([1e-1,1e5])
ax.set_yscale("log", nonposy='clip')
ax.set_xlabel('True InIce Containment Fraction')
ax.set_ylabel('Counts')
plt.tight_layout()
In [6]:
standard_cut_keys = ['LLHLF_reco_exists', 'LLHLF_zenith', 'num_hits_1_60', 'IT_signal',
'StationDensity', 'max_qfrac_1_60', 'LLHLF_containment', 'energy_range']
labels = ['Reco success', 'Reco zenith', 'NChannel/NStation', 'IT signal cuts',
'StationDensity', 'InIce charge frac', 'LLHLF containment', 'Energy range']
# Import ShowerLLH sim reconstructions and cuts to be made
df, cut_dict = comp.load_sim(return_cut_dict=True)
selection_mask = np.array([True]*len(df))
fig, ax = plt.subplots()
containment_bins = np.linspace(0, 6, 100)
IT_containment = df[selection_mask]['IceTop_FractionContainment']
print('IT fraction contained = {}'.format(sum(IT_containment <= 1.0)/len(IT_containment)))
sns.distplot(IT_containment, containment_bins, kde=False,
hist_kws={"histtype": "step", "linewidth": 1,
"alpha": 1},
label='Coincident')
for cut_key, label in zip(standard_cut_keys, labels):
selection_mask = selection_mask & cut_dict[cut_key]
df_cuts = df[selection_mask]
print('Number of events = {}'.format(len(df_cuts)))
IT_containment = df_cuts['IceTop_FractionContainment']
print('IT fraction contained = {}'.format(sum(IT_containment <= 1.0)/len(IT_containment)))
sns.distplot(IT_containment, containment_bins, kde=False,
hist_kws={"histtype": "step", "linewidth": 1,
"alpha": 1},
label='+ ' + label)
# axarr[0].legend()
ax.legend()
ax.set_ylim([1e-1,1e5])
ax.set_yscale("log", nonposy='clip')
ax.set_xlabel('True IT Containment Fraction')
ax.set_ylabel('Counts')
Out[6]:
In [7]:
selection_mask = np.array([True]*len(df))
# InIce_containment = df[selection_mask]['LLHLF_InIce_containment']
InIce_containment = df[selection_mask]['InIce_FractionContainment']
print('InIce fraction contained = {}'.format(sum(InIce_containment <= 1.0)/len(InIce_containment)))
fig, ax = plt.subplots()
sns.distplot(InIce_containment, containment_bins, kde=False,
hist_kws={"histtype": "step", "linewidth": 1,
"alpha": 1},
label='Coincident')
for cut_key, label in zip(standard_cut_keys, labels):
selection_mask = selection_mask & cut_dict[cut_key]
df_cuts = df[selection_mask]
print('Number of events = {}'.format(len(df_cuts)))
InIce_containment = df_cuts['InIce_FractionContainment']
print('InIce fraction contained = {}'.format(sum(InIce_containment <= 1.0)/len(InIce_containment)))
sns.distplot(InIce_containment, containment_bins, kde=False,
hist_kws={"histtype": "step", "linewidth": 1,
"alpha": 1},
label='+ ' + label)
ax.legend()
ax.set_ylim([1e-1,1e5])
ax.set_yscale("log", nonposy='clip')
ax.set_xlabel('True InIce Containment Fraction')
ax.set_ylabel('Counts')
plt.tight_layout()
In [8]:
# Import ShowerLLH sim reconstructions and cuts to be made
df, cut_dict = load_sim(return_cut_dict=True)
selection_mask = np.array([True] * len(df))
standard_cut_keys = ['reco_exists', 'reco_zenith', 'num_hits', 'IceTopMaxSignalInEdge', 'IceTopMaxSignal', 'IceTopNeighbourMaxSignal',
'StationDensity', 'max_charge_frac', 'reco_containment', 'min_energy']
for key in standard_cut_keys:
selection_mask *= cut_dict[key]
df = df[selection_mask]
print('number of events = {}'.format(len(df)))
InIce_containment = df['InIce_FractionContainment']
log_energy = df['reco_log_energy']
MC_log_energy = df['MC_log_energy']
charge = df.InIce_log_charge
containment_bins = np.linspace(0, 1, 75)
energy_bins = np.arange(6.2, 9.51, 0.05)
bins = [containment_bins, energy_bins]
fig, ax = plt.subplots()
im = plotting.histogram_2D(InIce_containment, MC_log_energy, bins, log_counts=True, ax=ax)
# ax.set_title(title)
# plt.xlim([6.2, 9.5])
plt.show()
In [ ]:
sns.palplot(sns.color_palette("Paired", 10))
In [10]:
df, cut_dict = comp.load_sim(return_cut_dict=True)
selection_mask = np.array([True] * len(df))
standard_cut_keys = ['LLHlap_reco_exists', 'LLHlap_zenith', 'num_hits_1_60', 'IT_signal',
'StationDensity', 'max_qfrac_1_60', 'LLHlap_IT_containment', 'energy_range']
for key in standard_cut_keys:
selection_mask *= cut_dict[key]
df = df[selection_mask]
feature_list, feature_labels = comp.get_training_features()
print('training features = {}'.format(feature_list))
X_train, X_test, y_train, y_test, le = comp.get_train_test_sets(df, feature_list)
print('number training events = ' + str(y_train.shape[0]))
In [11]:
sns.set_palette('muted')
sns.set_color_codes()
In [12]:
MC_contained = (df.InIce_FractionContainment <= 1.0)
MC_uncontained = (df.InIce_FractionContainment > 1.0)
df.LLHlap_InIce_containment[MC_contained].plot(kind='hist', bins=np.linspace(0, 1.5, 100),
label='MC contained', logy=True, alpha=0.75)
df.LLHlap_InIce_containment[MC_uncontained].plot(kind='hist', bins=np.linspace(0, 1.5, 100),
label='MC uncontained', logy=True, alpha=0.75)
plt.xlabel('LLH+Lap InIce containment')
plt.ylabel('Counts')
plt.legend()
Out[12]:
In [7]:
df, cut_dict = comp.load_sim(return_cut_dict=True)
selection_mask = np.array([True] * len(df))
standard_cut_keys = ['LLHLF_reco_exists', 'LLHLF_zenith', 'num_hits_1_60', 'IT_signal',
'StationDensity', 'max_qfrac_1_60', 'LLHLF_IT_containment', 'energy_range']
for key in standard_cut_keys:
selection_mask *= cut_dict[key]
df = df[selection_mask]
feature_list, feature_labels = comp.get_training_features()
print('training features = {}'.format(feature_list))
X_train, X_test, y_train, y_test, le = comp.get_train_test_sets(df, feature_list)
print('number training events = ' + str(y_train.shape[0]))
In [9]:
MC_contained = (df.InIce_FractionContainment <= 1.0)
MC_uncontained = (df.InIce_FractionContainment > 1.0)
df.LLHLF_InIce_containment[MC_contained].plot(kind='hist', bins=np.linspace(0, 1.5, 100),
label='MC contained', logy=True, alpha=0.75)
df.LLHLF_InIce_containment[MC_uncontained].plot(kind='hist', bins=np.linspace(0, 1.5, 100),
label='MC uncontained', logy=True, alpha=0.75)
plt.xlabel('LLH+COG InIce containment')
plt.ylabel('Counts')
plt.legend()
Out[9]:
In [ ]:
In [ ]:
In [ ]: