Asimov Interface Overview

This section describes the integration of the RIFT pipeline into the asimov production framework.

Overview

The asimov interface allows RIFT to be deployed as a production pipeline. This involves a Python wrapper (rift.py) and a configuration template (rift.ini) that map asimov ledger metadata to RIFT-specific execution arguments.

API Reference

The core integration is handled by:

  • RIFT/asimov/rift.py: The pipeline class that manages DAG construction, submission, and monitoring.

  • RIFT/asimov/rift.ini: The Jinja2 template used to generate the runtime configuration.

Asimov Use Case: Production PE

To run RIFT through asimov, a user typically defines a production specification in a YAML file (the “ledger”). This specification is then mapped by rift.py and rift.ini into the final command line arguments for util_RIFT_pseudo_pipe.py.

Mapping the Ledger to RIFT

The mapping process determines which RIFT flags are set based on the ledger’s meta section.

Key Mapping Examples:

  • Waveform Approximant: The waveform: approximant field in the ledger maps to the --approx flag in RIFT.

  • Physics Assumptions: Fields under likelihood: assume (e.g., no spin, precessing, eccentric) map to corresponding --assume-xxx flags.

  • Sampling Settings: Fields under sampler: cip (e.g., sampling method) map to cip-sampler-method in the ini file.

  • Priors: Prior ranges defined in the ledger are mapped to specific ile-xxx-prior settings in the ini file.

Configuration File Note

It is important to note that the RIFT/asimov/rift.ini file contains many legacy or placeholder entries. The actual behavior of the pipeline is determined by which values are explicitly parsed by util_RIFT_pseudo_pipe.py and ../../executables/helper_LDG_Events.

Users should focus on the actionable items—the flags and configuration keys that the low-level RIFT code actually reads—rather than the entirety of the ini template.

Deployment Workflow

  1. Define Production: Create a YAML production spec in the asimov ledger.

  2. Build: Run asimov manage build. The Rift pipeline class identifies the production and uses rift.ini to generate a specific configuration.

  3. Submit: The Rift pipeline calls util_RIFT_pseudo_pipe.py to build a Condor DAG and then submits it to the cluster.

  4. Monitor: asimov monitors the job status via detect_completion(), which looks for the final posterior sample files.