I recently finished up the final stages of applying the Kalman filter, and obtained estimates of the test-beam particles’ momentum errors, which was the main purpose of this project. I have discussed in previous posts how I propagated the Kalman filter through the beamline, and hinted in my last post that I had finally taken momentum errors into account. The method to do this was iterative in nature; I first applied the Kalman filter through the beamline and obtained values for the directional errors at wirechambers 2 and 3. These could be used to obtain the error in the measured bend angle, and this could be used to find a momentum error. We then ran the filter again, but used this new bend error to obtain improved errors in the wirechamber 3 directional error. We then found an improved bend and momentum error, etc. This process was repeated 3 or 4 times, by which point the further iterations made almost no improvement on the values obtained.
We also realized that this momentum error was mass-dependent. Multiple scattering, the main source of error in the beamline, is inversely proportional to momentum and velocity. However, a high-mass particle will have a lower velocity than a less massive particle at the same momentum, giving it a larger momentum error. We therefore put a mass cut at the front of our code. We used the reconstructed particle momentum and a velocity obtained from time-of-flight counters at either end of the beamline to solve for particle mass. A histogram of the particle masses may be seen below.
We see three peaks: a pion peak at about 150 MeV, a proton peak at about 950 MeV, and a very low kaon peak at around 500 MeV. We took any particle within those peaks, assumed its mass was equal to the pion, kaon, or proton mass, and used the mass and velocity to obtain an improved momentum. All other particles were considered background noise and ignored. We applied the Kalman filter and, to obtain an estimate of how well we were doing, plotted the difference between the measured wirechamber 3 hit location and that predicted by the Kalman filter, divided by the expected error in the prediction. If we were doing everything right, we would see a Gaussian distribution with a mean of zero and a standard deviation of one. Our resulting plots were not Gaussian, had means that were pretty far from one, and standard deviations that were not one. The plot below is for positive pions and has units of the expected error.
To fix this, we made even narrower mass cuts: we eliminated the kaons completely (the kaon peak was very low and would have been dominated by background), and only accepted particles within 25 MeV of the true pion or proton mass. The resulting wirechamber 3 residual plots were much better. Shown below is the new positive pion graph, with units of the expected error.
Originally, I output the momentum errors to a file (actual several files storing the momenta for different particles), expecting to be able to export them to other people within the MINERvA collaboration. However, I decided that I should probably do some initial analysis on them, which left me with the problem of data from the files with ROOT (the software I was using). Creating the code to do this took a couple hours, but this turned out to be a very fortunate turn of events: if I had tried to do some initial analysis in the Kalman filter code itself, I would have had a lot of trouble, since it takes that code several hours to run (on the order of 8 or so). However, the code to read the data and do some simple analysis (find means, make plots) took only a few seconds, giving me much greater freedom to tweak things. This brings me to my end result: the mean momentum errors for all particles was 11.2 MeV (out of momentum measurements of around 800 MeV). Pions had errors of 8.5 MeV and pions had errors of 16.7 MeV. This is because, at the same momentum, heavier particles (like protons) have lower velocities and light particles (such as pions), giving them higher multiple scattering errors. The bimodal histogram of momentum errors may be seen below. The pion error peak is the one to the left, the protons, to the right.
The summer part of this project is now done. However, I will continue to work on it during the school-year, trying to use a very accurate field map to propagate the particles through the field and improve the discrepancies between the ideal Gaussian and the second-to-last plot shown here. For those interested, my final report is appended below.