API highlights ============== This section lists the main libraries and classes that make up the heron API. It is not exhaustive; instead it points to the primary entry points that are commonly used by the applications and analysis workflows. Analysis services (ana/) ------------------------ * ``AnalysisConfigService``: provides analysis configuration and processor selection logic. * ``ColumnDerivationService``: defines derived columns for event trees. * ``RDataFrameService``: loads samples into ROOT ``RDataFrame`` instances. * ``SelectionService``: centralises selection configuration and predicates. Input/output utilities (io/) ---------------------------- * ``ArtFileProvenanceIO``: reads and writes art provenance summaries. * ``SampleIO``: stores sample metadata and resolves input ROOT files. * ``NormalisationService``: builds sample normalisation and POT totals. * ``EventListIO``: writes event-level output trees and metadata. * ``RunDatabaseService``: queries run database information. * ``SubRunInventoryService``: scans input files to collect run/subrun totals. Plotting utilities (plot/) -------------------------- * ``PlotEnv``: resolves plot output directories and formatting. * ``PlotDescriptors``: defines standard labels, axis titles, and annotations. * ``PlotChannels``: groups samples into stacked plot channels. * ``Plotter``: orchestrates histogram styling and rendering. * ``StackedHist``: helper for stacked histogram construction. Command-line helpers (apps/) ---------------------------- The CLI layer relies on reusable helpers in ``apps/include`` such as ``AppUtils`` for path resolution, ``AppLog`` for structured logging, and module-specific parsers (``ArtCLI``, ``SampleCLI``, and ``EventCLI``).