Skip to content

Core Calibrator class refactoring

Summary

General functionality for all calibration pipelines:

  1. All calibration pipeline will be launched by specialised tools, that will transfer to them input data+config. Need to decide what functionality will be handled in tools and what in calibrators, and stick to this common schema. I think, tool should:

    • Propagate all configurable parameters and input data,
    • Handle external services (if such exists) that are needed for the work of calibration pipeline
    • Create the instance of specific calibrator with all needed configuration and input parameters
    • Launch the method calibrate
    • At the end catch the exceptions and return the final exit code to the Workload.
  2. Perform calculations to obtain calibration results

    • This is what should be in the method calibrate and this part should be individual for each calibration product and all computation should be performed inside particular class.
  3. Store these results in DB and in ecsv tables

    • This functionality may be generalised for all pipelines. I think it will be more clear to not have separate routines for every pipeline to upload calibration results to DB and into the ecsv tables, if all calibration results are produced in the form of calibpipe_containers, and should be stored in the DB and ecsv tables. This works for all metadata also.
  4. In case of failure they should correctly catch and propagate exceptions to the tool that launched the pipeline

    • This functionality should be generalised for all pipelines. I will create separate Issue with discussing this question.

Relevant logs and/or screenshots

Screenshot_2024-05-15_at_17.54.56