40m QIL Cryo_Lab CTN SUS_Lab TCS_Lab OMC_Lab CRIME_Lab FEA ENG_Labs OptContFac Mariner WBEEShop
  40m Log, Page 32 of 341  Not logged in ELOG logo
ID Date Authorup Type Category Subject
  13840   Mon May 14 08:55:40 2018 Dennis CoyneHowToSEIpreparation of load cell measurement at ETMX

follow up email from Dennis 5-13-2018. The last line agrees with the numbers in elog13821.

Hi Steve & Gautam,

I've made some measurements of the spare (damaged) 40m bellows. Unfortunately neither of our coordinate measurement arms are currently set up (and I couldn't find an appropriate micrometer or caliper), so I could not (yet) directly measure the thickness. However from the other dimensional measurements, and a measurement of the axial stiffness (100 lb/in), and calculations (from the Standards of the Expansion Joint Manufacturers Association (EJMA), 6th ed., 1993) I infer a thickness of 0.010 inch in . This is close to a value of 0.012 in used by MDC Vacuum for bellows of about this size.

I calculate that the maximum allowable torsional rotation is 1.3 mrad. This corresponds to a differential height, across the 32 in span between support points, of 0.041 in.

In addition using the EJMA formulas I find that one can laterally displace the bellows by 0.50 inch (assuming a simultaneous axial displacement of 0.25 inch, but no torsion), but no more than ~200 times. I might be good to stay well below this limit, say no more than ~0.25 inch (6 mm).

If interested I've uploaded my calculations as a file associated with the bellows drawing at D990577-A/v1.

BTW in some notes that I was given (by either Larry Jones or Alan Weinstein) related to the 40m Stacis units, I see a sketch from Steve dated 3/2000 faxed to TMC which indicates 1200 lbs on each of two Stacis units and 2400 on the third Stacis.

  12997   Wed May 17 18:08:45 2017 DhruvaUpdateOptical LeversBeam Profiling Setup

Andrew and I set up the razor blade beam profiling experiment for He-Ne lasers on the "SP" table.  Once I receive the laser safety training, I will make power measurements and fit it to an erfc curve from which I will calculate the gaussian profile of the beam. I'm attaching some pictures of the setup. 

Least count of the micrometer - 2 microns 

Laser  : Lumentum 22037130:1103P

Photodetector : Thor Labs PDA100A

  13002   Mon May 22 10:53:02 2017 DhruvaUpdateOptical LeversBeam Profiling Results



Andrew and I set up the razor blade beam profiling experiment for He-Ne lasers on the "SP" table.  Once I receive the laser safety training, I will make power measurements and fit it to an erfc curve from which I will calculate the gaussian profile of the beam. I'm attaching some pictures of the setup. 

Least count of the micrometer - 2 microns 

Laser  : Lumentum 22037130:1103P

Photodetector : Thor Labs PDA100A

I had measured the y-profile of the beam of Friday at 5 axial locations and fit them to an erfc function using the lsqcurvefit function of MATLAB. 

The results were as follows - 

z(cm)    w (in)

4          0.0131

10        0.0132

15        0.0137

20       0.0139

25        0.0147

I left w in inches in the intensity plots as MATLAB gave more accurate fits for those values.

I converted these to S.I while making the spot-size vs z plot and the corresponding values in microns were 

332.74, 335.28, 347.98, 353.06, 373.38.

On fitting these values to the formula for the spot size of a Gaussian beam, the beam waist came out to be 330.54 microns and the location of the beam waist was at z=-2cm, where z=0 marks the head of the laser. 


TO-DO : Measure the spot size of the beam at more axial points to obtain a better fit. 

              Measure the x-profile of the beam. 

              Analyse the error in the spot sizes and corresponding error in the beam waist. 



  13006   Tue May 23 10:27:24 2017 DhruvaUpdateOptical LeversBeam Profiling Results

I have attempted to calculate the instrument error (micrometer least count) using the values of the spot size obtained by the least squares fitting method. This error is large towards the centre of the beam as the power varies significantly between adjecent markings of the micrometer. Using the new values of error obtained, I used the chi-square fitting minimisation method to further optimise the waist size. 

The modified values are - 

z(cm)    w (in)

4         0.0134

10        0.0135

15        0.0140

20        0.0142

25        0.0150


And the revised values for the beam waist and location are 338.63 microns and -2.65 cm respectively. 

I will now try to use the chi-square stastitic to estimate the error in spot size. 

  13021   Tue May 30 18:31:54 2017 DhruvaUpdateOptical LeversBeam Profiling Results

​Updates in the He-Ne beam profiling experiment. 

  1. I've made intensity profile plots at two more points on the z-axis. The additition of this plots hasn't affected the earlier obtained beam waist significantly. 
  2. I have added other sources of error, such as the statisitical fluctuations on the oscilloscope(which is small compared to the least count error of the micrometer) and the least count of the z-axis scale.
  3. I have also calculated the error in the parameters obtained by fiiting by calculating the covariance matrix using the jacobian returned by the lsqcurvefit function in MATLAB. 
  4. I have also added horizontal error bars to all plots. 
  5. All plots are now in S.I. units 



  13053   Thu Jun 8 12:43:42 2017 DhruvaUpdateOptical LeversBeam Profiling Results



​Updates in the He-Ne beam profiling experiment. ​

New and improved plots for the He-Ne profiling experiment 

Font size has been increased to 30. 

