code: def range_ground_truth(self, gt_radius, range_search_metric_function):
      logger.info("range_ground_truth: begin")
      flat_desc = self.get_index_desc("Flat")
      lims, D, I, R, P, _ = self.range_search(
          False,
          flat_desc.index,
          search_parameters=None,
          radius=gt_radius,
      )
      gt_rsm = np.sum(range_search_metric_function(R)).item()
      logger.info("range_ground_truth: end")
      return gt_rsm
  
imports: import logging
  from copy import copy
  from dataclasses import dataclass
  from operator import itemgetter
  from statistics import median, mean
  from typing import Any, Dict, List, Optional
  from .utils import dict_merge
  from .index import Index, IndexFromCodec, IndexFromFactory
  from .descriptors import DatasetDescriptor, IndexDescriptor
  import faiss
  import numpy
  from scipy.optimize import curve_fit
label_desc: Use image node_id 7 for calling the Benchmark obj's underlying member method code with example usage: obj.range_ground_truth(gt_radius, range_search_metric_function) and returns: gt_rsm