@@ -200,7 +200,8 @@ Rcpp::DataFrame RcppPwiz::getScanHeaderInfo (Rcpp::IntegerVector whichScan) {
200200 Rcpp::NumericVector isolationWindowUpperOffset (N_scans);
201201 Rcpp::NumericVector scanWindowLowerLimit (N_scans);
202202 Rcpp::NumericVector scanWindowUpperLimit (N_scans);
203-
203+ Rcpp::NumericVector electronBeamEnergy (N_scans);
204+
204205 for (size_t i = 0 ; i < N_scans; i++) {
205206 int current_scan = whichScan[i];
206207 size_t current_index = static_cast <size_t >(current_scan - 1 );
@@ -262,6 +263,8 @@ Rcpp::DataFrame RcppPwiz::getScanHeaderInfo (Rcpp::IntegerVector whichScan) {
262263 const Precursor& precursor = sp->precursors [0 ];
263264 // collisionEnergy
264265 collisionEnergy[i] = precursor.activation .cvParam (MS_collision_energy).valueAs <double >();
266+ // electronBeamEnergy - for EAD
267+ electronBeamEnergy[i] = precursor.activation .cvParam (MS_electron_beam_energy).value .empty () ? NA_REAL : precursor.activation .cvParam (MS_electron_beam_energy).valueAs <double >();
265268 // precursorScanNum
266269 size_t precursorIndex = slp->find (precursor.spectrumID );
267270 if (precursorIndex < N) {
@@ -288,6 +291,7 @@ Rcpp::DataFrame RcppPwiz::getScanHeaderInfo (Rcpp::IntegerVector whichScan) {
288291 }
289292 } else {
290293 collisionEnergy[i] = NA_REAL;
294+ electronBeamEnergy[i] = NA_REAL;
291295 precursorScanNum[i] = NA_INTEGER;
292296 precursorMZ[i] = NA_REAL;
293297 precursorCharge[i] = NA_INTEGER;
@@ -302,7 +306,7 @@ Rcpp::DataFrame RcppPwiz::getScanHeaderInfo (Rcpp::IntegerVector whichScan) {
302306 }
303307 }
304308
305- Rcpp::List header (31 );
309+ Rcpp::List header (32 );
306310 std::vector<std::string> names;
307311 size_t i = 0 ;
308312 names.push_back (" seqNum" );
@@ -367,6 +371,8 @@ Rcpp::DataFrame RcppPwiz::getScanHeaderInfo (Rcpp::IntegerVector whichScan) {
367371 header[i++] = Rcpp::wrap (scanWindowLowerLimit);
368372 names.push_back (" scanWindowUpperLimit" );
369373 header[i++] = Rcpp::wrap (scanWindowUpperLimit);
374+ names.push_back (" electronBeamEnergy" );
375+ header[i++] = Rcpp::wrap (electronBeamEnergy);
370376 header.attr (" names" ) = names;
371377
372378 return header;
0 commit comments