pyhs3.distributions.histfactory.data.SampleData

class pyhs3.distributions.histfactory.data.SampleData(**data)[source]

Sample data containing bin contents and optional per-bin uncertainties.

This class represents the binned values for a single sample in a HistFactory- style model, along with optional statistical uncertainties (“errors”) per bin.

Note

  • The errors field is optional in serialized form. If omitted, it is interpreted as an array of zeros with the same length as contents. This follows the convention used in ROOT HistFactory/HS3 workflows, where some samples may not carry explicit bin-by-bin uncertainties (e.g. when BBlight is not applied).

  • Internally, errors are always materialized and accessible via the errors property.

  • If provided, errors must have the same length as contents.

Parameters:
  • contents – list[float] The bin contents (yields) for the sample.

  • errors – list[float] | None Optional serialized representation of per-bin uncertainties. This is aliased to "errors" when exporting. If None, errors are implicitly treated as zeros and omitted from serialization.

  • data (Any)

Raises:

ValueError – If contents and errors are both provided and have different lengths.

__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, ...])

from_orm(obj)

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, ensure_ascii, ...])

!!! 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, extra, ...])

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, ...])

schema([by_alias, ref_template])

schema_json(*[, by_alias, ref_template])

set_default_and_validate()

Ensure contents and errors have same length.

update_forward_refs(**localns)

validate(value)

Attributes

errors

Return the per-bin uncertainties for the sample.

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.

contents

v_errors