pyhs3.functions.InterpolationFunction¶
- class pyhs3.functions.InterpolationFunction(**data)[source]¶
Piecewise interpolation function implementation.
Implements ROOT’s PiecewiseInterpolation logic to morph between nominal and variation distributions based on nuisance parameter values. Supports multiple interpolation codes (0-6) for different mathematical approaches.
- Mathematical Formulations:
For additive interpolation modes (codes 0, 2, 3, 4):
\[\text{result} = \text{nominal} + \sum_i I_i(\theta_i; \text{low}_i, \text{nominal}, \text{high}_i)\]For multiplicative interpolation modes (codes 1, 5, 6):
\[\text{result} = \text{nominal} \times \prod_i [1 + I_i(\theta_i; \text{low}_i/\text{nominal}, 1, \text{high}_i/\text{nominal})]\]
- Parameters:
name – Name of the function
high – High variation parameter names
low – Low variation parameter names
nom – Nominal parameter name
interpolationCodes – Interpolation method codes (0-6)
positiveDefinite – Whether function should be positive definite
vars – Variable names this function depends on (nuisance parameters)
data (
Any
)
- __init__(**data)¶
Create a new model by parsing and validating input data from keyword arguments.
Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.
self is explicitly positional-only to allow self as a field name.
- Parameters:
data (
Any
)
Methods
__init__
(**data)Create a new model by parsing and validating input data from keyword arguments.
construct
([_fields_set])copy
(*[, include, exclude, update, deep])Returns a copy of the model.
dict
(*[, include, exclude, by_alias, ...])expression
(context)Evaluate the interpolation function.
from_orm
(obj)get_parameter_list
(context, param_key)Reconstruct a parameter list from flattened indexed keys.
json
(*[, include, exclude, by_alias, ...])model_construct
([_fields_set])Creates a new instance of the Model class with validated data.
model_copy
(*[, update, deep])!!! abstract "Usage Documentation"
model_dump
(*[, mode, include, exclude, ...])!!! abstract "Usage Documentation"
model_dump_json
(*[, indent, include, ...])!!! abstract "Usage Documentation"
model_json_schema
([by_alias, ref_template, ...])Generates a JSON schema for a model class.
model_parametrized_name
(params)Compute the class name for parametrizations of generic classes.
model_post_init
(context, /)This function is meant to behave like a BaseModel method to initialise private attributes.
model_rebuild
(*[, force, raise_errors, ...])Try to rebuild the pydantic-core schema for the model.
model_validate
(obj, *[, strict, ...])Validate a pydantic model instance.
model_validate_json
(json_data, *[, strict, ...])!!! abstract "Usage Documentation"
model_validate_strings
(obj, *[, strict, ...])Validate the given object with string data against the Pydantic model.
parse_file
(path, *[, content_type, ...])parse_obj
(obj)parse_raw
(b, *[, content_type, encoding, ...])process_parameter
(param_key)Process a single parameter that can be either a string reference or numeric value.
process_parameter_list
(param_key)Process a list parameter containing mixed string references and numeric values.
schema
([by_alias, ref_template])schema_json
(*[, by_alias, ref_template])update_forward_refs
(**localns)validate
(value)Attributes
constants
Dictionary of PyTensor constants generated from numeric field values.
model_computed_fields
model_config
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
model_extra
Get extra fields set during validation.
model_fields
model_fields_set
Returns the set of fields that have been explicitly set on this model instance.
parameters
Set of parameter names this component depends on.
type
high
low
nom
interpolationCodes
positiveDefinite
vars
name