Update Additional Review (marginalization over joint population+EoS uncertainty) authored by Reed Essick's avatar Reed Essick
......@@ -12,6 +12,8 @@ which relies on standard python libraries (numpy, matplotlib) and
* [gw-distributions](https://git.ligo.org/reed.essick/gw-distributions) (tested with git hash : **YYY**)
---
# Review Materials
## technical note
......@@ -22,9 +24,249 @@ A technical note deriving the Monte Carlo sums used to estimate the various prob
## library structure
**WRITE ME**
### executables
#### mmms
This is the main executable that computes the probability that an object is consistent with the allowed masses (and spins) for NSs.
```
usage: mmms [-h] [--event-max-num-samples EVENT_MAX_NUM_SAMPLES] [--event-weight-column EVENT_WEIGHT_COLUMN]
[--event-weight-is-log] [--event-prior-samples EVENT_PRIOR_SAMPLES]
[--event-prior-max-num-samples EVENT_PRIOR_MAX_NUM_SAMPLES]
[--event-prior-weight-column EVENT_PRIOR_WEIGHT_COLUMN] [--event-prior-weight-is-log]
[--mass-column MASS_COLUMN] [--spin-column SPIN_COLUMN] [--m1-column M1_COLUMN] [--m2-column M2_COLUMN]
[--d-column D_COLUMN] [--prior-column PRIOR_COLUMN] [--prior-is-log]
[--pop-max-num-samples POP_MAX_NUM_SAMPLES] [--mtov-column MTOV_COLUMN]
[--mtov-range MTOV_RANGE MTOV_RANGE] [--rtov-column RTOV_COLUMN] [--pop-weight-column POP_WEIGHT_COLUMN]
[--pop-weight-is-log] [--q-range Q_RANGE Q_RANGE] [--m-range M_RANGE M_RANGE]
[--mc-range MC_RANGE MC_RANGE] [--d-range D_RANGE D_RANGE] [-v] [-V] [--seed SEED]
event_samples population_config population_samples
a simple script to estimate probabilities for an object to be compatible with a neutron star
optional arguments:
-h, --help show this help message and exit
single-event posterior arguments:
event_samples
--event-max-num-samples EVENT_MAX_NUM_SAMPLES
--event-weight-column EVENT_WEIGHT_COLUMN
--event-weight-is-log
--event-prior-samples EVENT_PRIOR_SAMPLES
--event-prior-max-num-samples EVENT_PRIOR_MAX_NUM_SAMPLES
--event-prior-weight-column EVENT_PRIOR_WEIGHT_COLUMN
--event-prior-weight-is-log
--mass-column MASS_COLUMN
column for source-frame mass. Values are expected to be in units of Msun
--spin-column SPIN_COLUMN
if --spin-column is specified, we will interpret --mmax-column as an estimate for Mtov and
apply the scaling of Breu+Rezzolla 2016 to estimate Mmax(Mtov, spin, Rtov). Will also read
in relevant data from --spin-prior-column, --rmax-column
--m1-column M1_COLUMN
column for source-frame primary mass. Expected to be in units of Msun.
--m2-column M2_COLUMN
column for source-frame secondary mass. Expected to be in units of Msun.
--d-column D_COLUMN column for luminosity distance. Expected to be in units of Mpc.
--prior-column PRIOR_COLUMN
--prior-is-log
population posterior arguments:
population_config config file defining the population model. Parameters for this model should be passed via
`population_samples`.
population_samples a list of samples describing uncertainty in population (including EoS properties)
--pop-max-num-samples POP_MAX_NUM_SAMPLES
--mtov-column MTOV_COLUMN
values are expected to be in units of Msun
--mtov-range MTOV_RANGE MTOV_RANGE
--rtov-column RTOV_COLUMN
values are expected to be in km
--pop-weight-column POP_WEIGHT_COLUMN
--pop-weight-is-log
prior arguments:
--q-range Q_RANGE Q_RANGE
range for asymmetric mass ratio.
--m-range M_RANGE M_RANGE
range for source-frame component masses. Expected to be in units of Msun
--mc-range MC_RANGE MC_RANGE
range for source-frame chirp masses. Expected to be in units of Msun
--d-range D_RANGE D_RANGE
range for distance. Expected to be in Mpc
verbosity arguments:
-v, --verbose
-V, --Verbose
workflow arguments:
--seed SEED
```
#### mmms-combine
This executable collates separate sets of samples into a single large set. This is done by writing out every possible combination of samples from the individual sets so that the resulting samples are consistent with being drawn from a joint distribution defined as the product of the draw distributions for each separate sample set.
```
usage: mmms-combine [-h] [--samples SAMPLES SAMPLES] [--outpath OUTPATH] [-v] [--seed SEED]
optional arguments:
-h, --help show this help message and exit
--samples SAMPLES SAMPLES
a path to a CSV with samples and the maximum number of samples to retain. eg "--samples
path/to/sampls.csv 100". Can be repeated
--outpath OUTPATH
-v, --verbose
--seed SEED
```
#### mmms-plot
This executable generates visualizations summarizing the Monte Carlo sums done to estimate the consistency of an object with a NS.
```
usage: mmms-plot [-h] [--event-max-num-samples EVENT_MAX_NUM_SAMPLES] [--event-weight-column EVENT_WEIGHT_COLUMN]
[--event-weight-is-log] [--mass-column MASS_COLUMN] [--spin-column SPIN_COLUMN]
[--m1-column M1_COLUMN] [--m2-column M2_COLUMN] [--d-column D_COLUMN] [--prior-column PRIOR_COLUMN]
[--prior-is-log] [--pop-max-num-samples POP_MAX_NUM_SAMPLES] [--mtov-column MTOV_COLUMN]
[--mtov-range MTOV_RANGE MTOV_RANGE] [--rtov-column RTOV_COLUMN]
[--pop-weight-column POP_WEIGHT_COLUMN] [--pop-weight-is-log] [--q-range Q_RANGE Q_RANGE]
[--m-range M_RANGE M_RANGE] [--mc-range MC_RANGE MC_RANGE] [--d-range D_RANGE D_RANGE] [-v] [-V]
[-o OUTPUT_DIR] [-t TAG] [--figtype FIGTYPE] [--dpi DPI] [--seed SEED]
event_samples population_config population_samples
a simple script to estimate bayes factors for a NS vs a BH based on m2 posteriors and Mmax limits
optional arguments:
-h, --help show this help message and exit
event posterior arguments:
event_samples
--event-max-num-samples EVENT_MAX_NUM_SAMPLES
--event-weight-column EVENT_WEIGHT_COLUMN
--event-weight-is-log
--mass-column MASS_COLUMN
values are expected to be in units of Msun
--spin-column SPIN_COLUMN
if --spin-column is specified, we will interpret --mmax-column as an estimate for Mtov and
apply the scaling of Breu+Rezzolla 2016 to estimate Mmax(Mtov, spin, Rtov). Will also read
in relevant data from --spin-prior-column, --rmax-column
--m1-column M1_COLUMN
only used when pruning posterior samples. Expected to be in units of Msun
--m2-column M2_COLUMN
only used when pruning posterior samples. Expected to be in units of Msun
--d-column D_COLUMN only used when pruning posterior samples. Expected to be in Mpc
--prior-column PRIOR_COLUMN
--prior-is-log
population posterior arguments:
population_config config file defining the population model. Parameters for this model should be passed via
`population_samples`.
population_samples
--pop-max-num-samples POP_MAX_NUM_SAMPLES
--mtov-column MTOV_COLUMN
values are expected to be in units of Msun
--mtov-range MTOV_RANGE MTOV_RANGE
--rtov-column RTOV_COLUMN
values are expected to be in km
--pop-weight-column POP_WEIGHT_COLUMN
--pop-weight-is-log
prior arguments:
--q-range Q_RANGE Q_RANGE
--m-range M_RANGE M_RANGE
expected to be in units of Msun
--mc-range MC_RANGE MC_RANGE
expected to be in units of Msun
--d-range D_RANGE D_RANGE
expected to be in Mpc
* description of refactoring of library
output arguments:
-v, --verbose
-V, --Verbose
-o OUTPUT_DIR, --output-dir OUTPUT_DIR
-t TAG, --tag TAG
--figtype FIGTYPE
--dpi DPI
workflow arguments:
--seed SEED
```
#### mmms-weigh
A legacy script that computes probabilities that individual samples are compatible with a NS by marginalizing over the uncertainty in the EoS.
```
usage: mmms-weigh [-h] [--event-max-num-samples EVENT_MAX_NUM_SAMPLES] [--mass-column MASS_COLUMN]
[--spin-column SPIN_COLUMN] [--mass-range MASS_RANGE MASS_RANGE]
[--pop-weight-column POP_WEIGHT_COLUMN] [--pop-weight-is-log] [--mtov-column MTOV_COLUMN]
[--mtov-range MTOV_RANGE MTOV_RANGE] [--rtov-column RTOV_COLUMN] [-v]
[--output-weight-column OUTPUT_WEIGHT_COLUMN] [--outpath OUTPATH]
event_samples population_samples
a script that will add weights to a CSV based on the probability that each sample is below Mmax. NOTE! This includes
the prior normalization associated with simulataneous inference over both the EOS and the mass. We assume a flat-in-
mass prior within the range specified by `--mass-range`. ALSO NOTE! This does *not* reweigh single-event samples by
the population, and therefore may not be equivalent to other calculations.
optional arguments:
-h, --help show this help message and exit
event posterior arguments:
event_samples
--event-max-num-samples EVENT_MAX_NUM_SAMPLES
--mass-column MASS_COLUMN
--spin-column SPIN_COLUMN
if specified along with --rtov-column, will include the effects of spin with the resulting
weights
--mass-range MASS_RANGE MASS_RANGE
this specifies the prior range used to construct a simultaneous over the EOS and --mass-
column. We assume a flat prior in --mass-column and update p(mass_column|Mmax) appropriate.
This introduces a prior normalization within the weight for each EOS.
population posterior arguments:
population_samples
--pop-weight-column POP_WEIGHT_COLUMN
--pop-weight-is-log
--mtov-column MTOV_COLUMN
--mtov-range MTOV_RANGE MTOV_RANGE
--rtov-column RTOV_COLUMN
if specified along with --spin-column, will include the effects of spin within the resulting
weights
ouptut arguments:
-v, --verbose
--output-weight-column OUTPUT_WEIGHT_COLUMN
--outpath OUTPATH
```
### modules
#### mmms.br2016
Implements the universal relations from [Breu+Rezzolla 2016](https://academic.oup.com/mnras/article/459/1/646/2608837) used to compute the maximum mass and spin compatible with a NS.
#### mmms.engine
Implements the Monte Carlo summation used within the core of the computation.
#### mmms.io
Handles all the I/O needed for the library (primarily reading samples from CSVs)
#### mmms.plot
Generates standardized plots to summarize the calculations.
#### mmms.units
Declares dimensionful quantities.
#### mmms.utils
Declares some basic utilities, including default values and how the results of the calculation are reported to the users.
---
## comparison to previous results
......@@ -37,6 +279,8 @@ Below, we compare results obtained for previous (published) LVK analyses with th
* [original review used for GW190814](GW190814-Review)
* [updated version used for GW200105, GW200115](General-Review-(post-GW190814))
---
# Contacts
## Reviewees
......
......