A Small Victory
For the past five days I've been working like mad to write a completely new program to read and analyze some physics data. I've been given three data sets, two of which contain signals from artificial sources and one of which contains just noise, and I've been tasked with trying to reconstruct where the artificial sources are, relative to the antennas which collected the data.
My program currently clocks in at 1365 LOC, and it performs well enough that I can tell which of the three data sets is only noise. I can't yet pin down the locations of the two transmitters, but I think I may be able to place each one on a plane. (I'm wondering if the configuration of antennas has some symmetry that introduces an ambiguity.) Next I'll need to see if I can add more refinement to the reconstructions, like using a likelihood method with a numerical minimizer, but I think that this is a good first step.
THis project has been grueling, but a lot of fun so far; I'm getting the opportunity to do everything my way from start to finish. So far I'm using Boost for smart pointers and compression of output, TNT and JAMA for matrix math, TinyXML++ for XML I/O, and Doxygen for documentation. Most of these I had used before to one degree or another, however, Doxygen was entirely new to me. I've been quite impressed with how convenient it is to use: It really works well at taking the comments that one should be writing anyway and collating them into highly functional HTML documents (among other forms of output). There's no question that I'll be putting it to use on my other projects from now on.