|
|
|||
File indexing completed on 2026-08-06 09:38:31
0001 // -*- C++ -*- 0002 // 0003 // StandardCKM.h is a part of ThePEG - Toolkit for HEP Event Generation 0004 // Copyright (C) 1999-2019 Leif Lonnblad 0005 // 0006 // ThePEG is licenced under version 3 of the GPL, see COPYING for details. 0007 // Please respect the MCnet academic guidelines, see GUIDELINES for details. 0008 // 0009 #ifndef ThePEG_StandardCKM_H 0010 #define ThePEG_StandardCKM_H 0011 // This is the declaration of the StandardCKM class. 0012 0013 #include "CKMBase.h" 0014 0015 namespace ThePEG { 0016 0017 /** 0018 * StandardCKM inherits from CKMBase and implements the standard 0019 * parameterization of the CKM matrix in terms of three angles and a 0020 * phase. 0021 * 0022 * @see \ref StandardCKMInterfaces "The interfaces" 0023 * defined for StandardCKM. 0024 */ 0025 class StandardCKM: public CKMBase { 0026 0027 public: 0028 0029 /** @name Standard constructors and destructors. */ 0030 //@{ 0031 /** 0032 * Default constructor. 0033 */ 0034 StandardCKM() : theta12(0.222357), theta13(0.0003150), 0035 theta23(0.039009), delta(1.35819) {} 0036 //@} 0037 0038 public: 0039 0040 /** 0041 * Return the matrix of squared CKM matrix elements. The returned 0042 * matrix should be for \a nf families. 0043 */ 0044 virtual vector< vector<double> > getMatrix(unsigned int nFamilies) const; 0045 0046 public: 0047 0048 0049 /** @name Functions used by the persistent I/O system. */ 0050 //@{ 0051 /** 0052 * Function used to write out object persistently. 0053 * @param os the persistent output stream written to. 0054 */ 0055 void persistentOutput(PersistentOStream & os) const; 0056 0057 /** 0058 * Function used to read in object persistently. 0059 * @param is the persistent input stream read from. 0060 * @param version the version number of the object when written. 0061 */ 0062 void persistentInput(PersistentIStream & is, int version); 0063 //@} 0064 0065 /** 0066 * Standard Init function used to initialize the interface. 0067 */ 0068 static void Init(); 0069 0070 protected: 0071 0072 /** @name Clone Methods. */ 0073 //@{ 0074 /** 0075 * Make a simple clone of this object. 0076 * @return a pointer to the new object. 0077 */ 0078 virtual IBPtr clone() const; 0079 0080 /** Make a clone of this object, possibly modifying the cloned object 0081 * to make it sane. 0082 * @return a pointer to the new object. 0083 */ 0084 virtual IBPtr fullclone() const; 0085 //@} 0086 0087 0088 private: 0089 0090 /** 0091 * The \f$\theta_{12}\f$ angle. 0092 */ 0093 double theta12; 0094 0095 /** 0096 * The \f$\theta_{13}\f$ angle. 0097 */ 0098 double theta13; 0099 0100 /** 0101 * The \f$\theta_{23}\f$ angle. 0102 */ 0103 double theta23; 0104 0105 /** 0106 * The \f$\delta\f$ angle describing the phase. 0107 */ 0108 double delta; 0109 0110 private: 0111 0112 /** 0113 * Describe a concrete class with persistent data. 0114 */ 0115 static ClassDescription<StandardCKM> initStandardCKM; 0116 0117 /** 0118 * Private and non-existent assignment operator. 0119 */ 0120 StandardCKM & operator=(const StandardCKM &) = delete; 0121 0122 }; 0123 0124 /** @cond TRAITSPECIALIZATIONS */ 0125 0126 /** This template specialization informs ThePEG about the base classes 0127 * of StandardCKM. */ 0128 template <> 0129 struct BaseClassTrait<StandardCKM,1>: public ClassTraitsType { 0130 /** Typedef of the first base class of StandardCKM. */ 0131 typedef CKMBase NthBase; 0132 }; 0133 0134 /** This template specialization informs ThePEG about the name of the 0135 * StandardCKM class and the shared object where it is 0136 * defined. */ 0137 template <> 0138 struct ClassTraits<StandardCKM>: public ClassTraitsBase<StandardCKM> { 0139 /** Return a platform-independent class name */ 0140 static string className() { return "ThePEG::StandardCKM"; } 0141 /** Return the name of the shared library be loaded to get access to 0142 * the StandardCKM class and every other class it uses 0143 * (except the base class). */ 0144 static string library() { return "StandardCKM.so"; } 0145 }; 0146 0147 /** @endcond */ 0148 0149 } 0150 0151 #endif /* ThePEG_StandardCKM_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|