Evaluating a model

Direct evaluation of the model

Normally Sherpa will handle model evaluation automatically, such as during a fit or displaying the model results. However, the models can be evalutated directly by passing in the grid (the independent axis) directly. If mdl is an instance of a Sherpa model - that is it is derived from the Model class - then there are two standard ways to perform this evaluation:

  1. Call the model with the grid directly - e.g. for a one-dimensional grid use one of:

    mdl(x)
    mdl(xlo, xhi)
    
  2. Use the calc() method, which requires a sequence of parameter values and then the grid; for the one-dimensional case this would be:

    mdl.calc(pars, x)
    mdl.calc(pars, xlo, xhi)
    

    In this case the parameter values do not need to match the values stored in the model itself. This can be useful when a model is to be embedded within another one, as shown in the two-dimensional user model example.

Evaluating a model with a data object

It is also possible to pass a model to a data object and evaluate the model on a grid appropriate for the data, using the eval_model() and eval_model_to_fit() methods. This can be useful when working in an environment where the mapping between the “native” grids used to represent data and models is not a simple one-to-one relation, such as when analyzing astronomical X-ray spectral data with an associated response (i.e. a RMF file), or when using a PSF.

Reference/API

This section describes some of the classes used to evaluate the models, in particular in supporting models evaluated against DataPHA objects.