def _create_additional_data(self):
        logging.info('Creating selected event histograms...')
        if self._analyzed_data_file is not None and self._create_meta_event_index:
            meta_data_size = self.meta_data.shape[0]
            n_event_index = self.interpreter.get_n_meta_data_event()
            if meta_data_size == n_event_index:
                if self.interpreter.meta_table_v2:
                    description = data_struct.MetaInfoEventTableV2().columns.copy()
                else:
                    description = data_struct.MetaInfoEventTable().columns.copy()
                last_pos = len(description)
                if self.scan_parameters is not None:  # add additional column with the scan parameter
                    for index, scan_par_name in enumerate(self.scan_parameters.dtype.names):
                        dtype, _ = self.scan_parameters.dtype.fields[scan_par_name][:2]
                        description[scan_par_name] = Col.from_dtype(dtype, dflt=0, pos=last_pos + index)
                meta_data_out_table = self.out_file_h5.create_table(self.out_file_h5.root, name='meta_data', description=description, title='MetaData', filters=self._filter_table)
                entry = meta_data_out_table.row
                for i in range(0, n_event_index):
                    if self.interpreter.meta_table_v2:
                        entry['event_number'] = self.meta_event_index[i][0]  # event index
                        entry['timestamp_start'] = self.meta_data[i][3]  # timestamp
                        entry['timestamp_stop'] = self.meta_data[i][4]  # timestamp
                        entry['error_code'] = self.meta_data[i][5]  # error code
                    else:
                        entry['event_number'] = self.meta_event_index[i][0]  # event index
                        entry['time_stamp'] = self.meta_data[i][3]  # time stamp
                        entry['error_code'] = self.meta_data[i][4]  # error code
                    if self.scan_parameters is not None:  # scan parameter if available
                        for scan_par_name in self.scan_parameters.dtype.names:
                            entry[scan_par_name] = self.scan_parameters[scan_par_name][i]
                    entry.append()
                    self.out_file_h5.flush()
                if self.scan_parameters is not None:
                    logging.info("Save meta data with scan parameter " + scan_par_name)
            else:
                logging.error('Meta data analysis failed')
        if self._create_service_record_hist:
            self.service_record_hist = self.interpreter.get_service_records_counters()
            if self._analyzed_data_file is not None:
                service_record_hist_table = self.out_file_h5.create_carray(self.out_file_h5.root, name='HistServiceRecord', title='Service Record Histogram', atom=tb.Atom.from_dtype(self.service_record_hist.dtype), shape=self.service_record_hist.shape, filters=self._filter_table)
                service_record_hist_table[:] = self.service_record_hist
        if self._create_tdc_counter_hist:
            self.tdc_counter_hist = self.interpreter.get_tdc_counters()
            if self._analyzed_data_file is not None:
                tdc_counter_hist = self.out_file_h5.create_carray(self.out_file_h5.root, name='HistTdcCounter', title='All Tdc word counter values', atom=tb.Atom.from_dtype(self.tdc_counter_hist.dtype), shape=self.tdc_counter_hist.shape, filters=self._filter_table)
                tdc_counter_hist[:] = self.tdc_counter_hist
        if self._create_error_hist:
            self.error_counter_hist = self.interpreter.get_error_counters()
            if self._analyzed_data_file is not None:
                error_counter_hist_table = self.out_file_h5.create_carray(self.out_file_h5.root, name='HistErrorCounter', title='Error Counter Histogram', atom=tb.Atom.from_dtype(self.error_counter_hist.dtype), shape=self.error_counter_hist.shape, filters=self._filter_table)
                error_counter_hist_table[:] = self.error_counter_hist
        if self._create_trigger_error_hist:
            self.trigger_error_counter_hist = self.interpreter.get_trigger_error_counters()
            if self._analyzed_data_file is not None:
                trigger_error_counter_hist_table = self.out_file_h5.create_carray(self.out_file_h5.root, name='HistTriggerErrorCounter', title='Trigger Error Counter Histogram', atom=tb.Atom.from_dtype(self.trigger_error_counter_hist.dtype), shape=self.trigger_error_counter_hist.shape, filters=self._filter_table)
                trigger_error_counter_hist_table[:] = self.trigger_error_counter_hist

        self._create_additional_hit_data()
        self._create_additional_cluster_data()