Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F8724366
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
12 KB
Subscribers
None
View Options
diff --git a/Models/LHTP/LHTPWWHVertex.cc b/Models/LHTP/LHTPWWHVertex.cc
--- a/Models/LHTP/LHTPWWHVertex.cc
+++ b/Models/LHTP/LHTPWWHVertex.cc
@@ -1,224 +1,188 @@
// -*- C++ -*-
//
// This is the implementation of the non-inlined, non-templated member
// functions of the LHTPWWHVertex class.
//
#include "LHTPWWHVertex.h"
#include "LHTPModel.h"
#include "ThePEG/Interface/ClassDocumentation.h"
#include "ThePEG/Utilities/DescribeClass.h"
#include "ThePEG/Persistency/PersistentOStream.h"
#include "ThePEG/Persistency/PersistentIStream.h"
using namespace Herwig;
IBPtr LHTPWWHVertex::clone() const {
return new_ptr(*this);
}
IBPtr LHTPWWHVertex::fullclone() const {
return new_ptr(*this);
}
void LHTPWWHVertex::persistentOutput(PersistentOStream & os) const {
- os << ounit(_coup,GeV);
+ os << ounit(coup_,GeV);
}
void LHTPWWHVertex::persistentInput(PersistentIStream & is, int) {
- is >> iunit(_coup,GeV);
+ is >> iunit(coup_,GeV);
}
// Static variable needed for the type description system in ThePEG.
DescribeClass<LHTPWWHVertex,VVSVertex>
describeHerwigLHTPWWHVertex("Herwig::LHTPWWHVertex", "HwLHTPModel.so");
void LHTPWWHVertex::Init() {
static ClassDocumentation<LHTPWWHVertex> documentation
("The LHTPWWHVertex class implements the coupling of two electroweak"
" gauge bosons to a Higgs boson in the Little Higgs Model with T-Parity"
"including the additional heavy photon, Z and W bosons and the "
"triplet Higgs bosons.");
}
-LHTPWWHVertex::LHTPWWHVertex() : _couplast(0.), _q2last(0.*GeV2) {
+LHTPWWHVertex::LHTPWWHVertex() : coupLast_(0.), q2Last_(0.*GeV2) {
// order in the couplings
orderInGem(1);
orderInGs(0);
// W_L W_L H
addToList( 24, -24, 25);
// Z_L Z_L H
addToList( 23, 23, 25);
// W_H W_H H
addToList( 34, -34, 25);
// Z_H Z_H H
addToList( 33, 33, 25);
// A_H A_H H
addToList( 32, 32, 25);
-
-
- // Z_H Z_L H --- VIOLATES T-parity
-// addToList( 23,// 33,// 25);
-
-
-
// Z_H A_H H
addToList( 33, 32, 25);
-
- // W_L W_L Phi0 --- VIOLATES T-parity
-// addToList( 24,// -24,// 35);
-// // Z_L Z_L Phi0
-// addToList( 23,// 23,// 35);
-
-
// Z_L Z_H Phi0
addToList( 23, 33, 35);
-
- // W_H W_H Phi0 -- VIOLATES T-parity
-// addToList( 34,// -34,// 35);
-
-
// A_H Z_L Phi0
addToList( 32, 23, 35);
-
- // W_L Z_L Phi- --- VIOLATES T-parity
-// addToList( 24,// 23,// -37);
-// addToList( -24,// 23,// 37);
-
- // W_H Z_L Phi-
+ // W_L W_H PhiP
+ addToList( 24, -34, 36);
+ addToList( 34, -24, 36);
+ // W_H Z_L Phi+/-
addToList( 34, 23, -37);
addToList( -34, 23, 37);
- // W_L A_H Phi-
+ // W_L A_H Phi+/-
addToList( 24, 32, -37);
addToList( -24, 32, 37);
-
- // W_H A_H Phi- --- VIOLATES T-parity
-// addToList( 34,// 32,// -37);
-// addToList( -34,// 32,// 37);
-
- // W_L Z_H Phi-
+ // W_L Z_H Phi+/-
addToList( 24, 33, -37);
addToList( -24, 33, 37);
-
- // W_H Z_H Phi- --- VIOLATES T-parity
-// addToList( 34,// 33,// -37);
-// addToList( -34,// 33,// 37);
-
- // W_H A_L Phi-
+ // W_H A_L Phi+/-
addToList( 34, 22, -37);
addToList( -34, 22, 37);
+ // W_L W_L Phi --/++
+ addToList( 24, 24, -38);
+ addToList( -24, -24, 38);
}
void LHTPWWHVertex::doinit() {
// model
cLHTPModelPtr model =
dynamic_ptr_cast<cLHTPModelPtr>(generator()->standardModel());
if(!model)
throw InitException() << "Must be using the LHTPModel "
<< " in LHTPWWHVertex::doinit()"
<< Exception::runerror;
// base class
VVSVertex::doinit();
// calculate the couplings for the different combinations of particles
Energy fact = 0.5*model->vev()/model->sin2ThetaW();
double sw(sqrt(model->sin2ThetaW())),cw(sqrt(1.-model->sin2ThetaW()));
- double vf(sqr(model->vev()/model->f()));
+ double vf(model->vev()/model->f());
+ Energy vh = model->vev()*(1.+sqr(vf)/12.);
double r2(sqrt(2.));
- _coup.resize(18);
- _coup[ 0] = fact *(1.-vf/3.);
- _coup[ 1] = fact/sqr(cw)*(1.-vf/3.);
- _coup[ 2] =-fact;
- _coup[ 3] =-fact;
- _coup[ 4] =-fact*sqr(sw/cw);
- _coup[ 5] =-fact/cw*sw;
- _coup[ 6] = fact*2.*r2;
- _coup[ 7] =-fact*2.*r2;
- _coup[ 8] = fact/sqr(cw)*4.*r2;
- _coup[ 9] =-fact*sqrt(vf)/r2/cw;
- _coup[10] = fact*sw/sqr(cw)*sqrt(vf)/r2/sw;
- _coup[11] =-fact/cw;
- _coup[12] = fact*sqrt(vf)/6./cw*(1.+2.*sqr(sw));
- _coup[13] =-fact*sqrt(vf)*sw/cw*0.5;
- _coup[14] =-fact*sw/cw*2.;
- _coup[15] = fact*sqrt(vf)*5./6.;
- _coup[16] =-fact*2.;
- _coup[17] =-fact*sqrt(vf)*sw/3.;
+ coup_.resize(14);
+ // H
+ coup_[ 0] = fact *(1.-sqr(vf)/3.);
+ coup_[ 1] = fact/sqr(cw)*(1.-sqr(vf)/3.);
+ coup_[ 2] =-fact;
+ coup_[ 3] =-fact;
+ coup_[ 4] =-fact*sqr(sw/cw);
+ coup_[ 5] =-fact/cw*sw;
+ // PhiP
+ coup_[ 6] = r2*fact*vf/3.;
+ // Phi0
+ coup_[ 7] =-fact*vf/r2/cw;
+ coup_[ 8] = fact*vf/r2*sw/sqr(cw);
+ // Phi+
+ coup_[ 9] = fact*vf/6./cw*(1.+2.*sqr(sw));
+ coup_[10] =-fact*vf*sw/cw*0.5;
+ coup_[11] = fact*vf*5./6.;
+ coup_[12] =-fact*vf*sw/3.;
+ // Phi++
+ coup_[13] =-fact*vf;
}
void LHTPWWHVertex::setCoupling(Energy2 q2,tcPDPtr a,
tcPDPtr b, tcPDPtr c) {
// first the overall normalisation
- if(q2!=_q2last) {
- _couplast = sqr(electroMagneticCoupling(q2));
- _q2last=q2;
+ if(q2!=q2Last_) {
+ coupLast_ = sqr(electroMagneticCoupling(q2));
+ q2Last_=q2;
}
long ih = abs(c->id());
long ibos[2]={abs(a->id()),abs(b->id())};
if(ih == 25) {
if( ibos[0] == 24 && ibos[1] == 24)
- norm(UnitRemoval::InvE *_couplast*_coup[0]);
+ norm(UnitRemoval::InvE *coupLast_*coup_[0]);
else if( ibos[0] == 23 && ibos[1] == 23 )
- norm(UnitRemoval::InvE *_couplast*_coup[1]);
+ norm(UnitRemoval::InvE *coupLast_*coup_[1]);
else if( ibos[0] == 34 && ibos[1] == 34 )
- norm(UnitRemoval::InvE *_couplast*_coup[2]);
+ norm(UnitRemoval::InvE *coupLast_*coup_[2]);
else if( ibos[0] == 33 && ibos[1] == 33 )
- norm(UnitRemoval::InvE *_couplast*_coup[3]);
+ norm(UnitRemoval::InvE *coupLast_*coup_[3]);
else if( ibos[0] == 32 && ibos[1] == 32 )
- norm(UnitRemoval::InvE *_couplast*_coup[4]);
+ norm(UnitRemoval::InvE *coupLast_*coup_[4]);
else if((ibos[0] == 33 && ibos[1] == 32) ||
(ibos[0] == 32 && ibos[1] == 33) )
- norm(UnitRemoval::InvE *_couplast*_coup[5]);
+ norm(UnitRemoval::InvE *coupLast_*coup_[5]);
else
- throw HelicityConsistencyError() << "LittleHiggsWWHVertex::setCoupling "
- << "Invalid particles in WWH Vertex "
- << a->PDGName() << " " << b->PDGName() << " "
- << c->PDGName()
- << Exception::runerror;
+ assert(false);
+ }
+ else if(ih == 36) {
+ if( ibos[0] == 34 || ibos[1] == 34)
+ norm( Complex(0.,1.)*UnitRemoval::InvE *coupLast_*coup_[6]);
+ else
+ norm(-Complex(0.,1.)*UnitRemoval::InvE *coupLast_*coup_[6]);
}
else if(ih == 35) {
- // if ( ibos[0] == 24 && ibos[1] == 24 ) norm(UnitRemoval::InvE *_couplast*_coup[ 6]);
- // if( ibos[0] == 34 && ibos[1] == 34 ) norm(UnitRemoval::InvE *_couplast*_coup[ 7]);
- //else if( ibos[0] == 23 && ibos[1] == 23 ) norm(UnitRemoval::InvE *_couplast*_coup[ 8]);
if((ibos[0] == 23 && ibos[1] == 33) ||
(ibos[0] == 33 && ibos[1] == 23) )
- norm(UnitRemoval::InvE *_couplast*_coup[ 9]);
+ norm(UnitRemoval::InvE *coupLast_*coup_[7]);
else if((ibos[0] == 23 && ibos[1] == 32) ||
(ibos[0] == 32 && ibos[1] == 23) )
- norm(UnitRemoval::InvE *_couplast*_coup[10]);
+ norm(UnitRemoval::InvE *coupLast_*coup_[8]);
else
- throw HelicityConsistencyError() << "LittleHiggsWWHVertex::setCoupling "
- << "Invalid particles in WWH Vertex "
- << a->PDGName() << " " << b->PDGName() << " "
- << c->PDGName()
- << Exception::runerror;
+ assert(false);
}
else if(ih == 37) {
-// if ((ibos[0] == 24 && ibos[1] == 23) ||
-// (ibos[0] == 23 && ibos[1] == 24) ) norm(UnitRemoval::InvE *_couplast*_coup[11]);
if((ibos[0] == 34 && ibos[1] == 23) ||
(ibos[0] == 23 && ibos[1] == 34) )
- norm(UnitRemoval::InvE *_couplast*_coup[12]);
+ norm(UnitRemoval::InvE *coupLast_*coup_[ 9]);
else if((ibos[0] == 24 && ibos[1] == 32) ||
(ibos[0] == 32 && ibos[1] == 24) )
- norm(UnitRemoval::InvE *_couplast*_coup[13]);
- // if((ibos[0] == 34 && ibos[1] == 32) ||
-// (ibos[0] == 32 && ibos[1] == 34) ) norm(UnitRemoval::InvE *_couplast*_coup[14]);
+ norm(UnitRemoval::InvE *coupLast_*coup_[10]);
else if((ibos[0] == 24 && ibos[1] == 33) ||
(ibos[0] == 33 && ibos[1] == 24) )
- norm(UnitRemoval::InvE *_couplast*_coup[15]);
-// else if((ibos[0] == 34 && ibos[1] == 33) ||
-// (ibos[0] == 33 && ibos[1] == 34) ) norm(UnitRemoval::InvE *_couplast*_coup[16]);
+ norm(UnitRemoval::InvE *coupLast_*coup_[11]);
else if((ibos[0] == 34 && ibos[1] == 22) ||
(ibos[0] == 22 && ibos[1] == 34) )
- norm(UnitRemoval::InvE *_couplast*_coup[17]);
- else
- throw HelicityConsistencyError()
- << "LittleHiggsWWHVertex::setCoupling "
- << "Invalid particles in WWH Vertex "
- << a->PDGName() << " " << b->PDGName() << " " << c->PDGName()
- << Exception::runerror;
+ norm(UnitRemoval::InvE *coupLast_*coup_[12]);
+ else
+ assert(false);
}
+ else if(ih == 38) {
+ norm(UnitRemoval::InvE *coupLast_*coup_[13]);
+ }
+ else
+ assert(false);
}
diff --git a/Models/LHTP/LHTPWWHVertex.h b/Models/LHTP/LHTPWWHVertex.h
--- a/Models/LHTP/LHTPWWHVertex.h
+++ b/Models/LHTP/LHTPWWHVertex.h
@@ -1,127 +1,127 @@
// -*- C++ -*-
#ifndef HERWIG_LHTPWWHVertex_H
#define HERWIG_LHTPWWHVertex_H
//
// This is the declaration of the LHTPWWHVertex class.
//
#include "ThePEG/Helicity/Vertex/Scalar/VVSVertex.h"
namespace Herwig {
using namespace ThePEG;
/**
* The LittleHiggsWWHVertex class implements the couplings of two electroweak
* gauge bosons to a Higgs boson in the Little Higgs model with T-parity
* including the additional
* heavy photon, Z and W bosons in the model and the triplet Higgs bosons.
*/
class LHTPWWHVertex: public Helicity::VVSVertex {
public:
/**
* The default constructor.
*/
LHTPWWHVertex();
/**
* Calculate the couplings.
* @param q2 The scale \f$q^2\f$ for the coupling at the vertex.
* @param part1 The ParticleData pointer for the first particle.
* @param part2 The ParticleData pointer for the second particle.
* @param part3 The ParticleData pointer for the third particle.
*/
virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,tcPDPtr part3);
public:
/** @name Functions used by the persistent I/O system. */
//@{
/**
* Function used to write out object persistently.
* @param os the persistent output stream written to.
*/
void persistentOutput(PersistentOStream & os) const;
/**
* Function used to read in object persistently.
* @param is the persistent input stream read from.
* @param version the version number of the object when written.
*/
void persistentInput(PersistentIStream & is, int version);
//@}
/**
* The standard Init function used to initialize the interfaces.
* Called exactly once for each class by the class description system
* before the main function starts or
* when this class is dynamically loaded.
*/
static void Init();
protected:
/** @name Clone Methods. */
//@{
/**
* Make a simple clone of this object.
* @return a pointer to the new object.
*/
virtual IBPtr clone() const;
/** Make a clone of this object, possibly modifying the cloned object
* to make it sane.
* @return a pointer to the new object.
*/
virtual IBPtr fullclone() const;
//@}
protected:
/** @name Standard Interfaced functions. */
//@{
/**
* Initialize this object after the setup phase before saving an
* EventGenerator to disk.
* @throws InitException if object could not be initialized properly.
*/
virtual void doinit();
//@}
private:
/**
* The assignment operator is private and must never be called.
* In fact, it should not even be implemented.
*/
LHTPWWHVertex & operator=(const LHTPWWHVertex &);
private:
/**
* Storage of the couplings.
*/
//@{
/**
* The last value of the electroweak coupling calculated.
*/
- Complex _couplast;
+ Complex coupLast_;
/**
* The scale \f$q^2\f$ at which the coupling was last evaluated.
*/
- Energy2 _q2last;
+ Energy2 q2Last_;
/**
* Couplings for the different interactions
*/
- vector<Energy> _coup;
+ vector<Energy> coup_;
//@}
};
}
#endif /* HERWIG_LHTPWWHVertex_H */
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Mon, Jan 20, 11:11 PM (1 d, 9 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
4242816
Default Alt Text
(12 KB)
Attached To
rHERWIGHG herwighg
Event Timeline
Log In to Comment