Hyperiso 1.0.3
Modular flavour-physics calculations, Wilson coefficients and statistical inference
Loading...
Searching...
No Matches
DependenciesHelper.cpp
Go to the documentation of this file.
2
3// const std::unordered_set<ParamId> DependenciesHelper::common_deps = {
4// ParamId{ParameterType::SM, "SMINPUTS", 1},
5// ParamId{ParameterType::SM, "SMINPUTS", 2},
6// ParamId{ParameterType::SM, "SMINPUTS", 3},
7// ParamId{ParameterType::SM, "SMINPUTS", 4},
8// ParamId{ParameterType::SM, "SMINPUTS", 5},
9// ParamId{ParameterType::SM, "SMINPUTS", 6},
10// ParamId{ParameterType::SM, "SMINPUTS", {7, 1}},
11// ParamId{ParameterType::SM, "SMINPUTS", {7, 2}},
12// ParamId{ParameterType::SM, "MASS", 1},
13// ParamId{ParameterType::SM, "MASS", 2},
14// ParamId{ParameterType::SM, "MASS", 3},
15// ParamId{ParameterType::SM, "MASS", 4},
16// ParamId{ParameterType::SM, "MASS", 11},
17// ParamId{ParameterType::SM, "MASS", 13},
18// ParamId{ParameterType::SM, "MASS", 15},
19// ParamId{ParameterType::SM, "MASS", 24},
20// ParamId{ParameterType::SM, "MASS", 25},
21// ParamId{ParameterType::SM, "VCKM", {0, 0}},
22// ParamId{ParameterType::SM, "VCKM", {0, 1}},
23// ParamId{ParameterType::SM, "VCKM", {0, 2}},
24// ParamId{ParameterType::SM, "VCKM", {1, 0}},
25// ParamId{ParameterType::SM, "VCKM", {1, 1}},
26// ParamId{ParameterType::SM, "VCKM", {1, 2}},
27// ParamId{ParameterType::SM, "VCKM", {2, 0}},
28// ParamId{ParameterType::SM, "VCKM", {2, 1}},
29// ParamId{ParameterType::SM, "VCKM", {2, 2}},
30// // ParamId{ParameterType::SM, "UPMNS", {0, 0}},
31// // ParamId{ParameterType::SM, "UPMNS", {0, 1}},
32// // ParamId{ParameterType::SM, "UPMNS", {0, 2}},
33// // ParamId{ParameterType::SM, "UPMNS", {1, 0}},
34// // ParamId{ParameterType::SM, "UPMNS", {1, 1}},
35// // ParamId{ParameterType::SM, "UPMNS", {1, 2}},
36// // ParamId{ParameterType::SM, "UPMNS", {2, 0}},
37// // ParamId{ParameterType::SM, "UPMNS", {2, 1}},
38// // ParamId{ParameterType::SM, "UPMNS", {2, 2}},
39// ParamId{ParameterType::WILSON, "EW_SCALE", 1},
40// ParamId{ParameterType::WILSON, "B_SCALE", 1},
41// // ParamId{ParameterType::WILSON, "D_SCALE", 1},
42// // ParamId{ParameterType::WILSON, "K_SCALE", 1},
43// };
44
45// const std::map<DecayId, std::unordered_set<ParamId>> DependenciesHelper::dep_lists = {
46// {DecayMapper::to_id(Decays::B__D_l_nu), {
47// ParamId{ParameterType::FLAVOR, "FMASS", 511},
48// ParamId{ParameterType::FLAVOR, "FMASS", 411},
49// ParamId{ParameterType::FLAVOR, "FLIFE", 511},
50// ParamId{ParameterType::DECAY, "B_Dlnu", 1},
51// ParamId{ParameterType::DECAY, "B_Dlnu", 2},
52// ParamId{ParameterType::DECAY, "B_Dlnu", 3},
53// }},
54// {DecayMapper::to_id(Decays::B__Dstar_l_nu), {
55// ParamId{ParameterType::FLAVOR, "FMASS", 511},
56// ParamId{ParameterType::FLAVOR, "FMASS", 413},
57// ParamId{ParameterType::FLAVOR, "FLIFE", 511},
58// ParamId{ParameterType::DECAY, "B_Dslnu", 1},
59// ParamId{ParameterType::DECAY, "B_Dslnu", 2},
60// ParamId{ParameterType::DECAY, "B_Dslnu", 3},
61// ParamId{ParameterType::DECAY, "B_Dslnu", 4},
62// }},
63// {DecayMapper::to_id(Decays::B__K_l_l), {
64// ParamId{ParameterType::FLAVOR, "FMASS", 511},
65// ParamId{ParameterType::FLAVOR, "FMASS", 521},
66// ParamId{ParameterType::FLAVOR, "FLIFE", 511},
67// ParamId{ParameterType::FLAVOR, "FLIFE", 521},
68// ParamId{ParameterType::FLAVOR, "FMASS", 311},
69// ParamId{ParameterType::FLAVOR, "FMASS", 321},
70// ParamId{ParameterType::FLAVOR, "FCONST", {311, 1}},
71// ParamId{ParameterType::FLAVOR, "FCONST", {321, 1}},
72// ParamId{ParameterType::DECAY, "B_K", {8, 1}},
73// ParamId{ParameterType::DECAY, "B_K", {8, 2}},
74// ParamId{ParameterType::DECAY, "B_K", 13},
75// ParamId{ParameterType::DECAY, "B_K", 14},
76// ParamId{ParameterType::DECAY, "B_K", 16},
77// ParamId{ParameterType::DECAY, "B_K", {18, 1, 1}},
78// ParamId{ParameterType::DECAY, "B_K", {18, 1, 2}},
79// ParamId{ParameterType::DECAY, "B_K", {18, 1, 3}},
80// ParamId{ParameterType::DECAY, "B_K", {18, 1, 4}},
81// ParamId{ParameterType::DECAY, "B_K", {18, 2, 1}},
82// ParamId{ParameterType::DECAY, "B_K", {18, 2, 2}},
83// ParamId{ParameterType::DECAY, "B_K", {18, 2, 3}},
84// ParamId{ParameterType::DECAY, "B_K", {18, 2, 4}},
85// ParamId{ParameterType::DECAY, "B_K", {18, 3, 1}},
86// ParamId{ParameterType::DECAY, "B_K", {18, 3, 2}},
87// ParamId{ParameterType::DECAY, "B_K", {18, 3, 3}},
88// ParamId{ParameterType::DECAY, "B_K", {18, 3, 4}},
89// // ParamId{ParameterType::DECAY, "B_K", {1, 1, 0}},
90// // ParamId{ParameterType::DECAY, "B_K", {1, 1, 1}},
91// // ParamId{ParameterType::DECAY, "B_K", {1, 1, 2}},
92// // ParamId{ParameterType::DECAY, "B_K", {1, 1, 3}},
93// // ParamId{ParameterType::DECAY, "B_K", {1, 2, 0}},
94// // ParamId{ParameterType::DECAY, "B_K", {1, 2, 1}},
95// // ParamId{ParameterType::DECAY, "B_K", {1, 2, 2}},
96// // ParamId{ParameterType::DECAY, "B_K", {1, 2, 3}},
97// // ParamId{ParameterType::DECAY, "B_K", {1, 3, 0}},
98// // ParamId{ParameterType::DECAY, "B_K", {1, 3, 1}},
99// // ParamId{ParameterType::DECAY, "B_K", {1, 3, 2}},
100// // ParamId{ParameterType::DECAY, "B_K", {1, 3, 3}},
101// // ParamId{ParameterType::DECAY, "B_K", {2, 1, 0}},
102// // ParamId{ParameterType::DECAY, "B_K", {2, 1, 1}},
103// // ParamId{ParameterType::DECAY, "B_K", {2, 1, 2}},
104// // ParamId{ParameterType::DECAY, "B_K", {2, 2, 1}},
105// // ParamId{ParameterType::DECAY, "B_K", {2, 2, 2}},
106// // ParamId{ParameterType::DECAY, "B_K", {2, 3, 0}},
107// // ParamId{ParameterType::DECAY, "B_K", {2, 3, 1}},
108// // ParamId{ParameterType::DECAY, "B_K", {2, 3, 2}},
109// ParamId{ParameterType::DECAY, "B_K", {3, 1, 0}},
110// ParamId{ParameterType::DECAY, "B_K", {3, 1, 1}},
111// ParamId{ParameterType::DECAY, "B_K", {3, 1, 2}},
112// ParamId{ParameterType::DECAY, "B_K", {3, 2, 1}},
113// ParamId{ParameterType::DECAY, "B_K", {3, 2, 2}},
114// ParamId{ParameterType::DECAY, "B_K", {3, 3, 0}},
115// ParamId{ParameterType::DECAY, "B_K", {3, 3, 1}},
116// ParamId{ParameterType::DECAY, "B_K", {3, 3, 2}},
117// // ParamId{ParameterType::DECAY, "B_K", {4, 1, 0}},
118// // ParamId{ParameterType::DECAY, "B_K", {4, 1, 1}},
119// // ParamId{ParameterType::DECAY, "B_K", {4, 1, 2}},
120// // ParamId{ParameterType::DECAY, "B_K", {4, 2, 1}},
121// // ParamId{ParameterType::DECAY, "B_K", {4, 2, 2}},
122// // ParamId{ParameterType::DECAY, "B_K", {4, 3, 0}},
123// // ParamId{ParameterType::DECAY, "B_K", {4, 3, 1}},
124// // ParamId{ParameterType::DECAY, "B_K", {4, 3, 2}},
125// // ParamId{ParameterType::DECAY, "B_K", {5, 1, 0}},
126// // ParamId{ParameterType::DECAY, "B_K", {5, 1, 1}},
127// // ParamId{ParameterType::DECAY, "B_K", {5, 1, 2}},
128// // ParamId{ParameterType::DECAY, "B_K", {5, 2, 0}},
129// // ParamId{ParameterType::DECAY, "B_K", {5, 2, 1}},
130// // ParamId{ParameterType::DECAY, "B_K", {5, 3, 0}},
131// // ParamId{ParameterType::DECAY, "B_K", {5, 3, 1}},
132// // ParamId{ParameterType::DECAY, "B_K", {5, 3, 2}},
133// // ParamId{ParameterType::DECAY, "B_K", {6, 1, 1}},
134// // ParamId{ParameterType::DECAY, "B_K", {6, 1, 2}},
135// // ParamId{ParameterType::DECAY, "B_K", {6, 2, 0}},
136// // ParamId{ParameterType::DECAY, "B_K", {6, 2, 1}},
137// // ParamId{ParameterType::DECAY, "B_K", {6, 2, 2}},
138// // ParamId{ParameterType::DECAY, "B_K", {6, 3, 0}},
139// // ParamId{ParameterType::DECAY, "B_K", {6, 3, 1}},
140// // ParamId{ParameterType::DECAY, "B_K", {6, 3, 2}},
141// }},
142// {DecayMapper::to_id(Decays::B__Kstar_l_l), {
143// // TODO : Missing FFs
144// ParamId{ParameterType::FLAVOR, "FMASS", 511},
145// ParamId{ParameterType::FLAVOR, "FMASS", 521},
146// ParamId{ParameterType::FLAVOR, "FLIFE", 511},
147// ParamId{ParameterType::FLAVOR, "FLIFE", 521},
148// ParamId{ParameterType::FLAVOR, "FMASS", 313},
149// ParamId{ParameterType::FLAVOR, "FMASS", 323},
150// ParamId{ParameterType::FLAVOR, "FCONST", {313, 1}},
151// ParamId{ParameterType::FLAVOR, "FCONST", {313, 2}},
152// ParamId{ParameterType::FLAVOR, "FCONST", {323, 1}},
153// ParamId{ParameterType::FLAVOR, "FCONST", {323, 2}},
154// ParamId{ParameterType::DECAY, "B_Ks", {7, 1}},
155// ParamId{ParameterType::DECAY, "B_Ks", {7, 2}},
156// ParamId{ParameterType::DECAY, "B_Ks", {8, 1}},
157// ParamId{ParameterType::DECAY, "B_Ks", {8, 2}},
158// ParamId{ParameterType::DECAY, "B_Ks", 9},
159// ParamId{ParameterType::DECAY, "B_Ks", 10},
160// ParamId{ParameterType::DECAY, "B_Ks", 11},
161// ParamId{ParameterType::DECAY, "B_Ks", {12, 1}},
162// ParamId{ParameterType::DECAY, "B_Ks", {12, 2}},
163// ParamId{ParameterType::DECAY, "B_Ks", 14},
164// // ParamId{ParameterType::DECAY, "B_Ks", {1, 1, 0}},
165// // ParamId{ParameterType::DECAY, "B_Ks", {1, 1, 1}},
166// // ParamId{ParameterType::DECAY, "B_Ks", {1, 1, 2}},
167// // ParamId{ParameterType::DECAY, "B_Ks", {1, 2, 0}},
168// // ParamId{ParameterType::DECAY, "B_Ks", {1, 2, 1}},
169// // ParamId{ParameterType::DECAY, "B_Ks", {1, 2, 2}},
170// // ParamId{ParameterType::DECAY, "B_Ks", {1, 3, 0}},
171// // ParamId{ParameterType::DECAY, "B_Ks", {1, 3, 1}},
172// // ParamId{ParameterType::DECAY, "B_Ks", {1, 3, 2}},
173// // ParamId{ParameterType::DECAY, "B_Ks", {1, 4, 0}},
174// // ParamId{ParameterType::DECAY, "B_Ks", {1, 4, 1}},
175// // ParamId{ParameterType::DECAY, "B_Ks", {1, 4, 2}},
176// // ParamId{ParameterType::DECAY, "B_Ks", {1, 5, 0}},
177// // ParamId{ParameterType::DECAY, "B_Ks", {1, 5, 1}},
178// // ParamId{ParameterType::DECAY, "B_Ks", {1, 5, 2}},
179// // ParamId{ParameterType::DECAY, "B_Ks", {1, 6, 0}},
180// // ParamId{ParameterType::DECAY, "B_Ks", {1, 6, 1}},
181// // ParamId{ParameterType::DECAY, "B_Ks", {1, 6, 2}},
182// // ParamId{ParameterType::DECAY, "B_Ks", {1, 7, 0}},
183// // ParamId{ParameterType::DECAY, "B_Ks", {1, 7, 1}},
184// // ParamId{ParameterType::DECAY, "B_Ks", {1, 7, 2}},
185// ParamId{ParameterType::DECAY, "B_Ks", {3, 1, 0}},
186// ParamId{ParameterType::DECAY, "B_Ks", {3, 1, 1}},
187// ParamId{ParameterType::DECAY, "B_Ks", {3, 1, 2}},
188// ParamId{ParameterType::DECAY, "B_Ks", {3, 2, 0}},
189// ParamId{ParameterType::DECAY, "B_Ks", {3, 2, 1}},
190// ParamId{ParameterType::DECAY, "B_Ks", {3, 2, 2}},
191// ParamId{ParameterType::DECAY, "B_Ks", {3, 3, 1}},
192// ParamId{ParameterType::DECAY, "B_Ks", {3, 3, 2}},
193// ParamId{ParameterType::DECAY, "B_Ks", {3, 4, 0}},
194// ParamId{ParameterType::DECAY, "B_Ks", {3, 4, 1}},
195// ParamId{ParameterType::DECAY, "B_Ks", {3, 4, 2}},
196// ParamId{ParameterType::DECAY, "B_Ks", {3, 5, 0}},
197// ParamId{ParameterType::DECAY, "B_Ks", {3, 5, 1}},
198// ParamId{ParameterType::DECAY, "B_Ks", {3, 5, 2}},
199// ParamId{ParameterType::DECAY, "B_Ks", {3, 6, 1}},
200// ParamId{ParameterType::DECAY, "B_Ks", {3, 6, 2}},
201// ParamId{ParameterType::DECAY, "B_Ks", {3, 7, 0}},
202// ParamId{ParameterType::DECAY, "B_Ks", {3, 7, 1}},
203// ParamId{ParameterType::DECAY, "B_Ks", {3, 7, 2}},
204// ParamId{ParameterType::DECAY, "B_Ks", {18, 1, 1}},
205// ParamId{ParameterType::DECAY, "B_Ks", {18, 1, 2}},
206// ParamId{ParameterType::DECAY, "B_Ks", {18, 1, 3}},
207// ParamId{ParameterType::DECAY, "B_Ks", {18, 1, 4}},
208// ParamId{ParameterType::DECAY, "B_Ks", {18, 1, 5}},
209// ParamId{ParameterType::DECAY, "B_Ks", {18, 1, 6}},
210// ParamId{ParameterType::DECAY, "B_Ks", {18, 2, 1}},
211// ParamId{ParameterType::DECAY, "B_Ks", {18, 2, 2}},
212// ParamId{ParameterType::DECAY, "B_Ks", {18, 2, 3}},
213// ParamId{ParameterType::DECAY, "B_Ks", {18, 2, 4}},
214// ParamId{ParameterType::DECAY, "B_Ks", {18, 2, 5}},
215// ParamId{ParameterType::DECAY, "B_Ks", {18, 2, 6}},
216// ParamId{ParameterType::DECAY, "B_Ks", {18, 3, 1}},
217// ParamId{ParameterType::DECAY, "B_Ks", {18, 3, 2}},
218// ParamId{ParameterType::DECAY, "B_Ks", {18, 3, 3}},
219// ParamId{ParameterType::DECAY, "B_Ks", {18, 3, 4}},
220// ParamId{ParameterType::DECAY, "B_Ks", {18, 3, 5}},
221// ParamId{ParameterType::DECAY, "B_Ks", {18, 3, 6}},
222// ParamId{ParameterType::DECAY, "B_Ks", {18, 3, 7}},
223// ParamId{ParameterType::DECAY, "B_Ks", {18, 3, 8}},
224// ParamId{ParameterType::DECAY, "B_Ks", {18, 4, 1}},
225// ParamId{ParameterType::DECAY, "B_Ks", {18, 4, 2}},
226// ParamId{ParameterType::DECAY, "B_Ks", {18, 4, 3}},
227// ParamId{ParameterType::DECAY, "B_Ks", {18, 4, 4}},
228// ParamId{ParameterType::DECAY, "B_Ks", {18, 4, 5}},
229// ParamId{ParameterType::DECAY, "B_Ks", {18, 4, 6}},
230// ParamId{ParameterType::DECAY, "B_Ks", {18, 5, 1}},
231// ParamId{ParameterType::DECAY, "B_Ks", {18, 5, 2}},
232// ParamId{ParameterType::DECAY, "B_Ks", {18, 5, 3}},
233// ParamId{ParameterType::DECAY, "B_Ks", {18, 5, 4}},
234// ParamId{ParameterType::DECAY, "B_Ks", {18, 5, 5}},
235// ParamId{ParameterType::DECAY, "B_Ks", {18, 5, 6}},
236// ParamId{ParameterType::DECAY, "B_Ks", {18, 6, 1}},
237// ParamId{ParameterType::DECAY, "B_Ks", {18, 6, 2}},
238// ParamId{ParameterType::DECAY, "B_Ks", {18, 6, 3}},
239// ParamId{ParameterType::DECAY, "B_Ks", {18, 6, 4}},
240// ParamId{ParameterType::DECAY, "B_Ks", {18, 6, 5}},
241// ParamId{ParameterType::DECAY, "B_Ks", {18, 6, 6}},
242// ParamId{ParameterType::DECAY, "B_Ks", {18, 6, 7}},
243// ParamId{ParameterType::DECAY, "B_Ks", {18, 6, 8}},
244// }},
245// {DecayMapper::to_id(Decays::B__Kstar_gamma), {
246// ParamId{ParameterType::FLAVOR, "FMASS", 511},
247// ParamId{ParameterType::FLAVOR, "FMASS", 521},
248// ParamId{ParameterType::FLAVOR, "FLIFE", 511},
249// ParamId{ParameterType::FLAVOR, "FLIFE", 521},
250// ParamId{ParameterType::FLAVOR, "FMASS", 313},
251// ParamId{ParameterType::FLAVOR, "FMASS", 323},
252// ParamId{ParameterType::FLAVOR, "FCONST", {313, 1}},
253// ParamId{ParameterType::FLAVOR, "FCONST", {313, 2}},
254// ParamId{ParameterType::FLAVOR, "FCONST", {323, 1}},
255// ParamId{ParameterType::FLAVOR, "FCONST", {323, 2}},
256// ParamId{ParameterType::DECAY, "B_Ks", 13},
257// ParamId{ParameterType::DECAY, "B_Ks", 14},
258// ParamId{ParameterType::DECAY, "B_Ks", 17},
259// ParamId{ParameterType::DECAY, "B_Ks", {7, 1}},
260// ParamId{ParameterType::DECAY, "B_Ks", {7, 2}},
261// ParamId{ParameterType::DECAY, "B_Ks", {8, 1}},
262// ParamId{ParameterType::DECAY, "B_Ks", {8, 2}},
263// ParamId{ParameterType::DECAY, "B_Ks", 9},
264// ParamId{ParameterType::DECAY, "B_Ks", 10},
265// ParamId{ParameterType::DECAY, "B_Ks", 11},
266// ParamId{ParameterType::DECAY, "B_Ks", {12, 1}},
267// ParamId{ParameterType::DECAY, "B_Ks", {12, 2}},
268// // ParamId{ParameterType::DECAY, "B_Ks", {1, 1, 0}},
269// // ParamId{ParameterType::DECAY, "B_Ks", {1, 1, 1}},
270// // ParamId{ParameterType::DECAY, "B_Ks", {1, 1, 2}},
271// // ParamId{ParameterType::DECAY, "B_Ks", {1, 2, 0}},
272// // ParamId{ParameterType::DECAY, "B_Ks", {1, 2, 1}},
273// // ParamId{ParameterType::DECAY, "B_Ks", {1, 2, 2}},
274// // ParamId{ParameterType::DECAY, "B_Ks", {1, 3, 0}},
275// // ParamId{ParameterType::DECAY, "B_Ks", {1, 3, 1}},
276// // ParamId{ParameterType::DECAY, "B_Ks", {1, 3, 2}},
277// // ParamId{ParameterType::DECAY, "B_Ks", {1, 4, 0}},
278// // ParamId{ParameterType::DECAY, "B_Ks", {1, 4, 1}},
279// // ParamId{ParameterType::DECAY, "B_Ks", {1, 4, 2}},
280// // ParamId{ParameterType::DECAY, "B_Ks", {1, 5, 0}},
281// // ParamId{ParameterType::DECAY, "B_Ks", {1, 5, 1}},
282// // ParamId{ParameterType::DECAY, "B_Ks", {1, 5, 2}},
283// // ParamId{ParameterType::DECAY, "B_Ks", {1, 6, 0}},
284// // ParamId{ParameterType::DECAY, "B_Ks", {1, 6, 1}},
285// // ParamId{ParameterType::DECAY, "B_Ks", {1, 6, 2}},
286// // ParamId{ParameterType::DECAY, "B_Ks", {1, 7, 0}},
287// // ParamId{ParameterType::DECAY, "B_Ks", {1, 7, 1}},
288// // ParamId{ParameterType::DECAY, "B_Ks", {1, 7, 2}},
289// ParamId{ParameterType::DECAY, "B_Ks", {3, 1, 0}},
290// ParamId{ParameterType::DECAY, "B_Ks", {3, 1, 1}},
291// ParamId{ParameterType::DECAY, "B_Ks", {3, 1, 2}},
292// ParamId{ParameterType::DECAY, "B_Ks", {3, 2, 0}},
293// ParamId{ParameterType::DECAY, "B_Ks", {3, 2, 1}},
294// ParamId{ParameterType::DECAY, "B_Ks", {3, 2, 2}},
295// ParamId{ParameterType::DECAY, "B_Ks", {3, 3, 1}},
296// ParamId{ParameterType::DECAY, "B_Ks", {3, 3, 2}},
297// ParamId{ParameterType::DECAY, "B_Ks", {3, 4, 0}},
298// ParamId{ParameterType::DECAY, "B_Ks", {3, 4, 1}},
299// ParamId{ParameterType::DECAY, "B_Ks", {3, 4, 2}},
300// ParamId{ParameterType::DECAY, "B_Ks", {3, 5, 0}},
301// ParamId{ParameterType::DECAY, "B_Ks", {3, 5, 1}},
302// ParamId{ParameterType::DECAY, "B_Ks", {3, 5, 2}},
303// ParamId{ParameterType::DECAY, "B_Ks", {3, 6, 1}},
304// ParamId{ParameterType::DECAY, "B_Ks", {3, 6, 2}},
305// ParamId{ParameterType::DECAY, "B_Ks", {3, 7, 0}},
306// ParamId{ParameterType::DECAY, "B_Ks", {3, 7, 1}},
307// ParamId{ParameterType::DECAY, "B_Ks", {3, 7, 2}},
308// }},
309// {DecayMapper::to_id(Decays::B__l_l), {
310// ParamId{ParameterType::FLAVOR, "FMASS", 531},
311// ParamId{ParameterType::FLAVOR, "FMASS", 511},
312// ParamId{ParameterType::FLAVOR, "FLIFE", 531},
313// ParamId{ParameterType::FLAVOR, "FLIFE", 511},
314// ParamId{ParameterType::FLAVOR, "FCONST", {511, 1}},
315// ParamId{ParameterType::FLAVOR, "FCONST", {531, 1}},
316// ParamId{ParameterType::DECAY, "B_ll", 1},
317// ParamId{ParameterType::DECAY, "B_ll", 2},
318// }},
319// {DecayMapper::to_id(Decays::B__l_nu), {
320// ParamId{ParameterType::FLAVOR, "FMASS", 521},
321// ParamId{ParameterType::FLAVOR, "FLIFE", 521},
322// ParamId{ParameterType::FLAVOR, "FCONST", {521, 1}}
323// }},
324// {DecayMapper::to_id(Decays::Bs__phi_l_l), {
325// ParamId{ParameterType::FLAVOR, "FMASS", 531},
326// ParamId{ParameterType::FLAVOR, "FLIFE", 531},
327// ParamId{ParameterType::FLAVOR, "FMASS", 333},
328// ParamId{ParameterType::FLAVOR, "FCONST", {333, 1}},
329// ParamId{ParameterType::FLAVOR, "FCONST", {333, 2}},
330// ParamId{ParameterType::DECAY, "B_ll", 1},
331// ParamId{ParameterType::DECAY, "B_phi", {7, 1}},
332// ParamId{ParameterType::DECAY, "B_phi", {7, 2}},
333// ParamId{ParameterType::DECAY, "B_phi", {8, 1}},
334// ParamId{ParameterType::DECAY, "B_phi", {8, 2}},
335// ParamId{ParameterType::DECAY, "B_phi", 9},
336// ParamId{ParameterType::DECAY, "B_phi", 10},
337// ParamId{ParameterType::DECAY, "B_phi", 11},
338// ParamId{ParameterType::DECAY, "B_phi", {12, 1}},
339// ParamId{ParameterType::DECAY, "B_phi", {12, 2}},
340// ParamId{ParameterType::DECAY, "B_phi", 14},
341// // ParamId{ParameterType::DECAY, "B_phi", {1, 1, 0}},
342// // ParamId{ParameterType::DECAY, "B_phi", {1, 1, 1}},
343// // ParamId{ParameterType::DECAY, "B_phi", {1, 1, 2}},
344// // ParamId{ParameterType::DECAY, "B_phi", {1, 2, 0}},
345// // ParamId{ParameterType::DECAY, "B_phi", {1, 2, 1}},
346// // ParamId{ParameterType::DECAY, "B_phi", {1, 2, 2}},
347// // ParamId{ParameterType::DECAY, "B_phi", {1, 3, 0}},
348// // ParamId{ParameterType::DECAY, "B_phi", {1, 3, 1}},
349// // ParamId{ParameterType::DECAY, "B_phi", {1, 3, 2}},
350// // ParamId{ParameterType::DECAY, "B_phi", {1, 4, 0}},
351// // ParamId{ParameterType::DECAY, "B_phi", {1, 4, 1}},
352// // ParamId{ParameterType::DECAY, "B_phi", {1, 4, 2}},
353// // ParamId{ParameterType::DECAY, "B_phi", {1, 5, 0}},
354// // ParamId{ParameterType::DECAY, "B_phi", {1, 5, 1}},
355// // ParamId{ParameterType::DECAY, "B_phi", {1, 5, 2}},
356// // ParamId{ParameterType::DECAY, "B_phi", {1, 6, 0}},
357// // ParamId{ParameterType::DECAY, "B_phi", {1, 6, 1}},
358// // ParamId{ParameterType::DECAY, "B_phi", {1, 6, 2}},
359// // ParamId{ParameterType::DECAY, "B_phi", {1, 7, 0}},
360// // ParamId{ParameterType::DECAY, "B_phi", {1, 7, 1}},
361// // ParamId{ParameterType::DECAY, "B_phi", {1, 7, 2}},
362// ParamId{ParameterType::DECAY, "B_phi", {3, 1, 0}},
363// ParamId{ParameterType::DECAY, "B_phi", {3, 1, 1}},
364// ParamId{ParameterType::DECAY, "B_phi", {3, 1, 2}},
365// ParamId{ParameterType::DECAY, "B_phi", {3, 2, 0}},
366// ParamId{ParameterType::DECAY, "B_phi", {3, 2, 1}},
367// ParamId{ParameterType::DECAY, "B_phi", {3, 2, 2}},
368// ParamId{ParameterType::DECAY, "B_phi", {3, 3, 1}},
369// ParamId{ParameterType::DECAY, "B_phi", {3, 3, 2}},
370// ParamId{ParameterType::DECAY, "B_phi", {3, 4, 0}},
371// ParamId{ParameterType::DECAY, "B_phi", {3, 4, 1}},
372// ParamId{ParameterType::DECAY, "B_phi", {3, 4, 2}},
373// ParamId{ParameterType::DECAY, "B_phi", {3, 5, 0}},
374// ParamId{ParameterType::DECAY, "B_phi", {3, 5, 1}},
375// ParamId{ParameterType::DECAY, "B_phi", {3, 5, 2}},
376// ParamId{ParameterType::DECAY, "B_phi", {3, 6, 1}},
377// ParamId{ParameterType::DECAY, "B_phi", {3, 6, 2}},
378// ParamId{ParameterType::DECAY, "B_phi", {3, 7, 0}},
379// ParamId{ParameterType::DECAY, "B_phi", {3, 7, 1}},
380// ParamId{ParameterType::DECAY, "B_phi", {3, 7, 2}},
381// }},
382// {DecayMapper::to_id(Decays::B__Xs_gamma), {
383// ParamId{ParameterType::DECAY, "B_Xs", 2},
384// ParamId{ParameterType::DECAY, "B_Xs", 3},
385// ParamId{ParameterType::DECAY, "B_Xs", 4},
386// ParamId{ParameterType::DECAY, "B_Xs", 5},
387// ParamId{ParameterType::DECAY, "B_Xs", 6},
388// ParamId{ParameterType::DECAY, "B_Xs", 7},
389// ParamId{ParameterType::DECAY, "B_Xs", 10},
390// }},
391// {DecayMapper::to_id(Decays::B__Xs_l_l), {
392// ParamId{ParameterType::FLAVOR, "FMASS", 421},
393// ParamId{ParameterType::DECAY, "B_Xs", 2},
394// ParamId{ParameterType::DECAY, "B_Xs", 6},
395// ParamId{ParameterType::DECAY, "B_Xsll", 1},
396// ParamId{ParameterType::DECAY, "B_Xsll", 2},
397// ParamId{ParameterType::DECAY, "B_Xsll", {3, 11, 0}},
398// ParamId{ParameterType::DECAY, "B_Xsll", {3, 11, 1}},
399// ParamId{ParameterType::DECAY, "B_Xsll", {3, 11, 2}},
400// ParamId{ParameterType::DECAY, "B_Xsll", {3, 13, 0}},
401// ParamId{ParameterType::DECAY, "B_Xsll", {3, 13, 1}},
402// ParamId{ParameterType::DECAY, "B_Xsll", {3, 13, 2}},
403// }},
404// {DecayMapper::to_id(Decays::D__l_nu), {
405// ParamId{ParameterType::FLAVOR, "FMASS", 411},
406// ParamId{ParameterType::FLAVOR, "FLIFE", 411},
407// ParamId{ParameterType::FLAVOR, "FCONST", {411, 1}}
408// }},
409// {DecayMapper::to_id(Decays::Ds__l_nu), {
410// ParamId{ParameterType::FLAVOR, "FMASS", 431},
411// ParamId{ParameterType::FLAVOR, "FLIFE", 431},
412// ParamId{ParameterType::FLAVOR, "FCONST", {431, 1}}
413// }},
414// {DecayMapper::to_id(Decays::K__l_l), {
415// ParamId{ParameterType::FLAVOR, "FMASS", 111},
416// ParamId{ParameterType::FLAVOR, "FMASS", 113},
417// ParamId{ParameterType::FLAVOR, "FMASS", 311},
418// ParamId{ParameterType::FLAVOR, "FCONST", {311, 1}},
419// ParamId{ParameterType::FLAVOR, "FLIFE", 130},
420// ParamId{ParameterType::FLAVOR, "FLIFE", 310},
421// ParamId{ParameterType::DECAY, "K_ll", 1},
422// ParamId{ParameterType::DECAY, "K_ll", 2},
423// ParamId{ParameterType::DECAY, "K_ll", 3},
424// ParamId{ParameterType::DECAY, "K_ll", 4},
425// }},
426// {DecayMapper::to_id(Decays::K__l_nu), {
427// ParamId{ParameterType::DECAY, "K_lnu", 1},
428// ParamId{ParameterType::FLAVOR, "FMASS", 321},
429// ParamId{ParameterType::FLAVOR, "FLIFE", 321},
430// ParamId{ParameterType::FLAVOR, "FCONST", {321, 1}},
431// ParamId{ParameterType::FLAVOR, "FMASS", 211},
432// ParamId{ParameterType::FLAVOR, "FLIFE", 211},
433// ParamId{ParameterType::FLAVOR, "FCONST", {211, 1}},
434// ParamId{ParameterType::FLAVOR, "FCONSTRATIO", {321, 211, 1, 1}}
435// }},
436// {DecayMapper::to_id(Decays::K__pi_nu_nu), {
437// ParamId{ParameterType::DECAY, "K_pi", 1},
438// ParamId{ParameterType::DECAY, "K_pi", 2},
439// ParamId{ParameterType::DECAY, "K_pi", 3},
440// }},
441// {DecayMapper::to_id(Decays::Lambda_b__Lambda_l_l), {
442// ParamId{ParameterType::FLAVOR, "FMASS", 321},
443// ParamId{ParameterType::FLAVOR, "FMASS", 521},
444// ParamId{ParameterType::FLAVOR, "FMASS", 5122},
445// ParamId{ParameterType::FLAVOR, "FMASS", 3122},
446// ParamId{ParameterType::FLAVOR, "FLIFE", 5122},
447// ParamId{ParameterType::DECAY, "Lb_L", 8},
448// ParamId{ParameterType::DECAY, "Lb_L", {1, 1, 0}},
449// ParamId{ParameterType::DECAY, "Lb_L", {1, 1, 1}},
450// ParamId{ParameterType::DECAY, "Lb_L", {1, 1, 2}},
451// ParamId{ParameterType::DECAY, "Lb_L", {1, 2, 0}},
452// ParamId{ParameterType::DECAY, "Lb_L", {1, 2, 1}},
453// ParamId{ParameterType::DECAY, "Lb_L", {1, 2, 2}},
454// ParamId{ParameterType::DECAY, "Lb_L", {1, 3, 0}},
455// ParamId{ParameterType::DECAY, "Lb_L", {1, 3, 1}},
456// ParamId{ParameterType::DECAY, "Lb_L", {1, 3, 2}},
457// ParamId{ParameterType::DECAY, "Lb_L", {1, 4, 0}},
458// ParamId{ParameterType::DECAY, "Lb_L", {1, 4, 1}},
459// ParamId{ParameterType::DECAY, "Lb_L", {1, 4, 2}},
460// ParamId{ParameterType::DECAY, "Lb_L", {1, 5, 0}},
461// ParamId{ParameterType::DECAY, "Lb_L", {1, 5, 1}},
462// ParamId{ParameterType::DECAY, "Lb_L", {1, 5, 2}},
463// ParamId{ParameterType::DECAY, "Lb_L", {1, 6, 0}},
464// ParamId{ParameterType::DECAY, "Lb_L", {1, 6, 1}},
465// ParamId{ParameterType::DECAY, "Lb_L", {1, 6, 2}},
466// ParamId{ParameterType::DECAY, "Lb_L", {1, 7, 0}},
467// ParamId{ParameterType::DECAY, "Lb_L", {1, 7, 1}},
468// ParamId{ParameterType::DECAY, "Lb_L", {1, 7, 2}},
469// ParamId{ParameterType::DECAY, "Lb_L", {1, 8, 0}},
470// ParamId{ParameterType::DECAY, "Lb_L", {1, 8, 1}},
471// ParamId{ParameterType::DECAY, "Lb_L", {1, 8, 2}},
472// }},
473// {DecayMapper::to_id(Decays::M0_Mix), {
474// ParamId{ParameterType::FLAVOR, "FMASS", 311},
475// ParamId{ParameterType::FLAVOR, "FMASS", 421},
476// ParamId{ParameterType::FLAVOR, "FMASS", 511},
477// ParamId{ParameterType::FLAVOR, "FMASS", 531},
478// ParamId{ParameterType::FLAVOR, "FLIFE", 421},
479// ParamId{ParameterType::DECAY, "M0_Mix", 1},
480// ParamId{ParameterType::DECAY, "M0_Mix", 2},
481// ParamId{ParameterType::DECAY, "M0_Mix", 3},
482// ParamId{ParameterType::DECAY, "M0_Mix", {4, 1}},
483// ParamId{ParameterType::DECAY, "M0_Mix", {4, 2}},
484// ParamId{ParameterType::DECAY, "M0_Mix", {4, 3}},
485// ParamId{ParameterType::DECAY, "M0_Mix", {4, 4}},
486// ParamId{ParameterType::DECAY, "M0_Mix", {4, 5}},
487// ParamId{ParameterType::DECAY, "M0_Mix", 6},
488// ParamId{ParameterType::DECAY, "M0_Mix", 7},
489// ParamId{ParameterType::DECAY, "M0_Mix", 11},
490// ParamId{ParameterType::DECAY, "M0_Mix", 12},
491// }}
492// };
493
494// std::unordered_set<ParamId> DependenciesHelper::get_allowed_parameters(Observables id) {
495// ObservableId obs_id = ObservableMapper::to_id(id);
496
497// return get_allowed_parameters(obs_id);
498// }
499
500// bool DependenciesHelper::is_param_allowed(Observables id, ParamId pid) {
501// ObservableId obs_id = ObservableMapper::to_id(id);
502
503// return is_param_allowed(obs_id, pid);
504// }
505
506// std::unordered_set<ParamId> DependenciesHelper::get_allowed_parameters(ObservableId id) {
507// std::optional<DecayId> did = DecayMapper::get_decay_id(id);
508// if (!did.has_value()) {
509// LOG_WARN("No decay found for obs", id.str());
510// return {};
511// }
512
513// if (did.has_value()) {
514// auto decay_deps = dep_lists.at(did.value());
515// decay_deps.insert(common_deps.begin(), common_deps.end());
516// return decay_deps;
517// } else {
518// LOG_ERROR("ValueError", "Observable", ObservableMapper::str(id), "doesn't belong to any declared decay.");
519// }
520// }
521
522// bool DependenciesHelper::is_param_allowed(ObservableId id, ParamId pid) {
523// auto allowed = get_allowed_parameters(id);
524// return std::find(allowed.begin(), allowed.end(), pid) != allowed.end()
525// && std::find(common_deps.begin(), common_deps.end(), pid) != common_deps.end();
526// }
527
528#include "DependenciesHelper.h"
529
530const std::unordered_set<ParamId> DependenciesHelper::common_deps = {
531 ParamId{ParameterType::SM, "SMINPUTS", 1},
532 ParamId{ParameterType::SM, "SMINPUTS", 2},
533 ParamId{ParameterType::SM, "SMINPUTS", 3},
534 ParamId{ParameterType::SM, "SMINPUTS", 4},
535 ParamId{ParameterType::SM, "SMINPUTS", 5},
536 ParamId{ParameterType::SM, "SMINPUTS", 6},
537 ParamId{ParameterType::SM, "SMINPUTS", {7, 1}},
538 ParamId{ParameterType::SM, "SMINPUTS", {7, 2}},
539 ParamId{ParameterType::SM, "EW", {1, 2}},
540 ParamId{ParameterType::SM, "QCD", {5, 1}},
541 ParamId{ParameterType::SM, "QCD", {5, 2}},
542 ParamId{ParameterType::SM, "QCD", {5, 3}},
543 ParamId{ParameterType::SM, "MASS", 1},
544 ParamId{ParameterType::SM, "MASS", 2},
545 ParamId{ParameterType::SM, "MASS", 3},
546 ParamId{ParameterType::SM, "MASS", 4},
547 ParamId{ParameterType::SM, "MASS", 11},
548 ParamId{ParameterType::SM, "MASS", 13},
549 ParamId{ParameterType::SM, "MASS", 15},
550 ParamId{ParameterType::SM, "MASS", 24},
551 ParamId{ParameterType::SM, "MASS", 25},
552 ParamId{ParameterType::SM, "VCKM", {0, 0}},
553 ParamId{ParameterType::SM, "VCKM", {0, 1}},
554 ParamId{ParameterType::SM, "VCKM", {0, 2}},
555 ParamId{ParameterType::SM, "VCKM", {1, 0}},
556 ParamId{ParameterType::SM, "VCKM", {1, 1}},
557 ParamId{ParameterType::SM, "VCKM", {1, 2}},
558 ParamId{ParameterType::SM, "VCKM", {2, 0}},
559 ParamId{ParameterType::SM, "VCKM", {2, 1}},
560 ParamId{ParameterType::SM, "VCKM", {2, 2}},
561 // ParamId{ParameterType::SM, "UPMNS", {0, 0}},
562 // ParamId{ParameterType::SM, "UPMNS", {0, 1}},
563 // ParamId{ParameterType::SM, "UPMNS", {0, 2}},
564 // ParamId{ParameterType::SM, "UPMNS", {1, 0}},
565 // ParamId{ParameterType::SM, "UPMNS", {1, 1}},
566 // ParamId{ParameterType::SM, "UPMNS", {1, 2}},
567 // ParamId{ParameterType::SM, "UPMNS", {2, 0}},
568 // ParamId{ParameterType::SM, "UPMNS", {2, 1}},
569 // ParamId{ParameterType::SM, "UPMNS", {2, 2}},
570 ParamId{ParameterType::WILSON, "EW_SCALE", 1},
571 ParamId{ParameterType::WILSON, "B_SCALE", 1},
572 // ParamId{ParameterType::WILSON, "D_SCALE", 1},
573 // ParamId{ParameterType::WILSON, "K_SCALE", 1},
574};
575
576const std::map<DecayId, std::unordered_set<ParamId>> DependenciesHelper::dep_lists = {
578 ParamId{ParameterType::FLAVOR, "FMASS", 511},
579 ParamId{ParameterType::FLAVOR, "FMASS", 411},
580 ParamId{ParameterType::FLAVOR, "FLIFE", 511},
581 ParamId{ParameterType::DECAY, "B_Dlnu", 1},
582 ParamId{ParameterType::DECAY, "B_Dlnu", 2},
583 ParamId{ParameterType::DECAY, "B_Dlnu", 3},
584 }},
586 ParamId{ParameterType::FLAVOR, "FMASS", 511},
587 ParamId{ParameterType::FLAVOR, "FMASS", 413},
588 ParamId{ParameterType::FLAVOR, "FLIFE", 511},
589 ParamId{ParameterType::DECAY, "B_Dslnu", 1},
590 ParamId{ParameterType::DECAY, "B_Dslnu", 2},
591 ParamId{ParameterType::DECAY, "B_Dslnu", 3},
592 ParamId{ParameterType::DECAY, "B_Dslnu", 4},
593 }},
595 ParamId{ParameterType::FLAVOR, "FMASS", 511},
596 ParamId{ParameterType::FLAVOR, "FMASS", 521},
597 ParamId{ParameterType::FLAVOR, "FLIFE", 511},
598 ParamId{ParameterType::FLAVOR, "FLIFE", 521},
599 ParamId{ParameterType::FLAVOR, "FMASS", 311},
600 ParamId{ParameterType::FLAVOR, "FMASS", 321},
601 ParamId{ParameterType::FLAVOR, "FCONST", {311, 1}},
602 ParamId{ParameterType::FLAVOR, "FCONST", {321, 1}},
603 ParamId{ParameterType::DECAY, "B_K", {8, 1}},
604 ParamId{ParameterType::DECAY, "B_K", {8, 2}},
605 ParamId{ParameterType::DECAY, "B_K", 13},
606 ParamId{ParameterType::DECAY, "B_K", 14},
607 ParamId{ParameterType::DECAY, "B_K", {15, 1}},
608 ParamId{ParameterType::DECAY, "B_K", {15, 2}},
609 ParamId{ParameterType::DECAY, "B_K", 16},
610 ParamId{ParameterType::DECAY, "B_K", {18, 1, 1}},
611 ParamId{ParameterType::DECAY, "B_K", {18, 1, 2}},
612 ParamId{ParameterType::DECAY, "B_K", {18, 1, 3}},
613 ParamId{ParameterType::DECAY, "B_K", {18, 1, 4}},
614 ParamId{ParameterType::DECAY, "B_K", {18, 2, 1}},
615 ParamId{ParameterType::DECAY, "B_K", {18, 2, 2}},
616 ParamId{ParameterType::DECAY, "B_K", {18, 2, 3}},
617 ParamId{ParameterType::DECAY, "B_K", {18, 2, 4}},
618 ParamId{ParameterType::DECAY, "B_K", {18, 3, 1}},
619 ParamId{ParameterType::DECAY, "B_K", {18, 3, 2}},
620 ParamId{ParameterType::DECAY, "B_K", {18, 3, 3}},
621 ParamId{ParameterType::DECAY, "B_K", {18, 3, 4}},
622 ParamId{ParameterType::DECAY, "B_K", {1, 1, 0}},
623 ParamId{ParameterType::DECAY, "B_K", {1, 1, 1}},
624 ParamId{ParameterType::DECAY, "B_K", {1, 1, 2}},
625 ParamId{ParameterType::DECAY, "B_K", {1, 1, 3}},
626 ParamId{ParameterType::DECAY, "B_K", {1, 2, 0}},
627 ParamId{ParameterType::DECAY, "B_K", {1, 2, 1}},
628 ParamId{ParameterType::DECAY, "B_K", {1, 2, 2}},
629 ParamId{ParameterType::DECAY, "B_K", {1, 2, 3}},
630 ParamId{ParameterType::DECAY, "B_K", {1, 3, 0}},
631 ParamId{ParameterType::DECAY, "B_K", {1, 3, 1}},
632 ParamId{ParameterType::DECAY, "B_K", {1, 3, 2}},
633 ParamId{ParameterType::DECAY, "B_K", {1, 3, 3}},
634 ParamId{ParameterType::DECAY, "B_K", {2, 1, 0}},
635 ParamId{ParameterType::DECAY, "B_K", {2, 1, 1}},
636 ParamId{ParameterType::DECAY, "B_K", {2, 1, 2}},
637 ParamId{ParameterType::DECAY, "B_K", {2, 2, 1}},
638 ParamId{ParameterType::DECAY, "B_K", {2, 2, 2}},
639 ParamId{ParameterType::DECAY, "B_K", {2, 3, 0}},
640 ParamId{ParameterType::DECAY, "B_K", {2, 3, 1}},
641 ParamId{ParameterType::DECAY, "B_K", {2, 3, 2}},
642 ParamId{ParameterType::DECAY, "B_K", {3, 1, 0}},
643 ParamId{ParameterType::DECAY, "B_K", {3, 1, 1}},
644 ParamId{ParameterType::DECAY, "B_K", {3, 1, 2}},
645 ParamId{ParameterType::DECAY, "B_K", {3, 2, 1}},
646 ParamId{ParameterType::DECAY, "B_K", {3, 2, 2}},
647 ParamId{ParameterType::DECAY, "B_K", {3, 3, 0}},
648 ParamId{ParameterType::DECAY, "B_K", {3, 3, 1}},
649 ParamId{ParameterType::DECAY, "B_K", {3, 3, 2}},
650 ParamId{ParameterType::DECAY, "B_K", {4, 1, 0}},
651 ParamId{ParameterType::DECAY, "B_K", {4, 1, 1}},
652 ParamId{ParameterType::DECAY, "B_K", {4, 1, 2}},
653 ParamId{ParameterType::DECAY, "B_K", {4, 2, 1}},
654 ParamId{ParameterType::DECAY, "B_K", {4, 2, 2}},
655 ParamId{ParameterType::DECAY, "B_K", {4, 3, 0}},
656 ParamId{ParameterType::DECAY, "B_K", {4, 3, 1}},
657 ParamId{ParameterType::DECAY, "B_K", {4, 3, 2}},
658 ParamId{ParameterType::DECAY, "B_K", {5, 1, 0}},
659 ParamId{ParameterType::DECAY, "B_K", {5, 1, 1}},
660 ParamId{ParameterType::DECAY, "B_K", {5, 1, 2}},
661 ParamId{ParameterType::DECAY, "B_K", {5, 2, 0}},
662 ParamId{ParameterType::DECAY, "B_K", {5, 2, 1}},
663 ParamId{ParameterType::DECAY, "B_K", {5, 3, 0}},
664 ParamId{ParameterType::DECAY, "B_K", {5, 3, 1}},
665 ParamId{ParameterType::DECAY, "B_K", {5, 3, 2}},
666 ParamId{ParameterType::DECAY, "B_K", {6, 1, 1}},
667 ParamId{ParameterType::DECAY, "B_K", {6, 1, 2}},
668 ParamId{ParameterType::DECAY, "B_K", {6, 2, 0}},
669 ParamId{ParameterType::DECAY, "B_K", {6, 2, 1}},
670 ParamId{ParameterType::DECAY, "B_K", {6, 2, 2}},
671 ParamId{ParameterType::DECAY, "B_K", {6, 3, 0}},
672 ParamId{ParameterType::DECAY, "B_K", {6, 3, 1}},
673 ParamId{ParameterType::DECAY, "B_K", {6, 3, 2}},
674 }},
676 // TODO : Missing FFs
677 ParamId{ParameterType::FLAVOR, "FMASS", 511},
678 ParamId{ParameterType::FLAVOR, "FMASS", 521},
679 ParamId{ParameterType::FLAVOR, "FLIFE", 511},
680 ParamId{ParameterType::FLAVOR, "FLIFE", 521},
681 ParamId{ParameterType::FLAVOR, "FMASS", 313},
682 ParamId{ParameterType::FLAVOR, "FMASS", 323},
683 ParamId{ParameterType::FLAVOR, "FMASS", 421},
684 ParamId{ParameterType::FLAVOR, "FMASS", 443},
685 ParamId{ParameterType::FLAVOR, "FMASS", 100443},
686 ParamId{ParameterType::FLAVOR, "FCONST", {313, 1}},
687 ParamId{ParameterType::FLAVOR, "FCONST", {313, 2}},
688 ParamId{ParameterType::FLAVOR, "FCONST", {323, 1}},
689 ParamId{ParameterType::FLAVOR, "FCONST", {323, 2}},
690 ParamId{ParameterType::DECAY, "B_Ks", {7, 1}},
691 ParamId{ParameterType::DECAY, "B_Ks", {7, 2}},
692 ParamId{ParameterType::DECAY, "B_Ks", {8, 1}},
693 ParamId{ParameterType::DECAY, "B_Ks", {8, 2}},
694 ParamId{ParameterType::DECAY, "B_Ks", 9},
695 ParamId{ParameterType::DECAY, "B_Ks", 10},
696 ParamId{ParameterType::DECAY, "B_Ks", 11},
697 ParamId{ParameterType::DECAY, "B_Ks", {12, 1}},
698 ParamId{ParameterType::DECAY, "B_Ks", {12, 2}},
699 ParamId{ParameterType::DECAY, "B_Ks", 14},
700 ParamId{ParameterType::DECAY, "B_Ks", {15, 1}},
701 ParamId{ParameterType::DECAY, "B_Ks", {15, 2}},
702 ParamId{ParameterType::DECAY, "B_Ks", {1, 1, 0}},
703 ParamId{ParameterType::DECAY, "B_Ks", {1, 1, 1}},
704 ParamId{ParameterType::DECAY, "B_Ks", {1, 1, 2}},
705 ParamId{ParameterType::DECAY, "B_Ks", {1, 2, 0}},
706 ParamId{ParameterType::DECAY, "B_Ks", {1, 2, 1}},
707 ParamId{ParameterType::DECAY, "B_Ks", {1, 2, 2}},
708 ParamId{ParameterType::DECAY, "B_Ks", {1, 3, 0}},
709 ParamId{ParameterType::DECAY, "B_Ks", {1, 3, 1}},
710 ParamId{ParameterType::DECAY, "B_Ks", {1, 3, 2}},
711 ParamId{ParameterType::DECAY, "B_Ks", {1, 4, 0}},
712 ParamId{ParameterType::DECAY, "B_Ks", {1, 4, 1}},
713 ParamId{ParameterType::DECAY, "B_Ks", {1, 4, 2}},
714 ParamId{ParameterType::DECAY, "B_Ks", {1, 5, 0}},
715 ParamId{ParameterType::DECAY, "B_Ks", {1, 5, 1}},
716 ParamId{ParameterType::DECAY, "B_Ks", {1, 5, 2}},
717 ParamId{ParameterType::DECAY, "B_Ks", {1, 6, 0}},
718 ParamId{ParameterType::DECAY, "B_Ks", {1, 6, 1}},
719 ParamId{ParameterType::DECAY, "B_Ks", {1, 6, 2}},
720 ParamId{ParameterType::DECAY, "B_Ks", {1, 7, 0}},
721 ParamId{ParameterType::DECAY, "B_Ks", {1, 7, 1}},
722 ParamId{ParameterType::DECAY, "B_Ks", {1, 7, 2}},
723 ParamId{ParameterType::DECAY, "B_Ks", {3, 1, 0}},
724 ParamId{ParameterType::DECAY, "B_Ks", {3, 1, 1}},
725 ParamId{ParameterType::DECAY, "B_Ks", {3, 1, 2}},
726 ParamId{ParameterType::DECAY, "B_Ks", {3, 2, 0}},
727 ParamId{ParameterType::DECAY, "B_Ks", {3, 2, 1}},
728 ParamId{ParameterType::DECAY, "B_Ks", {3, 2, 2}},
729 ParamId{ParameterType::DECAY, "B_Ks", {3, 3, 1}},
730 ParamId{ParameterType::DECAY, "B_Ks", {3, 3, 2}},
731 ParamId{ParameterType::DECAY, "B_Ks", {3, 4, 0}},
732 ParamId{ParameterType::DECAY, "B_Ks", {3, 4, 1}},
733 ParamId{ParameterType::DECAY, "B_Ks", {3, 4, 2}},
734 ParamId{ParameterType::DECAY, "B_Ks", {3, 5, 0}},
735 ParamId{ParameterType::DECAY, "B_Ks", {3, 5, 1}},
736 ParamId{ParameterType::DECAY, "B_Ks", {3, 5, 2}},
737 ParamId{ParameterType::DECAY, "B_Ks", {3, 6, 1}},
738 ParamId{ParameterType::DECAY, "B_Ks", {3, 6, 2}},
739 ParamId{ParameterType::DECAY, "B_Ks", {3, 7, 0}},
740 ParamId{ParameterType::DECAY, "B_Ks", {3, 7, 1}},
741 ParamId{ParameterType::DECAY, "B_Ks", {3, 7, 2}},
742 ParamId{ParameterType::DECAY, "B_Ks", {18, 1, 1}},
743 ParamId{ParameterType::DECAY, "B_Ks", {18, 1, 2}},
744 ParamId{ParameterType::DECAY, "B_Ks", {18, 1, 3}},
745 ParamId{ParameterType::DECAY, "B_Ks", {18, 1, 4}},
746 ParamId{ParameterType::DECAY, "B_Ks", {18, 1, 5}},
747 ParamId{ParameterType::DECAY, "B_Ks", {18, 1, 6}},
748 ParamId{ParameterType::DECAY, "B_Ks", {18, 2, 1}},
749 ParamId{ParameterType::DECAY, "B_Ks", {18, 2, 2}},
750 ParamId{ParameterType::DECAY, "B_Ks", {18, 2, 3}},
751 ParamId{ParameterType::DECAY, "B_Ks", {18, 2, 4}},
752 ParamId{ParameterType::DECAY, "B_Ks", {18, 2, 5}},
753 ParamId{ParameterType::DECAY, "B_Ks", {18, 2, 6}},
754 ParamId{ParameterType::DECAY, "B_Ks", {18, 3, 1}},
755 ParamId{ParameterType::DECAY, "B_Ks", {18, 3, 2}},
756 ParamId{ParameterType::DECAY, "B_Ks", {18, 3, 3}},
757 ParamId{ParameterType::DECAY, "B_Ks", {18, 3, 4}},
758 ParamId{ParameterType::DECAY, "B_Ks", {18, 3, 5}},
759 ParamId{ParameterType::DECAY, "B_Ks", {18, 3, 6}},
760 ParamId{ParameterType::DECAY, "B_Ks", {18, 3, 7}},
761 ParamId{ParameterType::DECAY, "B_Ks", {18, 3, 8}},
762 ParamId{ParameterType::DECAY, "B_Ks", {18, 4, 1}},
763 ParamId{ParameterType::DECAY, "B_Ks", {18, 4, 2}},
764 ParamId{ParameterType::DECAY, "B_Ks", {18, 4, 3}},
765 ParamId{ParameterType::DECAY, "B_Ks", {18, 4, 4}},
766 ParamId{ParameterType::DECAY, "B_Ks", {18, 4, 5}},
767 ParamId{ParameterType::DECAY, "B_Ks", {18, 4, 6}},
768 ParamId{ParameterType::DECAY, "B_Ks", {18, 5, 1}},
769 ParamId{ParameterType::DECAY, "B_Ks", {18, 5, 2}},
770 ParamId{ParameterType::DECAY, "B_Ks", {18, 5, 3}},
771 ParamId{ParameterType::DECAY, "B_Ks", {18, 5, 4}},
772 ParamId{ParameterType::DECAY, "B_Ks", {18, 5, 5}},
773 ParamId{ParameterType::DECAY, "B_Ks", {18, 5, 6}},
774 ParamId{ParameterType::DECAY, "B_Ks", {18, 6, 1}},
775 ParamId{ParameterType::DECAY, "B_Ks", {18, 6, 2}},
776 ParamId{ParameterType::DECAY, "B_Ks", {18, 6, 3}},
777 ParamId{ParameterType::DECAY, "B_Ks", {18, 6, 4}},
778 ParamId{ParameterType::DECAY, "B_Ks", {18, 6, 5}},
779 ParamId{ParameterType::DECAY, "B_Ks", {18, 6, 6}},
780 ParamId{ParameterType::DECAY, "B_Ks", {18, 6, 7}},
781 ParamId{ParameterType::DECAY, "B_Ks", {18, 6, 8}},
782 // Non-factorizable / power-correction inputs used by BCvDV and KMPW implementations.
783 ParamId{ParameterType::DECAY, "B_Ks", {19, 1, 1, 0}},
784 ParamId{ParameterType::DECAY, "B_Ks", {19, 1, 1, 1}},
785 ParamId{ParameterType::DECAY, "B_Ks", {19, 1, 1, 2}},
786 ParamId{ParameterType::DECAY, "B_Ks", {19, 1, 2, 0}},
787 ParamId{ParameterType::DECAY, "B_Ks", {19, 1, 2, 1}},
788 ParamId{ParameterType::DECAY, "B_Ks", {19, 1, 2, 2}},
789 ParamId{ParameterType::DECAY, "B_Ks", {19, 2, 1, 0}},
790 ParamId{ParameterType::DECAY, "B_Ks", {19, 2, 1, 1}},
791 ParamId{ParameterType::DECAY, "B_Ks", {19, 2, 1, 2}},
792 ParamId{ParameterType::DECAY, "B_Ks", {19, 2, 2, 0}},
793 ParamId{ParameterType::DECAY, "B_Ks", {19, 2, 2, 1}},
794 ParamId{ParameterType::DECAY, "B_Ks", {19, 2, 2, 2}},
795 ParamId{ParameterType::DECAY, "B_Ks", {19, 1, 3, 0}},
796 ParamId{ParameterType::DECAY, "B_Ks", {19, 1, 3, 1}},
797 ParamId{ParameterType::DECAY, "B_Ks", {19, 2, 3, 0}},
798 ParamId{ParameterType::DECAY, "B_Ks", {19, 2, 3, 1}},
799 ParamId{ParameterType::DECAY, "B_Ks", {20, 0}},
800 ParamId{ParameterType::DECAY, "B_Ks", {20, 1}},
801 ParamId{ParameterType::DECAY, "B_Ks", {20, 2}},
802 ParamId{ParameterType::DECAY, "B_Ks", {21, 1, 0}},
803 ParamId{ParameterType::DECAY, "B_Ks", {21, 1, 1}},
804 ParamId{ParameterType::DECAY, "B_Ks", {21, 1, 2}},
805 ParamId{ParameterType::DECAY, "B_Ks", {21, 2, 0}},
806 ParamId{ParameterType::DECAY, "B_Ks", {21, 2, 1}},
807 ParamId{ParameterType::DECAY, "B_Ks", {21, 2, 2}},
808 }},
810 ParamId{ParameterType::FLAVOR, "FMASS", 511},
811 ParamId{ParameterType::FLAVOR, "FMASS", 521},
812 ParamId{ParameterType::FLAVOR, "FLIFE", 511},
813 ParamId{ParameterType::FLAVOR, "FLIFE", 521},
814 ParamId{ParameterType::FLAVOR, "FMASS", 313},
815 ParamId{ParameterType::FLAVOR, "FMASS", 323},
816 ParamId{ParameterType::FLAVOR, "FCONST", {313, 1}},
817 ParamId{ParameterType::FLAVOR, "FCONST", {313, 2}},
818 ParamId{ParameterType::FLAVOR, "FCONST", {323, 1}},
819 ParamId{ParameterType::FLAVOR, "FCONST", {323, 2}},
820 ParamId{ParameterType::FLAVOR, "FCONST", {511, 1}},
821 ParamId{ParameterType::FLAVOR, "FCONST", {521, 1}},
822 ParamId{ParameterType::DECAY, "B_Ks", 13},
823 ParamId{ParameterType::DECAY, "B_Ks", 14},
824 ParamId{ParameterType::DECAY, "B_Ks", 17},
825 ParamId{ParameterType::DECAY, "B_Ks", {7, 1}},
826 ParamId{ParameterType::DECAY, "B_Ks", {7, 2}},
827 ParamId{ParameterType::DECAY, "B_Ks", {8, 1}},
828 ParamId{ParameterType::DECAY, "B_Ks", {8, 2}},
829 ParamId{ParameterType::DECAY, "B_Ks", 9},
830 ParamId{ParameterType::DECAY, "B_Ks", 10},
831 ParamId{ParameterType::DECAY, "B_Ks", 11},
832 ParamId{ParameterType::DECAY, "B_Ks", {12, 1}},
833 ParamId{ParameterType::DECAY, "B_Ks", {12, 2}},
834 ParamId{ParameterType::DECAY, "B_Ks", {1, 1, 0}},
835 ParamId{ParameterType::DECAY, "B_Ks", {1, 1, 1}},
836 ParamId{ParameterType::DECAY, "B_Ks", {1, 1, 2}},
837 ParamId{ParameterType::DECAY, "B_Ks", {1, 2, 0}},
838 ParamId{ParameterType::DECAY, "B_Ks", {1, 2, 1}},
839 ParamId{ParameterType::DECAY, "B_Ks", {1, 2, 2}},
840 ParamId{ParameterType::DECAY, "B_Ks", {1, 3, 0}},
841 ParamId{ParameterType::DECAY, "B_Ks", {1, 3, 1}},
842 ParamId{ParameterType::DECAY, "B_Ks", {1, 3, 2}},
843 ParamId{ParameterType::DECAY, "B_Ks", {1, 4, 0}},
844 ParamId{ParameterType::DECAY, "B_Ks", {1, 4, 1}},
845 ParamId{ParameterType::DECAY, "B_Ks", {1, 4, 2}},
846 ParamId{ParameterType::DECAY, "B_Ks", {1, 5, 0}},
847 ParamId{ParameterType::DECAY, "B_Ks", {1, 5, 1}},
848 ParamId{ParameterType::DECAY, "B_Ks", {1, 5, 2}},
849 ParamId{ParameterType::DECAY, "B_Ks", {1, 6, 0}},
850 ParamId{ParameterType::DECAY, "B_Ks", {1, 6, 1}},
851 ParamId{ParameterType::DECAY, "B_Ks", {1, 6, 2}},
852 ParamId{ParameterType::DECAY, "B_Ks", {1, 7, 0}},
853 ParamId{ParameterType::DECAY, "B_Ks", {1, 7, 1}},
854 ParamId{ParameterType::DECAY, "B_Ks", {1, 7, 2}},
855 ParamId{ParameterType::DECAY, "B_Ks", {3, 1, 0}},
856 ParamId{ParameterType::DECAY, "B_Ks", {3, 1, 1}},
857 ParamId{ParameterType::DECAY, "B_Ks", {3, 1, 2}},
858 ParamId{ParameterType::DECAY, "B_Ks", {3, 2, 0}},
859 ParamId{ParameterType::DECAY, "B_Ks", {3, 2, 1}},
860 ParamId{ParameterType::DECAY, "B_Ks", {3, 2, 2}},
861 ParamId{ParameterType::DECAY, "B_Ks", {3, 3, 1}},
862 ParamId{ParameterType::DECAY, "B_Ks", {3, 3, 2}},
863 ParamId{ParameterType::DECAY, "B_Ks", {3, 4, 0}},
864 ParamId{ParameterType::DECAY, "B_Ks", {3, 4, 1}},
865 ParamId{ParameterType::DECAY, "B_Ks", {3, 4, 2}},
866 ParamId{ParameterType::DECAY, "B_Ks", {3, 5, 0}},
867 ParamId{ParameterType::DECAY, "B_Ks", {3, 5, 1}},
868 ParamId{ParameterType::DECAY, "B_Ks", {3, 5, 2}},
869 ParamId{ParameterType::DECAY, "B_Ks", {3, 6, 1}},
870 ParamId{ParameterType::DECAY, "B_Ks", {3, 6, 2}},
871 ParamId{ParameterType::DECAY, "B_Ks", {3, 7, 0}},
872 ParamId{ParameterType::DECAY, "B_Ks", {3, 7, 1}},
873 ParamId{ParameterType::DECAY, "B_Ks", {3, 7, 2}},
874 }},
876 ParamId{ParameterType::FLAVOR, "FMASS", 531},
877 ParamId{ParameterType::FLAVOR, "FMASS", 511},
878 ParamId{ParameterType::FLAVOR, "FLIFE", 531},
879 ParamId{ParameterType::FLAVOR, "FLIFE", 511},
880 ParamId{ParameterType::FLAVOR, "FCONST", {511, 1}},
881 ParamId{ParameterType::FLAVOR, "FCONST", {531, 1}},
882 ParamId{ParameterType::DECAY, "B_ll", 1},
883 ParamId{ParameterType::DECAY, "B_ll", 2},
884 }},
886 ParamId{ParameterType::FLAVOR, "FMASS", 521},
887 ParamId{ParameterType::FLAVOR, "FLIFE", 521},
888 ParamId{ParameterType::FLAVOR, "FCONST", {521, 1}}
889 }},
891 ParamId{ParameterType::FLAVOR, "FMASS", 531},
892 ParamId{ParameterType::FLAVOR, "FLIFE", 531},
893 ParamId{ParameterType::FLAVOR, "FMASS", 333},
894 ParamId{ParameterType::FLAVOR, "FCONST", {333, 1}},
895 ParamId{ParameterType::FLAVOR, "FCONST", {333, 2}},
896 ParamId{ParameterType::DECAY, "B_ll", 1},
897 ParamId{ParameterType::DECAY, "B_phi", {7, 1}},
898 ParamId{ParameterType::DECAY, "B_phi", {7, 2}},
899 ParamId{ParameterType::DECAY, "B_phi", {8, 1}},
900 ParamId{ParameterType::DECAY, "B_phi", {8, 2}},
901 ParamId{ParameterType::DECAY, "B_phi", 9},
902 ParamId{ParameterType::DECAY, "B_phi", 10},
903 ParamId{ParameterType::DECAY, "B_phi", 11},
904 ParamId{ParameterType::DECAY, "B_phi", {12, 1}},
905 ParamId{ParameterType::DECAY, "B_phi", {12, 2}},
906 ParamId{ParameterType::DECAY, "B_phi", 14},
907 ParamId{ParameterType::DECAY, "B_phi", {15, 1}},
908 ParamId{ParameterType::DECAY, "B_phi", {15, 2}},
909 ParamId{ParameterType::DECAY, "B_phi", {1, 1, 0}},
910 ParamId{ParameterType::DECAY, "B_phi", {1, 1, 1}},
911 ParamId{ParameterType::DECAY, "B_phi", {1, 1, 2}},
912 ParamId{ParameterType::DECAY, "B_phi", {1, 2, 0}},
913 ParamId{ParameterType::DECAY, "B_phi", {1, 2, 1}},
914 ParamId{ParameterType::DECAY, "B_phi", {1, 2, 2}},
915 ParamId{ParameterType::DECAY, "B_phi", {1, 3, 0}},
916 ParamId{ParameterType::DECAY, "B_phi", {1, 3, 1}},
917 ParamId{ParameterType::DECAY, "B_phi", {1, 3, 2}},
918 ParamId{ParameterType::DECAY, "B_phi", {1, 4, 0}},
919 ParamId{ParameterType::DECAY, "B_phi", {1, 4, 1}},
920 ParamId{ParameterType::DECAY, "B_phi", {1, 4, 2}},
921 ParamId{ParameterType::DECAY, "B_phi", {1, 5, 0}},
922 ParamId{ParameterType::DECAY, "B_phi", {1, 5, 1}},
923 ParamId{ParameterType::DECAY, "B_phi", {1, 5, 2}},
924 ParamId{ParameterType::DECAY, "B_phi", {1, 6, 0}},
925 ParamId{ParameterType::DECAY, "B_phi", {1, 6, 1}},
926 ParamId{ParameterType::DECAY, "B_phi", {1, 6, 2}},
927 ParamId{ParameterType::DECAY, "B_phi", {1, 7, 0}},
928 ParamId{ParameterType::DECAY, "B_phi", {1, 7, 1}},
929 ParamId{ParameterType::DECAY, "B_phi", {1, 7, 2}},
930 ParamId{ParameterType::DECAY, "B_phi", {3, 1, 0}},
931 ParamId{ParameterType::DECAY, "B_phi", {3, 1, 1}},
932 ParamId{ParameterType::DECAY, "B_phi", {3, 1, 2}},
933 ParamId{ParameterType::DECAY, "B_phi", {3, 2, 0}},
934 ParamId{ParameterType::DECAY, "B_phi", {3, 2, 1}},
935 ParamId{ParameterType::DECAY, "B_phi", {3, 2, 2}},
936 ParamId{ParameterType::DECAY, "B_phi", {3, 3, 1}},
937 ParamId{ParameterType::DECAY, "B_phi", {3, 3, 2}},
938 ParamId{ParameterType::DECAY, "B_phi", {3, 4, 0}},
939 ParamId{ParameterType::DECAY, "B_phi", {3, 4, 1}},
940 ParamId{ParameterType::DECAY, "B_phi", {3, 4, 2}},
941 ParamId{ParameterType::DECAY, "B_phi", {3, 5, 0}},
942 ParamId{ParameterType::DECAY, "B_phi", {3, 5, 1}},
943 ParamId{ParameterType::DECAY, "B_phi", {3, 5, 2}},
944 ParamId{ParameterType::DECAY, "B_phi", {3, 6, 1}},
945 ParamId{ParameterType::DECAY, "B_phi", {3, 6, 2}},
946 ParamId{ParameterType::DECAY, "B_phi", {3, 7, 0}},
947 ParamId{ParameterType::DECAY, "B_phi", {3, 7, 1}},
948 ParamId{ParameterType::DECAY, "B_phi", {3, 7, 2}},
949 // Power-correction inputs used directly in BsPhiDecay::load_params().
950 ParamId{ParameterType::DECAY, "B_phi", {18, 1, 1}},
951 ParamId{ParameterType::DECAY, "B_phi", {18, 1, 2}},
952 ParamId{ParameterType::DECAY, "B_phi", {18, 1, 3}},
953 ParamId{ParameterType::DECAY, "B_phi", {18, 1, 4}},
954 ParamId{ParameterType::DECAY, "B_phi", {18, 1, 5}},
955 ParamId{ParameterType::DECAY, "B_phi", {18, 1, 6}},
956 ParamId{ParameterType::DECAY, "B_phi", {18, 2, 1}},
957 ParamId{ParameterType::DECAY, "B_phi", {18, 2, 2}},
958 ParamId{ParameterType::DECAY, "B_phi", {18, 2, 3}},
959 ParamId{ParameterType::DECAY, "B_phi", {18, 2, 4}},
960 ParamId{ParameterType::DECAY, "B_phi", {18, 2, 5}},
961 ParamId{ParameterType::DECAY, "B_phi", {18, 2, 6}},
962 ParamId{ParameterType::DECAY, "B_phi", {18, 3, 1}},
963 ParamId{ParameterType::DECAY, "B_phi", {18, 3, 2}},
964 ParamId{ParameterType::DECAY, "B_phi", {18, 3, 3}},
965 ParamId{ParameterType::DECAY, "B_phi", {18, 3, 4}},
966 ParamId{ParameterType::DECAY, "B_phi", {18, 3, 5}},
967 ParamId{ParameterType::DECAY, "B_phi", {18, 3, 6}},
968 ParamId{ParameterType::DECAY, "B_phi", {18, 3, 7}},
969 ParamId{ParameterType::DECAY, "B_phi", {18, 3, 8}},
970 }},
972 ParamId{ParameterType::DECAY, "B_Xs", 2},
973 ParamId{ParameterType::DECAY, "B_Xs", 3},
974 ParamId{ParameterType::DECAY, "B_Xs", 4},
975 ParamId{ParameterType::DECAY, "B_Xs", 5},
976 ParamId{ParameterType::DECAY, "B_Xs", 6},
977 ParamId{ParameterType::DECAY, "B_Xs", 7},
978 ParamId{ParameterType::DECAY, "B_Xs", 10},
979 }},
981 ParamId{ParameterType::FLAVOR, "FMASS", 421},
982 ParamId{ParameterType::DECAY, "B_Xs", 2},
983 ParamId{ParameterType::DECAY, "B_Xs", 6},
984 ParamId{ParameterType::DECAY, "B_Xsll", 1},
985 ParamId{ParameterType::DECAY, "B_Xsll", 2},
986 ParamId{ParameterType::DECAY, "B_Xsll", {3, 11, 0}},
987 ParamId{ParameterType::DECAY, "B_Xsll", {3, 11, 1}},
988 ParamId{ParameterType::DECAY, "B_Xsll", {3, 11, 2}},
989 ParamId{ParameterType::DECAY, "B_Xsll", {3, 13, 0}},
990 ParamId{ParameterType::DECAY, "B_Xsll", {3, 13, 1}},
991 ParamId{ParameterType::DECAY, "B_Xsll", {3, 13, 2}},
992 }},
994 ParamId{ParameterType::FLAVOR, "FMASS", 411},
995 ParamId{ParameterType::FLAVOR, "FLIFE", 411},
996 ParamId{ParameterType::FLAVOR, "FCONST", {411, 1}}
997 }},
999 ParamId{ParameterType::FLAVOR, "FMASS", 431},
1000 ParamId{ParameterType::FLAVOR, "FLIFE", 431},
1001 ParamId{ParameterType::FLAVOR, "FCONST", {431, 1}}
1002 }},
1004 ParamId{ParameterType::FLAVOR, "FMASS", 111},
1005 ParamId{ParameterType::FLAVOR, "FMASS", 113},
1006 ParamId{ParameterType::FLAVOR, "FMASS", 311},
1007 ParamId{ParameterType::FLAVOR, "FCONST", {311, 1}},
1008 ParamId{ParameterType::FLAVOR, "FLIFE", 130},
1009 ParamId{ParameterType::FLAVOR, "FLIFE", 310},
1010 ParamId{ParameterType::DECAY, "K_ll", 1},
1011 ParamId{ParameterType::DECAY, "K_ll", 2},
1012 ParamId{ParameterType::DECAY, "K_ll", 3},
1013 ParamId{ParameterType::DECAY, "K_ll", 4},
1014 }},
1016 ParamId{ParameterType::DECAY, "K_lnu", 1},
1017 ParamId{ParameterType::FLAVOR, "FMASS", 321},
1018 ParamId{ParameterType::FLAVOR, "FLIFE", 321},
1019 ParamId{ParameterType::FLAVOR, "FCONST", {321, 1}},
1020 ParamId{ParameterType::FLAVOR, "FMASS", 211},
1021 ParamId{ParameterType::FLAVOR, "FLIFE", 211},
1022 ParamId{ParameterType::FLAVOR, "FCONST", {211, 1}},
1023 ParamId{ParameterType::FLAVOR, "FCONSTRATIO", {321, 211, 1, 1}}
1024 }},
1026 ParamId{ParameterType::DECAY, "K_pi", 1},
1027 ParamId{ParameterType::DECAY, "K_pi", 2},
1028 ParamId{ParameterType::DECAY, "K_pi", 3},
1029 }},
1031 ParamId{ParameterType::FLAVOR, "FMASS", 321},
1032 ParamId{ParameterType::FLAVOR, "FMASS", 521},
1033 ParamId{ParameterType::FLAVOR, "FMASS", 5122},
1034 ParamId{ParameterType::FLAVOR, "FMASS", 3122},
1035 ParamId{ParameterType::FLAVOR, "FLIFE", 5122},
1036 ParamId{ParameterType::DECAY, "Lb_L", 8},
1037 ParamId{ParameterType::DECAY, "Lb_L", {1, 1, 0}},
1038 ParamId{ParameterType::DECAY, "Lb_L", {1, 1, 1}},
1039 ParamId{ParameterType::DECAY, "Lb_L", {1, 1, 2}},
1040 ParamId{ParameterType::DECAY, "Lb_L", {1, 2, 0}},
1041 ParamId{ParameterType::DECAY, "Lb_L", {1, 2, 1}},
1042 ParamId{ParameterType::DECAY, "Lb_L", {1, 2, 2}},
1043 ParamId{ParameterType::DECAY, "Lb_L", {1, 3, 0}},
1044 ParamId{ParameterType::DECAY, "Lb_L", {1, 3, 1}},
1045 ParamId{ParameterType::DECAY, "Lb_L", {1, 3, 2}},
1046 ParamId{ParameterType::DECAY, "Lb_L", {1, 4, 0}},
1047 ParamId{ParameterType::DECAY, "Lb_L", {1, 4, 1}},
1048 ParamId{ParameterType::DECAY, "Lb_L", {1, 4, 2}},
1049 ParamId{ParameterType::DECAY, "Lb_L", {1, 5, 0}},
1050 ParamId{ParameterType::DECAY, "Lb_L", {1, 5, 1}},
1051 ParamId{ParameterType::DECAY, "Lb_L", {1, 5, 2}},
1052 ParamId{ParameterType::DECAY, "Lb_L", {1, 6, 0}},
1053 ParamId{ParameterType::DECAY, "Lb_L", {1, 6, 1}},
1054 ParamId{ParameterType::DECAY, "Lb_L", {1, 6, 2}},
1055 ParamId{ParameterType::DECAY, "Lb_L", {1, 7, 0}},
1056 ParamId{ParameterType::DECAY, "Lb_L", {1, 7, 1}},
1057 ParamId{ParameterType::DECAY, "Lb_L", {1, 7, 2}},
1058 ParamId{ParameterType::DECAY, "Lb_L", {1, 8, 0}},
1059 ParamId{ParameterType::DECAY, "Lb_L", {1, 8, 1}},
1060 ParamId{ParameterType::DECAY, "Lb_L", {1, 8, 2}},
1061 }},
1063 ParamId{ParameterType::FLAVOR, "FMASS", 311},
1064 ParamId{ParameterType::FLAVOR, "FMASS", 421},
1065 ParamId{ParameterType::FLAVOR, "FMASS", 511},
1066 ParamId{ParameterType::FLAVOR, "FMASS", 531},
1067 ParamId{ParameterType::FLAVOR, "FLIFE", 421},
1068 ParamId{ParameterType::DECAY, "M0_Mix", 1},
1069 ParamId{ParameterType::DECAY, "M0_Mix", 2},
1070 ParamId{ParameterType::DECAY, "M0_Mix", 3},
1071 ParamId{ParameterType::DECAY, "M0_Mix", {4, 1}},
1072 ParamId{ParameterType::DECAY, "M0_Mix", {4, 2}},
1073 ParamId{ParameterType::DECAY, "M0_Mix", {4, 3}},
1074 ParamId{ParameterType::DECAY, "M0_Mix", {4, 4}},
1075 ParamId{ParameterType::DECAY, "M0_Mix", {4, 5}},
1076 ParamId{ParameterType::DECAY, "M0_Mix", 6},
1077 ParamId{ParameterType::DECAY, "M0_Mix", 7},
1078 ParamId{ParameterType::DECAY, "M0_Mix", 11},
1079 ParamId{ParameterType::DECAY, "M0_Mix", 12},
1080 }}
1081};
1082
1085
1086 return get_allowed_parameters(obs_id);
1087}
1088
1091
1092 return is_param_allowed(obs_id, pid);
1093}
1094
1096 std::optional<DecayId> did = DecayMapper::get_decay_id(id);
1097 if (!did.has_value()) {
1098 LOG_WARN("No decay found for obs", id.str());
1099 return {};
1100 }
1101
1102 if (did.has_value()) {
1103 auto decay_deps = dep_lists.at(did.value());
1104 decay_deps.insert(common_deps.begin(), common_deps.end());
1105 return decay_deps;
1106 } else {
1107 LOG_ERROR("ValueError", "Observable", ObservableMapper::str(id), "doesn't belong to any declared decay.");
1108 }
1109}
1110
1112 auto allowed = get_allowed_parameters(id);
1113 return std::find(allowed.begin(), allowed.end(), pid) != allowed.end();
1114}
Helper for managing parameter–observable dependencies.
Observables
Definition GeneralEnum.h:4
@ B__Kstar_l_l
@ K__pi_nu_nu
@ B__Dstar_l_nu
@ Bs__phi_l_l
@ B__Kstar_gamma
@ B__Xs_gamma
@ Lambda_b__Lambda_l_l
#define LOG_ERROR(type,...)
Macro for logging error messages and terminating the application.
Definition Logger.h:41
#define LOG_WARN(...)
Macro for logging warning messages.
Definition Logger.h:40
static std::optional< DecayId > get_decay_id(const ObservableId &obs)
Return the parent decay id of an observable id.
static bool is_param_allowed(Observables id, ParamId pid)
Tests whether a given parameter is allowed for a given observable.
static std::unordered_set< ParamId > get_allowed_parameters(Observables id)
Returns the set of allowed parameters for a given observable.
static IdOf< DecayTag > to_id(Decays e)
Converts an enum value to an IdOf<Tag>.
static std::string str(const IdOf< ObservableTag > &id)
Returns the string representation of an identifier.
Composite identifier for a single parameter.
Definition ParamID.h:57