herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.0
GammaZPrimeZVertex.h
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 */