The following plots are showing three choices of time delay values between the two pump pulses, used on a stack consisting of 600 layers, or 300 glass layers (refractive index of 1.1, 10 micron average thickness with 20% variation) spaced by air layers (1 micron thick, 20% variation). The large number of layers is used to magnify this focusing effect.
One of the pulse (the one arriving at the stack first) is phase-shaped pixel-wise such that the wave packet inside the stack has constructive interference for the back-travelling field amplitude component. It's difficult to make the focused backscattering even deeper in the stack than as shown below (at around 3mm location in a 5mm stack).
Now by delaying the second pulse, their trajectories can be controlled to overlap at selective locations. This results in selective two-photon pumping at frequencies which are sums of their respective frequencies.
In [35]:
files = ['double-600+30','double-600+20','double-600+10']
wps = {name:pandas.read_csv('io_files/wp-'+name+'.df',index_col=0) for name in files}
L = wps[files[0]].columns[-1]
print "last layer at ", L
def plotwp(filename,asp=0.05,vmax=3e4,title=None):
df = wps[filename]
df.index = [float(i) for i in df.index]
df.columns = [float(i) for i in df.columns]
pyplot.figure(figsize=(18,9))
pyplot.imshow(df,aspect=asp,vmax=vmax,extent=[df.columns[1]/1e6,df.columns[-1]/1e6,df.index[-1]*0.5,df.index[1]*0.5])
pyplot.xlabel('location (mm)')
pyplot.ylabel('time delay (ps)')
#pyplot.title(filename)
pyplot.show()
output = map(plotwp,files)
In [57]:
from stack import *
tps = pandas.read_csv('io_files/interferometry-delayed-600.df',index_col=0)
tps_normalized = deepcopy(tps)
for j in range(1,len(tps.index)+1): tps_normalized.loc[j] = normalize(tps_normalized.loc[j])
def plotdf(df,asp=0.05,vmax=5e-5,title=None):
df.index = [float(i) for i in df.index]
df.columns = [float(i) for i in df.columns]
pyplot.figure(figsize=(18,9))
pyplot.imshow(df,aspect=asp,vmax=vmax,extent=[4.92*df.columns[1]/600,4.92*df.columns[-1]/600,df.index[-1]*0.5,df.index[1]*0.5])
pyplot.xlabel('location (mm)')
pyplot.ylabel('time delay (ps)')
pyplot.title(title)
pyplot.show()
plotdf(tps,title="Inter-pulse Two-photon Intensity")
plotdf(tps_normalized,asp=0.05,vmax=None,title="Above Figure Normalized ")
In [59]:
pyplot.figure(figsize=(18,5))
pyplot.xlabel('location (mm)')
pyplot.ylabel('normalized two-photon intensity')
map(lambda j:pyplot.plot(4.9*tps.columns/600,tps_normalized.loc[j]),range(20,50,5))
pyplot.show()