code: def new_output_file_opt(self, valid_seg, extension, option_name, tags=None,
                              store_file=None, use_tmp_subdirs=False):
          
          if tags is None:
              tags = []
  
          # Changing this from set(tags) to enforce order. It might make sense
          # for all jobs to have file names with tags in the same order.
          all_tags = copy.deepcopy(self.executable.tags)
          for tag in tags:
              if tag not in all_tags:
                  all_tags.append(tag)
  
          store_file = store_file if store_file is not None else self.executable.retain_files
  
          fil = File(self.executable.ifo_list, self.executable.name,
                     valid_seg, extension=extension, store_file=store_file,
                     directory=self.executable.out_dir, tags=all_tags,
                     use_tmp_subdirs=use_tmp_subdirs)
          self.add_output_opt(option_name, fil)
          return fil
docs: This function will create a workflow.File object corresponding to the given
          information and then add that file as output of this node.
  
          Parameters
          -----------
          valid_seg : ligo.segments.segment
              The time span over which the job is valid for.
          extension : string
              The extension to be used at the end of the filename.
              E.g. '.xml' or '.sqlite'.
          option_name : string
              The option that is used when setting this job as output. For e.g.
              'output-name' or 'output-file', whatever is appropriate for the
              current executable.
          tags : list of strings, (optional, default=[])
              These tags will be added to the list of tags already associated with
              the job. They can be used to uniquely identify this output file.
          store_file : Boolean, (optional, default=True)
              This file is to be added to the output mapper and will be stored
              in the specified output location if True. If false file will be
              removed when no longer needed in the workflow.