|
|
|||
File indexing completed on 2026-08-06 09:24:18
0001 // -*- C++ -*- 0002 // 0003 // StandardCKM.h is a part of Herwig - A multi-purpose Monte Carlo event generator 0004 // Copyright (C) 2002-2019 The Herwig Collaboration 0005 // 0006 // Herwig 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 HERWIG_StandardCKM_H 0010 #define HERWIG_StandardCKM_H 0011 // 0012 // This is the declaration of the StandardCKM class. 0013 // 0014 #include <ThePEG/Config/Complex.h> 0015 #include <ThePEG/StandardModel/CKMBase.h> 0016 // #include "StandardCKM.fh" 0017 // #include "StandardCKM.xh" 0018 0019 namespace Herwig { 0020 0021 using namespace ThePEG; 0022 0023 /** \ingroup Models 0024 * 0025 * StandardCKM inherits from CKMBase and implements the standard 0026 * parameterization of the CKM matrix in terms of three angles and 0027 * a phase. It provides access to the unsquared matrix from helicity 0028 * amplitude calculations. 0029 * 0030 * @see CKMBase 0031 */ 0032 class StandardCKM: public CKMBase { 0033 0034 public: 0035 0036 /** 0037 * Default constructor. 0038 */ 0039 StandardCKM() : theta12(0.2262), theta13(0.0037), theta23(0.0413), delta(1.05) 0040 {} 0041 0042 /** 0043 * Return the matrix of squared CKM matrix elements. The returned 0044 * matrix should be for \a nf families. 0045 */ 0046 virtual vector< vector<double> > getMatrix(unsigned int nf) const; 0047 0048 /** 0049 * Return the matrix of CKM matrix elements. The returned 0050 * matrix should be for \a nf families. 0051 */ 0052 virtual vector< vector<Complex> > getUnsquaredMatrix(unsigned int nf) const; 0053 0054 public: 0055 0056 /** @name Functions used by the persistent I/O system. */ 0057 //@{ 0058 /** 0059 * Function used to write out object persistently. 0060 * @param os the persistent output stream written to. 0061 */ 0062 void persistentOutput(PersistentOStream & os) const; 0063 0064 /** 0065 * Function used to read in object persistently. 0066 * @param is the persistent input stream read from. 0067 * @param version the version number of the object when written. 0068 */ 0069 void persistentInput(PersistentIStream & is, int version); 0070 //@} 0071 0072 /** 0073 * Standard Init function used to initialize the interfaces. 0074 */ 0075 static void Init(); 0076 0077 protected: 0078 0079 /** @name Clone Methods. */ 0080 //@{ 0081 /** 0082 * Make a simple clone of this object. 0083 * @return a pointer to the new object. 0084 */ 0085 virtual IBPtr clone() const; 0086 0087 /** Make a clone of this object, possibly modifying the cloned object 0088 * to make it sane. 0089 * @return a pointer to the new object. 0090 */ 0091 virtual IBPtr fullclone() const; 0092 //@} 0093 0094 private: 0095 0096 /** 0097 * The \f$\theta_{12}\f$ angle. 0098 */ 0099 double theta12; 0100 0101 /** 0102 * The \f$\theta_{13}\f$ angle. 0103 */ 0104 double theta13; 0105 0106 /** 0107 * The \f$\theta_{23}\f$ angle. 0108 */ 0109 double theta23; 0110 0111 /** 0112 * The \f$\delta\f$ angle describing the phase. 0113 */ 0114 double delta; 0115 0116 private: 0117 0118 /** 0119 * Private and non-existent assignment operator. 0120 */ 0121 StandardCKM & operator=(const StandardCKM &) = delete; 0122 0123 }; 0124 0125 } 0126 0127 #endif /* HERWIG_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 |
|