File indexing completed on 2025-04-19 09:09:46
0001 #ifndef AMEGIC_Main_Process_Group_H
0002 #define AMEGIC_Main_Process_Group_H
0003
0004 #include "AMEGIC++/Main/Amegic_Base.H"
0005 #include "PHASIC++/Process/Process_Group.H"
0006
0007 namespace MODEL { class Model_Base; }
0008
0009 namespace AMEGIC {
0010
0011 class Topology;
0012 class Process_Base;
0013 class Amplitude_Handler;
0014 class Helicity;
0015 class Amegic_Model;
0016
0017 class Process_Group: public Amegic_Base, public PHASIC::Process_Group {
0018
0019 protected :
0020
0021 Topology * p_top;
0022 ATOOLS::Vec4D* p_testmoms;
0023
0024 Amegic_Model* p_model;
0025 std::string m_mfname;
0026
0027 std::vector<AMEGIC::Process_Base *> m_umprocs, m_errprocs;
0028 std::list<std::string> *p_channellibnames;
0029 std::set<std::string> m_whitelist;
0030
0031 public :
0032
0033
0034 Process_Group();
0035
0036
0037 ~Process_Group();
0038
0039
0040 bool FillIntegrator(PHASIC::Phase_Space_Handler *const psh);
0041 void EndOptimize();
0042
0043 PHASIC::Process_Base *GetProcess(const PHASIC::Process_Info &pi) const;
0044 bool Initialize(PHASIC::Process_Base *const proc);
0045
0046 AMEGIC::Process_Base *Partner() const;
0047
0048 bool SetUpIntegrator();
0049 int InitAmplitude(Amegic_Model *model,Topology *top);
0050
0051 Amplitude_Handler *GetAmplitudeHandler();
0052 Helicity *GetHelicity();
0053 bool NewLibs();
0054 std::string PSLibName();
0055 void SetPrintGraphs(std::string gpath);
0056
0057 void WriteMappingFile();
0058 void Minimize();
0059
0060 void PrintProcessSummary(int=0);
0061
0062
0063 inline void SetMFname(const std::string &name) { m_mfname=name; }
0064
0065 void FillAlphaHistogram(ATOOLS::Histogram*,double);
0066 };
0067 }
0068
0069 #endif
0070
0071