Hi Erika, I think you are right, this is the illustration of the problem:
from openquake.hazardlib import imt
import numpy as np
from openquake.hazardlib.gsim.zalachoris_rathje_2019 import ZalachorisRathje2019
from openquake.hazardlib.gsim.zalachoris_rathje_2019 import _get_ZR19_magnitude_term
zr = ZalachorisRathje2019()
C_ZR19 = zr.COEFFS_ZR19[imt.SA(0.45)]
print(C_ZR19["Mb"]) #this will be = 4
mag = np.array([3.0,3.5,4.0,4.5,5.0,5.5,6.0,6.5])
print(_get_ZR19_magnitude_term(C_ZR19,mag))
#output: [ 0.4038 0.4038 -0.35472 0.1931 -0.0176 -0.2283 -0.35472 -0.35472]
#for magnitude 4 it is the term is incorrect
should be
between = (mag >= Mb_) & (mag < 5.8)