|
|
|||
File indexing completed on 2026-08-06 09:38:31
0001 // -*- C++ -*- 0002 // 0003 // CKMBase.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_CKMBase_H 0010 #define ThePEG_CKMBase_H 0011 // This is the declaration of the CKMBase class. 0012 0013 #include "ThePEG/Interface/Interfaced.h" 0014 #include "StandardModelBase.fh" 0015 0016 namespace ThePEG { 0017 0018 /** 0019 * CKMBase is an abstract base classused by the StandardModelBase to 0020 * implement the Cabibbo-Kobayashi-Mascawa mixing matrix. Concrete 0021 * sub-classes must implement the getMatrix(unsigned int) function. 0022 * 0023 * @see \ref CKMBaseInterfaces "The interfaces" 0024 * defined for CKMBase. 0025 * @see StandardModelBase 0026 */ 0027 class CKMBase: public Interfaced { 0028 0029 public: 0030 0031 /** 0032 * Return the matrix of squared CKM matrix elements. The returned 0033 * matrix should be for \a nf families. This function must be 0034 * overridden by sub-classes. 0035 */ 0036 virtual vector< vector<double> > getMatrix(unsigned int nf) const = 0; 0037 0038 public: 0039 0040 /** 0041 * Standard Init function used to initialize the interface. 0042 */ 0043 static void Init(); 0044 0045 private: 0046 0047 /** 0048 * Describe an abstract class without persistent data. 0049 */ 0050 static AbstractNoPIOClassDescription<CKMBase> initCKMBase; 0051 0052 /** 0053 * Private and non-existent assignment operator. 0054 */ 0055 CKMBase & operator=(const CKMBase &) = delete; 0056 0057 }; 0058 0059 /** @cond TRAITSPECIALIZATIONS */ 0060 0061 /** This template specialization informs ThePEG about the base classes 0062 * of CKMBase. */ 0063 template <> 0064 struct BaseClassTrait<CKMBase,1>: public ClassTraitsType { 0065 /** Typedef of the first base class of CKMBase. */ 0066 typedef Interfaced NthBase; 0067 }; 0068 0069 /** This template specialization informs ThePEG about the name of the 0070 * CKMBase class. */ 0071 template <> 0072 struct ClassTraits<CKMBase>: public ClassTraitsBase<CKMBase> { 0073 /** Return a platform-independent class name */ 0074 static string className() { return "ThePEG::CKMBase"; } 0075 }; 0076 0077 /** @endcond */ 0078 0079 } 0080 0081 #endif /* ThePEG_CKMBase_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|