Commit efdde88b authored by Iñaki Lara's avatar Iñaki Lara

26/09/2019

parent c45b8b0d
Excluded scenarios with long-lived Bino LSP
*******************************************
The exclusion for this points is based on the search 1504.05162 "Search for massive, long-lived particles using multitrack displaced vertices or displaced lepton pairs in pp collisions at s√ = 8 TeV with the ATLAS detector". On each point, the proton-proton collision could produce a pair chargino-chargino or chargino-neutralino, of dominant wino composition. The charginos and neutralinos will rapidly decay to long-lived binos plus on/off-shell W/Z gauge bosons. The possible decays form the following combinations:
I) p p > cha chi > 2xB_displaced W Z
II) p p > cha cha > 2xB_displaced 2xW
Finally, the displaced binos will decay in 5 different dominant channels that can be detected with the mentioned search:
a) B > 2xe nu
b) B > mu e nu
c) B > 2xmu nu
d) B > qq' mu
e) B > qq' e
Each of the 5 channels constitute a different signal to search for. This way, a point will be considered excluded id the number of events predicted for any of the 5 previous categories is above 3. The number of events is calculated, for each channel, as
Nev = Luminosity x[ Cross-section@8TeV(cha chi)xBR(cha > W Bino N)xBR(chi > Z Bino N)xeff_t_Ix + Cross-section@8TeV(cha cha)x{BR(cha > W Bino N)²xeff_t_II]xeff_sel_xB
Where eff_t_AX refers to the trigger efficiency associated to each intermediate chain and each final decay of the bino (for example eff_t_Ia correspond to the trigger efficiency when the binos are produced through the channel I and decay to electrons and neutrinos) and eff_sel_x correspond to the selection efficiency of the displaced binos for the decay channel x.
The values of eff_t_AX can be calculated using 'python3.7 trigg_bino_B.py x=[x_val] y=[y_val] channel=[]', where x_val correspond to the mass of the wino-like chargino/neutralino and the y_val to the mass of the bino. Channel has to be among {ai,bi,ci,di,ei,aii,...} corresponding to the options described above. Note that the x_val has to be within [60,700] and y_val within [60,350], if x_val happens to be above 700 you can just take the value corresponding to 700, since the efficiency saturates above this. If you needed values below 60 GeV or more massive for the bino, please ask me about.
Similarly, you can obtain the values of eff_sel_x using 'python3.7 Seff_bino.py ctau=[x_val] mass1=[mass_heavy] mass2=[mass_light] channel=[a,b,c,d,e]' with a self explanatory syntax. Note that for llnu channels ctau should be within [0.5,88700] mm, while the lqq channels require ctau to be within [1,10000] mm. Outside of this values Nev should be 0. Also, mass1 should be in the interval [mass2,1300] and mass2 in [50,1000].
......@@ -8,6 +8,18 @@ The exclusion for this points is based on the search 1908.08215 'Search for elec
with diagrams of Fig.1a and Fig.1b. Where invisible means that the Bino will be misidentified as missing transverse momentum regardless of its decay.
In my opinion, the signal strength has to take into account the fact that not all the events will be as displaced as ctau, instead the fraction of events with binos decaying far enough as to reject the decay products in the preselection stage is:
1-exp(-(ctau*beta*gamma)/(√2*n*sigma(d0)))
where sigma(d0) is roughly 0.03mm acording to 1004.5293 and n=3 for muons and 5 for electrons. gamma could be estimated as:
gamma=sqrt(1+(mass1**2-mass2**2)**2/(2*mass1**2*mass2**2))
where mass1 is the parent mass and mass 2 the daughter mass. Also beta*gamma=sqrt(gamma²-1)
I think we have to put this factor also on top of the cross-section and the branching fraction.
If the cross-section times Branching fraction corresponding to each channel is higher than the limits shown in the adjoint plots, the point will be excluded. The numbers on the plots are interpolated with the files in the folder, and its value (in fb) can be called as 'python3.7 SLP_sne.py x=[x_val] y=[y_val]'.
Is possible that some points fall outside of the regions covered in the plots. In my opinion we should tag this points as non-excluded.
from scipy.interpolate import griddata
import numpy as np
import sys
import matplotlib.pyplot as plt
import math
#
#See for further info https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.griddata.html
#
#USAGE--------------------------------------------------------
#
#>> python<..> trigg_bino_B.py x=[x_val] y=[y_val] channel=[]
#>> [efficiency]
#
# If the masses are outside ot the interpolated region the subroutine returns nan
#Data for interpolation------------------------------------
x=[60,150,350,700,
150,350,700,
350,700]
y=[60,60,60,60,
150,150,150,
350,350]
z_aI=[0.1068,0.1202,0.9161,0.9968,
0.8655,0.9681,0.999,
0.9992,1.0]
z_bI=[0.0804,0.1327,0.8635,0.9882,
0.7141,0.9131,0.9886,
0.9879,0.9978]
z_cI=[0.0938,0.17,0.8353,0.9573,
0.6566,0.8569,0.9606,
0.9279,0.9767]
z_dI=[0.0294,0.1074,0.7694,0.938,
0.35,0.7991,0.9568,
0.8792,0.9792]
z_eI=[0.0524,0.0684,0.7649,0.9578,
0.3735,0.8088,0.9769,
0.7128,0.9959]
#································
z_aII=[0.1068,0.2746,0.933,0.9975,
0.8655,0.9765,0.9987,
0.9992,1]
z_bII=[0.0804,0.252,0.8793,0.9853,
0.7141,0.9194,0.9918,
0.9879,0.9977]
z_cII=[0.0938,0.2508,0.8187,0.9541,
0.6566,0.8444,0.9649,
0.9279,0.9751]
z_dII=[0.0294,0.1846,0.7739,0.999,
0.35,0.7979,0.9597,
0.8792,0.9805]
z_eII=[0.0524,0.1779,0.7971,0.9642,
0.3735,0.8502,0.9816,
0.7128,0.9963]
#································
kx=5
ky=5
s=0
input_data=[0,0]
Z={'ai':z_aI,'bi':z_bI,'ci':z_cI,'di':z_dI,'ei':z_eI,'aii':z_aII,'bii':z_bII,'cii':z_cII,'dii':z_dII,'eii':z_eII}
#--------------------------------------------------------------------------------------------
#Routine for input data----------------------------------------------------------------------
for arg in sys.argv:
if 'trigg_bino_B.py'.lower() in arg.lower():
pass
elif arg.lower().split("=")[0]=="x".lower():
input_data[0]=arg.split("=")[1]
elif arg.lower().split("=")[0]=="y".lower():
input_data[1]=arg.split("=")[1]
elif arg.lower().split("=")[0]=="channel".lower():
channel=arg.split("=")[1].lower()
else:
print("Unexpected argument: ",arg)
#--------------------------------------------------------------------------------------------
#Calculating value on input point------------------------------------------------------------
data=[]
result={}
I_method='linear'
#I_method='nearest'
#I_method='cubic'
for n,el in enumerate(x) :
data.append([x[n],y[n]])
result['ai']=griddata(data, z_aI, (input_data), method=I_method)
result['bi']=griddata(data, z_bI, (input_data), method=I_method)
result['ci']=griddata(data, z_cI, (input_data), method=I_method)
result['di']=griddata(data, z_dI, (input_data), method=I_method)
result['ei']=griddata(data, z_eI, (input_data), method=I_method)
result['aii']=griddata(data, z_aII, (input_data), method=I_method)
result['bii']=griddata(data, z_bII, (input_data), method=I_method)
result['cii']=griddata(data, z_cII, (input_data), method=I_method)
result['dii']=griddata(data, z_dII, (input_data), method=I_method)
result['eii']=griddata(data, z_eII, (input_data), method=I_method)
#---------------------------------------------------------------------------------------------
#Output through Stdout
print(result[channel])
if False:
#if True:
grid_x, grid_y = np.mgrid[50:700:2, 50:400:2]
#v_method='linear'
#v_method='cubic'
#print(len(data),len(z))
z_test=float(0)*grid_x
x_test=[]
y_test=[]
z_test_X=[]
for key in result:
spl = griddata(data, Z[key], (grid_x, grid_y), method=I_method)
for n,el in enumerate(grid_x):
for m,elm in enumerate(grid_x[n]):
x_test.append(grid_x[n][m])
y_test.append(grid_y[n][m])
if grid_y[n][m]+60<grid_x[n][m]:
# if float(spl[n][m])>0.0:
z_test[n][m]=(float(spl[n][m]))
# z_test[n][m]=math.log(float(spl[n][m]))
else:
z_test[n][m]=(spl[n][m])
# z_test[n][m]=math.log(spl[n][m])
# z_test[n][m]=0
z_test_X.append(z_test[n][m])
fig, ax = plt.subplots()
data_P={'x_test':x_test,'y_test':y_test,'z_test':z_test_X}
#print(data)
plt.scatter('x_test', 'y_test',c= 'z_test',data=data_P, zorder=0)
#plt.imshow(spl.T, extent=(100,600,0,300), origin='lower')
plt.ylabel('m_Bino [GeV]')
plt.xlabel('m_Wino [GeV]')
cbar = plt.colorbar()
cbar.set_label("effT")
plt.savefig('effT_'+key+'.eps', format='eps', dpi=200)
# plt.show()
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment