<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def set_bfield_for_s0(self, s0):
 """Set B to probe a certain harmonic number. **Call signature** *s0* The harmonic number to probe at the lowest frequency Returns *self* for convenience in chaining. This just proceeds from the relation ``nu = s nu_c = s e B / 2 pi m_e c``. Since *s* and *nu* scale with each other, if multiple frequencies are being probed, the harmonic numbers being probed will scale in the same way. """

        if not (s0 > 0):
            raise ValueError('must have s0 > 0; got %r' % (s0,))

        B0 = 2 * np.pi * cgs.me * cgs.c * self.in_vals[IN_VAL_FREQ0] / (cgs.e * s0)
        self.in_vals[IN_VAL_B] = B0
        return self