![]() |
|
|||
File indexing completed on 2025-04-19 09:10:04
0001 #ifndef HADRONS_Main_Hadron_Decay_Map_H 0002 #define HADRONS_Main_Hadron_Decay_Map_H 0003 0004 #include <string> 0005 #include <vector> 0006 #include "ATOOLS/Phys/Flavour.H" 0007 #include "HADRONS++/Main/Tools.H" 0008 #include "PHASIC++/Decays/Decay_Map.H" 0009 0010 namespace HADRONS { 0011 class Hadron_Decay_Table; 0012 class Mixing_Handler; 0013 0014 typedef std::multimap<std::string, Hadron_Decay_Table*> SDtMMap; 0015 typedef std::multimap<std::string, Hadron_Decay_Table*>::iterator SDtMMapIt; 0016 0017 /** 0018 * Building on the general class Decay_Map this class implements the features 0019 * specific for hadron decay maps, e.g. reading decay tables from files. 0020 * Furthermore it manages the global constants defined in HadronConstants.dat. 0021 */ 0022 class Hadron_Decay_Map : public PHASIC::Decay_Map { 0023 private: 0024 0025 /** 0026 * A model that is filled from HadronConstants.dat and used as starting 0027 * point for all decay channel specific models. 0028 */ 0029 GeneralModel m_startmd; 0030 0031 std::multimap<std::string, Hadron_Decay_Table*> m_fixed_tables; 0032 std::vector<Hadron_Decay_Table*> m_fixed_next_tables; 0033 0034 Mixing_Handler * p_mixinghandler; 0035 0036 public: 0037 /** 0038 * @param ms The mass selector 0039 */ 0040 Hadron_Decay_Map(const ATOOLS::Mass_Selector* ms); 0041 ~Hadron_Decay_Map(); 0042 /** 0043 * Reads all decay tables and create their decay channels and initialises them. 0044 */ 0045 void Read(ATOOLS::Scoped_Settings& s); 0046 /** 0047 * Reads fixed decay tables from FixedDecays.dat which can later be 0048 * programmatically set to be used for the next decay of a certain decayer, 0049 * typically some kind of signal decay 0050 * (useful within frameworks like LHCb) 0051 */ 0052 void ReadFixedTables(); 0053 /** 0054 * Reads partonic decay data. 0055 */ 0056 void ReadInPartonicDecays(const ATOOLS::Flavour & decflav, ATOOLS::Scoped_Settings& s); 0057 /** 0058 * 0059 * @return The global hadron decay parameter model. 0060 */ 0061 inline GeneralModel& StartModel() { return m_startmd; } 0062 /** 0063 * Creates a Latex booklet containing all decay tables and information 0064 * about available matrix elements and currents, in hadrons.tex 0065 */ 0066 void CreateBooklet(); 0067 /** 0068 * Activate a previously read fixed decay table 0069 */ 0070 void FixDecayTables(std::string table_id); 0071 /** 0072 * Deactivate the previously fixed decay table 0073 */ 0074 void ClearFixedDecayTables(); 0075 0076 virtual PHASIC::Decay_Table* FindDecay(const ATOOLS::Flavour& decayer); 0077 0078 //@{ 0079 /// Getter/setter method. 0080 inline const Mixing_Handler* MixingHandler() const {return p_mixinghandler;} 0081 inline void SetMixingHandler(Mixing_Handler* mix) { p_mixinghandler = mix; } 0082 //@} 0083 }; 0084 0085 /** 0086 \package HADRONS 0087 The HADRONS package is Sherpa's native hadron and tau decay handler. 0088 0089 \section decaydata Decaydata files 0090 0091 All decaytables and information about decay channels is saved in plain 0092 text files located in SHERPA/Run/Decaydata. 0093 0094 Three different levels of dat-files are used: 0095 - <b>HadronDecays.dat</b>: Stores a list of all available decay tables. 0096 (represented by the Hadron_Decay_Map class). 0097 - <b>Decay table files</b>: Each hadron has its own directory including 0098 a file called Decays.dat which is represented by the 0099 Hadron_Decay_Table class. 0100 - <b>Decay channel files</b>: In the same directory you can find individual 0101 files for each decay channel (represented by the Hadron_Decay_Channel 0102 class). 0103 */ 0104 0105 } 0106 0107 0108 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |