<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def integrate_box(self,low,high,forcequad=False,**kwargs):
 """Integrates over a box. Optionally force quad integration, even for non-adaptive. If adaptive mode is not being used, this will just call the `scipy.stats.gaussian_kde` method `integrate_box_1d`. Else, by default, it will call `scipy.integrate.quad`. If the `forcequad` flag is turned on, then that integration will be used even if adaptive mode is off. Parameters low : float Lower limit of integration high : float Upper limit of integration forcequad : bool If `True`, then use the quad integration even if adaptive mode is off. kwargs Keyword arguments passed to `scipy.integrate.quad`. """

        if not self.adaptive and not forcequad:
            return self.gauss_kde.integrate_box_1d(low,high)*self.norm
        return quad(self.evaluate,low,high,**kwargs)[0]