Detection and Projections

A beamsplitter is a partly reflective, partly transmissive mirror that splits up an incoming photon, as depicted here.

beamsplitter

Assuming that the beamsplitter is equal (50% transmission and 50% reflection) and that we have only a single photon in one of waveguides impinging on the beamsplitter, the photon will go to detector plus 50% of the time and detector minus the other 50% of the time. This can be modeled in WaveguideQED.jl using LazyTensorKet and Detector. We start by creating the two input waveguides.

Background Theory

Two photons impinging on a beamsplitter is a classic example of destructive and constructive interference. If the two photons are indistinguishable, they will always appear in pairs on the other side of the beamsplitter. That is the following scenario:

beamsplitter

However, what happens if the two photons have a slight mismatch in frequency or their temporal distribution, and how do we model this? Assuming the beamsplitter is 50/50 the beamsplitter transformation is[1] : $w_a \rightarrow (w_c + w_d)/\sqrt(2)$ and $w_b \rightarrow (w_c - w_d)/\sqrt(2)$, where $w_k$ is the annihilation operator for waveguide $k=\{a,b,c,d\}$. A one photon continuous fockstate in waveguide a and b with wavefunction $\xi_a(t)$ and $\xi_b(t)$ has the combined state:

\[\begin{align*} \ket{\psi}_{a,b} &= \ket{\psi}_a \otimes \ket{\psi}_b = \int_{t_0}^{t_{end}} \mathrm{d}t \ \xi_a(t) w_a^\dagger(t) \ket{0}_a \otimes \int_{t_0}^{t_{end}} \mathrm{d}t \ \xi_b(t) w_b^\dagger(t) \ket{0}_b \\ & \int_{t_0}^{t_{end}} \mathrm{d}t \int_{t_0}^{t_{end}} \mathrm{d}t' \xi_a(t)\xi_b(t') w_a^\dagger(t) w_b^\dagger(t') \ket{0}_a\ket{0}_b \end{align*}\]

Using the beamsplitter transformation, we thus have the following state after the two photons have interfered with the beamsplitter:

\[\begin{align*} \ket{\psi}_{a,b} &\xrightarrow[]{BS} \frac{1}{2} \int_{t_0}^{t_{end}} \mathrm{d}t \int_{t_0}^{t_{end}} \mathrm{d}t' \xi_a(t)\xi_b(t') (w_c^\dagger(t) + w_d^\dagger(t)) (w_c^\dagger(t') - w_d^\dagger(t')) \ket{0}_a\ket{0}_b \\ &= \frac{1}{2} \int_{t_0}^{t_{end}} \mathrm{d}t \int_{t_0}^{t_{end}} \mathrm{d}t' \xi_a(t)\xi_b(t') \left [ w_c^\dagger(t) w_c^\dagger(t') + w_d^\dagger(t)w_c^\dagger(t') - w_c^\dagger(t)w_d^\dagger(t') - w_d^\dagger(t)w_d^\dagger(t') \right ] \ket{0}_c\ket{0}_d \\ &= \frac{1}{2} \left ( W_c^\dagger(\xi_a) W_c^\dagger(\xi_b) \ket{0}_c - W_d^\dagger(\xi_a) W_d^\dagger(\xi_b) \ket{0}_d + \int_{t_0}^{t_{end}} \mathrm{d}t \int_{t_0}^{t_{end}} \mathrm{d}t' \left [ \xi_a(t)\xi_b(t') - \xi_a(t')\xi_b(t) \right] \ket{1}_c\ket{1}_d \right) \end{align*}\]

where we introduced $W_{c/d}^\dagger(\xi_a) W_{c/d}^\dagger(\xi_b) \ket{0}_{c/d} = int_{t_0}^{t_{end}} \mathrm{d}t \int_{t_0}^{t_{end}} \mathrm{d}t' \xi_a(t)\xi_b(t') w_{c/d}^\dagger(t) w_{c/d}^\dagger(t') \ket{0}_{c/d}$. $W_{c/d}^\dagger(\xi_a) W_{c/d}^\dagger(\xi_b) \ket{0}_{c/d}$ thus corresponds to both photons going into the same direction. It is also evident that if $\xi_a(t)\xi_b(t') - \xi_a(t')\xi_b(t) = 0$ then we will have no photons in waveguide c and d simultaneously. This condition is exactly fulfilled if the photon in waveguide a is indistinguishable from the photon in waveguide b. This also means that if the photons ARE distinguishable, we will start to see photons occurring in waveguides c and d simultaneously. All this and more can be simulated in the code, and in the next section, we walk through how to set the above example up in the code.

Beamsplitter and detection in WaveguideQED.jl

In WaveguideQED.jl we create the two incoming photons in each of their respective waveguides and define the corresponding annihilation operators:

times = 0:0.1:20
bw = WaveguideBasis(1,times)
ξfun(t,σ,t0) = complex(sqrt(2/σ)* (log(2)/pi)^(1/4)*exp(-2*log(2)*(t-t0)^2/σ^2))
waveguide_a = onephoton(bw,ξfun,1,10)
waveguide_b = onephoton(bw,ξfun,1,10)
wa = destroy(bw)
wb = destroy(bw)

We then combine the states of waveguide a and b in a lazy tensor structure (tensor product is never calculated, but the dimensions are inferred in subsequent calculations):

ψ_total = LazyTensorKet(waveguide_a,waveguide_b)

Now we define Detector operators, which define the beamsplitter and subsequent detection operation. In the following $\mathrm{Dplus} = D_+ = \frac{1}{\sqrt{2}}(w_a + w_b) $ and $\mathrm{Dminus} = D_- = \frac{1}{\sqrt{2}}(w_a - w_b)$

Dplus = Detector(wa/sqrt(2),wb/sqrt(2))
Dminus = Detector(wa/sqrt(2),-wb/sqrt(2))

The Detector applies the first operator (wa/sqrt(2)) to the first Ket in LazyTensorKet (waveguide_a) and the second operator ($\pm $ wb/sqrt(2)) to the second Ket in LazyTensorKet (waveguide_b). The probability of detecting a photon in the detectors can then be calculated by:

julia> p_plus = Dplus * ψ_total0.0
julia> p_minus = Dminus * ψ_total0.0

The returned probabilities are zero because there is no states that result in only ONE click at the detectors. Instead, we have to ask for the probability of detecting TWO photons:

julia> p_plus_plus = Dplus * Dplus * ψ_total0.4999999999999996
julia> p_minus_minus = Dminus * Dminus * ψ_total0.4999999999999996

Notice that we here asked what the probability of having a detection event in detector plus/minus and, subsequently, another detection event in detector plus/minus is. The output was $50\%$ for both cases reflecting the above calculations where we would expect the two photons always come in pairs. As a consequence, the probability of having a click in detector plus and then in detector minus (or vice versa) is given as:

julia> p_plus_minus = Dplus * Dminus * ψ_total0.0
julia> p_minus_plus = Dminus * Dplus * ψ_total0.0

As expected, the resulting probabilities are zero. If we instead displace the photons in time so that one is centered around $t = 5$ and another around $t = 15$ we get:

julia> waveguide_a = onephoton(bw,ξfun,1,5);
julia> waveguide_b = onephoton(bw,ξfun,1,15);
julia> ψ_total = LazyTensorKet(waveguide_a,waveguide_b);
julia> p_plus_plus = Dplus * Dplus * ψ_total0.24999999999999978
julia> p_minus_minus = Dminus * Dminus * ψ_total0.24999999999999978
julia> p_plus_minus = Dplus * Dminus * ψ_total0.24999999999999978
julia> p_minus_plus = Dminus * Dplus * ψ_total0.24999999999999978

Thus we have an equal probability of detection events in the same detector and opposite detectors since the two photon-pulses are temporarily separated.