00001 // -*- C++ -*- 00002 // 00003 // StandardCKM.h is a part of ThePEG - Toolkit for HEP Event Generation 00004 // Copyright (C) 1999-2007 Leif Lonnblad 00005 // 00006 // ThePEG is licenced under version 2 of the GPL, see COPYING for details. 00007 // Please respect the MCnet academic guidelines, see GUIDELINES for details. 00008 // 00009 #ifndef ThePEG_StandardCKM_H 00010 #define ThePEG_StandardCKM_H 00011 // This is the declaration of the StandardCKM class. 00012 00013 #include "CKMBase.h" 00014 00015 namespace ThePEG { 00016 00025 class StandardCKM: public CKMBase { 00026 00027 public: 00028 00034 StandardCKM() : theta12(0.222357), theta13(0.0003150), 00035 theta23(0.039009), delta(1.35819) {} 00037 00038 public: 00039 00044 virtual vector< vector<double> > getMatrix(unsigned int nFamilies) const; 00045 00046 public: 00047 00048 00055 void persistentOutput(PersistentOStream & os) const; 00056 00062 void persistentInput(PersistentIStream & is, int version); 00064 00068 static void Init(); 00069 00070 protected: 00071 00078 virtual IBPtr clone() const; 00079 00084 virtual IBPtr fullclone() const; 00086 00087 00088 private: 00089 00093 double theta12; 00094 00098 double theta13; 00099 00103 double theta23; 00104 00108 double delta; 00109 00110 private: 00111 00115 static ClassDescription<StandardCKM> initStandardCKM; 00116 00120 StandardCKM & operator=(const StandardCKM &); 00121 00122 }; 00123 00128 template <> 00129 struct BaseClassTrait<StandardCKM,1>: public ClassTraitsType { 00131 typedef CKMBase NthBase; 00132 }; 00133 00137 template <> 00138 struct ClassTraits<StandardCKM>: public ClassTraitsBase<StandardCKM> { 00140 static string className() { return "ThePEG::StandardCKM"; } 00144 static string library() { return "StandardCKM.so"; } 00145 }; 00146 00149 } 00150 00151 #endif /* ThePEG_StandardCKM_H */