Luminescence (version 0.8.6)

analyse_SAR.CWOSL: Analyse SAR CW-OSL measurements


The function performs a SAR CW-OSL analysis on an '>RLum.Analysis object including growth curve fitting.


analyse_SAR.CWOSL(object, signal.integral.min, signal.integral.max,
  background.integral.min, background.integral.max,
  rejection.criteria = NULL, dose.points = NULL, mtext.outer,
  plot = TRUE, plot.single = FALSE, onlyLxTxTable = FALSE, ...)



'>RLum.Analysis (required): input object containing data for analysis, alternatively a list of '>RLum.Analysis objects can be provided.


integer (required): lower bound of the signal integral. Can be a list of integers, if object is of type list. If the input is vector (e.g., c(1,2)) the 2nd value will be interpreted as the minimum signal integral for the Tx curve.


integer (required): upper bound of the signal integral. Can be a list of integers, if object is of type list. If the input is vector (e.g., c(1,2)) the 2nd value will be interpreted as the maximum signal integral for the Tx curve.


integer (required): lower bound of the background integral. Can be a list of integers, if object is of type list. If the input is vector (e.g., c(1,2)) the 2nd value will be interpreted as the minimum background integral for the Tx curve.


integer (required): upper bound of the background integral. Can be a list of integers, if object is of type list. If the input is vector (e.g., c(1,2)) the 2nd value will be interpreted as the maximum background integral for the Tx curve.


list (with default): provide a named list and set rejection criteria in percentage for further calculation. Can be a list in a list, if object is of type list

Allowed arguments are recycling.ratio, recuperation.rate, palaeodose.error, testdose.error and exceed.max.regpoint = TRUE/FALSE. Example: rejection.criteria = list(recycling.ratio = 10). Per default all numerical values are set to 10, exceed.max.regpoint = TRUE. Every criterium can be set to NA. In this value are calculated, but not considered, i.e. the RC.Status becomes always 'OK'


numeric (optional): a numeric vector containg the dose points values Using this argument overwrites dose point values in the signal curves. Can be a list of numeric vectors, if object is of type list


character (optional): option to provide an outer margin mtext. Can be a list of characters, if object is of type list


logical (with default): enables or disables plot output.


logical (with default) or numeric (optional): single plot output (TRUE/FALSE) to allow for plotting the results in single plot windows. If a numerice vector is provided the plots can be selected individually, i.e. plot.single = c(1,2,3,4) will plot the TL and Lx, Tx curves but not the legend (5) or the growth curve (6), (7) and (8) belong to rejection criteria plots. Requires plot = TRUE.


logical (with default): If TRUE the dose response curve fitting and plotting is skipped. This allows to get hands on the Lx/Tx table for large datasets without the need for a curve fitting.


further arguments that will be passed to the function plot_GrowthCurve or calc_OSLLxTxRatio (supported: background.count.distribution, sigmab, sig0). Please note that if you consider to use the early light subtraction method you should provide your own sigmab value!


A plot (optional) and an '>RLum.Results object is returned containing the following elements:


data.frame containing De-values, De-error and further parameters


data.frame of all calculated Lx/Tx values including signal, background counts and the dose points


data.frame with values that might by used as rejection criteria. NA is produced if no R0 dose point exists.


formula formula that have been used for the growth curve fitting

The output should be accessed using the function get_RLum.

Function version

0.8.5 (2018-10-03 19:36:42)

How to cite

Kreutzer, S. (2018). analyse_SAR.CWOSL(): Analyse SAR CW-OSL measurements. Function version 0.8.5. In: Kreutzer, S., Burow, C., Dietze, M., Fuchs, M.C., Schmidt, C., Fischer, M., Friedrich, J. (2018). Luminescence: Comprehensive Luminescence Dating Data Analysis. R package version 0.8.6.


