code: def create_segs_from_cats_job(cp, out_dir, ifo_string, tags=None):
      
      if tags is None:
          tags = []
  
      seg_server_url = cp.get_opt_tags("workflow-segments",
                                     "segments-database-url", tags)
      veto_def_file = cp.get_opt_tags("workflow-segments",
                                    "segments-veto-definer-file", tags)
  
      job = Executable(cp, 'segments_from_cats', universe='local',
                                 ifos=ifo_string, out_dir=out_dir, tags=tags)
      job.add_opt('--separate-categories')
      job.add_opt('--segment-url', seg_server_url)
  
      job.add_opt('--veto-file', veto_def_file)
      # FIXME: Would like the proxy in the Workflow instance
      # FIXME: Explore using the x509 condor commands
      # If the user has a proxy set in the environment, add it to the job
      return job
docs: This function creates the CondorDAGJob that will be used to run
      ligolw_segments_from_cats as part of the workflow
  
      Parameters
      -----------
      cp : pycbc.workflow.configuration.WorkflowConfigParser
          The in-memory representation of the configuration (.ini) files
      out_dir : path
          Directory in which to put output files
      ifo_string : string
          String containing all active ifos, ie. "H1L1V1"
      tag : list of strings, optional (default=None)
          Use this to specify a tag(s). This can be used if this module is being
          called more than once to give call specific configuration (by setting
          options in [workflow-datafind-${TAG}] rather than [workflow-datafind]).
          This is also used to tag the Files returned by the class to uniqueify
          the Files and uniqueify the actual filename.
          FIXME: Filenames may not be unique with current codes!
  
      Returns
      --------
      job : Job instance
          The Job instance that will run segments_from_cats jobs