File indexing completed on 2026-09-27 09:14:54
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef _HELIC_COMBO_
0010 #define _HELIC_COMBO_
0011
0012 #include <iostream>
0013 #include <vector>
0014 #include <array>
0015
0016 namespace jpacPhoto
0017 {
0018 const std::vector< std::array<int, 4> > SPIN_ZERO_HELICITIES =
0019 {
0020
0021 { 1, -1, 0, -1},
0022 { 1, -1, 0, 1},
0023 { 1, 1, 0, -1},
0024 { 1, 1, 0, 1},
0025 { -1, -1, 0, -1},
0026 { -1, -1, 0, 1},
0027 { -1, 1, 0, -1},
0028 { -1, 1, 0, 1}
0029 };
0030
0031 const std::vector< std::array<int, 4> > SPIN_ONE_HELICITIES =
0032 {
0033
0034 { 1, -1, 1, -1},
0035 { 1, -1, 1, 1},
0036 { 1, -1, 0, -1},
0037 { 1, -1, 0, 1},
0038 { 1, -1, -1, -1},
0039 { 1, -1, -1, 1},
0040 { 1, 1, 1, -1},
0041 { 1, 1, 1, 1},
0042 { 1, 1, 0, -1},
0043 { 1, 1, 0, 1},
0044 { 1, 1, -1, -1},
0045 { 1, 1, -1, 1},
0046 { -1, -1, 1, -1},
0047 { -1, -1, 1, 1},
0048 { -1, -1, 0, -1},
0049 { -1, -1, 0, 1},
0050 { -1, -1, -1, -1},
0051 { -1, -1, -1, 1},
0052 { -1, 1, 1, -1},
0053 { -1, 1, 1, 1},
0054 { -1, 1, 0, -1},
0055 { -1, 1, 0, 1},
0056 { -1, 1, -1, -1},
0057 { -1, 1, -1, 1}
0058 };
0059
0060 const std::vector< std::array<int, 4> > SPIN_TWO_HELICITIES =
0061 {
0062
0063 { 1, -1, 2, -1},
0064 { 1, -1, 2, 1},
0065 { 1, -1, 1, -1},
0066 { 1, -1, 1, 1},
0067 { 1, -1, 0, -1},
0068 { 1, -1, 0, 1},
0069 { 1, -1, -1, -1},
0070 { 1, -1, -1, 1},
0071 { 1, -1, -2, -1},
0072 { 1, -1, -2, 1},
0073 { 1, 1, 2, -1},
0074 { 1, 1, 2, 1},
0075 { 1, 1, 1, -1},
0076 { 1, 1, 1, 1},
0077 { 1, 1, 0, -1},
0078 { 1, 1, 0, 1},
0079 { 1, 1, -1, -1},
0080 { 1, 1, -1, 1},
0081 { 1, 1, -2, -1},
0082 { 1, 1, -2, 1},
0083 { -1, -1, 2, -1},
0084 { -1, -1, 2, 1},
0085 { -1, -1, 1, -1},
0086 { -1, -1, 1, 1},
0087 { -1, -1, 0, -1},
0088 { -1, -1, 0, 1},
0089 { -1, -1, -1, -1},
0090 { -1, -1, -1, 1},
0091 { -1, -1, -2, -1},
0092 { -1, -1, -2, 1},
0093 { -1, 1, 2, -1},
0094 { -1, 1, 2, 1},
0095 { -1, 1, 1, -1},
0096 { -1, 1, 1, 1},
0097 { -1, 1, 0, -1},
0098 { -1, 1, 0, 1},
0099 { -1, 1, -1, -1},
0100 { -1, 1, -1, 1},
0101 { -1, 1, -2, -1},
0102 { -1, 1, -2, 1}
0103 };
0104
0105
0106 inline std::vector<std::array<int, 4>> get_helicities(int J)
0107 {
0108 switch (J)
0109 {
0110 case 0: return SPIN_ZERO_HELICITIES;
0111 case 1: return SPIN_ONE_HELICITIES;
0112 case 2: return SPIN_TWO_HELICITIES;
0113 default:
0114 {
0115 std::cout << "Error! Amplitudes for spin J = " << J << " not yet implemented. Quitting...\n";
0116 exit(0);
0117 }
0118 };
0119
0120 return {};
0121 };
0122 };
0123
0124 #endif