The function performs an analysis for a standard SAR protocol measurements introduced by Murray and Wintle (2000) with CW-OSL curves. For the calculation of the Lx/Tx value the function calc_OSLLxTxRatio is used. For changing the way the Lx/Tx error is calculated use the argument background.count.distribution and sigmab, which will be passed to the function calc_OSLLxTxRatio.

Argument object is of type list

If the argument object is of type list containing only '>RLum.Analysis objects, the function re-calls itself as often as elements are in the list. This is usefull if an entire measurement wanted to be analysed without writing separate for-loops. To gain in full control of the parameters (e.g., dose.points) for every aliquot (corresponding to one '>RLum.Analysis object in the list), in this case the arguments can be provided as list. This list should be of similar length as the list provided with the argument object, otherwise the function will create an own list of the requested lenght. Function output will be just one single '>RLum.Results object.

Please be careful when using this option. It may allow a fast an efficient data analysis, but the function may also break with an unclear error message, due to wrong input data.

Working with IRSL data

The function was originally designed to work just for 'OSL' curves, following the principles of the SAR protocol. An IRSL measurement protocol may follow this procedure, e.g., post-IR IRSL protocol (Thomsen et al., 2008). Therefore this functions has been enhanced to work with IRSL data, however, the function is only capable of analysing curves that follow the SAR protocol structure, i.e., to analyse a post-IR IRSL protocol, curve data have to be pre-selected by the user to fit the standards of the SAR protocol, i.e., Lx,Tx,Lx,Tx and so on.

Example: Imagine the measurement contains pIRIR50 and pIRIR225 IRSL curves. Only one curve type can be analysed at the same time: The pIRIR50 curves or the pIRIR225 curves.

Supported rejection criteria

[recycling.ratio]: calculated for every repeated regeneration dose point.

[recuperation.rate]: recuperation rate calculated by comparing the Lx/Tx values of the zero regeneration point with the Ln/Tn value (the Lx/Tx ratio of the natural signal). For methodological background see Aitken and Smith (1988).

[testdose.error]: set the allowed error for the testdose, which per default should not exceed 10%. The testdose error is calculated as Tx_net.error/Tx_net.

[palaeodose.error]: set the allowed error for the De value, which per default should not exceed 10%.


Aitken, M.J. and Smith, B.W., 1988. Optical dating: recuperation after bleaching. Quaternary Science Reviews 7, 387-393.

Duller, G., 2003. Distinguishing quartz and feldspar in single grain luminescence measurements. Radiation Measurements, 37 (2), 161-165.

Murray, A.S. and Wintle, A.G., 2000. Luminescence dating of quartz using an improved single-aliquot regenerative-dose protocol. Radiation Measurements 32, 57-73.

Thomsen, K.J., Murray, A.S., Jain, M., Boetter-Jensen, L., 2008. Laboratory fading rates of various luminescence signals from feldspar-rich sediment extracts. Radiation Measurements 43, 1474-1486. doi:10.1016/j.radmeas.2008.06.002

See Also

calc_OSLLxTxRatio, plot_GrowthCurve, '>RLum.Analysis, '>RLum.Results, get_RLum


##load data
##ExampleData.BINfileData contains two BINfileData objects
##CWOSL.SAR.Data and TL.SAR.Data
data(ExampleData.BINfileData, envir = environment())

##transform the values from the first position in a RLum.Analysis object
object <- Risoe.BINfileData2RLum.Analysis(CWOSL.SAR.Data, pos=1)

##perform SAR analysis and set rejection criteria
results <- analyse_SAR.CWOSL(
object = object,
signal.integral.min = 1,
signal.integral.max = 2,
background.integral.min = 900,
background.integral.max = 1000,
log = "x",
fit.method = "EXP",
rejection.criteria = list(
  recycling.ratio = 10,
  recuperation.rate = 10,
  testdose.error = 10,
  palaeodose.error = 10,
  exceed.max.regpoint = TRUE)

##show De results

##show LnTnLxTx table
get_RLum(results, data.object = "LnLxTnTx.table")

# }