# RT config file for BerryPy

###########
# General #
###########

# every condition needs to be on a new line
# the format is the following:
# <condName>; <columnName>: <columnValue(s)>; onColumn: <columnName>; measure: <measure>
#
# <condName>: a condition name chosen by you (please only use letters, numbers and underscores; do not start with a number)
# <columnName>: a column name from the PsychoPy csv output files
# <columnValue(s)>: this needs to match one or more values in the corresponding column
# onColumn: this defines the columnName that will be used for the computation (your dependent variable, so to say)
# measure: options are mean, median, sum, count (counts after outlier rejection), countAll (counts before outlier rejection)
#
# if a condition is defined by multiple columns, add more columns:
#  <condName>; <columnName>: <columnValue(s)>; <columnName>: <columnValue(s)>
#
# lines beginning with # are comments and will be ignored
#
# separators are relevant
# - use semicolons to separate condition names and relevant columns
# - use colons to separate column names from column values
# - use commas to separate multiple values (these values will be combined using a logical OR)
#   - e.g.: switch; trlType: switch; response.corr: 1,2
# spaces are not relevant
#
# note that the default comparison operator is equal (==)
# i.e., "response.corr: 1" means a trial will be included if the accuracy equals 1
# however, you can define other comparison operators; these are:
# >, <, >=, <=, !=
# these alternative comparison operators require the following syntax:
# <columnName>: [operator]<columnValue>
# e.g.: "trials.thisN: [>=]10" would exclude the first 10 trials (i.e., trials 0 to 9)
# do *not* use these operators in combination with multiple values: 
# e.g.: "trials.thisN: [>=]10, [<=]100"  # no!


#########################################
# Measures of central tendency and sums #
#########################################

# example: get RTs for correct (assuming 1 means correct) switch and repeat trials
# - switch and repeat will be the column headers in the output file generated by BerryPy
# - these columns must exist in the PsychoPy output file: trlType, response.corr, response.rt
# switch; trlType: switch; response.corr: 1; onColumn: response.rt; measure: mean
# repeat; trlType: repeat; response.corr: 1; onColumn: response.rt; measure: mean

# define conditions here:

# simply incon and con RTs for correct trials (excluding post-error trials)
rt_con; prevAcc: 2; newAcc: 2; congr: 1; onColumn: rt; measure: mean; flankerDist: 1
rt_incon; prevAcc: 2; newAcc: 2; congr: 2; onColumn: rt; measure: mean; flankerDist: 1

#################
# Uncorrected raditional PES
# post-correct trials
# this will include pre-error trials
rt_postCorrect_shortRsi; prevAcc: 2; newAcc: 2; rsi: 250; onColumn: rt; measure: mean; flankerDist: 1
rt_postCorrect_longRsi; prevAcc: 2; newAcc: 2; rsi: 700; onColumn: rt; measure: mean; flankerDist: 1
# post-error trials (for traditional PES or uncorrected robust)
rt_postError_shortRsi; prevAcc: 1; newAcc: 2; rsi: 250; nextAcc: 2; onColumn: rt; measure: mean; flankerDist: 1
rt_postError_longRsi; prevAcc: 1; newAcc: 2; rsi: 700; nextAcc: 2; onColumn: rt; measure: mean; flankerDist: 1

#################
# Corrected traditional PES
# post-correct trials
# this will include pre-error trials
rt_postCorrect_shortRsi_con; prevAcc: 2; newAcc: 2; rsi: 250; onColumn: rt; measure: mean; congr: 1; flankerDist: 1
rt_postCorrect_shortRsi_incon; prevAcc: 2; newAcc: 2; rsi: 250; onColumn: rt; measure: mean; congr: 2; flankerDist: 1
rt_postCorrect_longRsi_con; prevAcc: 2; newAcc: 2; rsi: 700; onColumn: rt; measure: mean; congr: 1; flankerDist: 1
rt_postCorrect_longRsi_incon; prevAcc: 2; newAcc: 2; rsi: 700; onColumn: rt; measure: mean; congr: 2; flankerDist: 1

########################
# Uncorrected robust PES
# pre-error trials
rt_preError_shortRsi; prevAcc: 2; newAcc: 2; rsi: 250; nextAcc: 1; onColumn: rt; measure: mean; flankerDist: 1
rt_preError_longRsi; prevAcc: 2; newAcc: 2; rsi: 700; nextAcc: 1; onColumn: rt; measure: mean; flankerDist: 1
# post-error trials -> identical to traditional approach

######################
# Corrected robust PES
# pre-error trials
# - previous trial correct
# - current trial correct
# - next trial incorrect
# con and incon are averaged within BerryPy
rt_preError_shortRsi_con; prevAcc: 2; newAcc: 2; rsi: 250; nextAcc: 1; congr: 1; onColumn: rt; measure: mean; flankerDist: 1
rt_preError_shortRsi_incon; prevAcc: 2; newAcc: 2; rsi: 250; nextAcc: 1; congr: 2; onColumn: rt; measure: mean; flankerDist: 1
rt_preError_longRsi_con; prevAcc: 2; newAcc: 2; rsi: 700; nextAcc: 1; congr: 1; onColumn: rt; measure: mean; flankerDist: 1
rt_preError_longRsi_incon; prevAcc: 2; newAcc: 2; rsi: 700; nextAcc: 1; congr: 2; onColumn: rt; measure: mean; flankerDist: 1
# post-error trials
# - previous trial incorrect
# - current trial correct
# - next trial correct
rt_postError_shortRsi_con; prevAcc: 1; newAcc: 2; rsi: 250; nextAcc: 2; congr: 1; onColumn: rt; measure: mean; flankerDist: 1
rt_postError_shortRsi_incon; prevAcc: 1; newAcc: 2; rsi: 250; nextAcc: 2; congr: 2; onColumn: rt; measure: mean; flankerDist: 1
rt_postError_longRsi_con; prevAcc: 1; newAcc: 2; rsi: 700; nextAcc: 2; congr: 1; onColumn: rt; measure: mean; flankerDist: 1
rt_postError_longRsi_incon; prevAcc: 1; newAcc: 2; rsi: 700; nextAcc: 2; congr: 2; onColumn: rt; measure: mean; flankerDist: 1






