aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2018-08-31add theta0 argument to path_eval in test-path.ctlatorre
2018-08-31print out how long the likelihood function takestlatorre
2018-08-28add path to the likelihood fittlatorre
This commit updates the likelihood fit to use the KL path expansion. Currently, I'm just using one coefficient for the path in both x and y.
2018-08-27update tests since I switched to using the D2O muon tables from the PDGtlatorre
2018-08-27update code to use get_index_snoman* functions to calculate the index of ↵tlatorre
refraction
2018-08-27fix how multiple Coulomb scattering is treatedtlatorre
Previously I had been assuming that a particle undergoing many small angle Coulomb scatters had a track direction whose polar angle was a Gaussian. However, this was just due to a misunderstanding of the PDG section "Multiple scattering through small angles" in the "Passage of particles through matter" article. In fact, what is described by a Gaussian is the polar angle projected onto a plane. Therefore the distribution of the polar angle is actually: (1/(sqrt(2*pi)*theta0**2))*theta*exp(-theta**2/(2*theta0)) This commit updates the code in scattering.c to correctly calculate the probability that a photon is emitted at a particular angle. I also updated test-likelihood.c to simulate a track correctly.
2018-08-27add code to expand the track of a particle using a KL expansiontlatorre
To fit the path of muons and electrons I use the Karhunen-Loeve expansion of a random 2D walk in the polar angle in x and y. This allows you to decompose the path into a sum over sine functions whose coefficients become random variables. The nice thing about fitting the path in this way is that you can capture *most* of the variation in the path using a small number of variables by only summing over the first N terms in the expansion and it is easy to calculate the probability of the coefficients since they are all uncorrelated.
2018-08-14fix ev pointer bugtlatorre
2018-08-14update pmt hit array in event struct to be MAX_PMTS longtlatorre
2018-08-14add lower and upper bounds for the fit parameterstlatorre
2018-08-14add function to fit event and clear event after each fittlatorre
2018-08-14set stopping criteratlatorre
2018-08-14use the index of refraction from snoman when computing the angular PDF for ↵tlatorre
photons
2018-08-14update the printf format string for the fit parameterstlatorre
2018-08-14update fit to use nlopt for minimizationtlatorre
The GSL library only has the Nelder Mead Simplex algorithm for doing multidimensional minimization without gradient information. The nlopt library has lots of different minimization algorithms so it's easier to switch between them to see which one works best.
2018-08-14fix how the RMS scattering angle is calculatedtlatorre
The RMS scattering angle calculation comes from Equation 33.15 in the PDG article on the passage of particles through matter. It's not entirely obvious if this equation is correct for a long track. It seems like it should be integrated along the track to add up the contributions at different energies, but it's not obvious how to do that with the log term. In any case, the way I was previously calculating it (by using the momentum and velocity at each point along the track) was definitely wrong. I will try this out and perhaps try to integrate it later.
2018-08-14add refractive index for heavy and light water from snomantlatorre
2018-08-14update muon.c to use the new table for heavy watertlatorre
2018-08-14add a table for muon dE/dx and range for D2Otlatorre
There was no entry for heavy water at http://pdg.lbl.gov/2018/AtomicNuclearProperties/index.html, so I emailed Don Groom who maintains the website. Amazingly he agreed to rerun the code to add an entry for D2O. Apparently all of the old Fortran code was not set up to deal with isotopes, but he updated everything and reran the code for heavy water! The new results are at http://pdgprod.lbl.gov/~deg/AtomicNuclearProperties/ but they should make it to the main page soon.
2018-08-14move everything to src directorytlatorre