Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F10882031
SMFFZVertex.cc
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
2 KB
Subscribers
None
SMFFZVertex.cc
View Options
// -*- C++ -*-
//
// SMFFZVertex.cc is a part of Herwig++ - A multi-purpose Monte Carlo event generator
// Copyright (C) 2002-2011 The Herwig Collaboration
//
// Herwig++ is licenced under version 2 of the GPL, see COPYING for details.
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
//
//
// This is the implementation of the non-inlined, non-templated member
// functions of the SMFFZVertex class.
//
#include
"SMFFZVertex.h"
#include
"ThePEG/Interface/ClassDocumentation.h"
#include
"ThePEG/Persistency/PersistentOStream.h"
#include
"ThePEG/Persistency/PersistentIStream.h"
using
namespace
Herwig
;
using
namespace
ThePEG
;
void
SMFFZVertex
::
persistentOutput
(
PersistentOStream
&
os
)
const
{
os
<<
_gl
<<
_gr
;
}
void
SMFFZVertex
::
persistentInput
(
PersistentIStream
&
is
,
int
)
{
is
>>
_gl
>>
_gr
;
}
ClassDescription
<
SMFFZVertex
>
SMFFZVertex
::
initSMFFZVertex
;
// Definition of the static class description member.
void
SMFFZVertex
::
Init
()
{
static
ClassDocumentation
<
SMFFZVertex
>
documentation
(
"The SMFFZVertex class is the implementation of"
"the coupling of the Z boson to the Standard Model fermions"
);
}
void
SMFFZVertex
::
setCoupling
(
Energy2
q2
,
tcPDPtr
aa
,
tcPDPtr
,
tcPDPtr
)
{
// first the overall normalisation
if
(
q2
!=
_q2last
||
_couplast
==
0.
)
{
_couplast
=
-
electroMagneticCoupling
(
q2
);
_q2last
=
q2
;
}
norm
(
_couplast
);
// the left and right couplings
int
iferm
=
abs
(
aa
->
id
());
if
((
iferm
>=
1
&&
iferm
<=
6
)
||
(
iferm
>=
11
&&
iferm
<=
16
))
{
left
(
_gl
[
iferm
]);
right
(
_gr
[
iferm
]);
}
else
throw
HelicityConsistencyError
()
<<
"SMFFZVertex::setCoupling "
<<
"Unknown particle in Z vertex"
<<
Exception
::
runerror
;
}
SMFFZVertex
::
SMFFZVertex
()
:
_gl
(
17
,
0.0
),
_gr
(
17
,
0.0
),
_couplast
(
0.0
),
_q2last
(
ZERO
)
{
orderInGem
(
1
);
orderInGs
(
0
);
}
void
SMFFZVertex
::
doinit
()
{
// PDG codes for the particles
// the quarks
for
(
int
ix
=
1
;
ix
<
7
;
++
ix
)
{
addToList
(
-
ix
,
ix
,
23
);
}
// the leptons
for
(
int
ix
=
11
;
ix
<
17
;
++
ix
)
{
addToList
(
-
ix
,
ix
,
23
);
}
tcSMPtr
sm
=
generator
()
->
standardModel
();
double
sw2
=
sin2ThetaW
();
double
fact
=
0.25
/
sqrt
(
sw2
*
(
1.
-
sw2
));
for
(
int
ix
=
1
;
ix
<
4
;
++
ix
)
{
_gl
[
2
*
ix
-
1
]
=
fact
*
(
sm
->
vd
()
+
sm
->
ad
()
);
_gl
[
2
*
ix
]
=
fact
*
(
sm
->
vu
()
+
sm
->
au
()
);
_gl
[
2
*
ix
+
9
]
=
fact
*
(
sm
->
ve
()
+
sm
->
ae
()
);
_gl
[
2
*
ix
+
10
]
=
fact
*
(
sm
->
vnu
()
+
sm
->
anu
());
_gr
[
2
*
ix
-
1
]
=
fact
*
(
sm
->
vd
()
-
sm
->
ad
()
);
_gr
[
2
*
ix
]
=
fact
*
(
sm
->
vu
()
-
sm
->
au
()
);
_gr
[
2
*
ix
+
9
]
=
fact
*
(
sm
->
ve
()
-
sm
->
ae
()
);
_gr
[
2
*
ix
+
10
]
=
fact
*
(
sm
->
vnu
()
-
sm
->
anu
());
}
FFVVertex
::
doinit
();
}
File Metadata
Details
Attached
Mime Type
text/x-c
Expires
Sat, May 3, 7:01 AM (6 h, 46 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4983250
Default Alt Text
SMFFZVertex.cc (2 KB)
Attached To
rHERWIGHG herwighg
Event Timeline
Log In to Comment