herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.0
RadiativeZPrimeModel.h
00001 // -*- C++ -*-
00002 #ifndef RADIATIVEZPRIME_RadiativeZPrimeModel_H
00003 #define RADIATIVEZPRIME_RadiativeZPrimeModel_H
00004 //
00005 // This is the declaration of the RadiativeZPrimeModel class.
00006 //
00007 
00008 #include "Herwig++/Models/StandardModel/StandardModel.h"
00009 
00010 namespace RadiativeZPrime {
00011 
00012 using namespace ThePEG;
00013 
00021 class RadiativeZPrimeModel: public Herwig::StandardModel {
00022 
00023 public:
00024 
00028   inline RadiativeZPrimeModel()  :
00029     _gZprime(1.), _useZcouplings(true),
00030     _vnu(1.0), _ve(-0.072), _vu(0.3813), _vd(-0.6907),
00031     _anu(1.0), _ae(-1.0), _au(1.0), _ad(-1.0) {}
00032 
00036   inline double gZprime() const {return _gZprime;}
00037 
00041   inline double zPrimevnu() const {return _vnu;}
00042 
00046   inline double zPrimeve() const {return _ve;}
00047 
00051   inline double zPrimevu() const {return _vu;}
00052 
00056   inline double zPrimevd() const {return _vd;}
00057 
00061   inline double zPrimeanu() const {return _anu;}
00062 
00066   inline double zPrimeae() const {return _ae;}
00067 
00071   inline double zPrimeau() const {return _au;}
00072 
00076   inline double zPrimead() const {return _ad;}
00077 
00081   inline AbstractFFVVertexPtr vertexFFZPrime() const {return _ffZPrimeVertex;}
00082 
00086   inline AbstractVVVVertexPtr vertexGammaZPrimeZ() const {return _gammaZPrimeZVertex;}
00087 
00088 public:
00089 
00096   void persistentOutput(PersistentOStream & os) const;
00097 
00103   void persistentInput(PersistentIStream & is, int version);
00105 
00112   static void Init();
00113 
00114 protected:
00115 
00122   inline virtual IBPtr clone() const {return new_ptr(*this);}
00123 
00128   inline virtual IBPtr fullclone() const {return new_ptr(*this);}
00130 
00131 private:
00132 
00137   static ClassDescription<RadiativeZPrimeModel> initRadiativeZPrimeModel;
00138 
00143   RadiativeZPrimeModel & operator=(const RadiativeZPrimeModel &);
00144 
00145 
00146 protected:
00147 
00155   virtual void doinit();
00157 
00158 private:
00159 
00163   double _gZprime;
00164 
00168   bool _useZcouplings;
00169 
00173   double _vnu;
00174 
00178   double _ve;
00179 
00183   double _vu;
00184 
00188   double _vd;
00189 
00193   double _anu;
00194 
00198   double _ae;
00199 
00203   double _au;
00204 
00208   double _ad;
00209 
00213   AbstractFFVVertexPtr _ffZPrimeVertex;
00214 
00218   AbstractVVVVertexPtr _gammaZPrimeZVertex;
00219 
00220 };
00221 
00222 }
00223 
00224 #include "ThePEG/Utilities/ClassTraits.h"
00225 
00226 namespace ThePEG {
00227 
00232 template <>
00233 struct BaseClassTrait<RadiativeZPrime::RadiativeZPrimeModel,1> {
00235   typedef Herwig::StandardModel NthBase;
00236 };
00237 
00240 template <>
00241 struct ClassTraits<RadiativeZPrime::RadiativeZPrimeModel>
00242   : public ClassTraitsBase<RadiativeZPrime::RadiativeZPrimeModel> {
00244   static string className() { return "RadiativeZPrime::RadiativeZPrimeModel"; }
00252   static string library() { return "RadiativeZPrime.so"; }
00253 };
00254 
00255 ThePEG_DECLARE_POINTERS(RadiativeZPrime::RadiativeZPrimeModel,RadiativeZPrimeModelPtr);
00256 
00258 }
00259 
00260 #endif /* RADIATIVEZPRIME_RadiativeZPrimeModel_H */