diff options
-rw-r--r-- | src/likelihood.c | 9 | ||||
-rw-r--r-- | src/likelihood.h | 2 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/likelihood.c b/src/likelihood.c index 3ee8445..ee2b92f 100644 --- a/src/likelihood.c +++ b/src/likelihood.c @@ -540,6 +540,8 @@ double nll_muon(event *ev, int id, double T0, double *pos, double *dir, double t double result; + double min_ratio; + p = particle_init(id, T0, 10000); range = p->range; @@ -673,6 +675,11 @@ double nll_muon(event *ev, int id, double T0, double *pos, double *dir, double t mu[i] = mu_direct[i] + mu_indirect + mu_noise; } + if (fast) + min_ratio = MIN_RATIO_FAST; + else + min_ratio = MIN_RATIO; + nhit = 0; for (i = 0; i < MAX_PMTS; i++) { if (ev->pmt_hits[i].flags || pmts[i].pmt_type != PMT_NORMAL) continue; @@ -688,7 +695,7 @@ double nll_muon(event *ev, int id, double T0, double *pos, double *dir, double t logp[j] = log(pq(ev->pmt_hits[i].qhs,j)) - mu[i] + j*log_mu - lnfact(j) + log_pt(ev->pmt_hits[i].t, j, mu_noise, mu_indirect, &mu_direct[i], 1, &ts[i], ts[i], PMT_TTS); if (j == 1 || logp[j] > max_logp) max_logp = logp[j]; - if (logp[j] - max_logp < MIN_RATIO*ln(10)) { + if (logp[j] - max_logp < min_ratio*ln(10)) { j++; break; } diff --git a/src/likelihood.h b/src/likelihood.h index 406c7ea..b326d5d 100644 --- a/src/likelihood.h +++ b/src/likelihood.h @@ -17,6 +17,8 @@ * probabilities which are 10 million times less likely than the most probable * value for n. */ #define MIN_RATIO -10 +/* Same as above but for the "fast" likelihood calculation. */ +#define MIN_RATIO_FAST -2 /* The fraction of reflected light which is detected. */ #define CHARGE_FRACTION 0.5 |