File indexing completed on 2025-04-19 09:09:47
0001 #ifndef AMEGIC_Phasespace_Channel_Generator_Base_H
0002 #define AMEGIC_Phasespace_Channel_Generator_Base_H
0003
0004 #include "PHASIC++/Channels/Single_Channel.H"
0005 #include <string>
0006 #include <vector>
0007 #include <map>
0008
0009
0010 namespace AMEGIC {
0011
0012 typedef std::map<std::string,std::string> Decls;
0013 class Point;
0014
0015 typedef std::vector<std::string> String_List;
0016
0017 class Channel_Generator_Base {
0018 protected:
0019 int nin,nout,m_valid;
0020 Point * plist;
0021 std::string GetMassIndex(std::string &str);
0022 std::string GetMassIndex(char &str);
0023 public:
0024 Channel_Generator_Base(int,int,Point *);
0025 virtual ~Channel_Generator_Base();
0026 virtual int MakeChannel(int&,int,std::string&,std::string&) = 0;
0027 Point * GetPointlist() { return plist; }
0028
0029 virtual std::string CreateChannelID(int) = 0;
0030 virtual int NumberOfChannels() { return 1; }
0031 inline int Valid() const { return m_valid; }
0032 };
0033 }
0034 #endif
0035