ThePEG  1.8.0
StandardCKM.h
1 // -*- C++ -*-
2 //
3 // StandardCKM.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 1999-2011 Leif Lonnblad
5 //
6 // ThePEG is licenced under version 2 of the GPL, see COPYING for details.
7 // Please respect the MCnet academic guidelines, see GUIDELINES for details.
8 //
9 #ifndef ThePEG_StandardCKM_H
10 #define ThePEG_StandardCKM_H
11 // This is the declaration of the StandardCKM class.
12 
13 #include "CKMBase.h"
14 
15 namespace ThePEG {
16 
25 class StandardCKM: public CKMBase {
26 
27 public:
28 
34  StandardCKM() : theta12(0.222357), theta13(0.0003150),
35  theta23(0.039009), delta(1.35819) {}
37 
38 public:
39 
44  virtual vector< vector<double> > getMatrix(unsigned int nFamilies) const;
45 
46 public:
47 
48 
55  void persistentOutput(PersistentOStream & os) const;
56 
62  void persistentInput(PersistentIStream & is, int version);
64 
68  static void Init();
69 
70 protected:
71 
78  virtual IBPtr clone() const;
79 
84  virtual IBPtr fullclone() const;
86 
87 
88 private:
89 
93  double theta12;
94 
98  double theta13;
99 
103  double theta23;
104 
108  double delta;
109 
110 private:
111 
116 
120  StandardCKM & operator=(const StandardCKM &);
121 
122 };
123 
128 template <>
129 struct BaseClassTrait<StandardCKM,1>: public ClassTraitsType {
131  typedef CKMBase NthBase;
132 };
133 
137 template <>
138 struct ClassTraits<StandardCKM>: public ClassTraitsBase<StandardCKM> {
140  static string className() { return "ThePEG::StandardCKM"; }
144  static string library() { return "StandardCKM.so"; }
145 };
146 
149 }
150 
151 #endif /* ThePEG_StandardCKM_H */