|
|
|||
File indexing completed on 2026-08-06 09:24:16
0001 // -*- C++ -*- 0002 #ifndef Herwig_DMModel_H 0003 #define Herwig_DMModel_H 0004 // 0005 // This is the declaration of the DMModel class. 0006 // 0007 0008 #include "Herwig/Models/General/BSMModel.h" 0009 #include "DMModel.fh" 0010 0011 namespace Herwig { 0012 0013 using namespace ThePEG; 0014 0015 /** 0016 * The DMModel class is designed to implement a simple dark matter mode 0017 * with fermionic dark matter and a vector mediator, as described in arXiv:1911.11147 0018 * 0019 * @see \ref DMModelInterfaces "The interfaces" 0020 * defined for DMModel. 0021 */ 0022 class DMModel: public BSMModel { 0023 0024 public: 0025 0026 /** 0027 * The default constructor. 0028 */ 0029 DMModel(); 0030 0031 public: 0032 0033 /** @name Functions used by the persistent I/O system. */ 0034 //@{ 0035 /** 0036 * Function used to write out object persistently. 0037 * @param os the persistent output stream written to. 0038 */ 0039 void persistentOutput(PersistentOStream & os) const; 0040 0041 /** 0042 * Function used to read in object persistently. 0043 * @param is the persistent input stream read from. 0044 * @param version the version number of the object when written. 0045 */ 0046 void persistentInput(PersistentIStream & is, int version); 0047 //@} 0048 0049 /** 0050 * The standard Init function used to initialize the interfaces. 0051 * Called exactly once for each class by the class description system 0052 * before the main function starts or 0053 * when this class is dynamically loaded. 0054 */ 0055 static void Init(); 0056 0057 public: 0058 0059 /** 0060 * Access to the couplings 0061 */ 0062 //@{ 0063 0064 /** 0065 * DM coupling to the mediator 0066 */ 0067 const double & cDMmed() const {return cDMmed_;} 0068 0069 /** 0070 * The couplings of the quarks to the mediators 0071 */ 0072 const vector<double> & cSMmed() const {return cSMmed_;} 0073 //@} 0074 0075 public: 0076 0077 /** 0078 * Pointers to the objects handling the vertices. 0079 */ 0080 //@{ 0081 /** 0082 * Pointer to the quark-quark mediator vertex 0083 */ 0084 virtual tAbstractFFVVertexPtr vertexQQZp() const { 0085 return QQZpVertex_; 0086 } 0087 0088 /** 0089 * Pointer to the DM-DM mediator vertex 0090 */ 0091 virtual tAbstractFFVVertexPtr vertexDMDMZp() const { 0092 return DMDMZpVertex_; 0093 } 0094 0095 protected: 0096 0097 /** @name Clone Methods. */ 0098 //@{ 0099 /** 0100 * Make a simple clone of this object. 0101 * @return a pointer to the new object. 0102 */ 0103 virtual IBPtr clone() const; 0104 0105 /** Make a clone of this object, possibly modifying the cloned object 0106 * to make it sane. 0107 * @return a pointer to the new object. 0108 */ 0109 virtual IBPtr fullclone() const; 0110 //@} 0111 0112 protected: 0113 0114 /** @name Standard Interfaced functions. */ 0115 //@{ 0116 /** 0117 * Initialize this object after the setup phase before saving an 0118 * EventGenerator to disk. 0119 * @throws InitException if object could not be initialized properly. 0120 */ 0121 virtual void doinit(); 0122 //@} 0123 0124 private: 0125 0126 /** 0127 * The assignment operator is private and must never be called. 0128 * In fact, it should not even be implemented. 0129 */ 0130 DMModel & operator=(const DMModel &) = delete; 0131 0132 private: 0133 0134 /** 0135 * DM coupling to the dark mediator 0136 */ 0137 double cDMmed_; 0138 0139 /** 0140 * SM couplings to the dark mediator 0141 */ 0142 vector<double> cSMmed_; 0143 0144 private: 0145 0146 /** 0147 * Pointer to the quark-quark mediator vertex 0148 */ 0149 AbstractFFVVertexPtr QQZpVertex_; 0150 0151 /** 0152 * Pointer to the DM-DM mediator vertex 0153 */ 0154 AbstractFFVVertexPtr DMDMZpVertex_; 0155 }; 0156 0157 } 0158 0159 #endif /* Herwig_DMModel_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|