Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Docker-in-Docker (DinD) capabilities of public runners deactivated.
More info
Open sidebar
marty
marty-public
Commits
062b4f93
Commit
062b4f93
authored
Mar 10, 2021
by
Grégoire Uhlrich
Browse files
Massless state in diagonalization + goldstone mass fixed + rotation stays on same fields
parent
3c6778d2
Changes
11
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
115 additions
and
492 deletions
+115
-492
csl/include/alloc_monitor.h
csl/include/alloc_monitor.h
+1
-1
csl/src/simplification.cpp
csl/src/simplification.cpp
+0
-434
marty/Makefile
marty/Makefile
+12
-7
marty/Makefile.in
marty/Makefile.in
+11
-6
marty/include/feynmanIntegral.h
marty/include/feynmanIntegral.h
+4
-0
marty/include/modelBuilder.h
marty/include/modelBuilder.h
+20
-12
marty/src/bilinear.cpp
marty/src/bilinear.cpp
+0
-2
marty/src/diracology.cpp
marty/src/diracology.cpp
+4
-2
marty/src/feynmanIntegral.cpp
marty/src/feynmanIntegral.cpp
+1
-3
marty/src/insertion.cpp
marty/src/insertion.cpp
+2
-0
marty/src/modelBuilder.cpp
marty/src/modelBuilder.cpp
+60
-25
No files found.
csl/include/alloc_monitor.h
View file @
062b4f93
...
...
@@ -40,7 +40,7 @@ class __data_alloc {
public:
std
::
map
<
Type
,
data_alloc
>
DATA
;
std
::
map
<
Type
,
data_alloc
>
DATA
{}
;
void
record
(
Type
type
,
Time
const
&
time
)
...
...
csl/src/simplification.cpp
View file @
062b4f93
This diff is collapsed.
Click to expand it.
marty/Makefile
View file @
062b4f93
...
...
@@ -10,7 +10,7 @@ DYNAMICLIBRARY = libmarty.so
LTVERSION
=
2.15
CXXDEBUG
=
$(CXX)
-g
# -D DEBUG
CXXFLAGS
=
$(MARTY_CXX_FLAGS)
-Wall
-Wextra
-Wpedantic
-std
=
c++17
-O3
-fPIC
-Wfatal-errors
CXXFLAGS
=
$(MARTY_CXX_FLAGS)
-Wall
-Wextra
-Wpedantic
-std
=
c++17
-O3
-fPIC
-Wfatal-errors
-DDEBUGLOG
SRCDIR
=
src
HEADDIR
=
include
...
...
@@ -35,9 +35,10 @@ GSLCBLASLIB = lib/libgslcblas.a
MAKE
=
/usr/bin/make
MODELDIR
=
models/include
SGLDIR
=
sgl/include
INCPATH
=
-I
..
-I
./
$(HEADDIR)
-I
$(MODELDIR)
-I
../csl/
$(HEADDIR)
\
-I
../jsonparser/
$(HEADDIR)
-I
../grafed/
$(HEADDIR)
\
-I
../jsonparser/
$(HEADDIR)
-I
../grafed/
$(HEADDIR)
-I
$(SGLDIR)
\
-I
../dependencies/LoopTools-2.15/include
LIBPATH
=
-L
../dependencies/LoopTools-2.15/build
INCLIBPATH
=
$(INCPATH)
$(LIBPATH)
...
...
@@ -69,6 +70,10 @@ jsonOBJDEBUG = $(jsonSRC:../jsonparser/$(SRCDIR)/%.cpp=../jsonparser/$(OBJDIR)/%
modelSRC
=
$(
wildcard
models/src/
*
.cpp
)
modelOBJ
=
$
(
modelSRC:models/src/%.cpp
=
models/obj/%.o
)
modelOBJDEBUG
=
$
(
modelSRC:models/src/%.cpp
=
models/obj/%_debug.o
)
sglSRC
=
$(
wildcard
sgl/src/
*
.cpp
)
sglOBJ
=
$
(
sglSRC:sgl/src/%.cpp
=
sgl/obj/%.o
)
sglOBJDEBUG
=
$
(
sglSRC:sgl/src/%.cpp
=
sgl/obj/%_debug.o
)
BIN
=
$(
subst
.cpp,.x,
$(
subst
$(PROGDIR)
/,,
$(PROG)
))
BINDEBUG
=
$(
subst
.cpp,_debug.x,
$(
subst
$(PROGDIR)
/,,
$(PROG)
))
...
...
@@ -79,7 +84,7 @@ all: lib release debug
marty
:
lib
lib
:
$(OBJ) $(OBJDEBUG) $(LIBDIR)/$(STATICLIBRARY) $(LIBDIR)/$(DYNAMICLIBRARY)
\
$(modelOBJ) $(modelOBJDEBUG)
$(modelOBJ) $(modelOBJDEBUG)
$(sglOBJDEBUG)
install
:
mkdir
-p
$(INSTALLDIR)
/include/marty
echo
"#include
\"
marty/marty.h
\"
"
>>
$(INSTALLDIR)
/include/marty.h
...
...
@@ -105,7 +110,7 @@ $(OBJDIR)/%.o: $(SRCDIR)/%.cpp
$(PROGOBJDIR)/%.o
:
$(PROGDIR)/%.cpp
$(CXX)
$(CXXFLAGS)
-o
$@
-c
$<
$(INCPATH)
%.x
:
$(PROGOBJDIR)/%.o $(OBJ) $(cslOBJ) $(jsonOBJ) $(drawerOBJ) $(modelOBJ)
%.x
:
$(PROGOBJDIR)/%.o $(OBJ) $(cslOBJ) $(jsonOBJ) $(drawerOBJ) $(modelOBJ)
$(sglOBJ)
$(CXX)
$(CXXFLAGS)
-o
$(BINDIR)
/
$@
$^
$(LIBPATH)
$(LIBS)
...
...
@@ -117,15 +122,15 @@ $(PROGOBJDIR)/%_debug.o: $(PROGDIR)/%.cpp
$(CXXDEBUG)
$(CXXFLAGS)
-o
$@
-c
$<
$(INCPATH)
%_debug.x
:
$(PROGOBJDIR)/%_debug.o $(OBJDEBUG) $(cslOBJDEBUG) $(jsonOBJDEBUG)
\
$(drawerOBJDEBUG) $(modelOBJDEBUG)
$(drawerOBJDEBUG) $(modelOBJDEBUG)
$(sglOBJDEBUG)
$(CXXDEBUG)
$(CXXFLAGS)
-o
$(BINDIR)
/
$@
$^
$(LIBPATH)
$(LIBS)
# Library compilations
$(LIBDIR)/$(STATICLIBRARY)
:
$(OBJ)
ar rcs
$@
$(OBJ)
$(cslOBJ)
$(jsonOBJ)
$(drawerOBJ)
$(modelOBJ)
ar rcs
$@
$(OBJ)
$(cslOBJ)
$(jsonOBJ)
$(drawerOBJ)
$(modelOBJ)
$(sglOBJ)
$(LIBDIR)/$(DYNAMICLIBRARY)
:
$(OBJ)
$(CXX)
$(CXXFLAGS)
-shared
-o
$@
$(OBJ)
$(cslOBJ)
$(jsonOBJ)
$(drawerOBJ)
\
$(modelOBJ)
$(LIBPATH)
$(LIBS)
$(modelOBJ)
$(sglOBJ)
$(LIBPATH)
$(LIBS)
clean
:
...
...
marty/Makefile.in
View file @
062b4f93
...
...
@@ -30,9 +30,10 @@ GSLCBLASLIB = lib/libgslcblas.a
MAKE
=
/usr/bin/make
MODELDIR
=
models/include
SGLDIR
=
sgl/include
INCPATH
=
-I
..
-I
./
$(HEADDIR)
-I
$(MODELDIR)
-I
../csl/
$(HEADDIR)
\
-I
../jsonparser/
$(HEADDIR)
-I
../grafed/
$(HEADDIR)
\
-I
../jsonparser/
$(HEADDIR)
-I
../grafed/
$(HEADDIR)
-I
$(SGLDIR)
\
-I
../dependencies/LoopTools-2.15/include
LIBPATH
=
-L
../dependencies/LoopTools-2.15/build
INCLIBPATH
=
$(INCPATH)
$(LIBPATH)
...
...
@@ -64,6 +65,10 @@ jsonOBJDEBUG = $(jsonSRC:../jsonparser/$(SRCDIR)/%.cpp=../jsonparser/$(OBJDIR)/%
modelSRC
=
$(
wildcard
models/src/
*
.cpp
)
modelOBJ
=
$
(
modelSRC:models/src/%.cpp
=
models/obj/%.o
)
modelOBJDEBUG
=
$
(
modelSRC:models/src/%.cpp
=
models/obj/%_debug.o
)
sglSRC
=
$(
wildcard
sgl/src/
*
.cpp
)
sglOBJ
=
$
(
sglSRC:sgl/src/%.cpp
=
sgl/obj/%.o
)
sglOBJDEBUG
=
$
(
sglSRC:sgl/src/%.cpp
=
sgl/obj/%_debug.o
)
BIN
=
$(
subst
.cpp,.x,
$(
subst
$(PROGDIR)
/,,
$(PROG)
))
BINDEBUG
=
$(
subst
.cpp,_debug.x,
$(
subst
$(PROGDIR)
/,,
$(PROG)
))
...
...
@@ -74,7 +79,7 @@ all: lib release debug
marty
:
lib
lib
:
$(OBJ) $(OBJDEBUG) $(LIBDIR)/$(STATICLIBRARY) $(LIBDIR)/$(DYNAMICLIBRARY)
\
$(modelOBJ) $(modelOBJDEBUG)
$(modelOBJ) $(modelOBJDEBUG)
$(sglOBJDEBUG)
install
:
mkdir
-p
$(INSTALLDIR)
/include/marty
echo
"#include
\"
marty/marty.h
\"
"
>>
$(INSTALLDIR)
/include/marty.h
...
...
@@ -100,7 +105,7 @@ $(OBJDIR)/%.o: $(SRCDIR)/%.cpp
$(PROGOBJDIR)/%.o
:
$(PROGDIR)/%.cpp
$(CXX)
$(CXXFLAGS)
-o
$@
-c
$<
$(INCPATH)
%.x
:
$(PROGOBJDIR)/%.o $(OBJ) $(cslOBJ) $(jsonOBJ) $(drawerOBJ) $(modelOBJ)
%.x
:
$(PROGOBJDIR)/%.o $(OBJ) $(cslOBJ) $(jsonOBJ) $(drawerOBJ) $(modelOBJ)
$(sglOBJ)
$(CXX)
$(CXXFLAGS)
-o
$(BINDIR)
/
$@
$^
$(LIBPATH)
$(LIBS)
...
...
@@ -112,15 +117,15 @@ $(PROGOBJDIR)/%_debug.o: $(PROGDIR)/%.cpp
$(CXXDEBUG)
$(CXXFLAGS)
-o
$@
-c
$<
$(INCPATH)
%_debug.x
:
$(PROGOBJDIR)/%_debug.o $(OBJDEBUG) $(cslOBJDEBUG) $(jsonOBJDEBUG)
\
$(drawerOBJDEBUG) $(modelOBJDEBUG)
$(drawerOBJDEBUG) $(modelOBJDEBUG)
$(sglOBJDEBUG)
$(CXXDEBUG)
$(CXXFLAGS)
-o
$(BINDIR)
/
$@
$^
$(LIBPATH)
$(LIBS)
# Library compilations
$(LIBDIR)/$(STATICLIBRARY)
:
$(OBJ)
ar rcs
$@
$(OBJ)
$(cslOBJ)
$(jsonOBJ)
$(drawerOBJ)
$(modelOBJ)
ar rcs
$@
$(OBJ)
$(cslOBJ)
$(jsonOBJ)
$(drawerOBJ)
$(modelOBJ)
$(sglOBJ)
$(LIBDIR)/$(DYNAMICLIBRARY)
:
$(OBJ)
$(CXX)
$(CXXFLAGS)
-shared
-o
$@
$(OBJ)
$(cslOBJ)
$(jsonOBJ)
$(drawerOBJ)
\
$(modelOBJ)
$(LIBPATH)
$(LIBS)
$(modelOBJ)
$(sglOBJ)
$(LIBPATH)
$(LIBS)
clean
:
...
...
marty/include/feynmanIntegral.h
View file @
062b4f93
...
...
@@ -190,6 +190,10 @@ class FeynmanIntegral: public csl::AbstractMultiFunc {
return
loopToolsId
;
}
std
::
vector
<
size_t
>
const
&
getIntegralIndices
()
const
{
return
integralIndices
;
}
bool
isIndexed
()
const
override
{
return
false
;
}
void
print
(
int
mode
=
0
,
...
...
marty/include/modelBuilder.h
View file @
062b4f93
...
...
@@ -166,7 +166,8 @@ public:
std
::
vector
<
mty
::
Particle
>
const
&
fields
,
std
::
vector
<
mty
::
Particle
>
const
&
newFields
,
std
::
vector
<
std
::
vector
<
csl
::
Expr
>>
const
&
rotation
,
bool
diagonalizeMasses
=
false
bool
diagonalizeMasses
=
false
,
int
nMassLessFields
=
0
);
void
rotateFields
(
...
...
@@ -175,24 +176,28 @@ public:
std
::
vector
<
std
::
vector
<
csl
::
Expr
>>
const
&
rotation1
,
std
::
vector
<
mty
::
Particle
>
const
&
fields2
,
std
::
vector
<
mty
::
Particle
>
const
&
newFields2
,
std
::
vector
<
std
::
vector
<
csl
::
Expr
>>
const
&
rotation2
std
::
vector
<
std
::
vector
<
csl
::
Expr
>>
const
&
rotation2
,
int
nMassLessFields
=
0
);
std
::
vector
<
mty
::
Particle
>
rotateFields
(
void
rotateFields
(
std
::
vector
<
mty
::
Particle
>
const
&
fields
,
bool
diagonalizeMasses
=
false
bool
diagonalizeMasses
=
false
,
int
nMassLessFields
=
0
);
std
::
vector
<
mty
::
Particle
>
birotateFields
(
void
birotateFields
(
std
::
vector
<
mty
::
Particle
>
const
&
fields1
,
std
::
vector
<
mty
::
Particle
>
const
&
fields2
std
::
vector
<
mty
::
Particle
>
const
&
fields2
,
int
nMassLessFields
=
0
);
void
rotateFields
(
std
::
initializer_list
<
std
::
string
>
fields
,
std
::
initializer_list
<
std
::
string
>
newFields
,
std
::
vector
<
std
::
vector
<
csl
::
Expr
>>
const
&
rotation
,
bool
diagonalizeMasses
=
false
bool
diagonalizeMasses
=
false
,
int
nMassLessFields
=
0
);
void
rotateFields
(
...
...
@@ -201,17 +206,20 @@ public:
std
::
vector
<
std
::
vector
<
csl
::
Expr
>>
const
&
rotation1
,
std
::
initializer_list
<
std
::
string
>
fields2
,
std
::
initializer_list
<
std
::
string
>
newFields2
,
std
::
vector
<
std
::
vector
<
csl
::
Expr
>>
const
&
rotation2
std
::
vector
<
std
::
vector
<
csl
::
Expr
>>
const
&
rotation2
,
int
nMassLessFields
=
0
);
std
::
vector
<
mty
::
Particle
>
rotateFields
(
void
rotateFields
(
std
::
initializer_list
<
std
::
string
>
fields
,
bool
diagonalizeMasses
=
false
bool
diagonalizeMasses
=
false
,
int
nMassLessFields
=
0
);
std
::
vector
<
mty
::
Particle
>
birotateFields
(
void
birotateFields
(
std
::
initializer_list
<
std
::
string
>
fields1
,
std
::
initializer_list
<
std
::
string
>
fields2
std
::
initializer_list
<
std
::
string
>
fields2
,
int
nMassLessFields
=
0
);
void
applyUnitaryCondition
(
...
...
marty/src/bilinear.cpp
View file @
062b4f93
...
...
@@ -199,12 +199,10 @@ namespace mty {
Bilinear
{
p1
,
p4
,
{
c1_A
}},
Bilinear
{
p3
,
p2
,
{
c1_B
}}
});
std
::
cout
<<
"BEFORE EOM"
<<
std
::
endl
;
newBilinears
.
back
().
first
.
print
();
newBilinears
.
back
().
second
.
print
();
newBilinears
.
back
().
first
.
applyEOM
();
newBilinears
.
back
().
second
.
applyEOM
();
std
::
cout
<<
"AFTER EOM"
<<
std
::
endl
;
newBilinears
.
back
().
first
.
print
();
newBilinears
.
back
().
second
.
print
();
}
...
...
marty/src/diracology.cpp
View file @
062b4f93
...
...
@@ -163,12 +163,14 @@ csl::Expr DiracSpace::calculateTrace(csl::vector_expr tensors) const
return
sum_s
(
terms
);
}
}
if
(
tensors
.
empty
())
if
(
tensors
.
empty
())
{
return
csl
::
int_s
(
dim
);
}
expandAbbreviations
(
tensors
);
for
(
const
auto
&
t
:
tensors
)
if
(
!
isGammaTensor
(
t
))
if
(
!
isGammaTensor
(
t
))
{
return
prod_s
(
tensors
,
true
);
}
size_t
count
=
countGammaMult
(
tensors
);
if
(
count
%
2
==
1
)
{
return
CSL_0
;
...
...
marty/src/feynmanIntegral.cpp
View file @
062b4f93
...
...
@@ -1766,9 +1766,7 @@ FeynmanIntegral::FeynmanIntegral(IntegralType t_type,
"Expected "
+
toString
(
nArgumentsForIntegral
(
type
))
+
" arguments"
" for integral of type "
+
toString
(
type
)
+
", "
+
toString
(
t_argument
.
size
())
+
" given."
);
if
(
loopToolsId
==
-
1
)
{
integralIndices
=
t_indices
;
}
integralIndices
=
t_indices
;
argument
=
t_argument
;
}
...
...
marty/src/insertion.cpp
View file @
062b4f93
...
...
@@ -46,6 +46,7 @@ Insertion::Insertion(csl::Expr const& t_field)
expression
=
t_field
;
incoming
=
field_ptr
->
isIncoming
();
particle
=
field_ptr
->
isParticle
();
onShell
=
field_ptr
->
isOnShell
();
}
Insertion
::
Insertion
(
std
::
string_view
name
)
...
...
@@ -107,6 +108,7 @@ csl::Expr Insertion::getExpression() const
insert_ptr
->
setExternal
(
true
);
insert_ptr
->
setIncoming
(
incoming
);
insert_ptr
->
setParticle
(
particle
);
insert_ptr
->
setOnShell
(
onShell
);
expression
=
insertion
;
return
insertion
;
...
...
marty/src/modelBuilder.cpp
View file @
062b4f93
...
...
@@ -500,7 +500,9 @@ void ModelBuilder::rotateFields(
std
::
vector
<
mty
::
Particle
>
const
&
fields
,
std
::
vector
<
mty
::
Particle
>
const
&
newFields
,
std
::
vector
<
std
::
vector
<
csl
::
Expr
>>
const
&
rotation
,
bool
diagonalizeMasses
)
bool
diagonalizeMasses
,
int
nMassLessFields
)
{
checksRotation
(
fields
,
newFields
,
rotation
);
addParticles
(
newFields
,
false
);
...
...
@@ -529,6 +531,9 @@ void ModelBuilder::rotateFields(
rotation
,
fullMassMatrix
);
for
(
int
i
=
0
;
i
<
nMassLessFields
;
++
i
)
{
newFields
[
i
]
->
setMass
(
CSL_0
);
}
}
applyUnitaryCondition
(
rotation
);
}
...
...
@@ -539,7 +544,8 @@ void ModelBuilder::rotateFields(
std
::
vector
<
std
::
vector
<
csl
::
Expr
>>
const
&
rotation1
,
std
::
vector
<
mty
::
Particle
>
const
&
fields2
,
std
::
vector
<
mty
::
Particle
>
const
&
newFields2
,
std
::
vector
<
std
::
vector
<
csl
::
Expr
>>
const
&
rotation2
std
::
vector
<
std
::
vector
<
csl
::
Expr
>>
const
&
rotation2
,
int
nMassLessFields
)
{
checksRotation
(
fields1
,
newFields1
,
rotation1
);
...
...
@@ -577,11 +583,17 @@ void ModelBuilder::rotateFields(
rotation2
,
fullMassMatrix
);
for
(
int
i
=
0
;
i
<
nMassLessFields
;
++
i
)
{
newFields1
[
i
]
->
setMass
(
CSL_0
);
newFields2
[
i
]
->
setMass
(
CSL_0
);
}
}
std
::
vector
<
mty
::
Particle
>
ModelBuilder
::
rotateFields
(
std
::
vector
<
mty
::
Particle
>
const
&
fields
,
bool
diagonalizeMasses
)
void
ModelBuilder
::
rotateFields
(
std
::
vector
<
mty
::
Particle
>
const
&
fields
,
bool
diagonalizeMasses
,
int
nMassLessFields
)
{
std
::
vector
<
mty
::
Particle
>
newFields
(
fields
.
size
());
for
(
size_t
i
=
0
;
i
!=
fields
.
size
();
++
i
)
...
...
@@ -612,14 +624,18 @@ std::vector<mty::Particle> ModelBuilder::rotateFields(
);
}
}
rotateFields
(
fields
,
newFields
,
mixing
,
diagonalizeMasses
);
return
newFields
;
rotateFields
(
fields
,
newFields
,
mixing
,
diagonalizeMasses
,
nMassLessFields
);
for
(
size_t
i
=
0
;
i
!=
newFields
.
size
();
++
i
)
{
replace
(
newFields
[
i
],
fields
[
i
]
->
getInstance
());
if
(
diagonalizeMasses
)
fields
[
i
]
->
setMass
(
newFields
[
i
]
->
getMass
());
}
}
std
::
vector
<
mty
::
Particle
>
ModelBuilder
::
birotateFields
(
void
ModelBuilder
::
birotateFields
(
std
::
vector
<
mty
::
Particle
>
const
&
fields1
,
std
::
vector
<
mty
::
Particle
>
const
&
fields2
std
::
vector
<
mty
::
Particle
>
const
&
fields2
,
int
nMassLessFields
)
{
std
::
vector
<
mty
::
Particle
>
newFields1
(
fields1
.
size
());
...
...
@@ -666,18 +682,24 @@ std::vector<mty::Particle> ModelBuilder::birotateFields(
}
}
rotateFields
(
fields1
,
newFields1
,
mixing1
,
fields2
,
newFields2
,
mixing2
);
fields2
,
newFields2
,
mixing2
,
nMassLessFields
);
applyUnitaryCondition
(
mixing1
);
applyUnitaryCondition
(
mixing2
);
newFields1
.
insert
(
newFields1
.
end
(),
newFields2
.
begin
(),
newFields2
.
end
());
return
newFields1
;
for
(
size_t
i
=
0
;
i
!=
newFields1
.
size
();
++
i
)
{
replace
(
newFields1
[
i
],
fields1
[
i
]
->
getInstance
());
fields1
[
i
]
->
setMass
(
newFields1
[
i
]
->
getMass
());
replace
(
newFields2
[
i
],
fields2
[
i
]
->
getInstance
());
fields2
[
i
]
->
setMass
(
newFields2
[
i
]
->
getMass
());
}
}
void
ModelBuilder
::
rotateFields
(
std
::
initializer_list
<
std
::
string
>
fields
,
std
::
initializer_list
<
std
::
string
>
newFields
,
std
::
vector
<
std
::
vector
<
csl
::
Expr
>>
const
&
rotation
,
bool
diagonalizeMasses
bool
diagonalizeMasses
,
int
nMassLessFields
)
{
if
(
fields
.
size
()
==
0
)
...
...
@@ -691,7 +713,13 @@ void ModelBuilder::rotateFields(
for
(
const
auto
&
name
:
newFields
)
newFields_p
.
push_back
(
fields_p
[
0
]
->
generateSimilar
(
name
));
rotateFields
(
fields_p
,
newFields_p
,
rotation
,
diagonalizeMasses
);
rotateFields
(
fields_p
,
newFields_p
,
rotation
,
diagonalizeMasses
,
nMassLessFields
);
}
void
ModelBuilder
::
rotateFields
(
...
...
@@ -700,7 +728,8 @@ void ModelBuilder::rotateFields(
std
::
vector
<
std
::
vector
<
csl
::
Expr
>>
const
&
rotation1
,
std
::
initializer_list
<
std
::
string
>
fields2
,
std
::
initializer_list
<
std
::
string
>
newFields2
,
std
::
vector
<
std
::
vector
<
csl
::
Expr
>>
const
&
rotation2
std
::
vector
<
std
::
vector
<
csl
::
Expr
>>
const
&
rotation2
,
int
nMassLessFields
)
{
if
(
fields1
.
size
()
==
0
or
fields2
.
size
()
==
0
)
...
...
@@ -723,13 +752,15 @@ void ModelBuilder::rotateFields(
rotateFields
(
fields1_p
,
newFields1_p
,
rotation1
,
fields2_p
,
newFields2_p
,
rotation2
fields2_p
,
newFields2_p
,
rotation2
,
nMassLessFields
);
}
std
::
vector
<
mty
::
Particle
>
ModelBuilder
::
rotateFields
(
void
ModelBuilder
::
rotateFields
(
std
::
initializer_list
<
std
::
string
>
fields
,
bool
diagonalizeMasses
bool
diagonalizeMasses
,
int
nMassLessFields
)
{
std
::
vector
<
mty
::
Particle
>
fields_p
;
...
...
@@ -737,12 +768,13 @@ std::vector<mty::Particle> ModelBuilder::rotateFields(
for
(
const
auto
&
name
:
fields
)
fields_p
.
push_back
(
getParticle
(
name
));
return
rotateFields
(
fields_p
,
diagonalizeMasses
);
rotateFields
(
fields_p
,
diagonalizeMasses
,
nMassLessFields
);
}
std
::
vector
<
mty
::
Particle
>
ModelBuilder
::
birotateFields
(
void
ModelBuilder
::
birotateFields
(
std
::
initializer_list
<
std
::
string
>
fields1
,
std
::
initializer_list
<
std
::
string
>
fields2
std
::
initializer_list
<
std
::
string
>
fields2
,
int
nMassLessFields
)
{
std
::
vector
<
mty
::
Particle
>
fields1_p
;
...
...
@@ -755,7 +787,7 @@ std::vector<mty::Particle> ModelBuilder::birotateFields(
for
(
const
auto
&
name
:
fields2
)
fields2_p
.
push_back
(
getParticle
(
name
));
return
birotateFields
(
fields1_p
,
fields2_p
);
birotateFields
(
fields1_p
,
fields2_p
,
nMassLessFields
);
}
void
ModelBuilder
::
applyUnitaryCondition
(
...
...
@@ -842,11 +874,11 @@ void ModelBuilder::doPromoteToGoldstone(
mty
::
partialMinko
(
+
mu
,
X
)
*
gaugeBoson
(
_mu
,
X
))
*
(
mty
::
partialMinko
(
+
nu
,
X
)
*
gaugeBoson
(
_nu
,
X
)));
addLagrangianTerm
(
factor
*
m
*
m
*
xi
-
factor
*
m
*
m
*
xi
*
csl
::
GetComplexConjugate
((
*
goldstone
)(
indices
,
X
))
*
(
*
goldstone
)(
indices
,
X
));
addLagrangianTerm
(
-
factor
*
m
factor
*
m
*
csl
::
GetComplexConjugate
(
gaugeBoson
(
_mu
,
X
))
*
(
mty
::
partialMinko
(
+
mu
,
X
)
*
(
*
goldstone
)(
indices
,
X
)),
true
);
...
...
@@ -2023,6 +2055,9 @@ void ModelBuilder::applyDiagonalizationData(
masses
.
emplace_back
(
csl
::
LibraryGenerator
::
regularName
(
p
->
getMass
()
->
getName
())
);
if
(
masses
.
back
().
empty
())
{
masses
.
back
()
=
"m_"
+
p
->
getName
();
}
}
for
(
size_t
i
=
0
;
i
!=
initMix
.
size1
();
++
i
)
for
(
size_t
j
=
0
;
j
!=
initMix
.
size2
();
++
j
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment