Back to home page

EIC code displayed by LXR

 
 

    


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   };// end of class MCatNLO
0050 
0051 }// end of namespace DIM
0052 
0053 #endif