![]() |
|
|||
File indexing completed on 2025-04-19 09:09:46
0001 #ifndef AMEGIC_Main_Pol_Info_H 0002 #define AMEGIC_Main_Pol_Info_H 0003 0004 #define Explicit_Pols 0005 0006 #include "ATOOLS/Phys/Flavour.H" 0007 //syntax for polarised particles: (in processes.dat) 0008 // 0009 // degree of polarisation (0.=unpolarized,1.=fully polarized) (only 1 or 0 for outgoing) 0010 // | l for linear 0011 // | | polarization angle 0012 // | | | 0013 // Bosons: linear: (.8l45) 0014 // | 0015 // | +/-/0(for massive bosons) 0016 // | | 0017 // circular: (.8c+) 0018 // | 0019 // | +/- 0020 // | | 0021 // Fermion helicities: (.8h+) (up to now only ok for massless) 0022 0023 namespace AMEGIC { 0024 0025 class mt { 0026 public: 0027 enum momtype{ mom = 10, //external momentum 0028 prop = 11, //propagator 0029 cmprop = 12, //center of momentum propagator 0030 p_p = 1, //polarisation +1 (circular) 0031 p_m =-1, // -1 (circular) 0032 p_l = 0, // longitudinal 0033 p_s = 2, // scalar 0034 p_si = 7, // massless scalar 0035 p_l0 = 3, // linear with direction 0036 p_l1 = 4, // linear, perpendicular to p_l0 0037 p_lh = 5, // horizontaly (linear) 0038 p_lp = 6, // perpendicular (linear) 0039 p_none = 8, 0040 p_spec = 9, 0041 0042 p_t1 = 101, //dummies for graviton polarization tensors 0043 p_t2 = 102, 0044 p_t3 = 103, 0045 p_t4 = 104, 0046 p_t5 = 105 0047 }; 0048 }; 0049 /*! 0050 \class mt 0051 \brief Types for explicit 4-vectors. 0052 0053 This class specifies the types for explicit 4-vectors in AMEGIC::Momfunc. 0054 They are used to label the arguments in AMEGIC::Basic_Func and derived classes. 0055 0056 The following types are defined: 0057 - mom: momentum of an external particle 0058 - prop: momentum for a propagator 0059 - cmprop: momentum for a propagator, where the spacial part is identical 0 0060 - p_p/p_m: circular polarization vectors (+/-) 0061 - p_l: longitudinal polarization 0062 - p_s/p_si: scalar polarization for massive/massless off-shell vector boson 0063 - p_l0/p_l1: linear polarization vectors with a direction (defined in AMEGIC::Pol_Info::angle) 0064 - p_lh/p_lp: linear polarization vectors with fixed direction 0065 - p_t1-p_t5: dummies for polarization tensors of external spin-2 particles, will be replaced in AMEGIC::Single_Amplitude_Base::Single_ZvalueTensor(Zfunc* z,std::vector<int>*,std::vector<int>*,int) by combinations of polarization vectors 0066 0067 For the calculation of these vectors see AMEGIC::Basic_Sfuncs::Calc_Momlist(). 0068 */ 0069 0070 class Pol_Info{ 0071 public: 0072 //Polarisation type: 'c'=circular 'l'=linear 'h'=helicity 't'=tensor 0073 char pol_type; 0074 //direction for linear polarisation 0075 double angle; 0076 int num; 0077 int * type; 0078 double * factor; 0079 double m_pol1, m_pol2; 0080 void Init(int); 0081 friend std::ostream & operator<<(std::ostream &, Pol_Info &); 0082 public: 0083 Pol_Info(); 0084 Pol_Info(const ATOOLS::Flavour &); 0085 Pol_Info(const Pol_Info &); 0086 Pol_Info& operator=(const Pol_Info &); 0087 ~Pol_Info(); 0088 0089 void SetPol(char); 0090 char GetPol(); 0091 char GetPolarisationType() { return pol_type; } 0092 int DoFNumber() { return num; } 0093 int Polarisation(const int i) { return type[i]; } 0094 double Degree(const int i) { return factor[i]; } 0095 }; 0096 0097 std::ostream & operator<<(std::ostream &, Pol_Info &); 0098 0099 /*! 0100 \class Pol_Info 0101 \brief Container for everything about the polarization state of external particles. 0102 0103 This class is a container to transfer the polarization state information from 0104 AMEGIC::Amegic::ReadProcesses(std::string) to the construction of the helicity states 0105 in AMEGIC::Helicity. 0106 */ 0107 /*! 0108 \var char Pol_Info::pol_type 0109 Type of the polarization state. 0110 Possible values: 0111 - c for circular (vector boson) 0112 - l for linear (vector boson) 0113 - h for fermion helicities 0114 - t for tensor (spin-2 particles) 0115 */ 0116 /*! 0117 \var double Pol_Info::angle 0118 angle for linear polarization vectors of type mt::p_l0 and mt::p_l1 0119 */ 0120 /*! 0121 \var int Pol_Info::num 0122 number of polarization vectors (tensors) to calculate a given polarization state 0123 Possible values: 0124 - 1 for totally polarized beams/final states 0125 - 2 for partially polarized/unpolarized massless vector bosons 0126 - 3 for partially polarized/unpolarized massive vector bosons 0127 - 5 for massive spin-2 tensors 0128 */ 0129 /*! 0130 \var int* Pol_Info::type 0131 Array of num AMEGIC::mt::momtype 0132 */ 0133 /*! 0134 \var double * Pol_Info::factor 0135 The weight of each polarization vector for the right partial polarization 0136 */ 0137 0138 0139 class Tensor_Struc{ //defines the spin2 tensors 0140 public: 0141 void GetPolCombos(int, std::vector<std::vector<int> >*, std::vector<int>*); 0142 double GetTfactor(int); 0143 }; 0144 /*! 0145 \class Tensor_Struc 0146 \brief Defines tensors for external spin-2 particles 0147 0148 This class defines the 5 polarization tensors for a massive external spin-2 particle 0149 in terms of (outer) products of two polarization vectors. 0150 0151 Polarization tensors are defined as follows: 0152 - AMEGIC::mt::p_t1 \f$\epsilon_{\mu}^{+}\epsilon_{\nu}^{+}\f$ 0153 - AMEGIC::mt::p_t2 \f$\sqrt{2}\,\epsilon_{\mu}^{+}\epsilon_{\nu}^{0}\f$ 0154 - AMEGIC::mt::p_t3 \f$\sqrt{\frac{2}{3}}\left(\epsilon_{\mu}^{+}\epsilon_{\nu}^{-}-\epsilon_{\mu}^{0}\epsilon_{\nu}^{0}\right)\f$ 0155 - AMEGIC::mt::p_t4 \f$\sqrt{2}\,\epsilon_{\mu}^{-}\epsilon_{\nu}^{0}\f$ 0156 - AMEGIC::mt::p_t5 \f$\epsilon_{\mu}^{-}\epsilon_{\nu}^{-}\f$ 0157 */ 0158 /*! 0159 \fn void Tensor_Struc::GetPolCombos(int, vector<vector<int> >*, vector<int>*) 0160 Gives a list of polarization vectors and relative signs to define a polarization tensor. 0161 */ 0162 /*! 0163 \fn double Tensor_Struc::GetTfactor(int) 0164 Returns a normalization factor for each polarization tensor. 0165 */ 0166 } 0167 #endif 0168
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |