Back to home page

EIC code displayed by LXR

 
 

    


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