|
|
|||
File indexing completed on 2026-08-06 09:24:16
0001 // -*- C++ -*- 0002 #ifndef Herwig_MEDM2Mesons_H 0003 #define Herwig_MEDM2Mesons_H 0004 // 0005 // This is the declaration of the MEDM2Mesons class. 0006 // 0007 0008 #include "Herwig/MatrixElement/MEMultiChannel.h" 0009 #include "Herwig/Decay/WeakCurrents/WeakCurrent.h" 0010 #include "Herwig/MatrixElement/ProductionMatrixElement.h" 0011 0012 namespace Herwig { 0013 0014 using namespace ThePEG; 0015 0016 /** 0017 * The MEDM2Mesons class implements dark matter annhilation via a vector current to 0018 * mesons at low energies 0019 * 0020 * @see \ref MEDM2MesonsInterfaces "The interfaces" 0021 * defined for MEDM2Mesons. 0022 */ 0023 class MEDM2Mesons: public MEMultiChannel { 0024 0025 public: 0026 0027 /** 0028 * The default constructor. 0029 */ 0030 MEDM2Mesons(); 0031 0032 public: 0033 0034 /** @name Virtual functions required by the MEBase class. */ 0035 //@{ 0036 /** 0037 * Return the order in \f$\alpha_S\f$ in which this matrix 0038 * element is given. 0039 */ 0040 virtual unsigned int orderInAlphaS() const; 0041 0042 /** 0043 * Return the order in \f$\alpha_{EW}\f$ in which this matrix 0044 * element is given. 0045 */ 0046 virtual unsigned int orderInAlphaEW() const; 0047 0048 /** 0049 * Return the scale associated with the last set phase space point. 0050 */ 0051 virtual Energy2 scale() const; 0052 //@} 0053 0054 /** 0055 * Construct the vertex of spin correlations. 0056 */ 0057 virtual void constructVertex(tSubProPtr); 0058 0059 public: 0060 0061 /** @name Functions used by the persistent I/O system. */ 0062 //@{ 0063 /** 0064 * Function used to write out object persistently. 0065 * @param os the persistent output stream written to. 0066 */ 0067 void persistentOutput(PersistentOStream & os) const; 0068 0069 /** 0070 * Function used to read in object persistently. 0071 * @param is the persistent input stream read from. 0072 * @param version the version number of the object when written. 0073 */ 0074 void persistentInput(PersistentIStream & is, int version); 0075 //@} 0076 0077 /** 0078 * The standard Init function used to initialize the interfaces. 0079 * Called exactly once for each class by the class description system 0080 * before the main function starts or 0081 * when this class is dynamically loaded. 0082 */ 0083 static void Init(); 0084 0085 protected: 0086 0087 /** 0088 * Return the matrix element squared for a given mode and phase-space channel. 0089 * @param ichan The channel we are calculating the matrix element for. 0090 */ 0091 virtual double me2(const int ichan) const; 0092 0093 protected: 0094 0095 /** @name Clone Methods. */ 0096 //@{ 0097 /** 0098 * Make a simple clone of this object. 0099 * @return a pointer to the new object. 0100 */ 0101 virtual IBPtr clone() const; 0102 0103 /** Make a clone of this object, possibly modifying the cloned object 0104 * to make it sane. 0105 * @return a pointer to the new object. 0106 */ 0107 virtual IBPtr fullclone() const; 0108 //@} 0109 0110 private: 0111 0112 /** 0113 * Initialize this object after the setup phase before saving an 0114 * EventGenerator to disk. 0115 * @throws InitException if object could not be initialized properly. 0116 */ 0117 virtual void doinit(); 0118 0119 private: 0120 0121 /** 0122 * The assignment operator is private and must never be called. 0123 * In fact, it should not even be implemented. 0124 */ 0125 MEDM2Mesons & operator=(const MEDM2Mesons &) = delete; 0126 0127 private : 0128 0129 /** 0130 * Hadronic current etc 0131 */ 0132 //@{ 0133 /** 0134 * the hadronic current 0135 */ 0136 WeakCurrentPtr current_; 0137 0138 /** 0139 * The matrix element 0140 */ 0141 mutable ProductionMatrixElement me_; 0142 0143 /** 0144 * Map for the modes 0145 */ 0146 map<int,int> modeMap_; 0147 //@} 0148 0149 /** 0150 * DM 0151 */ 0152 //@{ 0153 /** 0154 * Incoming Particles 0155 */ 0156 PDPtr incomingA_, incomingB_; 0157 //@} 0158 0159 /** 0160 * DM coupling to the dark mediator 0161 */ 0162 Complex cDMmed_; 0163 0164 /** 0165 * SM couplings to the dark mediator 0166 */ 0167 vector<Complex> cSMmed_; 0168 0169 /** 0170 * DM vector mediator 0171 */ 0172 PDPtr Mediator_; 0173 }; 0174 0175 } 0176 0177 #endif /* Herwig_MEDM2Mesons_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|