Poisson XGBoost with a tree base learner, math behind calculating weights and similarity scores

Hi there, I have a hard time figuring out and making a connection to the original paper In case of predicting counts with a poisson loss function. In my understanding a Poisson negative log-likelihood is used as default in the count:poisson setting. Could someone help me understand, how are residuals predicted in the individual trees, when the poisson negloglikelihood clearly can’t take negative prediction values because of the logarithms. Is the loss function (for calculating pseudo-residuals, weights in leafs and similarity scores) on the log scale, that is then used to calculate the gradient and the hessian for the scores and weights ? Thank you for your time.