3975 integer :: NumGlu(0:6),Quark1PartType,tag_f,BosonVertex,BosonVertex_mod
3976 type(PtrToParticle) :: Gluons(1:),Quarks(2:6),Boson
3977 integer,
target :: TmpPartType,TmpExtRef
3978 complex(8) :: Res(1:Ds),tmp(1:Ds)
3980 complex(8) :: u1(1:Ds),ubar1(1:Ds)
3981 complex(8),
target :: ubar0(1:Ds)
3982 complex(8) :: eps1(1:Dv)
3983 complex(8) :: eps2(1:Dv)
3984 type(PtrToParticle) :: TmpGluons(1:NumGlu(1)+NumGlu(6)),TmpQuark(1:1)
3985 complex(8) :: PropFac1,PropFac2
3986 complex(8),
target :: PMom1(1:Dv)
3987 complex(8),
target :: PMom2(1:Dv)
3988 integer :: n1a,n1b,n2a,n2b,n3a,n3b,n4a,n4b,n5a,n5b,n6a,n6b
3989 integer :: rIn,rOut,i,counter
3993 if( numglu(0)-numglu(1)-numglu(2)-numglu(3)-numglu(4)-numglu(5)-numglu(6).ne.0 ) print *,
"wrong number of gluons in cur_f_6fV"
4000 if (quark1parttype.eq.-quarks(2)%PartType)
then
4001 if ( ((quarks(3)%PartType.eq.-quarks(4)%PartType) .AND. (bosonvertex .eq. 2 .OR.bosonvertex .eq. 4 .OR.bosonvertex .eq. 6)) .OR. &
4002 ((quarks(3)%PartType.eq.-quarks(6)%PartType) .AND. (bosonvertex .eq. 2 .OR.bosonvertex .eq. 6)) )
then
4003 print *,
'WARNING : cur_f_6fV with this flavor structure and this choice of BosonVertex is implemented, but not checked!'
4004 print *,
'Quark flavors: ',quark1parttype, quarks(2)%PartType,quarks(3)%PartType,quarks(4)%PartType,quarks(5)%PartType,quarks(6)%PartType
4005 print *,
'BosonVertex =', bosonvertex
4007 elseif (quark1parttype.eq.-quarks(6)%PartType )
then
4008 if ( ((quark1parttype.eq.-quarks(2)%PartType) .AND. (bosonvertex .eq. 2 .or. bosonvertex .eq. 4 .or. bosonvertex .eq. 6)) .OR. &
4009 & ((quark1parttype.eq.-quarks(4)%PartType) .AND. (bosonvertex .eq. 4 .or. bosonvertex .eq. 6)) )
then
4010 print *,
'WARNING : cur_f_6fV with this flavor structure and this choice of BosonVertex is implemented, but not checked!'
4011 print *,
'Quark flavors: ',quark1parttype, quarks(2)%PartType,quarks(3)%PartType,quarks(4)%PartType,quarks(5)%PartType,quarks(6)%PartType
4012 print *,
'BosonVertex =', bosonvertex
4014 elseif (quarks(2)%PartType.eq.-quarks(3)%PartType)
then
4015 if ( ((quark1parttype.eq.-quarks(4)%PartType) .AND. (bosonvertex .eq. 4 .or. bosonvertex .eq. 6) ) .OR. &
4016 ((quark1parttype.eq.-quarks(6)%PartType) .AND. (bosonvertex .eq. 4 .or. bosonvertex .eq. 6) ) )
then
4017 print *,
'WARNING : cur_f_6fV with this flavor structure and this choice of BosonVertex is implemented, but not checked!'
4018 print *,
'Quark flavors: ',quark1parttype, quarks(2)%PartType,quarks(3)%PartType,quarks(4)%PartType,quarks(5)%PartType,quarks(6)%PartType
4019 print *,
'BosonVertex =', bosonvertex
4028 if( quark1parttype.eq.-quarks(2)%PartType .AND. (quarks(3)%PartType.eq.-quarks(4)%PartType .or. quarks(3)%PartType.eq.-quarks(6)%PartType) &
4029 .AND. (quarks(2)%ExtRef.ne.-1 .or. tag_f.ne.1) &
4030 .AND. ( bosonvertex.eq.1 .OR. bosonvertex.eq.2) &
4038 rin =numglu(1)+n2a+1
4039 rout=numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a
4040 eps2 = cur_g_4f(gluons(rin:rout),quarks(3:6),(/1+n2b+numglu(3)+numglu(4)+numglu(5)+n6a,n2b,numglu(3),numglu(4),numglu(5),n6a/))
4041 pmom1(:) = summom(gluons,rin,rout) + quarks(3)%Mom + quarks(4)%Mom + quarks(5)%Mom + quarks(6)%Mom
4042 propfac1 = (0d0,-1d0)/sc_(pmom1,pmom1)
4043 if( abs(sc_(pmom1,pmom1)).lt.propcut) cycle
4044 eps2 = eps2*propfac1
4050 if (bosonvertex .eq. 1 .or. bosonvertex .eq. 2)
then
4051 ubar1(:) = cur_f_2fv(gluons(rin:rout),quarks(2:2),-quarks(2)%PartType,boson,(/n1b+n2a,n1b,n2a/) )
4052 pmom2(:) = quarks(2)%Mom + summom(gluons,rin,rout) + boson%Mom
4053 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2)-quarks(2)%Mass2)
4054 if( abs(sc_(pmom2,pmom2)-quarks(2)%Mass2).lt.propcut )
then
4058 if( quarks(2)%PartType.lt.0 )
then
4059 ubar1(:) = (-spi2_(pmom2,ubar1)+quarks(2)%Mass*ubar1(:))*propfac2
4061 ubar1(:) = (+spb2_(ubar1,pmom2)+quarks(2)%Mass*ubar1(:))*propfac2
4063 if( quarks(2)%PartType.lt.0 )
then
4064 ubar0(:) = vbqg(ubar1,eps2)
4066 ubar0(:) = vqg(ubar1,eps2)
4070 rout= numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a
4071 pmom1 = summom(gluons,rin,rout) + quarks(2)%Mom + quarks(3)%Mom + quarks(4)%Mom + quarks(5)%Mom + quarks(6)%Mom + boson%Mom
4072 if(n1a.ge.1 .or. n6b.ge.1)
then
4073 propfac1 = (0d0,1d0)/(sc_(pmom1,pmom1)-quarks(2)%Mass2)
4074 if( abs(sc_(pmom1,pmom1)-quarks(2)%Mass2).lt.propcut )
then
4078 if( quarks(2)%PartType.lt.0 )
then
4079 ubar0(:) = (-spi2_(pmom1,ubar0)+quarks(2)%Mass*ubar0(:))*propfac1
4081 ubar0(:) = (+spb2_(ubar0,pmom1)+quarks(2)%Mass*ubar0(:))*propfac1
4085 tmpquark(1)%Mom => pmom1(:)
4086 tmpquark(1)%Pol => ubar0(:)
4087 tmpquark(1)%Mass => quarks(2)%Mass
4088 tmpquark(1)%Mass2=> quarks(2)%Mass2
4090 tmpquark(1)%ExtRef => tmpextref
4091 tmpquark(1)%PartType => quarks(2)%PartType
4096 call copyparticleptr(gluons(i),tmpgluons(counter))
4099 rin =numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a+1
4102 call copyparticleptr(gluons(i),tmpgluons(counter))
4105 tmp(:) = cur_f_2f(tmpgluons(1:counter-1),tmpquark(1:1),-tmpquark(1)%PartType,(/counter-1,n1a,n6b/) )
4106 res(:) = res(:) + tmp(:)
4108 if (bosonvertex .eq. 1 .or. bosonvertex .eq. 6)
then
4112 ubar1(:) = cur_f_2f(gluons(rin:rout),quarks(2:2),-quarks(2)%PartType,(/n1b+n2a,n1b,n2a/) )
4113 if(n1b.ge.1 .or. n2a.ge.1)
then
4114 pmom2(:) = quarks(2)%Mom + summom(gluons,rin,rout)
4115 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2)-quarks(2)%Mass2)
4116 if( abs(sc_(pmom2,pmom2)-quarks(2)%Mass2).lt.propcut ) cycle
4117 if( quarks(2)%PartType.lt.0 )
then
4118 ubar1(:) = (-spi2_(pmom2,ubar1)+quarks(2)%Mass*ubar1(:))*propfac2
4120 ubar1(:) = (+spb2_(ubar1,pmom2)+quarks(2)%Mass*ubar1(:))*propfac2
4123 if( quarks(2)%PartType.lt.0 )
then
4124 ubar0(:) = vbqg(ubar1,eps2)
4126 ubar0(:) = vqg(ubar1,eps2)
4130 rout= numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a
4131 pmom1 = summom(gluons,rin,rout) + quarks(2)%Mom + quarks(3)%Mom + quarks(4)%Mom + quarks(5)%Mom + quarks(6)%Mom
4133 propfac1 = (0d0,1d0)/(sc_(pmom1,pmom1)-quarks(2)%Mass2)
4134 if( abs(sc_(pmom1,pmom1)-quarks(2)%Mass2).lt.propcut ) cycle
4135 if( quarks(2)%PartType.lt.0 )
then
4136 ubar0(:) = (-spi2_(pmom1,ubar0)+quarks(2)%Mass*ubar0(:))*propfac1
4138 ubar0(:) = (+spb2_(ubar0,pmom1)+quarks(2)%Mass*ubar0(:))*propfac1
4141 tmpquark(1)%Mom => pmom1(:)
4142 tmpquark(1)%Pol => ubar0(:)
4143 tmpquark(1)%Mass => quarks(2)%Mass
4144 tmpquark(1)%Mass2=> quarks(2)%Mass2
4146 tmpquark(1)%ExtRef => tmpextref
4147 tmpquark(1)%PartType => quarks(2)%PartType
4152 call copyparticleptr(gluons(i),tmpgluons(counter))
4155 rin =numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a+1
4158 call copyparticleptr(gluons(i),tmpgluons(counter))
4161 tmp(:) = cur_f_2fv(tmpgluons(1:counter-1),tmpquark(1:1),-tmpquark(1)%PartType,boson,(/counter-1,n1a,n6b/) )
4162 res(:) = res(:) + tmp(:)
4172 if( quark1parttype.eq.-quarks(2)%PartType .AND. (quarks(3)%PartType.eq.-quarks(4)%PartType .or. quarks(3)%PartType.eq.-quarks(6)%PartType) &
4173 .AND. (quarks(2)%ExtRef.ne.-1 .or. tag_f.ne.1) &
4174 .AND. ( bosonvertex.eq.3 .OR. bosonvertex .eq. 4 .OR. bosonvertex.eq.5 ) &
4182 rin =numglu(1)+n2a+1
4183 rout=numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a
4184 bosonvertex_mod = bosonvertex - 2
4185 eps2 = cur_g_4fv(gluons(rin:rout),quarks(3:6),boson,bosonvertex_mod,(/1+n2b+numglu(3)+numglu(4)+numglu(5)+n6a,n2b,numglu(3),numglu(4),numglu(5),n6a/))
4186 pmom1(:) = summom(gluons,rin,rout) + quarks(3)%Mom + quarks(4)%Mom + quarks(5)%Mom + quarks(6)%Mom + boson%Mom
4187 propfac1 = (0d0,-1d0)/sc_(pmom1,pmom1)
4188 if( abs(sc_(pmom1,pmom1)).lt.propcut) cycle
4189 eps2 = eps2*propfac1
4195 ubar1(:) = cur_f_2f(gluons(rin:rout),quarks(2:2),-quarks(2)%PartType,(/n1b+n2a,n1b,n2a/) )
4196 if(n1b.ge.1 .or. n2a.ge.1)
then
4197 pmom2(:) = quarks(2)%Mom + summom(gluons,rin,rout)
4198 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2)-quarks(2)%Mass2)
4199 if( abs(sc_(pmom2,pmom2)-quarks(2)%Mass2).lt.propcut ) cycle
4200 if( quarks(2)%PartType.lt.0 )
then
4201 ubar1(:) = (-spi2_(pmom2,ubar1)+quarks(2)%Mass*ubar1(:))*propfac2
4203 ubar1(:) = (+spb2_(ubar1,pmom2)+quarks(2)%Mass*ubar1(:))*propfac2
4206 if( quarks(2)%PartType.lt.0 )
then
4207 ubar0(:) = vbqg(ubar1,eps2)
4209 ubar0(:) = vqg(ubar1,eps2)
4213 rout= numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a
4214 pmom1 = summom(gluons,rin,rout) + quarks(2)%Mom + quarks(3)%Mom + quarks(4)%Mom + quarks(5)%Mom + quarks(6)%Mom + boson%Mom
4215 if(n1a.ge.1 .or. n6b.ge.1)
then
4216 propfac1 = (0d0,1d0)/(sc_(pmom1,pmom1)-quarks(2)%Mass2)
4217 if( abs(sc_(pmom1,pmom1)-quarks(2)%Mass2).lt.propcut ) cycle
4218 if( quarks(2)%PartType.lt.0 )
then
4219 ubar0(:) = (-spi2_(pmom1,ubar0)+quarks(2)%Mass*ubar0(:))*propfac1
4221 ubar0(:) = (+spb2_(ubar0,pmom1)+quarks(2)%Mass*ubar0(:))*propfac1
4225 tmpquark(1)%Mom => pmom1(:)
4226 tmpquark(1)%Pol => ubar0(:)
4227 tmpquark(1)%Mass => quarks(2)%Mass
4228 tmpquark(1)%Mass2=> quarks(2)%Mass2
4230 tmpquark(1)%ExtRef => tmpextref
4231 tmpquark(1)%PartType => quarks(2)%PartType
4236 call copyparticleptr(gluons(i),tmpgluons(counter))
4239 rin =numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a+1
4242 call copyparticleptr(gluons(i),tmpgluons(counter))
4245 tmp(:) = cur_f_2f(tmpgluons(1:counter-1),tmpquark(1:1),-tmpquark(1)%PartType,(/counter-1,n1a,n6b/) )
4246 res(:) = res(:) + tmp(:)
4267 if( quarks(5)%PartType.eq.-quarks(6)%PartType .AND. &
4268 ((quark1parttype.eq.-quarks(2)%PartType .and. (quarks(2)%ExtRef.ne.-1.or.tag_f.ne.1) ) &
4269 .OR. (quark1parttype.eq.-quarks(4)%PartType .and. (quarks(4)%ExtRef.ne.-1.or.tag_f.ne.1) ))&
4270 .AND. ( bosonvertex.eq.1 .OR. bosonvertex.eq.6 ) &
4280 rin = numglu(1)+numglu(2)+numglu(3)+n4a+1
4281 rout= numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a
4282 eps2 = cur_g_2f(gluons(rin:rout),quarks(5:6),(/1+n4b+numglu(5)+n6a,n4b,numglu(5),n6a/))
4283 pmom1(:) = summom(gluons,rin,rout) + quarks(5)%Mom + quarks(6)%Mom
4284 propfac1 = (0d0,-1d0)/sc_(pmom1,pmom1)
4285 if( abs(sc_(pmom1,pmom1)).lt.propcut ) cycle
4286 eps2 = eps2*propfac1
4289 rout= numglu(1)+numglu(2)+numglu(3)+n4a
4290 u1 = cur_f_4f(gluons(rin:rout),quarks(2:4),quark1parttype,(/n1b+numglu(2)+numglu(3)+n4a,n1b,numglu(2),numglu(3),n4a/),0,0)
4291 pmom2 = summom(gluons,rin,rout) + quarks(2)%Mom + quarks(3)%Mom + quarks(4)%Mom
4293 if( quark1parttype.eq.-quarks(2)%PartType)
then
4294 if( quarks(2)%PartType.lt.0 )
then
4295 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(2)%Mass2)
4296 if( abs(sc_(pmom2,pmom2) - quarks(2)%Mass2).lt.propcut ) cycle
4297 u1 = (-spi2_(pmom2,u1) + quarks(2)%Mass*u1 )*propfac2
4298 ubar0 = vbqg(u1,eps2)
4299 rin = numglu(1)+numglu(2)+numglu(3)+n4a+1
4300 rout= numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a
4301 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(5)%Mom + quarks(6)%Mom
4303 if( n1a.ge.1 .or. n6b.ge.1 .or. bosonvertex.eq.1 .or. bosonvertex.eq.6 )
then
4304 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(2)%Mass2)
4305 if( abs(sc_(pmom2,pmom2) - quarks(2)%Mass2).lt.propcut ) cycle
4306 ubar0 = (-spi2_(pmom2,ubar0) + quarks(2)%Mass*ubar0 )*propfac2
4308 elseif( quarks(2)%PartType.gt.0 )
then
4309 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(2)%Mass2)
4310 if( abs(sc_(pmom2,pmom2) - quarks(2)%Mass2).lt.propcut ) cycle
4311 u1 = ( spb2_(u1,pmom2) + quarks(2)%Mass*u1 )*propfac2
4312 ubar0 = vqg(u1,eps2)
4313 rin = numglu(1)+numglu(2)+numglu(3)+n4a+1
4314 rout= numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a
4315 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(5)%Mom + quarks(6)%Mom
4317 if( n1a.ge.1 .or. n6b.ge.1 .or. bosonvertex.eq.1 .or. bosonvertex.eq.6 )
then
4318 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(2)%Mass2)
4319 if( abs(sc_(pmom2,pmom2) - quarks(2)%Mass2).lt.propcut ) cycle
4320 ubar0 = ( spb2_(ubar0,pmom2) + quarks(2)%Mass*ubar0 )*propfac2
4323 tmpquark(1)%Mom => pmom2(:)
4324 tmpquark(1)%Pol => ubar0(:)
4325 tmpquark(1)%Mass => quarks(2)%Mass
4326 tmpquark(1)%Mass2=> quarks(2)%Mass2
4327 elseif( quark1parttype.eq.-quarks(4)%PartType)
then
4328 if( quarks(4)%PartType.lt.0 )
then
4329 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4330 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4331 u1 = (-spi2_(pmom2,u1) + quarks(4)%Mass*u1 )*propfac2
4332 ubar0 = vbqg(u1,eps2)
4333 rin = numglu(1)+numglu(2)+numglu(3)+n4a+1
4334 rout= numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a
4335 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(5)%Mom + quarks(6)%Mom
4336 if( n1a.ge.1 .or. n6b.ge.1 .or. bosonvertex.eq.1 .or. bosonvertex.eq.6 )
then
4337 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4338 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4339 ubar0 = (-spi2_(pmom2,ubar0) + quarks(4)%Mass*ubar0 )*propfac2
4341 elseif( quarks(4)%PartType.gt.0 )
then
4342 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4343 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4344 u1 = ( spb2_(u1,pmom2) + quarks(4)%Mass*u1 )*propfac2
4345 ubar0 = vqg(u1,eps2)
4346 rin = numglu(1)+numglu(2)+numglu(3)+n4a+1
4347 rout= numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a
4348 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(5)%Mom + quarks(6)%Mom
4349 if( n1a.ge.1 .or. n6b.ge.1 .or. bosonvertex.eq.1 .or. bosonvertex.eq.6 )
then
4350 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4351 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4352 ubar0 = ( spb2_(ubar0,pmom2) + quarks(4)%Mass*ubar0 )*propfac2
4355 tmpquark(1)%Mom => pmom2(:)
4356 tmpquark(1)%Pol => ubar0(:)
4357 tmpquark(1)%Mass => quarks(4)%Mass
4358 tmpquark(1)%Mass2=> quarks(4)%Mass2
4361 tmpquark(1)%ExtRef => tmpextref
4362 tmpparttype = -quark1parttype
4363 tmpquark(1)%PartType => tmpparttype
4368 call copyparticleptr(gluons(i),tmpgluons(counter))
4371 rin =numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a+1
4374 call copyparticleptr(gluons(i),tmpgluons(counter))
4377 tmp(:) = cur_f_2fv(tmpgluons(1:counter-1),tmpquark(1:1),quark1parttype,boson,(/counter-1,n1a,n6b/) )
4379 res(:) = res(:) + tmp(:)
4388 if( quarks(5)%PartType.eq.-quarks(6)%PartType .AND. &
4389 ((quark1parttype.eq.-quarks(2)%PartType .and. (quarks(2)%ExtRef.ne.-1.or.tag_f.ne.1) ) &
4390 .OR. (quark1parttype.eq.-quarks(4)%PartType .and. (quarks(4)%ExtRef.ne.-1.or.tag_f.ne.1) ))&
4391 .AND. ( bosonvertex.eq.1 .OR. bosonvertex.eq.2 .OR. bosonvertex.eq.3 .OR. bosonvertex.eq.4 ) &
4401 rin = numglu(1)+numglu(2)+numglu(3)+n4a+1
4402 rout= numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a
4403 eps2 = cur_g_2f(gluons(rin:rout),quarks(5:6),(/1+n4b+numglu(5)+n6a,n4b,numglu(5),n6a/))
4404 pmom1(:) = summom(gluons,rin,rout) + quarks(5)%Mom + quarks(6)%Mom
4405 propfac1 = (0d0,-1d0)/sc_(pmom1,pmom1)
4406 if( abs(sc_(pmom1,pmom1)).lt.propcut ) cycle
4407 eps2 = eps2*propfac1
4410 rout= numglu(1)+numglu(2)+numglu(3)+n4a
4411 bosonvertex_mod = bosonvertex
4412 u1 = cur_f_4fv(gluons(rin:rout),quarks(2:4),quark1parttype,boson,bosonvertex_mod,(/n1b+numglu(2)+numglu(3)+n4a,n1b,numglu(2),numglu(3),n4a/),0,0)
4413 pmom2 = summom(gluons,rin,rout) + quarks(2)%Mom + quarks(3)%Mom + quarks(4)%Mom + boson%Mom
4415 if( quark1parttype.eq.-quarks(2)%PartType)
then
4416 if( quarks(2)%PartType.lt.0 )
then
4417 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(2)%Mass2)
4418 if( abs(sc_(pmom2,pmom2) - quarks(2)%Mass2).lt.propcut ) cycle
4419 u1 = (-spi2_(pmom2,u1) + quarks(2)%Mass*u1 )*propfac2
4420 ubar0 = vbqg(u1,eps2)
4421 rin = numglu(1)+numglu(2)+numglu(3)+n4a+1
4422 rout= numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a
4423 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(5)%Mom + quarks(6)%Mom
4424 if( n1a.ge.1 .or. n6b.ge.1 )
then
4425 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(2)%Mass2)
4426 if( abs(sc_(pmom2,pmom2) - quarks(2)%Mass2).lt.propcut ) cycle
4427 ubar0 = (-spi2_(pmom2,ubar0) + quarks(2)%Mass*ubar0 )*propfac2
4429 elseif( quarks(2)%PartType.gt.0 )
then
4430 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(2)%Mass2)
4431 if( abs(sc_(pmom2,pmom2) - quarks(2)%Mass2).lt.propcut ) cycle
4432 u1 = ( spb2_(u1,pmom2) + quarks(2)%Mass*u1 )*propfac2
4433 ubar0 = vqg(u1,eps2)
4434 rin = numglu(1)+numglu(2)+numglu(3)+n4a+1
4435 rout= numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a
4436 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(5)%Mom + quarks(6)%Mom
4437 if( n1a.ge.1 .or. n6b.ge.1 )
then
4438 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(2)%Mass2)
4439 if( abs(sc_(pmom2,pmom2) - quarks(2)%Mass2).lt.propcut ) cycle
4440 ubar0 = ( spb2_(ubar0,pmom2) + quarks(2)%Mass*ubar0 )*propfac2
4443 tmpquark(1)%Mom => pmom2(:)
4444 tmpquark(1)%Pol => ubar0(:)
4445 tmpquark(1)%Mass => quarks(2)%Mass
4446 tmpquark(1)%Mass2=> quarks(2)%Mass2
4447 elseif( quark1parttype.eq.-quarks(4)%PartType)
then
4448 if( quarks(4)%PartType.lt.0 )
then
4449 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4450 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4451 u1 = (-spi2_(pmom2,u1) + quarks(4)%Mass*u1 )*propfac2
4452 ubar0 = vbqg(u1,eps2)
4453 rin = numglu(1)+numglu(2)+numglu(3)+n4a+1
4454 rout= numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a
4455 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(5)%Mom + quarks(6)%Mom
4456 if( n1a.ge.1 .or. n6b.ge.1 )
then
4457 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4458 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4459 ubar0 = (-spi2_(pmom2,ubar0) + quarks(4)%Mass*ubar0 )*propfac2
4461 elseif( quarks(4)%PartType.gt.0 )
then
4462 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4463 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4464 u1 = ( spb2_(u1,pmom2) + quarks(4)%Mass*u1 )*propfac2
4465 ubar0 = vqg(u1,eps2)
4466 rin = numglu(1)+numglu(2)+numglu(3)+n4a+1
4467 rout= numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a
4468 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(5)%Mom + quarks(6)%Mom
4469 if( n1a.ge.1 .or. n6b.ge.1 )
then
4470 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4471 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4472 ubar0 = ( spb2_(ubar0,pmom2) + quarks(4)%Mass*ubar0 )*propfac2
4475 tmpquark(1)%Mom => pmom2(:)
4476 tmpquark(1)%Pol => ubar0(:)
4477 tmpquark(1)%Mass => quarks(4)%Mass
4478 tmpquark(1)%Mass2=> quarks(4)%Mass2
4481 tmpquark(1)%ExtRef => tmpextref
4482 tmpparttype = -quark1parttype
4483 tmpquark(1)%PartType => tmpparttype
4488 call copyparticleptr(gluons(i),tmpgluons(counter))
4491 rin =numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a+1
4494 call copyparticleptr(gluons(i),tmpgluons(counter))
4497 tmp(:) = cur_f_2f(tmpgluons(1:counter-1),tmpquark(1:1),quark1parttype,(/counter-1,n1a,n6b/) )
4499 res(:) = res(:) + tmp(:)
4508 if( quarks(5)%PartType.eq.-quarks(6)%PartType .AND. &
4509 ((quark1parttype.eq.-quarks(2)%PartType .and. (quarks(2)%ExtRef.ne.-1.or.tag_f.ne.1) ) &
4510 .OR. (quark1parttype.eq.-quarks(4)%PartType .and. (quarks(4)%ExtRef.ne.-1.or.tag_f.ne.1) ))&
4511 .AND. ( bosonvertex.eq.5 ) &
4521 rin = numglu(1)+numglu(2)+numglu(3)+n4a+1
4522 rout= numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a
4523 eps2 = cur_g_2fv(gluons(rin:rout),quarks(5:6),boson,(/1+n4b+numglu(5)+n6a,n4b,numglu(5),n6a/))
4524 pmom1(:) = summom(gluons,rin,rout) + quarks(5)%Mom + quarks(6)%Mom + boson%Mom
4525 propfac1 = (0d0,-1d0)/sc_(pmom1,pmom1)
4526 if( abs(sc_(pmom1,pmom1)).lt.propcut ) cycle
4527 eps2 = eps2*propfac1
4530 rout= numglu(1)+numglu(2)+numglu(3)+n4a
4531 u1 = cur_f_4f(gluons(rin:rout),quarks(2:4),quark1parttype,(/n1b+numglu(2)+numglu(3)+n4a,n1b,numglu(2),numglu(3),n4a/),0,0)
4532 pmom2 = summom(gluons,rin,rout) + quarks(2)%Mom + quarks(3)%Mom + quarks(4)%Mom
4534 if( quark1parttype.eq.-quarks(2)%PartType)
then
4536 if( quarks(2)%PartType.lt.0 )
then
4537 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(2)%Mass2)
4538 if( abs(sc_(pmom2,pmom2) - quarks(2)%Mass2).lt.propcut ) cycle
4539 u1 = (-spi2_(pmom2,u1) + quarks(2)%Mass*u1 )*propfac2
4540 ubar0 = vbqg(u1,eps2)
4541 rin = numglu(1)+numglu(2)+numglu(3)+n4a+1
4542 rout= numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a
4543 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(5)%Mom + quarks(6)%Mom + boson%Mom
4544 if( n1a.ge.1 .or. n6b.ge.1 )
then
4545 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(2)%Mass2)
4546 if( abs(sc_(pmom2,pmom2) - quarks(2)%Mass2).lt.propcut ) cycle
4547 ubar0 = (-spi2_(pmom2,ubar0) + quarks(2)%Mass*ubar0 )*propfac2
4549 elseif( quarks(2)%PartType.gt.0 )
then
4550 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(2)%Mass2)
4551 if( abs(sc_(pmom2,pmom2) - quarks(2)%Mass2).lt.propcut ) cycle
4552 u1 = ( spb2_(u1,pmom2) + quarks(2)%Mass*u1 )*propfac2
4553 ubar0 = vqg(u1,eps2)
4554 rin = numglu(1)+numglu(2)+numglu(3)+n4a+1
4555 rout= numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a
4556 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(5)%Mom + quarks(6)%Mom + boson%Mom
4557 if( n1a.ge.1 .or. n6b.ge.1 )
then
4558 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(2)%Mass2)
4559 if( abs(sc_(pmom2,pmom2) - quarks(2)%Mass2).lt.propcut ) cycle
4560 u1 = ( spb2_(u1,pmom2) + quarks(2)%Mass*u1 )*propfac2
4563 tmpquark(1)%Mom => pmom2(:)
4564 tmpquark(1)%Pol => ubar0(:)
4565 tmpquark(1)%Mass => quarks(2)%Mass
4566 tmpquark(1)%Mass2=> quarks(2)%Mass2
4567 elseif( quark1parttype.eq.-quarks(4)%PartType)
then
4568 if( quarks(4)%PartType.lt.0 )
then
4569 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4570 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4571 u1 = (-spi2_(pmom2,u1) + quarks(4)%Mass*u1 )*propfac2
4572 ubar0 = vbqg(u1,eps2)
4573 rin = numglu(1)+numglu(2)+numglu(3)+n4a+1
4574 rout= numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a
4575 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(5)%Mom + quarks(6)%Mom
4576 if( n1a.ge.1 .or. n6b.ge.1 )
then
4577 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4578 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4579 ubar0 = (-spi2_(pmom2,ubar0) + quarks(4)%Mass*ubar0 )*propfac2
4581 elseif( quarks(4)%PartType.gt.0 )
then
4582 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4583 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4584 u1 = ( spb2_(u1,pmom2) + quarks(4)%Mass*u1 )*propfac2
4585 ubar0 = vqg(u1,eps2)
4586 rin = numglu(1)+numglu(2)+numglu(3)+n4a+1
4587 rout= numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a
4588 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(5)%Mom + quarks(6)%Mom
4589 if( n1a.ge.1 .or. n6b.ge.1 )
then
4590 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4591 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4592 ubar0 = ( spb2_(ubar0,pmom2) + quarks(4)%Mass*ubar0 )*propfac2
4595 tmpquark(1)%Mom => pmom2(:)
4596 tmpquark(1)%Pol => ubar0(:)
4597 tmpquark(1)%Mass => quarks(4)%Mass
4598 tmpquark(1)%Mass2=> quarks(4)%Mass2
4601 tmpquark(1)%ExtRef => tmpextref
4602 tmpparttype = -quark1parttype
4603 tmpquark(1)%PartType => tmpparttype
4608 call copyparticleptr(gluons(i),tmpgluons(counter))
4611 rin =numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a+1
4614 call copyparticleptr(gluons(i),tmpgluons(counter))
4617 tmp(:) = cur_f_2f(tmpgluons(1:counter-1),tmpquark(1:1),quark1parttype,(/counter-1,n1a,n6b/) )
4619 res(:) = res(:) + tmp(:)
4630 if( quarks(2)%PartType.eq.-quarks(3)%PartType .AND. ( &
4631 (quark1parttype.eq.-quarks(4)%PartType .and. (quarks(4)%ExtRef.ne.-1.or.tag_f.ne.1)) &
4632 .OR. (quark1parttype.eq.-quarks(6)%PartType .and. (quarks(6)%ExtRef.ne.-1.or.tag_f.ne.1)) ) &
4633 .AND. ( bosonvertex.eq.1 ) &
4645 rout= numglu(1)+numglu(2)+n3a
4646 eps2 = cur_g_2f(gluons(rin:rout),quarks(2:3),(/1+n1b+numglu(2)+n3a,n1b,numglu(2),n3a/))
4647 pmom1(:) = summom(gluons,rin,rout) + quarks(2)%Mom + quarks(3)%Mom
4648 propfac1 = (0d0,-1d0)/sc_(pmom1,pmom1)
4649 if( abs(sc_(pmom1,pmom1)).lt.propcut ) cycle
4650 eps2 = eps2*propfac1
4652 rin = numglu(1)+numglu(2)+n3a+1
4653 rout= numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a
4654 u1 = cur_f_4f(gluons(rin:rout),quarks(4:6),quark1parttype,(/n3b+numglu(4)+numglu(5)+n6a,n3b,numglu(4),numglu(5),n6a/),tag_f,0)
4655 pmom2 = summom(gluons,rin,rout) + quarks(4)%Mom + quarks(5)%Mom + quarks(6)%Mom
4657 if( quark1parttype.eq.-quarks(4)%PartType )
then
4658 if( quarks(4)%PartType.lt.0 )
then
4659 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4660 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4661 u1 = (-spi2_(pmom2,u1) + quarks(4)%Mass*u1 )*propfac2
4662 ubar0 = vgbq(eps2,u1)
4664 rout= numglu(1)+numglu(2)+n3a
4665 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(2)%Mom + quarks(3)%Mom
4666 if( n1a.ge.1 .or. n6b.ge.1 .or. bosonvertex.eq.1 .or. bosonvertex.eq.6 )
then
4667 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4668 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4669 ubar0 = (-spi2_(pmom2,ubar0) + quarks(4)%Mass*ubar0 )*propfac2
4671 elseif( quarks(4)%PartType.gt.0 )
then
4672 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4673 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4674 u1 = ( spb2_(u1,pmom2) + quarks(4)%Mass*u1 )*propfac2
4675 ubar0 = vgq(eps2,u1)
4677 rout= numglu(1)+numglu(2)+n3a
4678 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(2)%Mom + quarks(3)%Mom
4679 if( n1a.ge.1 .or. n6b.ge.1 .or. bosonvertex.eq.1 .or. bosonvertex.eq.6 )
then
4680 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4681 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4682 ubar0 = ( spb2_(ubar0,pmom2) + quarks(4)%Mass*ubar0 )*propfac2
4685 tmpquark(1)%Mom => pmom2(:)
4686 tmpquark(1)%Pol => ubar0(:)
4687 tmpquark(1)%Mass => quarks(4)%Mass
4688 tmpquark(1)%Mass2=> quarks(4)%Mass2
4689 elseif(quark1parttype.eq.-quarks(6)%PartType)
then
4690 if( quarks(6)%PartType.lt.0 )
then
4691 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(6)%Mass2)
4692 if( abs(sc_(pmom2,pmom2) - quarks(6)%Mass2).lt.propcut ) cycle
4693 u1 = (-spi2_(pmom2,u1) + quarks(6)%Mass*u1 )*propfac2
4694 ubar0 = vgbq(eps2,u1)
4696 rout= numglu(1)+numglu(2)+n3a
4697 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(2)%Mom + quarks(3)%Mom
4698 if( n1a.ge.1 .or. n6b.ge.1 .or. bosonvertex.eq.1 .or. bosonvertex.eq.6 )
then
4699 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(6)%Mass2)
4700 if( abs(sc_(pmom2,pmom2) - quarks(6)%Mass2).lt.propcut ) cycle
4701 ubar0 = (-spi2_(pmom2,ubar0) + quarks(6)%Mass*ubar0 )*propfac2
4703 elseif( quarks(6)%PartType.gt.0 )
then
4704 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(6)%Mass2)
4705 if( abs(sc_(pmom2,pmom2) - quarks(6)%Mass2).lt.propcut ) cycle
4706 u1 = ( spb2_(u1,pmom2) + quarks(6)%Mass*u1 )*propfac2
4707 ubar0 = vgq(eps2,u1)
4709 rout= numglu(1)+numglu(2)+n3a
4710 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(2)%Mom + quarks(3)%Mom
4711 if( n1a.ge.1 .or. n6b.ge.1 .or. bosonvertex.eq.1 .or. bosonvertex.eq.6 )
then
4712 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(6)%Mass2)
4713 if( abs(sc_(pmom2,pmom2) - quarks(6)%Mass2).lt.propcut ) cycle
4714 ubar0 = ( spb2_(ubar0,pmom2) + quarks(6)%Mass*ubar0 )*propfac2
4719 tmpquark(1)%ExtRef => tmpextref
4720 tmpparttype = -quark1parttype
4721 tmpquark(1)%PartType => tmpparttype
4726 call copyparticleptr(gluons(i),tmpgluons(counter))
4729 rin =numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a+1
4732 call copyparticleptr(gluons(i),tmpgluons(counter))
4735 tmp(:) = cur_f_2fv(tmpgluons(1:counter-1),tmpquark(1:1),quark1parttype,boson,(/counter-1,n1a,n6b/))
4737 res(:) = res(:) + tmp(:)
4747 if( quarks(2)%PartType.eq.-quarks(3)%PartType .AND. ( &
4748 (quark1parttype.eq.-quarks(4)%PartType .and. (quarks(4)%ExtRef.ne.-1.or.tag_f.ne.1)) &
4749 .OR. (quark1parttype.eq.-quarks(6)%PartType .and. (quarks(6)%ExtRef.ne.-1.or.tag_f.ne.1)) ) &
4750 .AND. ( bosonvertex.eq.2) &
4762 rout= numglu(1)+numglu(2)+n3a
4763 eps2 = cur_g_2fv(gluons(rin:rout),quarks(2:3),boson,(/1+n1b+numglu(2)+n3a,n1b,numglu(2),n3a/))
4764 pmom1(:) = summom(gluons,rin,rout) + quarks(2)%Mom + quarks(3)%Mom + boson%Mom
4765 propfac1 = (0d0,-1d0)/sc_(pmom1,pmom1)
4766 if( abs(sc_(pmom1,pmom1)).lt.propcut ) cycle
4767 eps2 = eps2*propfac1
4769 rin = numglu(1)+numglu(2)+n3a+1
4770 rout= numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a
4771 bosonvertex_mod = bosonvertex
4772 u1 = cur_f_4f(gluons(rin:rout),quarks(4:6),quark1parttype,(/n3b+numglu(4)+numglu(5)+n6a,n3b,numglu(4),numglu(5),n6a/),tag_f,0)
4773 pmom2 = summom(gluons,rin,rout) + quarks(4)%Mom + quarks(5)%Mom + quarks(6)%Mom
4775 if( quark1parttype.eq.-quarks(4)%PartType )
then
4776 if( quarks(4)%PartType.lt.0 )
then
4777 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4778 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4779 u1 = (-spi2_(pmom2,u1) + quarks(4)%Mass*u1 )*propfac2
4780 ubar0 = vgbq(eps2,u1)
4782 rout= numglu(1)+numglu(2)+n3a
4783 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(2)%Mom + quarks(3)%Mom + boson%Mom
4784 if( n1a.ge.1 .or. n6b.ge.1 )
then
4785 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4786 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4787 ubar0 = (-spi2_(pmom2,ubar0) + quarks(4)%Mass*ubar0 )*propfac2
4789 elseif( quarks(4)%PartType.gt.0 )
then
4790 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4791 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4792 u1 = ( spb2_(u1,pmom2) + quarks(4)%Mass*u1 )*propfac2
4793 ubar0 = vgq(eps2,u1)
4795 rout= numglu(1)+numglu(2)+n3a
4796 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(2)%Mom + quarks(3)%Mom + boson%Mom
4797 if( n1a.ge.1 .or. n6b.ge.1 )
then
4798 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4799 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4800 ubar0 = ( spb2_(ubar0,pmom2) + quarks(4)%Mass*ubar0 )*propfac2
4803 elseif(quark1parttype.eq.-quarks(6)%PartType)
then
4804 if( quarks(6)%PartType.lt.0 )
then
4805 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(6)%Mass2)
4806 if( abs(sc_(pmom2,pmom2) - quarks(6)%Mass2).lt.propcut ) cycle
4807 u1 = (-spi2_(pmom2,u1) + quarks(6)%Mass*u1 )*propfac2
4808 ubar0 = vgbq(eps2,u1)
4810 rout= numglu(1)+numglu(2)+n3a
4811 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(2)%Mom + quarks(3)%Mom+ boson%Mom
4812 if( n1a.ge.1 .or. n6b.ge.1 )
then
4813 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(6)%Mass2)
4814 if( abs(sc_(pmom2,pmom2) - quarks(6)%Mass2).lt.propcut ) cycle
4815 ubar0 = (-spi2_(pmom2,ubar0) + quarks(6)%Mass*ubar0 )*propfac2
4817 elseif( quarks(6)%PartType.gt.0 )
then
4818 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(6)%Mass2)
4819 if( abs(sc_(pmom2,pmom2) - quarks(6)%Mass2).lt.propcut ) cycle
4820 u1 = ( spb2_(u1,pmom2) + quarks(6)%Mass*u1 )*propfac2
4821 ubar0 = vgq(eps2,u1)
4823 rout= numglu(1)+numglu(2)+n3a
4824 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(2)%Mom + quarks(3)%Mom + boson%Mom
4825 if( n1a.ge.1 .or. n6b.ge.1 )
then
4826 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(6)%Mass2)
4827 if( abs(sc_(pmom2,pmom2) - quarks(6)%Mass2).lt.propcut ) cycle
4828 ubar0 = ( spb2_(ubar0,pmom2) + quarks(6)%Mass*ubar0 )*propfac2
4832 tmpquark(1)%Mom => pmom2(:)
4833 tmpquark(1)%Pol => ubar0(:)
4834 tmpquark(1)%Mass => quarks(4)%Mass
4835 tmpquark(1)%Mass2=> quarks(4)%Mass2
4837 tmpquark(1)%ExtRef => tmpextref
4838 tmpparttype = -quark1parttype
4839 tmpquark(1)%PartType => tmpparttype
4844 call copyparticleptr(gluons(i),tmpgluons(counter))
4847 rin =numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a+1
4850 call copyparticleptr(gluons(i),tmpgluons(counter))
4853 tmp(:) = cur_f_2f(tmpgluons(1:counter-1),tmpquark(1:1),quark1parttype,(/counter-1,n1a,n6b/))
4855 res(:) = res(:) + tmp(:)
4863 if( quarks(2)%PartType.eq.-quarks(3)%PartType .AND. ( &
4864 (quark1parttype.eq.-quarks(4)%PartType .and. (quarks(4)%ExtRef.ne.-1.or.tag_f.ne.1)) &
4865 .OR. (quark1parttype.eq.-quarks(6)%PartType .and. (quarks(6)%ExtRef.ne.-1.or.tag_f.ne.1)) ) &
4866 .AND. ( bosonvertex .ge. 3 .and. bosonvertex .le. 6 ) )
then
4877 rout= numglu(1)+numglu(2)+n3a
4878 eps2 = cur_g_2f(gluons(rin:rout),quarks(2:3),(/1+n1b+numglu(2)+n3a,n1b,numglu(2),n3a/))
4879 pmom1(:) = summom(gluons,rin,rout) + quarks(2)%Mom + quarks(3)%Mom
4880 propfac1 = (0d0,-1d0)/sc_(pmom1,pmom1)
4881 if( abs(sc_(pmom1,pmom1)).lt.propcut ) cycle
4882 eps2 = eps2*propfac1
4884 rin = numglu(1)+numglu(2)+n3a+1
4885 rout= numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a
4886 bosonvertex_mod=bosonvertex-2
4887 u1 = cur_f_4fv(gluons(rin:rout),quarks(4:6),quark1parttype,boson,bosonvertex_mod,(/n3b+numglu(4)+numglu(5)+n6a,n3b,numglu(4),numglu(5),n6a/),tag_f,0)
4888 pmom2 = summom(gluons,rin,rout) + quarks(4)%Mom + quarks(5)%Mom + quarks(6)%Mom+boson%Mom
4890 if( quark1parttype.eq.-quarks(4)%PartType )
then
4891 if( quarks(4)%PartType.lt.0 )
then
4892 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4893 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4894 u1 = (-spi2_(pmom2,u1) + quarks(4)%Mass*u1 )*propfac2
4895 ubar0 = vgbq(eps2,u1)
4897 rout= numglu(1)+numglu(2)+n3a
4898 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(2)%Mom + quarks(3)%Mom
4899 if( n1a.ge.1 .or. n6b.ge.1 )
then
4900 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4901 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4902 ubar0 = (-spi2_(pmom2,ubar0) + quarks(4)%Mass*ubar0 )*propfac2
4904 elseif( quarks(4)%PartType.gt.0 )
then
4905 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4906 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4907 u1 = ( spb2_(u1,pmom2) + quarks(4)%Mass*u1 )*propfac2
4908 ubar0 = vgq(eps2,u1)
4910 rout= numglu(1)+numglu(2)+n3a
4911 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(2)%Mom + quarks(3)%Mom
4912 if( n1a.ge.1 .or. n6b.ge.1 )
then
4913 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(4)%Mass2)
4914 if( abs(sc_(pmom2,pmom2) - quarks(4)%Mass2).lt.propcut ) cycle
4915 ubar0 = ( spb2_(ubar0,pmom2) + quarks(4)%Mass*ubar0 )*propfac2
4918 tmpquark(1)%Mom => pmom2(:)
4919 tmpquark(1)%Pol => ubar0(:)
4920 tmpquark(1)%Mass => quarks(4)%Mass
4921 tmpquark(1)%Mass2=> quarks(4)%Mass2
4922 elseif(quark1parttype.eq.-quarks(6)%PartType)
then
4923 if( quarks(6)%PartType.lt.0 )
then
4924 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(6)%Mass2)
4925 if( abs(sc_(pmom2,pmom2) - quarks(6)%Mass2).lt.propcut ) cycle
4926 u1 = (-spi2_(pmom2,u1) + quarks(6)%Mass*u1 )*propfac2
4927 ubar0 = vgbq(eps2,u1)
4929 rout= numglu(1)+numglu(2)+n3a
4930 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(2)%Mom + quarks(3)%Mom
4931 if( n1a.ge.1 .or. n6b.ge.1 )
then
4932 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(6)%Mass2)
4933 if( abs(sc_(pmom2,pmom2) - quarks(6)%Mass2).lt.propcut ) cycle
4934 ubar0 = (-spi2_(pmom2,ubar0) + quarks(6)%Mass*ubar0 )*propfac2
4936 elseif( quarks(6)%PartType.gt.0 )
then
4937 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(6)%Mass2)
4938 if( abs(sc_(pmom2,pmom2) - quarks(6)%Mass2).lt.propcut ) cycle
4939 u1 = ( spb2_(u1,pmom2) + quarks(6)%Mass*u1 )*propfac2
4940 ubar0 = vgq(eps2,u1)
4942 rout= numglu(1)+numglu(2)+n3a
4943 pmom2 = pmom2 + summom(gluons,rin,rout) + quarks(2)%Mom + quarks(3)%Mom
4944 if( n1a.ge.1 .or. n6b.ge.1 )
then
4945 propfac2 = (0d0,1d0)/(sc_(pmom2,pmom2) - quarks(6)%Mass2)
4946 if( abs(sc_(pmom2,pmom2) - quarks(6)%Mass2).lt.propcut ) cycle
4947 ubar0 = ( spb2_(ubar0,pmom2) + quarks(6)%Mass*ubar0 )*propfac2
4950 tmpquark(1)%Mom => pmom2(:)
4951 tmpquark(1)%Pol => ubar0(:)
4952 tmpquark(1)%Mass => quarks(6)%Mass
4953 tmpquark(1)%Mass2=> quarks(6)%Mass2
4956 tmpquark(1)%ExtRef => tmpextref
4957 tmpparttype = -quark1parttype
4958 tmpquark(1)%PartType => tmpparttype
4963 call copyparticleptr(gluons(i),tmpgluons(counter))
4966 rin =numglu(1)+numglu(2)+numglu(3)+numglu(4)+numglu(5)+n6a+1
4969 call copyparticleptr(gluons(i),tmpgluons(counter))
4972 tmp(:) = cur_f_2f(tmpgluons(1:counter-1),tmpquark(1:1),quark1parttype,(/counter-1,n1a,n6b/))
4974 res(:) = res(:) + tmp(:)