If you cared to get to position.eta(), could as well reduce this all  to position.z()/position.perp() (whatever sinh(eta) reduces to in simpler functions)