File indexing completed on 2025-04-19 09:10:08
0001 #ifndef PHASIC__Channels__Channel_Generator_H
0002 #define PHASIC__Channels__Channel_Generator_H
0003
0004 #include "ATOOLS/Org/Getter_Function.H"
0005
0006 namespace PHASIC {
0007
0008 class Process_Base;
0009 class Multi_Channel;
0010
0011 struct Channel_Generator_Key {
0012 std::string m_key;
0013 Process_Base * p_proc;
0014 Multi_Channel *p_mc;
0015 Channel_Generator_Key(const std::string &key,
0016 Process_Base *const proc,
0017 Multi_Channel *const mc):
0018 m_key(key), p_proc(proc), p_mc(mc) {}
0019 };
0020
0021 class Channel_Generator {
0022 protected:
0023
0024 Multi_Channel *p_mc;
0025 Process_Base *p_proc;
0026
0027 public:
0028
0029 typedef ATOOLS::Getter_Function
0030 <Channel_Generator,Channel_Generator_Key> Getter_Function;
0031
0032 public:
0033
0034 inline Channel_Generator(const Channel_Generator_Key &key):
0035 p_mc(key.p_mc), p_proc(key.p_proc) {}
0036
0037 virtual ~Channel_Generator();
0038
0039 virtual int GenerateChannels() = 0;
0040
0041 static void ShowSyntax(const int mode);
0042
0043 };
0044
0045 }
0046
0047 #endif
0048