code: def extract_header(self):
          
          self.log.info("Extracting the header")
          raw_header = self.raw_header = defaultdict(list)
          first_line = self.blob_file.readline()
          first_line = try_decode_string(first_line)
          self.blob_file.seek(0, 0)
          if not first_line.startswith(str('start_run')):
              self.log.warning("No header found.")
              return raw_header
          for line in iter(self.blob_file.readline, ''):
              line = try_decode_string(line)
              line = line.strip()
              try:
                  tag, value = str(line).split(':')
              except ValueError:
                  continue
              raw_header[tag].append(str(value).split())
              if line.startswith(str('end_event:')):
                  self._record_offset()
                  if self._auto_parse and 'physics' in raw_header:
                      parsers = [p[0].lower() for p in raw_header['physics']]
                      self._register_parsers(parsers)
                  return raw_header
          raise ValueError("Incomplete header, no 'end_event' tag found!")
docs: Create a dictionary with the EVT header information