In [1]:
import sys
sys.path.append('../../FourVector')
sys.path.append('../project')
from FourVector import FourVector
from ThreeVector import ThreeVector
from FutureColliderTools import SmearVertex, GetCorrectedMass, GetMissingMass2, GetQ2
from FutureColliderDataLoader import LoadData_KMuNu, LoadData_DsMuNu
from FutureColliderVariables import DataTuple, sigma_PV_LHCb, sigma_SV_LHCb
import numpy as np
import ROOT
ROOT.enableJSVis()
ROOT.gStyle.SetOptStat(0)
In [2]:
from prettytable import PrettyTable
EventType = "13512010"
FileName, TreeName = DataTuple[ EventType ]
InputData, K_PE, Mu_PE, B_PE, B_Origin, B_End = LoadData_KMuNu(EventType, (FileName, TreeName) )
DataTable = PrettyTable()
DataTable.add_column("", InputData.dtype.names)
for x in range(4):
DataTable.add_column("Ev {0}".format(x), InputData[x])
print DataTable
In [3]:
K = FourVector( InputData[K_PE ] )
Mu = FourVector( InputData[Mu_PE] )
Y = K+Mu
DataType = InputData[B_End[0]].dtype
Smeared_SV = SmearVertex( InputData[B_End] .copy().view( (DataType, 3) ), sigma_SV_LHCb("K"))#*0.3 )
Smeared_PV = SmearVertex( InputData[B_Origin].copy().view( (DataType, 3) ), sigma_PV_LHCb("K"))#*0.3 )
B_Dir = ThreeVector( Smeared_PV ) - ThreeVector( Smeared_SV )
In [4]:
MCORR = GetCorrectedMass( Y, B_Dir)
MissingM2 = GetMissingMass2(K, Mu, B_Dir)
Qsq_1, Qsq_2 = GetQ2(Y, Mu, B_Dir )
In [5]:
h_MCORR = ROOT.TH1F("h_MCORR", "B_{s} Corrected Mass", 100, 3000, 6000)
h_MM2 = ROOT.TH1F("h_MM2" , "Missing Mass Squared", 100, -4e6, 12e6)
h_Qsq_1 = ROOT.TH1F("h_QSQ1" , "q^{2} Quadratic Solutions", 100, 0, 24e6)
h_Qsq_2 = ROOT.TH1F("h_QSQ2" , "q^{2} Quadratic Solutions", 100, 0, 24e6)
nev = len(K)
h_MCORR.FillN(nev, MCORR, np.ones(nev))
h_MM2 .FillN(nev, MissingM2, np.ones(nev))
h_Qsq_1.FillN(nev, Qsq_1, np.ones(nev))
h_Qsq_2.FillN(nev, Qsq_2, np.ones(nev))
canvas_1 = ROOT.TCanvas("c1", "c1", 900,300)
canvas_1.Divide(3)
canvas_1.cd(1)
h_MCORR.GetXaxis().SetTitle("m_{CORR}")
h_MCORR.Draw()
line = ROOT.TLine(5367,0,5367,h_MCORR.GetMaximum()*1.05);
line.SetLineColor(2)
line.Draw()
canvas_1.cd(2)
h_MM2.GetXaxis().SetTitle("m_{Missing}^{2}")
h_MM2.Draw()
canvas_1.cd(3)
h_Qsq_1.Draw()
h_Qsq_1.GetXaxis().SetTitle("q^{2}")
h_Qsq_2.Draw("SAME")
canvas_1.Draw()
canvas_1.Print("KMu_1.pdf")
In [ ]: