Back to home page

EIC code displayed by LXR

 
 

    


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