(calibration_classes_functions_observations)= # Calibration classes, distance and likelihood functions, observations and model This section introduces the common elements of all analyses in the **Calibration** module. Indeed the methods discussed hereafter will be using the same architecture and will require a common set of items, listed below: - a model has to be set up as this is what one wants to calibrate. It can come either as a `Relauncher::TRun` instance, as a `Launcher::TCode` or a **Launcher** function. This part is introduced in [](#calibration_classes_functions_observations_data_model) (for the general concept and the difference with the usual organisation of model definition) and discussed later on (mainly in relation to the constructor of `TCalibration`-derived objects) in [](#calibration_classes_functions_observations_calibration_classes) and in the dedicated section in each method; - a reference observations have to be defined once and for all so that the model can be run for each newly defined set of parameter values (every new configuration). This part is discussed first in [](#calibration_classes_functions_observations_data_model) and the way to provide them is also partly discussed in [](#calibration_classes_functions_observations_data_and_distance); - a distance or likelihood function has to be created, usually within the calibration instance, to quantify how well the model under study reproduces the reference observations. This part is discussed in [](#calibration_classes_functions_observations_data_and_distance); - a main object has to be created, a calibration method instance, that inherits from the `TCalibration` class. This is discussed in [](#calibration_classes_functions_observations_calibration_classes). ```{toctree} classes_functions_observations/data_model classes_functions_observations/data_and_distance classes_functions_observations/calibration_classes classes_functions_observations/use_case ```