herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.0
AnomalousVVVVertex.h
00001 // -*- C++ -*-
00002 #ifndef RADIATIVEZPRIME_AnomalousVVVVertex_H
00003 #define RADIATIVEZPRIME_AnomalousVVVVertex_H
00004 //
00005 // This is the declaration of the AnomalousVVVVertex class.
00006 //
00007 
00008 #include "ThePEG/Helicity/Vertex/AbstractVVVVertex.h"
00009 
00010 namespace RadiativeZPrime {
00011 
00012 using namespace ThePEG;
00013 using namespace ThePEG::Helicity;
00014 
00027 class AnomalousVVVVertex: public AbstractVVVVertex {
00028 
00029 public:
00030 
00043   virtual Complex evaluate(Energy2 q2, const VectorWaveFunction & vec1,
00044                            const VectorWaveFunction & vec2,
00045                            const VectorWaveFunction & vec3);
00046 
00059   virtual VectorWaveFunction evaluate(Energy2 q2,int iopt, tcPDPtr out,
00060                                       const VectorWaveFunction & vec2,
00061                                       const VectorWaveFunction & vec3,
00062                                       complex<Energy> mass=-GeV,
00063                                       complex<Energy> width=-GeV);
00065 
00074   virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,tcPDPtr part3)=0;
00075 
00076 public:
00077 
00084   static void Init();
00085 
00086 private:
00087 
00092   static AbstractNoPIOClassDescription<AnomalousVVVVertex> initAnomalousVVVVertex;
00093 
00098   AnomalousVVVVertex & operator=(const AnomalousVVVVertex &);
00099 
00100 };
00101 
00102 }
00103 
00104 #include "ThePEG/Utilities/ClassTraits.h"
00105 
00106 namespace ThePEG {
00107 
00112 template <>
00113 struct BaseClassTrait<RadiativeZPrime::AnomalousVVVVertex,1> {
00115   typedef Helicity::AbstractVVVVertex NthBase;
00116 };
00117 
00120 template <>
00121 struct ClassTraits<RadiativeZPrime::AnomalousVVVVertex>
00122   : public ClassTraitsBase<RadiativeZPrime::AnomalousVVVVertex> {
00124   static string className() { return "RadiativeZPrime::AnomalousVVVVertex"; }
00132   static string library() { return "RadiativeZPrime.so"; }
00133 };
00134 
00137 }
00138 
00139 #endif /* RADIATIVEZPRIME_AnomalousVVVVertex_H */