Documentation of MARTY
A Modern ARtificial Theoretical phYsicist
quantumFieldTheory.h
Go to the documentation of this file.
1 // This file is part of MARTY.
2 //
3 // MARTY is free software: you can redistribute it and/or modify
4 // it under the terms of the GNU General Public License as published by
5 // the Free Software Foundation, either version 3 of the License, or
6 // (at your option) any later version.
7 //
8 // MARTY is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 // GNU General Public License for more details.
12 //
13 // You should have received a copy of the GNU General Public License
14 // along with MARTY. If not, see <https://www.gnu.org/licenses/>.
15 
23 #ifndef QUANTUMFIELDTHEORY_H_INCLUDED
24 #define QUANTUMFIELDTHEORY_H_INCLUDED
25 
26 #include <csl.h>
27 #include <vector>
28 #include "diracology.h"
29 
30 namespace mty {
31 
32 class QuantumFieldParent;
33 class QuantumField;
34 struct PartnerShip;
35 
36 csl::Expr ScalarKineticTerm(
37  QuantumFieldParent& field,
38  csl::Tensor & X);
39 
40 csl::Expr FermionKineticTerm(
41  QuantumFieldParent& field,
42  csl::Tensor & X);
43 
44 csl::Expr VectorKineticTerm(
45  QuantumFieldParent& field,
46  csl::Tensor & X);
47 
48 csl::Expr GhostKineticTerm(
49  QuantumFieldParent& field,
50  csl::Tensor & X);
51 
52 csl::Expr ReplaceXiGauge(
53  csl::Expr const &initalTerm
54  );
55 
56 csl::Expr ExponentialFactor(csl::Tensor & X,
57  csl::Tensor & Y,
58  csl::Tensor & P);
59 
60 csl::Expr StandardDenominator(csl::Tensor & P,
61  csl::Expr const& mass,
62  csl::Expr const& width,
63  bool external = false);
64 
65 csl::Expr StandardDenominator(csl::Tensor & P,
66  csl::Expr const& mass,
67  bool external = false);
68 
69 csl::Expr NullPropagator(
70  QuantumField const& A,
71  QuantumField const& B,
72  csl::Tensor & P,
73  bool external);
74 
75 csl::Expr ScalarPropagator(
76  QuantumField const& A,
77  QuantumField const& B,
78  csl::Tensor & P,
79  bool external);
80 
81 csl::Expr FermionPropagator(
82  QuantumField const& A,
83  QuantumField const& B,
84  csl::Tensor & P,
85  bool external);
86 
87 // These functions are not used anymore, see fermionFlow.h
88 // csl::Expr MajoranaPropagator(
89 // QuantumField const& A,
90 // QuantumField const& B,
91 // csl::Tensor & P,
92 // bool external);
93 //
94 // csl::Expr MajoranaConjugatedPropagator(
95 // QuantumField const& A,
96 // QuantumField const& B,
97 // csl::Tensor & P,
98 // bool external);
99 
100 csl::Expr VectorPropagator(
101  QuantumField const& A,
102  QuantumField const& B,
103  csl::Tensor & P,
104  bool external);
105 
106 csl::Expr FieldStrengthPropagator(
107  QuantumField const& A,
108  QuantumField const& B,
109  csl::Tensor & P,
110  bool external);
111 
112 csl::Expr FieldStrengthSquaredPropagator(
113  QuantumField const& A,
114  QuantumField const& B,
115  csl::Tensor & P,
116  bool external);
117 
118 csl::Expr IntegratedScalarPropagator(
119  QuantumField const& A,
120  QuantumField const& B,
121  csl::Tensor & P,
122  bool external);
123 
124 csl::Expr IntegratedFermionPropagator(
125  QuantumField const& A,
126  QuantumField const& B,
127  csl::Tensor & P,
128  bool external);
129 
130 csl::Expr IntegratedVectorPropagator(
131  QuantumField const& A,
132  QuantumField const& B,
133  csl::Tensor & P,
134  bool external);
135 
136 csl::Expr IntegratedFieldStrengthPropagator(
137  QuantumField const& A,
138  QuantumField const& B,
139  csl::Tensor & P,
140  bool external);
141 
142 csl::Expr IntegratedFieldStrengthSquaredPropagator(
143  QuantumField const& A,
144  QuantumField const& B,
145  csl::Tensor & P,
146  bool external);
147 
148 csl::Expr MajoranaMassTerm(
149  csl::Expr const &mass,
150  QuantumFieldParent* field
151  );
152 
153 csl::Expr MajoranaMassTerm(
154  csl::Expr const &mass,
155  QuantumFieldParent* fieldL,
156  QuantumFieldParent* fieldR
157  );
158 
159 csl::Expr MassTerm(csl::Expr const& mass,
160  QuantumFieldParent* field);
161 
162 csl::Expr MassTerm(csl::Expr const& mass,
163  QuantumFieldParent* fieldL,
164  QuantumFieldParent* fieldR);
165 
166 csl::Expr ExternalLeg(
167  QuantumField const& field,
168  const csl::Tensor& impulsion,
169  bool ruleMode = false,
170  bool lockConjugation = false
171  );
172 
173 csl::Expr ExternalLeg(
174  QuantumFieldParent & field,
175  csl::Tensor impulsion,
176  csl::Tensor point,
177  std::vector<csl::Index> indices,
178  bool particle,
179  bool incoming,
180  bool onshell,
181  PartnerShip const &partnerShip,
182  bool ruleMode = false,
183  bool lockConjugation = false
184  );
185 
186 
187 
188 }
189 
190 #endif
Namespace of MARTY.
Definition: 2HDM.h:31