<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def getAccelData( self, raw = False ):
 """! Gets and returns the X, Y and Z values from the accelerometer. @param raw If raw is True, it will return the data in m/s^2,<br> If raw is False, it will return the data in g @return a dictionary with the measurement results or Boolean. @retval False means 'Unkown accel range', that you need to check the "accel range" configuration @note Result data format: {"x":0.45634,"y":0.2124,"z":1.334} """

        x = self._readWord(self.REG_ACCEL_XOUT_H)
        y = self._readWord(self.REG_ACCEL_YOUT_H)
        z = self._readWord(self.REG_ACCEL_ZOUT_H)

        accel_scale_modifier = None
        accel_range = self.readAccelRange()

        if accel_range == self.ACCEL_RANGE_2G:
            accel_scale_modifier = self.ACCEL_SCALE_MODIFIER_2G
        elif accel_range == self.ACCEL_RANGE_4G:
            accel_scale_modifier = self.ACCEL_SCALE_MODIFIER_4G
        elif accel_range == self.ACCEL_RANGE_8G:
            accel_scale_modifier = self.ACCEL_SCALE_MODIFIER_8G
        elif accel_range == self.ACCEL_RANGE_16G:
            accel_scale_modifier = self.ACCEL_SCALE_MODIFIER_16G
        else:
            print( "ERROR: Unkown accel range!" )
            return False            
            #accel_scale_modifier = self.ACCEL_SCALE_MODIFIER_2G

        x = x / accel_scale_modifier
        y = y / accel_scale_modifier
        z = z / accel_scale_modifier

        if raw == True:
            return { 'x': x, 'y': y, 'z': z }
        elif raw == False:
            return { 'x': x * self._gravityFactor, 'y': y * self._gravityFactor, 'z': z * self._gravityFactor }