![]() |
|
|||
File indexing completed on 2025-04-19 09:10:05
0001 #ifndef HADRONS_PS_Library_HD_PS_Base_H 0002 #define HADRONS_PS_Library_HD_PS_Base_H 0003 0004 #include "PHASIC++/Channels/Single_Channel.H" 0005 #include "ATOOLS/Phys/Flavour.H" 0006 #include "ATOOLS/Math/Vector.H" 0007 #include <string> 0008 #include "HADRONS++/Main/Tools.H" 0009 #include "ATOOLS/Org/Scoped_Settings.H" 0010 0011 namespace HADRONS { 0012 0013 struct ChannelInformation 0014 { 0015 std::string name; // name of integrator 0016 int nRes; // number of resonances 0017 std::string res1, res2, res3; // resonances 0018 int a,b,c,d; // index for outgoing particles 0019 }; 0020 0021 class HD_Channel_Selector { 0022 static bool DecomposeChannel( std::string name, ChannelInformation & ci ); 0023 public: 0024 static PHASIC::Single_Channel* 0025 GetChannel(int nin, int nout, const ATOOLS::Flavour * flavs, 0026 std::string name, ATOOLS::Scoped_Settings& s, 0027 const ATOOLS::Mass_Selector* ms); 0028 }; 0029 0030 /*! 0031 \file HD_PS_Base.H 0032 \brief Declares the classes HADRONS::HD_Channel_Selector and HADRONS::ChannelInformation. 0033 0034 This file can be found in the directory \c PS_Library. 0035 */ 0036 0037 /*! 0038 \class HD_Channel_Selector 0039 \brief Tool to select an integration channel 0040 */ 0041 /*! 0042 \fn HD_Channel_Selector::GetChannel(int nin, int nout, const ATOOLS::Flavour * flavs, std::string name, GeneralModel & md ) 0043 \brief Returns pointer on a PS generator 0044 0045 Input number <var>nin</var> must be 1 and the output number <var>nout</var> 0046 greater than or equal to 2. 0047 The argument <var>name</var> corresponds to the name of the integrator such as 0048 - Isotropic (Rambo) 0049 - Dalitz_<var>prop</var>_<var>ij</var> 0050 - TwoResonances_<var>prop1</var>_<var>k</var>_<var>prop2</var>_<var>ij</var> 0051 - ... 0052 . 0053 At first the name is decomposed by HD_Channel_Selector::DecomposeChannel and stored as 0054 ChannelInformation. Depending in the information in ChannelInformation it returns 0055 a pointer on the corresponding PS integrator class such as 0056 - Rambo 0057 - Dalitz 0058 - TwoResonances 0059 - ... 0060 . 0061 */ 0062 /*! 0063 \fn HD_Channel_Selector::DecomposeChannel( string name, ChannelInformation & ci ) 0064 \brief Reads name and extract the information 0065 0066 This method extracts the required information from the name <var>name</var> and stores 0067 them in the ChannelInformation class variable <var>ci</var>. 0068 */ 0069 0070 /*! 0071 \class ChannelInformation 0072 \brief Auxilliary class for setting the correct integrator 0073 0074 This class is a mere bookkeeping class for all information that is extracted from the name 0075 of the integrator: 0076 - which are the propagators 0077 - which particles are external legs 0078 - ... 0079 . 0080 It can cope with the following integrators 0081 <TABLE> 0082 <TR> <TD>full name</TD> <TD></TD> <TD>Isotropic</TD> 0083 <TD>Dalitz_<var>prop</var>_<var>ij</var></TD> 0084 <TD>TwoResonances_<var>prop1</var>_<var>k</var>_<var>prop2</var>_<var>ij</var></TD> </TR> 0085 <TR> <TD>diagram</TD> <TD></TD> <TD></TD> <TD>\f$prop \to i+j\f$</TD> 0086 <TD>\f$prop_1 \to k+ prop_2;\: prop_2 \to i+j\f$</TD> </TR> 0087 <TR> <TD>type</TD> <TD>name</TD> <TD>Isotropic</TD> <TD>Dalitz</TD> <TD>TwoResonances</TD> </TR> 0088 <TR> <TD>number of resonances</TD> <TD>nRes</TD> <TD>0</TD> <TD>1</TD> <TD>2</TD> </TR> 0089 <TR> <TD>resonance 1</TD> <TD>res1</TD> <TD>-</TD> <TD><var>prop</var></TD> <TD><var>prop1</var></TD> </TR> 0090 <TR> <TD>resonance 2</TD> <TD>res2</TD> <TD>-</TD> <TD>-</TD> <TD><var>prop2</var></TD> </TR> 0091 <TR> <TD>resonance 3</TD> <TD>res3</TD> <TD>-</TD> <TD>-</TD> <TD>-</TD> </TR> 0092 <TR> <TD>1st leg</TD> <TD>a</TD> <TD>-</TD> <TD><var>i</var></TD> <TD><var>k</var></TD> </TR> 0093 <TR> <TD>2nd leg</TD> <TD>b</TD> <TD>-</TD> <TD><var>j</var></TD> <TD><var>i</var></TD> </TR> 0094 <TR> <TD>3rd leg</TD> <TD>c</TD> <TD>-</TD> <TD>-</TD> <TD><var>j</var></TD> </TR> 0095 <TR> <TD>4th leg</TD> <TD>d</TD> <TD>-</TD> <TD>-</TD> <TD>-</TD> </TR> 0096 </TABLE> 0097 */ 0098 /*! 0099 \var ChannelInformation::name 0100 Type of the integrator: 0101 - \c Isotripic 0102 - \c Dalitz 0103 - \c TwoResonances 0104 . 0105 */ 0106 /*! 0107 \var ChannelInformation::nRes 0108 Number of the resonances (internal propagators) 0109 */ 0110 /*! 0111 \var ChannelInformation::res1 0112 Name of the resonance 1 0113 */ 0114 /*! 0115 \var ChannelInformation::res2 0116 Name of the resonance 2 0117 */ 0118 /*! 0119 \var ChannelInformation::res3 0120 Name of the resonance 3 0121 */ 0122 /*! 0123 \var ChannelInformation::a 0124 Number of the particle in the 1st leg 0125 */ 0126 /*! 0127 \var ChannelInformation::b 0128 Number of the particle in the 2nd leg 0129 */ 0130 /*! 0131 \var ChannelInformation::c 0132 Number of the particle in the 3rd leg 0133 */ 0134 /*! 0135 \var ChannelInformation::d 0136 Number of the particle in the 4th leg 0137 */ 0138 0139 } // end of namespace 0140 0141 0142 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |