Hammer  1.0.0
Helicity Amplitude Module for Matrix Element Reweighting
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
IndexLabels.hh
Go to the documentation of this file.
1 ///
2 /// @file IndexLabels.hh
3 /// @brief Tensor indices label definitions
4 ///
5 
6 //**** This file is a part of the HAMMER library
7 //**** Copyright (C) 2016 - 2020 The HAMMER Collaboration
8 //**** HAMMER is licensed under version 3 of the GPL; see COPYING for details
9 //**** Please note the MCnet academic guidelines; see GUIDELINES for details
10 
11 // -*- C++ -*-
12 #ifndef HAMMER_INDEXLABELS
13 #define HAMMER_INDEXLABELS
14 
15 namespace Hammer {
16 
17  ///@brief label identifiers of tensor indices
18  /// they are used to determine which indices
19  /// can be contracted together or traced over
20  /// and which indices are quantum numbers, Wilson
21  /// coefficient indices, form factor indices, etc.
22  /// Same labels in different tensors can be contracted
23  /// together, labels with opposite sign in the same tensor
24  /// can be traced over when squaring matrix elements.
25  /// The opposite sign convention determine the hermitean
26  /// conjugate index of a given type.
27  enum IndexLabel : int {
28  NONE = 0,
29 
31 
32  SPIN_TAUP = 1,
34  SPIN_TAUM = 2,
36  SPIN_MUP = 3,
38  SPIN_MUM = 4,
40  SPIN_EP = 5,
42  SPIN_EM = 6,
44 
49  SPIN_NUMU = 9,
53  SPIN_NUE = 11,
57 
58  SPIN_GAMMA = 13,
60  SPIN_DSTAR = 14,
64  SPIN_DSSD1 = 16,
68  SPIN_LB = 18,
70  SPIN_LC = 19,
72  SPIN_RHO = 20,
74 
83 
84 
89  SPIN_MUP_REF = 103,
91  SPIN_MUM_REF = 104,
93  SPIN_EP_REF = 105,
95  SPIN_EM_REF = 106,
109 
111 
112 
114 
117 
120 
121  WILSON_BCENU = 1003,
123 
126 
129 
130  WILSON_BUENU = 1006,
132 
133  WC_INDEX_END = 1999,
134 
136 
137  FF_BD = 2001,
139 
140  FF_BDSTAR = 2002,
142 
145 
148 
149  FF_BDSSD1 = 2005,
151 
154 
155  FF_BSDS = 2011,
157 
158  FF_BSDSSTAR = 2012,
160 
163 
166 
167  FF_BSDSSDS1 = 2015,
169 
172 
173  FF_BRHO = 2021,
175 
176  FF_LBLC = 2051,
178 
179  FF_TAU3PI = 2501,
181 
182  FF_INDEX_END = 2999,
183 
185 
186  FF_BD_VAR = 3001,
188 
191 
194 
197 
200 
203 
204  FF_BSDS_VAR = 3011,
206 
209 
212 
215 
218 
221 
222  FF_BRHO_VAR = 3021,
224 
225  FF_LBLC_VAR = 3051,
227 
229 
231 
232  };
233 
234  /// @brief determine if a given label is corresponds to a spin index (or reference spin index)
235  /// @param[in] val the label
236  /// @return true if label corresponds to (reference) spin index
237  bool isSpinQN(IndexLabel val);
238 
239 } // namespace Hammer
240 
241 #endif
bool isSpinQN(IndexLabel val)
determine if a given label is corresponds to a spin index (or reference spin index) ...
IndexLabel
label identifiers of tensor indices they are used to determine which indices can be contracted togeth...
Definition: IndexLabels.hh:27