|
|
|||
File indexing completed on 2026-08-06 09:24:17
0001 // -*- C++ -*- 0002 #ifndef Herwig_VectorCurrentDecayConstructor_H 0003 #define Herwig_VectorCurrentDecayConstructor_H 0004 // 0005 // This is the declaration of the VectorCurrentDecayConstructor class. 0006 // 0007 0008 #include "NBodyDecayConstructorBase.h" 0009 #include "Herwig/Decay/WeakCurrents/WeakCurrent.h" 0010 0011 namespace Herwig { 0012 0013 using namespace ThePEG; 0014 0015 /** 0016 * The VectorCurrentDecayConstructor class constructs the decay of low mass vector bosons via the weak currents. 0017 * 0018 * @see \ref VectorCurrentDecayConstructorInterfaces "The interfaces" 0019 * defined for VectorCurrentDecayConstructor. 0020 */ 0021 class VectorCurrentDecayConstructor: public NBodyDecayConstructorBase { 0022 0023 public: 0024 0025 /** 0026 * The default constructor. 0027 */ 0028 VectorCurrentDecayConstructor() : massCut_(2.*GeV) 0029 {} 0030 0031 /** 0032 * Function used to determine allowed decaymodes, to be implemented 0033 * in derived class. 0034 *@param part vector of ParticleData pointers containing particles in model 0035 */ 0036 virtual void DecayList(const set<PDPtr,MassOrdering> & part); 0037 0038 /** 0039 * Number of outgoing lines. Required for correct ordering (do this one next-to-last) 0040 */ 0041 virtual unsigned int numBodies() const { return 999; } 0042 0043 /** 0044 * Cut off 0045 */ 0046 Energy massCut() const { return massCut_;} 0047 0048 public: 0049 0050 /** @name Functions used by the persistent I/O system. */ 0051 //@{ 0052 /** 0053 * Function used to write out object persistently. 0054 * @param os the persistent output stream written to. 0055 */ 0056 void persistentOutput(PersistentOStream & os) const; 0057 0058 /** 0059 * Function used to read in object persistently. 0060 * @param is the persistent input stream read from. 0061 * @param version the version number of the object when written. 0062 */ 0063 void persistentInput(PersistentIStream & is, int version); 0064 //@} 0065 0066 /** 0067 * The standard Init function used to initialize the interfaces. 0068 * Called exactly once for each class by the class description system 0069 * before the main function starts or 0070 * when this class is dynamically loaded. 0071 */ 0072 static void Init(); 0073 0074 protected: 0075 0076 /** @name Clone Methods. */ 0077 //@{ 0078 /** 0079 * Make a simple clone of this object. 0080 * @return a pointer to the new object. 0081 */ 0082 virtual IBPtr clone() const; 0083 0084 /** Make a clone of this object, possibly modifying the cloned object 0085 * to make it sane. 0086 * @return a pointer to the new object. 0087 */ 0088 virtual IBPtr fullclone() const; 0089 //@} 0090 0091 protected: 0092 0093 /** @name Standard Interfaced functions. */ 0094 //@{ 0095 /** 0096 * Initialize this object after the setup phase before saving an 0097 * EventGenerator to disk. 0098 * @throws InitException if object could not be initialized properly. 0099 */ 0100 virtual void doinit(); 0101 //@} 0102 0103 private: 0104 0105 /** 0106 * The assignment operator is private and must never be called. 0107 * In fact, it should not even be implemented. 0108 */ 0109 VectorCurrentDecayConstructor & operator=(const VectorCurrentDecayConstructor &) = delete; 0110 0111 private: 0112 0113 /** 0114 * Model Pointer 0115 */ 0116 Ptr<Herwig::StandardModel>::pointer model_; 0117 0118 /** 0119 * Cut-off on the mass difference 0120 */ 0121 Energy massCut_; 0122 0123 /** 0124 * The current for the mode 0125 */ 0126 vector<WeakCurrentPtr> current_; 0127 }; 0128 0129 } 0130 0131 #endif /* Herwig_VectorCurrentDecayConstructor_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|