aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-06-14set the starting energy to MAX_ENERGY if it's greatertlatorre
Also increase the maximum kinetic energy to 10^4 GeV which is approximately the maximum expected energy for cosmic muons at SNO.
2019-06-14add a function to compute the most likely number of PE given an observed chargetlatorre
Also, call this function when computing the psi parameter in nll_best().
2019-06-13add a data cleaning cut to tag incoming muonstlatorre
This commit adds a data cleaning cut to tag incoming muons by looking for early OWL hits. It also significantly updates the flasher cut to catch more flashers. In particular, the flasher cut now does the following: - loops over *all* paddle cards with at least 4 hits instead of just the paddle cards with the most hits - uses QLX to look for charge outliers in the paddle card - fixes a few bugs (for example, uninitialized values in the charge array) - adds a check to to see if the given slot is early with respect to all PMTs within 4 meters to catch the case where the flashing channel is missing from the event
2019-06-10add a bunch of SNO data quality cutstlatorre
This commit adds the following data quality cuts used in SNOMAN: - neck - qvnhit - crate isotropy - junk Still need to test these.
2019-06-10update get_event() to include all PMT typestlatorre
This commit updates get_event() to include OWL, LG, FECD, BUTT, and NECK tubes.
2019-06-06add --gtid command line argument to test-find-peakstlatorre
2019-06-06update submit-grid-jobstlatorre
This commit updates submit-grid-jobs so that it keeps track of which files it's already submitted grid jobs for.
2019-06-06print out "loading DQXX ..." line to stderrtlatorre
2019-06-06update find_file() to use the environment variable DQXX_DIRtlatorre
2019-06-05fix x labeltlatorre
2019-06-05try to import CLoader if possible since it's *much* fastertlatorre
2019-06-05add a script to plot the total energy of the best fit resulttlatorre
2019-06-02update TODOtlatorre
2019-06-02update TODOtlatorre
2019-06-02fast_sqrt() -> sqrt()tlatorre
No reason to use fast_sqrt() in get_theta0_min() since the argument isn't guaranteed to be between 0 and 1.
2019-06-02update .gitignoretlatorre
2019-06-02add is_flasher field to outputtlatorre
2019-06-02update cat-grid-jobs to sort output based on gtidtlatorre
2019-06-02use yaml.loader.SafeLoadertlatorre
2019-06-02fix another bug in submit-grid-jobstlatorre
2019-06-02use full path in submit-grid-jobstlatorre
2019-06-02update submit-grid-jobs to create a new directorytlatorre
2019-06-02update likelihood function to speed it uptlatorre
This commit makes a few small changes to try and reduce the number of divisions and multiplications done in get_expected_charge() to speed up the likelihood function.
2019-06-02update get_probability() to take sin(theta) as an argumenttlatorre
Since we already calculate sin(theta) in get_expected_charge() there's no reason to calculate it again in get_probability(). This *may* already be optimized out by the compiler.
2019-06-02update likelihood to use fast_sqrt()tlatorre
2019-06-02add a fast sqrt function for values in between 0 and 1tlatorre
2019-06-02update find_peaks() to only return unique peakstlatorre
This commit updates find_peaks() to only return peaks which are at least a certain number of degrees apart from each other. This is because I found that for many events the first few peaks would all be essentially the same direction and so the fit was taking a lot of time fitting essentially the same seed points. Since I now have to only try 3 peaks in order to get my grid jobs to run for less than a few hours it's necessary to make sure we aren't just fitting the same three directions for the "quick" minimization. I also updated the fit to only use a maximum of 3 seed directions.
2019-06-02add a test for fast_acos()tlatorre
2019-05-29update scattering.c to use interp2d() and interp1d() to speed things uptlatorre
2019-05-29add get_avg_index_{d2o,h2o} functionstlatorre
2019-05-29set step size on theta and phi to 0.1tlatorre
Also, update the step size for the energy during the final minimization to 10%.
2019-05-24update READMEtlatorre
2019-05-24add a script to concatenate output from grid jobstlatorre
2019-05-24add the template for condor submit files to submit-grid-jobstlatorre
2019-05-24add a script to submit jobs to the gridtlatorre
2019-05-24update sprintf_yaml_list()tlatorre
This commit changes the format specifier for the values in sprintf_yaml_list() from %.2g -> %.2f because YAML (at least the python parser) doesn't recognize values like 1e+03 as floats.
2019-05-24add a comment to get_theta0_min()tlatorre
Also, delete a check on cos_theta_pmt which isn't necessary.
2019-05-24several small updates to fit.ctlatorre
- set number of shower points to 10 for the main fit - set step size to 10% of the energy - set max number of evals during quick minimization phase to 1000
2019-05-24switch to using BOBYQA since it's fastertlatorre
2019-05-24change MAX_NPEAKS to 5tlatorre
I probably need to spend some time to optimize this along with the algorithm for guessing the peaks, but for now I am just lowering this from 10 -> 5 because with 10 the number of quick minimizations for 3 particles is too big and so the fits take way too long.
2019-05-24don't do fast fit during quick minimization phasetlatorre
When plotting the likelihood function I realized that the fast likelihood calculation was *very* noisy due to the way I calculated the shower and delta ray charge. Although it works well for single particles, it is not suitable for distinguishing which seed is the best when doing multi particle fits. Eventually I may be able to fix this, but for now we just do the normal likelihood calculation. I also decreased the number of shower points from 100 -> 10 to speed things up.
2019-05-24set THETA0_MIN to 1e-5tlatorre
Based on some testing it seems that when fitting muons the likelihood ratio and angular fits are better without a minimum theta0. I also determined during testing that the minimum value would cause a discontinuity in the derivative of the charge as a function of position which could cause the estimate of the direct charge to be worse.
2019-05-23write to stdout if no output file is specifiedtlatorre
2019-05-23add zdab-cattlatorre
This commit adds a new program called zdab-cat which is kind of like fit, but just produces the YAML output without actually fitting anything.
2019-05-23make float formatting consistent in sprintf_yaml_list()tlatorre
2019-05-23add 1e-10 to the angular pdfs to ensure that the CDF is strictly increasingtlatorre
2019-05-22fix a bug in previous committlatorre
Since we now calculate the expected charge from shower photons for muons we need to initialize the angular distribution and a few other things in particle_init().
2019-05-22add a function to compute the number of shower photons for muonstlatorre
Similarly to electrons, I fit an analytic form to the ratio of the number of photons produced via shower particles over the radiative energy loss. In this case, I chose the functional form: ratio = a*(1-exp(-T/b)) since the ratio seemed to reach a constant value after a certain energy. I then simulated a 10 GeV muon and it appears that the ratio might actually decrease after that, so for higher energies I may have to come up with a different fit function.
2019-05-22make sure theta0 is less than MAX_THETA0 in get_probability() to prevent a ↵tlatorre
gsl error
2019-05-22WATER_DENSITY -> HEAVY_WATER_DENSITYtlatorre