Does the SIFT feature be calculated in the original image or the corresponding octave(s)?
The orientation of a keypoint should be computed on the original image, smoothed accordingly to the scale of that keypoint. Luckily we already have the Gaussian pyramid at our disposal, so we can simply select the closest level of this pyramid and compute the orientation there. In other words, if you detect a keypoint in the 3rd octave, then you compute its orientation in the 3rd octave of the Gaussian pyramid.
And the same for descriptors.