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 };
0062
0063 std::ostream &operator<<(std::ostream &ostr,const Process_Info &info);
0064
0065 }
0066
0067 #endif
0068