class_docstr: Class for Tree search based optimisation. 
docstr: Query. 
docstr_tok: ["Query","."]
code: def querie(self, cell, height, rho, nu, dimension, option=1):
      """Query."""
      diam = nu * (rho**height)
      if option == 1:
          z = min(max(1 - diam / self.C, self.tol), 1.0)
      else:
          z = 1.0
      if cell in self.value_dict:
          current = self.value_dict[cell]
          if abs(current.fidelity - z) <= self.tol:
              value = current.value
              cost = 0
          else:
              value = self.get_value(cell, z)
              self.last_z_hist = self.last_z_hist + [z]
              if abs(value - current.value) > self.C * abs(
                  current.fidelity - z
              ):
                  self.C = 2.0 * self.C
              current.value = value
              current.fidelity = z
              self.value_dict[cell] = current
              cost = self.doo_obj.eval_cost_single_point_normalised([z])
      else:
          value = self.get_value(cell, z)
          self.last_z_hist = self.last_z_hist + [z]
          bhi = diam + self.C * (1.0 - z) + value
          self.value_dict[cell] = Node(
              cell, value, z, bhi, height, dimension
          )
          cost = self.doo_obj.eval_cost_single_point_normalised([z])
  
      bhi = diam + self.C * (1.0 - z) + value
      current_object = Node(cell, value, z, bhi, height, dimension)
      return current_object, cost
  
imports: from __future__ import division
  from functools import total_ordering
  from argparse import Namespace
  import numpy
  from .general_utils import map_to_bounds
label_desc: Use image node_id 4 for calling the OptTree obj's underlying member method code with example usage: obj.querie(cell, height, rho, nu, dimension, option) and returns: current_object,  cost