code: def _spintaylor_aligned_prec_swapper(**p):
      
      orig_approximant = p['approximant']
      if p['spin2x'] == 0 and p['spin2y'] == 0 and p['spin1x'] == 0 and \
                                                                p['spin1y'] == 0:
          p['approximant'] = 'TaylorF2'
      else:
          p['approximant'] = 'SpinTaylorF2'
      hp, hc = _lalsim_fd_waveform(**p)
      p['approximant'] = orig_approximant
      return hp, hc
docs: SpinTaylorF2 is only single spin, it also struggles with anti-aligned spin
      waveforms. This construct chooses between the aligned-twospin TaylorF2 model
      and the precessing singlespin SpinTaylorF2 models. If aligned spins are
      given, use TaylorF2, if nonaligned spins are given use SpinTaylorF2. In
      the case of nonaligned doublespin systems the code will fail at the
      waveform generator level.