Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F9514777
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
7 KB
Subscribers
None
View Options
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
Details
Attached
Mime Type
text/x-diff
Expires
Mon, Feb 24, 6:43 AM (1 d, 14 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4494606
Default Alt Text
(7 KB)
Attached To
rHEJ HEJ
Event Timeline
Log In to Comment