Fix calc_Q for shared theta_offset #175
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
In models with a shared
theta_offset
(where the parameter is tied, for example for mm and pp) the values of Q at which the model is evaluated were not properly calculated (PolarizedNeutronProbe.calc_Q
).The first time calc_Q is determined,
measurement_union
is called, and then probe.T is set to the xs.T + shared_offset. Later calls to_calculate_union
add the current theta_offset to that T, which is incorrect (should be added to the original probe.T).This PR stores the original T (as
probe._To
) and when_calculate_union()
is called for a sharedtheta_offset
, it will add the current offset to the original T.Note that currently oversampling is not compatible with
_calculate_union
. Need to fix that separately (oversampling is ignored when calculating new values ofcalc_Q
whentheta_offset
is a fittable parameter)