code: def add_cumulative_files(workflow, output_file, input_files, out_dir,
                           execute_now=False, tags=None):
      
      if tags is None:
          tags = []
      llwadd_job = LigolwAddExecutable(workflow.cp, 'llwadd',
                         ifo=output_file.ifo_list, out_dir=out_dir, tags=tags)
      add_node = llwadd_job.create_node(output_file.segment, input_files,
                                     output=output_file)
      if file_needs_generating(add_node.output_files[0].cache_entry.path,
                               workflow.cp, tags=tags):
          if execute_now:
              workflow.execute_node(add_node)
          else:
              workflow.add_node(add_node)
      else:
          add_node.executed = True
          for fil in add_node._outputs:
              fil.node = None
              fil.PFN(urlparse.urljoin('file:',
                                       urllib.pathname2url(fil.storage_path)),
                      site='local')
      return add_node.output_files[0]
docs: Function to combine a set of segment files into a single one. This function
      will not merge the segment lists but keep each separate.
  
      Parameters
      -----------
      workflow: pycbc.workflow.core.Workflow
          An instance of the Workflow class that manages the workflow.
      output_file: pycbc.workflow.core.File
          The output file object
      input_files: pycbc.workflow.core.FileList
          This list of input segment files
      out_dir : path
          The directory to write output to.
      execute_now : boolean, optional
          If true, jobs are executed immediately. If false, they are added to the
          workflow to be run later.
      tags : list of strings, optional
          A list of strings that is used to identify this job