Herwig++
2.7.0
|
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 */