Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This commit fixes two small bugs in the plotting scripts. First, after the HDF5
commit I wasn't correctly computing the particle ID string which I had been
using before which was needed in order to plot things correctly. Second, I
realized that the dataframe groupby function first() actually selects the first
non-null column from each group! What I really wanted was the first row from
each group, so all instances of .first() were updated to .nth(0).
See https://stackoverflow.com/questions/20067636/pandas-dataframe-get-first-row-of-each-group.
|
|
|
|
|
|
|
|
|
|
- apply muon follower and muon cuts to atmospheric sample
- print warnings in red
- fix how events with fmin = nan are counted
|
|
Tidy up the code in the script by creating a function to plot the energy
distributions for each particle combo. Also fixed a bug which was causing the
neutron follower cut not to be applied.
|
|
This commit is a major update to the plot-energy script. The most significant
changes are:
- new prompt event selection
We now define prompt events as any event >= 100 nhit which is at least 250
ms away from the last 100 nhit event.
- add Michel electron event selection.
Michel electrons are now selected as any event between 800 ns and 20
microseconds after a muon or prompt event. Additionally they are required
to be >= 100 nhit and pass an extra set of data cleaning cuts (compared to
the prompt events).
- add an atmospheric "sideband"
I also updated the script to plot the energy distribution and particle ID
for all events that *do* have a neutron follower as a kind of sideband
which should contain only atmospheric events.
- plot muon energy spectrum and angular distribution
|
|
|
|
|
|
|
|
|
|
This commit updates the is_neck_event() function to include the requirement
that 50% of the normal PMTs in the event must have z <= -425.0.
|
|
This commit updates the flasher cut to use the median hit time for all hits in
the paddle card instead of just the time of the channel with the highest
charge.
|
|
|
|
|
|
|
|
|
|
|
|
This commit updates zdab-cat to output each event as an individual YAML
document. The advantage of this is that we can then iterate over these without
loading the entire YAML document in submit-grid-jobs which means that we won't
use GB of memory on the grid submission node.
|
|
|
|
|
|
|
|
This commit updates the cat-grid-jobs script to call zdab-cat on the zdab file
first to get the data cleaning words and SNOMAN fitter results for every single
event (regardless of if it's greater than 100 nhit for example), and then add
the fit results from the grid jobs output.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
This commit adds the following data cleaning cuts:
- FTS
- OWL trigger
- OWL
- ESUM
|
|
This commit updates the time estimate in nll_best() to take into account the
fact that for PMTs which get hit by a lot of photons the time distribution we
expect is the first order statistic of the overall photon hit time
distribution.
|
|
The first logical record in the SNOCR files don't have an EV bank which was
causing the output file to have an emtpy list element. This commit fixes the
issue by checking for an empty EV bank before printing the list delimiter.
|
|
|
|
|
|
The range and energy loss tables have different maximum values for electrons,
muons, and protons so we have to dynamically set the maximum energy of the fit
in order to avoid a GSL interpolation error.
This commit adds {electron,muon,proton}_get_max_energy() functions to return
the maximum energy in the tables and that is then used to set the maximum value
in the fit.
|
|
|
|
Also write out the data cleaning word to the YAML file.
|
|
Small update to the flasher cut to use the non-walk corrected time instead of
just the ECA calibrated time.
Also added some comments to the variables in the event structure.
|
|
|
|
This commit updates the get_event() function to flag any hits which have a
non-zero best charge status word. This essentially gets set when *both* QHS and
QLX are either bad or railed.
I also set this bit if *just* QHS is railed or below 300 since the current
charge model was only set up for QHS. In the future, it would be nice to
instead use the best charge (either QHS or QLX) in the likelihood function. To
do that I need to double check how QLX is normalized and if the current charge
model would work for QLX too.
|
|
|
|
Also increase the maximum kinetic energy to 10^4 GeV which is approximately the
maximum expected energy for cosmic muons at SNO.
|