Skip to content

mulensinstrument.zeropoint has no magnitude system; a fit given AB photometry is silently wrong by AB-Vega (1.04 mag in W149) #313

Description

@jdeast

mulensinstrument.zeropoint has no magnitude system, and the BC grid is Vega. A fit given AB photometry is silently wrong by the AB−Vega offset — 1.04 mag in Roman W149.

What happens

The SED predicts Vega magnitudes: the BC tables are built from SVO Vega zeropoints (make_bc._vega_zeropoint), and the shipped filter files say MagSys=Vega (Roman/WFI.F087 ZeroPoint 2294.04 Jy, F146 1396.74 Jy).

SED knows about this — sed.py reads magsys per entry in its own filters: list, defaulting to Vega. But a microlensing fit with filters: [] has no SED photometry at all: its only photometric anchor is mulensinstrument.zeropoint, which converts instrumental flux to a magnitude and carries no system. Nothing converts, and nothing warns.

How much it costs

AB − Vega from the shipped zeropoints is +0.4986 (F087) and +1.0373 (F146). Handing a fit AB-calibrated photometry therefore makes the source read 1.04 mag too faint in W149 and 0.54 mag too red, which alone shrinks the inferred source radius by 1.61x and biases the colour, hence teffsed and (with star_constrains_rho: true) rho and theta_star.

It is not hypothetical — the whole DC2018 sweep has it

The 2018 Data Challenge is AB. Demonstrated with the challenge's own colour–surface-brightness relation run on a star whose size is not in question: applied to the Sun through our BC grid it over-predicts the solar angular diameter by 2.815x treated as Vega and 1.10x treated as AB, across 4000–6000 K, against the relation's own 0.034 dex scatter. Converted to Vega, the challenge's released source magnitudes reproduce its own quoted radii to 0.81–1.28x (median 0.93) on all six sweep events; unconverted they miss by 1.8–2.4 mag. (examples/DC2018/dc18_photometric_leg.py, merged in #310.)

All six sweep configs use zeropoint: {mu: 22.0, sigma: 0.02} — the simulation's AB zeropoint — and all six return R_source low: 0.36–0.74x truth, at every av from 2.09 to 7.29. The bias has the right sign and about the right size, and so do two other standing puzzles: av pulled low on five of six events, and source teffsed running 2600–3300 K (railed on the grid floor on 062).

What to do

  1. Give the zeropoint a system. Either a magsys key on the instrument entry (matching the SED's spelling, default Vega) applied when the predicted magnitude is compared, or an explicit statement in instrument.md that the zeropoint must be Vega plus a startup warning when a filter's MagSys disagrees with the data's declared system.
  2. Warn rather than assume. A fit whose only photometric anchor is a bare zeropoint should say which system it is assuming, in the startup table, next to the value.
  3. Requote the DC2018 results. Nothing in the C29 / truth-recovery analysis should be quoted until a run with corrected zeropoints (22.0 − offset: 20.963 W149, 21.501 Z087) shows what survives. The notes repo carries the full trail; paper_extinction_convention.txt §4b/4c are marked accordingly.

Not yet established

Whether this explains the basin failures too. On 062 the model's own likelihood prefers a wrong-q basin by 52 nats (#310's dc18_logp_terms.py), but that likelihood is computed with the mis-scaled source flux feeding rho through star_constrains_rho: true, so the preference has to be re-measured after the fix before it means anything.

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions