File indexing completed on 2025-04-19 09:09:47
0001 #ifndef AMEGIC_Phasespace_Channel_Generator_Decays_H
0002 #define AMEGIC_Phasespace_Channel_Generator_Decays_H
0003
0004 #include "AMEGIC++/Phasespace/Channel_Generator_Base.H"
0005
0006
0007 namespace AMEGIC {
0008
0009 typedef std::map<std::string,std::string> Decls;
0010
0011 typedef std::vector<std::string> String_List;
0012
0013 class Channel_Generator_Decays : public Channel_Generator_Base {
0014 Decls declarations;
0015
0016 int extrachannelflag,newchannel;
0017 int acount,m_aid;
0018 String_List m_idc;
0019 std::string m_idstr;
0020
0021 void Step0(int,Point *,int&,std::ofstream&,ATOOLS::Flavour*,int&);
0022 bool StepS(int,Point *,int&,std::ofstream&,ATOOLS::Flavour*,int&);
0023
0024 void GenerateMasses(int,Point **,int,int&,std::ofstream&);
0025 std::string LinkedMasses(Point *);
0026 void CalcSmin(int,const char*,std::string,std::ofstream&,Point*);
0027 bool Massive(ATOOLS::Flavour fl) { return (fl.Mass()!=0.) ? 1:0; }
0028 std::string Order(std::string);
0029 std::string IString(int);
0030 void AddToVariables(int,const std::string&,const std::string&,const int&,std::ofstream&);
0031 void ClearDeclarations() { declarations.clear(); }
0032 double PMassSum(Point*,std::vector<int>*);
0033 public:
0034 Channel_Generator_Decays(int,int,Point *,int);
0035 ~Channel_Generator_Decays();
0036 int MakeChannel(int&,int,std::string&,std::string&);
0037 Point * GetPointlist() { return plist; }
0038 std::string CreateChannelID(int);
0039 };
0040 }
0041 #endif
0042