code: def template_overlaps(bank_filters, template, psd, low_frequency_cutoff):
      
      overlaps = []
      template_ow = template / psd
      for bank_template in bank_filters:
          overlap = overlap_cplx(template_ow, bank_template,
                  low_frequency_cutoff=low_frequency_cutoff, normalized=False)
          norm = sqrt(1 / template.sigmasq(psd) / bank_template.sigmasq(psd))
          overlaps.append(overlap * norm)
          if (abs(overlaps[-1]) > 0.99):
              errMsg = "Overlap > 0.99 between bank template and filter. "
              errMsg += "This bank template will not be used to calculate "
              errMsg += "bank chisq for this filter template. The expected "
              errMsg += "value will be added to the chisq to account for "
              errMsg += "the removal of this template.\n"
              errMsg += "Masses of filter template: %e %e\n" \
                        %(template.params.mass1, template.params.mass2)
              errMsg += "Masses of bank filter template: %e %e\n" \
                        %(bank_template.params.mass1, bank_template.params.mass2)
              errMsg += "Overlap: %e" %(abs(overlaps[-1]))
              logging.debug(errMsg)
      return overlaps
docs: This functions calculates the overlaps between the template and the
      bank veto templates.
  
      Parameters
      ----------
      bank_filters: List of FrequencySeries
      template: FrequencySeries
      psd: FrequencySeries
      low_frequency_cutoff: float
  
      Returns
      -------
      overlaps: List of complex overlap values.