![]() |
|
|||
File indexing completed on 2025-04-19 09:09:44
0001 #ifndef AMEGIC_Amplitude_Zfunctions_Basic_Sfuncs_H 0002 #define AMEGIC_Amplitude_Zfunctions_Basic_Sfuncs_H 0003 0004 0005 #include "ATOOLS/Phys/Flavour.H" 0006 #include "ATOOLS/Math/Vector.H" 0007 #include "ATOOLS/Phys/Spinor.H" 0008 #include "AMEGIC++/Main/Pol_Info.H" 0009 #include "AMEGIC++/Amplitude/Pfunc.H" 0010 #include <list> 0011 0012 #define masslessskip 30 0013 #define massiveskip 60 0014 0015 namespace AMEGIC { 0016 0017 //!Container for explicit 4-vectors (momentums and polarization vectors) 0018 class Momfunc { 0019 public: 0020 //!Number of arguments 0021 int argnum; 0022 /*! 0023 List of Arguments. 0024 For external momentums: 0025 - [0] index of the external particle 0026 0027 For propagator momentums: 0028 - [0] index in AMEGIC::Basic_Sfuncs::Momlist 0029 - [1]..[argnum] list of external particle indices for calculation 0030 0031 For polarization vectors 0032 - [0] index in AMEGIC::Basic_Sfuncs::Momlist 0033 - [1] index of the corresponding momentum 0034 */ 0035 int* arg; 0036 //!real part of the vector 0037 ATOOLS::Vec4D mom; 0038 //!imaginary part of the vector 0039 ATOOLS::Vec4D mom_img; 0040 //! polarization angle for external linear polarized vector bosons 0041 double angle; 0042 //! mass of the particle, described by the vector (polarizations only) 0043 double mass; 0044 //! type of the vector 0045 mt::momtype type; 0046 //! kf code 0047 kf_code kfc; 0048 Momfunc() {arg = 0;argnum = 0;angle=0.;mass=0.;kfc=0;} 0049 Momfunc(const Momfunc& m) { 0050 arg = 0; 0051 argnum = 0; 0052 *this = m; 0053 } 0054 0055 ~Momfunc() {if (arg) delete[] arg;} 0056 0057 0058 Momfunc& operator=(const Momfunc& m) { 0059 if (this!=&m) { 0060 argnum = m.argnum; 0061 if (arg) delete[] arg; 0062 if (argnum>0) { 0063 arg = new int[argnum]; 0064 for (short int i=0;i<argnum;i++) arg[i] = m.arg[i]; 0065 } 0066 mom = m.mom; 0067 mom_img = m.mom_img; 0068 mass = m.mass; 0069 angle = m.angle; 0070 type = m.type; 0071 kfc = m.kfc; 0072 } 0073 return *this; 0074 } 0075 }; 0076 0077 class Basic_Sfuncs { 0078 std::vector<Momfunc> Momlist; 0079 int momcount; 0080 ATOOLS::Flavour* fl; 0081 int nmom,nvec; 0082 ATOOLS::Vec4D* p, m_k1, m_k2, m_k3; 0083 std::vector<ATOOLS::Vec4D>* p_epol; 0084 int* b; 0085 Complex* _eta; 0086 Complex* _mu; 0087 Complex** _S0; 0088 Complex** _S1; 0089 int** calc_st; 0090 int k0_n; 0091 int m_precalc; 0092 int InitializeMomlist(); 0093 void CalcMomlist(); 0094 void CalcS(int i, int j); 0095 void PrecalcS(); 0096 inline static int R1() { return ATOOLS::Spinor<double>::R1(); } 0097 inline static int R2() { return ATOOLS::Spinor<double>::R2(); } 0098 inline static int R3() { return ATOOLS::Spinor<double>::R3(); } 0099 inline ATOOLS::Vec4D K1() const { return m_k1; } 0100 inline ATOOLS::Vec4D K2() const { return m_k2; } 0101 inline ATOOLS::Vec4D K3() const { return m_k3; } 0102 inline double C1(const ATOOLS::Vec4D &p) const { return -m_k1*p; } 0103 inline double C2(const ATOOLS::Vec4D &p) const { return -m_k2*p; } 0104 inline double C3(const ATOOLS::Vec4D &p) const { return -m_k3*p; } 0105 public: 0106 Basic_Sfuncs(int,int, ATOOLS::Flavour*,int*); 0107 Basic_Sfuncs(int,int, ATOOLS::Flavour*,int*,std::string,std::string); 0108 ~Basic_Sfuncs(); 0109 void Output(std::string name); 0110 0111 int BuildMomlist(Pfunc_List&); 0112 int BuildTensorPolarisations(int); 0113 int BuildPolarisations(int,char,double angle=0.); 0114 int BuildPolarisations(int,ATOOLS::Flavour); 0115 0116 void PrintMomlist(); 0117 int GetMomNumber(Pfunc*); 0118 void PropPolarisation(int,Pfunc_List&,std::vector<int>&); 0119 int GetPolNumber(int,int,double,int check=0); 0120 0121 void Setk0(int); 0122 ATOOLS::Vec4D Getk0(); 0123 ATOOLS::Vec4D Getk1(); 0124 void Initialize(); 0125 int CalcEtaMu(ATOOLS::Vec4D*);//setS 0126 void InitGaugeTest(double);//ResetS_GT 0127 void SetEPol(std::vector<ATOOLS::Vec4D>* epol) {p_epol=epol;} 0128 0129 inline Complex Mu(int i) { return (i>0) ? _mu[i] : -_mu[-i]; } 0130 inline Complex Eta(int i) { return _eta[ATOOLS::iabs(i)]; } 0131 inline Complex S0d(int i,int j) { return _S0[ATOOLS::iabs(i)][ATOOLS::iabs(j)]; } 0132 inline Complex S1d(int i,int j) { return _S1[ATOOLS::iabs(i)][ATOOLS::iabs(j)]; } 0133 inline Complex S0(int i,int j) { 0134 i=ATOOLS::iabs(i);j=ATOOLS::iabs(j); 0135 if (!calc_st[i][j] && !m_precalc) CalcS(i,j); 0136 return _S0[i][j]; 0137 } 0138 inline Complex S1(int i,int j) { 0139 i=ATOOLS::iabs(i);j=ATOOLS::iabs(j); 0140 if (!calc_st[i][j] && !m_precalc) CalcS(i,j); 0141 return _S1[i][j]; 0142 } 0143 Complex CalcS(ATOOLS::Vec4D& m, ATOOLS::Vec4D& m1); 0144 /*! 0145 Returns the results of both S-functions S+ and S- of the vectors v and the i-th 0146 vector in the momlist. S+ is stored in the first entry of the pair, S- is stored 0147 in the second entry. 0148 */ 0149 std::pair<Complex, Complex> GetS(ATOOLS::Vec4D v, int i); 0150 0151 double Norm(int,int);//N 0152 0153 inline int GetNmomenta() { return nmom; } 0154 inline int MomlistSize() { return Momlist.size(); } 0155 inline int Sign(int i) { return b[ATOOLS::iabs(i)]; } 0156 inline ATOOLS::Flavour GetFlavour(int i) { return fl[ATOOLS::iabs(i)]; } 0157 inline ATOOLS::Vec4D& Momentum(int i) { return Momlist[i].mom; } 0158 inline ATOOLS::Vec4D& MomentumImg(int i) { return Momlist[i].mom_img; } 0159 inline bool IsComplex(const int i) { 0160 return ( Momlist[i].type==mt::p_p || Momlist[i].type==mt::p_m || 0161 Momlist[i].type==mt::p_l || Momlist[i].type==mt::p_s || Momlist[i].type==mt::p_si); 0162 } 0163 void StartPrecalc(); 0164 bool IsMomSum(int,int,int); 0165 }; 0166 0167 std::ostream& operator<<(std::ostream& os, const Momfunc& mf); 0168 std::istream& operator>>(std::istream& is, Momfunc& mf); 0169 0170 0171 /*! 0172 \class Basic_Sfuncs 0173 \brief Calculation of S-functions. 0174 0175 This class generates a list of all four-momentums and polarization vectors 0176 and determines them from the given four-momentums of external particles. 0177 It also calculates and administrates the \f$\eta\f$- and \f$\mu\f$-functions 0178 as well as the basic spinor products \f$S(+;p_1,p_2)\f$ and \f$S(-;p_1,p_2)\f$. 0179 */ 0180 /*! 0181 \var std::vector<Momfunc> Basic_Sfuncs::Momlist 0182 List of all momentums and polarization vectors. 0183 */ 0184 /*! 0185 \var ATOOLS::Flavour* Basic_Sfuncs::fl 0186 Array of Flavours for external particles. 0187 */ 0188 /*! 0189 \var int Basic_Sfuncs::nmom 0190 Number of external particles 0191 */ 0192 /*! 0193 \var int Basic_Sfuncs::nvec 0194 Numbers of vectors for external particles (nmom + extra vectors for the old gauge boson treatment) 0195 */ 0196 /*! 0197 \var ATOOLS::Vec4D* Basic_Sfuncs::p 0198 Array of momentums for external particles 0199 */ 0200 /*! 0201 \var int* Basic_Sfuncs::b 0202 Signs for the external particles: 0203 - +1 for outgoing 0204 - -1 for incoming 0205 */ 0206 /*! 0207 \var Complex* Basic_Sfuncs::_eta 0208 Array of \f$\eta\f$'s for each vector in Momlist. 0209 It is calculated in Basic_Sfuncs::CalcEtaMu(ATOOLS::Vec4D*). 0210 */ 0211 /*! 0212 \var Complex* Basic_Sfuncs::_mu 0213 Array of \f$\mu\f$'s for each vector in Momlist. 0214 It is calculated in Basic_Sfuncs::CalcEtaMu(ATOOLS::Vec4D*). 0215 */ 0216 /*! 0217 \var Complex** Basic_Sfuncs::_S0 0218 Array of \f$S(+,p_i,p_j)\f$, calculated in Basic_Sfuncs::CalcS(int i, int j) when first used. 0219 */ 0220 /*! 0221 \var Complex** Basic_Sfuncs::_S1 0222 Array of \f$S(-,p_i,p_j)\f$, calculated in Basic_Sfuncs::CalcS(int i, int j) when first used. 0223 */ 0224 /*! 0225 \var int** Basic_Sfuncs::calc_st 0226 Array to keep track over already calculated S-functions. 0227 */ 0228 /*! 0229 \var int Basic_Sfuncs::momcount 0230 Number of vectors in Basic_Sfuncs::Momlist. 0231 */ 0232 /*! 0233 \var int Basic_Sfuncs::k0_n 0234 Indicates what set of vectors \f$k_0\f$ and \f$k_1\f$ is used to define the spinor basis. 0235 See Basic_Sfuncs::Setk0(int) for details. 0236 */ 0237 0238 /*! 0239 \fn int Basic_Sfuncs::InitializeMomlist() 0240 Initializes momentums of external particles in Basic_Sfuncs::Momlist. 0241 */ 0242 /*! 0243 \fn void Basic_Sfuncs::CalcMomlist() 0244 Calculates all vectors in Basic_Sfuncs::Momlist. 0245 0246 <table border> 0247 <tr> 0248 <td> </td> 0249 <td> <B>type</B> (see class mt)</td> 0250 <td> </td> 0251 </tr> 0252 <tr> 0253 <td>Momentums and Popagators: </td> 0254 <td>mom</td> 0255 <td>\f$p_i\f$</td> 0256 </tr> 0257 <tr> 0258 <td> </td> 0259 <td>prop</td> 0260 <td>\f$\sum_i p_i\f$</td> 0261 </tr> 0262 <tr> 0263 <td> </td> 0264 <td>cmprop</td> 0265 <td>\f$p_0+p_1\f$</td> 0266 </tr> 0267 <tr> 0268 <td>Polarizations: </td> 0269 <td>p_m/p_p</td> 0270 <td>\f$\frac{1}{\sqrt{2}\sqrt{p_x^2+p_y^2}}\left(0,\frac{p_xp_z}{|\vec{p}|}\mp ip_y, 0271 \frac{p_yp_z}{|\vec{p}|}\pm ip_x,-\frac{p_x^2+p_y^2}{|\vec{p}|}\right)\f$</td> 0272 </tr> 0273 <tr> 0274 <td> </td> 0275 <td>p_lh</td> 0276 <td>\f$\frac{1}{\sqrt{p_x^2+p_y^2}}\left(0,\frac{p_xp_z}{|\vec{p}|}, 0277 \frac{p_yp_z}{|\vec{p}|},-\frac{p_x^2+p_y^2}{|\vec{p}|}\right)\f$</td> 0278 </tr> 0279 <tr> 0280 <td> </td> 0281 <td>p_lv</td> 0282 <td>\f$\frac{1}{\sqrt{p_x^2+p_y^2}}\left(0,p_y,-p_x,0\right)\f$</td> 0283 </tr> 0284 <tr> 0285 <td> </td> 0286 <td>p_l</td> 0287 <td>\f$\frac{1}{\sqrt{p^2}}\left(|\vec{p}|,p_0\frac{\vec{p}}{\vec{p}|}\right)\f$</td> 0288 </tr> 0289 <tr> 0290 <td> </td> 0291 <td>p_s</td> 0292 <td>\f$\sqrt{\frac{p^2-(m^2+im\Gamma)}{p^2 (m^2+im\Gamma)}}p\f$</td> 0293 </tr> 0294 <tr> 0295 <td> </td> 0296 <td>p_si</td> 0297 <td>\f$\sqrt{-\frac{1}{p^2}}p\f$</td> 0298 </tr> 0299 </table> 0300 */ 0301 /*! 0302 \fn void Basic_Sfuncs::CalcS(int i, int j) 0303 Calculates the basic spinor products \f$S(+,p_i,p_j)\f$ and \f$S(-,p_i,p_j)\f$. 0304 i,j are indices of Basic_Sfuncs::Momlist. 0305 0306 S-Functions are defined as products of massless spinor: 0307 \f[ 0308 S(+,p_1,p_2)=\bar{u}(p_1,+)u(p_2,-), 0309 \f] 0310 \f[ 0311 S(-,p_1,p_2)=\bar{u}(p_1,-)u(p_2,+). 0312 \f] 0313 0314 We introduce a dimensionless chiral spinor basis 0315 \f[ 0316 w(k_0,\lambda)\bar w(k_0,\lambda) = \frac{1+\lambda\gamma_5}{2}k\!\!\!/_0 0317 \f] 0318 and 0319 \f[ 0320 w(k_0,\lambda) = \lambda k\!\!\!/_1 w(k_0,-\lambda)\,, 0321 \f] 0322 where \f$k_1 k_1=-1\f$ and \f$k_0 k_1=0\f$. 0323 0324 Now a (massless) spinor with an arbitrary momentum \f$p\f$ can be defined by 0325 \f[ 0326 u(p,\lambda)=\frac{p\!\!\!/}{\sqrt{2pk_0}}w(k_0,-\lambda). 0327 \f] 0328 0329 Using this the S-Function can be calculated: 0330 \f[ 0331 S(+;p_1,p_2) = 0332 2\frac{(p_1\cdot k_0)(p_2\cdot k_1)- 0333 (p_1\cdot k_1)(p_2\cdot k_0)+ 0334 i\epsilon_{\mu\nu\rho\sigma} 0335 p_1^\mu p_2^\nu k_0^\rho k_1^\sigma}{\eta_1\eta_2}\,, 0336 \f] 0337 \f[ 0338 S(-;p_1,p_2) = -S(+;p_1,p_2)^*\,. 0339 \f] 0340 0341 With the default choice of \f$k_0\f$ and \f$k_1\f$ (see Basic_Sfuncs::Setk0), that 0342 expression can be simplified to 0343 \f$ 0344 S(\pm,p_1,p_2)=\left(\pm p_1^y+\frac{i}{\sqrt{2}}(p_1^z-p_1^x)\right) 0345 \frac{\eta_2}{\eta_1} - (1 \leftrightarrow 2)\,. 0346 \f$ 0347 */ 0348 /*! 0349 \fn void Basic_Sfuncs::PrecalcS() 0350 Precalculation of all used spinor products. 0351 This method is used after calling Basic_Sfuncs::StartPrecalc(). 0352 */ 0353 0354 /*! 0355 \fn int Basic_Sfuncs::BuildMomlist(Pfunc_List&) 0356 Adds propagators and internal polarization vectors to Basic_Sfuncs::Momlist. 0357 */ 0358 /*! 0359 \fn int Basic_Sfuncs::BuildTensorPolarisations(int) 0360 Adds polarization vectors, neccessary to calculate polarization tensors f 0361 or external spin-2 particles to Basic_Sfuncs::Momlist. 0362 */ 0363 /*! 0364 \fn int Basic_Sfuncs::BuildPolarisations(int,char,double angle=0.) 0365 Initializes polarizations for external vector bosons in Basic_Sfuncs::Momlist. 0366 */ 0367 /*! 0368 \fn int Basic_Sfuncs::BuildPolarisations(int,ATOOLS::Flavour) 0369 Initializes polarizations for vector boson and spin-2 propagators in Basic_Sfuncs::Momlist. 0370 */ 0371 0372 /*! 0373 \fn void Basic_Sfuncs::PrintMomlist() 0374 Prints Basic_Sfuncs::Momlist. 0375 */ 0376 /*! 0377 \fn int Basic_Sfuncs::GetMomNumber(Pfunc*) 0378 Checks Basic_Sfuncs::Momlist if a propagator already exists. 0379 Returns the index or -1. 0380 */ 0381 /*! 0382 \fn void Basic_Sfuncs::PropPolarisation(int,Pfunc_List&,std::vector<int>&) 0383 In the last argument a list of corresponding polarizaton vector types (mt) for a 0384 propagator is returned. 0385 */ 0386 /*! 0387 \fn int Basic_Sfuncs::GetPolNumber(int momindex,int sign, double mass,int check=0) 0388 Checks Basic_Sfuncs::Momlist if a polarization vector already exists. 0389 Polarizations are characterized a propagator or external momentum , a type (mt) 0390 and a mass of the corresponding boson if the calculation depends on it. 0391 Returns the index or -1. 0392 */ 0393 /*! 0394 \fn void Basic_Sfuncs::Setk0(int) 0395 Set the auxiliary vectors \f$k_0\f$ and \f$k_1\f$, defining the spinor basis. 0396 0397 The following sets are available: 0398 - 0: \f$k_0=(1,\sqrt(1/2),0,\sqrt(1/2))\;\;\;\;\;k_1=(0,0,1,0)\f$ (default) 0399 - 1: \f$k_0=(1,0,\sqrt(1/2),\sqrt(1/2))\;\;\;\;\;k_1=(0,1,0,0)\f$ 0400 - 2: \f$k_0=(1,\sqrt(1/2),\sqrt(1/2),0)\;\;\;\;\;k_1=(0,0,0,1)\f$ 0401 0402 This function can be used for internal tests. 0403 */ 0404 /*! 0405 \fn ATOOLS::Vec4D Basic_Sfuncs::Getk0() 0406 Returns the currently set k0 as a 4-vector. 0407 */ 0408 /*! 0409 \fn void Basic_Sfuncs::Initialize() 0410 Memory allocation for Basic_Sfuncs::_mu, Basic_Sfuncs::_eta, Basic_Sfuncs::_S0, 0411 Basic_Sfuncs::_S1 and Basic_Sfuncs::calc_st. 0412 */ 0413 /*! 0414 \fn int Basic_Sfuncs::CalcEtaMu(ATOOLS::Vec4D*) 0415 Calculation of \f$\eta\f$ and \f$\mu\f$ for every vector in Basic_Sfuncs::Momlist. 0416 0417 \f$\eta_i=\sqrt{2p_ik_0}\f$ 0418 0419 \f$\mu_i=\pm\frac{m_i}{\eta_i}\f$ for external particles/antiparticles, and 0420 0421 \f$\mu_i=\frac{\sqrt{p_i}}{\eta_i}\f$ for propagators and polarizations. 0422 0423 If Basic_Sfuncs::m_precalc is set, all basic spinor products, enabled in 0424 Basic_Sfuncs::calc_st are calculated. 0425 */ 0426 /*! 0427 \fn void Basic_Sfuncs::InitGaugeTest(double theta) 0428 Initializes the internal gauge test for external massless vector bosons (photons or gluons). 0429 The test can only performed for unpolarized beams with a circular polarization basis. 0430 0431 External massless gauge bosons obey the completeness relation in the light-cone gauge 0432 \f[ 0433 \sum_{\lambda=\pm}\epsilon_{\mu}(p,\lambda)\epsilon^{*}_{\nu}(p,\lambda) = 0434 -\eta_{\mu\nu} + \frac{p_\mu q_\nu+p_\nu q_\mu}{p\cdot q} 0435 \f] 0436 where \f$q\f$ is any four-vector not alligned with \f$p\f$ and \f$q^2=0\f$. 0437 0438 By default \f$q\f$ is choosen to be \f$q=(p_0,-\vec{p})\f$, where 0439 \f[ 0440 \epsilon(p,\pm) = \frac{1}{\sqrt{2}}\left(0, 0441 \cos\theta\cos\varphi \mp i\sin\varphi,\cos\theta\sin\varphi \pm i\cos\varphi, 0442 -\sin\theta \right) 0443 \f] 0444 is a possible choice for the polarization vectors of a particle with momentum 0445 \f$p_{\mu} = \left(p_0,p_0\sin\theta\cos\varphi, 0446 p_0\sin\theta\sin\varphi,p_0\cos\theta\right)\f$. 0447 0448 This function redefines the polarization vectors to yield a completeness relation, 0449 where spacial part of \f$q\f$ has an arbitrary angle \f$\theta_0\f$ with respect to \f$-\vec{p}\f$. 0450 The circular polarization vectors are now 0451 \f[ 0452 \epsilon(p,\pm)=\frac{1}{{\cal N}}\times 0453 \left[ 0454 \left( 0455 \begin{array}{l} 0456 \cos{\frac{\theta_0}{2}}\cos{\frac{\theta}{2}}+\sin{\frac{\theta_0}{2}}\sin{\frac{\theta}{2}}\cos\varphi 0457 \\ 0458 \sin{\frac{\theta_0}{2}}\cos{\frac{\theta}{2}}+\cos{\frac{\theta_0}{2}}\sin{\frac{\theta}{2}}\cos\varphi 0459 \\ 0460 \cos{\frac{\theta_0}{2}}\sin{\frac{\theta}{2}}\sin\varphi 0461 \\ 0462 \cos{\frac{\theta_0}{2}}\cos{\frac{\theta}{2}}-\sin{\frac{\theta_0}{2}}\sin{\frac{\theta}{2}}\cos\varphi 0463 \end{array} 0464 \right) 0465 \mp i 0466 \left( 0467 \begin{array}{l} 0468 \sin{\frac{\theta_0}{2}}\sin{\frac{\theta}{2}}\sin\varphi 0469 \\ 0470 \cos{\frac{\theta_0}{2}}\sin{\frac{\theta}{2}}\sin\varphi 0471 \\ 0472 \sin{\frac{\theta_0}{2}}\cos{\frac{\theta}{2}}- 0473 \cos{\frac{\theta_0}{2}}\sin{\frac{\theta}{2}}\cos\varphi 0474 \\ 0475 -\sin{\frac{\theta_0}{2}}\sin{\frac{\theta}{2}}\sin\varphi 0476 \end{array} 0477 \right)\right] 0478 \f] 0479 where 0480 \f[ 0481 {\cal N} = \sqrt{1-\sin\theta\cos\varphi\sin{\theta_0}-\cos\theta\cos{\theta_0}}\,. 0482 \f] 0483 */ 0484 /*! 0485 \fn inline Complex Basic_Sfuncs::Mu(int i) 0486 Returns \f$\mu_i\f$. 0487 */ 0488 /*! 0489 \fn inline Complex Basic_Sfuncs::Eta(int i) 0490 Returns \f$\eta_i\f$. 0491 */ 0492 /*! 0493 \fn inline Complex Basic_Sfuncs::S0(int i,int j) 0494 Checks Basic_Sfuncs::calc_st if \f$S(+,p_i,p_j)\f$ is already calculated. 0495 If not Basic_Sfuncs::CalcS is started. 0496 Returns the complex value. 0497 */ 0498 /*! 0499 \fn inline Complex Basic_Sfuncs::S1(int i,int j) 0500 Checks Basic_Sfuncs::calc_st if \f$S(-,p_i,p_j)\f$ is already calculated. 0501 If not Basic_Sfuncs::CalcS is started. 0502 Returns the complex value. 0503 */ 0504 /*! 0505 \fn inline Complex Basic_Sfuncs::S0d(int i,int j) 0506 Returns \f$S(+,p_i,p_j)\f$. Basic_Sfuncs::StartPrecalc must be performed first. 0507 */ 0508 /*! 0509 \fn inline Complex Basic_Sfuncs::S1d(int i,int j) 0510 Returns \f$S(-,p_i,p_j)\f$. Basic_Sfuncs::StartPrecalc must be performed first. 0511 */ 0512 /*! 0513 \fn double Basic_Sfuncs::Norm(int,int) 0514 */ 0515 0516 /*! 0517 \fn int Basic_Sfuncs::GetNmomenta() 0518 Returns the number of external particles. 0519 */ 0520 /*! 0521 \fn inline int Basic_Sfuncs::Sign(int i) 0522 Returns a sign for external particles (see Basic_Sfuncs::b). 0523 */ 0524 /*! 0525 \fn inline ATOOLS::Flavour Basic_Sfuncs::GetFlavour(int i) 0526 Returns the flavour of an external particle. 0527 */ 0528 /*! 0529 \fn inline ATOOLS::Vec4D Basic_Sfuncs::Momentum(int i) 0530 Returns the real part of a momentum in Basic_Sfuncs::Momlist. 0531 */ 0532 /*! 0533 \fn inline ATOOLS::Vec4D Basic_Sfuncs::MomentumImg(int i) 0534 Returns the imaginary part of a momentum in Basic_Sfuncs::Momlist. 0535 */ 0536 /*! 0537 \fn inline bool Basic_Sfuncs::IsComplex(int i) 0538 Returns true, if the vector in Basic_Sfuncs::Momlist[i] may become complex. 0539 This is the case for mt::p_m, mt::p_p, mt::p_l, mt::p_s and mt::p_si. 0540 */ 0541 /*! 0542 \fn void Basic_Sfuncs::StartPrecalc() 0543 Activates the precalculation modus for the basic spinor products. 0544 All used spinor products are now calculated in advance. 0545 */ 0546 0547 /*! 0548 \fn bool Basic_Sfuncs::IsMomSum(int x,int y,int z) 0549 Checks if the momentum in Basic_Sfuncs::Momlist[x] is a sum of the other momentums 0550 or proportional to it. 0551 The method is used to check if some Basic_Xfunc are identical zero. 0552 */ 0553 } 0554 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |