In [3]:
from Kr83m_Basic_v3 import * # pax minitree class for Kr83m data
from cut_helpers import * # functions to apply and plot some event selections
from lce_helpers_v2 import * # functions for binning, building map files, and plotting LCE maps
import numpy as np
import pandas as pd
import glob
import matplotlib
%matplotlib inline
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
matplotlib.rc('font', size=16)
import hax
hax.init(raw_data_access_mode = 'local',
raw_data_local_path = '/project/lgrandi/xenon1t/raw/',
main_data_paths='project/lgrandi/xenon1t/processed/pax_v5.5.0/')
#hax.ipython.code_hider()
In [2]:
datasets_kr = ['160808_0547', '160808_0447', '160808_0347', '160808_0046',
'160807_2045', '160807_1945', '160807_1845', '160807_1745',
'160807_1645']
# load minitrees
# throws error when building minitrees for many datasets, I built them one by one
data = hax.minitrees.load(datasets_kr, treemakers=Kr83m_Basic_v3)
df_pax = pd.DataFrame(data[data['s10Time']>=0]) # remove NaNs
In [4]:
# Add some colums to dataframes for easy cut comparison
for df in [df_pax]:
df['s1Dt'] = df['s11Time']-df['s10Time']
df['s1Gap'] = df['s11LeftEdge']-df['s10RightEdge']
df['s20Width'] = df['s20RightEdge']-df['s20LeftEdge']
df['s1sSpan'] = df['s11RightEdge']-df['s10LeftEdge']
df['s1s2Deficit'] = df['s20Width']-df['s1sSpan']
df['s1sRatio'] = df['s11Area']/df['s10Area']
In [5]:
# Kr Cuts
cuts = [ ['s1sRatio',0.1,1.0,50,0,1.2,'PE/PE'] , ['s1Dt',500,2000,50,-1000,5000,'ns'] ]
df_pax_cut = apply_cuts(df_pax,cuts)
print(len(df_pax_cut.values),'/',len(data.values),'=',len(df_pax_cut.values)/len(data.values))
In [6]:
h_rrz_pax = ROOT.TH2D('','',50,0,2500,50,-100,0)
for i in range(len(df_pax_cut.values)):
rr = df_pax_cut['i0x'].values[i]**2+df_pax_cut['i0y'].values[i]**2
h_rrz_pax.Fill(rr,df_pax_cut['i0z'].values[i])
In [7]:
c1 = ROOT.TCanvas('','',1600,1600)
ROOT.gStyle.SetOptStat(0)
c1.SetLogz
h_rrz_pax.GetXaxis().SetTitle('r^{2} (cm^{2})')
h_rrz_pax.GetXaxis().CenterTitle()
h_rrz_pax.GetYaxis().SetTitle('z (cm)')
h_rrz_pax.GetYaxis().CenterTitle()
h_rrz_pax.SetTitle('r^{2}\ vs.\ z\ Histogram')
h_rrz_pax.SetMaximum(3e2)
h_rrz_pax.Draw('colz')
c1.Print('./Xe1T_Kr_Figures/f_rrzHists.png')
c1.Clear()
In [18]:
h_s1s_pax = ROOT.TH2D('','',50,0,1200,50,0,200)
for i in range(len(df_pax_cut.values)):
h_s1s_pax.Fill(df_pax_cut['s10Area'].values[i],df_pax_cut['s11Area'].values[i])
In [21]:
c1 = ROOT.TCanvas('','',1600,1600)
ROOT.gStyle.SetOptStat(0)
h_s1s_pax.GetXaxis().SetTitle('s10Area (PE)')
h_s1s_pax.GetXaxis().CenterTitle()
h_s1s_pax.GetYaxis().SetTitle('s11Area (PE)')
h_s1s_pax.GetYaxis().SetTitleOffset(1.2)
h_s1s_pax.GetYaxis().CenterTitle()
h_s1s_pax.SetTitle('Pax s10Area vs. s11Area Histogram')
h_s1s_pax.Draw('colz')
cut_line1 = ROOT.TLine(0.0,0.0,1200,120)
cut_line1.Draw()
c1.Print('./Xe1T_Kr_Figures/f_s1sHists.png')
c1.Clear()
In [11]:
h_dt_pax = ROOT.TH1D('','',70,400,1100)
for i in range(len(df_pax_cut.values)):
h_dt_pax.Fill(df_pax_cut['s1Dt'].values[i])
In [12]:
def expDec(x,p):
f = p[2]+p[0]*np.exp(-np.log(2)*x[0]/p[1])
return f
In [13]:
fitFun = ROOT.TF1("fitFun",expDec,500,1000,3)
fitFun.SetParameter(0,200000)
fitFun.SetParameter(1,155)
fitFun.SetParameter(2,10)
c1 = ROOT.TCanvas('','',1600,1200)
ROOT.gStyle.SetOptStat(0)
c1.SetLogy()
h_dt_pax.GetXaxis().SetTitle('s11Time - s10Time (ns)')
h_dt_pax.GetXaxis().CenterTitle()
h_dt_pax.SetTitle('s1Dt Histogram')
h_dt_pax.SetMaximum(2e4)
h_dt_pax.Draw()
h_dt_pax.Fit("fitFun","","",500,1000)
fit2 = h_dt_pax.GetFunction("fitFun")
chi22 = fit2.GetChisquare()
ndf2 = fit2.GetNDF()
p12 = fit2.GetParameter(1)
e12 = fit2.GetParError(1)
pt2 = ROOT.TPaveText(.58, .68, .88, .88, 'NDC')
pt2.AddText("t_{1/2}=%1.3f"%p12)
pt2.AddText("#sigma=%1.3f"%e12)
pt2.AddText("#chi^{2}/NDF=%1.3f/%i"%(chi22,ndf2))
pt2.Draw()
c1.Print('./Xe1T_Kr_Figures/f_dtHists.png')
c1.Clear()
In [22]:
plt.rcParams['figure.figsize'] = (12.0, 10.0)
plt.imshow(mpimg.imread('Xe1T_Kr_Figures/f_rrzHists.png'))
plt.title('Fig 10: $r^2\ vs.\ z$ Histograms')
plt.axis('off')
plt.show()
plt.imshow(mpimg.imread('Xe1T_Kr_Figures/f_s1sHists.png'))
plt.title('Fig 11: $s10Area\ vs.\ s11Area$ Histograms')
plt.axis('off')
plt.show()
plt.imshow(mpimg.imread('Xe1T_Kr_Figures/f_dtHists.png'))
plt.title('Fig 12: $s1Dt$ Histograms')
plt.axis('off')
plt.show()
In [ ]: