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)


last layer at  4915828.254442589






Below shows the aforementioned two-photon signal intensity, as a function of location inside the stack, as the sum of the two pulses's frequencies ("inter-pulse" two-photon intensity), and is scanned across a continuous range of delay time values

The longer the delay, the closer to the front of the stack the two pulses meet.

A normalized plot shows the shapes of these two-photon signal intensities.

And snapshots of two-photon signal intensities at a few delay time values are shown at the very bottom.

</font>


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()