Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F7878835
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
7 KB
Subscribers
None
View Options
diff --git a/Models/LH/LHWHHVertex.cc b/Models/LH/LHWHHVertex.cc
--- a/Models/LH/LHWHHVertex.cc
+++ b/Models/LH/LHWHHVertex.cc
@@ -1,283 +1,283 @@
// -*- C++ -*-
//
// This is the implementation of the non-inlined, non-templated member
// functions of the LHWHHVertex class.
//
#include "LHWHHVertex.h"
#include "LHModel.h"
#include "ThePEG/Interface/ClassDocumentation.h"
#include "ThePEG/Persistency/PersistentOStream.h"
#include "ThePEG/Persistency/PersistentIStream.h"
using namespace Herwig;
LHWHHVertex::LHWHHVertex() :
couplast_(0.), q2last_(ZERO), coup_(24) {
// neutral
addToList( 22, 37,-37);
addToList( 22, 38,-38);
addToList( 32, 37,-37);
addToList( 32, 38,-38);
addToList( 23, 37,-37);
addToList( 23, 38,-38);
addToList( 33, 37,-37);
addToList( 33, 38,-38);
addToList( 32, 25, 36);
addToList( 32, 35, 36);
addToList( 23, 25, 36);
addToList( 23, 35, 36);
addToList( 33, 25, 36);
addToList( 33, 35, 36);
// W+
addToList( 24, 25,-37);
addToList( 24, 35,-37);
addToList( 24, 36,-37);
addToList( 24, 37,-38);
addToList( 34, 25,-37);
addToList( 34, 35,-37);
addToList( 34, 36,-37);
addToList( 34, 37,-38);
// W-
addToList(-24, 25, 37);
addToList(-24, 35, 37);
addToList(-24, 36, 37);
- addToList(-24, 37, 38);
+ addToList(-24,-37, 38);
addToList(-34, 25, 37);
addToList(-34, 35, 37);
addToList(-34, 36, 37);
- addToList(-34, 37, 38);
+ addToList(-34,-37, 38);
}
IBPtr LHWHHVertex::clone() const {
return new_ptr(*this);
}
IBPtr LHWHHVertex::fullclone() const {
return new_ptr(*this);
}
void LHWHHVertex::persistentOutput(PersistentOStream & os) const {
os << coup_;
}
void LHWHHVertex::persistentInput(PersistentIStream & is, int) {
is >> coup_;
}
ClassDescription<LHWHHVertex> LHWHHVertex::initLHWHHVertex;
// Definition of the static class description member.
void LHWHHVertex::Init() {
static ClassDocumentation<LHWHHVertex> documentation
("There is no documentation for the LHWHHVertex class");
}
void LHWHHVertex::doinit() {
VSSVertex::doinit();
// model
cLHModelPtr model =
dynamic_ptr_cast<cLHModelPtr>(generator()->standardModel());
if(!model)
throw InitException() << "Must be using the LHModel "
<< " in LHWWWWVertex::doinit()"
<< Exception::runerror;
double sw2(sin2ThetaW());
double sw(sqrt(sw2)),cw(sqrt(1.-sw2));
double s (model->sinTheta() ),c (model->cosTheta() );
double sp(model->sinThetaPrime()),cp(model->cosThetaPrime());
double s0 (model->sinTheta0());
double sP (model->sinThetaP());
double sPlus(model->sinThetaPlus());
coup_[ 0] = 0.5/sw*(sqrt(2.)*s0-sPlus);
coup_[ 1] = sqrt(0.5)/sw;
coup_[ 2] = Complex(0.,1.)/sw*sqrt(0.5);
coup_[ 3] = 1./sw;
coup_[ 4] = 0.;
coup_[ 5] = 0.;
coup_[ 6] = 1.;
coup_[ 7] = 2.;
coup_[ 8] = Complex(0.,0.5)/cw/sw*(sP-2.*s0);
coup_[ 9] =-Complex(0.,1.)/cw/sw;
coup_[10] =-sw/cw;
coup_[11] = (1.-2.*sw2)/cw/sw;
coup_[12] =-0.25/sw*(sqr(c)-sqr(s))/s/c*(sqrt(2.)*s0-sPlus);
coup_[13] =-sqrt(0.5)/sw*0.5*(sqr(c)-sqr(s))/s/c;
coup_[14] =-Complex(0.,1.)*sqrt(0.5)*0.5*(sqr(c)-sqr(s))/s/c;
coup_[15] =-0.5*(sqr(c)-sqr(s))/s/c/sw;
coup_[16] =-Complex(0.,0.5)/cw*0.5*(sqr(cp)-sqr(sp))/sp/cp*(sP-2.*s0);
coup_[17] = Complex(0.,1.)/cw*0.5*(sqr(cp)-sqr(sp))/sp/cp;
coup_[18] =-0.5*(sqr(cp)-sqr(sp))/sp/cp/cw;
coup_[19] =-0.5*(sqr(cp)-sqr(sp))/sp/cp/cw;
coup_[20] =-Complex(0.,0.5)/sw*0.5*(sqr(c)-sqr(s))/s/c*(sP-2.*s0);
coup_[21] = Complex(0.,1.)/sw*0.5*(sqr(c)-sqr(s))/s/c;
coup_[22] = 0.;
coup_[23] =-0.5/sw*(sqr(c)-sqr(s))/s/c;
orderInGs(0);
orderInGem(1);
}
void LHWHHVertex::setCoupling(Energy2 q2, tcPDPtr particle1,
tcPDPtr particle2, tcPDPtr particle3) {
if( q2 != q2last_ || couplast_==0.) {
q2last_ = q2;
couplast_ = electroMagneticCoupling(q2);
}
int ibos = particle1->id();
int isc1 = particle2->id();
int isc2 = particle3->id();
if(ibos==ParticleID::gamma) {
if(isc1==37)
norm(coup_[6]*couplast_);
else if(isc1==38)
norm(coup_[7]*couplast_);
else if(isc1==-37)
norm(-coup_[6]*couplast_);
else if(isc1==-38)
norm(-coup_[7]*couplast_);
else
assert(false);
}
if(ibos==32) {
if(isc1==37)
norm(coup_[18]*couplast_);
else if(isc1==38)
norm(coup_[19]*couplast_);
else if(isc1==-37)
norm(-coup_[18]*couplast_);
else if(isc1==-38)
norm(-coup_[19]*couplast_);
else if(isc1==25)
norm(coup_[16]*couplast_);
else if(isc1==35)
norm(coup_[17]*couplast_);
else if(isc2==25)
norm(-coup_[16]*couplast_);
else if(isc2==35)
norm(-coup_[17]*couplast_);
else
assert(false);
}
else if(ibos==ParticleID::Z0) {
if(isc1==37)
norm(coup_[10]*couplast_);
else if(isc1==38)
norm(coup_[11]*couplast_);
else if(isc1==-37)
norm(-coup_[10]*couplast_);
else if(isc1==-38)
norm(-coup_[11]*couplast_);
else if(isc1==25)
norm(coup_[8]*couplast_);
else if(isc1==35)
norm(coup_[9]*couplast_);
else if(isc2==25)
norm(-coup_[8]*couplast_);
else if(isc2==35)
norm(-coup_[9]*couplast_);
else
assert(false);
}
else if(ibos==33) {
if(isc1==37)
norm(coup_[22]*couplast_);
else if(isc1==38)
norm(coup_[23]*couplast_);
else if(isc1==-37)
norm(-coup_[22]*couplast_);
else if(isc1==-38)
norm(-coup_[23]*couplast_);
else if(isc1==25)
norm(coup_[20]*couplast_);
else if(isc1==35)
norm(coup_[21]*couplast_);
else if(isc2==25)
norm(-coup_[20]*couplast_);
else if(isc2==35)
norm(-coup_[21]*couplast_);
else
assert(false);
}
else if(ibos==ParticleID::Wplus) {
if(isc1==25)
norm(coup_[0]*couplast_);
else if(isc1==35)
norm(coup_[1]*couplast_);
else if(isc1==36)
norm(coup_[2]*couplast_);
else if(isc1==37)
norm(coup_[3]*couplast_);
else if(isc2==25)
norm(-coup_[0]*couplast_);
else if(isc2==35)
norm(-coup_[1]*couplast_);
else if(isc2==36)
norm(-coup_[2]*couplast_);
else if(isc2==37)
norm(-coup_[3]*couplast_);
else
assert(false);
}
else if(ibos==34) {
if(isc1==25)
norm(coup_[12]*couplast_);
else if(isc1==35)
norm(coup_[13]*couplast_);
else if(isc1==36)
norm(coup_[14]*couplast_);
else if(isc1==37)
norm(coup_[15]*couplast_);
else if(isc2==25)
norm(-coup_[12]*couplast_);
else if(isc2==35)
norm(-coup_[13]*couplast_);
else if(isc2==36)
norm(-coup_[14]*couplast_);
else if(isc2==37)
norm(-coup_[15]*couplast_);
else
assert(false);
}
else if(ibos==ParticleID::Wminus) {
if(isc1==25)
norm(conj(coup_[0])*couplast_);
else if(isc1==35)
norm(conj(coup_[1])*couplast_);
else if(isc1==36)
norm(conj(coup_[2])*couplast_);
else if(isc1==37)
norm(conj(coup_[3])*couplast_);
else if(isc2==25)
norm(-conj(coup_[0])*couplast_);
else if(isc2==35)
norm(-conj(coup_[1])*couplast_);
else if(isc2==36)
norm(-conj(coup_[2])*couplast_);
else if(isc2==37)
norm(-conj(coup_[3])*couplast_);
else
assert(false);
}
else if(ibos==-34) {
if(isc1==25)
norm(conj(coup_[12])*couplast_);
else if(isc1==35)
norm(conj(coup_[13])*couplast_);
else if(isc1==36)
norm(conj(coup_[14])*couplast_);
else if(isc1==37)
norm(conj(coup_[15])*couplast_);
else if(isc2==25)
norm(-conj(coup_[12])*couplast_);
else if(isc2==35)
norm(-conj(coup_[13])*couplast_);
else if(isc2==36)
norm(-conj(coup_[14])*couplast_);
else if(isc2==37)
norm(-conj(coup_[15])*couplast_);
else
assert(false);
}
}
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Tue, Nov 19, 6:59 PM (1 d, 14 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3805719
Default Alt Text
(7 KB)
Attached To
rHERWIGHG herwighg
Event Timeline
Log In to Comment