Herwig++
2.7.0
|
00001 // -*- C++ -*- 00002 #ifndef Herwig_SMTopPOWHEGDecayer_H 00003 #define Herwig_SMTopPOWHEGDecayer_H 00004 // 00005 // This is the declaration of the SMTopPOWHEGDecayer class. 00006 // 00007 00008 #include "SMTopDecayer.h" 00009 00010 namespace Herwig { 00011 00012 using namespace ThePEG; 00013 00020 class SMTopPOWHEGDecayer: public SMTopDecayer { 00021 00022 public: 00023 00027 SMTopPOWHEGDecayer(); 00028 00032 virtual POWHEGType hasPOWHEGCorrection() {return FSR;} 00033 00037 virtual HardTreePtr generateHardest(ShowerTreePtr); 00038 00045 void persistentOutput(PersistentOStream & os) const; 00046 00052 void persistentInput(PersistentIStream & is, int version); 00054 00061 static void Init(); 00062 00063 protected: 00064 00071 virtual IBPtr clone() const; 00072 00077 virtual IBPtr fullclone() const; 00079 00080 00081 protected: 00085 bool deadZoneCheck(double xw, double xg); 00086 00087 protected: 00088 00092 double matrixElementRatio(vector<Lorentz5Momentum> particleMomenta); 00093 00094 protected: 00095 00099 bool calcMomenta(int j, Energy pT, double y, double phi, double& xg, 00100 double& xw, double& xb, double& xb_z, 00101 vector<Lorentz5Momentum>& particleMomenta); 00102 00103 protected: 00104 00108 bool psCheck(double xg, double xw); 00109 00110 protected: 00111 00115 vector<Lorentz5Momentum> hardMomenta(); 00116 00117 private: 00118 00123 SMTopPOWHEGDecayer & operator=(const SMTopPOWHEGDecayer &); 00124 00125 private: 00126 00130 Energy mt_; 00131 00135 double w_; 00136 00140 double b_; 00141 00145 double w2_; 00146 00150 double b2_; 00151 00155 Energy pTmin_; 00156 00160 Energy pT_; 00161 00162 }; 00163 00164 } 00165 00166 #endif /* Herwig_SMTopPOWHEGDecayer_H */