(calibration_abc_algo_properties_noise_deterministic)= # Introducing noise for deterministic function As previously explained, when comparing your reference dataset to a deterministic model (i.e., a model with no intrinsic stochastic behaviour), the user can explicitly specify his own uncertainty assumptions. This can be done by calling `setGaussianNoise`, whose prototype is ````{only} cpp ```cpp void setGaussianNoise(const char *stdname); ``` ```` ````{only} py ```python setGaussianNoise(stdname) ``` ```` The idea is to inject random noise (assumed Gaussian and centered) into the model predictions, using internal variables from the reference dataset to define its standard deviation. The only argument is a list of variables, formatted as `"stdvaria1:stdvaria2"`, where each element corresponds to a variable within the reference {{tds}}. These values provide the standard deviation for each observation point (for example, to represent experimental uncertainty). This solution allows to: - define a common uncertainty (applied generally across all observations in the reference dataset) by simply adding an attribute with a `TAttributeFormula`, where the formula is constant; - use experimental uncertainties that are provided along with the reference values; - store all hypotheses within the reference {{tds}} object. For this reason, we strongly recommend saving both the parameter and reference datasets at the end of a calibration procedure. ```{warning} The number of variables in the `stdname` list must match the number of model outputs. Even in the special case where calibration involves two outputs, with one having no associated uncertainty, a zero-valued attribute should still be added for that output if the other requires an uncertainty model. ```