Orchestration¶
gwmock now expects adapter-backed orchestration: configs for new runs. This
surface replaces the legacy simulators: layout and splits configuration into
three explicit sections:
orchestration.populationorchestration.signalorchestration.noise
One key sits beside those three rather than inside them, because it applies to
everything the run writes: orchestration.include-injection-parameters.
Migration from simulators:¶
The legacy simulators: schema has been removed. Configs that use a top-level
simulators: key are now rejected at load time with a clear error message. All
configurations must use the orchestration: schema described below. For the
full configuration shape and examples, see the
Configuration Files guide.
The orchestration: section may contain population, signal, noise, or a
combination of them. CBC-style transient signal generation uses population
plus signal. Stationary SGWB generation can use signal without population
by setting signal.source-type: sgwb.
orchestration:
population:
backend: file
n-samples: 1
arguments:
path: population.h5
signal:
detectors:
- H1
output:
file_name: signal-{{ counter }}.hdf5
arguments:
channel: H1:STRAIN
noise:
arguments:
seed: 7
output:
file_name: noise-{{ counter }}.hdf5
Signal-only SGWB example:
orchestration:
signal:
source-type: sgwb
detectors:
- ET-Triangle-Sardinia
minimum-frequency: 5
parameters:
omega_ref: 1.0e-9
spectral_index: 0.0
reference_frequency: 25.0
output:
file_name: sgwb-{{ counter }}.hdf5
Injection parameters in the released files¶
Each HDF5 file a run writes carries the run's metadata record inside it, so the data describes itself. The injection parameters are excluded from that embedded copy unless the run asks for them:
orchestration:
include-injection-parameters: false # default
population: ...
signal: ...
The default keeps a blind mock data challenge blind: it is released as the
strain files alone, and the parameters the signals were injected with are the
answer its participants are asked to find. Set it to true when the data is for
a training set, a benchmark, or a challenge released with its solutions.
- It applies to the whole run — every signal and noise output of every batch — not to one section.
- It never changes the metadata sidecar, which always records the injection parameters. The sidecar is the producer's copy; the flag governs the files that leave.
.npyand.gwfoutputs carry no record either way, having nowhere to put one.- No adapter has to do anything to honour it. gwmock writes the record into the artifact after the backend has produced it, in the one place that also stamps the strain schema, so a third-party population, signal or noise backend gets the behaviour without implementing any of it.
gwmock merge carries the same switch as --include-injection-parameters, with
the same default: the sidecars it reads hold the parameters even when the files
it merges do not, so a merge would otherwise re-publish what each run withheld.
See Configuration Files for what the flag does not cover, and Reading data for how a consumer reads the embedded record.
For protocol details and third-party backend integration, see Protocol Contracts and Extensibility.