Skip to content

Commit c646062

Browse files
committed
Fixed cases where zspec or zphot are out of confidence interval
1 parent 206956f commit c646062

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

src/fast++-fitter.cpp

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,10 +63,14 @@ fitter_t::fitter_t(const options_t& opt, const input_state_t& inp, const gridder
6363
uint_t iup = 1 + 2*ic + 1;
6464

6565
for (uint_t is : range(input.id)) {
66-
// Get range from zlow and zup
67-
if (is_finite(input.zphot.safe(is,ilow)) && is_finite(input.zphot.safe(is,iup))) {
68-
idzl.safe[is] = min_id(abs(output.z - input.zphot.safe(is,ilow)));
69-
idzu.safe[is] = min_id(abs(output.z - input.zphot.safe(is,iup)));
66+
if (idz.safe[is] != npos) {
67+
// Range is limited to z_spec
68+
idzl.safe[is] = idz.safe[is];
69+
idzu.safe[is] = idz.safe[is];
70+
} else if (is_finite(input.zphot.safe(is,ilow)) && is_finite(input.zphot.safe(is,iup))) {
71+
// Get range from zlow and zup
72+
idzl.safe[is] = min_id(abs(output_z - input.zphot.safe(is,ilow)));
73+
idzu.safe[is] = min_id(abs(output_z - input.zphot.safe(is,iup)));
7074
}
7175
}
7276
}
@@ -268,8 +272,9 @@ void fitter_t::fit_galaxies(const model_t& model, uint_t i0, uint_t i1) {
268272
uint_t is = i + i0;
269273

270274
// Apply constraints on redshift
271-
if ((idz.safe[is] != npos && model.iz != idz.safe[is]) ||
272-
model.iz < idzl.safe[is] || model.iz > idzu.safe[is]) {
275+
if ((idzp.safe[is] == npos || model.iz != idzp.safe[is]) &&
276+
(idz.safe[is] == npos || model.iz != idz.safe[is]) &&
277+
(model.iz < idzl.safe[is] || model.iz > idzu.safe[is])) {
273278
wsp.chi2.safe[i] = finf;
274279
wsp.mass.safe[i] = fnan;
275280
wsp.sfr.safe[i] = fnan;

0 commit comments

Comments
 (0)