![]() |
|
|||
File indexing completed on 2025-04-19 09:09:45
0001 #ifndef AMEGIC_Amplitude_Amplitude_Manipulator_H 0002 #define AMEGIC_Amplitude_Amplitude_Manipulator_H 0003 0004 #include "ATOOLS/Phys/Flavour.H" 0005 #include "AMEGIC++/Main/Topology.H" 0006 #include "AMEGIC++/Amplitude/Single_Amplitude.H" 0007 0008 namespace AMEGIC { 0009 0010 class Amplitude_Manipulator { 0011 int N; 0012 ATOOLS::Flavour* fl; 0013 int* b; 0014 int dec; 0015 0016 void SetPrev(Point*); 0017 int Permutation(int*,int); 0018 void GetPerm(int*,Single_Amplitude*,int&); 0019 Point* FindNext(Point*); 0020 void GetFermionLine(Point*,Point*&,Point*&); 0021 Point* ForwardLine(Point*); 0022 Point* BackwardLine(Point*); 0023 0024 int SetPropOrientation(Point*,Point*); 0025 void ForwardLineOrientation(Point*,int&); 0026 void BackwardLineOrientation(Point*,int&); 0027 0028 int SetFermionNumberFlow(Point*,Point*); 0029 void SetForwardFNFlow(Point*,int,int&); 0030 void SetBackwardFNFlow(Point*,int,int&); 0031 0032 void SetMajoFlowForward(Point*,int); 0033 void SetMajoFlowBackward(Point*,int); 0034 0035 public: 0036 Amplitude_Manipulator(int _no,ATOOLS::Flavour* _fl,int* _b,int d=0): 0037 N(_no), fl(_fl), b(_b), dec(d){} 0038 void FixSign(Single_Amplitude*); 0039 }; 0040 0041 /*! 0042 \file 0043 \brief this file contains the class AMEGIC::Amplitude_Manipulator 0044 0045 */ 0046 0047 /*! \class Amplitude_Manipulator 0048 \brief is capable for fixing the relative sign of interferring Feynman graphs 0049 0050 A basic feature of many extensions of the SM, {\e e.g.} the MSSM, is the 0051 occurrence of Majorana fermion fields. Due to their self--conjugated nature 0052 diagrams with ``clashing arrows'' enter and a proper determination of the 0053 Relative Sign of Interfering Feynman graphs (RSIF) is far from being trivial. 0054 An approach easily applicable for an automated generation of Feynman graphs has 0055 been provided in \cite Denner1992vza. The Feynman rules defined there are close 0056 to the rules for Dirac fermions. Since for Majorana fermions the fermion number 0057 flow is violated the authors define a new kind of fermion chain orientation, called 0058 fermion flow. This continuous orientation forces the introduction of two analytic 0059 expressions for each vertex, one for fermion flow parallel and one for fermion 0060 flow anti--parallel to the conventional fermion number flow. However, the derived 0061 Feynman rules ask only for a minimal number of vertices and avoid the explicit 0062 occurrence of charge conjugation matrices in the vertices and propagators. In this 0063 framework the RSIF is determined from the permutation of the external 0064 fermions in the usual way. The precise determination of the RSIF according to the 0065 algorithm defined in \cite Denner1992vza is provided by the class 0066 {@link AMEGIC::Amplitude_Manipulator} 0067 */ 0068 0069 /*! 0070 \fn void Amplitude_Manipulator::SetPrev(Point*); 0071 \brief Describe SetPrev(Point*) ...; 0072 0073 */ 0074 /*! 0075 \fn int Amplitude_Manipulator::Permutation(int*,int); 0076 \brief Describe Permutation(int*,int); 0077 */ 0078 /*! 0079 \fn void Amplitude_Manipulator::GetPerm(int*,Single_Amplitude*,int&); 0080 \brief Describe GetPerm(int*,Single_Amplitude*,int&); 0081 */ 0082 /*! 0083 \fn Point* Amplitude_Manipulator::FindNext(Point*); 0084 \brief Describe FindNext(Point*); 0085 */ 0086 /*! 0087 \fn void Amplitude_Manipulator::GetFermionLine(Point*,Point*&,Point*&); 0088 \brief Describe GetFermionLine(Point*,Point*&,Point*&); 0089 */ 0090 /*! 0091 \fn Point* Amplitude_Manipulator::ForwardLine(Point*); 0092 \brief Describe ForwardLine(Point*); 0093 */ 0094 /*! 0095 \fn Point* Amplitude_Manipulator::BackwardLine(Point*); 0096 \brief Describe BackwardLine(Point*); 0097 */ 0098 /*! 0099 \fn int Amplitude_Manipulator::SetPropOrientation(Point*,Point*); 0100 \brief Describe SetPropOrientation(Point*,Point*); 0101 */ 0102 /*! 0103 \fn void Amplitude_Manipulator::ForwardLineOrientation(Point*,int&); 0104 \brief Describe ForwardLineOrientation(Point*,int&); 0105 */ 0106 /*! 0107 \fn void Amplitude_Manipulator::BackwardLineOrientation(Point*,int&); 0108 \brief Describe BackwardLineOrientation(Point*,int&); 0109 */ 0110 /*! 0111 \fn void Amplitude_Manipulator::SetFermionNumberFlow(Point*,Point*); 0112 \brief Describe SetFermionNumberFlow(Point*,Point*); 0113 */ 0114 /*! 0115 \fn void Amplitude_Manipulator::SetForwardFNFlow(Point*,int); 0116 \brief Describe SetForwardFNFlow(Point*,int); 0117 */ 0118 /*! 0119 \fn void Amplitude_Manipulator::SetBackwardFNFlow(Point*,int); 0120 \brief Describe SetBackwardFNFlow(Point*,int); 0121 */ 0122 } 0123 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |