<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def down_capture(self, benchmark, threshold=0.0, compare_op="lt"):
 """Downside capture ratio. Measures the performance of `self` relative to benchmark conditioned on periods where `benchmark` is lt or le to `threshold`. Downside capture ratios are calculated by taking the fund's monthly return during the periods of negative benchmark performance and dividing it by the benchmark return. [Source: CFA Institute] Parameters benchmark : {pd.Series, TSeries, 1d np.ndarray} The benchmark security to which `self` is compared. threshold : float, default 0. The threshold at which the comparison should be done. `self` and `benchmark` are "filtered" to periods where `benchmark` is lt/le `threshold`. compare_op : {'lt', 'le'} Comparison operator used to compare to `threshold`. 'lt' is less-than; 'le' is less-than-or-equal. Returns ------- float Note ---- This metric uses geometric, not arithmetic, mean return. """


        slf, bm = self.downmarket_filter(
            benchmark=benchmark,
            threshold=threshold,
            compare_op=compare_op,
            include_benchmark=True,
        )
        return slf.geomean() / bm.geomean()