forked from HEPcodes/FeynRules
-
Notifications
You must be signed in to change notification settings - Fork 0
/
FeynRulesPackage.m
executable file
·1948 lines (1091 loc) · 82.7 KB
/
FeynRulesPackage.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
(* ::Package:: *)
(* ::Title:: *)
(*The FeynRules package*)
(* ::Section:: *)
(*Some printout*)
FR$Loaded = True;
BeginPackage["FeynRules`"];
FR$VersionNumber = "2.3.32";
FR$VersionDate = "12 March 2018";
Print[" - FeynRules - "];
Print["Version: ", FR$VersionNumber, " ("FR$VersionDate, ")."];
Print["Authors: A. Alloul, N. Christensen, C. Degrande, C. Duhr, B. Fuks"];
Print[" "];
Print["Please cite:"];
Print[" - Comput.Phys.Commun.185:2250-2300,2014 (arXiv:1310.1921);"];
Print[" - Comput.Phys.Commun.180:1614-1641,2009 (arXiv:0806.4194)."];
Print[" "];
Print["http://feynrules.phys.ucl.ac.be"];
Print[" "];
Print["The FeynRules palette can be opened using the command FRPalette[]."];
(* ::Section:: *)
(*FeynRules symbols definitions*)
(* ::Subsection:: *)
(*System variables*)
M$ModelName::usage = "Model file variable. Name given to the model. The default is the name of the model file.";
M$ClassesDescription::usage = "The list of all particle classes defined in the model file.";
M$Information::usage = "Model file variable. List containing information about the authors of the model file.";
MR$Authors::usage = "List containing the names of the authors of the model file (if specified in M$Information).";
MR$Date::usage = "List containing the date at which the model file was created (if specified in M$Information).";
MR$Institution::usage = "List containing the names of intstitutes the authors of the model file belong to (if specified in M$Information).";
MR$Email::usage = "List containing the email addresses of the authors of the model file (if specified in M$Information).";
MR$References::usage = "List containing the refenrences used to create the model file (if specified in M$Information).";
MR$URLs::usage = "List containing the URLs the user wants to refer to (if specified in M$Information).";
MR$ClassesDescription::usage = "A modified version of M$ClassesDescriptions used by FeynRules.";
MR$ClassesList::usage = "A list containing all the names of the particles classes in M$ClassesDescription.";
MR$ClassesRules::usage = "MR$ClassesRules[c] is the list of options associated with the particle class c.";
M$GaugeGroups::usage = "The list of all gauge groups defined in the model file.";
MR$GaugeGroups::usage = "A modified version of M$GaugeGroups used by FeynRules.";
MR$GaugeGroupList::usage = "A list containing all the names of the gauge groups in M$GaugeGroups.";
MR$GaugeGroupRules::usage = "MR$GaugeGroupRules[G] is the list of options associated with the gauge group G.";
M$Parameters::usage = "The list of all parameters defined in the model file.";
MR$Parameters::usage = "A modified version of M$Parameters used by FeynRules.";
MR$ParameterList::usage = "A list containing all the names of the parameters in M$Parameters.";
MR$ParameterRules::usage = "MR$ParameterRules[p] is the list of options associated for the parameter p.";
MR$Definitions::usage = "The list of all definitions encountered in the model-file.";
MR$currentmodel::usage = "The model currently loaded into the kernel."
MR$ModelLoaded::usage = "True, if a model-fiel has been loaded, False otherwise.";
MR$FeynRulesLoaded::usage = "True, if FeynRules package has been loaded."
MR$QuantumNumbers::usage = "A list containing all quantum numbers of the model.";
$ConservedQN::usage = "If True, generates an warning if a vertex is encountered that does not conserve the quantum number
specified in the model file. The default value is True.";
MR$Output::usage = "The current output mode.";
CH$MaxExpressionLength::usage = "Variable of the CalcHep interface, specifying the maximum number of characteres for each parameter on the function file.
The default value is 50.";
CH$ModelNumber::usage = "Variable of the CalcHep interface, specifying the number of the output model.
The default value is 1.";
CH$CompHEP::usage = "Variable of the CalcHep interface, specifying whether to write CalcHEP output (False) or CompHEP output (True).
The default value is False.";
FR$SpaceTimeDimension::usage = "Variable defining the space-time dimension. The default value is 4.";
MR$Default::usage = "Internal FeynRules symbol to denote an default value.";
MR$Null::usage = "Internal FeynRules symbol to denote a null value of a variable.";
FR$MaxSimplify::usage ="bla";
FR$VertexNumber::usage = "The number used to denote the output of FeynmanRules.";
FR$OptimizeParams::usage = "bla";
GetOrder::usage = "bla";
FR$MakeWeylToDirac::usage = "Internal FR variable";
M$FormFactors::usage = "The list of all form factor classes defined in the model file.";
FR$FExpand::usage = "If true, the full expansion is perform to obtain vertices and so on"
If[Global`FR$FullExpand===False,FR$FExpand=False,FR$FExpand=True];
(* ::Subsection:: *)
(*Particle class properties*)
TeXParticleName::usage = "A string, the TeX code associated with the particle name.";
TeXAntiParticleName::usage = "A string, the TeX code associated with the antiparticle name.";
FullName::usage = "Property of the particle classes. An arbitrary string, indicating the name of the particle in full letters (e.g. \"Electron\").";
ClassName::usage = "Mandatory property of the particle classes, specifying the name of the particle class. Only those elements of
M$ClassesDescription are read in where ClassName is given a value.";
TeXClassName::usage = "A string, given the TeX name of the class.";
ClassMembers::usage = "Property of the particle classes, listing the names of the different class members. If the class only
contain a single particle, the default value is ClassName";
SelfConjugate::usage = "Mandatory property of the particle classes, specifying whether a field is selfconjugate (True) or not
(False).";
FlavorIndex::usage = "Property of the particle classes, specifying the flavor index which should be expanded over if FlavorExpand
is turned to True.";
QuantumNumbers::usage = "Property of the particle classes, listing the quantum numbers of the class (charge, lepton numbers,...).
The default value is {}.";
(* MW edit: usage of the U1Charges option *)
U1Charges::usage = "Property of the particle classes, listing the particles charges under different U(1) symmetries. The values must
be give as a list of pairs. The first element of each pair is the symbol representing the U(1) charge, as defined with the property Charge
in the gauge group declaration or as given explicitely in the covariant derivative DC. The second element is the charge of the particle under
that symmetry."
Mass::usage = "Property of the particle classes, listing the masses of the different class members. The value of Mass for each
class member can be\n
1. a symbol representing the mass in the lagrangian.\n
2. a list {symbol, value} (mandatory in the MG mode).";
MajoranaPhase::usage = "MajoranaPhase[\[Lambda]] represents the Majorana phase of the Majorana field \[Lambda].";
Width::usage = "Property of the particle classes, listing the decay rates of the different class members. The value of Width for
each class member can be\n
1. a symbol representing the width in the lagrangian.\n
2. a list {symbol, value} (mandatory in the MG mode).";
PropagatorType::usage = "Property of the particle classes, specifying the linetype by which the propagator of the particle should be drawn. The allowed linetypes are\n
S / Straight : solid line.\n
W / Sine : wavy line.\n
C / Curly : curly line.\n
D / ScalarDash : dotted line.";
PropagatorLabel::usage = "Property of the particle classes, listing the labels by which the class members should be represented when
the Feynman diagrams are drawn.";
PropagatorArrow::usage = "Property of the particle classes. This property belongs to FeynArts, and is ignored by FeynRules.";
MixingPartners::usage = "Property of the particle classes. This property belongs to FeynArts, and is ignored by FeynRules."
MatrixTraceFactor::usage = "Property of the particle classes. This property belongs to FeynArts, and is ignored by FeynRules."
InsertOnly::usage = "Property of the particle classes. This property belongs to FeynArts, and is ignored by FeynRules."
ParticleName::usage = "Property of the particle classes, listing the names given to the different class members for an MC output.";
AntiParticleName::usage = "Property of the particle classes, listing the names given to the antiparticles of the different class
in an MC output.";
GaugeIndex::usage = "Property of the particle classes, specifying the index which should be used to infer the colour structure.";
S::usage = "1. Particle class representing the scalars.\n
2. Linetype repsresenting solid lines.\n
3. Colour structure (singlet).";
T::usage = "1. Particle class representing the spin2 particles.\n
2. Colour structure (triplet).\n
2. Default name of the fundamental SU(3) matrices. This name is mandatory for MC interfaces, in order to identify correctly the colour structures.";
O::usage = "Colour structure (octet).";
PDG::usage = "Property of the particle classes, listing the PDG codes of the different class members in the MAdGraph mode.";
Indices::usage = "Property of the particle and parameter classes, listing the indices carried by a particle or tensor parameter.";
WeylComponents::usage = "A two-component list, giving the Weyl components of a Dirac fermion.";
Unphysical::usage = "Property of the particle classes, specifying whether a field is unphysical. Unphysical fields are not used in the
output. The relations of the unphysical fields to the physical ones can be obtained via the Definitions property.";
Definitions::usage = "Property commoun to all classes (particles, gauge groups, parameters), listing a set of replacement rules
that should be applied by FeynRules before performing any calculation.";
SymmetricIndices::usage = "Property of the particle classes, specifying the indices that should be symmetrized.";
AntiSymmetricIndices::usage = "Property of the particle classes, specifying the indices that should be antisymmetrized.";
Symmetric::usage = "Property of the T particle class, specifying whether it is a symmetric spin 2 field (True) or not (False).
The default value is False.";
AntiSymmetric::usage = "Property of the T particle class, specifying whether it is a antisymmetric spin 2 field (True) or not (False).
The default value is False.";
C::usage = "Linetype repsresenting curly lines.";
W::usage = "Linetype repsresenting wavy lines.";
D::usage = "Linetype repsresenting dotted lines.";
Straight::usage = "Linetype repsresenting solid lines.";
ScalarDash::usage = "Linetype representing dashed lines.";
GhostDash::usage = "LineType representing dotted lines.";
Sine::usage = "Linetype repsresenting wavy lines.";
Cycles::usage = "Linetype repsresenting curly lines.";
F::usage = "Particle class representing the spin 1/2 fermions.";
W::usage = "Particle class representing Weyl fermions in the (1/2,0) representation."
V::usage = "Particle class representing the vectors.";
R::usage = "Particle class representing the spin 3/2 fermions.";
RW::usage = "Particle class representing the spin 3/2 fermions in 2-component notation.";
U::usage = "Particle class representing the ghost particles.";
Goldstone::usage = "Property for the scalar particle classes, specifying whether a particle is a Goldstone boson associated with a vector boson and a Higgs.";
Ghost::usage = "Property of the ghost particle class (U), specifying the gauge boson connected with this ghost field.";
NoGS::usage = "Default value of the Goldstone property.";
PartName::usage = "PartName[\[Psi]] returns the value of ParticleName / AntiParticleName of \[Psi].";
PartSymbol::usage = "PartSymbol is the inverse of PartName.";
Chirality::usage = "Property of the Weyl fermion classes. Left for (1/2, 0) and Right for (0,1/2) fermions. The default is Left.";
(* ::Subsection::Closed:: *)
(*Gauge group class properties*)
Abelian::usage = "Mandtory property of the gauge group classes, specifying whether a gauge group is abelian (True) or not (False).";
GaugeBoson::usage = "Property of the gauge group classes, specifying the name of the gauge boson connected to this gauge group.
This gauge boson must be declared in M$ClassesDescription.";
CouplingConstant::usage = "Property of the gauge group classes, specifying the name of the coupling constant connected to this
gauge group. This coupling constant must be declared in M$Parameters.";
Charge::usage = "Property of the gauge group classes, specifying the name of the charge connected with an abelian gauge group.";
Representations::usage = "Property of the gauge group classes, listing the representations of the gauge group that are used
inside the lagrangian. E.g. if the gauge index of the quarks is Colour, and the fundamental representation matrices are denoted by
T, then the representation is {T, Colour}.";
StructureConstant::usage = "Property of the gauge group classes, specifying the name of the structure constant connected to this
gauge group.";
SymmetricTensor::usage = "Property of the gauge group classes, specifying the name of the completely symmetric tensor connected to this
gauge group.";
Dynkin::usage="Dynkin index for representations non-abelian gauge groups.";
GUTNormalization::usage="Normalization factor at the GUT scale for abelian gauge groups.";
Casimir::usage="Quadratic Casimir group invariants";
f::usage = "Default name of the SU(3) structure constant. This name is mandatory for MC interfaces, in order to identify correctly the colour structures.";
SUNT::usage = "FormCalc name for the SU(3) color matrices.";
SUNF::usage = "FormCalc name for the SU(3) structure constants."
dSUN::usage = "Default name of the SU(3) d-term. This name is mandatory for MC interfaces, in order to identify correctly the colour structures."
AdjointIndex::usage = "Property of the gauge group classes, specifying the name of the name of the index of the adjoint
representation of this gauge group.";
VeVs::usage = "1. Property of the scalar particles. The name of the parameter giving the vev associated to a scalar. Zero by default.\n
2. Property of the gauge group classes. A list of all scalars that acquire a vev breaking the gauge symmetry."
AddGaugeRepresentation::usage = "If added to a model file, AddGaugeRepresentation[ list ] merges the gauge representations in list with those in M$GaugeGroups. list is a list of the form, e.g. for QCd sextets,\n
{SU3C -> {T6, Sextet}}.";
FR$ReprMap::usage = "Mapping representations and antirepresentations (necessary for susy models.)";
(* ::Subsection::Closed:: *)
(*Parameter class properties*)
(* ::Subsubsection:: *)
(*Properties valid for both scalar and tensor parameters*)
Description::usage = "Property of the parameter classes. An arbitrary string, giving a description of the parameter (e.g. \"Electric charge\").";
ParameterType::usage = "Property of the parameter classes, specifying whether a parameter is Internal or External.
The default value is External for scalar parameters, and Internal for tensor parameters.";
BlockName::usage = "Property of the parameter classes, specifying the name of the PDG block the parameter belongs to.
If no BlockName is specified, the parameter gets assigned the default block FRBlock .";
ParameterName::usage = "Property of the parameter classes, specifying the name of the parameter used for the interface to an MC.";
InteractionOrder::usage = "Property of the parameter classes, specifying the interaction order of the parameter.
E.g. the interaction order of \[Alpha]S is {QCD, 2}.";
Value::usage = "Property of the parameter classes.\n
1. For external parameters, the numerical value.\n
2. For internal parameters, the definition in terms of more fundamental parameters (external and/or internal).";
OrderBlock::usage = "Property of the parameter classes, specifying the PDG code of the parameter.
If no PDG code is assigned, the particle gets an automatically assigned PDG code (starting from 6000000.";
ComplexParameter::usage = "Property of the parameter classes, specifying whether a parameter is complex (True) or not (False).\n
1. For scalar parameters the default value is False.\n
2. For tensor parameters, the default value is True.";
TeX::usage = "Property of the parameter classes, specifying how the parameter should be printed in the TeX output.";
External::usage = "Value of the parameter class property ParameterType.";
Internal::usage = "Value of the parameter class property ParameterType.";
(* ::Subsubsection::Closed:: *)
(*Tensor parameter properties*)
TensorClass::usage = "Property of the parameter classes, specifying the class of tensors to whcih this tensor parameter belongs
(e.g. Dirac matrices).";
AllowSummation::usage = "Property of the parameter classes.";
Unitary::usage = "Property of the parameter classes, specifying whether a tensor parameter is unitary (True) or not (False). Unitary tensor must
be complex. the default value is False.";
Orthogonal::usage = "Property of the parameter classes, specifying whether a tensor parameter is orthogonal (True) or not (False). Unitary tensor must
be real. the default value is False.";
Hermitian::usage = "Property of the parameter classes, specifying whether a tensor parameter is hermitian (True) or not (False). Unitary tensor must
be complex. the default value is False.";
(* ::Subsection:: *)
(*Basic functions*)
FRPalette::usage = "Loads the FeynRules palette.";
LoadModel::usage = "LoadModel[file.fr] loads the model-file file.mod into to the kernel and initializes FeynRules
to this specific model.";
Report::usage = "Option of LoadModel";
Restriction::usage = "Option of LoadModel. Restriction -> filename.rest loads the restriction file gievn as the argument of the option.";
AddDefinition::usage = "Adds a definition for a parameter to the kernel.";
LoadRestriction::usage = "Loads the restriction file given as the argument of the function.";
ModelInformation::usage = "ModelInformation[] reads out the information about the model authors given in the model file.";
Authors::usage = "Element of M$Information.";
Date::usage = "Element of M$Information.";
Institutions::usage = "Element of M$Information.";
Emails::usage = "Element of M$Information.";
References::usage = "Element of M$Information.";
URLs::usage = "Element of M$Information.";
IndexRange::usage = "IndexRange[Index[name]] is the routine used in the model-file to declare the index name,
e.g. IndexRange[Index[name]] = Range[k] declares an index of type name, taking its values in the {1,...,k}.";
IndexStyle::usage = "IndexStyle[name, k] fixes the index name to print as k.";
Index::usage = "Index[name, i] represents an index of type name and value i.";
FeynmanRules::usage = "FeynmanRules[L] calculates the vertices associated with the lagrangian L.\n
FeynmanRules returns an internal tag by which the vertices can be called using the Vertices function.";
(* MW edit *)
VertexHook::usage = "VertexHook is a user definable function which is applied to each vertex generated by FeynmanRules."
Vertices::usage = "Vertices[\"L\"] contains the vertices from the lagrangian named L.";
VerticesMG::usage = "VerticesMG[\"L\"] contains the MadGraph vertices from the lagrangian named L.";
VerticesSH::usage = "VerticesSH[\"L\"] contains the Sherpa vertices from the lagrangian named L.";
VerticesFA::usage = "VerticesFA[\"L\"] contains the FeynArts vertices from the lagrangian named L.";
FlavorExpand::usage = "Option of the function FeynmanRules, specifying the flavor indices FeynRules should expand over.\n
1. The indices that should be expanded can be given as a list.\n
2. FlavorExpand -> True expands over all flavor indices. The default value is False.";
IndexExpand::usage = "Option of the function FeynmanRules, IndexExpand -> {...} specifies the indices the lagrangian should be expanded over.";
ScreenOutput::usage = "Option for FeynmanRules. If True, the vertices are written on the screen. The default value is False.";
TeXOutput::usage = "Option for FeynmanRules. TexOutput -> \"file.tex\" writes the output in TeXForm in file.tex. ";
Name::usage = "A String chosen by the User to name the vertices obtained.";
ConservedQuantumNumbers::usage = "Option of FeynRules, specifying whether a warning should be generated if a vertex is encountered
that does not conserve the quantum number specified in the model file. The default value is $ConservedQN.";
MaxParticles::usage = "Option of the FeynmanRules function, specifying the maximum number of particles that should appear in the vertices.";
MinParticles::usage = "Option of the FeynmanRules function, specifying the minimum number of particles that should appear in the vertices.";
MaxCanonicalDimension::usage = "Option of the FeynmanRules function, specifying the maximal canonical dimension for which vertices should be calculated.";
MinCanonicalDimension::usage = "Option of the FeynmanRules function, specifying the maximal canonical dimension for which vertices should be calculated.";
SelectParticles::usage = "Option of FeynmanRules. SelectParticles -> {{\[Phi]1, \[Phi]2,...}, {...}}, only calculates the vertices with the specified field content
{\[Phi]1, \[Phi]2,...}, etc.";
Exclude4Scalars::usage = "Options of FeynmanRules. If True, then no quartic scalar interactions are computed.";
ApplyMomCons::usage = "Options of FeynmanRules. If True, momentum conservation is used to simplify the vertices.";
PrintLagrangian::usage = "Option of WriteTeXOutput. If set to false, the lagrangian will not be exported into the TeX file. The default value is True.";
WriteMGOutput::usage = "Writes the MadGraph output files for the model.";
WriteMGParamCard::usage = "Writes the external variables to the MadGraph param_card.dat."
MGParticleName::usage = "Takes the particle/antiparticle name and gives the appropriate MG name.";
MGName::usage = "Internal MG interface function";
PartNameMG::usage= "Internal MG interface function";
DecomposeGluonVertex::usage = "Option of the MadGraph interface. When True, then the 4 gluon vertex is decomposed into three-point vertices connected by a tensor.
True by default.";
DialogBox::usage = "Option of the MC interfaces. If On, dialog boxes with warning messges can be produced. The default value is Off.";
MaxVertices::usage = "Option of WriteMGOutput. Fixes the maximal number of vertices to be written into one file. The default value is 50.";
WriteCHOutput::usage = "Writes the CalcHep/CompHEP output files for the model.";
CHName::usage = "Returns the CH name for the particle.";
CHParticleNameLength::usage = "Option for WriteCHOutput. The default particle name length is 4 characters (plus an optional ~ at the beginning). If you are using an older version or are using CompHEP, you will want to set this to 2.";
CHSimplify::usage = "Options of the CalcHep interface. If True, the vertices are simplified. The default is true.";
LHASupport::usage = "Option of the CalHEP interface. If True, LHA parameter support is output.";
PrintWarnings::usage = "Option of the CalcHEP interface. If True, warnings are printed.";
CHAutoWidths::usage = "Option of the CalcHEP interface. If True, the widths are set to be calculated by CalcHEP on the fly. Default is true.";
CHVertices::usage = "Option of the CalcHEP interface. If set to a vertex list, this will be implemented in place of the Lagrangian.";
WriteCHExtVars::usage = "Writes the external variables to CH format.";
ReadCHExtVars::usage = "Reads external variables from CH format.";
WriteLaTeXOutput::usage = "Writes LaTeX output.";
Overwrite::usage = "Option for WriteLaTeXOutput. Determines whether the LaTeX files should be overwritten. Automatic by default.";
Paper::usage = "Option for WriteLaTeXOutput. Determines the paper type that should be used. Choices are letter, legal and a4. Default is letter.";
WriteSHOutput::usage = "Writes the Sherpa output files for the model.";
WriteFeynArtsOutput::usage = "Writes the FeynArts output files for the model.";
CouplingRename::usage = "Determines whether to rename the couplings in FA.";
GenericFile::usage = "Option of WriteFeynArtsOutput, generate a generic file with the same name as the model file if True.
If False the generated FA model file should be used with lorentz.gen. Default is True";
DiracIndices::usage = "Option of WriteFeynArtsOutput, determine if the generic file should contrain dirac indices.
If True dirac indices are added even if the maximal number of fermions per the vertices is at most two.
If Automatic, put dirac indices only if the maximal number of fermions per the vertices is more than 2.
Default is Automatic.";
WriteTeXOutput::usage = "WriteTeXOutput[file.tex, list] writes the TeX output for the vertices specified in list into file.tex.";
MergeVertices::usage = "MergeVertexLists[list1, list2,...] combines the vertex lists list1, list2,... into a single list.";
RemoveZeroVertices::usage = "RemoveVertices[vertex list] returns a new vertex list with the numerically zero vertices removed.";
MaxExpressionLength::usage = "Option of WriteCHOutput, specifying the maximum number of characteres for each parameter on the function file.
The default value is CH$MaxExpresionLength.";
ModelNumber::usage = "Option of the CalcHep interface, specifying the number of the output model.
The default value is CH$ModelNumber.";
CompHEP::usage = "Option of the CalcHep interface, specifying whether to write CalcHEP output (False) or CompHEP output (True).
The default value is CH$CompHEP.";
NewFeynArtsClasses::usage = "NewFeynArtsClasses[] returns a list with the particle classes used in the FeynArts interfaces, if the particle classes have been redefined.";
UpdateParameters::usage = "UpdateParameters[param1->value,param2->value,...] updates the numerical values of external parameters.";
WriteParameters::usage = "WriteParameters[] writes a file with the parameters that can be shared.";
ReadParameters::usage = "ReadParameters[] reads a file with the parameters.";
WriteRestrictionFile::usage = "WriteRestrictionFile[] writes out a restriction file which puts to zero all external parameters having zero numerical value.";
GaugeXi::usage = "1. GaugeXi[s] is a gauge parameter with index s.\n
Property of the gauge group classes, giving the value of the \[Xi] parameter.";
WriteLHAFile::usage = "Write a LHA parameter file.";
ConvertLHAFile::usage = "Convert a LHA parameter file into a FeynRules parameter file.";
ReadLHAFile::usage = "Reads a LHA parameter file, and updates the parameters correspondingly.\n
Optionnally, a FeynRules parameter file may be created.";
WeylToDirac::usage = "Converts a Lagrangian written in terms of Weyl fermions to Dirac fermions.";
SymmetryFactor::usage = "If True, a symmetry factor is included in the fermion flow algorithm. The default is False.";
WriteUFO::usage = "Writes the Python output files for the model.";
NegativeInteractionOrder::usage = "Option of WriteUFO. Specifies whether negative interaction orders are allowed for couplings.\n
* Automatic: Allowed, but warning printed if non positve interaction order is encountered.\n
* True: Allowed, no warning.\n
* False: Not allowed, they are put to zero by the UFO.\n
The default is Automatic.";
Optimization::usage = "Option of WriteUFO. If True, then all numerically zero couplings are removed from the output.\n
The default is False.";
RemoveGhosts::usage = "Option of WriteUFO. Remove all ghosts and Goldstoen bosons from the output.";
Restrictions::usage = "Option of WriteUFO. A list of strings, which are names of restriction files (.rst), whose contents will be passed to the UFO output.";
NumericalOnly::usage = "Option of WriteParameters. If True, NoValue[1] and Internal are ignored when writing out the parameters. The default is False.";
DeclareNewDefinition::usage = "DeclareNewDefinition[rule, list] will add rule to list and return the ne list."
FRPi::usage = "Internal representation of Pi in some of the interfaces.";
\!\(TraditionalForm\`PYReorderParticles\)::usage = "Internal FR function.";
\!\(TraditionalForm\`PYOrderFermions\)::usage = "Internal FR function.";
(* ::Subsection::Closed:: *)
(*Usefull symbol to write down the lagrangian*)
gs::usage = "Mandatory name for the strong coupling for interfaces.";
ee::usage = "Mandatory name for the electromagnetic coupling for interfaces.";
\[Alpha]S::usage = "Mandatory name for the strong coupling for interfaces.";
aS::usage = "Mandatory ParameterName for the strong coupling for interfaces.";
\[Alpha]EW::usage = "Mandatory name for the electromagnetic coupling for interfaces.";
aEW::usage = "Mandatory ParameterName for the electromagnetic coupling for interfaces.";
\[Alpha]EWM1::usage = "Mandatory name for the inverse electromagnetic coupling for interfaces.";
aEWM1::usage = "Mandatory ParameterName for the inverse electromagnetic coupling for interfaces.";
Q::usage = "Q[\[Psi]] is the electric charge of the field \[Psi].";
Y::usage = "Y[\[Psi]] is the U(1)Y hypercharge of the field \[Psi].";
FS::usage = "1. FS[A, \[Mu], \[Nu]] represent the field strength tensor of the abelian gauge group the gauge boson A is connected to.\n
2. FS[A, \[Mu], \[Nu], a] represent the field strength tensor of the non abelian gauge group the gauge boson A is connected to.\n
3. FS[A, \[Mu], \[Nu], a, f, g] represent the field strength tensor of a generic non abelian gauge group the gauge boson A is
connected, with structure constant f and coupling constant g.";
AdjointRep::usage = "AdjointRep[name][a] returns represents the generator of the adjoint representation of the gauge group name."
Dual::usage = "1. Dual[FS][A, \[Mu], \[Nu]] is the dual field strength tensor of FS[A, \[Mu], \[Nu]].\n
2. Dual[FS][A, \[Mu], \[Nu], a] is the dual field strength tensor of FS[A, \[Mu], \[Nu], a].\n
Dual[FS][A, \[Mu], \[Nu], f, g] is the dual field strength tensor of FS[A, \[Mu], \[Nu], f, g].";
CC::usage = "CC[\[Psi]] represent the charge conjugated field \[Psi].";
HC::usage = "HC[V] represents the hermitian conjugate of the tensor parameter V.";
Eps::usage = "The Levi-Civita tensor.";
LeviCivita::usage = "The Levi-Civita tensor in FormCalc for Lorentz indices.";
IndexEps::usage = "The Levi-Civita tensor in FormCalc (except Lorentz indices)."
ME::usage = "The metric tensor (Minkowski-space).";
FV::usage = "FV[p, \[Mu]] is the four-vector p[\[Mu]].";
del::usage = "The derivative with respect to the space-time coordinate x[\[Mu]].";
anti::usage = "anti[\[Psi]] is the antifield associated with the field \[Psi].";
SP::usage = "SP[p1, p2] is the scalar produc of the two four-vectors p1 and p2.";
Ga::usage = "1. Ga[\[Mu]] is the Dirac matrix with Lorentz index \[Mu].\n
2. Ga[5] is the Dirac matrix \[Gamma][5].\n
3. Ga[\[Mu], r, s] is the element {r,s} Dirac matrix with Lorentz index \[Mu]].\n
4. Ga[5, r, s] is the element {r,s} Dirac matrix \[Gamma][5].";
SlashedP::usage = "1. SlashedP[k] is a shorthand for \!\(\*SubscriptBox[\"\[Gamma]\", \"\[Mu]\"]\) \!\(\*SuperscriptBox[SubscriptBox[\"p\", \"k\"], \"\[Mu]\"]\) .\n
2. SlashedP[k, r, s] denotes the element {r, s} of SlashedP[k].";
ProjP::usage = "1. ProjP is the projector on the right-handed fermions, i.e. ProjP = (1+Ga[5])/2.\n
2. ProjP[\[Mu]] is a shorthand for Ga[\[Mu]].ProjP.";
ProjM::usage = "1. ProjM is the projector on the right-handed fermions, i.e. ProjM = (1-Ga[5])/2.\n
2. ProjM[\[Mu]] is a shorthand for Ga[\[Mu]].ProjM";
Sig::usage = "Sig[\[Mu], \[Nu]] is the commutator of Dirac matrices.";
si::usage = "1. Si[\[Mu]] denotes the Pauli matrix \[Sigma][\[Mu]].\n
2. Si[\[Mu], r, s] denotes the element {r, s} ofthe Pauli matrix \[Sigma][\[Mu]].";
sibar::usage = "1. Sibar[\[Mu]] denotes the Pauli matrix \bar{\[Sigma]}[\[Mu]].\n
2. Sibar[\[Mu], r, s] denotes the element {r, s} ofthe Pauli matrix \bar{\[Sigma]}[\[Mu]].";
PauliSigma::usage = "PauliSigma[i] represents the Pauli matrix \[Sigma][i].";
right::usage = "right[\[Psi]] is equivalent to ProjP.\[Psi].";
left::usage = "left[\[Psi]] is equivalent to ProjM.\[Psi].";
DCint::usage = "Interaction part of the covariant derivative.";
ContstructNonAbelianNonFieldComponentDC::usage = "Internal FeynRules function.";
ContstructNonAbelianFieldComponentDC::usage = "Internal FeynRules function.";
(* MW edit: usage of covariant derivative DC *)
DC::usage = "1. DC[g][\[Psi],\[Mu]] denotes the covariant derivative of the field \[Psi].
g denotes the related gauge group. The representation is determined from the
indices declared for \[Psi]. The indices of \[Psi] must either be all suppressed
or all written out.\n
2. DC[g,Y][\[Psi],\[Mu]]. For Abelian groups, the charge can be given explicitely after the
group name. If absent, the symbol from the Charge option of the group declaration is used."
(* MW edit: usage of DiagProd *)
DiagProd::usage = "DiagProd[M,f] denotes the product of a field f with a matrix M
that is diagonal in all the indices carried by the field f."
PerformPauliAlgebra::usage = "PerformPauliAlgebra[expr] performs some basic algebra on the Pauli matrices.";
TP::usage = "TP[T][a] denotes the transpose of a gauge matrix.";
(* ::Subsection::Closed:: *)
(*ToolBox functions*)
numQ::usage = "Boolean function, returning True for all parameters in the model, as well as for all numerical values.\n
Note that the components of a tensor a considered as parameters, e.g. numQ[T[a, i, j] = True, and numQ[Ga[mu, r, s]] = True.";
CnumQ::usage = "Boolean function, returning True if a parameter is a complex parameter.";
TensQ::usage = "Boolean function, returning True for a tensor.";
CompTensQ::usage = "Boolean function, returning True for a complex parameter.";
FieldQ::usage = "Boolean function, FieldQ[\[Psi]] is True, is \[Psi] is a field.";
FermionQ::usage = "Boolean function, returning True for fermions.";
WeylFieldQ::usage = "Boolean function, returning True for Weyl fermions.";
BosonQ::usage = "Boolean function, returning True for bosons.";
DiracFieldQ::usage = "Boolean function, returning True for Dirac fermions.";
MajoranaFieldQ::usage = "Boolean function, returning True for Majorana fermions.";
ScalarFieldQ::usage = "Boolean function, returning True for scalar fields.";
VectorFieldQ::usage = "Boolean function, returning True for vector fields.";
Spin32FieldQ::usage = "Boolean function, returning True for spin 3/2 fields.";
RSpin32FieldQ::usage = "Boolean function, returning True for real spin 3/2 fields.";
CSpin32FieldQ::usage = "Boolean function, returning True for complex spin 3/2 fields.";
Spin32WeylFieldQ::usage="Boolean function, returning True for Weyl spin 3/2 fields.";
RFermionFieldQ::usage = "Boolean function, returning True for real fermion fields.";
CFermionFieldQ::usage = "Boolean function, returning True for complex fermion fields.";
Spin2FieldQ::usage = "Boolean function, returning True for spin2 fields.";
GhostFieldQ::usage = "Boolean function, returning True for ghost fields.";
GoldstoneQ::usage = "Boolean function, returning True for Goldstone bosons.";
UnitaryQ::usage = "Boolean function, returning True for unitary tensors.";
HermitianQ::usage = "Boolean function, returning True for hermitian tensors.";
OrthogonalQ::usage = "Boolean function, returning True for orthogonal tensors.";
QuantumNumberQ::usage = "Boolean function, returning True for quantum numbers defined in the model file.";
SelfConjugateQ::usage = "Boolean function, returning True for selfconjugate fields.";
UnphysicalQ::usage = "Boolean function, returning True for unphysical fields.";
GammaMatrixQ::usage = "Boolean function, returning True for Dirac matrices.";
AntiFieldQ::usage = "Boolean function, returning True anti particles."
GetFieldContent::usage = "Internal FeynRules function.";
PutIndices::usage = "Internal FeynRules function.";
PrePutIndices::usage = "Internal FeynRules function.";
NTIndex::usage = "Head of non tensor indices.";
ExpandIndices::usage = "ExpandIndices[L] makes the index structure of the lagrangian L explicit.";
FR$Dot::usage = "Internal version of Dot, which automatically expands over the fields.";
GetInteractionTerms::usage = "Filters out the interaction terms from a lagrangian.";
GetQuadraticTerms::usage = "Filters out the quadratic terms from a lagrangian.";
GetMassTerms::usage = "Filters out the mass terms from a lagrangian.";
(* BF: ciao
(* MW edit: GetMassMatrix usage *)
GetMassMatrix::usage = "1. GetMassMatrix[L, {f1, f2, ...}] extracts the quadratic terms from the lagrangian L
and returns the mass matrix of the fields f1, f2, etc. The fields f1, f2, etc should be class names.\n
2. GetMassMatrix[L, {f1bar, f2bar, ...}, {f1, f2, ...}] returns the matrix of mixing terms between the fields
f1bar, f2bar, ... and the fields f1, f2, ...";
*)
$IndList::usage = "$IndList[\[Psi]] a list containing all the indices declared for the filed or tensor \[Psi].";
NumericalValue::usage = "NumericalValue[param] returns the numerical value of a parameter specified in the model file. Returns Novalue if no numerical value has been specified.";
MR$FlavorList::usage = "List containing all flavor indices deined in the model file.";
(* ::Subsection:: *)
(*Other usefull symbols and functions*)
H::usage = "Symbol used in the MG interface to denote HEFT couplings.";
QCD::usage = "Symbol used in the MG interface to denote QCD couplings.";
QED::usage = "Symbol used in the MG interface to denote EW couplings.";
Lorentz::usage = "Name of the index type representing four-vectors indices.";
Colour::usage = "Default name for the quark colour indices. Used in the MC interfaces.";
Gluon::usage = "Default name for the gluon colour indices. Used in the MC interfaces.";
ReadAll::usage = "If turned to false, only the information needed to write Tex and FeynArts output is read from the model-file. The default value is True.";
EParamList::usage = "Output produced by LoadModel, if ReadAll is True. EParamList is the list of all external parameters in the model file (except masses ans decay width).";
IParamList::usage = "Output produced by LoadModel, if ReadAll is True. IParamList is the list of all internal parameters in the model file (except masses ans decay width).";
ParamList::usage = "Output produced by LoadModel, if ReadAll is True. ParamList is the list of all parameters in the model file (except masses ans decay width).";
ParamRules::usage = "Replacement list, linking the Mathematica symbols for parameters to the ParameterName for this symbol.";
PartList::usage = "Output produced by LoadModel, if ReadAll is True. PartList is the list of all particles in the model file.";
MassList::usage = "Output produced by LoadModel, if ReadAll is True. MassList is the list of all mass parameters in the model file.";
WidthList::usage = "Output produced by LoadModel, if ReadAll is True. Width is the list of all decay width parameters in the model file.";
MRIndexRange::usage = "An internal version of IndexRange.";
Output::usage = "Option of LoadModel and FeynmanRules. Defines the output mode of these functions.";
NoPDG::usage = "Default value of the particle class property PDG ";
NoBlockName::usgae = "NoBlockName[FRBlock] is the default value of the parameter class property BlockName.";
NoValue::usgae = "NoValue[1] is the default value of the parameter class property Value.";
FRBlock::usage = "Default BlockName assigned to a parameter.";
FRMGDefault::usage = "Default BlockName assigned to a dumb parameters in the MG interface.";
OrderBlock::usage = "OrderBlock[name] gives a matrix containing all parameter in the LH block. ";
DECAY::usage = "LH block of the decay rates.";
MASS::usage = "LH block of the masses.";
ZERO::usage = "Symbol prepresenting the number 0.";
Spin::usage = "Name of the index type representing Dirac indices.";
Spin1::usage = "Name of the index type representing (1/2, 0) Weyl indices.";
Spin2::usage = "Name of the index type representing (0, 1/2) Weyl indices.";
Ext::usage = "Index[name, Ext[i]] represents the index name of the external particle number i.";
Int::usage = "Int[i] renames the internal index i.";
IntLor::usage = "Int[\[Mu]] renames the internal index \[Mu].";
NoUnfold::usage = "FeynArts command ignored by FeynRules.";
Unfold::usage = "The command \n IndexRange[Index[name]] = Unfold[Range[ ]]\n in a model file instructs FeynRules to always expand over this index.";
G::usage = "MadGraph name for the strong coupling";
StrongCoupling::usage = "Generic name for the strong coupling.";
TeXFormat::usage = "TeXFormat[x, y] print x in the TeX output as y.";
sqrt::usage = "Fortran symbol for Sqrt.";
conjg::usage = "Fortran symbol for complex conjugation.";
MR$IntCount::usage = "Counter for internal indices."
MR$IntLorCount::usage = "Counter for internal Lorentz indices."
FermionFlow::usage = "Option of the FeynmanRules function, specifying whether vertices containing Majorana fields should be decomposed using the fermion flow rules.
The default value is False.";
PDGToMass::usage = "Relates the pdg code of a particle to its mass symbol.";
PDGToWidth::usage = "Relates the pdg code of a particle to its width symbol.";
FeynArts::usage = "Tag used in the FeynArts interface";
Done::usage = "Internal FeynRules symbol.";
CanonicalDimension::usage = "CanonicalDimension[term] gives the canonical dimension of term (term must be a product).";
M$ExtParams::usage = "Variable to store external variables in parameter file.";
M$Masses::usage = "Variable to store masses in parameter file.";
M$Widths::usage = "Variable to store widths in parameter file.";
M$IntParamsNumericalValues::usage = "Variable to store internal variable numerical values in parameter file.";
M$IntParams::usage = "Variable to store internal variable definitions in parameter file.";
M$Restrictions::usage = "Variable to be used in restriction (.rst) files.";
HCanti::usage = "Internal variable";
GS::usage = "FeynArts / FormCalc name for the string coupling.";
EL::usage = "FeynArts / FormCalc name for the electromagnetic couplings.";
Alfas::usage = "FeynArts / FormCalc name for the string coupling.";
Alfa::usage = "FeynArts / FormCalc name for the electromagnetic couplings.";
IndexSum::usage = "FeynArts function denoting a sum over an index.";
StoreInt::usage ="";
TreatMajoranasAndCC::usage = "Internal FeynRules function. Determines the fermion flow.";
ApplyDefinitions::usage = "Interanl FeynRules function.";
DTermFormat::usage = "Internal function";
AuxiliaryGluonMass::usage = "";
(* ::Subsection:: *)
(*Superfields*)
M$Superfields::usage = "List of the superfield included in the model file";
M$SuperfieldClasses::usage = "List of the superfield symbols defined in the model file";
M$SuperfieldRules::usage = "Rules attached to a superfield";
M$SuperfieldNames::usage = "List of the superfield names defined in the model file";
M$ChiralSuperfieldClasses::usage = "List of the chiral superfield symbols defined in the model file";
M$ChiralSuperfieldNames::usage = "List of the chiral superfield names defined in the model file";
M$VectorSuperfieldClasses::usage = "List of the vector superfield symbols defined in the model file";
M$VectorSuperfieldNames::usage = "List of the vector superfield names defined in the model file";
SuperfieldDeclaration::usage = "Declare the superfield present in the models.";
SuperfieldQ::usage = "Boolean function. Return true for a superfield.";
ChiralSuperfieldQ::usage = "Boolean function. Return true for a chiral superfield.";
SF2ClassName::usage="Transform a classname into the associated superfield label.";
SF2Boson::usage="From a vector superfield to its vector component.";
$TR::usage = "T_R of a Lie group invariant.";
$OptIndex::usage="Starting point for the index renaming function.";
Gaugino::usage="Gaugino component of a superfield.";
Scalar::usage="Scalar component of a superfield.";
Auxiliary::usage="Auxiliary component of a superfield.";
CSFKineticTerms::usage="Kinetic term for a given superfield";
SF2Components::usage="Main routine to expand a superfield in terms of the Grassmann variables.";
ScalarComponent::usage="Scalar coefficient of the serieus expansion of a superfield in terms of the Grassmann variables.";
ThetaComponent::usage="Theta coefficient of the serieus expansion of a superfield in terms of the Grassmann variables.";
ThetabarComponent::usage="Thetabar coefficient of the serieus expansion of a superfield in terms of the Grassmann variables.";
ThetaThetabarComponent::usage="ThetaSigmaThetabar coefficient of the serieus expansion of a superfield in terms of the Grassmann variables.";
Theta2Component::usage="Theta^2 coefficient of the serieus expansion of a superfield in terms of the Grassmann variables.";
Thetabar2Component::usage="Thetbar^2 coefficient of the serieus expansion of a superfield in terms of the Grassmann variables.";
Theta2ThetabarComponent::usage="Theta^2 Thetabar coefficient of the serieus expansion of a superfield in terms of the Grassmann variables.";
Thetabar2ThetaComponent::usage="Thetabar^2 Theta coefficient of the serieus expansion of a superfield in terms of the Grassmann variables.";
Theta2Thetabar2Component::usage="Theta^2 Thetabar^2 coefficient of the serieus expansion of a superfield in terms of the Grassmann variables.";
GrassmannExpand::usage="Expand a superfield in terms of the Grassmann variables.";
ToGrassmannBasis::usage="Simplifcation of the Grassmann spinors.";
ComponentList::usage="Get the 9 coefficients of a polynomial in Grassmann variables.";
alpha::usage="";
alphadot::usage="";
VSFKineticTerms::usage="Contract the superfield strength tensors associated to a given vector superfield and get the corresponding Lagrangian.";
Superfield::usage="Gauge group option";
OptimizeIndex::usage="Optimize of the index naming scheme.";