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