code: def build_job_configs(self, args):
          
          job_configs = {}
  
          components = Component.build_from_yamlfile(args['comp'])
          NAME_FACTORY.update_base_dict(args['data'])
          NAME_FACTORY_CLEAN.update_base_dict(args['data'])
          NAME_FACTORY_DIRTY.update_base_dict(args['data'])
  
          NAME_FACTORY_CLEAN.base_dict['evclass'] = args['clean']
          NAME_FACTORY_DIRTY.base_dict['evclass'] = args['dirty']
  
          for comp in components:
              zcut = "zmax%i" % comp.zmax
              key = comp.make_key('{ebin_name}_{evtype_name}')
              name_keys = dict(zcut=zcut,
                               ebin=comp.ebin_name,
                               psftype=comp.evtype_name,
                               coordsys=comp.coordsys,
                               irf_ver=NAME_FACTORY.irf_ver(),
                               mktime=args['mktimefilter'],
                               fullpath=True)
              outfile = NAME_FACTORY.residual_cr(**name_keys)
              if args['hpx_order']:
                  hpx_order = min(comp.hpx_order, args['hpx_order'])
              else:
                  hpx_order = comp.hpx_order
              job_configs[key] = dict(bexpcube_dirty=NAME_FACTORY_DIRTY.bexpcube(**name_keys),
                                      ccube_dirty=NAME_FACTORY_DIRTY.ccube(**name_keys),
                                      bexpcube_clean=NAME_FACTORY_CLEAN.bexpcube(**name_keys),
                                      ccube_clean=NAME_FACTORY_CLEAN.ccube(**name_keys),
                                      outfile=outfile,
                                      hpx_order=hpx_order,
                                      full_output=args['full_output'],
                                      logfile=make_nfs_path(outfile.replace('.fits', '.log')))
  
          return job_configs
docs: Hook to build job configurations