<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def get_sof_term(self, C, rup):
 """ In the case of the upper mantle events separate coefficients are considered for normal, reverse and strike-slip """

        if rup.rake <= -45.0 and rup.rake >= -135.0:
            # Normal faulting
            return C["FN_UM"]
        elif rup.rake > 45.0 and rup.rake < 135.0:
            # Reverse faulting
            return C["FRV_UM"]
        else:
            # No adjustment for strike-slip faulting
            return 0.0