|
|
|||
File indexing completed on 2026-08-06 09:24:19
0001 // -*- C++ -*- 0002 #ifndef Herwig_RPVFFSVertex_H 0003 #define Herwig_RPVFFSVertex_H 0004 // 0005 // This is the declaration of the RPVFFSVertex class. 0006 // 0007 0008 #include "ThePEG/Helicity/Vertex/Scalar/FFSVertex.h" 0009 #include "RPV.h" 0010 0011 namespace Herwig { 0012 0013 using namespace ThePEG; 0014 0015 /** 0016 * Here is the documentation of the RPVFFSVertex class. 0017 * 0018 * @see \ref RPVFFSVertexInterfaces "The interfaces" 0019 * defined for RPVFFSVertex. 0020 */ 0021 class RPVFFSVertex: public Helicity::FFSVertex { 0022 0023 public: 0024 0025 /** 0026 * The default constructor. 0027 */ 0028 RPVFFSVertex(); 0029 0030 /** 0031 * Calculate the coupling for the vertex 0032 * @param q2 The scale to at which evaluate the coupling. 0033 * @param particle1 The first particle in the vertex. 0034 * @param particle2 The second particle in the vertex. 0035 * @param particle3 The third particle in the vertex. 0036 */ 0037 virtual void setCoupling(Energy2 q2, tcPDPtr particle1, tcPDPtr particle2, 0038 tcPDPtr particle3); 0039 0040 public: 0041 0042 /** @name Functions used by the persistent I/O system. */ 0043 //@{ 0044 /** 0045 * Function used to write out object persistently. 0046 * @param os the persistent output stream written to. 0047 */ 0048 void persistentOutput(PersistentOStream & os) const; 0049 0050 /** 0051 * Function used to read in object persistently. 0052 * @param is the persistent input stream read from. 0053 * @param version the version number of the object when written. 0054 */ 0055 void persistentInput(PersistentIStream & is, int version); 0056 //@} 0057 0058 /** 0059 * The standard Init function used to initialize the interfaces. 0060 * Called exactly once for each class by the class description system 0061 * before the main function starts or 0062 * when this class is dynamically loaded. 0063 */ 0064 static void Init(); 0065 0066 protected: 0067 0068 /** @name Clone Methods. */ 0069 //@{ 0070 /** 0071 * Make a simple clone of this object. 0072 * @return a pointer to the new object. 0073 */ 0074 virtual IBPtr clone() const; 0075 0076 /** Make a clone of this object, possibly modifying the cloned object 0077 * to make it sane. 0078 * @return a pointer to the new object. 0079 */ 0080 virtual IBPtr fullclone() const; 0081 //@} 0082 0083 protected: 0084 0085 /** @name Standard Interfaced functions. */ 0086 //@{ 0087 /** 0088 * Initialize this object after the setup phase before saving an 0089 * EventGenerator to disk. 0090 * @throws InitException if object could not be initialized properly. 0091 */ 0092 virtual void doinit(); 0093 //@} 0094 0095 protected: 0096 0097 /** 0098 * Neutralino-sfermion-fermion 0099 */ 0100 void neutralinoSfermionCoupling(Energy2 q2, tcPDPtr fermion, tcPDPtr gaugino, 0101 tcPDPtr sfermion); 0102 0103 /** 0104 * Chargino-sfermion-fermion 0105 */ 0106 void charginoSfermionCoupling(Energy2 q2, tcPDPtr fermion, tcPDPtr gaugino, 0107 tcPDPtr sfermion); 0108 0109 /** 0110 * Higgs to SM fermions 0111 */ 0112 void higgsFermionCoupling(Energy2 q2, tcPDPtr f1, tcPDPtr f2, tcPDPtr higgs); 0113 0114 /** 0115 * Higgs to gauginos (general slepton case with mixing) 0116 */ 0117 void higgsGauginoCoupling(Energy2 q2, tcPDPtr f1, tcPDPtr f2, tcPDPtr higgs); 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 RPVFFSVertex & operator=(const RPVFFSVertex &) = delete; 0126 0127 private: 0128 0129 /** 0130 * Which interactions to include 0131 */ 0132 unsigned int interactions_; 0133 0134 /** 0135 * Mixing Matrices 0136 */ 0137 //@{ 0138 /** 0139 * Pointer to stop mixing matrix 0140 */ 0141 tMixingMatrixPtr _stop; 0142 0143 /** 0144 * Pointer to sbottom mixing matrix 0145 */ 0146 tMixingMatrixPtr _sbot; 0147 0148 /** 0149 * Pointer to stau mixing matrix 0150 */ 0151 tMixingMatrixPtr _stau; 0152 0153 /** 0154 * Pointer to U chargino mixing matrix 0155 */ 0156 tMixingMatrixPtr _umix; 0157 0158 /** 0159 * Pointer to V chargino mixing matrix 0160 */ 0161 tMixingMatrixPtr _vmix; 0162 0163 /** 0164 * Pointer to the neutralino mixing matrix 0165 */ 0166 tMixingMatrixPtr _nmix; 0167 0168 /** 0169 * Neutral scalar Higgs mixing matrix 0170 */ 0171 MixingMatrixPtr _mixH; 0172 0173 /** 0174 * Neutral pseudoscalar Higgs mixing matrix 0175 */ 0176 MixingMatrixPtr _mixP; 0177 0178 /** 0179 * Charged Higgs mixing matrix 0180 */ 0181 MixingMatrixPtr _mixC; 0182 //@} 0183 0184 /** 0185 * The mass of the \f$W\f$. 0186 */ 0187 Energy mw_; 0188 0189 /** 0190 * The energy scale at which the coupling 0191 * was last evaluated 0192 */ 0193 Energy2 _q2last; 0194 0195 /** 0196 * The value of the coupling at the scale last evaluated 0197 */ 0198 Complex _couplast; 0199 0200 /** 0201 * Store the value of the left coupling when it was last evaluated 0202 */ 0203 Complex _leftlast; 0204 0205 /** 0206 * Store the value of the right coupling when it was last evaluated 0207 */ 0208 Complex _rightlast; 0209 0210 /** 0211 * Store the id of the last gaugino to be evaluated 0212 */ 0213 long _id1last; 0214 0215 /** 0216 * Store the id of the last SM fermion to be evaluated 0217 */ 0218 long _id2last; 0219 0220 /** 0221 * Store the id of the last scalar to be evaluated 0222 */ 0223 long _id3last; 0224 0225 /** 0226 * Include Yukawa's ? in neutralino/chargino interactions 0227 */ 0228 bool yukawa_; 0229 0230 /** 0231 * Pointer to the Susy Model object 0232 */ 0233 tRPVPtr model_; 0234 0235 /** 0236 * \f$\sin(\theta_w)\f$ 0237 */ 0238 double _sw; 0239 0240 /** 0241 * \f$\cos(\theta_w)\f$ 0242 */ 0243 double _cw; 0244 0245 /** 0246 * \f$\sin(\beta)\f$ 0247 */ 0248 double _sb; 0249 0250 /** 0251 * \f$\cos(\beta)\f$ 0252 */ 0253 double _cb; 0254 0255 /** 0256 * VEV for down type Higgs 0257 */ 0258 Energy vd_; 0259 0260 /** 0261 * VEV for up type Higgs 0262 */ 0263 Energy vu_; 0264 0265 /** 0266 * Values of the masses 0267 */ 0268 pair<Energy,Energy> _massLast; 0269 0270 /** 0271 * OCCHL 0272 */ 0273 vector<vector<vector<Complex> > > OCCHL_; 0274 0275 /** 0276 * ONNHL 0277 */ 0278 vector<vector<vector<Complex> > > ONNHL_; 0279 0280 /** 0281 * OCCAL 0282 */ 0283 vector<vector<vector<Complex> > > OCCAL_; 0284 0285 /** 0286 * ONNAL 0287 */ 0288 vector<vector<vector<Complex> > > ONNAL_; 0289 0290 /** 0291 * OCNSL 0292 */ 0293 vector<vector<vector<Complex> > > OCNSL_; 0294 0295 /** 0296 * OCNSR 0297 */ 0298 vector<vector<vector<Complex> > > OCNSR_; 0299 }; 0300 0301 } 0302 0303 #endif /* Herwig_RPVFFSVertex_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|