Histogram<> Spectrum1DWidget::createMetaDistribution_(const String& name) const { Histogram<> tmp; //float arrays const ExperimentType::SpectrumType::FloatDataArrays& f_arrays = (*canvas_->getCurrentLayer().getPeakData())[0].getFloatDataArrays(); for (ExperimentType::SpectrumType::FloatDataArrays::const_iterator it = f_arrays.begin(); it != f_arrays.end(); ++it) { if (it->getName() == name) { //determine min and max of the data float min = numeric_limits<float>::max(), max = -numeric_limits<float>::max(); for (Size i = 0; i < it->size(); ++i) { if ((*it)[i] < min) min = (*it)[i]; if ((*it)[i] > max) max = (*it)[i]; } if (min >= max) return tmp; //create histogram tmp.reset(min, max, (max - min) / 500.0); for (Size i = 0; i < it->size(); ++i) { tmp.inc((*it)[i]); } } } //integer arrays const ExperimentType::SpectrumType::IntegerDataArrays& i_arrays = (*canvas_->getCurrentLayer().getPeakData())[0].getIntegerDataArrays(); for (ExperimentType::SpectrumType::IntegerDataArrays::const_iterator it = i_arrays.begin(); it != i_arrays.end(); ++it) { if (it->getName() == name) { //determine min and max of the data float min = numeric_limits<float>::max(), max = -numeric_limits<float>::max(); for (Size i = 0; i < it->size(); ++i) { if ((*it)[i] < min) min = (*it)[i]; if ((*it)[i] > max) max = (*it)[i]; } if (min >= max) return tmp; //create histogram tmp.reset(min, max, (max - min) / 500.0); for (Size i = 0; i < it->size(); ++i) { tmp.inc((*it)[i]); } } } //fallback if no array with that name exists return tmp; }
Histogram<> Spectrum2DWidget::createMetaDistribution_(const String& name) const { Histogram<> tmp; if (canvas_->getCurrentLayer().type == LayerData::DT_PEAK) { //determine min and max of the data float min = numeric_limits<float>::max(), max = -numeric_limits<float>::max(); for (ExperimentType::const_iterator s_it = canvas_->getCurrentLayer().getPeakData()->begin(); s_it != canvas_->getCurrentLayer().getPeakData()->end(); ++s_it) { if (s_it->getMSLevel() != 1) continue; //float arrays for (ExperimentType::SpectrumType::FloatDataArrays::const_iterator it = s_it->getFloatDataArrays().begin(); it != s_it->getFloatDataArrays().end(); ++it) { if (it->getName() == name) { for (Size i = 0; i < it->size(); ++i) { if ((*it)[i] < min) min = (*it)[i]; if ((*it)[i] > max) max = (*it)[i]; } break; } } //integer arrays for (ExperimentType::SpectrumType::IntegerDataArrays::const_iterator it = s_it->getIntegerDataArrays().begin(); it != s_it->getIntegerDataArrays().end(); ++it) { if (it->getName() == name) { for (Size i = 0; i < it->size(); ++i) { if ((*it)[i] < min) min = (*it)[i]; if ((*it)[i] > max) max = (*it)[i]; } break; } } } if (min >= max) return tmp; //create histogram tmp.reset(min, max, (max - min) / 500.0); for (ExperimentType::const_iterator s_it = canvas_->getCurrentLayer().getPeakData()->begin(); s_it != canvas_->getCurrentLayer().getPeakData()->end(); ++s_it) { if (s_it->getMSLevel() != 1) continue; //float arrays for (ExperimentType::SpectrumType::FloatDataArrays::const_iterator it = s_it->getFloatDataArrays().begin(); it != s_it->getFloatDataArrays().end(); ++it) { if (it->getName() == name) { for (Size i = 0; i < it->size(); ++i) { tmp.inc((*it)[i]); } break; } } //integer arrays for (ExperimentType::SpectrumType::IntegerDataArrays::const_iterator it = s_it->getIntegerDataArrays().begin(); it != s_it->getIntegerDataArrays().end(); ++it) { if (it->getName() == name) { for (Size i = 0; i < it->size(); ++i) { tmp.inc((*it)[i]); } break; } } } } else //Features { //determine min and max float min = numeric_limits<float>::max(), max = -numeric_limits<float>::max(); for (Spectrum2DCanvas::FeatureMapType::ConstIterator it = canvas_->getCurrentLayer().getFeatureMap()->begin(); it != canvas_->getCurrentLayer().getFeatureMap()->end(); ++it) { if (it->metaValueExists(name)) { float value = it->getMetaValue(name); if (value < min) min = value; if (value > max) max = value; } } //create histogram tmp.reset(min, max, (max - min) / 500.0); for (Spectrum2DCanvas::FeatureMapType::ConstIterator it = canvas_->getCurrentLayer().getFeatureMap()->begin(); it != canvas_->getCurrentLayer().getFeatureMap()->end(); ++it) { if (it->metaValueExists(name)) { tmp.inc((float)(it->getMetaValue(name))); } } } return tmp; }
Histogram<> Spectrum3DWidget::createMetaDistribution_(const String & name) const { Histogram<> tmp; //determine min and max of the data Real m_min = (numeric_limits<Real>::max)(), m_max = -(numeric_limits<Real>::max)(); for (ExperimentType::const_iterator s_it = canvas_->getCurrentLayer().getPeakData()->begin(); s_it != canvas_->getCurrentLayer().getPeakData()->end(); ++s_it) { if (s_it->getMSLevel() != 1) continue; //float arrays for (ExperimentType::SpectrumType::FloatDataArrays::const_iterator it = s_it->getFloatDataArrays().begin(); it != s_it->getFloatDataArrays().end(); ++it) { if (it->getName() == name) { for (Size i = 0; i < it->size(); ++i) { if ((*it)[i] < m_min) m_min = (*it)[i]; if ((*it)[i] > m_max) m_max = (*it)[i]; } break; } } //integer arrays for (ExperimentType::SpectrumType::IntegerDataArrays::const_iterator it = s_it->getIntegerDataArrays().begin(); it != s_it->getIntegerDataArrays().end(); ++it) { if (it->getName() == name) { for (Size i = 0; i < it->size(); ++i) { if ((*it)[i] < m_min) m_min = (*it)[i]; if ((*it)[i] > m_max) m_max = (*it)[i]; } break; } } } if (m_min >= m_max) return tmp; //create histogram tmp.reset(m_min, m_max, (m_max - m_min) / 500.0); for (ExperimentType::const_iterator s_it = canvas_->getCurrentLayer().getPeakData()->begin(); s_it != canvas_->getCurrentLayer().getPeakData()->end(); ++s_it) { if (s_it->getMSLevel() != 1) continue; //float arrays for (ExperimentType::SpectrumType::FloatDataArrays::const_iterator it = s_it->getFloatDataArrays().begin(); it != s_it->getFloatDataArrays().end(); ++it) { if (it->getName() == name) { for (Size i = 0; i < it->size(); ++i) { tmp.inc((*it)[i]); } break; } } //integer arrays for (ExperimentType::SpectrumType::IntegerDataArrays::const_iterator it = s_it->getIntegerDataArrays().begin(); it != s_it->getIntegerDataArrays().end(); ++it) { if (it->getName() == name) { for (Size i = 0; i < it->size(); ++i) { tmp.inc((*it)[i]); } break; } } } return tmp; }