Retrieve the trigger setup for a given runsetup OID

def trigger_setup(self, runsetup_oid):
        "Retrieve the trigger setup for a given runsetup OID"
        r = self._get_content(
            "jsonds/rslite/s?rs_oid={}&upifilter=1.1.2.2.3/*".
            format(runsetup_oid)
        )
        data = json.loads(r)['Data']
        if not data:
            log.error("Empty dataset.")
            return
        raw_setup = data[0]
        det_id = raw_setup['DetID']
        name = raw_setup['Name']
        description = raw_setup['Desc']

        _optical_df = raw_setup['ConfGroups'][0]
        optical_df = {'Name': _optical_df['Name'], 'Desc': _optical_df['Desc']}
        for param in _optical_df['Params']:
            pname = self.parameters.oid2name(param['OID']).replace('DAQ_', '')
            try:
                dtype = float if '.' in param['Val'] else int
                val = dtype(param['Val'])
            except ValueError:
                val = param['Val']
            optical_df[pname] = val

        _acoustic_df = raw_setup['ConfGroups'][1]
        acoustic_df = {
            'Name': _acoustic_df['Name'],
            'Desc': _acoustic_df['Desc']
        }
        for param in _acoustic_df['Params']:
            pname = self.parameters.oid2name(param['OID']).replace('DAQ_', '')
            try:
                dtype = float if '.' in param['Val'] else int
                val = dtype(param['Val'])
            except ValueError:
                val = param['Val']
            acoustic_df[pname] = val

        return TriggerSetup(
            runsetup_oid, name, det_id, description, optical_df, acoustic_df
        )