<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def update_ff(self, ff, mol2=False, force_ff_assign=False):
 """Manages assigning the force field parameters. The aim of this method is to avoid unnecessary assignment of the force field. Parameters ff: BuffForceField The force field to be used for scoring. mol2: bool, optional If true, mol2 style labels will also be used. force_ff_assign: bool, optional If true, the force field will be completely reassigned, ignoring the cached parameters. """

        aff = False
        if force_ff_assign:
            aff = True
        elif 'assigned_ff' not in self.tags:
            aff = True
        elif not self.tags['assigned_ff']:
            aff = True
        if aff:
            self.assign_force_field(ff, mol2=mol2)
        return