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