Back to home page

EIC code displayed by LXR

 
 

    


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

0001 #ifndef PHASIC_Process_Process_Info_H
0002 #define PHASIC_Process_Process_Info_H
0003 
0004 #include "ATOOLS/Phys/NLO_Types.H"
0005 #include "ATOOLS/Org/Scoped_Settings.H"
0006 #include "PHASIC++/Process/Subprocess_Info.H"
0007 #include "PHASIC++/Main/Color_Integrator.H"
0008 #include "PHASIC++/Main/Helicity_Integrator.H"
0009 
0010 namespace PHASIC {
0011 
0012   class ME_Generators;
0013 
0014   struct Process_Info {
0015   public:
0016 
0017     Subprocess_Info m_ii, m_fi;
0018 
0019     cls::scheme m_cls;
0020     hls::scheme m_hls;
0021 
0022     std::vector<double> m_maxcpl, m_mincpl, m_maxacpl, m_minacpl;
0023 
0024     size_t m_nminq, m_nmaxq, m_ckkw, m_itmin, m_rsitmin;
0025     size_t m_amegicmhv, m_ntchan, m_mtchan, m_sort;
0026 
0027     ATOOLS::nlo_mode::code m_nlomode;
0028 
0029     std::string m_scale, m_coupling, m_kfactor, m_gpath, m_addname;
0030     std::string m_megenerator, m_rsmegenerator, m_loopgenerator, m_special;
0031     std::string m_integrator, m_rsintegrator;
0032 
0033     ATOOLS::Scoped_Settings m_selectors;
0034 
0035     ME_Generators* p_gens;
0036 
0037     ATOOLS::Flavour_Vector m_nodecs;
0038 
0039   public:
0040 
0041     inline Process_Info(const Subprocess_Info &ii=Subprocess_Info(),
0042             const Subprocess_Info &fi=Subprocess_Info()):
0043       m_ii(ii), m_fi(fi), m_cls(cls::unknown), m_hls(hls::sum),
0044       m_maxcpl(2,99), m_mincpl(2,0), m_maxacpl(2,99), m_minacpl(2,0),
0045       m_nminq(0), m_nmaxq(99), m_ckkw(0), m_itmin(1000), m_rsitmin(1000),
0046       m_amegicmhv(1), m_ntchan(0), m_mtchan(99), m_sort(3),
0047       m_nlomode(ATOOLS::nlo_mode::none),
0048       m_scale("VAR"), m_kfactor("None"), m_loopgenerator("Internal"),
0049       p_gens(NULL) {}
0050 
0051     ATOOLS::Flavour_Vector ExtractFlavours() const;
0052     bool Has(ATOOLS::nlo_type::code nlotype) const;
0053 
0054     int Combine(const size_t &i,const size_t &j,
0055         const ATOOLS::Flavour &flij);
0056 
0057     std::vector<ATOOLS::Flavour_Vector> ExtractMPL() const;
0058 
0059     bool operator<(const Process_Info &pi) const;
0060 
0061   };// end of struct Process_Info
0062 
0063   std::ostream &operator<<(std::ostream &ostr,const Process_Info &info);
0064 
0065 }// end of namespace PHASIC
0066 
0067 #endif
0068