asimov-pesummary
================
``asimov-pesummary`` is a plugin for `Asimov `_ 0.7+
that integrates `PESummary `_ as a post-processing
pipeline. Once installed, the plugin is discovered automatically via Asimov's entry-point
registry — no extra configuration is required.
**What it does**
* Builds a ``summarypages`` command from the per-production Asimov meta-data
(waveform, data-quality, calibration, PSDs, …).
* Submits the job to an HTCondor scheduler.
* Returns the path to the resulting PESummary HDF5 metafile so that Asimov can
track it as a downstream asset.
Installation
------------
From PyPI::
pip install asimov-pesummary
From source::
git clone https://git.ligo.org/asimov/asimov-pesummary.git
cd asimov-pesummary
pip install -e ".[docs,test]"
Configuration
-------------
Add a ``postprocessing.pesummary`` block to the relevant production in your
Asimov ledger. All keys are optional unless noted.
.. code-block:: yaml
postprocessing:
pesummary:
accounting group: ligo.dev.o4.cbc.pe.lalinference # required on LVK clusters
multiprocess: 4 # number of CPUs (required)
cosmology: Planck15_lal
redshift: exact
skymap samples: 2000
evolve spins: forwards # "forwards", "backwards", or "forwards backwards"
calculate:
- precessing snr
regenerate: true
regenerate posteriors:
- redshift
- mass_1_source
- mass_2_source
Subject analyses
-----------------
``PESummary`` can also be attached to an Asimov ``SubjectAnalysis`` instead
of a single production, in which case it combines several productions'
results into one set of summary pages rather than post-processing just one.
This uses the same ``postprocessing.pesummary`` configuration described
above (inherited from the event/project the same way it is for a regular
production), plus the ``analyses``/``refreshable`` keys, which are generic
Asimov ``SubjectAnalysis`` behaviour rather than anything specific to this
plugin:
.. code-block:: yaml
kind: analysis
name: CombinedPESummary
pipeline: pesummary
analyses:
- pipeline: bilby # combine every bilby production on this event
refreshable: true
status: ready
Marking the analysis ``refreshable: true`` means Asimov's own monitor loop
(``asimov monitor``) automatically resubmits it whenever the set of
resolved source analyses changes — for example because a new production
finished, or because a review decision changed which productions match the
``analyses`` selector. See Asimov's own documentation for the
``analyses``/``refreshable`` selector syntax and staleness detection; this
plugin only implements what happens when such a resubmission occurs.
The **first** time a ``SubjectAnalysis`` PESummary production runs (or if a
previously-included analysis has dropped out of the resolved set, for
example after a review decision), it submits a single ``summarypages`` run
combining every currently resolved source analysis.
On a **later refresh that only adds** newly-resolved analyses to an
already-published page, only the new analyses are submitted, using
``summarypages``'s own ``--add_to_existing``/``--existing_webdir`` flags to
append them to the existing pages in place, rather than reprocessing every
source analysis again from scratch.
.. note::
``summarypages`` has no way to retract a label from an already-published
page. If a previously-included analysis is later *removed* from the
resolved set, the next refresh falls back to a full rebuild (recombining
every currently resolved analysis) instead of an incremental update.
.. toctree::
:maxdepth: 2
:caption: Reference
api