35 #ifndef OPENMS_FILTERING_TRANSFORMERS_PARENTPEAKMOWER_H 
   36 #define OPENMS_FILTERING_TRANSFORMERS_PARENTPEAKMOWER_H 
   81     template <
typename SpectrumType>
 
   84       typedef typename SpectrumType::Iterator Iterator;
 
   86       clean_all_charge_states_ = (
Int)param_.getValue(
"clean_all_charge_states");
 
   87       consider_NH3_loss_ = (
Int)param_.getValue(
"consider_NH3_loss");
 
   88       consider_H2O_loss_ = (
Int)param_.getValue(
"consider_H2O_loss");
 
   89       window_size_ = (
DoubleReal)param_.getValue(
"window_size");
 
   90       reduce_by_factor_ = (
Int)param_.getValue(
"reduce_by_factor");
 
   91       factor_ = (
DoubleReal)param_.getValue(
"factor");
 
   92       set_to_zero_ = (
Int)param_.getValue(
"set_to_zero");
 
   94       if (spectrum.getMSLevel() == 1)
 
   96         std::cerr << 
"Error: ParentPeakMower cannot be applied to MS level 1" << std::endl;
 
  101       double pre_pos = 0.0;
 
  102       if (!spectrum.getPrecursors().empty()) pre_pos = spectrum.getPrecursors()[0].getMZ();
 
  106         std::cerr << 
"ParentPeakMower: Warning, Precursor Position not set" << std::endl;
 
  110       Size pre_charge = spectrum.getPrecursors()[0].getCharge();
 
  113         default_charge_ = (
Size)param_.getValue(
"default_charge");
 
  114         std::cerr << 
"ParentPeakMower: Warning, Precursor charge not set, assuming default charge (" << default_charge_ << 
")" << std::endl;
 
  115         pre_charge = default_charge_;
 
  118       pre_pos *= pre_charge;
 
  121       std::vector<DRange<1> > ranges;
 
  122       for (
Size z = 1; z <= pre_charge; ++z)
 
  124         if (clean_all_charge_states_ || z == pre_charge)
 
  132           range = 
DRange<1>(pre_z_pos - window_size_, pre_z_pos + window_size_);
 
  133           ranges.push_back(range);
 
  135           if (consider_NH3_loss_)
 
  138             range = 
DRange<1>(pos - window_size_, pos + window_size_);
 
  139             ranges.push_back(range);
 
  141           if (consider_H2O_loss_)
 
  144             range = 
DRange<1>(pos - window_size_, pos + window_size_);
 
  145             ranges.push_back(range);
 
  156       for (Iterator it = spectrum.begin(); it != spectrum.end(); ++it)
 
  158         for (std::vector<
DRange<1> >::const_iterator rit = ranges.begin(); rit != ranges.end(); ++rit)
 
  160           if (rit->encloses(it->getPosition()))
 
  162             if (reduce_by_factor_)
 
  164               it->setIntensity(it->getIntensity() / factor_);
 
  170               it->setIntensity(0.0);
 
  182     void filterPeakMap(
PeakMap& exp);
 
  201 #endif // OPENMS_FILTERING/TRANSFORMERS_PARENTPEAKMOWER_H 
ParentPeakMower gets rid of high peaks that could stem from unfragmented precursor ions...
Definition: ParentPeakMower.h:53
bool clean_all_charge_states_
Definition: ParentPeakMower.h:190
DoubleReal factor_
Definition: ParentPeakMower.h:195
bool reduce_by_factor_
Definition: ParentPeakMower.h:194
DoubleReal window_size_
Definition: ParentPeakMower.h:193
void filterSpectrum(SpectrumType &spectrum)
Definition: ParentPeakMower.h:82
bool consider_H2O_loss_
Definition: ParentPeakMower.h:192
bool consider_NH3_loss_
Definition: ParentPeakMower.h:191
bool set_to_zero_
Definition: ParentPeakMower.h:196
size_t Size
Size type e.g. used as variable which can hold result of size() 
Definition: Types.h:144
Size default_charge_
Definition: ParentPeakMower.h:189
A base class for all classes handling default parameters. 
Definition: DefaultParamHandler.h:90
int Int
Signed integer type. 
Definition: Types.h:100
double DoubleReal
Double-precision real type. 
Definition: Types.h:118