docs: def get_gsim_lt(oqparam, trts=['*']):
      """
      :param oqparam:
          an :class:`openquake.commonlib.oqvalidation.OqParam` instance
      :param trts:
          a sequence of tectonic region types as strings; trts=['*']
          means that there is no filtering
      :returns:
          a GsimLogicTree instance obtained by filtering on the provided
          tectonic region types.
      """
      if 'gsim_logic_tree' not in oqparam.inputs:
          return logictree.GsimLogicTree.from_(oqparam.gsim)
      gsim_file = os.path.join(
          oqparam.base_path, oqparam.inputs['gsim_logic_tree'])
      gsim_lt = logictree.GsimLogicTree(gsim_file, trts)
      gmfcorr = oqparam.correl_model
      for trt, gsims in gsim_lt.values.items():
          for gsim in gsims:
              if gmfcorr and (gsim.DEFINED_FOR_STANDARD_DEVIATION_TYPES ==
                              {StdDev.TOTAL}):
                  raise CorrelationButNoInterIntraStdDevs(gmfcorr, gsim)
      trts = set(oqparam.minimum_magnitude) - {'default'}
      expected_trts = set(gsim_lt.values)
      assert trts <= expected_trts, (trts, expected_trts)
      imt_dep_w = any(len(branch.weight.dic) > 1 for branch in gsim_lt.branches)
      if oqparam.number_of_logic_tree_samples and imt_dep_w:
          raise NotImplementedError('IMT-dependent weights in the logic tree '
                                    'do not work with sampling!')
      return gsim_lt