File indexing completed on 2025-04-19 09:10:10
0001 #ifndef Decay_Table_h
0002 #define Decay_Table_h
0003
0004 #include "ATOOLS/Phys/Flavour.H"
0005 #include "ATOOLS/Org/Message.H"
0006 #include <set>
0007
0008 namespace ATOOLS {
0009 class Blob;
0010 class Mass_Selector;
0011 }
0012
0013 namespace PHASIC {
0014 class Decay_Channel;
0015
0016 class Decay_Table : public std::vector<Decay_Channel *> {
0017 protected :
0018
0019
0020
0021
0022
0023
0024 size_t m_counter;
0025
0026
0027
0028 double m_totalwidth;
0029 ATOOLS::Flavour m_flin;
0030
0031
0032
0033
0034
0035
0036 const ATOOLS::Mass_Selector* p_ms;
0037
0038
0039 public :
0040 Decay_Table(const ATOOLS::Flavour, const ATOOLS::Mass_Selector* ms);
0041 virtual ~Decay_Table();
0042 void AddDecayChannel(Decay_Channel *);
0043 void RemoveDecayChannel(size_t i);
0044 void UpdateChannelStatuses();
0045 void Output();
0046 void UpdateWidth();
0047 void UpdateWidth(Decay_Channel * dc,const double &width);
0048
0049 const ATOOLS::Flavour& Flav() const { return m_flin; }
0050 const double & TotalWidth() const { return m_totalwidth; }
0051 const double ActiveWidth(const size_t& count) const;
0052 Decay_Channel * GetDecayChannel(const ATOOLS::Flavour_Vector&) const;
0053 void EraseDecayChannel(const int);
0054 Decay_Channel * Select();
0055 void ResetCounter() { m_counter=0; }
0056
0057 friend std::ostream &operator<<(std::ostream &os, const Decay_Table &dt);
0058 };
0059 }
0060
0061 #endif