Here's the order of your workflow. Geometric correction should not be necessary if you are using Level-1 Terrain Corrected Landsat-8 data (L1T). These GeoTIFF data bands come precision terrain corrected and geo-registered so that step is already complete. You will be performing the radiometric correction when you calibrate the data to at-sensor or top-of-atmosphere (TOA) surface reflectance. The calibration coefficients are found in the *_MTL.txt metedata file. After the data are in TOA reflectance, you then apply the cos(t) atmospheric correction algorithm. Think of Cos(t) as an extension of dark object subtraction (DOS). DOS alone does not account for transmittance; the (t) in cos(t) is the multiplicative factor used to estimate this atmospheric transmittance by taking in account solar zenith.
t = Atmospheric Transmittance expressed as
Solar zenith is calculated from the sun elevation data found in the metadata file, where Theta is sun elevation.
I'm not sure which programming language you plan to use, but I have this algorithm coded in IDL. The code parses the metadata to extract the relevant information, applies the gain/offset to calibrate (essentially a linear regression), and performs cos(t) in a batch process. I'm happy to share if you wish.