Fast likelihood analysis in more dimensions for xenon TPCs
Project description
Flamedisx
Fast likelihood analysis in more dimensions for xenon TPCs.
By Jelle Aalbers, Bart Pelssers, and Cristian Antochi
Tutorial and documentation
See the Tutorial and other notebooks in our separate notebooks repository.
Description
Flamedisx aims to increase the practical number of dimensions (e.g. s1, s2, x, y, z and time) and parameters (g1, g2, recombination model coefficients, electron lifetime, ...) in LXe TPC likelihoods.
Traditionally, we evaluate our signal and background models by filling histograms with high-statistics Monte Carlo simulations. However, the LXe emission model can be expressed so that the integral equivalent to an MC simulation can be computed with a few matrix multiplications. Flamedisx uses this to compute the probability density directly at each observed event, without using MC integration.
This has several advantages:
- Each event has its "private" detector model computation at the observed (x, y, z, time), so it is easy and cheap to add time- and position dependences to the likelihood.
- Since the likelihood for a dataset takes O(seconds) to compute, we can do this at each of optimizer's proposed points during inference. We thus remove a histogram precomputation step exponential in the number of parameters, and can thus fit a great deal more parameters.
- By implementing the signal model in tensorflow, the likelihood becomes differentiable. Using the gradient during fitting drastically reducing the number of needed interactions for a fit or profile likelihood.
Note this is still under construction / development, so it probably has some bugs and little documentation.
0.4.0 / 2019-01-15
- Many changes to objectives and inference (#39, #40)
- Add tilt to objective for interval/limit searches
- one_parameter_interval -> limit and interval methods
- Optimizers use bounds
- Tolerance option homogenization (first pass)
- Auto-guess limits
0.3.1 / 2019-11-26
- Performance improvements and cleanup (#58)
- Improve one_parameter_interval arguments (#56)
- Add Tutorial output to flamedisx-notebooks (#56)
- Bugfixes (#57)
0.3.0 / 2019-11-19
- Split off notebook folder to flamedisx-notebooks
- Pass source specific parameters correctly (#51)
- Flexible event padding (#54)
- SciPy optimizer and optimizer settings (#54)
- one_parameter_interval (#54)
- Bugfixes (#46, #55, #51)
- Unify optimizers (#54)
0.2.2 / 2019-10-30
- Minuit optimizer (#40)
- Likelihood simulator (#43, #44)
- Updates to NRSource (#40)
0.2.1 / 2019-10-24
- Workaround for numerical errors (#38, #39)
0.2.0 / 2019-10-11
- Spatially dependent rates (#27)
- Time dependent energy spectra (#24)
- XENON1T SR1-like model / fixes (#22, #32)
- Switch optimizer to BFGS + Hessian (#19)
- Multiple source support (#14)
- Optimization (#13)
- Bugfixes / refactor (#18, #20, #21, #28, #30, #31, #35)
0.1.2 / 2019-07-24
- Speedup ER computation, add tutorial (#11)
- Optimize lookup-axis1 (#10)
0.1.1 / 2019-07-21
- 5x speedup for Hessian (#9)
- Fix pip install
0.1.0 / 2019-07-16
- Batching (#7)
- Inference (#6)
- Ported to tensorflow / GPU support (#1, #2, #3, #5)
0.0.1 / 2019-03-17
- Initial numpy-based version
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.