|
|
|||
File indexing completed on 2026-08-06 09:24:09
0001 // -*- C++ -*- 0002 #ifndef Herwig_MEee2Mesons_H 0003 #define Herwig_MEee2Mesons_H 0004 // 0005 // This is the declaration of the MEee2Mesons 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 MEee2Mesons class implements \f$e^+e^-\f$ annhilation to mesons at low energy 0018 * using hadronic currents. 0019 * 0020 * @see \ref MEee2MesonsInterfaces "The interfaces" 0021 * defined for MEee2Mesons. 0022 */ 0023 class MEee2Mesons: public MEMultiChannel { 0024 0025 public: 0026 0027 /** 0028 * The default constructor. 0029 */ 0030 MEee2Mesons(); 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 0060 public: 0061 0062 /** @name Functions used by the persistent I/O system. */ 0063 //@{ 0064 /** 0065 * Function used to write out object persistently. 0066 * @param os the persistent output stream written to. 0067 */ 0068 void persistentOutput(PersistentOStream & os) const; 0069 0070 /** 0071 * Function used to read in object persistently. 0072 * @param is the persistent input stream read from. 0073 * @param version the version number of the object when written. 0074 */ 0075 void persistentInput(PersistentIStream & is, int version); 0076 //@} 0077 0078 /** 0079 * The standard Init function used to initialize the interfaces. 0080 * Called exactly once for each class by the class description system 0081 * before the main function starts or 0082 * when this class is dynamically loaded. 0083 */ 0084 static void Init(); 0085 0086 0087 protected: 0088 0089 /** 0090 * Return the matrix element squared for a given mode and phase-space channel. 0091 * @param ichan The channel we are calculating the matrix element for. 0092 */ 0093 virtual double me2(const int ichan) const; 0094 0095 /** 0096 * Return the matrix element squared for a given mode and phase-space channel, 0097 * with the helicities amplitudes 0098 * @param ichan The channel we are calculating the matrix element for. 0099 */ 0100 virtual double helicityME(const int ichan, const cPDVector & particles, 0101 const vector<Lorentz5Momentum> & momenta) const; 0102 0103 protected: 0104 0105 /** @name Clone Methods. */ 0106 //@{ 0107 /** 0108 * Make a simple clone of this object. 0109 * @return a pointer to the new object. 0110 */ 0111 virtual IBPtr clone() const; 0112 0113 /** Make a clone of this object, possibly modifying the cloned object 0114 * to make it sane. 0115 * @return a pointer to the new object. 0116 */ 0117 virtual IBPtr fullclone() const; 0118 //@} 0119 0120 protected: 0121 0122 /** @name Standard Interfaced functions. */ 0123 //@{ 0124 /** 0125 * Initialize this object after the setup phase before saving an 0126 * EventGenerator to disk. 0127 * @throws InitException if object could not be initialized properly. 0128 */ 0129 virtual void doinit(); 0130 0131 /** 0132 * Initialize this object. Called in the run phase just before 0133 * a run begins. 0134 */ 0135 virtual void doinitrun(); 0136 //@} 0137 0138 /** 0139 * Set up the flavours allowed in the current 0140 */ 0141 void setFlavour(); 0142 0143 private: 0144 0145 /** 0146 * The assignment operator is private and must never be called. 0147 * In fact, it should not even be implemented. 0148 */ 0149 MEee2Mesons & operator=(const MEee2Mesons &) = delete; 0150 0151 private : 0152 0153 /** 0154 * Option for the flavour of the particles in the current 0155 */ 0156 unsigned int flavOpt_; 0157 0158 /** 0159 * the hadronic current 0160 */ 0161 WeakCurrentPtr current_; 0162 0163 /** 0164 * The matrix element 0165 */ 0166 mutable ProductionMatrixElement me_; 0167 0168 /** 0169 * Map for the modes 0170 */ 0171 map<int,int> modeMap_; 0172 0173 /** 0174 * The flavour of the hadronic system 0175 */ 0176 FlavourInfo flavour_; 0177 }; 0178 0179 } 0180 0181 #endif /* Herwig_MEee2Mesons_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|