herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.0
FFZPrimeVertex.h
00001 // -*- C++ -*-
00002 #ifndef RADIATIVEZPRIME_FFZPrimeVertex_H
00003 #define RADIATIVEZPRIME_FFZPrimeVertex_H
00004 //
00005 // This is the declaration of the FFZPrimeVertex class.
00006 //
00007 
00008 #include "ThePEG/Helicity/Vertex/Vector/FFVVertex.h"
00009 
00010 namespace RadiativeZPrime {
00011 
00012 using namespace ThePEG;
00013 
00020 class FFZPrimeVertex: public Helicity::FFVVertex {
00021 
00022 public:
00023 
00027   inline FFZPrimeVertex();
00028   
00036   virtual void setCoupling(Energy2 q2,tcPDPtr part1,tcPDPtr part2,tcPDPtr part3);
00037 
00038 public:
00039 
00046   void persistentOutput(PersistentOStream & os) const;
00047 
00053   void persistentInput(PersistentIStream & is, int version);
00055 
00062   static void Init();
00063 
00064 protected:
00065 
00072   inline virtual IBPtr clone() const {return new_ptr(*this);}
00073 
00078   inline virtual IBPtr fullclone() const {return new_ptr(*this);}
00080 
00081 protected:
00082   
00088   virtual void doinit();
00089 
00090 private:
00091 
00096   static ClassDescription<FFZPrimeVertex> initFFZPrimeVertex;
00097 
00102   FFZPrimeVertex & operator=(const FFZPrimeVertex &);
00103 
00104 
00112   vector<double> _gl;
00113 
00117   vector<double> _gr;
00119 };
00120 
00121 }
00122 
00123 #include "ThePEG/Utilities/ClassTraits.h"
00124 
00125 namespace ThePEG {
00126 
00131 template <>
00132 struct BaseClassTrait<RadiativeZPrime::FFZPrimeVertex,1> {
00134   typedef Helicity::FFVVertex NthBase;
00135 };
00136 
00139 template <>
00140 struct ClassTraits<RadiativeZPrime::FFZPrimeVertex>
00141   : public ClassTraitsBase<RadiativeZPrime::FFZPrimeVertex> {
00143   static string className() { return "RadiativeZPrime::FFZPrimeVertex"; }
00151   static string library() { return "RadiativeZPrime.so"; }
00152 };
00153 
00156 }
00157 
00158 #endif /* RADIATIVEZPRIME_FFZPrimeVertex_H */