Skip to content

handle 'worlds' for scales more thoughtfully #83

Description

@clarkedavida

Per Claude:

Split the one world into the three you identified, and stop deriving the physical-units one from
Nf:

  1. Nf (ensemble sea content) — already there; now accepts None = pure gauge. Drives mass/LCP
    handling and the default year for the a(β) parametrization.
  2. aWorld — world the a(β) fit was done in. Already implicitly chosen by the year arg to r0_div_a
    / a_div_r1 / a_times_fk (2017 ⇒ Nf0, 2012 ⇒ Nf21…). Make it explicit: have those functions
    carry the Nf they were fit at, store it as self.aWorld, print it in paramSummary, and warn when
    aWorld != Nf instead of silently mixing.
  3. physWorld — world the scale was fixed in fm. A property of r0_phys/r1_phys/fk_phys, not of your
    ensemble. r0 and r1 each have exactly one determination (Nf21), so in setScales just call
    r0_phys() / r1_phys() with no world= and delete the try/except world=self.world dance for them.
    Keep a real world selector only for fk, where genuinely different Nf determinations exist
    (nature / Nf21 / …).

Result: scaleType='r0' with no Nf works cleanly, the CHECKWORLD fallback machinery disappears for
r0/r1, and paramSummary shows e.g. Nf = None · a-world = Nf0 (r0/a 2017) · phys-world = Nf21 (r0 =
1.5092·r1, MILC 2010) — the hybrid is visible rather than hidden.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions