|
|
|||
File indexing completed on 2026-08-06 09:24:16
0001 // -*- C++ -*- 0002 #ifndef THEPEG_FourBodyDecayConstructor_H 0003 #define THEPEG_FourBodyDecayConstructor_H 0004 // 0005 // This is the declaration of the FourBodyDecayConstructor class. 0006 // 0007 0008 #include "NBodyDecayConstructorBase.h" 0009 #include "ThePEG/Helicity/Vertex/VertexBase.h" 0010 #include "Herwig/Decay/General/GeneralFourBodyDecayer.fh" 0011 #include "PrototypeVertex.h" 0012 0013 namespace Herwig { 0014 0015 using namespace ThePEG; 0016 using Helicity::VertexBasePtr; 0017 0018 /** 0019 * Here is the documentation of the FourBodyDecayConstructor class. 0020 * 0021 * @see \ref FourBodyDecayConstructorInterfaces "The interfaces" 0022 * defined for FourBodyDecayConstructor. 0023 */ 0024 class FourBodyDecayConstructor: public NBodyDecayConstructorBase { 0025 0026 public: 0027 0028 /** 0029 * The default constructor. 0030 */ 0031 FourBodyDecayConstructor() : 0032 interOpt_(0), widthOpt_(1), particleType_(false) {} 0033 0034 /** 0035 * Function used to determine allowed decaymodes, to be implemented 0036 * in derived class. 0037 * @param particles vector of ParticleData pointers containing 0038 * particles in model 0039 */ 0040 virtual void DecayList(const set<PDPtr,MassOrdering> & particles); 0041 0042 /** 0043 * Number of outgoing lines. Required for correct ordering. 0044 */ 0045 virtual unsigned int numBodies() const {return 4;} 0046 0047 /** 0048 * Create a decay mode 0049 */ 0050 void createDecayMode(vector<NBDiagram> &,bool,double); 0051 0052 /** 0053 * Create the decayer 0054 * @param diagrams The diagrams for the decay 0055 * @param inter Option for intermediates 0056 */ 0057 GeneralFourBodyDecayerPtr createDecayer(vector<NBDiagram> & diagrams, 0058 bool inter, double symfac) const; 0059 0060 /** 0061 * Contruct the classname and object name for the Decayer 0062 * @param incoming The incoming particle 0063 * @param outgoing The decay products 0064 * @param objname a string containing the default path of the Decayer object 0065 */ 0066 string DecayerClassName(tcPDPtr incoming, const OrderedParticles & outgoing, 0067 string & objname) const; 0068 0069 public: 0070 0071 /** @name Functions used by the persistent I/O system. */ 0072 //@{ 0073 /** 0074 * Function used to write out object persistently. 0075 * @param os the persistent output stream written to. 0076 */ 0077 void persistentOutput(PersistentOStream & os) const; 0078 0079 /** 0080 * Function used to read in object persistently. 0081 * @param is the persistent input stream read from. 0082 * @param version the version number of the object when written. 0083 */ 0084 void persistentInput(PersistentIStream & is, int version); 0085 //@} 0086 0087 /** 0088 * The standard Init function used to initialize the interfaces. 0089 * Called exactly once for each class by the class description system 0090 * before the main function starts or 0091 * when this class is dynamically loaded. 0092 */ 0093 static void Init(); 0094 0095 protected: 0096 0097 /** @name Clone Methods. */ 0098 //@{ 0099 /** 0100 * Make a simple clone of this object. 0101 * @return a pointer to the new object. 0102 */ 0103 virtual IBPtr clone() const; 0104 0105 /** Make a clone of this object, possibly modifying the cloned object 0106 * to make it sane. 0107 * @return a pointer to the new object. 0108 */ 0109 virtual IBPtr fullclone() const; 0110 //@} 0111 0112 private: 0113 0114 /** 0115 * The assignment operator is private and must never be called. 0116 * In fact, it should not even be implemented. 0117 */ 0118 FourBodyDecayConstructor & operator=(const FourBodyDecayConstructor &) = delete; 0119 0120 private: 0121 0122 /** 0123 * Option for the inclusion of intermediates 0124 */ 0125 unsigned int interOpt_; 0126 0127 /** 0128 * How to treat the widths of the intermediate particles 0129 */ 0130 unsigned int widthOpt_; 0131 0132 /** 0133 * Particles to override the default list 0134 */ 0135 vector<PDPtr> particles_; 0136 0137 /** 0138 * Types of particles 0139 */ 0140 bool particleType_; 0141 }; 0142 0143 } 0144 0145 #endif /* THEPEG_FourBodyDecayConstructor_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|