In [1]:
# import libraries
import ROOT
ROOT.gROOT.LoadMacro("stl_loader.h+")
from collections import defaultdict
import numpy as np
import pandas as pd
from IPython.display import Image
import hax
from lce_helpers import *
#hax.ipython.code_hider()
In [2]:
# from 2015 Kr83m diffusion-mode data
datasets = ['xe100_150413_1839','xe100_150414_1535','xe100_150415_1749',
'xe100_150416_1832','xe100_150419_1611','xe100_150420_0304',
'xe100_150420_1809']
# xerawdp path
xerawdpPath = '/project/lgrandi/tunnell/run_14/NewNN/'
In [3]:
# get xerawdp tree
xerawdpTree = ROOT.TChain('T1')
t2 = ROOT.TChain('T2')
t3 = ROOT.TChain('T3')
for dataset in datasets:
xerawdpTree.AddFile(xerawdpPath+dataset+'.root')
t2.AddFile(xerawdpPath+dataset+'.root')
t3.AddFile(xerawdpPath+dataset+'.root')
xerawdpTree.AddFriend(t2)
xerawdpTree.AddFriend(t3)
print(xerawdpTree.GetEntries())
In [6]:
cut_acceptance = np.zeros((8,2))
for i in range(xerawdpTree.GetEntries()):
xerawdpTree.GetEntry(i)
if xerawdpTree.NbS1Peaks < 2 or xerawdpTree.S1sTot[0] <= 0 or xerawdpTree.NbS2Peaks < 1:
cut_acceptance[0,0] += 1
continue
if xerawdpTree.S1sCoin[0] < 2 or xerawdpTree.S1sCoin[1] < 2:
cut_acceptance[1,0] += 1
if xerawdpTree.cS2sTot[0] < 150:
cut_acceptance[2,0] += 1
if xerawdpTree.S1sLeftEdge[1]-xerawdpTree.S1sRightEdge[0] <= 0:
cut_acceptance[3,0] += 1
dt_s1 = (xerawdpTree.S1sPeak[1]-xerawdpTree.S1sPeak[0])*10
if dt_s1 < 500 or dt_s1 > 1000:
cut_acceptance[4,0] += 1
if xerawdpTree.NbS2Peaks > 1 and xerawdpTree.cS2sTot[1] > 150:
cut_acceptance[5,0] += 1
if xerawdpTree.S2sRightEdge[0]-xerawdpTree.S2sLeftEdge[0] < xerawdpTree.S1sRightEdge[1]-xerawdpTree.S1sLeftEdge[0]:
cut_acceptance[6,0] += 1
if xerawdpTree.S1sTot[1]/xerawdpTree.S1sTot[0] < 0.1 or xerawdpTree.S1sTot[1]/xerawdpTree.S1sTot[0] > 1.0:
cut_acceptance[7,0] += 1
print(cut_acceptance)
In [ ]:
2.62*10.
In [ ]:
print(cut_acceptance)
In [ ]:
# Define and Apply 2 S1 and 1 S2 Xerawdp Event Selection
xerawdpTree.SetAlias('Xkr_2S1','NbS1Peaks >=2')
xerawdpTree.SetAlias('Xkr_1S2','NbS2Peaks == 1 || (NbS2Peaks > 1 && cS2sTot[1] > 150)')
xerawdpTree.SetAlias('Xkr_S1sCoin','S1sCoin[0] >= 2 && S1sCoin[1] >=2')
xerawdpTree.SetAlias('Xkr_S20Area','cS2sTot[0] >= 150')
xerawdpTree.SetAlias('Xkr_S1sPeakOverlap','S1sLeftEdge[1] - S1sRightEdge[0] > 0')
xerawdpTree.SetAlias('Xkr_S1Times','(S1sPeak[1]-S1sPeak[0])*10 >= 500 && (S1sPeak[1]-S1sPeak[0])*10 <= 1000')
xerawdpTree.SetAlias('Xkr_S1sAreaRatio','S1sTot[1]/S1sTot[0] > 0.1 && S1sTot[1]/S1sTot[0] < 1.0')
xerawdpTree.SetAlias('Xkr_S1SpanS2Width','S2sRightEdge[0]-S2sLeftEdge[0] >= S1sRightEdge[1]-S1sLeftEdge[0]')
xerawdpTree.SetAlias('Kr_2S1and1S2','Xkr_2S1 && Xkr_1S2 && Xkr_S1sCoin && Xkr_S20Area && Xkr_S1sPeakOverlap')
Lkr_2S1and1S2 = ROOT.TEventList("Lkr_2S1and1S2")
Lkr_2S1and1S2_file = ROOT.TFile("Lkr_2S1and1S2.root","RECREATE")
xerawdpTree.Draw(">>Lkr_2S1and1S2","Kr_2S1and1S2")
Lkr_2S1and1S2_file.Write()
Lkr_2S1and1S2_file.Close()
In [ ]:
Lkr_2S1and1S2_file = ROOT.TFile("Lkr_2S1and1S2.root","Read")
Lkr_2S1and1S2 = Lkr_2S1and1S2_file.Get("Lkr_2S1and1S2")
xerawdpTree.SetEventList(Lkr_2S1and1S2)
print('Kr83m 2S1 and 1S2: '+str(Lkr_2S1and1S2.GetN())+' '+str(Lkr_2S1and1S2.GetN()/xerawdpTree.GetEntries())+'\n')
data = defaultdict(list)
for i in range(Lkr_2S1and1S2.GetN()):
xerawdpTree.GetEntry(Lkr_2S1and1S2.GetEntry(i))
data['cs10Area'].append( xerawdpTree.cxS1sTot[0] )
data['s10Area'].append( xerawdpTree.S1sTot[0] )
data['s10Time'].append( xerawdpTree.S1sPeak[0] )
data['s10Coin'].append( xerawdpTree.S1sCoin[0] )
data['cs11Area'].append( xerawdpTree.cxS1sTot[1] )
data['s11Area'].append( xerawdpTree.S1sTot[1] )
data['s11Time'].append( xerawdpTree.S1sPeak[1] )
data['s11Coin'].append( xerawdpTree.S1sCoin[1] )
data['s10x'].append( xerawdpTree.cS2sPosNn[0][0] )
data['s10y'].append( xerawdpTree.cS2sPosNn[0][1] )
data['s10z'].append( xerawdpTree.cS2sPosNn[0][2] )
data['s11x'].append( xerawdpTree.cS2sPosNn[0][0] )
data['s11y'].append( xerawdpTree.cS2sPosNn[0][1] )
data['s11z'].append( xerawdpTree.cS2sPosNn[0][2] )
data['cs20Area'].append( xerawdpTree.cS2sTot[0] )
df_xerawdp = pd.DataFrame(data)
In [ ]:
print(df_xerawdp['cs20Area'])
In [ ]:
R = 15.25
Z = 30.3
A_r = [R/5, 2*R/5, 3*R/5, 4*R/5, R]
N_phi = [10, 15, 20, 40, 60]
N_z = 10.0
bin_settings = [R,Z,A_r,N_phi,N_z]
bin_data = xe100_to_lyBins(df_xerawdp,bin_settings,'s10',bin_spec_dir='Bin_Hists_s10_xerawdp')
In [ ]: