text: # This file was automatically created by FeynRules 2.3.24
  # Mathematica version: 11.0.1 for Linux x86 (64-bit) (September 21, 2016)
  # Date: Tue 21 Feb 2017 10:41:19
  
  
  from object_library import all_lorentz, Lorentz
  
  from function_library import complexconjugate, re, im, csc, sec, acsc, asec, cot
  try:
     import form_factors as ForFac 
  except ImportError:
     pass
  
  
  UUS1 = Lorentz(name = 'UUS1',
                 spins = [ -1, -1, 1 ],
                 structure = '1')
  
  UUV1 = Lorentz(name = 'UUV1',
                 spins = [ -1, -1, 3 ],
                 structure = 'P(3,2) + P(3,3)')
  
  SSS1 = Lorentz(name = 'SSS1',
                 spins = [ 1, 1, 1 ],
                 structure = '1')
  
  FFS1 = Lorentz(name = 'FFS1',
                 spins = [ 2, 2, 1 ],
                 structure = 'Identity(2,1)')
  
  FFS2 = Lorentz(name = 'FFS2',
                 spins = [ 2, 2, 1 ],
                 structure = 'ProjM(2,1)')
  
  FFS3 = Lorentz(name = 'FFS3',
                 spins = [ 2, 2, 1 ],
                 structure = 'ProjM(2,1) - ProjP(2,1)')
  
  FFS4 = Lorentz(name = 'FFS4',
                 spins = [ 2, 2, 1 ],
                 structure = 'ProjP(2,1)')
  
  FFS5 = Lorentz(name = 'FFS5',
                 spins = [ 2, 2, 1 ],
                 structure = 'ProjM(2,1) + ProjP(2,1)')
  
  FFV1 = Lorentz(name = 'FFV1',
                 spins = [ 2, 2, 3 ],
                 structure = 'Gamma(3,2,1)')
  
  FFV2 = Lorentz(name = 'FFV2',
                 spins = [ 2, 2, 3 ],
                 structure = 'Gamma(3,2,-1)*ProjM(-1,1)')
  
  FFV3 = Lorentz(name = 'FFV3',
                 spins = [ 2, 2, 3 ],
                 structure = 'Gamma(3,2,-1)*ProjM(-1,1) - 2*Gamma(3,2,-1)*ProjP(-1,1)')
  
  FFV4 = Lorentz(name = 'FFV4',
                 spins = [ 2, 2, 3 ],
                 structure = 'Gamma(3,2,-1)*ProjM(-1,1) + 2*Gamma(3,2,-1)*ProjP(-1,1)')
  
  FFV5 = Lorentz(name = 'FFV5',
                 spins = [ 2, 2, 3 ],
                 structure = 'Gamma(3,2,-1)*ProjM(-1,1) + 4*Gamma(3,2,-1)*ProjP(-1,1)')
  
  VSS1 = Lorentz(name = 'VSS1',
                 spins = [ 3, 1, 1 ],
                 structure = 'P(1,2) - P(1,3)')
  
  VVS1 = Lorentz(name = 'VVS1',
                 spins = [ 3, 3, 1 ],
                 structure = 'Metric(1,2)')
  
  VVV1 = Lorentz(name = 'VVV1',
                 spins = [ 3, 3, 3 ],
                 structure = 'P(3,1)*Metric(1,2) - P(3,2)*Metric(1,2) - P(2,1)*Metric(1,3) + P(2,3)*Metric(1,3) + P(1,2)*Metric(2,3) - P(1,3)*Metric(2,3)')
  
  SSSS1 = Lorentz(name = 'SSSS1',
                  spins = [ 1, 1, 1, 1 ],
                  structure = '1')
  
  FFSS1 = Lorentz(name = 'FFSS1',
                  spins = [ 2, 2, 1, 1 ],
                  structure = 'ProjM(2,1)')
  
  FFSS2 = Lorentz(name = 'FFSS2',
                  spins = [ 2, 2, 1, 1 ],
                  structure = 'ProjP(2,1)')
  
  FFFF1 = Lorentz(name = 'FFFF1',
                  spins = [ 2, 2, 2, 2 ],
                  structure = 'Identity(2,1)*ProjM(4,3)')
  
  FFFF2 = Lorentz(name = 'FFFF2',
                  spins = [ 2, 2, 2, 2 ],
                  structure = 'Identity(2,1)*ProjP(4,3)')
  
  FFFF3 = Lorentz(name = 'FFFF3',
                  spins = [ 2, 2, 2, 2 ],
                  structure = 'Gamma(-1,2,1)*Gamma(-1,4,-2)*ProjP(-2,3)')
  
  FFVS1 = Lorentz(name = 'FFVS1',
                  spins = [ 2, 2, 3, 1 ],
                  structure = 'P(3,4)*ProjM(2,1)')
  
  FFVS2 = Lorentz(name = 'FFVS2',
                  spins = [ 2, 2, 3, 1 ],
                  structure = '-(P(-1,3)*Gamma(-1,2,-3)*Gamma(3,-3,-2)*ProjM(-2,1)) + P(-1,3)*Gamma(-1,-3,-2)*Gamma(3,2,-3)*ProjM(-2,1)')
  
  FFVS3 = Lorentz(name = 'FFVS3',
                  spins = [ 2, 2, 3, 1 ],
                  structure = 'P(3,4)*ProjP(2,1)')
  
  FFVS4 = Lorentz(name = 'FFVS4',
                  spins = [ 2, 2, 3, 1 ],
                  structure = 'Gamma(3,2,-1)*ProjP(-1,1)')
  
  FFVS5 = Lorentz(name = 'FFVS5',
                  spins = [ 2, 2, 3, 1 ],
                  structure = '-(P(-1,3)*Gamma(-1,2,-3)*Gamma(3,-3,-2)*ProjP(-2,1)) + P(-1,3)*Gamma(-1,-3,-2)*Gamma(3,2,-3)*ProjP(-2,1)')
  
  VVSS1 = Lorentz(name = 'VVSS1',
                  spins = [ 3, 3, 1, 1 ],
                  structure = 'Metric(1,2)')
  
  VVVV1 = Lorentz(name = 'VVVV1',
                  spins = [ 3, 3, 3, 3 ],
                  structure = 'Metric(1,4)*Metric(2,3) - Metric(1,3)*Metric(2,4)')
  
  VVVV2 = Lorentz(name = 'VVVV2',
                  spins = [ 3, 3, 3, 3 ],
                  structure = 'Metric(1,4)*Metric(2,3) + Metric(1,3)*Metric(2,4) - 2*Metric(1,2)*Metric(3,4)')
  
  VVVV3 = Lorentz(name = 'VVVV3',
                  spins = [ 3, 3, 3, 3 ],
                  structure = 'Metric(1,4)*Metric(2,3) - Metric(1,2)*Metric(3,4)')
  
  VVVV4 = Lorentz(name = 'VVVV4',
                  spins = [ 3, 3, 3, 3 ],
                  structure = 'Metric(1,3)*Metric(2,4) - Metric(1,2)*Metric(3,4)')
  
  VVVV5 = Lorentz(name = 'VVVV5',
                  spins = [ 3, 3, 3, 3 ],
                  structure = 'Metric(1,4)*Metric(2,3) - (Metric(1,3)*Metric(2,4))/2. - (Metric(1,2)*Metric(3,4))/2.')
  
  FFVVS1 = Lorentz(name = 'FFVVS1',
                   spins = [ 2, 2, 3, 3, 1 ],
                   structure = 'Gamma(3,2,-2)*Gamma(4,-2,-1)*ProjM(-1,1) - Gamma(3,-2,-1)*Gamma(4,2,-2)*ProjM(-1,1)')
  
  FFVVS2 = Lorentz(name = 'FFVVS2',
                   spins = [ 2, 2, 3, 3, 1 ],
                   structure = 'Gamma(3,2,-2)*Gamma(4,-2,-1)*ProjP(-1,1) - Gamma(3,-2,-1)*Gamma(4,2,-2)*ProjP(-1,1)')
  
  