In method org.eclipse.chemclipse.msd.model.core.AbstractScanMSD.addIon(boolean, IIon),
for(IIon actualIon : ionsList) {
if(checkIon(ion, actualIon)) {
/*
* Check whether the intensity should be added or only the
* higher intensity should be taken.<br/> Replace the abundance
* only, if the abundance is higher than the older one otherwise
* do nothing
*/
if(addIntensity) {
addIntensities(actualIon, ion);
addNew = false;
break;
} else {
if(ion.getAbundance() >= actualIon.getAbundance()) {
addHigherIntensity(actualIon, ion);
addNew = false;
break;
} else {
addNew = false;
break;
}
}
}
}
This loop will break if checkIon() return true. If I have a large amounts of ions to add to scan, it will cost more time in addIon() method.
The ions to be added are increasing generally, so there might be two aspects to improve this procedure.
1) iterate the ionsList reversely. It will meet the same ion earlierly and break earlierly.
2) if the ion to be added is greater the last ion in ionsList, it is no necessary to loop the ionsList to check duplication.
How about it?
Best regards,
Trig