Design and Documentation (QIE)
From Physics 111-Lab Wiki
Overview of Quantum Interference and Entanglement Lab
This new lab is under development by Berkeley Professor Hartmut Haeffner. We are building a Bell's inequalities experiment and a quantum cryptography experiment first, then may add a Mach Zehnder interferometer.
During the summer of 2011, assembly began led by Segre intern Will Morong, with help from another Segre intern, Bennett Sodergren. Tom Andrade contributed several custom fabricated components, including the BBO mount and the power supply/heat sinks for the single photon detectors. Towards the end of the summer, physics undergraduate Kelsey Johnsen began working with Will and is continuing development with Professor Haeffner. Funding for this experiment has been provided by NSF Grant # to Hartmut Haeffner and a generous donation by Hans Mark.
The experimental apparatus is largely completed. Several important components arrived in the last week Will was here so there has not been time to completely test and debug the setup.
Outstanding issues (8/12/2011)
- We need some sort of beamstop for the blue laser.
- The 'taking data' Labview program is incomplete. It ought to be modified to stop taking data at three points and prompt the user to change the waveplate angles. Will attempted to do this, but found that it continues taking data while the notification appears, for reasons that are unclear.
- The quantum state currently produced by the setup seems to be too decohered (that is, have too many sources of phase difference between eigenstates) to violate Bell's Inequality. Two potential sources of this decoherence: the fact that we are illuminating the whole BBO crystal, and the ~2mm separation between the perpendicular BBO crystals. Hopefully, using the correct laser lens will significantly improve this by shrinking the laser spot and perhaps increasing its power (but see below). If a smaller laser spot allows us to nearly close the detector irises this could help as well.
- The proper lens for the laser is now mounted, resulting in a much narrower beam. For reasons I am not sure of, the beam now does not exit parellel with the axis of the laser diode- instead it skews at a small but inconvenient angle. I've compensated for this right now by taking the laser off the cage assembly, but possibly it would still work with the proper mirror adjustments if the laser was put right next to the first steering mirror. Nonetheless, the new collimating lens has made a large and immediate impact on the experimental results. With the old lens the maximum coincidences observed in the Bell experiment setup and with both detector waveplates set to 0 degrees was about 4 coincidences per second, now it is easy to attain 20. The purity of the state, measured as the ratio of the coincidence counts with the waveplates perpendicular to parallel is also much better, perhaps twice what it was. As I have not really optimized the position of the second fine tuning lens, it is possible that this is short of the best possible counts rates too; Kelsey should make sure to carefully tune this, the orientation of the BBOs, and other settings.
- Despite this, I have not been able to violate Bell's Inequality- the highest value for S I could attain was 1.9. I think there are two explanations for this that seem most likely. The first is that the purity of the state is limited by misalignments of the beam splitters and/or offsets on the waveplates from where I estimated zero degrees to be. The second is that our source is producing relatively mixed downconverted pairs, which if true would most likely be due to the separation between our BBOs. With the four-detector setup and higher count rates, you should be able to separate out these possibilities pretty quickly, and act accordingly.
Blue Laser Beam Path
Our laser is a 405nm Blu-Ray laser diode, run at 100 mA which has a power of about 20 mW at the BBO crystals (a fraction of what it actually produces). This is connected to a cage setup that contains: a short focus lens (4.5mm) to collimate the laser, a long focus lens (40 cm) to finely adjust the focus, a steering mirror, a half waveplate, a 405 nm bandpass filter, the second steering mirror, and then the BBO crystals. The first steering mirror centers the beam on the crystals, while the second one adjusts its angle so that it is the correct 2.5 degrees away from each detector and roughly level with them. For this, the distance between the mirrors should be greater than the distance from the second mirror to the BBO crystals.
The half waveplate will be adjusted using the coincidence counts to give an equal superposition of vertical and horizontal laser light. The BBOs each downconverts a photon with a polarization along a particular axis to two photons of the same polarization (opposite of what the laser was). Our setup has two BBO crystals set with their conversion axes orthogonal to each other, so that one downconverts horizontally polarized light and the other vertical. The downconverted photons from each of these emerge in cones roughly 2.5 degrees off the laser axis. Actually, if you look at other angles you will still see downconverted photons, but in this case the photon pairs come at different angles and energies, while three degrees is the point at which they are degenerate.
Downconverted Photons Beam Path
Because the BBO crystals each emit light of the same energy in cones that overlap, a detector placed in the appropriate position has a nearly equal chance of seeing horizontally and vertically polarized downconverted photons. Moreover, until some sort of measurement of polarization is applied to the system, the two types of photons are indistinguishable. Because of this, according to the rules of quantum mechanics, these photons are in a superposition of the two possibilities- the possibility of a pair of horizontally polarized photons or a pair of vertical ones. This makes the photons entangled. To understand this, it is helpful to think of the double-slit experiment. In that setup, we said that particles arriving at the screen could have come through the left or right slit, so in fact until measured they exist in a superposition of the two. There are two differences to keep in mind, however. The first is that in the double slit experiment, these two possibilities interfere constructively and destructively at different points on the screen, producing fringes, but in our entanglement setup we keep the phase relationship between the paths constant. This is rather like if you imagine shrinking the double-slit screen until it only covers the central bright fringe. The second is that our two possibilities now correspond to two particles, not one, which is why this system is entangled.
Now then, these entangled photons arrive at the two branches of our detector setup. Each branch has an iris, a half-waveplate, a polarizing beam splitter cube, and two lenses at either face of the cube, which are protected by 800nm low-pass filters and feed collected photons through fiber optic cables to a total of four Avalanche Photodiode (APD) single-photon detectors. The irises and filters help to minimize noise from other photons. The waveplates and beamsplitters, meanwhile, allow us to measure each photon of the pair along any polarization axis. The waveplates rotate the photon polarizations, which is equivalent to rotating the detector basis in the other direction, and the polarizing beam splitters do the actual job of separating out the different polarizations- and thus collapsing the quantum state.
Single Photon Detectors and Coincidence Detection
Our APDs can detect anywhere between a few hundred to about 30 million photons per second, and put out a voltage pulse for each one. The pulses from the four APDs pass to the next part of the signal processing chain, the DE-2 FPGA. An FGPA (Field-Programmable Gate Array) is essentially a hardware circuit that is configured by software. Instructions, written in a language called VHDL, are loaded onto the machine that tell it what gates and modules to route incoming signals through, and how to output results. The software we've loaded onto ours allows it to count up the single pulses, count coincidences between any set of detectors within four possible time windows, and stream all of this to our computer's Labview program. The FPGA streams eight registers of running counts to the computer. The first four are the counts on detectors A, B, A' and B' (in that order), and the last four are coincidence counts that are determined by flipping switches on the front of the device. Each register has four switches, one for each detector, and one simply flips the ones for the detectors that one wishes to include in the coincidence count, allowing for 2,3,or4-fold coincidences as desired. To measure Bell's inequality we have the registers set to measure AB, AB', A'B, and A'B' coincidences, respectively. The last two switches on the FPGA toggle between four possible settings for the allowed time window of coincidence. For 0 as off and 1 as on, the settings are:
00- length of incoming pulse (~20ns)
01- roughly 15ns
10- roughly 10ns
11- roughly 5ns
All these time values drift perhaps ns with temperature and how the DE2-115 is feeling today.
Explanation of how the coincidence window settings work: Coincidence detection is just done by putting two or more pulses through an AND gate. If they overlap enough to put out an output pulse (and it appears that no more than 1 ns is required for this), they count as a coincidence. Therefore, narrowing the coincidence window is done by shortening the pulses- if pulses are sufficiently delayed, once they are shortened they will no longer overlap and so will no longer produce a coincidence pulse. The shortening is done by ANDing a pulse with another version of the pulse that is slighly delayed and inverted. The output is zero except for the time between when the first pulse and delayed pulse arrived. Because the delay must be very short, less than even one cycle on the DE-2's 50MHz clock, the delay is a hardware delay. A copy of the pulse is essentially routed through a few buffers, which each take a nanosecond or two, before being inverted and sent through an AND gate with the original.
Running counts from the 8 registers are streamed at 10hz to the computer, which when running the appropriate labview program will add them all up for a user-defined time, display the result, and record data.
Note: VHDL and Labview provided by Mark Beck, beckmk[at]whitman.edu .
Sketch of the quantum state evolution of the system:
Light from the laser: / ψ > = cosφ / Hlas > + sinφ / Vlas > , where φ is some unknown angle.
(laser photons are downconverted into two photons of half the frequency and the opposite polarization).
Passing detector waveplates set to α and β from the horizontal:
+ (cosαsinβ - sinαcosβ) / H1V2 >
+ (sinαcosβ - cosαsinβ) / V1H2 >
+ (sinαsinβ + cosαcosβ) / H1H2 > }
Passing through the beamsplitters acts as a measurement of polarization along the H-V basis, collapsing the state into one of these eigenstates.
Single Photon Detectors
We use the Educational Use Single Photon Counting Module SPCM-EDU CD3375 from Excelitas Technologies (formerly Pacer). This set of 4 avalanche photodiodes (APD) is available only through bulk purchases arranged by ALPhA and AAPT for use in educational settings.
Fiber optic cables to use as input to the APDs were obtained from Pacer/USA, part number SPCM-QC9. Standard fiber optic cables from Thorlabs were not workable due to light leakage.
To power the 4 APDs, we use a Power-One 5V/3A linear power supply with over voltage protection. We enclosed this in a box with fuses and LED indicators (see photo below). We mounted each APD on a heat sink with LED indicator as an extra precaution to avoid damage by overheating if students leave the power on with the fiber optic cable disconnected. The APDs have some circuitry to prevent damage from excess light, but this could be defeated if the unit overheats.
Using the Labview Program
Our Labview program, while currently incomplete, is nonetheless quite simple to use to measure Bell's Inequality. The program is currently located at C:\QIE\QIE_Labview\Bell_rs232(mod).vi . This is a stripped-down version of the Labview program Bell_rs232.vi we got from Mark Beck. The original labview program and its documentation are contained at C:\QIE\CCM\Beck Labview Programs . The documentation of this program contains many descriptions of settings that are now obsolete for our version, but the descriptions of what we still have are all valid.
Here are descriptions of the buttons and displays on our Labview program:
8 Thermometers with counts, labelled A, A', B, B', AB, A'B, AB', A'B': these are the counts the program reads from the DE2-115. The first four are the singles counts on each detector, the second four are coincidences between detectors. The labels on the second four are only valid if the switches on the DE2-115 are set to display the corresponding coincidences; if we are only doing Bell inequalities there is no need to ever change these anyway.
E and E-meter: This automatically calculates E for the given four coincidence counts. It simply adds the fifth and eighth registers, subtracts from this the sixth and seventh, and then divides all this by the sum of these four counts. If the two half waveplates are set at one of the correct pairs of angles for Bell Inequality testing, this gives you one of the four values that are added together to get S. For reference, the four angle pairs are E(-45,-22.5), E(-45,22.5), E(0,-22.5), E(0,22.5), with the second one negative. These are polarization angles, not waveplate settings.
Subtract Accidentals and Coincidence Resolution: Subtract accidentals, if turned on, subtracts the statistical number of chance coincidences from the four coincidence counts, calculated using the individual counts on each detector and the coincidence resolution (or time window), entered in the four numerical inputs.
Two things to keep in mind if you want to turn this on:
1. You should probably measure your coincidence windows first, since they have a tendency to drift.
2. Since accidental coincidences can only reduce your S-value, if you are already comfortable violating the inequality this is probably not worth it.
Counter Port: which computer port you are looking for data over. Should be set to COM1.
Status: what the program is doing. Pretty much obsolete now, because when it is running the answer is always 'reading counters.' A holdover from the original program, which would also stop reading data sometimes to move motors that controlled the waveplates.
Data taking parameters: these are the settings for when you enter data taking mode, in which the program writes all the counts to a text file. The program will count for the input time, and the input number of samples, over each of the four angle combinations. This means the total time taken is 4*time*samples. Clicking the Take Data button launches the data recording window and starts the automated process of writing the data file. Data is stored under 'C:\QIE\CCM\Data\Date Recorded\Time Recorded.txt' .
NOTE: While the front, 'adjusting' Labview program is completely functional, the data recording sub-vi is *not complete* (as of 08/11//11). It will record data and write it to a file, formatted pretty nicely, but will not pause for you to change the waveplate settings, making all of the statistics incorrect. This should be solved by either fixing the prompt to change waveplate settings, so the program is not recording data in the background while this notification pops up, or just having it record data for one value of E on each run, not calculate S for you, and perhaps adding in a field for the students to note which angles this data is for so they can keep track. The first solution is a little more elegant (and, for better or worse, easier for the students), but the second one would probably be an easier fix and still work perfectly well.
Known error: occasionally, the labview program will crash when you try to run it, complaining that it cannot access the VISA port or the connection timed out, and also annoyingly opens up the file for the close-session sub-vi. Usually, it will work if you just try running it again. It will also give this error every time you try to run the program with the DE2-115 turned off.
Sample Questions for Students, with Answers:
1. A half-waveplate is a slice of bifringent crystal that does the following: incident light that is perpendicular to some preferred axis (the optical axis) is passed through unchanged, while the component of the light that is parallel is delayed by 180 degrees, or effectively undergoes a sign change. Given this, what is the output when light is incident on a waveplate whose optical axis is θ degrees rotated from the light polarization? Given this, if you wish to change horizontally polarized light into light that is in an equal superposition of horizontal and vertical- that is, polarized at 45 degrees relative to the horizontal- where should you set your waveplate?
-For a waveplate rotated by θ light polarization is rotated by 2θ. So, a waveplate at 22.5 degrees above the horizontal will rotate horizontally polarized light to 45 degrees polarized light.
2. Four standard measurements we use to see what state our light is in are: N(0,0), N(0, 90), N(45, 45), and N(90, 90). This is the number of coincidences with the two detector waveplates, α and β, set to rotate polarization by the given amount. Note that these are *not* the actual waveplate settings (see previous question). If we know the system is generating 1000 entangled pairs per second, what values do we expect to see at each of these settings?
Of course, the real use of these measurements is when our downconverted photons aren't in the ideal entangled case. Let's look at two important cases of this. Suppose that our first half waveplate, θ is slightly off from its correct value, and as a result our downconverted pairs are more likely to be horizontally polarized than vertically- for example, instead of being in the state they are now in the state . How do we expect each of these measurements to change?
Now, suppose instead that our setup is producing vertically and horizontally downconverted photons in equal numbers again, but they are no longer entangled- that is, it is emitting light that is a mix of 50% pairs of horizontally polarized photons, and 50% pairs of vertically polarized photons. What would you now expect from each of these measurements?
- Standard case: N(0,0)=500, N(0,90)=0, N(45,45)=500, N(90,90)=500. Theta off: N(0,0) goes up, N(90,90) goes down, N(0,90) stays at zero, and N(45,45) stays at 500. No entanglement: all same except N(45,45), which drops to 250.
3. Our coincidence counting works by looking for two photons arriving at two detectors within a given time window, which on the strictest setting is about 5 ns. Of course, there is some background counts on each detector, and every now and then two of those counts will come close enough together to register a "false" coincidence. Determine the formula for the expected number of these coincidences, in terms of the number of counts on each detector, the time window, and the time of observation. If each detector gets 1000 background counts per second, what frequency of background coincidences do you expect on the strictest time setting? How does this scale if you double the amount of background light (which doubles the counts on each detector)?
- 2*(time window)*(frequency 1)*(frequency 2)*(ob. time) So, for a 5 ns window and 1000 counts on each, get .01 counts per second. Scales quadratically, so get 4x false coincidences when background light is doubled.
4. What is the error on each coincidence measurement?
- Because the photons we are measuring are correlated photons, unlike the background photons, we expect they will have a linear relation to the laser power: twice as many laser photons mean twice as many downconverted pairs, and thus twice as many coincidence counts. Because of this, the error on our coincidence counts obeys the same rules as the error on our laser's photon output, which is of course just a Poisson distribution. So, the expected error on each coincidence count is just the square root of the value counted.
5. Suppose that as you start to preform your experiment, two of your friends come racing into the room to see what you are doing- one through the door, and the other crashing in the window. And I mean racing- both are traveling at speeds of .9999c (in opposite directions) when they enter. Unfazed, you explain the experiment and how it works, but once you start to describe how the entanglement collapses when measured one of your friends cuts you off.
"That's all fine," he says, "there's just one thing: I saw you running those photon pairs as I arrived (he's quite a talented fellow), and the photons going to detector A were always about 19 ns delayed from the ones going to detector B. So it was the measurement of those photons that collapsed the entangled state, right?
Before you can answer, your other friend jumps in:
"You mean the ones going to detector B were delayed, right?" she asks, puzzled. "That's what I saw."
How do you reconcile what your friends saw? What implications does this have for how entanglement works?
Viewing/Loading a Program on the DE2-115
Start by double-clicking on the main program file for our program, which is called "RS232coincidencecounter.qpf". This is currently found at C:\QIE\CCM\DE2_RS232_CCU_Q72\RS232coincidencecounter.qpf on the computer in the QIE room. This should open Quartus II, the software used to edit, compile, and load programs onto the DE2-115. Once Quartus II launches, you should see a blank main screen, and a few smaller windows. In the top left under Entity our FPGA is listed, the Cyclone IV E, and below that the icon for "RS232coincidencecounter". Double-clicking on this brings up the VHDL code for the top-level program, which can be inspected. This file also references 7 smaller auxiliary files, which are listed in the "files" tab just below that window.
Once any changes have been made, the program can be compiled by clicking on the little purple triangle named "Start Compilation" at the center of the upper toolbar. The compilation and some optimizations will run, and it will either compile successfully or return an error. If it complies successfully you may still get a ton of warning messages (ie around 900); most of those will be of no consequence.
If you modify inputs or outputs, you may need to assign or change pin settings on the DE2-115. This controls where the program's input and output signals are actually expressed on the chip- for example, the input signals for the detector counts are wired to four pins on the 40-pin header, while the output signals for the switch indicators are wired to the 17 red LED lights so that they show when the switches are flipped. This is located under Assignments>Pin Planner. Here there is a great big list of all the inputs and outputs on the DE2-115. All of them will be shown as "Assigned", meaning they have a name/signal attached to them, but the vast majority will be listed as having a direction of "unknown", which means they are not actually used by our design. To assign a pin, first look up the name of the particular input or output you want. These are listed and described in the DE2-115 user manual, which is on the CD that came with the device or on the QIE computer at "C:\QIE\References\DE2_115_User_manual.pdf". Once you look up this pin, find it in the Pin Planner window and then either change the name of the pin to the name of the signal you want wired to it, or (usually the better choice) go back to your code and change the name of your signal to be the same as the name of the pin it should be connected to. Once all new pin assignments are made you should recompile, because Quartus checks during the compilation process to see if pin assignments are valid.
Now you want to load your program onto the DE2-115. Using the included USB cord, plug the DE2-115 into the computer, and turn it on if it is not already. Use the port labeled 'Blaster' on the DE2-115, next to the power button. Next, go to the menu choice Tools>Programmer. The settings should be as follows: Hardware Setup: USB-Blaster [USB-0], Mode: Active Serial Programming, File: C:\QIE\CCM\DE2_RS232_CCU_Q72\RS232coincidencecounter.pof (or whatever new file path you've created), Device: EPCS64, and 'Program/Configure' is checked. Next, find the switch SW19 on the bottom left of the DE2-115, with settings labeled 'Run' and 'Prog,' and flip it to 'Prog'. Press 'Start' on the computer. Once the program has finished loading, flip SW19 back to 'Run,' disconnect the USB cord, and turn the DE2-115 off and then on again. The new program should now be loaded successfully onto the DE2-115, and it should remain configured with this program until changed by the user.
For more information on how to use the DE2-115, the resources "DE2-115 User Manual" and "Quartus II Introduction Using VHDL Design" are both very helpful. Both are found on the CD that comes with the DE2-115, or on the QIE computer in C:/QIE/References. For more information about our specific program, there is a very comprehensive explanation on the original version entited "Lord_Thesis", also in the references folder. Note however, that a few parts of this are outdated, as we have simplified the pulse shortening mechanism. In particular, ignore anything involving PULSE_ANDERs, dummy signals, or post-compilation editing, and refer to the comments in the code instead, particularly the parts referring to "attribute syn_keep" and components LCA_1 to LCD_1. This also contains, in an appendix, a good brief explanation on how to load a program onto the DE2-115.
Procedure for Bell's Inequality
Once the system is properly set up and aligned, testing Bell's Inequality is quite simple, if somewhat tedious. The Labview program, if completed, would do nearly all the calculation work for you, but in this explanation I will assume you just have the raw data and work it out from there.
We will be measuring a quantity called S. S cannot be greater than 2 for a system that obeys local realism, but according to quantum mechanics can be as high as . Thus, any result that is greater than 2 and not due to chance (ie at least a standard deviation or two away) can be considered a violation of Bell's Inequality.
S consists of four measurements of quantities called E, which in turn are each composed of four coincidence measurements at particular angle settings. So, S takes a total of 16 measurements. These are best organized in a chart, such as the example below. Note that all angles here are in polarization degrees, *not* the settings for the actual waveplates:
For the first E you will use the four values labeled 'E1,' and likewise for the other three. If you look at each of these sets as a 2x2 submatrix, the numerator of E is the diagonal terms minus the off-diagonals, while the denominator is the sum of all four terms. For example, to find the first E, which I'll call E1T, calculate E1T = (43 + 44 - 7 - 6) / (43 + 44 + 7 + 6) = 0.74. The formula for S is then S = E1T - E2T + E3T + E4T. For the sample data, S = 0.74 - ( - .75) + .65 + .67 = 2.81, a nearly maximal violation. The expected value for each E in the ideal case is (or for E2T), but more realistically if you get magnitudes of about .5 to .6 for each you are in pretty good shape.
A Quicker Estimate of S
It is possible to estimate S using only 4 measurements. This follows the procedure from Dietrich and Mitchell, "Entangled photons, nonlocality, and Bell Inequalities in the undergraduate laboratory" (see references). By measuring N(0,0), N(90,90), N(0,90), and N(45,45), one can determine the values for four parameters, A, C, θl, and φm. With these, you can follow their formula for N(α,β) (formula 12) to compute the expected value for each coincidence and thus for S. With the simplification of , which should always be possible by adjusting the laser waveplate, this can be greatly simplified to:
Using this formula, it is straightforward to determine things like minimum A/C ratios or values of φm needed to violate the inequality, etc.
Sources of info about experiments and apparatus
Enrique Galvez in the Physics and Astronomy Department at Colgate developed 5 lab exercises in quantum mechanics with funding from two NSF CCLI grants for advanced lab courses. His web site has links to lab writeups for each experiment, and a "lab manual" (first link under "Free Downloads") that provides detailed instructions on building the experiments. This document lists a variety of options for lasers, other optical components, and detectors with discussion of their pros and cons.
Brett Pearson in the Department of Physics and Astronomy has built several single-photon experiments at Dickinson and ran an ALPhA Immersion workshop in the summer of 2010 on these experiments. He has provided a parts list and detailed instructions, the versions here dating from spring 2010. See the Pearson and Jackson (2010) paper below in the reference section for details on their experiments.
University of Rochester
An ongoing project funded by NSF CCLI grants to Carlos Stroud and Svetlana Lukshova has developed four single-photon experiments suitable for the physics advanced lab. Summaries of the labs, student manuals, and examples of student lab reports are available on their Optics and Quantum Information Laboratory web site.
Mark Beck and Rob Davies developed a set of experiments, described at Beck's web site. Some inexpensive coincidence counting units are described (see also publication on this in the references section). In addition to student lab manuals, there is a complete parts list and some LabVIEW vis.
University of Chicago
Van Bistrow and Mark Chantell built a PQM experiment for their Physics advanced lab course in 2009-2010 with advice from Enrique Galvez at Colgate. It is built on a 2' x 3' optical table set on inflatable donuts to provide a little isolation. They compiled a parts list for us in February, 2011, that is posted here. Here is the layout and some photos of their setup.
- C.H. Holbrow, E. Galvez, and M.E. Parks "Photon quantum mechanics and beam splitters", Am. J. Phys. 70(3), 260-265 (2002)
- D. Dehlinger and M.W. Mitchell, "Entangled photon apparatus for the undergraduate laboratory" Am. J. Phys, 70(9),898-902 (2002).
- D. Dehlinger and M.W. Mitchell, "Entangled photons, nonlocality, and Bell inequalities in the undergraduate laboratory, Am. J. Phys. 70(9),903-910 (2002).
- E. J. Galvez, C. H. Holbrow, and M. J. Pysher, J. W. Martin, N. Courtemanche, L. Heilig, and J. Spencer, "Interference with correlated photons: Five quantum mechanics experiments for undergraduates", Am. J. Phys. 73,127-140 (2005).
- D. Branning, S. Bhandari, and M. Beck, "Low-cost coincidence-counting electronics for undergraduate quantum optics", Am. J. Phys. 77(7), 667-670 (2009).
- E.J. Galvez, “Undergraduate laboratories using correlated photons: experiments on the fundamentals of quantum physics,” in Invention and impact: Building excellence in undergraduate science, technology, engineering and mathematics (STEM) education, AAAS, pp 113-118 (2004).
- B.J. Pearson and D.P. Jackson, "A hands-on introduction to single photons and quantum mechanics for undergraduates," Am. J. Phys. 78(5), 471-484 (2010).