|
|
|||
File indexing completed on 2026-08-06 09:24:11
0001 // -*- C++ -*- 0002 /* 0003 * Trace_basis.h 0004 * Contains the declarations of the class Trace_basis, related types and operators 0005 * Created on: Aug 9, 2012 0006 * Author: Malin Sjodahl 0007 */ 0008 0009 #ifndef COLORFULL_Trace_basis_h 0010 #define COLORFULL_Trace_basis_h 0011 0012 #include "Trace_type_basis.h" 0013 0014 namespace ColorFull { 0015 0016 0017 /// In a trace basis the basis vectors are closed or open quark-lines 0018 /// or products of close and open quark-lines. 0019 class Trace_basis:public Trace_type_basis { 0020 public: 0021 0022 /// Default constructor. 0023 Trace_basis():Trace_type_basis(){ 0024 initialize(); 0025 } 0026 0027 /// Constructor for creating a trace basis for n_quark qqbar-pairs 0028 /// and n_gluon gluons. 0029 Trace_basis( int n_quark, int n_gluon ){ 0030 initialize(); 0031 create_basis( n_quark, n_gluon ); 0032 } 0033 0034 /// Constructor for creating a trace basis for n_quark qqbar-pairs 0035 /// and n_gluon gluons, keeping only those color structures that 0036 /// can appear to order n_loop in pure QCD. 0037 /// (Note: For electroweak interactions more color structures may 0038 /// be needed.) 0039 Trace_basis( int n_quark, int n_gluon, int n_loop ){ 0040 initialize(); 0041 create_basis( n_quark, n_gluon, n_loop ); 0042 } 0043 0044 0045 /******************** Functions for basis creation **********************/ 0046 0047 /// Creates a trace basis with basis vectors saved in the cb member. 0048 /// Keeps all possible basis vectors, i.e., the basis is valid to any order 0049 /// in perturbation theory. 0050 void create_basis( int n_q, int n_g ); 0051 0052 /// Creates a trace basis with basis vectors saved in the cb member. 0053 /// Keeps only basis vectors needed up to n_loop in pure QCD. 0054 void create_basis( int n_q, int n_g, int n_loop ); 0055 0056 0057 private: 0058 0059 /******************** Internal function for basis creation **********************/ 0060 0061 /// Little helper function, called by all constructors. 0062 void initialize(){ 0063 nq=0; 0064 ng=0; 0065 tree_level_gluon_basis = false; 0066 orthogonal_basis = false; 0067 trace_basis = true; 0068 } 0069 0070 /// Function for creating a basis with n_q=n_qbar 0071 /// quarks and ng gluons to order n_loop, 0072 /// i.e. each Col_str is a product of at most 0073 /// max(1+nq)+n_loop Quark_lines. 0074 Col_amp create_trace_basis( int n_q, int n_g, int n_loop ) const; 0075 0076 /// Connect the n_q quarks in all n_q! ways. 0077 /// This function is used when creating a basis. 0078 Col_amp connect_quarks( int n_quark ) const; 0079 0080 /// Compute the new basis states coming from 0081 /// one old vector when one gluon, g_new, is added. 0082 Col_amp add_one_gluon( const Col_str & Cs, int g_new ) const; 0083 0084 /// Compute the basis if one gluon is added to the old basis Old_basis. 0085 /// If n_loop==0, only tree level states are constructed. 0086 Col_amp add_one_gluon( const Col_amp & Old_basis, int n_q, int g_new, int n_loop ) const; 0087 0088 }; 0089 0090 } /* namespace ColorFull */ 0091 #endif /* COLORFULL_Trace_basis_h */
| [ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
|
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
|