Herwig++
2.7.0
|
00001 // -*- C++ -*- 00002 #ifndef RADIATIVEZPRIME_GammaZPrimeZVertex_H 00003 #define RADIATIVEZPRIME_GammaZPrimeZVertex_H 00004 // 00005 // This is the declaration of the GammaZPrimeZVertex class. 00006 // 00007 00008 #include "AnomalousVVVVertex.h" 00009 00010 namespace RadiativeZPrime { 00011 00012 using namespace ThePEG; 00013 00020 class GammaZPrimeZVertex: public AnomalousVVVVertex { 00021 00022 public: 00023 00027 GammaZPrimeZVertex(); 00028 00037 virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,tcPDPtr part3); 00038 00039 public: 00040 00047 void persistentOutput(PersistentOStream & os) const; 00048 00054 void persistentInput(PersistentIStream & is, int version); 00056 00063 static void Init(); 00064 00065 protected: 00066 00073 inline virtual IBPtr clone() const {return new_ptr(*this);} 00074 00079 inline virtual IBPtr fullclone() const {return new_ptr(*this);} 00081 00082 protected: 00083 00091 virtual void doinit(); 00093 00094 private: 00095 00100 static ClassDescription<GammaZPrimeZVertex> initGammaZPrimeZVertex; 00101 00106 GammaZPrimeZVertex & operator=(const GammaZPrimeZVertex &); 00107 00108 private: 00109 00113 double _coup; 00114 00115 }; 00116 00117 } 00118 00119 #include "ThePEG/Utilities/ClassTraits.h" 00120 00121 namespace ThePEG { 00122 00127 template <> 00128 struct BaseClassTrait<RadiativeZPrime::GammaZPrimeZVertex,1> { 00130 typedef RadiativeZPrime::AnomalousVVVVertex NthBase; 00131 }; 00132 00135 template <> 00136 struct ClassTraits<RadiativeZPrime::GammaZPrimeZVertex> 00137 : public ClassTraitsBase<RadiativeZPrime::GammaZPrimeZVertex> { 00139 static string className() { return "RadiativeZPrime::GammaZPrimeZVertex"; } 00147 static string library() { return "RadiativeZPrime.so"; } 00148 }; 00149 00152 } 00153 00154 #endif /* RADIATIVEZPRIME_GammaZPrimeZVertex_H */