File indexing completed on 2025-04-19 09:10:02
0001 #ifndef DIM__Main__MCatNLO_H
0002 #define DIM__Main__MCatNLO_H
0003
0004 #include "PDF/Main/NLOMC_Base.H"
0005
0006 #include "DIM/Main/Gamma.H"
0007 #include "DIM/Shower/Shower.H"
0008 #include "DIM/Tools/Amplitude.H"
0009 #include "ATOOLS/Phys/Blob_List.H"
0010
0011 namespace DIM {
0012
0013 class MCatNLO: public PDF::NLOMC_Base {
0014 private:
0015
0016 Shower *p_mcatnlo;
0017 Gamma *p_gamma;
0018
0019 Amplitude_Vector m_ampls;
0020
0021 ATOOLS::Mass_Selector *p_ms;
0022 ATOOLS::Cluster_Amplitude *p_rampl;
0023
0024 int m_psmode, m_wcheck;
0025 double m_maxweight;
0026
0027 Amplitude *Convert(ATOOLS::Cluster_Amplitude *const campl,
0028 std::map<ATOOLS::Cluster_Leg*,Parton*> &lmap);
0029 bool PrepareShower(ATOOLS::Cluster_Amplitude *const ampl,
0030 const bool & soft=false);
0031 void CleanUp();
0032
0033 public:
0034
0035 MCatNLO(const PDF::NLOMC_Key &key);
0036
0037 ~MCatNLO();
0038
0039 int GeneratePoint(ATOOLS::Cluster_Amplitude *const ampl);
0040
0041 double KT2(const ATOOLS::NLO_subevt &sub,
0042 const double &x,const double &y,const double &Q2);
0043
0044 ATOOLS::Cluster_Amplitude *GetRealEmissionAmplitude(const int mode=0);
0045 inline ATOOLS::Cluster_Amplitude *GetBornAmplitude() { return p_rampl; }
0046
0047 inline int PSMode() const { return m_psmode; }
0048
0049 };
0050
0051 }
0052
0053 #endif