pyhs3.functions.ProcessNormalizationFunction¶
- class pyhs3.functions.ProcessNormalizationFunction(**data)[source]¶
Process normalization function with systematic variations.
Implements the CMS Combine ProcessNormalization class which computes a normalization factor based on systematic variations. This matches the actual CMS Combine implementation and JSON structure from combine files.
- Mathematical formulation:
result = nominalValue * exp(symShift + asymShift) * otherFactors
where: - symShift = sum(logKappa[i] * theta[i]) for symmetric variations - asymShift = sum(_asym_interpolation(theta[i], kappa_sum[i], kappa_diff[i]))
for asymmetric variations with kappa_sum = logKappaHi + logKappaLo and kappa_diff = logKappaHi - logKappaLo
otherFactors = product of all additional multiplicative terms
- Parameters:
name – Name of the function
nominalValue – Baseline normalization value (default 1.0)
thetaList – Names of symmetric variation nuisance parameters
logKappa – Log-kappa values for symmetric variations (optional, defaults to empty)
asymmThetaList – Names of asymmetric variation nuisance parameters
logAsymmKappa – List of [logKappaLo, logKappaHi] pairs for asymmetric variations (optional)
otherFactorList – Names of additional multiplicative factors
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 process normalization 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
nominalValue
thetaList
logKappa
asymmThetaList
logAsymmKappa
otherFactorList
name