Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-04-19 09:10:08

0001 #ifndef PDF_Main_NLOMC_Base_H
0002 #define PDF_Main_NLOMC_Base_H
0003 
0004 #include "ATOOLS/Org/Getter_Function.H"
0005 #include "ATOOLS/Org/Settings.H"
0006 #include "ATOOLS/Phys/Weights.H"
0007 #include "ATOOLS/Phys/NLO_Subevt.H"
0008 
0009 #include <string>
0010 
0011 namespace ATOOLS {
0012 
0013   class Cluster_Amplitude;
0014   struct RB_Data;
0015 
0016 }
0017 
0018 namespace MODEL { class Model_Base; }
0019 
0020 namespace PHASIC { class Process_Base; }
0021 
0022 namespace PDF {
0023 
0024   class ISR_Handler;
0025   class Shower_Base;
0026 
0027   class NLOMC_Base {
0028   protected:
0029 
0030     std::string m_name;
0031 
0032     Shower_Base *p_shower;
0033 
0034     double m_kt2min[2];
0035 
0036     ATOOLS::Weights_Map m_weightsmap;
0037 
0038     ATOOLS::subscheme::code m_subtype;
0039 
0040   public:
0041 
0042     NLOMC_Base(const std::string &name);
0043 
0044     virtual ~NLOMC_Base();
0045 
0046     virtual int GeneratePoint(ATOOLS::Cluster_Amplitude *const ampl) = 0;
0047 
0048     virtual double KT2(const ATOOLS::NLO_subevt &sub,
0049                const double &x,const double &y,
0050                const double &Q2) = 0;
0051 
0052     static void ShowSyntax(const int mode);
0053 
0054     inline const std::string &Name() const { return m_name; }
0055 
0056     inline double KT2Min(const int mode) const { return m_kt2min[mode]; }
0057 
0058     inline const ATOOLS::Weights_Map& WeightsMap() const { return m_weightsmap; }
0059 
0060     inline void SetShower(Shower_Base *const shower) { p_shower=shower; }
0061 
0062     inline ATOOLS::subscheme::code SubtractionType() const { return m_subtype; }
0063 
0064   };// end of class NLOMC_Base
0065 
0066   struct NLOMC_Key {
0067     MODEL::Model_Base *p_model;
0068     ISR_Handler *p_isr;
0069     inline NLOMC_Key(MODEL::Model_Base *const model,
0070               ISR_Handler *const isr):
0071       p_model(model), p_isr(isr) {}
0072   };//end of struct NLOMC_Key
0073 
0074   typedef ATOOLS::Getter_Function
0075   <NLOMC_Base,NLOMC_Key> NLOMC_Getter;
0076 
0077 }// end of namespace PDF
0078 
0079 #endif