thepeg is hosted by Hepforge, IPPP Durham
ThePEG  2.2.1
StandardCKM.h
1 // -*- C++ -*-
2 //
3 // StandardCKM.h is a part of ThePEG - Toolkit for HEP Event Generation
4 // Copyright (C) 1999-2019 Leif Lonnblad
5 //
6 // ThePEG is licenced under version 3 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 &) = delete;
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 */
PersistentIStream is used to read persistent objects from a stream where they were previously written...
ClassTraitsType is an empty, non-polymorphic, base class.
Definition: ClassTraits.h:30
double theta12
The angle.
Definition: StandardCKM.h:93
A concreate implementation of ClassDescriptionBase describing a concrete class with persistent data...
StandardCKM()
Default constructor.
Definition: StandardCKM.h:34
PersistentOStream is used to write objects persistently to a stream from which they can be read in ag...
void persistentInput(PersistentIStream &is, int version)
Function used to read in object persistently.
StandardCKM inherits from CKMBase and implements the standard parameterization of the CKM matrix in t...
Definition: StandardCKM.h:25
static void Init()
Standard Init function used to initialize the interface.
This is the main namespace within which all identifiers in ThePEG are declared.
Definition: FactoryBase.h:28
double theta23
The angle.
Definition: StandardCKM.h:103
double theta13
The angle.
Definition: StandardCKM.h:98
virtual IBPtr clone() const
Make a simple clone of this object.
virtual IBPtr fullclone() const
Make a clone of this object, possibly modifying the cloned object to make it sane.
CKMBase is an abstract base classused by the StandardModelBase to implement the Cabibbo-Kobayashi-Mas...
Definition: CKMBase.h:27
RCPtr is a reference counted (smart) pointer.
Definition: RCPtr.h:60
static ClassDescription< StandardCKM > initStandardCKM
Describe a concrete class with persistent data.
Definition: StandardCKM.h:115
void persistentOutput(PersistentOStream &os) const
Function used to write out object persistently.
The default concrete implementation of ClassTraitsBase.
Definition: ClassTraits.h:134
double delta
The angle describing the phase.
Definition: StandardCKM.h:108
virtual vector< vector< double > > getMatrix(unsigned int nFamilies) const
Return the matrix of squared CKM matrix elements.
BaseClassTraits describes the base classes of the templated class.
Definition: ClassTraits.h:156
StandardCKM & operator=(const StandardCKM &)=delete
Private and non-existent assignment operator.
The templated ClassTraitsBase class defines a set of default information about classes used by ThePEG...
Definition: ClassTraits.h:52