That's the content I had with Long over email. Let me post it.
definition:
1. frame_acq_time -> inverse of frame rate in seconds. Default is 0.1s and can't be set to more than 5s
2. dk_window -> dark window in minute. Default to 2000 minutes.
3. valid dark -> currently a valid dark frame is the dark frame that has the same 1) inverse frame rate 2) total acquisition time as the light frame and 3) it was taken at a time less than ``dk_window`` ago.
Assume you only have use ct_60 (single shot, 60s) for your experiment.
0. beam time just start, frame_acq_time is set to 0.1s and dk_window is set to 2000 mins
1. run ct_60. A dark (dk1) will be collected as no dark has been run.
2. run ct_60 again. No dark will be collected as you have dk1 collected within 2000 mins from current experiment.
3. run ct_120. A dark (dk2) will be collected as there is no dark with the same total exposure time (120s)
3. change frame_acq_time to 0.5s
4. run ct_120. A dark (dk3) will be collected as there is no dark with same inverse frame rate (0.1s)
5. run ct_60. A dark (dk4) will be collected as no 60s dark with 0.5s inverse frame rate has been collected.
6. change frame_acq_time back to 0.1s
7. run ct_60. No dark will be collected and dk1 will be applied.
8. run ct_120. No dark will be collected and dk2 will be applied.
9. change dk_window to 0.5 min
10. run ct_60. A dark (dk5) will be collected as dk1 was collected more than 0.5 min ago.
11. run ct_120. A dark (dk6) will be collected as dk2 was collected more than 0.5 min ago.
Hope that help clarify some aspects.