File indexing completed on 2025-04-19 09:10:11
0001 #ifndef PHASIC_Process_ME_Generators_H
0002 #define PHASIC_Process_ME_Generators_H
0003
0004 #include <vector>
0005 #include <string>
0006
0007 namespace MODEL { class Model_Base; }
0008 namespace BEAM { class Beam_Spectra_Handler; }
0009 namespace PDF { class ISR_Handler; }
0010 namespace YFS { class YFS_Handler; }
0011 namespace REMNANTS { class Remnant_Handler; }
0012
0013 namespace PHASIC {
0014
0015 class Process_Base;
0016 class Process_Info;
0017 class ME_Generator_Base;
0018
0019 class ME_Generators : public std::vector<ME_Generator_Base*> {
0020 private:
0021
0022 MODEL::Model_Base *p_model;
0023
0024 BEAM::Beam_Spectra_Handler *p_beam;
0025 PDF::ISR_Handler *p_isr;
0026 YFS::YFS_Handler *p_yfs;
0027
0028 public:
0029
0030 ME_Generators();
0031 ~ME_Generators();
0032
0033 bool InitializeGenerators(MODEL::Model_Base *model,
0034 BEAM::Beam_Spectra_Handler *beam,
0035 PDF::ISR_Handler *isr,
0036 YFS::YFS_Handler *yfs);
0037 int PerformTests();
0038 bool NewLibraries();
0039
0040 bool LoadGenerator(const std::string &name);
0041
0042 Process_Base* InitializeProcess(const Process_Info &pi, bool add);
0043
0044 inline MODEL::Model_Base *Model() const { return p_model; }
0045 void SetModel(MODEL::Model_Base*);
0046 void SetRemnant(REMNANTS::Remnant_Handler *remnant);
0047 };
0048
0049 }
0050
0051 #endif