96  std::vector<std::size_t> subset_of_tims_frame_ids;
 
   99  bool asked_ion_mobility_scan_num_range = 
false;
 
  101  quint32 mobility_scan_num_range_begin = std::numeric_limits<quint32>::max();
 
  102  quint32 mobility_scan_num_range_end   = std::numeric_limits<quint32>::max();
 
  103  quint32 mobility_scan_num_range_width = std::numeric_limits<quint32>::max();
 
  105  double mobility_one_over_k0             = std::numeric_limits<double>::max();
 
  106  double mobility_one_over_k0_range_begin = std::numeric_limits<double>::max();
 
  107  double mobility_one_over_k0_range_end   = std::numeric_limits<double>::max();
 
  112      mobility_scan_num_range_begin =
 
  114      mobility_scan_num_range_end =
 
  118      mobility_scan_num_range_width =
 
  119        mobility_scan_num_range_end + 1 - mobility_scan_num_range_begin;
 
  121      asked_ion_mobility_scan_num_range = 
true;
 
  127  const std::vector<FrameIdDescr> &frame_id_descr_list = 
msp_timsData->getFrameIdDescrList();
 
  130  std::size_t scan_count = 0;
 
  132  for(
auto const &frame_record : 
msp_timsData->getTimsFrameRecordList())
 
  140      if(frame_record.frame_id == 0)
 
  146      std::size_t ms_level = 2;
 
  147      if(frame_record.msms_type == 0)
 
  156      subset_of_tims_frame_ids.push_back(frame_record.frame_id);
 
  158      if(mobility_scan_num_range_width != std::numeric_limits<int>::max())
 
  160          scan_count += mobility_scan_num_range_width;
 
  164          scan_count += frame_id_descr_list[frame_record.frame_id].m_scanCount;
 
  169  std::size_t frame_count = subset_of_tims_frame_ids.size();
 
  170  qDebug() << 
"The number of retained RT range- and MS level-matching frames : " << frame_count;
 
  184  bool asked_mz_range   = 
false;
 
  185  double mz_range_begin = -1;
 
  186  double mz_range_end   = -1;
 
  190      asked_mz_range = 
true;
 
  203  std::size_t mz_index_merge_window = 0;
 
  206      mz_index_merge_window =
 
  214  std::size_t scan_index = 0; 
 
  216  for(std::size_t tims_frame_id : subset_of_tims_frame_ids)
 
  226      const FrameIdDescr ¤t_frame_record = frame_id_descr_list[tims_frame_id];
 
  246          mobility_one_over_k0_range_begin =
 
  250          mobility_one_over_k0_range_end =
 
  254          mobility_scan_num_range_begin =
 
  257          mobility_scan_num_range_end =
 
  260          asked_ion_mobility_scan_num_range = 
true;
 
  268      if(asked_ion_mobility_scan_num_range)
 
  270          if(mobility_scan_num_range_end > (count_of_mobility_scans - 1))
 
  272              mobility_scan_num_range_end = count_of_mobility_scans - 1;
 
  277          mobility_scan_num_range_begin = 0;
 
  278          mobility_scan_num_range_end   = count_of_mobility_scans - 1;
 
  285      if(mobility_one_over_k0_range_begin == std::numeric_limits<double>::max())
 
  286        mobility_one_over_k0_range_begin =
 
  288      if(mobility_one_over_k0_range_end == std::numeric_limits<double>::max())
 
  289        mobility_one_over_k0_range_end =
 
  292      mobility_scan_num_range_width =
 
  293        mobility_scan_num_range_end + 1 - mobility_scan_num_range_begin;
 
  298        mobility_scan_num_range_begin + (mobility_scan_num_range_width / 2));
 
  310      spectrum_id.
setNativeId(QString(
"frame_id=%1 global_scan_index=%2 im_scan_range_begin=%3 " 
  311                                      "im_scan_range_end=%4")
 
  314                                .arg(mobility_scan_num_range_begin)
 
  315                                .arg(mobility_scan_num_range_end));
 
  325      unsigned int frame_ms_level = tims_frame_csp.get()->
getMsLevel();
 
  326      qualified_mass_spectrum.
setMsLevel(frame_ms_level);
 
  332        mobility_scan_num_range_begin + (mobility_scan_num_range_width / 2)));
 
  335      qDebug() << 
"mobility_one_over_k0:" << mobility_one_over_k0
 
  336               << 
"mobility_one_over_k0_range_begin:" << mobility_one_over_k0_range_begin
 
  337               << 
"mobility_one_over_k0_range_end" << mobility_one_over_k0_range_end;
 
  339      if(mobility_one_over_k0 == std::numeric_limits<double>::max() ||
 
  340         mobility_one_over_k0_range_begin == std::numeric_limits<double>::max() ||
 
  341         mobility_one_over_k0_range_end == std::numeric_limits<double>::max())
 
  344                               "range are undefined."));
 
  347                                                mobility_one_over_k0);
 
  351                                                mobility_one_over_k0_range_end);
 
  358      if(mobility_scan_num_range_begin == std::numeric_limits<quint32>::max() ||
 
  359         mobility_scan_num_range_end == std::numeric_limits<quint32>::max())
 
  364                                                mobility_scan_num_range_begin +
 
  365                                                  (mobility_scan_num_range_width / 2));
 
  368        mobility_scan_num_range_begin);
 
  383          quint32 min_mz_index_out = 0;
 
  384          quint32 max_mz_index_out = 0;
 
  389                mz_index_merge_window,
 
  392                mobility_scan_num_range_begin,
 
  393                mobility_scan_num_range_end,
 
  400                mz_index_merge_window,
 
  401                mobility_scan_num_range_begin,
 
  402                mobility_scan_num_range_end,