-
Notifications
You must be signed in to change notification settings - Fork 2
/
FeynArts312.m
1536 lines (1177 loc) · 54.6 KB
/
FeynArts312.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
(*
This is FeynArts, Version 3.12
Copyright by Sepp Kueblbeck, Hagen Eck, and Thomas Hahn 1991-2022
last modified 24 May 24 by Thomas Hahn
Release notes:
FeynArts is free software, but is not in the public domain.
Instead it is covered by the GNU Lesser General Public License.
In plain English this means:
1. We don't promise that this software works.
(But if you find any bugs, please let us know!)
2. You can use this software for whatever you want.
You don't have to pay us.
3. You may not pretend that you wrote this software.
If you use it in a program, you must acknowledge
somewhere in your publication that you've used
our code.
If you're a lawyer, you can find the legal stuff at
http://www.fsf.org/copyleft/lgpl.html.
The user guide for this program can be found at
http://www.feynarts.de.
If you find any bugs, or want to make suggestions, or
just write fan mail, address it to:
Thomas Hahn
Max Planck Institute for Physics
Foehringer Ring 6
D-80805 Munich, Germany
e-mail: hahn@feynarts.de
Have fun!
*)
BeginPackage["FeynArts`"]
(* definitions for Utilities.m *)
FAPrint::usage =
"FAPrint[v, s] prints s if v <= $FAVerbose."
ActualOptions::usage =
"ActualOptions[sym, options] returns a list of options of sym with the
valid options of sym replaced by their actual values."
SelectOptions::usage =
"SelectOptions[fun, options] selects from options those that belong to
fun."
ResolveLevel::usage =
"ResolveLevel[lev] returns a full set of levels selected by lev. For
example, ResolveLevel[Particles] gives {Generic, Classes, Particles}."
ResolveType::usage =
"ResolveType[t] returns an abridged class of propagator with values
External, Internal, or Loop."
ContainsQ::usage =
"ContainsQ[expr, items] gives True if expr contains every element in
items."
ToGeneric::usage =
"ToGeneric[expr] returns expr with all classes and particle fields
replaced by their generic fields. Mind that this procedure removes the
signs of the fields."
ToClasses::usage =
"ToClasses[expr] returns expr with all particle fields replaced by their
classes fields."
Seq::usage =
"Seq is almost identical to Sequence except that it is not expanded
automatically."
TakeGraph::usage =
"TakeGraph[ins -> graph] returns graph."
TakeIns::usage =
"TakeIns[ins -> graph] returns ins."
Subst::usage =
"Subst[expr, i, j] substitutes the elements of i by the corresponding
elements of j, where j may be shorter than i."
PSort::usage =
"PSort[p] sorts the first two elements of a propagator p."
VSort::usage =
"VSort[v] sorts vertex v into canonical order."
Vertices::usage =
"Vertices[top] returns a list of all vertices of topology top."
AddFieldNo::usage =
"AddFieldNo[top] adds numbers of the form Field[n] to the propagators in
topology top."
Compare::usage =
"Compare[t] is the `pure' compare function to eliminate equivalent
topologies of a TopologyList t."
ProcessName::usage =
"ProcessName[amp] constructs a string suitable as filename for the
inserted topology or amplitude list amp which is unique to the model
and particle selection."
NumberOf::usage =
"NumberOf is an internal function."
Statistics::usage =
"Statistics is an internal function."
Alph::usage =
"Alph[n] gives the nth lowercase letter."
UCAlph::usage =
"UCAlph[n] gives the nth uppercase letter."
Greek::usage =
"Greek[n] gives the nth lowercase greek letter."
UCGreek::usage =
"UCGreek[n] gives the nth uppercase greek letter."
(* definitions for Topology.m *)
Topology::usage =
"Topology is the head of a topology data structure. Topology[s] is
the head of a topology with combinatorial factor 1/s."
TopologyList::usage =
"TopologyList is the head of a list of topologies."
Propagator::usage =
"Propagator[v1, v2] is an (undirected) propagator joining the two
vertices v1 and v2.
Propagator[v1, v2, f] is a (directed) propagator transporting field f
from vertex v1 to v2.
Propagator[t][...] is the representation of a propagator of type t.
Possible types are: Incoming, Outgoing, External, Internal and Loop[n]."
Incoming::usage =
"Propagator[Incoming][...] denotes an incoming propagator."
Outgoing::usage =
"Propagator[Outgoing][...] denotes an outgoing propagator."
External::usage =
"Propagator[External][...] denotes an external propagator.
External is also used in SumOver[index, range, External] to indicate
that the index to be summed belongs to an external particle."
Internal::usage =
"Propagator[Internal][...] denotes an internal propagator.
ExcludeTopologies -> Internal is the same as
ExcludeTopologies -> Irreducible."
Loop::usage =
"Propagator[Loop[n]][...] denotes a propagator on loop n."
Vertex::usage =
"Vertex[e][n] is the representation of a vertex with e propagators in
a topology. Vertex[e, cto][n] is the representation of a vertex of
counter-term order cto in a topology."
CreateTopologies::usage =
"CreateTopologies[l, i -> o] returns a TopologyList of topologies with
i incoming and o outgoing legs and l loops (at the moment l = 0...3)."
ExcludeTopologies::usage =
"ExcludeTopologies is an option of Create[CT]Topologies which specifies
filters for excluding topologies. You may use the built-in filters:
Tadpoles, TadpoleCTs, SelfEnergies, SelfEnergyCTs, WFCorrections,
WFCorrectionCTs, Triangles, TriangleCTs, Boxes[n], BoxCTs[n], AllBoxes,
AllBoxCTs, or define new ones using $ExcludeTopologies."
$ExcludeTopologies::usage =
"$ExcludeTopologies[filt] is the function corresponding to filt in
ExcludeTopologies -> {filt, ...}. It must be defined as a pure function
(i.e. func[#]&). Given a topology, this function must return True if
the topology shall not be discarded."
Loops::usage =
"ExcludeTopologies -> Loops[n] makes Create[CT]Topologies exclude
topologies containing loops connected to the rest of the graph with
n propagators."
CTs::usage =
"ExcludeTopologies -> CTs[n] makes Create[CT]Topologies exclude the
counter-term topologies corresponding to Loops[n]."
Irreducible::usage =
"ExcludeTopologies -> Irreducible makes Create[CT]Topologies exclude
one-particle-reducible topologies."
Reducible::usage =
"ExcludeTopologies -> Reducible makes Create[CT]Topologies exclude
one-particle-irreducible topologies."
Tadpoles::usage =
"ExcludeTopologies -> Tadpoles makes Create[CT]Topologies exclude
topologies containing loops connected to the rest of the graph with
one propagator."
TadpoleCTs::usage =
"ExcludeTopologies -> TadpoleCTs makes Create[CT]Topologies exclude
counter-term topologies corresponding to Tadpoles."
SelfEnergies::usage =
"ExcludeTopologies -> SelfEnergies makes Create[CT]Topologies exclude
topologies containing loops connected to the rest of the graph with
two propagators."
SelfEnergyCTs::usage =
"ExcludeTopologies -> SelfEnergyCTs makes Create[CT]Topologies exclude
counter-term topologies corresponding to SelfEnergies."
WFCorrections::usage =
"ExcludeTopologies -> WFCorrections makes Create[CT]Topologies exclude
wave-function-correction topologies, i.e. self-energy insertions and
tadpoles on external legs.
It can also be used in the form WFCorrections[patt], which limits the
selection to only those external lines matching patt."
WFCorrectionCTs::usage =
"ExcludeTopologies -> WFCorrectionCTs makes Create[CT]Topologies exclude
wave-function-correction counter-term topologies, i.e. the counter-terms
corresponding to WFCorrections.
It can also be used in the form WFCorrectionCTs[patt], which limits the
selection to only those external lines matching patt."
Triangles::usage =
"ExcludeTopologies -> Triangles makes Create[CT]Topologies exclude
topologies containing loops connected to the rest of the graph with
three propagators."
TriangleCTs::usage =
"ExcludeTopologies -> TriangleCTs makes Create[CT]Topologies exclude
the counter-term topologies corresponding to Triangles."
Boxes::usage =
"ExcludeTopologies -> Boxes makes Create[CT]Topologies exclude
topologies containing loops connected to the rest of the graph with
four propagators."
BoxCTs::usage =
"ExcludeTopologies -> BoxCTs makes Create[CT]Topologies exclude the
counter-term topologies corresponding to Boxes."
Pentagons::usage =
"ExcludeTopologies -> Pentagons makes Create[CT]Topologies exclude
topologies containing loops connected to the rest of the graph with
five propagators."
PentagonCTs::usage =
"ExcludeTopologies -> PentagonCTs makes Create[CT]Topologies exclude
the counter-term topologies corresponding to Pentagons."
Hexagons::usage =
"ExcludeTopologies -> Hexagons makes Create[CT]Topologies exclude
topologies containing loops connected to the rest of the graph with
six propagators."
HexagonCTs::usage =
"ExcludeTopologies -> HexagonCTs makes Create[CT]Topologies exclude
the counter-term topologies corresponding to Hexagons."
AllBoxes::usage =
"ExcludeTopologies -> AllBoxes makes Create[CT]Topologies exclude
topologies containing loops connected to the rest of the graph with
four or more propagators."
AllBoxCTs::usage =
"ExcludeTopologies -> AllBoxCTs makes Create[CT]Topologies exclude
the counter-term topologies corresponding to AllBoxes."
TadpolesOnly::usage =
"TadpolesOnly is a short-cut used with CreateTopologies to keep only
topologies containing tadpoles."
TadpoleCTsOnly::usage =
"TadpoleCTsOnly is a short-cut used with CreateCTTopologies to keep only
topologies containing one-point counter-terms."
SelfEnergiesOnly::usage =
"SelfEnergiesOnly is a short-cut used with CreateTopologies to keep only
topologies containing self-energies on internal lines."
SelfEnergyCTsOnly::usage =
"SelfEnergyCTsOnly is a short-cut used with CreateCTTopologies to keep
only topologies containing two-point counter-terms on internal lines."
TrianglesOnly::usage =
"TrianglesOnly is a short-cut used with CreateTopologies to keep only
topologies containing triangles."
TriangleCTsOnly::usage =
"TriangleCTsOnly is a short-cut used with CreateCTTopologies to keep
only topologies containing three-point counter-terms."
BoxesOnly::usage =
"BoxesOnly is a short-cut used with CreateTopologies to keep only
topologies containing boxes."
BoxCTsOnly::usage =
"BoxCTsOnly is a shortcut used with CreateCTTopologies to keep only
topologies containing four-point counter-terms."
PentagonsOnly::usage =
"PentagonsOnly is a short-cut used with CreateTopologies to keep only
topologies containing pentagons."
PentagonCTsOnly::usage =
"PentagonCTsOnly is a shortcut used with CreateCTTopologies to keep
only topologies containing five-point counter-terms."
HexagonsOnly::usage =
"HexagonsOnly is a short-cut used with CreateTopologies to keep only
topologies containing hexagons."
HexagonCTsOnly::usage =
"HexagonCTsOnly is a shortcut used with CreateCTTopologies to keep
only topologies containing six-point counter-terms."
ToTree::usage =
"ToTree[top] returns top with the loops shrunk to points named
Centre[adj][n] where adj is the adjacency of loop n."
Centre::usage =
"Centre[adj][n] represents the remains of loop n with adjacency adj
after being shrunk to a point by ToTree."
FreeWFQ::usage =
"FreeWFQ[top, patt1, patt2] determines if the topology top is free of
one-point vertices specified by patt1 and two-point vertices specified
by patt2 on external legs. For example, the WFCorrections filter uses
FreeWFQ[ToTree[top], Centre[1], Centre[2]]&."
WFCorrectionFields::usage =
"WFCorrectionFields[top] extracts the fields external to any
wave-function correction from topology top.
WFCorrectionFields[rul, top] first substitutes the insertion rules rul
into the bare topology top before proceeding.
This function is typically used as a filter for DiagramSelect, as in
DiagramSelect[diags, UnsameQ@@ WFCorrectionFields[##] &]."
WFCorrectionCTFields::usage =
"WFCorrectionCTFields[top] extracts the fields external to any
wave-function-correction counter-term from topology top.
WFCorrectionFields[rul, top] first substitutes the insertion rules rul
into the bare topology top before proceeding.
This function is typically used as a filter for DiagramSelect, as in
DiagramSelect[diags, UnsameQ@@ WFCorrectionCTFields[##] &]."
LoopFields::usage =
"LoopFields[top] returns a list of the fields that are part of any
loop in the topology top.
LoopFields[ins, top] first substitutes the insertion rules ins into the
bare topology top before proceeding.
This function is typically used as a filter for DiagramSelect or
DiagramGrouping, as in DiagramSelect[diags, FreeQ[LoopFields[##], fi]&]."
TreeFields::usage =
"TreeFields[top] returns a list of the fields running on the tree
part (not including external lines) of the topology top.
TreeFields[ins, top] first substitutes the insertion rules ins into
the bare topology top before proceeding.
This function is typically used as a filter for DiagramSelect or
DiagramGrouping, as in DiagramSelect[diags, FreeQ[TreeFields[##], fi]&]."
IRDivergentQ::usage =
"IRDivergentQ[ins, top] returns True if the diagram contains a massless
propagator attached on both sides to two fields of identical mass. Such
diagrams give rise to IR singularities.
This function is typically used as a filter for DiagramSelect or
DiagramGrouping, as in DiagramSelect[diags, IRDivergentQ]."
STChannelFields::usage =
"STChannelFields[top] returns a list {fs, ft}, where fs(ft) contains the
fields running on s(t)-channel-like propagators of topology top."
SChannelQ::usage =
"SChannelQ[fi][ins, top] returns True if field fi runs on any
s-channel-like propagator of topology top.
This function is typically used as a filter for DiagramSelect or
DiagramGrouping, as in DiagramSelect[diags, SChannelQ[fi]]."
TChannelQ::usage =
"TChannelQ[fi][ins, top] returns True if field fi runs on any
t-channel-like propagator of topology top.
This function is typically used as a filter for DiagramSelect or
DiagramGrouping, as in DiagramSelect[diags, TChannelQ[fi]]."
StartingTopologies::usage =
"StartingTopologies is an option of CreateTopologies. It specifies a
pattern for selecting the starting topologies. The latter are defined
in Topology.m, e.g. at two-loop level there are three starting
topologies: Theta, Eight, and Bicycle."
StartTop::usage =
"StartTop[l, cto] is the list of starting topologies for topologies with
l loops and counter-term order cto. The starting topologies are defined
in Topology.m."
Theta::usage =
"Theta is the name of the two-loop starting topology that looks like the
greek letter theta."
Eight::usage =
"Eight is the name of the two-loop starting topology that looks like the
number 8."
Bicycle::usage =
"Bicycle is the name of the two-loop starting topology that looks (sort
of) like a bicycle."
Three::usage =
"Three[n] is the name for the irreducible three-loop starting
topologies, where n = 1...8."
ThreeRed::usage =
"ThreeRed[n] is the name for the reducible three-loop starting
topologies, where n = 1...7."
Adjacencies::usage =
"Adjacencies is an option of CreateTopologies. Its setting is a list
{e1, e2, ...} of integers (ei > 2) of allowed adjacencies of vertices.
The adjacency of a vertex is the number of propagators ending at that
vertex. The two special cases ei = 1 and 2 are for external particles
and counter terms, respectively, and are taken care of by
CreateTopologies."
CTOrder::usage =
"CTOrder is an option of CreateTopologies that specifies for which order
counter terms shall be generated."
CreateCTTopologies::usage =
"CreateCTTopologies[l, i -> o] generates all counter-term topologies
needed for the l-loop diagrams generated by CreateTopologies[l, i -> o]."
CreateVFTopologies::usage =
"CreateVFTopologies[l, i -> o] generates all topologies with 1PI vertex
functions whose total loop order is l."
TopologySort::usage = "TopologySort[top] sorts the topology top into a
(more or less) canonical order."
TopologyOrdering::usage =
"TopologyOrdering[top] returns the topology top sorted into a (more or
less) canonical order, together with the permutation that brings it into
this order, i.e. a list of the positions at which the propagators in the
sorted version appeared in the unsorted version. A negative integer in
the permutation indicates that also the vertices in the respective
propagator were exchanged with respect to the original."
SymmetryFactor::usage =
"SymmetryFactor[top] returns the symmetry factor for the topology top.
This value is needed if you want to enter new starting topologies."
(* definitions for Insert.m *)
Insertions::usage =
"Insertions is the head of an insertion list. Insertions[lev] specifies
insertions at level lev. Insertion lists are returned by InsertFields
as a rule of the form \"topology -> insertionlist\"."
FeynmanGraph::usage =
"FeynmanGraph is the head of a list of field replacement rules. The
elements of an insertion list are FeynmanGraphs."
Field::usage =
"Field[n] denotes the nth field in a topology."
InsertFields::usage =
"InsertFields[top, {inc1, inc2, ...} -> {out1, out2, ...}] constructs
all Feynman diagrams for the Topology or TopologyList top with incoming
fields inc1, inc2, ... and outgoing fields out1, out2, ..."
Restrictions::usage =
"Restrictions is an option of InsertFields. It contains shorthands to
exclude vertices or particles defined in the corresponding model file."
LastSelections::usage =
"LastSelections is an option of InsertFields. It is given as a list of
symbols which must (or must not, if preceded by \"!\") appear in the
Insertions."
InsertionLevel::usage =
"InsertionLevel is an option of InsertFields and CreateFeynAmp.
Possible values are Generic, Classes, or Particles. Just as with the
usual Mathematica level specification, e.g. {Particles} means \"only
Particles level\" whereas Particles means \"down to Particles level\".
By default, CreateFeynAmp uses the same level as InsertFields."
Generic::usage =
"Generic denotes the generic (general field types) level of insertion."
Classes::usage =
"Classes denotes the classes (multiplets) level of insertion."
Particles::usage =
"Particles denotes the particles (members of classes) level of
insertion."
Model::usage =
"Model -> \"MOD\" is an option of InsertFields to select the classes
model MOD. The model information is taken from the file MOD.mod."
GenericModel::usage =
"GenericModel -> \"GEN\" is an option of InsertFields and
InitializeModel to select the generic model GEN. The model information
is taken from the file GEN.gen."
Process::usage =
"Process is returned by InsertFields as an option of TopologyList.
It specifies the process as a rule \"inparticles -> outparticles\"."
FieldPoints::usage =
"FieldPoints[top] returns a list of the field points contained in
the topology top. FieldPoints[rul, top] first substitutes the
insertion rules rul into the bare topology top before proceeding.
This function is typically used as a filter for DiagramSelect or
DiagramGrouping, as in
DiagramSelect[diags, MemberQ[FieldPoints[##], (some field point)]&]."
TakeInc::usage =
"TakeInc[v][p] returns the incoming particle from vertex v in
propagator p."
IndexDelta::usage =
"IndexDelta[i1, i2] is a symbol in the definition of a classes coupling
indicating that the coupling is diagonal in the indices i1 and i2."
IndexEps::usage =
"IndexEps[i1, i2, i3] is the totally antisymmetric symbol in the indices
i1, i2, i3."
(* definitions for Initialize.m *)
ReadGenericModel::usage =
"ReadGenericModel[genname] reads the generic model file(s) genname.gen.
ReadGenericModel[genname, ext] specifies an explicit extension, i.e.
reads genname.ext."
LoadGenericModel::usage =
"LoadGenericModel works like ReadGenericModel except that it clears
existing generic model definitions before and aborts if the generic
model is incomplete."
ReadModel::usage =
"ReadModel[modname] reads the classes model file(s) modname.mod.
ReadModel[modname, ext] specifies an explicit extension, i.e. reads
modname.ext."
LoadModel::usage =
"LoadModel works like ReadModel except that it clears existing model
definitions before and aborts if the model is incomplete."
DumpGenericModel::usage =
"DumpGenericModel[genfile] saves the generic model file presently in
memory in genfile. DumpGenericModel[genfile, syms] includes the symbols
syms in the variables to be saved in genfile."
DumpModel::usage =
"DumpModel[modfile] saves the classes model file presently in memory in
modfile. DumpModel[modfile, syms] includes the symbols syms in the
variables to be saved in modfile."
InitializeModel::usage =
"InitializeModel[modname] initializes the classes model for the model
modname and the generic model given by the GenericModel option. The
model information is taken from the file modname.mod. InitializeModel[]
initializes only the generic model."
Reinitialize::usage =
"Reinitialize is an option of InitializeModel. InitializeModel will
reinitialize the current model only if Reinitialize is set to True."
GenericModelEdit::usage =
"GenericModelEdit is an option of InitializeModel. It specifies code
that will be executed directly after loading the generic model, i.e.
before the actual initialization."
ModelEdit::usage =
"ModelEdit is an option of InitializeModel. It specifies code that will
be executed directly after loading the classes model, i.e. before the
actual initialization."
CloseKinematicVector::usage =
"CloseKinematicVector/@ M$GenericCouplings adds to the kinematic vectors
of the couplings in M$GenericCouplings the elements to 'close' them
under permutations. CloseKinematicVector adds appropriate definitions
of CloseCouplingVector which must be used on the M$CouplingMatrices
during the initialization of the classes model."
CloseCouplingVector::usage =
"CloseCouplingVector/@ M$CouplingMatrices arranges the coupling vectors
of the couplings in M$CouplingMatrices to be consistent with the closed
kinematic vectors of the generic model file."
RestrictCurrentModel::usage =
"RestrictCurrentModel[args] applies a number of ExcludeFieldPoints and
ExcludeParticles restrictions to the current model.
RestrictCurrentModel[] removes all currently active restrictions."
ExcludeParticles::usage =
"ExcludeParticles is an option of RestrictCurrentModel. It specifies a
list of fields to exclude from the current model. Excluding a field at
a particular level automatically excludes all derived fields at lower
levels. For example, excluding F[3] also excludes all F[3, {...}].
Further, the exclusion of a particle always implies exclusion of its
antiparticle."
ExcludeFieldPoints::usage =
"ExcludeFieldPoints is an option of RestrictCurrentModel. It specified
a list of field points to exclude from the current model. Excluding a
field point at a particular level automatically excludes derived field
points on lower levels. For example, excluding FieldPoint[F[3], -F[3],
V[1]] also excludes FieldPoint[F[3, {1}], -F[3, {1}], V[1]] etc.
Further, the exclusion of a field point always implies exclusion of its
charge-conjugate field point."
FieldMatchQ::usage =
"FieldMatchQ[f, fpatt] returns True if the field f matches the pattern
fpatt and False otherwise. The matching takes into account field levels,
e.g. F[1] matches F."
FieldMemberQ::usage =
"FieldMemberQ[flist, fpatt] returns True if an element of flist matches
fpatt in the sense that FieldMatchQ returns True."
FieldPointMatchQ::usage =
"FieldPointMatchQ[fp, fppatt] returns True if the field point fp matches
the pattern fppatt and False otherwise. The matching takes into account
field levels, e.g. F[1] matches F."
FieldPointMemberQ::usage =
"FieldPointMemberQ[fplist, fppatt] returns True if an element of fplist
matches fppatt in the sense that FieldPointMatchQ returns True."
ExcludedQ::usage =
"ExcludedQ[vertlist] gives True if vertlist contains any vertices
currently excluded at Particles level."
PossibleFields::usage =
"PossibleFields[cto][t, fp] returns all possible fields of type t that
fit fp at counter-term order cto. t may be 0 (allowing all fields) or a
generic field."
CheckFieldPoint::usage =
"CheckFieldPoint[fp] yields True if fp is a valid field point in the
current model and False otherwise."
AntiParticle::usage =
"AntiParticle[f] returns the antiparticle of f."
TheMass::usage =
"TheMass[p] gives the value of the mass of particle p (if specified in
the model file). TheMass[p, t] gives the mass for particle p running
on a propagator of type t (External, Internal, Loop)."
Indices::usage =
"Indices[c] gives a list of index names of class c."
IndexRange::usage =
"IndexRange[i] gives a list of possible values of index i."
NoUnfold::usage =
"NoUnfold, when wrapped around the right hand side of an IndexRange
assignment, prevents InsertFields from \"unfolding\" that index at
particles level, i.e. InsertFields then does not generate an extra
diagram for every value the index can take on."
IndexSum::usage =
"IndexSum[expr, {i, range}] represents the unevaluated sum of expr in
the index i over range. To execute the sum, replace IndexSum by Sum."
AddHC::usage =
"AddHC[mat] extends mat by its Hermitian conjugate part, e.g.
AddHC[A[1, i, j]] returns (A[1, i, j] + Conjugate[A[1, j, i]])/2.
AddHC[mat, w] forms the weighted sum with weight function w, e.g.
AddHC[A[1, i, j], w] returns (w[i, j] A[1, i, j] + Conjugate[w[j, i]]
Conjugate[A[1, j, i]])/2."
RenConst::usage =
"RenConst[rc] := ... defines the renormalization constant rc."
MassShift::usage =
"MassShift[ms] := ... defines the mass shift ms."
ReferenceOrder::usage =
"ReferenceOrder[x] gives a list of all field points of the current model
in (unsorted) list form. x can be Generic or Classes."
FieldPoint::usage =
"FieldPoint[cto][f1, f2, ...] is the representation of a field point of
counter-term order cto with incoming fields f1, f2, ..."
FieldPointList::usage =
"FieldPointList[cto] returns a list of field points of counter-term order
cto in the current model, FieldPointList[Classes] returns a list of field
points of all orders in the current classes model, and
FieldPointList[Generic] returns a list of all generic field points."
KinematicVector::usage =
"KinematicVector[fi] returns the kinematic vector of the coupling of the
fields fi."
CouplingDeltas::usage =
"CouplingDeltas[v] returns a list of the IndexDeltas in which the entire
vertex v is diagonal."
F$Generic::usage =
"F$Generic gives the list of generic fields of the current model.
Its contents may change with every call to RestrictCurrentModel."
F$Classes::usage =
"F$Classes gives the list of classes fields of the current model.
Its contents may change with every call to RestrictCurrentModel."
F$Particles::usage =
"F$Particles gives the list of particles fields of the current model.
Its contents may change with every call to RestrictCurrentModel."
F$AllGeneric::usage =
"F$AllGeneric gives the list of generic fields of the current model."
F$AllClasses::usage =
"F$AllClasses gives the list of classes fields of the current model."
F$AllParticles::usage =
"F$AllParticles gives the list of particles fields of the current
model."
F$AllowedFields::usage =
"F$AllowedFields is the list of all fields at all three levels that are
in the current model. Its contents may change with every call to
RestrictCurrentModel."
L$CTOrders::usage =
"L$CTOrders is the list of counter-term orders of the current model."
Mom::usage =
"Mom[n] is the momentum of the nth field in the kinematic vector."
KI1::usage = KI2::usage = KI3::usage = KI4::usage = KI5::usage = KI6::usage =
"KIi[n] is the ith kinematic index of the nth field in the kinematic
vector."
KIs = {KI1, KI2, KI3, KI4, KI5, KI6, KI7, KI8, KI9, KI10, KI11, KI12}
SI::usage = "SI[n] is the nth summation index in a component of the
kinematic vector."
SIs = {SI1_, SI2_, SI3_, SI4_, SI5_, SI6_, SI7_, SI8_, SI9_, SI10_, SI11_, SI12_}
CI::usage = "CI[n] is the classes index of the nth field in the
kinematic vector."
PV::usage =
"PV is the head of a general analytical expression in FeynArts.
The letters stand for Propagator/Vertex."
F::usage =
"F is a fermion field."
S::usage =
"S is a scalar field."
U::usage =
"U is a ghost field (Grassmann-valued scalar field)."
V::usage =
"V is a vector boson field."
T::usage =
"T is a tensor field."
Mix::usage =
"Mix[g1, g2] is a generic mixing field with left partner g1 and
right partner g2."
SV = Mix[S, V] (* for compatibility *)
Rev::usage =
"Rev[g1, g2] is a generic mixing field with left partner g2 and
right partner g1, i.e. the reverse of Mix[g1, g2]. Rev is needed
internally by FeynArts but should not appear in a model file."
$GenericMixing::usage =
"$GenericMixing determines whether mixing of generic fields is
allowed or not."
$CounterTerms::usage =
"$CounterTerms determines whether or not counter-term couplings are
initialized during InitializeModel. Note that once a model is
initialized, if you change the value of $CounterTerms you have to
re-initialize the model for this to take effect."
$ModelPath::usage =
"$ModelPath is a list of directory names which is searched for model
files."
$Model::usage =
"$Model is the currently initialized classes model."
$GenericModel::usage =
"$GenericModel is the currently initialized generic model."
ModelDebug::usage =
"ModelDebug can be wrapped around a model name to enable debugging for
that model."
$ModelDebug::usage =
"$ModelDebug determines whether changes introduced by add-on model files
will be reported as a model is initialized. It can be set to True, in
which case debugging output will be generated for all add-on model
files, or to the name (or list of names) of the add-on model file(s) to
be debugged."
$ModelDebugForm::usage =
"$ModelDebugForm specifies the output form for debugging output when
$ModelDebug = True is set."
$ModelAdded::usage =
"$ModelAdded contains the couplings added by the most recently
initialized add-on model file if $ModelDebug = True."
$ModelChanged::usage =
"$ModelAdded contains the couplings changed by the most recently
initialized add-on model file if $ModelDebug = True."
$ModelRemoved::usage =
"$ModelRemoved contains the couplings removed by the most recently
initialized add-on model file if $ModelDebug = True."
$ExcludedFPs::usage =
"$ExcludedFPs is the list of currently excluded Generic- and
Classes-level field points."
$ExcludedParticleFPs::usage =
"$ExcludedParticleFPs is the list of currently excluded Particles-level
field points."
(* definitions for the model files *)
M$GenericPropagators::usage =
"M$GenericPropagators is the list of propagators and their analytical
expressions in the generic model file."
M$GenericCouplings::usage =
"M$GenericCouplings is the list of couplings and their analytical
expressions in the generic model file."
M$ClassesDescription::usage =
"M$ClassesDescription is the list of classes properties in the classes
model file."
M$CouplingMatrices::usage =
"M$CouplingMatrices is the list of explicit coupling matrices of the
current model."
M$TruncationRules::usage =
"M$TruncationRules is a set of rules that is applied by CreateFeynAmp if
Truncated -> True. It is defined in the generic model file. Typically,
it removes external wavefunctions."
M$FlippingRules::usage =
"M$FlippingRules is a set of rules defined in the generic model file
that specify how noncommutative structures in a coupling change when the
order of the corresponding fields changes. For example, it specifies
how to derive the coupling C[F, -F, ...] from C[-F, F, ...]."
M$LastModelRules::usage =
"M$LastModelRules is a set of rules that is applied by CreateFeynAmp at
the very end. It is defined in the model file and can e.g. contain
mappings of symbols to certain Contexts or to special symbols of other
packages."
M$LastGenericRules::usage =
"M$LastGenericRules is a set of rules that is applied by CreateFeynAmp
after creation of the generic amplitudes. It is defined in the generic
model file and can contain e.g. mappings of symbols to certain Contexts
or to special symbols of other packages."
AnalyticalCoupling::usage =
"AnalyticalCoupling[vertex] == G[_][__] . {__} is the form a vertex is
specified in a generic model file."
AnalyticalPropagator::usage =
"AnalyticalPropagator[type][field] == expr is the form a propagator is
specified in a generic model file."
KinematicIndices::usage =
"KinematicIndices[fi] is a list of the kinematic indices the generic
field fi carries. For example, KinematicIndices[V] = {Lorentz} in
Lorentz.gen."
FieldNumber::usage =
"FieldNumber[f] can be used in the AnalyticalPropagator and
AnalyticalCoupling definitions of the Generic model file to find out
the ordinal number of a field in the diagram being inserted."
MatrixTraceFactor::usage =
"MatrixTraceFactor -> n is an optional entry for fermions in the
M$ClassesDescription list. A MatrixTrace (a closed loop of fermions) is
multiplied by the MatrixTraceFactor of its consituents. Typical usage
is MatrixTraceFactor -> 3 for quarks. The factor may contain objects of
the form Index[type], which are substituted by the actual indices
carried by the fields in the loop."
SelfConjugate::usage =
"SelfConjugate -> True | False is an entry in the M$ClassesDescription
list.
SelfConjugate[p] is True if field p is self-conjugate and False
otherwise."
Mixture::usage =
"Mixture -> lc is an optional entry in the M$ClassesDescription list
which specifies that the field is the linear combination lc of other
fields."
InsertOnly::usage =
"InsertOnly is an entry in the M$ClassesDescription list. It specifies
the types of progators the particle may be inserted into. If not
explicitly specified, the particle may be inserted into all types of
propagators.
InsertOnly[p] returns the types of propagators in which field p may be
inserted into."
Mass::usage =
"Mass[p] denotes the mass of particle p. Mass[p, t] denotes the mass of
particle p running on a propagator of type t (External, Internal, Loop).
It is just a symbol carrying no further information. FeynArts defines
the function TheMass that returns the explicit symbol of the mass (if
specified by the model file)."
MixingPartners::usage =
"MixingPartners -> {...} is an entry in the M$ClassesDescription list
for mixing fields and specifies their mixing partners.
MixingPartners[p] returns the partners of mixing field p."
QuantumNumbers::usage =
"QuantumNumbers -> {...} is an entry in the M$ClassesDescription list.
It lists the quantum numbers a particle possesses. Identifiers for the
quantum numbers can be chosen freely, e.g. Charge. The quantum numbers
are needed only when 1PI vertex-function insertions are generated (i.e.
for topologies created with CreateVFTopologies) to weed out such vertex
function that violate the conservation of a quantum number, as
determined by ViolatesQ."
ViolatesQ::usage =
"ViolatesQ is a function defined in the model file that determines
whether a vertex function violates quantum-number conservation. It is
called by InsertFields for every 1PI vertex-function insertion (i.e.
when inserting topologies created with CreateVFTopologies). It receives
as arguments the quantum numbers of the involved fields (times -1 for
antiparticles) and must return True if the vertex violates the
conservation of those quantum numbers."
Compatibles::usage =
"Compatibles[g][p] is a list of particles that are compatible with p
for insertion of generic field g."
Index::usage =
"Index is the head of an index name (i.e. Index[Generation])."
PropagatorType::usage =
"PropagatorType is an option used in the M$ClassesDescription list of a
model file and specifies the type of propagator for a particle.
Possible values are Straight, Sine, Cycles, ScalarDash, and GhostDash.
For a mixing propagtor, a list with two propagator types may be
specified."
Straight::usage =
"Straight selects a straight line in the PropagtorType option."
Sine::usage =
"Sine selects a wavy line in the PropagatorType option."
Cycles::usage =
"Cycles selects a cycloid in the PropagatorType option."
ScalarDash::usage =
"ScalarDash selects a dashed line in the PropagatorType option."
GhostDash::usage =
"GhostDash selects a dotted line in the PropagatorType option."