Back to home page

EIC code displayed by LXR

 
 

    


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