File indexing completed on 2025-04-19 09:10:03
0001 #ifndef EXTAMP_Main_ME_Provider_H
0002 #define EXTAMP_Main_ME_Provider_H
0003
0004 #include "PHASIC++/Process/ME_Generator_Base.H"
0005
0006 namespace PHASIC {
0007 class Tree_ME2_Base;
0008 struct External_ME_Args;
0009 }
0010
0011 namespace EXTAMP {
0012
0013 class Dipole_Info;
0014 class CS_Dipole;
0015
0016 class External_ME_Interface: public PHASIC::ME_Generator_Base {
0017
0018 private :
0019
0020 BEAM::Beam_Spectra_Handler* p_beam;
0021 PDF::ISR_Handler* p_isr;
0022 YFS::YFS_Handler* p_yfs;
0023
0024 public :
0025
0026 typedef std::map<size_t, ATOOLS::Flavour_Vector> Combinable_Map;
0027
0028 External_ME_Interface();
0029
0030 ~External_ME_Interface();
0031
0032 virtual int PerformTests() {return 1;};
0033 virtual bool NewLibraries() {return false;};
0034
0035
0036
0037 virtual PHASIC::Process_Base *InitializeProcess(const PHASIC::Process_Info &pi, bool add);
0038
0039
0040 static bool PartonicProcessExists(const PHASIC::External_ME_Args &args);
0041
0042
0043 static bool PartonicProcessExists(const PHASIC::Process_Info &pi);
0044
0045
0046 static PHASIC::Process_Base *
0047 InstantiatePartonicProcess(const PHASIC::Process_Info &pi);
0048
0049
0050 virtual bool Initialize(MODEL::Model_Base *const model,
0051 BEAM::Beam_Spectra_Handler *const beam,
0052 PDF::ISR_Handler *const isr,
0053 YFS::YFS_Handler *const yfs);
0054
0055
0056 static PHASIC::Tree_ME2_Base*
0057 GetExternalBornME(const PHASIC::External_ME_Args& args);
0058
0059
0060
0061
0062
0063 static Combinable_Map ConstructCombinableMap(const ATOOLS::Flavour_Vector&,
0064 const PHASIC::Process_Info&,
0065 const size_t& n_in);
0066
0067
0068
0069
0070
0071
0072
0073 };
0074
0075 }
0076
0077 #endif