File indexing completed on 2025-04-19 09:09:44
0001 #ifndef AHADIC_Tools_Single_Transitions_H
0002 #define AHADIC_Tools_Single_Transitions_H
0003
0004 #include "AHADIC++/Tools/Wave_Function.H"
0005 #include "AHADIC++/Tools/Constituents.H"
0006
0007
0008 namespace AHADIC {
0009 class Flavour_Sorting_Mass {
0010 public :
0011 bool operator() (const ATOOLS::Flavour & fl1,
0012 const ATOOLS::Flavour & fl2) const {
0013 if (fl1.HadMass()>fl2.HadMass()) return true;
0014 return false;
0015 }
0016 };
0017
0018 typedef std::map<ATOOLS::Flavour,double,Flavour_Sorting_Mass>
0019 Single_Transition_List;
0020
0021 typedef std::map<Flavour_Pair,Single_Transition_List *>
0022 Single_Transition_Map;
0023
0024
0025
0026 class Single_Transitions {
0027 private:
0028 Single_Transition_Map m_transitions;
0029
0030 void FillMap(Wave_Functions * wavefunctions);
0031 void Normalise();
0032 public:
0033 Single_Transitions(Wave_Functions * wavefunctions);
0034 ~Single_Transitions();
0035 ATOOLS::Flavour GetLightestTransition(const Flavour_Pair &);
0036 ATOOLS::Flavour GetHeaviestTransition(const Flavour_Pair &);
0037 double GetLightestMass(const Flavour_Pair &);
0038 double GetHeaviestMass(const Flavour_Pair &);
0039 Single_Transition_Map * GetMap() { return &m_transitions; }
0040 Single_Transition_List * operator[](const Flavour_Pair & flavs);
0041 void Print();
0042 };
0043 }
0044 #endif