The plots are maximum size (Following Rana's advice, I saved the plots as eps files(maximized) and converted them to pdf later).

There is a shaded region around the trendline that represents the parameter error. 

Function that I fit my data to (should have mentioned this in my earlier elog entries) 

P = \dfrac{P_0}{2}\Bigg[1+erf\Big(\dfrac{\sqrt2(X-X_0)}{w}\Big) \Bigg]

Description of my error analysis -

1. I have assumed a 20% deviation from markings in the micrometer error. 

2. Using the error in the micrometer, I have calculated the propogated error in the beam power :

\delta P = \sqrt{\dfrac{2}{\pi}}{P_0}\dfrac{\delta x}{w}\exp\Bigg({\frac{-2(X-X_0)^2}{w^2}}\Bigg)

I added this error to the stastistical error due to the fluctuation of the oscilloscope reading to obtain the total error in power. 

3. I found the Fisher Matrix by numerically differentiating the function at different data points P_b with respect to the parameters p_i =  P_0, X_0 and w.

F_{ij} = \sum_{b} {\frac{\partial P_b}{\partial p_i}\frac{\partial P_b}{\partial p_j}}\frac{1}{\sigma^2_b}

I then found the covariance matrix by inverting the Fisher Matrix and found the error in spot size estimation. 

EDIT : Residuals added to plots and all axes made equal 

  229   Wed Jan 9 20:29:47 2008 DmassAoGTMICoffee Carafe
If you have been using the coffee machine in the 40m, you may have noticed small brown flecks in your coffee mug. The carafe in the 40m has accumulated a layer of what is presumed to be old dried up coffee. When a small amount of water is swirled around in the bottom, flecks of the brown layer come off. Pictures below are of the inside of the carafe.

But does it provide adequate protection from 1064 light?
  279   Mon Jan 28 12:42:48 2008 DmassBureaucracyTMICoffee
There is tea in the coffee carafe @ the 40m. It is sitting as though it were fresh coffee. There is also nothing on the post it.
  382   Fri Mar 14 16:56:03 2008 DmassBureaucracyComputersNew 40m control machine.
I priced out a new control machine from Dell and had Steve buy it.

GigE cards (jumbo packet capable) will be coming seperately.

Quad core (2+GHz)
4 Gigs @ 800MHz RAM
24" LCD
low end video card (Nvidia 8300 - analog + digital output for dual head config)

No floppy drive on this one (yet?)
  792   Mon Aug 4 16:20:20 2008 DmassConfigurationPhotosITMX magnet position relative to OSEMS
We have vented, and taken the following pics of the magnets to document their position before we ruin everything.
  1589   Fri May 15 14:05:14 2009 DmassHowToComputersHow To: Crash the Elog

The Elog started crashing last night. It turns out I was the culprit, and whenever I tried to upload a certain 500kb .png picture, it would die. It has happened both when choosing "upload" of a picture, and when choosing "submit" after successfully uploading a picture. Both culprits were ~500kb .png files.

  1724   Wed Jul 8 18:46:56 2009 DmassAoGElectronicsBeam Scan Funky

The beam scan (which has been living in the bridge subbasement for a bit now) is in a state of imperfection.

I noticed that:

  • The waist reading seems to change by not insignificant amounts as you move the spot across the head, even for just small perturbations about the center.
  • None of the features which require two slits seem to be working (unsure if this is software or hardware related)

I took some pictures to try and illuminate the situation - The inverted images are included to make it easier to see the flecks (?) in the slits

I am not sure how to figure out if any bit of the scan is/has been fried.


Pending further investigation, enjoy large error bars in your scan measurements!



  1766   Tue Jul 21 01:11:30 2009 DmassAoGComputersAlarms going off

I came into the 40m to sign things out briefly then swiftly return them, and the alarms were going off on op540m at 1am.


The cat and donkey? were making much noise.

  3118   Fri Jun 25 01:28:33 2010 DmassHowToSVNSVN woes

I am trying to get an actual complete install of the 40m svn on my machine. It keeps stopping at the same point:

I do a

svn checkout --username svn40m https://nodus.ligo.caltech.edu:30889/svn /Users/dmass/svn

A blah blah blah many files


A    /Users/dmass/svn/trunk/medm/c1/lsc/C1LSC_ComMode.adl.28oct06
svn: In directory '/Users/dmass/svn/trunk/medm/c1/lsc'
svn: Can't copy '/Users/dmass/svn/trunk/medm/c1/lsc/.svn/tmp/text-base/C1LSC_MENU.adl.svn-base' to '/Users/dmass/svn/trunk/medm/c1/lsc/.svn/tmp/C1LSC_MENU.adl.tmp.tmp': No such file or directory

I believe I have always had this error come up when trying to do a full svn install. Any illumination is welcome.



  3194   Mon Jul 12 12:16:50 2010 DmassHowToCOMSOL TipsIntrusions (Negative Extrusions)

 An entry on the 40m wiki page might serve you better, and be easier to sift through once all is said and done

  3204   Tue Jul 13 11:20:07 2010 DmassUpdateGreen LockingSHG on PSL table : optimum temeprature


 It seems like you might inherit an offset by using step (3) b/c of the temperature gradient between the crystal and the sensing point. Depending on how large this gradient is you could increase the linear coupling from temperature to intensity noise from zero to a significant number. Phase noise should not be effected.

SInce these things (ovens) are so low time constant, shouldn't we

  1. Lock to a temperature
  2. Let the oven equilibrate for however long - a few tau maybe - my oven has a time constant of 60 sec, don't know if this is fast or slow compared to that
  3. Measure P_532/P_1064
  4. Change the setpoint
  5. Go back to step 1
  3225   Wed Jul 14 20:15:04 2010 DmassBureaucracyCamerasIR Olympus

I borrowed the Olympus and forgot to leave a note - I should have it for at most a day. dmassey@ligo if you need it urgently

  3262   Wed Jul 21 19:11:18 2010 DmassUpdateGreen Lockinglocked

What did you use to filter the 2f components from your error signal? A homemade low pass or what?



I am using a homemade low pass filter.

It's just a RC passive LPF with the input impedance of 50 Ohm.

  3325   Thu Jul 29 21:13:39 2010 DmassUpdateGreen Lockingwaist positon of Gaussian beam in PPKTP crystals


The mode profile of Gaussian beams in our PPKTP crystals was calculated.

I confirmed that the Rayleigh range of the incoming beam (1064 nm) and that of the outgoing beam (532 nm) is the same.

And it turned out that the waist postion for the incoming beam and the outgoing beam should be different by 13.4 mm toward the direction of propagation.

These facts will help us making optical layouts precisely for our green locking.


The result is shown in the attached figure, which is essentially the same as the previous one (see the entry).

The horizontal axis is the length of the propagation direction, the vertical axis is the waist size of Gaussian beams.

Here I put x=0 as the entering surface of the crystal, and x=30 mm as the other surface.

The red and green solid curve represent the incoming beam and the outgoing beam respectively. They are supposed to  propagate in free space.

And the dashed curve represents the beams inside the crystal.

A trick in this calculation is that: we can assume that  the waist size of 532 nm is equal to that of 1064 nm divided by sqrt(2) . 

If you want to know about this treatment in detail,  you can find some descriptions in this paper;

"Third-harmonic generation by use of focused Gaussian beams in an optical super lattice" J.Opt.Soc.Am.B 20,360 (2003)"

If I understand your elog, you are just calculating the the offset in position space that you get by having a refractive index.

Did you end up changing the mode matching so that the rayleigh range (which changes with refractive index) was confocally focused inside the crystal (e.g. Zr = 15 mm?


  3328   Fri Jul 30 00:02:15 2010 DmassUpdateGreen Lockingwaist positon of Gaussian beam in PPKTP crystals


- As you said, I just calculated the waist position in the crystal because the speed of light changes in a medium and eventually the waist position also changes.

- Yes, I did. Once you get a beam with the right waist size, you just put your crystal at the waist position with the offset.

  In fact you don't have to think about the rayleigh range inside of the crystal because what we care is the waist size and it doesn't change.


 If I understand your elog, you are just calculating the the offset in position space that you get by having a refractive index.

Did you end up changing the mode matching so that the rayleigh range (which changes with refractive index) was confocally focused inside the crystal (e.g. Zr = 15 mm?

 I thought we cared about satisfying the confocal focusing parameter, that is to say we want to set Zr = 2L_crystal. If Zr changes inside the crystal, this is the number we care about..isn't it NOT the waist size, but the rayleigh range we care about? I am not entirely sure what youre response is saying you did...

  1. Calculate Zr = pi * wo^2/(lamba/n)
  2. Do mode matching to get this wo in free space
  3. Calculate the offset you need to move the oven by using n
  4. Move hte ovens


  1. Calculate Zr = pi*wo^2/(lamba)
  2. Do mode matching to get this in free space
  3. Calculate the offset you need to move your ovens using n
  4. Move your ovens

I guess the waist size would also let me know - are you using 69 um or 53 um waist size?

  3384   Sat Aug 7 21:09:59 2010 DmassConfigurationComputer Scripts / ProgramseLog changes

I made some changes to the elog on nodus:

  • Made a backup of /cvs/cds/caltech/elog/elog-2.7.5/elogd.cfg called elogd.cfg.bk.20100407 in the same directory
  • Added a folder: /cvs/cds/caltech/elog/elog-2.7.5/logbooks/EAGER_Lab
  • Restarted the elog daemon via the start-elog-nodus script in the elog-2.7.5 directory

I saw that the current version of the elog seems to be in the svn, so tried to svn the changes from nodus via ssh, but got this message:

"svn: This client is too old to work with working copy '/cvs/cds/caltech/elog/elog-2.7.5'; please get a newer Subversion client."

I feel I should svn this but don't want to *&#@ the svn/elog up.

For now I will leave it alone and ask a question: Is the folder /cvs/cds/caltech/elog/elog-2.7.5/ under SVN control? Is it also under CVS control?


TL;DR:  New tab added to elog.


  3420   Fri Aug 13 13:11:30 2010 DmassUpdateelogrestarted




 More of the same. 

Who is putting weird figures into the elog?!?!  I haven't checked lately, but this is what usually crashes the elog.  It's been happening a lot lately, and it might be the .pdf's. 

Let's play a new game.  We'll call this game "Everyone only use .png files for the next week" Ready? GO!

Do we know what causes the crashes for definite? Let's give the whole knowledge gathering a shot. Surfs welcome to post. Please follow the format and keep it brief. P.S. if the elog stops responding or hangs while you're trying to edit a post or write a post, you may have crashed it.


  • Crashes


  • I have crashed the elog with downsized jpegs (~300-900kB).
  • I see jpegs on the front page of the 40m (which seem to have not crashed it?)
  • I have posted pdf's with and without png thumbnails (associated automatically via the Mac program preview) without problem.


Edit this post to add your own experience using the above format

  3533   Tue Sep 7 14:42:02 2010 DmassConfigurationelogelog restarted

elog crashed on an upload. restarted and it worked fine with the same file.

  3538   Tue Sep 7 22:21:47 2010 DmassConfigurationelogelog restarted


elog crashed on an upload. restarted and it worked fine with the same file.

 Again. Resubmitted an old entry with just text changes. Elog hung for 5 min +.

  3740   Tue Oct 19 00:24:07 2010 DmassOmnistructureElectronicsMassive restocking of the 40m

I had a number of delinquent items on the sign out list from the 40m. I returned about half, and ordered replacements for most of the other half.

I put the photodiodes on the SP table, and the 560 on the electronics  bench.

  5217   Fri Aug 12 20:33:57 2011 DmassSummaryPSLNPRO PDH-Locked to Ref Cav

To aid Jenny's valiant attempt to finish her SURF project, I did some things with the front end system over the last couple days, largely tricking Jamie into doing things for me lest I ruin the 40m RCG system. Several tribulations have been omitted.

We stole a channel in the frontend, in the proccess:

  1. Modified the C1GFD simulink model (now analog) to be "ADC -> TMP -> DAC" where TMP is a filter bank
    • C1GFD_TMP.adl (in /opt/rtcds/caltech/c1/medm/c1gfd) is the relevant part which connects the ADC to the DAC in the frontend
  2. Confirmed that the ADC was working by putting a signal in and seeing it in the frontend
  3. Could not get a signal out of the anti aliasing board
  4. Looked sad until Kiwamu found a breakout board for the SCSI cable coming from the DAC
  5. Used SR560 to buffer DAC output
    • drove a triangle wave with AWG into the TMP EXC channel (100 counts 1 Hz) and looked at it after the ~25 ft of BNC cable running between the DAC and the NRPO driver
    • wave looked funny (not like a triangle wave), maybe the DAC is not meant to push a signal so far, so added buffer
  6. Took the control signal going to the fast input of the NPRO driver (using the 500 Ohm SR560 output - see Jenny's diagram) and put it into the anti aliasing board of the ADC
  7. Added switchable integrator to filter bank with Foton
    • I couldn't get the names to display in the filter bank, so I looked sad again
    • Jamie and Koji both poked at the "no name displayed" problem but had no conclusions, so I decided to ignore it
    • I confirm that when the two filters were toggled "on" that the transfer function was as expected: simple integrator with a unity gain at ~10mHz - agrees with what Foton's Bode Plot tool says it should be (see attached DTT plot)
  8. I got Jamie to manually add the two epics channels from the TMP model to the appropriate .ini file so they would be recorded
    • C1:GFD-TMP_OUTPUT  (16 Hz)
    • C1:GFD-TMP_INMON    (16 Hz)
  9. RefCav heater servo seems to still be set up, so we can use existing channels:
    • C1:PSL-FSS_RCPID_SETPOINT (temp setpoint - will do +/-1C steps about 35 C)
    • C1:PSL-FSS_MINCOMEAS (In loop temp sensor - in C)
    • C1:PSL-FSS_RCTEMP (out of loop temp sensor - in C)
    • C1:PSL-FSS_TIDALSET (Voltage to heater - rails @ +/- 2V)
  10.  Closed loop on the control signal for the NPRO driver with an integrator, saw error signal go to zero
    • Turned up gain a little bit, saw some oscillations, then turned gain down to stop them, final gain = 2
  11. Left system on for Jenny to come in and do step responses
  5304   Thu Aug 25 17:40:07 2011 DmassUpdateComputer Scripts / Programselog broke, fixed

elog died b/c someone somewhere did something which may or may not have been innocuous. I ran the script in /cvs/cds/caltech/elog to restart the elog (thrice).


I have now banned Warren from clicking on the elog from home

  5340   Mon Sep 5 21:12:05 2011 DmassUpdateComputer Scripts / Programselog broke, fixed

Restarted elog 9:11PM 9/5/11

  5739   Tue Oct 25 21:23:17 2011 DmassBureaucracyelogElog Restarted

Elog went nonreponsive. SSH'ed into nodus to run restart script. Elog came back ~15 minutes later.

  9335   Mon Nov 4 12:07:55 2013 DmassOmnistructureGeneralReplaced Broken Drill Bits

I broke a small bit while using the 40m drill press to vent some 1/4-20 screws for the cryo experiment.

I replaced it and refilled the small bit row in the bit index I was using; there were ~10 missing sizes

  5823   Sun Nov 6 09:39:25 2011 Dr. SUSUpdateSUSOptics kicked
All suspended optics have been kicked at Sun Nov 6 09:39:25 PST 2011. Watchdogs will be reengaged in 5 hours. Please refrain from disturbing the optics in the meantime.

EDIT ZK: After all that, I left the 'doirun' bit off in runDrSUS. I ran it manually at the above time.
  11241   Thu Apr 23 23:07:23 2015 DugoliniFrogsALARMlaptops warning


Don't put laptops on the ISC Tables!

  7711   Wed Nov 14 09:01:42 2012 Dumb statement catcherUpdateIOOTurn off MCL path before doing MC spot measurement


We have discovered that the MCL loop squishes the length fluctuations that result from the MC spot measurement angular dither.  This is good, in that the MCL is doing what it ought to do.  However, we need to turn it off before doing a spot measurement.

 This is totally non-sensical statement, of course.

We might also say that the DARM loop totally squishes the GW signal and so its better not to have any feedback in the interferometer.

  6686   Fri May 25 19:13:10 2012 Duncan MacleodSummaryComputer Scripts / Programs40m summary webpages

40m summary webpages

 The aLIGO-style summary webpages are now running on 40m data! They are running on megatron so can be viewed from within the martian network at:

At the moment I have configured the 5 seismic BLRMS bands, and a random set of PSL channels taken from a strip tool.

Technical notes

  • The code is in python depending heavily on the LSCSoft PyLAL and GLUE modules.
    • /home/controls/public_html/summary/bin/summary_page.py
  • The HTML is supported by a CSS script and a JS script which are held locally in the run directory, and JQuery linked from the google repo.
    • /home/controls/public_html/summary/summary_page.css
    • /home/controls/public_html/summary/pylaldq.js
  • The configuration is controlled via a single INI format file
    • /home/controls/public_html/summary/share/c1_summary_page.ini

Getting frames

Since there are no segments or triggers for C1, the only data sources are GWF frames. These are mounted from the framebuilder under /frames on megatron. There is a python script that takes in a pair of GPS times and a frame type that will locate the frames for you. This is how you use it to find T type frames (second trends) for May 25 2012:

python /home/controls/public_html/summary/bin/framecache.py --ifo C1 --gps-start-time 1021939215 --gps-end-time 1022025615 --type T -o framecache.lcf

If you don't have GPS times, you can use the tconvert tool to generate them

$ tconvert May 25

The available frame types, as far as I'm aware are R (raw), T (seconds trends), and M (minute trends).

Running the code

The code is designed to be fairly easy to use, with most of the options set in the ini file. The code has three modes - day, month, or GPS start-stop pair. The month mode is a little sketchy so don't expect too much from it. To run in day mode:

python /home/controls/public_html/summary/bin/summary_page.py --ifo C1 --config-file /home/controls/public_html/summary/share/c1_summary_page.ini --output-dir . --verbose --data-cache framecache.lcf -SRQDUTAZBVCXH --day 20120525

Please forgive the large apparently arbitrary collection of letters, since the 40m doesn't use segments or triggers, these options disable processing of these elements, and there are quite a few of them. They correspond to --skip-something options in long form. To see all the options, run

python /home/controls/public_html/summary/bin/summary_page.py --help

There is also a convenient shell script that will run over today's data in day mode, doing everything for you. This will run framecache.py to find the frames, then run summary_page.py to generate the results in the correct output directory. To use this, run

bash /home/controls/public_html/summary/bin/c1_summary_page.sh


Different data tabs are disabled via command link --skip-this-tab style options, but the content of tabs is controlled via the ini file. I'll try to give an overview of how to use these. The only configuration required for the Seismic BLRMS 0.1-0.3 Hz tab is the following section:


[data-Seismic 0.1-0.3 Hz]
channels = C1:PEM-RMS_STS1X_0p1_0p3,C1:PEM-RMS_STS1Y_0p1_0p3,C1:PEM-RMS_STS1Z_0p1_0p3
labels = STS1X,STS1Y,STS1Z
frame-type = R
plot-dataplot1 =
plot-dataplot3 =
amplitude-log = True
amplitude-lim = 1,500
amplitude-label = BLRMS motion ($\mu$m/s)

The entries can be explained as follows:

  1. '[data-Seismic 0.1-0.3 Hz] - This is the section heading. The 'data-' mark identifies this as data, and is a relic of how the code is written, the 'Seismic 0.1-0.3 Hz' part is the name of the tab to be displayed in the output.
  2. 'channels = ...' - This is a comma-separated list of channels as they are named in the frames. These must be exact so the code knows how to find them.
  3. 'labels = STS1X,STS1Y,STS1Z' - This is a comma-separated list of labels mapping channel names to something more readable for the plots, this is optional.
  4. 'frame-type = R' - This tells the code what frame type the channels are, so it can determine from which frames to read them, this is not optional, I think.
  5. 'plot-dataplotX' - This tells the code I want to run dataplotX for this tab. Each 'dataplot' is defined in it's own section, and if none of these options are given, the code tries to use all of them. In this configuration 'plot-dataplot1' tells the code I want to display the time-series of data for this tab.
  6. 'amplitude-XXX = YYY' - This gives the plotter specific information about this tab that overrides the defaults defined in the dataplotX section. The options in this example tell the plotter that when plotting amplitude on any plot, that axis should be log-scale, with a limit of 1-500 and with a specific label. The possible plotting configurations for this style of option are: 'lim', 'log', 'label', I think.

Other compatible options not used in this example are:


  • scale = X,Y,Z - a comma-separated list of scale factors to apply to the data. This can either be a single entry for all channels, or one per channel, nothing in between.
  • offset = X,Y,Z - another comma-separate list of DC offsets to apply to the data (before scaling, by default). DAQ noise may mean a channel that should read zero during quick times is offset by some fixed amount, so you can correct that here. Again either one for all channels, or one per channel.
  • transform = lambda x: f(x) - a python format lambda function. This is basically any mathematical function that can be applied to each data sample. By default the code constructs the function 'lambda d: scale * (d-offset)', i.e. it calibrates the data by removing the offset an applying the scale.
  • band = fmin, fmax - a low,high pair of frequencies within which to bandpass the data. Sketchy at best...
  • ripple_db = X - the ripple in the stopband of the bandpass filter
  • width = X - the width in the passband of the bandpass filter
  • rms_average = X - number of seconds in a single RMS average (combine with band to make BLRMS)
  • spectrum-segment-length = X - the length of FFT to use when calculating the spectrum, as a number of samples
  • spectrum-overlap = X - the overlap (samples) between neighbouring FFTs when calculating the spectrum
  • spectrum-time-step = X - the length (seconds) of a single median-mean average for the spectrogram

At the moment a package version issue means the spectrogram doesn't work, but the spectrum should. At the time of writing, to use the spectrum simple add 'plot-dataplot2'.

You can view the configuration file within the webpage via the 'About' link off any page.

Please e-mail any suggestions/complaints/praise to duncan.macleod@ligo.org.

  6687   Fri May 25 20:45:25 2012 Duncan MacleodSummaryComputer Scripts / Programs40m summary webpages

There is now a job in the crontab that will run the shell wrapper every hour, so the pages _should_ take care of themselves. If you make adjustments to the configuration file they will get picked up on the hour, or you can just run the script by hand at any time.

$ crontab -l
# m h  dom mon dow   command
0 */1 * * * bash /home/controls/public_html/summary/bin/c1_summary_page.sh > /dev/null 2>&1

  14822   Thu Aug 1 13:55:34 2019 DuoBureaucracyEquipment loanGpib module taken to QIL lab

vanna --> QIL.

gautam 20190804: The GPIB module + power supply were returned to me by Duo ~5pm today at the 40m.

  7320   Thu Aug 30 18:01:05 2012 ElliUpdateIOOSetting up Input MC cavity scan measurement

Riju, Elli

Today tried to take our first cavity scan.  We unplugged the 55MHz sideband input from the RF combiner on the PSL table, and connected a network analyser instead.  Using the network analyzer we injected a 12dBm signal (swept from 32MHz to 45MHz) through the RF combiner into the EOM to create our swept sidebands.  We measured the  MC cavity response by looking at the signal comming out of the RF photodiode on the MC2 table.  I replaced the BNC cable connected to the RF PD with a longer BNC cable that could reach our network analyzer next to the PSL table.  Riju will post a diagram of our setup.

We didn't see the expected carrier resonances when we performed a cavity scan.  The light incident on the RF PD is around 0.7micro Watts and we are still thinking about whether this is strong enough to see our signal above the noise.  We also want to work out what the strength of our swept sidebands is.  We will attempt to do a 'real' cavity scan tomorrow.


  7328   Fri Aug 31 13:22:29 2012 ElliUpdateIOOCorrecting improper termination of the 55MHz input to the EOM

Koji, Riju, Elli

This morning Koji discovered that the 55MHz input into the RF combiner that I disconnected yesterday wasn't terminated properly, so it was reflecting power back into the amplifier in the signal generation unit.    We turned off the signal generation unit and checked that the amplifier was still working properly- it was.  A 50 ohm terminator was attached to the end of the 55MHz cable so that it is now terminated properly.

When we tried to turn the signal generator box back on we discovered the switch is broken (the box will only stay on while you hold down the on switch) and will need to be replaced.  In order to create the 29.5MHz sidebands to lock the mode cleaner, we bypassed the signal generation unit which won't stay on (unplugging '29.5 MHZ out' cable from the frequency generation unit), and instead sent a 0.39V 29.5MHz signal from a function generatior into 'RF input' on the 'RF AM Stabiliser' board.

We also increased the power coming exiting the PSL table and going into the cavity from 11 microwatts to 20 microwatts by adjusting the polariser at the end of the table slightly.  The power has been set to 20 microwatts using the polariser a few days ago but had drifted down since then.

  7311   Wed Aug 29 19:28:41 2012 Elli KingUpdateLSCSetup for a cavity scan or the input mode cleaner

 Riju, Elli

Today we prepared our experimental setup to take a cavity scan of the input mode cleaner, which we want to measure in the next day or so.  Attached is a diagram of our setup.

What we want to do is to inject a set of sidebands into the PSL and sweep their frequency from 32-45 MHz (a range just over one fsr of the mode cleaner- vfsr=11MHz).  We will measure the power transmitted out of the MC using a photo-diode and demodulate this signal with our input signal from the Marconi.  From this we should be able to see the resonant frequencies of the carrier and the higher order modes.

One aspect we spent some time thinking about; whether we would be able to inject a signal into an EOM given the EOM and the Marconi are not perfectly impedance matched.  Based on Kiwamu’s previous e-log entries designing the EOM, we decided that injecting a signal in 32-45 MHz region at 15dBm is similar to injecting the 29.5MHz sideband (at the same power level with very similar input impedance.) Fingers crossed we don’t blow anything up first week on the job.

  10227   Thu Jul 17 16:07:34 2014 Emily UpdateElectronicsVCO Driver

I took back he VCO driver that Reetika brought over to the 40m from the PSL lab.  

  566   Wed Jun 25 12:25:28 2008 EricSummaryCameras2D Gaussian Fitting Code
I initially wrote a script in MATLAB that takes pictures of the laser beam's profile and fits them to a two dimensional gaussian in order to determine the position and width of the beam. This code is now (mostly) ported to C so that it can be imbedded in the camera software package that Joe is writing. The fitting works fairly well for pictures with the beam directly incident on the camera, and less well for pictures of scatter off the end mirrors of the arms, since scatter from defects in the mirror have intensities much greater than the intensity of the beam's gaussian profile.

The next steps are to finish up porting the fitting code to C, and then modify it so it can better handle the images off the end mirror. Some thoughts on how to do this are to use a fourier transform and a low pass filter, or to simply use a center-of-mass calculation (with the defect peaks reduced in intensity), since position is more important than beam width in this calculation. The eventual goal is to include the edge of the optic in the picture and use the fit of the beam position in comparison to the optic's position to find the beam's location on the mirror.
  622   Wed Jul 2 10:35:02 2008 EricSummaryCamerasGeneral Summary
I finished up the 2D Gaussian fitting code, and, along with Joe, integrated into the Snap software so that it automatically does a fit to every 100th image. While the fitting works, it is too slow for use in any feedback to the servos. I put together a center of mass calculation to use instead that is somewhat less accurate but much faster (almost instantaneous versus 5-10 seconds). This has yet to be added to the Snap software, but doing so would not be difficult.

I put together a different fitting function for fitting the multiple lorentzian resonance peaks in a power spectrum that would result from sweeping the length of any of the mode cleaners. This simply doesn't work. I tested it on some of Josh Weiner's data collected on the OMC last year, and the data fits poorly. Attempting to fit it all at once requires fitting 80000 data points with 37 free parameters (12 peaks at 3 parameters per peak and 1 offset parameter), which cannot be done in any reasonable time period. Attempting to fit to one specific peak doesn't work due to the corruption of the other nearby peaks, even though they are comparatively small. The fit places the offset incorrectly if given the opportunity (green line in attemptedSinglePeakFitWithoutOffset.tiff and attemptedSinglePeakFitWithoutOffsetZoomed.tiff). Removing this as a parameter causes the fit to do a much better job (red line in these two graphs). The fit still places the peak 0.01 to the right of the actual peak, which worse than could simply be obtained by looking at the maximum point value. Additionally, this slight shift means that attempting to subtract out the peak so that the other peaks are accessible doesn't work -- the peaks are so steep that the error of 0.01 is enough to cause significant problems (red in attemptedPeakSubtraction.tiff is the attempted subtraction). Part of the problem is that the peaks are far from perfect lorentzians, as seen by cropping to any particular peak (OMCSweepSinglePeak.tiff ). This might be corrected in part by correcting for the conversion from PZT voltage to position, which isn't perfectly linear; though I doubt it would remove all the irregularities. At the moment, the best approach seems to be simply using a center of mass calculation cropped to the particular peak, though I have yet to try this.

Changing Josh's code to work for the digital cameras and the PMC or MC shouldn't be difficult. Changing to the MC or PMC should simply involve changing the EPICs tags for the OMC photodiodes and PZTs to those of the PMC or MC. Making the code work for the digital cameras should be as simple as redirecting the call to the framegrabber software to the Snap software.
  660   Fri Jul 11 20:16:01 2008 EricDAQCamerasTaking data from the GC 750 Camera
Mafalda has been set up with a background process to constantly take data from the GC 750 camera (at the end of the x-arm) for the weekend. This camera will otherwise be inoperable until then.

In the small chance that this slows either Mafalda or the network to a crawl, the process to kill should have PID 26265.
  671   Tue Jul 15 10:09:42 2008 EricDAQCamerasDid anyone kill the picture taking process on Mafalda?
Did anyone kill the process on Mafalda that was taking pictures of the end mirror of the x-arm last Friday? I need to know whether or not it crashed of its own accord.
  678   Wed Jul 16 10:50:55 2008 EricSummaryCamerasWeekly Summary
Finished unwrapping, cleaning, baking, wrapping, wrapping again, packing, and shipping the baffles.

Attempted to set up the Snap software so that it could talk directly to EPICS channels. This is not currently working due to a series of very strange bugs in compiling and linking the channel access libraries. Alex Ivanov directed Joe and me to a script and makefile that are similar to what we're trying to do and it may solve our problem, but at the moment this still doesn't work. We're currently using a workaround that involves making unix system calls to ezca command line tools, but this is too hacky to leave in the final program.

Attempted to fit Josh's PZT voltage vs power plot of the OMC (from about a year ago) to lorentzians in order to try to develop fitting tools for more recent data. This isn't working, due to systematic error distorting the shapes of the peaks. Good fits can be obtained by cutting the number of points to a very small number around the peak of resonance, but this leads to such a small percentage of the peak being used that I don't trust these results either. (In the graph (shows the very top of the tallest peak): blue is Josh's original data, green is a fit to this peak using the top 66% of the peak and arbitrary, equal values for the error on each point, red is Josh's data averaged over bins of size 0.005, teal is a fit to these bins where the error on each point is the standard deviation of each bin, and magenta is a fit to these same bins, except cropped to the top ~10% of the peak, x-axis is voltage, y-axis is transmission power). Rana suggested that I take my own sweeps of the PMC using scripts that are already written: I'm currently figuring out where these scripts are and how to use them without accidently breaking something.

We've begun running the Snap software for long periods of time to see how stable it is. Currently, its only problem appears to be that it memory leaks somewhat: it was up 78% memory usage after a little over an hour. It doesn't put much strain on the computer, using only ~20% CPU. Stress put on the network from the constant transfer of images from the camera to the computer is not yet known.
  689   Thu Jul 17 12:15:21 2008 EricUpdatePSLSwept PMC PZT voltage range
I unlocked the PMC and swept over C1:PSL-PMC_RAMP's full range a couple of times this morning.  The PMC should now be relocked and returned 
to normal.
  722   Wed Jul 23 12:42:23 2008 EricSummaryCamerasWeekly Summary
I finally got the ezcaPut command working. The camera code can now talk directly to the EPICS channels. However, after repeated calls of the ezcaPut function, the function begins claim to time out, even though it continues to write values to the channel successfully (EPICS is successfully getting the new value for the channel, but failing to reply back to the program in time, I think). It has seg-faulted once as well, so the stability cannot yet be trusted for running long term. For now, however, it works well enough to test a servo in the short term. The current approach simply uses a terminal running ezcaservo with the pitch and yaw offset channels of the ETMX, as well as the channels that the camera code output to. This hasn't actually been tested since we haven't had enough time with the x-arm locked.

Tested various fixed zoom lens on the camera, since the one we were previously using was too heavy for its mount and likely more expensive than necessary. The 16mm lens gets a good picture of the beam and the optic together, though the beam is a little too small in the picture to reliably fit a gaussian to. The 24mm lens zooms too much to see the whole optic, but the beam profile itself is much clearer. The 24mm lens is currently on the camera.

Scanned the PZT voltage of the PMC across its full offset range to gain a plot of voltage vs intensity. I used DTT's triggered time series response system to measure the outputs of the slow PZT voltage and transmission intensity channels, and used the script triangle wave to drive the PZT ramp channel slowly over its full range (I couldn't get DTT to output to the channel). Clear resonances did appear (PMCScanWide.tif), but the number of data points per peak was far too small reliably fit a lorentzian to (PMCScanSinglePeak.tif). When I decreased the scanning range and increased the time in order to collect a large number of points on a few peaks, the resulting data was too messy to fit to a lorentzian (PMCSlowSinglePeak.tif).
  769   Wed Jul 30 13:52:41 2008 EricSummaryCamerasWeekly Summary
I tracked the tendency for ezcaPut to fail and sometimes seg-fault in the camera code to a conflict between the camera API and ezca, either on the 
network level or the thread level.  Since neither are sophisticated enough to provide controls over how they handle these two things, I instead 
separated the call to ezcaPut out into a small, separate script (a stripped down ezcawrite), which the camera code calls at the system level.  This is a 
bit hacky of a solution, but its the only thing that seems to work.

I've developed a transformation based on Euler angles that should be able to take the 4 OSEMs in a picture of the end mirror and use their relative 
positions to determine the angle of the camera to the optic.  This would allow the position data determined by the fitting software to be converted 
from pixels to meaningful lengths, and should aid any servo-ing done on the beams position.  I've yet to actually test if the equations work, though.

The servo code needs to have slew rate limiters and maximums/minimums to protect the mirrors written in to it before it can be tested again, but I 
have no idea what reasonable values for these limits are.

Joe and I recently scanned the PMC by driving C1:PSL-PMC_RAMP with the trianglewave script over a range of -3.5 to -1.25 (around 50 to 150 volts 
to the PZT) and read out C1:PSL-ISS_INMONPD to measure the transmission intensity.  This included slightly under 2 FSRs.  For slow scans (covering 
the range in 150 to 300 s), the peaks were very messy (even with the laser power at 1/6 its normal value), and it was difficult to place where the 
actual peak center occurred.  For faster sans (covering the range in 30 seconds or so), the peaks were very clean and nearly symmetric, but were 
not placed logically (the same peak showed up at two very different values for the PZT voltage in two separate runs).  I don't have time to put 
together graphs of the scans at the moment; I'll have that up sometime this afternoon.
  772   Wed Jul 30 16:35:56 2008 EricUpdatePSLPMC Scan Graphs
Graphs of the PMC scan data that I got earlier today.

PMCLongScanWide.tiff shows the transmission intensity and PZT voltage plotted against time for a longer scan of the PMC (~120 seconds for one sweep).

PMCLongScanPeak.tiff is the same scan zoomed in on the primary peak. This scan was done with the laser power at around 1/3 its original value. However, scans done at around 1/6 the original value have peaks that are just as messy.

PMCShortScanWide.tiff shows the intensity and voltage for a more rapid scan (~30 second for one sweep). The black lines show how the peak positions are at very different PZT voltages (a difference of ~10 volts in both cases).

PMCShortScanPeak.tiff is zoomed in on the primary peak. The peak is much cleaner than for the long scan (less time for the laser's heat to expand the mirror?), though it is likely still too messy to reliably fit to a lorentzian.
  861   Wed Aug 20 12:39:11 2008 EricSummaryCamerasWeekly Summary
I attempted to model the noise produced by the mirror defects in the ETMX images, in order to better assure that the fit to the beam Gaussian in these images is actually accurate. My first attempt involved treating the defects as random Gaussians which were scaled by the power of the beam's Gaussian. This didn't work at all (it didn't really look like the noise on the ETMX), and resulted in very different behavior from the fitting software (it fit to one of the noise peaks, instead of the beam Gaussian). I'll try some other models another time.

I made a copy of the ezcaservo source code and added options to it that allow the addition of minimum value, maximum value, and slew rate limits. This should allow the camera code to servo on ITMX without accidently driving the mirror too far or too fast. In order to get the code to recompile, I had to strip out part of the servo that changed the step value based on the amount of time that had elapsed (it relied on some GDS libraries and header files). Since the amount of time that passes is reasonably constant (about 2-3 steps per second) and the required accuracy for this particular purpose isn't extremely high, I didn't think it would matter very much.

I put together two MATLAB functions that attempt to convert pixel position in an image to actual position in real space. The first function takes four points that have known locations in real space (with respect to some origin which the camera is pointing at) and compares them to where those 4 points fall in the image. From the distortion of the four points, it calculates the three rotational angles of the the camera, as well as a scaling factor that converts pixels to real spatial dimensions. The second function takes these 4 parameters and 'unrotates' the image, yielding the positions of other features in the image (though they must be on the same flat plane) in real space. The purpose of this is to allow the cameras to provide positions in terms of physically meaningful units. It should also decouple the x and y axes so that the two dimensions can be servo'd on independently. Some results are attached; the 'original' image is the image as it came out of the camera (units in pixels), while the 'modified' image is the result of running the two functions in succession. The four points were the corners of the 'restricted access' sign and of the TV screen, while the origin was taken as the center of the sign or the TV. The accuracy of the transformation is reasonably good, but seems to depend considerably on assuring that the origin chosen in real space matches the origin in the image. To make these the same, they will be calculated by taking the intersections of the 2 lines defined by 2 sets diagonal points in each image. The first function will remain in MATLAB, since it only needs to be run once each time the camera is moved. The second function must be ported to C since the transformation must be done in realtime during the servo.

Joe and I attempted another scan of the PMC this morning. We turned the laser power down by a factor of ~50 (reflection off of the unlocked PMC went from ~118 to ~2.2) and blocked one beam in the MZ. We scanned from 40 V to 185 V ( -1 to -4.25 on the PZT ramp channel) with periods of 60 seconds and 10 seconds. In both cases, thermal effects were still clearly visible. We turned the laser power down by another factor of 2 (~1 on the PMC reflection channel), and did a long scan of 300 seconds and a short scan of 10 seconds. The 10 second scan produced what may be clean peaks, although there was clear digitization noise, while the peaks in the 300 second scan showed thermal effects. I've yet to actually analyze the data closely, however.
ELOG V3.1.3-