Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
This commit updates the PMT response bank and absorption lengths for H2O and
D2O based on the values in mcprod which were used for the LETA analysis.
|
|
Doh! I was previously using the tube number variable!
|
|
When testing out the fitter on 500 MeV muons, there was at least one event
which started out at a position very far from the true position. This event had
a secondary electron like ring which is what I suspect caused the fit to start
out in a position far from the true position.
This fix correctly starts the minimization close to the true position. In the
future I should look at updating get_direction() so that it finds the largest
ring direction instead of just doing a weighted average of all the vectors from
the position to the PMTs.
|
|
|
|
|
|
|
|
This commit adds the ability to run the fit program with the
--skip-second-event flag to only fit the first event after a MAST bank. This
way we avoid fitting secondaries like Michel electrons when fitting MC events.
|
|
the quantum efficiency
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
minimization phase
|
|
|
|
|
|
This commit adds code to read in the PMT response from the PMTR bank from
SNOMAN. This file was used for the grey disk model in SNOMAN and was created
using a full 3D simulation of the PMT and concentrator. Since the PMT response
in SNOMAN included the quantum efficiency of the PMT, we have to divide that
out to get just the PMT response independent of the quantum efficiency.
I also updated the likelihood calculation to use the pmt response. Currently
the energy is being fit too high which I think will improve when we update the
solid angle calculation to use the radius of the concentrator instead of the
PMT.
|
|
This commit adds a fast function to calculate the expected number of PE at a
PMT without numerically integrating over the track. This calculation is *much*
faster than integrating over the track (~30 ms compared to several seconds) and
so we use it during the "quick" minimization phase of the fit to quickly find
the best position.
|
|
|
|
This commit updates the initial guess for the energy using a simple heuristic
of ~6 hits/MeV. I also updated the initial phase where we do a bunch of "quick"
minimizations to loop over a series of starting positions and automatically
calculate the approximate direction and t0 for the event.
|
|
This commit updates the fit_event function to first do a series of "quick"
minimizations to try and find a good set of starting parameters for the "real"
fit.
I also updated the bounds on theta and phi since having hard bounds on these
angle coordinates could prevent the fitter from finding the minimum.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
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.
|
|
|