Page MenuHomeHEPForge

No OneTemporary

diff --git a/current_generator/include/helspin.frm b/current_generator/include/helspin.frm
index d9f7b7c..26d02fd 100644
--- a/current_generator/include/helspin.frm
+++ b/current_generator/include/helspin.frm
@@ -1,193 +1,193 @@
*/**
* \brief Procedures for dealing with helicity spinors
*
* \authors The HEJ collaboration (see AUTHORS for details)
* \date 2019
* \copyright GPLv2 or later
*/
on shortstats;
cf Conjugate,Current;
cf angle,square;
#define CHAINS "AngleChain,SquareChain,SpinorChain"
ctensor `CHAINS';
-* internal symbols, rename?
-v p,q,k,l,p1;
-cf dum;
-ctensor ct;
-s x,y;
-i mu1,...,mu50;
+* internal symbols are all uppercase
+v P,Q,K,L;
+cf DUM;
+ctensor CT;
+s X,Y;
+i MU1,...,MU50;
#procedure ContractCurrents
#call InsCurrent;
.sort
- #call GetMomentaInChains($momenta)
+ #call GetMomentaInChains($MOMENTA)
- #if "`$momenta'" != ""
- #message Rewrite momenta `$momenta' into spinors
- #call ToSpinors(`$momenta')
+ #if "`$MOMENTA'" != ""
+ #message Rewrite momenta `$MOMENTA' into spinors
+ #call ToSpinors(`$MOMENTA')
#endif
- while(match(SpinorChain(p?, mu1?, q?)*SpinorChain(k?, mu1?, l?)));
- #call Fierz(mu1?)
+ while(match(SpinorChain(P?, MU1?, Q?)*SpinorChain(K?, MU1?, L?)));
+ #call Fierz(MU1?)
endwhile;
#call SortArgs
- id AngleChain(p?, q?) = angle(p, q);
- id SquareChain(p?, q?) = square(p, q);
+ id AngleChain(P?, Q?) = angle(P, Q);
+ id SquareChain(P?, Q?) = square(P, Q);
argument denom_;
- id AngleChain(p?, q?) = angle(p, q);
- id SquareChain(p?, q?) = square(p, q);
+ id AngleChain(P?, Q?) = angle(P, Q);
+ id SquareChain(P?, Q?) = square(P, Q);
endargument;
#endprocedure
#procedure GetMomentaInChains(MOMENTA)
- id ct?{`CHAINS'}(?a) = dum(?a)*ct(?a);
- #$tmp = 0;
- #$p = 0;
- argument dum;
+ id CT?{`CHAINS'}(?a) = DUM(?a)*CT(?a);
+ #$TMP = 0;
+ #$P = 0;
+ argument DUM;
dropcoefficient;
- $p = term_;
- $tmp = $tmp + $p;
+ $P = term_;
+ $TMP = $TMP + $P;
endargument;
- id dum(?a) = 1;
- moduleoption local $p;
- moduleoption sum $tmp;
+ id DUM(?a) = 1;
+ moduleoption local $P;
+ moduleoption sum $TMP;
.sort
- #$tmp = dum_($tmp);
- #inside $tmp
+ #$TMP = dum_($TMP);
+ #inside $TMP
splitarg dum_;
argument dum_;
dropcoefficient;
endargument;
- repeat id dum_(?a, mu1?index_, ?b) = dum_(?a, ?b);
+ repeat id dum_(?a, MU1?index_, ?b) = dum_(?a, ?b);
id dum_(?a`MOMENTA') = 0;
#endinside
#endprocedure
#procedure InsCurrent
id Current(+1, ?a) = Current(-1, reverse_(?a));
* hack
* with ?a as pattern FORM has problems if the arguments are sums of momenta
#do N=3,50
- id Current(-1, mu1?,...,mu`N'?) = SpinorChain(mu1,...,mu`N');
+ id Current(-1, MU1?,...,MU`N'?) = SpinorChain(MU1,...,MU`N');
#enddo
#endprocedure
#procedure SortArgs
#do F={AngleChain,SquareChain}
antisymmetrize `F':2;
#enddo
#endprocedure
#procedure DoConjugate
splitarg Conjugate;
- repeat id Conjugate(x?, y?, ?a) = Conjugate(x) + Conjugate(y, ?a);
+ repeat id Conjugate(X?, Y?, ?a) = Conjugate(X) + Conjugate(Y, ?a);
normalize Conjugate;
- id Conjugate(AngleChain(p?, q?)) = -SquareChain(p, q);
- id Conjugate(SquareChain(p?, q?)) = -AngleChain(p, q);
- id Conjugate(SpinorChain(?a)) = dum(reverse_(?a));
- id dum(?a) = SpinorChain(?a);
+ id Conjugate(AngleChain(P?, Q?)) = -SquareChain(P, Q);
+ id Conjugate(SquareChain(P?, Q?)) = -AngleChain(P, Q);
+ id Conjugate(SpinorChain(?a)) = DUM(reverse_(?a));
+ id DUM(?a) = SpinorChain(?a);
#endprocedure
#procedure Fierz(MU)
- once SpinorChain(p?, `MU', q?)*SpinorChain(k?, `MU', l?) = (
- 2*AngleChain(p, k)*SquareChain(l, q)
+ once SpinorChain(P?, `MU', Q?)*SpinorChain(K?, `MU', L?) = (
+ 2*AngleChain(P, K)*SquareChain(L, Q)
);
#endprocedure
#procedure MomentumToSpinorsInSpinorChain(P)
- id SpinorChain(p?, ?a, `P', ?b, q?) = dum(
- mod_(nargs_(p, ?a),2), mod_(nargs_(?b, q),2),
- SpinorChain(p, ?a, `P', ?b, q)
+ id SpinorChain(P?, ?a, `P', ?b, Q?) = DUM(
+ mod_(nargs_(P, ?a),2), mod_(nargs_(?b, Q),2),
+ SpinorChain(P, ?a, `P', ?b, Q)
);
- id dum(1, 1, SpinorChain(p?, ?a, `P', ?b, q?)) = (
- AngleChain(p, ?a, `P')*SquareChain(`P', ?b, q)
+ id DUM(1, 1, SpinorChain(P?, ?a, `P', ?b, Q?)) = (
+ AngleChain(P, ?a, `P')*SquareChain(`P', ?b, Q)
);
- id dum(0, 0, SpinorChain(p?, ?a, `P', ?b, q?)) = (
- SpinorChain(p, ?a, `P')*SpinorChain(`P', ?b, q)
+ id DUM(0, 0, SpinorChain(P?, ?a, `P', ?b, Q?)) = (
+ SpinorChain(P, ?a, `P')*SpinorChain(`P', ?b, Q)
);
- if(count(dum,1)>0);
+ if(count(DUM,1)>0);
print "even number of arguments in spinor chain in %t";
exit;
endif;
#endprocedure
#procedure MomentumToSpinorsInAngleChain(P)
- id AngleChain(p?, ?a, `P', ?b, q?) = dum(
- mod_(nargs_(p, ?a),2), mod_(nargs_(?b, q),2),
- AngleChain(p, ?a, `P', ?b, q)
+ id AngleChain(P?, ?a, `P', ?b, Q?) = DUM(
+ mod_(nargs_(P, ?a),2), mod_(nargs_(?b, Q),2),
+ AngleChain(P, ?a, `P', ?b, Q)
);
- id dum(1, 0, AngleChain(p?, ?a, `P', ?b, q?)) = (
- AngleChain(p, ?a, `P')*Conjugate(SpinorChain(`P', ?b, q))
+ id DUM(1, 0, AngleChain(P?, ?a, `P', ?b, Q?)) = (
+ AngleChain(P, ?a, `P')*Conjugate(SpinorChain(`P', ?b, Q))
);
- id dum(0, 1, AngleChain(p?, ?a, `P', ?b, q?)) = (
- SpinorChain(p, ?a, `P')*AngleChain(`P', ?b, q)
+ id DUM(0, 1, AngleChain(P?, ?a, `P', ?b, Q?)) = (
+ SpinorChain(P, ?a, `P')*AngleChain(`P', ?b, Q)
);
- if(count(dum,1)>0);
+ if(count(DUM,1)>0);
print "odd number of arguments in angle chain in %t";
exit;
endif;
#endprocedure
#procedure MomentumToSpinorsInSquareChain(P)
- id SquareChain(p?, ?a, `P', ?b, q?) = dum(
- mod_(nargs_(p, ?a),2), mod_(nargs_(?b, q),2),
- SquareChain(p, ?a, `P', ?b, q)
+ id SquareChain(P?, ?a, `P', ?b, Q?) = DUM(
+ mod_(nargs_(P, ?a),2), mod_(nargs_(?b, Q),2),
+ SquareChain(P, ?a, `P', ?b, Q)
);
- id dum(1, 0, SquareChain(p?, ?a, `P', ?b, q?)) = (
- SquareChain(p, ?a, `P')*SpinorChain(`P', ?b, q)
+ id DUM(1, 0, SquareChain(P?, ?a, `P', ?b, Q?)) = (
+ SquareChain(P, ?a, `P')*SpinorChain(`P', ?b, Q)
);
- id dum(0, 1, SquareChain(p?, ?a, `P', ?b, q?)) = (
- Conjugate(SpinorChain(p, ?a, `P'))*SquareChain(`P', ?b, q)
+ id DUM(0, 1, SquareChain(P?, ?a, `P', ?b, Q?)) = (
+ Conjugate(SpinorChain(P, ?a, `P'))*SquareChain(`P', ?b, Q)
);
- if(count(dum,1)>0);
+ if(count(DUM,1)>0);
print "odd number of arguments in angle chain in %t";
exit;
endif;
#endprocedure
#procedure MomentumToSpinors(P)
repeat;
#do CHAIN={`CHAINS'}
id `CHAIN'(?a, `P', `P', ?b) = 0;
#call MomentumToSpinorsIn`CHAIN'(`P')
#enddo
endrepeat;
#endprocedure
#procedure ToSpinors(?PS)
#do P={`?PS'}
#call MomentumToSpinors(`P')
argument;
#call MomentumToSpinors(`P')
endargument;
factarg Conjugate;
chainout Conjugate;
- id Conjugate(Conjugate(x?)) = x;
+ id Conjugate(Conjugate(X?)) = X;
#enddo
#call DoConjugate
#endprocedure

File Metadata

Mime Type
text/x-diff
Expires
Mon, Feb 24, 6:43 AM (1 d, 8 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4494606
Default Alt Text
(7 KB)

Event Timeline