Skip to content
Snippets Groups Projects
Commit e5d444ce authored by Kipp Cannon's avatar Kipp Cannon
Browse files

inspiral_lr: add template_id to ranking stat args

- not currently used, but this plumbing will be needed to add source population models to the ranking statistic
parent b244fdfb
No related branches found
No related tags found
No related merge requests found
......@@ -189,7 +189,8 @@ class RankingStat(snglcoinc.LnLikelihoodRatioMixin):
reference = min(events, key = lambda event: event.end)
ref_end, ref_offset = reference.end, offsetvector[reference.ifo]
# FIXME: use a proper ID column when one is available
if reference.Gamma0 not in self.template_ids:
template_id = reference.Gamma0
if template_id not in self.template_ids:
raise ValueError("event IDs %s are from the wrong template" % ", ".join(sorted(str(event.event_id) for event in events)))
# segment spanned by reference event
seg = segments.segment(ref_end - reference.template_duration, ref_end)
......@@ -206,6 +207,7 @@ class RankingStat(snglcoinc.LnLikelihoodRatioMixin):
snrs = dict((event.ifo, event.snr) for event in events),
phase = dict((event.ifo, event.coa_phase) for event in events),
dt = dict((event.ifo, float(event.end - ref_end) + offsetvector[event.ifo] - ref_offset) for event in events),
template_id = template_id,
**dict(("%s_snr_chi" % event.ifo, (event.snr, event.chisq / event.snr**2.)) for event in events)
)
except (ValueError, AssertionError) as e:
......
......@@ -253,7 +253,7 @@ class LnSignalDensity(LnLRDensity):
# network
self.horizon_history = horizonhistory.HorizonHistories((instrument, horizonhistory.NearestLeafTree()) for instrument in self.instruments)
def __call__(self, segments, snrs, phase, dt, **kwargs):
def __call__(self, segments, snrs, phase, dt, template_id, **kwargs):
assert frozenset(segments) == self.instruments
# FIXME: remove V1 from consideration. delete after O2
kwargs.pop("V1_snr_chi", None)
......@@ -490,7 +490,7 @@ class DatalessLnSignalDensity(LnSignalDensity):
# so we're ready to go!
self.add_signal_model()
def __call__(self, segments, snrs, phase, dt, **kwargs):
def __call__(self, segments, snrs, phase, dt, template_id, **kwargs):
# evaluate P(t) \propto number of templates
lnP = math.log(len(self.template_ids))
......@@ -613,7 +613,7 @@ class LnNoiseDensity(LnLRDensity):
def segmentlists(self):
return self.triggerrates.segmentlistdict()
def __call__(self, segments, snrs, phase, dt, **kwargs):
def __call__(self, segments, snrs, phase, dt, template_id, **kwargs):
assert frozenset(segments) == self.instruments
# FIXME: remove V1 from consideration. delete after O2
kwargs.pop("V1_snr_chi", None)
......@@ -858,7 +858,7 @@ class DatalessLnNoiseDensity(LnNoiseDensity):
mchirp = 0.8
self.add_noise_model(number_of_events = 10000000, prefactors_range = ((1. / mchirp)**.33, 25.), df = 40, inv_snr_pow = 3.)
def __call__(self, segments, snrs, phase, dt, **kwargs):
def __call__(self, segments, snrs, phase, dt, template_id, **kwargs):
# assume all instruments are on, 1 trigger per second per
# template
triggers_per_second_per_template = dict.fromkeys(segments, 1.)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment