|
|
|||
File indexing completed on 2026-08-06 09:24:04
0001 // -*- C++ -*- 0002 #ifndef Herwig_OmegaPiPiCurrent_H 0003 #define Herwig_OmegaPiPiCurrent_H 0004 // 0005 // This is the declaration of the OmegaPiPiCurrent class. 0006 // 0007 0008 #include "WeakCurrent.h" 0009 0010 namespace Herwig { 0011 0012 using namespace ThePEG; 0013 0014 /** 0015 * Here is the documentation of the OmegaPiPiCurrent class. 0016 * 0017 * @see \ref OmegaPiPiCurrentInterfaces "The interfaces" 0018 * defined for OmegaPiPiCurrent. 0019 */ 0020 class OmegaPiPiCurrent: public WeakCurrent { 0021 0022 public: 0023 0024 /** @name Standard constructors and destructors. */ 0025 //@{ 0026 /** 0027 * The default constructor. 0028 */ 0029 OmegaPiPiCurrent(); 0030 //@} 0031 0032 public: 0033 0034 /** @name Methods for the construction of the phase space integrator. */ 0035 //@{ 0036 /** 0037 * Complete the construction of the decay mode for integration.classes inheriting 0038 * from this one. 0039 * This method is purely virtual and must be implemented in the classes inheriting 0040 * from WeakCurrent. 0041 * @param icharge The total charge of the outgoing particles in the current. 0042 * @param resonance If specified only include terms with this particle 0043 * @param flavour Information on the required flavours of the quarks 0044 * @param imode The mode in the current being asked for. 0045 * @param mode The phase space mode for the integration 0046 * @param iloc The location of the of the first particle from the current in 0047 * the list of outgoing particles. 0048 * @param ires The location of the first intermediate for the current. 0049 * @param phase The prototype phase space channel for the integration. 0050 * @param upp The maximum possible mass the particles in the current are 0051 * allowed to have. 0052 * @return Whether the current was sucessfully constructed. 0053 */ 0054 virtual bool createMode(int icharge, tcPDPtr resonance, 0055 FlavourInfo flavour, 0056 unsigned int imode,PhaseSpaceModePtr mode, 0057 unsigned int iloc,int ires, 0058 PhaseSpaceChannel phase, Energy upp ); 0059 0060 /** 0061 * The particles produced by the current. This just returns the pseudoscalar 0062 * meson. 0063 * @param icharge The total charge of the particles in the current. 0064 * @param imode The mode for which the particles are being requested 0065 * @param iq The PDG code for the quark 0066 * @param ia The PDG code for the antiquark 0067 * @return The external particles for the current. 0068 */ 0069 virtual tPDVector particles(int icharge, unsigned int imode, int iq, int ia); 0070 //@} 0071 0072 /** 0073 * Hadronic current. This method is purely virtual and must be implemented in 0074 * all classes inheriting from this one. 0075 * @param resonance If specified only include terms with this particle 0076 * @param flavour Information on the required flavours of the quarks 0077 * @param imode The mode 0078 * @param ichan The phase-space channel the current is needed for. 0079 * @param scale The invariant mass of the particles in the current. 0080 * @param outgoing The particles produced in the decay 0081 * @param momenta The momenta of the particles produced in the decay 0082 * @param meopt Option for the calculation of the matrix element 0083 * @return The current. 0084 */ 0085 virtual vector<LorentzPolarizationVectorE> 0086 current(tcPDPtr resonance, 0087 FlavourInfo flavour, 0088 const int imode, const int ichan,Energy & scale, 0089 const tPDVector & outgoing, 0090 const vector<Lorentz5Momentum> & momenta, 0091 DecayIntegrator::MEOption meopt) const; 0092 0093 /** 0094 * Construct the SpinInfo for the decay products 0095 */ 0096 virtual void constructSpinInfo(ParticleVector decay) const; 0097 0098 /** 0099 * Accept the decay. Checks the meson against the list 0100 * @param id The id's of the particles in the current. 0101 * @return Can this current have the external particles specified. 0102 */ 0103 virtual bool accept(vector<int> id); 0104 0105 /** 0106 * Return the decay mode number for a given set of particles in the current. 0107 * Checks the meson against the list 0108 * @param id The id's of the particles in the current. 0109 * @return The number of the mode 0110 */ 0111 virtual unsigned int decayMode(vector<int> id); 0112 0113 /** 0114 * Output the setup information for the particle database 0115 * @param os The stream to output the information to 0116 * @param header Whether or not to output the information for MySQL 0117 * @param create Whether or not to add a statement creating the object 0118 */ 0119 virtual void dataBaseOutput(ofstream & os,bool header,bool create) const; 0120 0121 public: 0122 0123 /** @name Functions used by the persistent I/O system. */ 0124 //@{ 0125 /** 0126 * Function used to write out object persistently. 0127 * @param os the persistent output stream written to. 0128 */ 0129 void persistentOutput(PersistentOStream & os) const; 0130 0131 /** 0132 * Function used to read in object persistently. 0133 * @param is the persistent input stream read from. 0134 * @param version the version number of the object when written. 0135 */ 0136 void persistentInput(PersistentIStream & is, int version); 0137 //@} 0138 0139 /** 0140 * The standard Init function used to initialize the interfaces. 0141 * Called exactly once for each class by the class description system 0142 * before the main function starts or 0143 * when this class is dynamically loaded. 0144 */ 0145 static void Init(); 0146 0147 protected: 0148 0149 /** @name Clone Methods. */ 0150 //@{ 0151 /** 0152 * Make a simple clone of this object. 0153 * @return a pointer to the new object. 0154 */ 0155 virtual IBPtr clone() const; 0156 0157 /** Make a clone of this object, possibly modifying the cloned object 0158 * to make it sane. 0159 * @return a pointer to the new object. 0160 */ 0161 virtual IBPtr fullclone() const; 0162 //@} 0163 0164 protected: 0165 0166 /** @name Standard Interfaced functions. */ 0167 //@{ 0168 /** 0169 * Initialize this object after the setup phase before saving an 0170 * EventGenerator to disk. 0171 * @throws InitException if object could not be initialized properly. 0172 */ 0173 virtual void doinit(); 0174 //@} 0175 0176 private: 0177 0178 /** 0179 * The assignment operator is private and must never be called. 0180 * In fact, it should not even be implemented. 0181 */ 0182 OmegaPiPiCurrent & operator=(const OmegaPiPiCurrent &) = delete; 0183 0184 private: 0185 0186 /** 0187 * Parameters for the \f$\omega(1650)\f$ 0188 */ 0189 //@{ 0190 /** 0191 * Mass of the resonance 0192 */ 0193 Energy mRes_; 0194 0195 /** 0196 * Width of the resonance 0197 */ 0198 Energy wRes_; 0199 0200 /** 0201 * Coupling of the resonance 0202 */ 0203 Energy gRes_; 0204 //@} 0205 0206 /** 0207 * Parameters for the \f$f_0\f$ resonances 0208 */ 0209 //@{ 0210 /** 0211 * Mass of the \f$\sigma\f$ 0212 */ 0213 Energy mSigma_; 0214 0215 /** 0216 * Width of the \f$\sigma\f$ 0217 */ 0218 Energy wSigma_; 0219 0220 /** 0221 * Mass of the \f$f_0(980)\f$ 0222 */ 0223 Energy mf0_; 0224 0225 /** 0226 * \f$f_0\f$ coupling to \f$\pi\pi\f$ 0227 */ 0228 Energy2 gPiPi_; 0229 0230 /** 0231 * \f$f_0\f$ coupling to KK 0232 */ 0233 Energy2 gKK_; 0234 0235 /** 0236 * Sigma coupling 0237 */ 0238 Energy2 gSigma_; 0239 0240 /** 0241 * f_0 coupling 0242 */ 0243 Energy2 gf0_; 0244 //@} 0245 }; 0246 0247 } 0248 0249 #endif /* Herwig_OmegaPiPiCurrent_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|