File indexing completed on 2025-04-19 09:09:44
0001 #ifndef AHADIC_Tools_Multiplet_Constructor_H
0002 #define AHADIC_Tools_Multiplet_Constructor_H
0003
0004 #include "AHADIC++/Tools/Hadron_Multiplet.H"
0005
0006
0007 namespace AHADIC {
0008 struct HadInfo {
0009 ATOOLS::Flavour flav;
0010 int iso,exr,exl,fl3,fl2,fl1,spin2;
0011 bool barrable;
0012 std::string multiname;
0013 double multiwt,spinwt,extrawt;
0014
0015 friend std::ostream & operator<<(std::ostream & s,const HadInfo & info);
0016 };
0017
0018
0019 class Multiplet_Constructor {
0020 private:
0021 bool m_test;
0022 double m_singletsuppression;
0023 double m_etam, m_etapm, m_cse, m_bse, m_bce, m_hcbe, m_hbbe, m_sbm;
0024 HadInfo m_info;
0025
0026 std::map<std::string,std::set<ATOOLS::Flavour> > m_multiplets;
0027 Wave_Functions m_wavefunctions;
0028
0029 void CreateMultiplets();
0030 bool ExtractInfo(const kf_code & kfc);
0031 std::string MultipletName();
0032 void FillMultipletWeights();
0033 double MixingAngle();
0034
0035 bool ConstructWaveFunction();
0036 bool ConstructMesonWaveFunction();
0037 Wave_Function * TrivialMesonWaveFunction();
0038 Wave_Function * Pi0WaveFunction();
0039 Wave_Function * OctetMesonWaveFunction();
0040 Wave_Function * SingletMesonWaveFunction();
0041 bool ConstructBaryonWaveFunction();
0042 bool ConstructAntiBaryonWaveFunction(ATOOLS::Flavour & flav);
0043 Wave_Function * NeutronWaveFunction();
0044 Wave_Function * ProtonWaveFunction();
0045 Wave_Function * SigmaWaveFunction();
0046 Wave_Function * LambdaWaveFunction();
0047 Wave_Function * Lambda1WaveFunction();
0048 Wave_Function * SigmaHWaveFunction();
0049 Wave_Function * LambdaHWaveFunction();
0050 Wave_Function * DeltaPPWaveFunction();
0051 Wave_Function * DeltaPWaveFunction();
0052 Wave_Function * Delta0WaveFunction();
0053 Wave_Function * DecupletSigmaWaveFunction();
0054 Wave_Function * DecupletLambdaWaveFunction();
0055 Wave_Function * HeavyDecupletWaveFunction();
0056 public:
0057 Multiplet_Constructor(bool test=false);
0058 ~Multiplet_Constructor();
0059
0060 Wave_Functions * GetWaveFunctions() { return &m_wavefunctions; }
0061 void PrintWaveFunctions(bool checkonly=false);
0062 void PrintMultiplets();
0063 };
0064 }
0065
0066 #endif