SpecMon: Monitoring of Power Spectral Density.
Overview | Configuration File | Command Line | Features | Technical Details | Talks (Available for Download) | Contact Info |
SpecMon is a interactive DMT monitor based on the ROOT GUI classes. Using a GUI, it provides real-time histogramming and strip charts of the band limited RMS power for an arbitrary number of bands and channels.
Snapshot of the GUI. The below plot shows the interferometer losing lock at approximately Time = 700.
The GUI allows the user to track in real-time the behavior of a frequency band (Resolution of 1 Hz). This can be helpful in setting limits for other monitors or for use in setting limits for SpecMon.
Configuration File Information:
There is N-Channel capability through a user defined configuration file. There, any channels that are to be monitored should be defined. If the user wants the data on a specific band saved, then the that band should also be defined in the configuration file.
The GUI allows the user to pick an arbitrary band in a specified channel to look at in real-time. This is especially nice if you think that you should be monitoring a slightly different band then the one that is defined.
Example Configuration File (comments in bold):
Note: As of now it is not possible to monitor H0 channels. This will be added shortly. Thank for your patience.
Command Line Arguments:
When starting the program, there are several command line arguments that must be specified. They are as follows (dashes are included):
-ifo (Specifies which interferometer)
-socketnumber (Tells the GUI and the background monitor how to communicate)
-update (The auto-update time for the GUI. Defaults to 30 seconds)
Example Command Line Startup:
./SpecMon -ifo H1 -socketnumber 9090 -update 60
User defined configuration file.
N-Channel, N-Band Monitoring Capability
Power for each band found using the Power() function from the FSeries.hh library. For more information on the DMT, see http://www.ligo.caltech.edu/~jzweizig/dmt/DMTProject/.
At startup, the configuration file is loaded into the monitor. As of now if changes are to made, the monitor must be restarted.
The data for each channel is stored in the monitor for a period of 24 hours. 1 minute, 10 minute, 30 minute, 1 hour, 6 hour, 12 hour, 24 hour averages are written to file every 10 seconds. This could possibly be changed to optimize the program (e.g. The 24 hour averages don't need to be written as often as the 1 minute averages etc.)
All data is stored in the standard C++ vectors. This allows for easy addition and deletion of entries.
Written using ROOT GUI and socket libraries.
The GUI and the background monitor communicate via socket communication.
Every frame, the background monitor checks to see if the GUI needs information. This could happen due to an auto-update or a command from the user. Setting the auto-update faster than 20 seconds caused problems due to the information transfer over the socket.
The GUI will auto-update defaults to 30 seconds.
Data Transferred is the average RMS power in the selected band for 1min, 10min, 30min, 1hour, 6hours,12hours, and 24hours.
Note: This is the most unstable portion of the program. If you are not at one of the sites, the data transfer rate will define how fast the GUI and the background monitor communicate. It can be frustrating. Clicking incessantly WILL crash the program.
August LSC Meeting: Introduction to SpecMon LIGO number
Comment, questions, suggestions:
email Tim Bodiya at bodtim (AT) umich (DOT) edu
I would like to thank Keith Riles, John Zwiezig, and David Chin for their invaluable comments and help on the project.
This work was done under Keith Riles at the University of Michigan.