See photos!
See attached files!
For the Thermal Shields, I added some new coldheads, added radiation to the copper bar assuming it sees the bath everywhere, and added some code to evalute time to heat with some heaters. This last bit of code is super wierd and non-deterministic, so don't trust the graphs if they don't look physical.
I also wrote some brief code calculating what kind of thermal gradients the beamsplitter can support given some laser power is absorbed by the optic. A 12.5 K/W accross a 10 mm long, 2 mm side length square spoke. Assuming 0.1 W is absorbed, this is 1.25 K.
One consideration: will one part of the optic heat up more that another due to radiation from an inner shield at 242 K? I believe the answer is no given a uniform optic thickness, since both power abosrbed and thermal mass are proportional to area. This ignores how the beam splitter holder reduces how much certain parts of the beamsplitter see the inner shield. Because the total power on the optic is 0.2 W, this approximation doesn't need to be examined further and we should only worry about the laser power's effect on introducing gradients.
I added a copper bar that goes from the coldhead to the breadboard which holds the beamsplitter. I also added a much more realistic model of the cryocooler with a variable lift (the amount of power than can be removed from the bar as a function of temperature) After modeling different coldheads and layers of shields, it is quite apparent the time to cool to 123 K doesn't really depend on how much shielding there is unless the cryocooler lift is barely more than the power lost to the bath. This makes sense analytically.
Depending on the amount of shielding, there are between 4.3 W and 8.7 W lost to the bath at equilibirum.
Attached is a table with different coldheads and levels of shielding. {}:{}:{} means that coldhead couldn't cool the beamsplitter to 123 K. Note: values might not exactly line up due to changing parameters. I have some uncertainty to picking an emissivity depending on context. Luckily this level of accuracy isn't needed.
Next steps are getting quotes on the thermal shields and coldheads. We should get a coldhead with at least 20 W of lift near 123 K.
I have been working in Maria's Lab with Boris and Andrew to get familiar and create updates for the new machines they have for measuring SNSPD characteristics.
Here are the details of our work so far and the first measurements we have done on the currently loaded SNSPD's.
Basic set of procedures:
First calibrating the fibers loss must be done Unplug from the SNSPD DIFF-2/3 fiber port
Use:
Python PhotonRateYokogawa.py -CAL
Then perform the fiber switches as directed in the code Follow on screen instructions to swap between fibers 3+ times Add the new "cfactor" variable to the yaml file (PhotonRate.yml) under "cfactor" Plug the cable back into the DIFF-2/3 fiber port To set a photon rate using the script
Use:
Python PhotonRateYokogawa.py -P
For PCR Measurements: Use PCR Yaml to setup the start and end bias ramp values Use the KEYSIGHT_55320A.yaml to setup the ramping threshold values Use the IsolatedVSourceServer.yaml to setup the diff output being used Set the min and max bias current levels and threshold levels in the yaml's by manually adjusting the bias current while checking the spikes on an oscilascope
Once all setup Use:
Python pcrCurveVarint.py
This will allow us to run the ramping threshold levels for the photon counter For Dark Count Measurements Keep almost all variables the same but we will take out the fiber for the laser and cap the SNSPD port, then we will increase the integration time for each bias voltage step Run the same code: Python pcrCurveVarint.py
Code for running these scripts will soon be uploaded to the gitlab as we finalize our changes.
Attachment 1: raw plots for readout from DIFF2 and DIFF3 for photon counts.
Attachment 2: Dark Count plot for DIFF2 and DIFF3 (port is covered with a cap)
Attachment 3: Efficiency plot (difference of counts - dark counts divided by total photon input)
Attachment 4: SNSPD pulse response from oscilloscope. Red line is the threshold used for triggering a count on the counter.
Next Steps:
1. Calculating uncertainties and measuring uncertainties for the new system (power meter, laser, attenuators and optical switch).
2. Redo the plots and add the uncertainties to the data.
3. Place GQuEST SNSPD into dark box and cryostat and take Dark Counts measurement
4. Characterize efficiency of the GQuEST SNSPD
Photon Counting for GQuEST presentation given on 9/6/2023 to Marias group.
Talk went well please let me know if you need any images from the slides.
PDF is attached, here is the link: Photon Counting for GQuEST
Attached are some GQuEST SolidWorks Photos
Picture of the cavities.
Using simple trig, assuming there is some temperature gradient accross the beam splitter mount:
Delta Theta/Delta T = alpha*L/h, where alpha is the coefficient of thermal expansion, L is the length of the beam splitter in the beam axis, and h is the distance accross which the temperature gradient exists.
For the aluminum beam splitter, alpha = 2.34*10^-5 at RT and is a bit below that value near 123 K, L = 1.25 in, and h = 4.5 in.
This gives Delta Theta/Delta T = 6.5 urad/K
I calculate the conduction and radiation from my SolidWorks assembly to figure out how much power our cryostat needs and how long it will take to cool everything.
All units are metric.
There are 4 seperate elements with (a constant temperature within the element) and 7 conduction pathways. The 4 elements are the breadboard+beamsplitter mount (labeled "bread"), the inner shield (labeled "inner"), the outer shield (labeled "outer"), and the vacuum chamber (labeled "bath"). The 7 pathways are the following
bread+bath: conduction and radiation
bread+inner: radiation
inner+outer: radiation
inner+bath: conduction
outer+bath: conduction and radiation
I use SolidWorks and a little bit of analytic calculation to figure out the conductances.
After calculating the coupling coefficients, I set up 3 ODEs to get the time dependence. I have some code to give me the exact time it takes to reach 123 K. From the equilibrium results, I calculate each pathway's power and the total power lost to the bath.
At equilibrium, 4 W are lost to the bath. This is the minimum power required to cool the beamsplitter, but we are going to need more to cool it in a reasonable timeframe.
If we go with a 25 W cryohead, which I think is very possible between 123 and 294 K, it takes nearly 8 hours to cool the beamsplitter and breadboard. It takes a little over a day for the inner shield to reach equilibrium and 2-3 days for the outer shield to reach equilibirum.
Using the Pfeifffer Vacuum Calculator, I am evaluating what pump can handle the entire 0.5 m GQuEST Vacuum Setup.
Parameters:
Calculated volume: 0.145 m³
Calculated surface: 2.6 m²
Desorption rate: 1e-9 mbar*l/(s*cm²)
Leak rate: 3e-9 mbar*l/s
Using a 6 m3/s scroll through a 1 m, 50 mm diameter tube, it should only take ~7 minutes to reach 1 Torr.
Using a 300 L/s turbo through a DN 100 connected directly to the source, it will take around 30 hours to reach 10-8 Torr.
Using a 80 L/s turbo through a DN 63 connected directly to the source, it will take 4 days to reach 10-8 Torr.
Unless the 300 L/s turbo were prohibitively expensive, I would therefore advocate for a 6 m3/s scroll and a 300 L/s turbo.
Dropping a couple resources here for mode matching, at least how I've done it in the past. Looks like we will need to do some of these calculations in the next few weeks so if you haven't done it I would start here.
1. Calculate the approximate beam waist position. Attached is an example of that. Use a beam profiler to measure the beam size at multiple locations and this script will calculate the approximate beam waist position.
2. Download some form of mode matching tool. Lee has one he prefers, I use this: http://www.sr.bham.ac.uk/dokuwiki/doku.php?id=geosim:jammt It's called jaMMT (just another Mode Matching Tool).
3. Input your calculated waist position, the lenses you have available for mode matching, the preferred location of the new waist, etc, and this program will do the rest. Happy to show people how to do this in more detail in person. It is a pretty easy program to use though.
Happy Mode Matching.
Brief calculation to evaluate the displacement of a mass from sound waves. All units are metric except Lp, which is the sound pressure level in db. I assume F = d * m * ω2
[Ian, Sander]
We attempted to measure seismic noise in various locations using the Wilcoxon accelerometer. We used an AlphaLab LNA10 (see photo) to amplify the signal from the accelerometer, and acquired the data downstream of the amplifer with the Moku:Go.
The problem we found is that the amplifier seems to introduce noise in the measurement that obfuscates the signal from the accelerometer. This can be seen by comparing spectra obtained with the accelerometer connected through the amplifier vs. having just the amplifier connected (i.e. having nothing connected to the amplifier input). The measured spectra in the two cases are almost indistinguishable at amplifier gains of 10 and 100.
The attached spectra are for measurements with gain=1000, where the red traces (input 1) are the measurements of the channel with the amplifier, and the blue trace (input 2) is a reference measurement of an unconnected Moku input. The faded red trace is with the accelerometer connected through the amplifier, the bright red trace is with just the amplifier. The accelerometer was oriented vertically (z-direction).
Further indication that the LNA10 introduces signifcant noise is found by comparing the spectra here to those in entry 11284, which have very different frequency dependences. Those spectra were taken without an amplifier (I think?).
The spectra in entry 11284, was taken with the LNA10. We were certainly seeing more noise than we were on Friday but what I found to be so strange was that there we could not get consistent measurements. For example in the swing space we found that when the Moku Go was being run off my laptops power there was a massive 60Hz line but when we plugged the Moku in the line was gone. And it was not consistent. if we unplugged the Wilcoxon 731A then plugged it back in we would get a different reading. If we power cycled the Moku we would get a different reading. Nothing was consistent. I would think that this might be a bad electrical connection but we checked them all and they seem to be fine. It might be worth it to get a 2-pin MIL-C-5015 connector, which is what the Wilcoxon uses just to be sure but I'm not sure why we are getting such inconsistent measurements.
[Ian, Sander, Torrey]
We are trying to take seismic data for buildings on campus. To do this we have borrowed a Wilcoxon 731A from the Cryo Lab. To calibrate this device we took it to the 40m and took measurements next to their seismometer doen the X-arm on Friday around 6 pm.
We first, for the Wilcoxon, we used the channel from elog 17717 that was not being used. In the image of the panel in elog 17717 we tried channel 5, with the corisponding channel name C1:X01-MADC0_EPICS_CH28 but it was a slow channel.
After struggling for a few hours we asked Koji if there was a fast channel we could use, and he lent us channel 4 on that board The channel was C1:ALS-X_SLOW_SERVO1_IN1, the X, Y, Z channels used for the 40m's seis were C1:PEM-SEIS_EX_Y_IN1 etc.. We then placed the borrowed wilcoxon 731A accelerometer (manual here) next to the one at the 40m. We used the one located at the X End of the 40m. Data was taken using diaggui of the power spectra of our seismometer and the x, y, and z directions of the 40m's. In addition the cross power spectrum and coherence between our seis and x,y,z of the 40m's. Rough plots of all this data can be found in the attached files as well as all of the raw data. Note we also took a 200s time series of the data just in case.
This should allow us to take seismometer data for around the swing space. Before we do we should double check what any additional gains the channel we plugged into is obtaining before readout.
Update 30 seconds after posting this: Apparently the x end seismometer at the 40m is not calibrated to anything. This data will need to be retaken.
Apparently the seismometer that we calibrated against was not itself calibrated. It was advised that we use the seismometers at the vertex. I looked for them when we were origionally doing this. I will have to ask someone where they are.
We may take data today and do the caibration later.
Here is python code as a wield.pytest that generates the Geontropic noise model from arXiv:2209.07543 [gr-qc, physics:hep-ph, physics:hep-th].
You'll need to install wield.utilities and wield.pytest to run. You can just drop T_GQuEST_concept.py and GQuEST_models.py in a folder and call pytest. The output is
Total power displacement 2.3306928419630585e-18
Effective_BW: 57.28 MHz by c/L 0.954696717877494
Effective_BWsq: 14.68 MHz by c/L 0.24468351704291535
Frequency of Max: 11.29MHz
3db_bandwidth: 12.70MHz
Total power displacement2 2.3306928419630585e-18
3db points: [[ 5.49516136]
[18.19782777]]
Effective_BW: 57.28 MHz by c/L 0.954696717877494
Effective_BWsq: 14.68 MHz by c/L 0.2446835170429154
GQuEST_model.pdf Shows the model with and without the IR cutoff. It also includes the integrated RMS. Note that the power spectrum falls off only as 1/F, so has a logarithmic divergence. We presume this logarithmic divergence gets cut of a c/w, for c the speed of light and w the beam radius. That's at about 100GHz for GQuEST's beam. That divergence is physically important, but not practically measurable.
GQuEST_model.pdf shows the same plot, but with overlayed axes to allow easy comparisons with the units of the Geontropic noise model paper. The code shows how to set up the plots for such fancy axes.
there are also plots showing the model in the Holometer.
Both of the plots also show that there is a reasonably close analytic formula for the noise. In python it is
Omega = 2*np.pi * F
Omega_SPEC = c_m_s/(2**0.5*L)
Canalytic = 2 * Cmax * Omega**2 * Omega_SPEC / (4 * Omega_SPEC**4 + Omega**4 - Omega**2 * Omega_SPEC**2)**0.5 / (Omega**2 + Omega_SPEC**2)**0.5
Which can be updated to be
\(\Omega = 2 \pi f\)
\(\newcommand{\obar}{\overline{\Omega}}\)\(\obar = \frac{c}{L}\)
\(S_L(f) \approx \frac{2 \Omega^2 \obar}{\sqrt{\Omega^4 - \frac{1}{2}\Omega^2 \obar^2 + \obar^4} \sqrt{2\Omega^2 + \obar^2}} S_L(f_{\text{pk}})\)
and Cmax is the maximum of the power spectrum. The above are in power, not amplitude, units.
I'll edit or add a comment with the Latex form once I have it.
Also use matplotlib version 3.5.2. code does not graph on some of the most recent versions
The problem with matplotlib is in the wield utilities package. In wield.utilities mplfigb line 420 and 421
The parameter "b" is deprecated in ax.grid (See Deprecations). It needs to be changed to "visible"