|
|
|||
File indexing completed on 2026-08-06 09:24:25
0001 // -*- C++ -*- 0002 #ifndef Herwig_FullShowerVeto_H 0003 #define Herwig_FullShowerVeto_H 0004 // 0005 // This is the declaration of the FullShowerVeto class. 0006 // 0007 0008 #include "ThePEG/Interface/Interfaced.h" 0009 #include "FullShowerVeto.fh" 0010 #include "Herwig/Shower/QTilde/Base/ShowerTree.h" 0011 0012 namespace Herwig { 0013 0014 using namespace ThePEG; 0015 0016 /** 0017 * Here is the documentation of the FullShowerVeto class. 0018 * 0019 * @see \ref FullShowerVetoInterfaces "The interfaces" 0020 * defined for FullShowerVeto. 0021 */ 0022 class FullShowerVeto: public Interfaced { 0023 0024 public: 0025 0026 /** 0027 * The default constructor. 0028 */ 0029 FullShowerVeto() : type_(1), behaviour_(0) {} 0030 0031 /** 0032 * Apply the veto 0033 */ 0034 int applyVeto(ShowerTreePtr); 0035 0036 /** 0037 * Which type of processes to consider 0038 */ 0039 unsigned int type() const {return type_;} 0040 0041 /** 0042 * What to do if the event is vetoed 0043 */ 0044 unsigned int behaviour() const {return behaviour_;} 0045 0046 protected: 0047 0048 /** 0049 * Determine whether to not to veto the shower, to be implemented in inheriting classes 0050 */ 0051 virtual bool vetoShower() = 0; 0052 0053 /** 0054 * Incoming particles to the hard process 0055 */ 0056 const vector<tPPtr> & incoming() {return incoming_;} 0057 0058 /** 0059 * Outgoing particles from the hard process 0060 */ 0061 const vector<tPPtr> & outgoing() {return outgoing_;} 0062 0063 /** 0064 * The final-state particles at the end of the shower 0065 */ 0066 const vector<tPPtr> & finalState(); 0067 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 Standard Interfaced functions. */ 0098 //@{ 0099 /** 0100 * Initialize this object after the setup phase before saving an 0101 * EventGenerator to disk. 0102 * @throws InitException if object could not be initialized properly. 0103 */ 0104 virtual void doinit(); 0105 //@} 0106 0107 private: 0108 0109 /** 0110 * The assignment operator is private and must never be called. 0111 * In fact, it should not even be implemented. 0112 */ 0113 FullShowerVeto & operator=(const FullShowerVeto &) = delete; 0114 0115 private: 0116 0117 /** 0118 * Switches 0119 */ 0120 //@{ 0121 /** 0122 * Which type of processes to consider 0123 */ 0124 unsigned int type_; 0125 0126 /** 0127 * What to do if the event is vetoed 0128 */ 0129 unsigned int behaviour_; 0130 //} 0131 0132 /** 0133 * Temporary storage 0134 */ 0135 //@{ 0136 /** 0137 * Incoming to hard process 0138 */ 0139 vector<tPPtr> incoming_; 0140 0141 /** 0142 * Outgoing from the hard process 0143 */ 0144 vector<tPPtr> outgoing_; 0145 0146 /** 0147 * Final State particles 0148 */ 0149 vector<tPPtr> finalState_; 0150 //@} 0151 }; 0152 0153 } 0154 0155 #endif /* Herwig_FullShowerVeto_H */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|