|
|
|||
File indexing completed on 2026-08-06 09:23:58
0001 // -*- C++ -*- 0002 #ifndef HERIWG_KornerKramerCharmDecayer_H 0003 #define HERIWG_KornerKramerCharmDecayer_H 0004 // 0005 // This is the declaration of the KornerKramerCharmDecayer class. 0006 // 0007 #include "Baryon1MesonDecayerBase.h" 0008 #include "ThePEG/StandardModel/StandardModelBase.h" 0009 0010 namespace Herwig { 0011 using namespace ThePEG; 0012 0013 /** \ingroup Decay 0014 * 0015 * The <code>KornerKramerCharmDecayer</code> class implements the model of 0016 * Z.Phys.C55,659 (1992) for the non-leptonic decay of charm baryons. 0017 * The couplings of the model are calculated at initialisation and stored. These 0018 * couplings are then returned when requested using the coupling members of the 0019 * base class. 0020 * 0021 * @see Baryon1MesonDecayerBase. 0022 * 0023 */ 0024 class KornerKramerCharmDecayer: public Baryon1MesonDecayerBase { 0025 0026 public: 0027 0028 /** 0029 * Default constructor. 0030 */ 0031 KornerKramerCharmDecayer(); 0032 0033 /** 0034 * Which of the possible decays is required 0035 * @param cc Is this mode the charge conjugate 0036 * @param parent The decaying particle 0037 * @param children The decay products 0038 */ 0039 virtual int modeNumber(bool & cc, tcPDPtr parent, 0040 const tPDVector & children) const; 0041 0042 /** 0043 * Output the setup information for the particle database 0044 * @param os The stream to output the information to 0045 * @param header Whether or not to output the information for MySQL 0046 */ 0047 virtual void dataBaseOutput(ofstream & os,bool header) const; 0048 0049 protected: 0050 0051 /** 0052 * Coupling Members. 0053 */ 0054 //@{ 0055 /** 0056 * Couplings for spin-\f$\frac12\f$ to spin-\f$\frac12\f$ and a scalar. 0057 * @param imode The mode 0058 * @param m0 The mass of the decaying particle. 0059 * @param m1 The mass of the outgoing baryon. 0060 * @param m2 The mass of the outgoing meson. 0061 * @param A The coupling \f$A\f$ described above. 0062 * @param B The coupling \f$B\f$ described above. 0063 */ 0064 virtual void halfHalfScalarCoupling(int imode,Energy m0,Energy m1,Energy m2, 0065 Complex& A,Complex& B) const; 0066 0067 /** 0068 * Couplings for spin-\f$\frac12\f$ to spin-\f$\frac12\f$ and a vector. 0069 * @param imode The mode 0070 * @param m0 The mass of the decaying particle. 0071 * @param m1 The mass of the outgoing baryon. 0072 * @param m2 The mass of the outgoing meson. 0073 * @param A1 The coupling \f$A_1\f$ described above. 0074 * @param A2 The coupling \f$A_2\f$ described above. 0075 * @param B1 The coupling \f$B_1\f$ described above. 0076 * @param B2 The coupling \f$B_2\f$ described above. 0077 */ 0078 virtual void halfHalfVectorCoupling(int imode,Energy m0,Energy m1,Energy m2, 0079 Complex& A1,Complex& A2, 0080 Complex& B1,Complex& B2) const; 0081 0082 /** 0083 * Couplings for spin-\f$\frac12\f$ to spin-\f$\frac32\f$ and a scalar. 0084 * @param imode The mode 0085 * @param m0 The mass of the decaying particle. 0086 * @param m1 The mass of the outgoing baryon. 0087 * @param m2 The mass of the outgoing meson. 0088 * @param A The coupling \f$A\f$ described above. 0089 * @param B The coupling \f$B\f$ described above. 0090 */ 0091 virtual void halfThreeHalfScalarCoupling(int imode,Energy m0,Energy m1,Energy m2, 0092 Complex& A,Complex& B) const; 0093 0094 /** 0095 * Couplings for spin-\f$\frac12\f$ to spin-\f$\frac32\f$ and a vector. 0096 * @param imode The mode 0097 * @param m0 The mass of the decaying particle. 0098 * @param m1 The mass of the outgoing baryon. 0099 * @param m2 The mass of the outgoing meson. 0100 * @param A1 The coupling \f$A_1\f$ described above. 0101 * @param A2 The coupling \f$A_2\f$ described above. 0102 * @param A3 The coupling \f$A_3\f$ described above. 0103 * @param B1 The coupling \f$B_1\f$ described above. 0104 * @param B2 The coupling \f$B_2\f$ described above. 0105 * @param B3 The coupling \f$B_3\f$ described above. 0106 */ 0107 virtual void halfThreeHalfVectorCoupling(int imode,Energy m0,Energy m1,Energy m2, 0108 Complex& A1,Complex& A2,Complex& A3, 0109 Complex& B1,Complex& B2,Complex& B3) const; 0110 //@} 0111 0112 public: 0113 0114 /** @name Functions used by the persistent I/O system. */ 0115 //@{ 0116 /** 0117 * Function used to write out object persistently. 0118 * @param os the persistent output stream written to. 0119 */ 0120 void persistentOutput(PersistentOStream & os) const; 0121 0122 /** 0123 * Function used to read in object persistently. 0124 * @param is the persistent input stream read from. 0125 * @param version the version number of the object when written. 0126 */ 0127 void persistentInput(PersistentIStream & is, int version); 0128 //@} 0129 0130 /** 0131 * Standard Init function used to initialize the interfaces. 0132 */ 0133 static void Init(); 0134 0135 protected: 0136 0137 /** @name Clone Methods. */ 0138 //@{ 0139 /** 0140 * Make a simple clone of this object. 0141 * @return a pointer to the new object. 0142 */ 0143 virtual IBPtr clone() const {return new_ptr(*this);} 0144 0145 /** Make a clone of this object, possibly modifying the cloned object 0146 * to make it sane. 0147 * @return a pointer to the new object. 0148 */ 0149 virtual IBPtr fullclone() const {return new_ptr(*this);} 0150 //@} 0151 0152 protected: 0153 0154 /** @name Standard Interfaced functions. */ 0155 //@{ 0156 /** 0157 * Initialize this object after the setup phase before saving and 0158 * EventGenerator to disk. 0159 * @throws InitException if object could not be initialized properly. 0160 */ 0161 virtual void doinit(); 0162 0163 /** 0164 * Initialize this object to the begining of the run phase. 0165 */ 0166 virtual void doinitrun(); 0167 //@} 0168 0169 private: 0170 0171 /** 0172 * Private and non-existent assignment operator. 0173 */ 0174 KornerKramerCharmDecayer & operator=(const KornerKramerCharmDecayer &) = delete; 0175 0176 private: 0177 0178 /** 0179 * one over the number of colours 0180 */ 0181 double oneNC_; 0182 0183 /** 0184 * Pion decay constant, \f$f_\pi\f$. 0185 */ 0186 Energy fpi_; 0187 0188 /** 0189 * Kaon decay constant, \f$f_K\f$. 0190 */ 0191 Energy fk_; 0192 0193 /** 0194 * \f$\rho\f$ decay constant, \f$f_\rho\f$. 0195 */ 0196 double frho_; 0197 0198 /** 0199 * \f$K^*\f$ decay constans, \f$f_{K^*}\f$. 0200 */ 0201 double fKstar_; 0202 0203 /** 0204 * Axial-Vector mass for the form factor for the factorizing diagrams 0205 * for the \f$c\to d\f$ transition. 0206 */ 0207 Energy mdcplus_; 0208 0209 /** 0210 * Vector mass for the form factor for the factorizing diagrams 0211 * for the \f$c\to d\f$ transition. 0212 */ 0213 Energy mdcminus_; 0214 0215 /** 0216 * Axial-Vector mass for the form factor for the factorizing diagrams 0217 * for the \f$c\to s\f$ transition. 0218 */ 0219 Energy mscplus_; 0220 0221 /** 0222 * Vector mass for the form factor for the factorizing diagrams 0223 * for the \f$c\to s\f$ transition. 0224 */ 0225 Energy mscminus_; 0226 0227 /** 0228 * Perturbative factor, \f$c_+\f$. 0229 */ 0230 double cplus_; 0231 0232 /** 0233 * Perturbative factor, \f$c_-\f$. 0234 */ 0235 double cminus_; 0236 0237 /** 0238 * \f$H_2\f$ factor for the non-factorizing diagrams. 0239 */ 0240 Energy H2_; 0241 0242 /** 0243 * \f$H_3\f$ factor for the non-factorizing diagrams. 0244 */ 0245 Energy H3_; 0246 0247 /** 0248 * SU(4) invariants for the various modes 0249 */ 0250 //@{ 0251 /** 0252 * The \f$I_1\f$ invariant 0253 */ 0254 vector<double> I1_; 0255 0256 /** 0257 * The \f$I_2\f$ invariant 0258 */ 0259 vector<double> I2_; 0260 0261 /** 0262 * The \f$I_3\f$ invariant 0263 */ 0264 vector<double> I3_; 0265 0266 /** 0267 * The \f$I_4\f$ invariant 0268 */ 0269 vector<double> I4_; 0270 0271 /** 0272 * The \f$I_5\f$ invariant 0273 */ 0274 vector<double> I5_; 0275 0276 /** 0277 * The \f$\hat{I}_3\f$ invariant 0278 */ 0279 vector<double> Ihat3_; 0280 0281 /** 0282 * The \f$\hat{I}_4\f$ invariant 0283 */ 0284 vector<double> Ihat4_; 0285 //@} 0286 0287 /** 0288 * The PDG code for the incoming baryon. 0289 */ 0290 vector<int> incoming_; 0291 0292 /** 0293 * The PDG code for the outgoing baryon. 0294 */ 0295 vector<int> outgoingB_; 0296 0297 /** 0298 * The PDG code for the outgoing meson. 0299 */ 0300 vector<int> outgoingM_; 0301 0302 /** 0303 * The maximum weight. 0304 */ 0305 vector<double> maxweight_; 0306 0307 /** 0308 * The couplings for the different modes. 0309 */ 0310 //@{ 0311 /** 0312 * The first A coupling 0313 */ 0314 vector<double> A1_; 0315 0316 /** 0317 * The second A coupling 0318 */ 0319 vector<InvEnergy> A2_; 0320 0321 /** 0322 * The third A coupling 0323 */ 0324 vector<InvEnergy2> A3_; 0325 /** 0326 * The first B coupling 0327 */ 0328 vector<double> B1_; 0329 /** 0330 * The second B coupling 0331 */ 0332 vector<InvEnergy> B2_; 0333 /** 0334 * The third B coupling 0335 */ 0336 vector<InvEnergy2> B3_; 0337 //@} 0338 0339 /** 0340 * Initial size of the vectors 0341 */ 0342 unsigned int initsize_; 0343 0344 }; 0345 0346 } 0347 0348 0349 #endif /* HERIWG_KornerKramerCharmDecayer_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|