Back to home page

EIC code displayed by LXR

 
 

    


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   };// end of struct Channel_Generator_Key
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   };// end of class Channel_Generator
0044 
0045 }// end of namespace PHASIC
0046 
0047 #endif
0048