herwig is hosted by Hepforge, IPPP Durham
Herwig++  2.7.0
SMTopPOWHEGDecayer.h
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 */