
Andrew Rippy ’22–I interned for Professor Brown in conjunction with the MoNA collaboration remotely at my home. In the first week, we worked on getting Debian working with our computers so that we could use root with C++ for our work. Took a bit of tinkering, but we managed to get it to work, and learned some important linux skills as well as some important root skills. The next week had us dealing with the many pitfalls that accompany C++ and root, our error of the week: Segmentation Violation. We got a rudimentary simulated particle working with a uniform field, with a few annoying hitches that were somewhat quickly dealt with. Next, we wanted to use the actual field data, however that presented its own problems. After several frustrating days and many hours, we figured out what was causing the error (it was a problem with how we were reading stuff in) and we got the field read into root, as well as our first rudimentary simulated particles using actual field data. Now, began the quest for an interpolator. A few frustrating days of searching and trying to use root’s interpolator (which by the way, has little to no documentation, and the little that exists is poor) we decided it would be better to make our own. Using a weighted average of points (1/r^2) we made an interpolator. We finished out the week with myself beginning to work in python for graphics, since root has an infuriating amount of issues with layering different types of graphs and Will continued to perfect the simulated particle in C++, fixing errors along the way. The next week had us graphing predicted particles through the actual field data, then creating graphics to see how well it fared. (It worked well!) A few minor tweaks to the interpolator, and we had reasonable particles. I began work with Dr. Brown on the creation of a phi function to make finding the 3D field manageable, as up to this point, all calculations were confined to a plane (2D). Will continued to work with the simulated particles, making rudimentary simulations with angles, and a very rough look at ion optic matrices. The next week continued the grind. The phi function presented many pitfalls and issues, but ultimately was created. The zero fit plane was a bit difficult to calculate, and still could be improved. As expected, the divergence of phi is near 0, which is good! The y-component of the gradient of phi works exactly as planned, and gives reasonable By,Bz, and Bx values. Will has been working to convert the python code written by myself over to C++ with my help and explanations. Finally, graphs of a central plane and a center split plane could be created using the phi function, and produced the magnetic B-field we were expecting! We are now able to use this phi function to produce an accurate 3D simulation of the path of the particles, which can be used further for more particle research. Through this internship, I learned valuable coding skills in both Python and C++, and I was able to apply the physics I had learned in the classroom in a work environment.