Belle II Software development
GenDTag.cc
1/**************************************************************************
2 * basf2 (Belle II Analysis Software Framework) *
3 * Author: The Belle II Collaboration *
4 * *
5 * See git log for contributors and copyright holders. *
6 * This file is licensed under LGPL-3.0, see LICENSE.md. *
7 **************************************************************************/
8
9#include <analysis/utility/GenDTag.h>
10#include <analysis/utility/CheckDecayUtils.h>
11
12using namespace Belle2;
13
14GenDTag::GenDTag() = default;
15
16bool GenDTag::PcheckDecay(std::vector<int> gp, int da1, int da2)
17{
18 int ndau = gp.size();
19 if (ndau == 2) { m_nPhotos = 0; return CheckDecay::CheckDecay(gp, da1, da2);}
20 else if (ndau == 3) { m_nPhotos = 1; return CheckDecay::CheckDecay(gp, da1, da2, 22);}
21 else if (ndau == 4) { m_nPhotos = 2; return CheckDecay::CheckDecay(gp, da1, da2, 22, 22);}
22 else if (ndau == 5) { m_nPhotos = 3; return CheckDecay::CheckDecay(gp, da1, da2, 22, 22, 22);}
23 else if (ndau == 6) { m_nPhotos = 4; return CheckDecay::CheckDecay(gp, da1, da2, 22, 22, 22, 22);}
24 else return false;
25}
26
27bool GenDTag::PcheckDecay(std::vector<int> gp, int da1, int da2, int da3)
28{
29 int ndau = gp.size();
30 if (ndau == 3) { m_nPhotos = 0; return CheckDecay::CheckDecay(gp, da1, da2, da3);}
31 else if (ndau == 4) { m_nPhotos = 1; return CheckDecay::CheckDecay(gp, da1, da2, da3, 22);}
32 else if (ndau == 5) { m_nPhotos = 2; return CheckDecay::CheckDecay(gp, da1, da2, da3, 22, 22);}
33 else if (ndau == 6) { m_nPhotos = 3; return CheckDecay::CheckDecay(gp, da1, da2, da3, 22, 22, 22);}
34 else if (ndau == 7) { m_nPhotos = 4; return CheckDecay::CheckDecay(gp, da1, da2, da3, 22, 22, 22, 22);}
35 else return false;
36}
37
38bool GenDTag::PcheckDecay(std::vector<int> gp, int da1, int da2, int da3, int da4)
39{
40 int ndau = gp.size();
41 if (ndau == 4) { m_nPhotos = 0; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4);}
42 else if (ndau == 5) { m_nPhotos = 1; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, 22);}
43 else if (ndau == 6) { m_nPhotos = 2; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, 22, 22);}
44 else if (ndau == 7) { m_nPhotos = 3; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, 22, 22, 22);}
45 else if (ndau == 8) { m_nPhotos = 4; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, 22, 22, 22, 22);}
46 else return false;
47}
48
49bool GenDTag::PcheckDecay(std::vector<int> gp, int da1, int da2, int da3, int da4, int da5)
50{
51 int ndau = gp.size();
52 if (ndau == 5) { m_nPhotos = 0; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, da5);}
53 else if (ndau == 6) { m_nPhotos = 1; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, da5, 22);}
54 else if (ndau == 7) { m_nPhotos = 2; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, da5, 22, 22);}
55 else if (ndau == 8) { m_nPhotos = 3; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, da5, 22, 22, 22);}
56 else if (ndau == 9) { m_nPhotos = 4; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, da5, 22, 22, 22, 22);}
57 else return false;
58}
59
60bool GenDTag::PcheckDecay(std::vector<int> gp, int da1, int da2, int da3, int da4, int da5, int da6)
61{
62 int ndau = gp.size();
63 if (ndau == 6) { m_nPhotos = 0; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, da5, da6);}
64 else if (ndau == 7) { m_nPhotos = 1; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, da5, da6, 22);}
65 else if (ndau == 8) { m_nPhotos = 2; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, da5, da6, 22, 22);}
66 else if (ndau == 9) { m_nPhotos = 3; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, da5, da6, 22, 22, 22);}
67 else if (ndau == 10) { m_nPhotos = 4; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, da5, da6, 22, 22, 22, 22);}
68 else return false;
69}
70
71bool GenDTag::PcheckDecay(std::vector<int> gp, int da1, int da2, int da3, int da4, int da5, int da6, int da7)
72{
73 int ndau = gp.size();
74 if (ndau == 7) { m_nPhotos = 0; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, da5, da6, da7);}
75 else if (ndau == 8) { m_nPhotos = 1; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, da5, da6, da7, 22);}
76 else if (ndau == 9) { m_nPhotos = 2; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, da5, da6, da7, 22, 22);}
77 else if (ndau == 10) { m_nPhotos = 3; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, da5, da6, da7, 22, 22, 22);}
78 else if (ndau == 11) { m_nPhotos = 4; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, da5, da6, da7, 22, 22, 22, 22);}
79 else return false;
80}
81
82bool GenDTag::PcheckDecay(std::vector<int> gp, int da1, int da2, int da3, int da4, int da5, int da6, int da7, int da8)
83{
84 int ndau = gp.size();
85 if (ndau == 8) { m_nPhotos = 0; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, da5, da6, da7, da8);}
86 else if (ndau == 9) { m_nPhotos = 1; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, da5, da6, da7, da8, 22);}
87 else if (ndau == 10) { m_nPhotos = 2; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, da5, da6, da7, da8, 22, 22);}
88 else if (ndau == 11) { m_nPhotos = 3; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, da5, da6, da7, da8, 22, 22, 22);}
89 else if (ndau == 12) { m_nPhotos = 4; return CheckDecay::CheckDecay(gp, da1, da2, da3, da4, da5, da6, da7, da8, 22, 22, 22, 22);}
90 else return false;
91}
92
93//All the tag number for various decay mode is defined here
94
95int GenDTag::Mode_Dst_plus(std::vector<int> genpart)
96{
97 if (GenDTag::PcheckDecay(genpart, 421, 211)) {
98 return +1 * (100000 * m_nPhotos + 1001);
99 }//D*+ decays to D0 pi+
100 if (GenDTag::PcheckDecay(genpart, 411, 111)) {
101 return +1 * (100000 * m_nPhotos + 1002);
102 }//D*+ decays to D+ pi0
103 if (GenDTag::PcheckDecay(genpart, 411, 22)) {
104 return +1 * (100000 * m_nPhotos + 1003);
105 }//D*+ decays to D+ gamma
106 return +1 * genpart.size();
107}// Rest of the D*+ decays
108
109
110int GenDTag::Mode_Dst_minus(std::vector<int> genpart)
111{
112 if (GenDTag::PcheckDecay(genpart, -421, -211)) {
113 return -1 * (100000 * m_nPhotos + 1001);
114 }//D*- decays to anti-D0 pi-
115 if (GenDTag::PcheckDecay(genpart, -411, 111)) {
116 return -1 * (100000 * m_nPhotos + 1002);
117 }//D*- decays to D- pi0
118 if (GenDTag::PcheckDecay(genpart, -411, 22)) {
119 return -1 * (100000 * m_nPhotos + 1003);
120 }//D*- decays to D- gamma
121 return -1 * (int)genpart.size();
122}// Rest of the D*- decays
123
124
125int GenDTag::Mode_Ds_plus(std::vector<int> genpart)
126{
127 if (GenDTag::PcheckDecay(genpart, 333, -11, 12)) {
128 return +1 * (100000 * m_nPhotos + 1001);
129 }//D_s+ decays to phi e+ nu_e
130 if (GenDTag::PcheckDecay(genpart, 221, -11, 12)) {
131 return +1 * (100000 * m_nPhotos + 1002);
132 }//D_s+ decays to eta e+ nu_e
133 if (GenDTag::PcheckDecay(genpart, 331, -11, 12)) {
134 return +1 * (100000 * m_nPhotos + 1003);
135 }//D_s+ decays to eta' e+ nu_e
136 if (GenDTag::PcheckDecay(genpart, -311, -11, 12)) {
137 return +1 * (100000 * m_nPhotos + 1004);
138 }//D_s+ decays to anti-K0 e+ nu_e
139 if (GenDTag::PcheckDecay(genpart, -313, -11, 12)) {
140 return +1 * (100000 * m_nPhotos + 1005);
141 }//D_s+ decays to anti-K*0 e+ nu_e
142 if (GenDTag::PcheckDecay(genpart, 333, -13, 14)) {
143 return +1 * (100000 * m_nPhotos + 1006);
144 }//D_s+ decays to phi mu+ nu_mu
145 if (GenDTag::PcheckDecay(genpart, 221, -13, 14)) {
146 return +1 * (100000 * m_nPhotos + 1007);
147 }//D_s+ decays to eta mu+ nu_mu
148 if (GenDTag::PcheckDecay(genpart, 331, -13, 14)) {
149 return +1 * (100000 * m_nPhotos + 1008);
150 }//D_s+ decays to eta' mu+ nu_mu
151 if (GenDTag::PcheckDecay(genpart, -311, -13, 14)) {
152 return +1 * (100000 * m_nPhotos + 1009);
153 }//D_s+ decays to anti-K0 mu+ nu_mu
154 if (GenDTag::PcheckDecay(genpart, -313, -13, 14)) {
155 return +1 * (100000 * m_nPhotos + 1010);
156 }//D_s+ decays to anti-K*0 mu+ nu_mu
157 if (GenDTag::PcheckDecay(genpart, -13, 14)) {
158 return +1 * (100000 * m_nPhotos + 1011);
159 }//D_s+ decays to mu+ nu_mu
160 if (GenDTag::PcheckDecay(genpart, -15, 16)) {
161 return +1 * (100000 * m_nPhotos + 1012);
162 }//D_s+ decays to tau+ nu_tau
163 if (GenDTag::PcheckDecay(genpart, 333, 211)) {
164 return +1 * (100000 * m_nPhotos + 1013);
165 }//D_s+ decays to phi pi+
166 if (GenDTag::PcheckDecay(genpart, 221, 211)) {
167 return +1 * (100000 * m_nPhotos + 1014);
168 }//D_s+ decays to eta pi+
169 if (GenDTag::PcheckDecay(genpart, 331, 211)) {
170 return +1 * (100000 * m_nPhotos + 1015);
171 }//D_s+ decays to eta' pi+
172 if (GenDTag::PcheckDecay(genpart, 223, 211)) {
173 return +1 * (100000 * m_nPhotos + 1016);
174 }//D_s+ decays to omega pi+
175 if (GenDTag::PcheckDecay(genpart, 113, 211)) {
176 return +1 * (100000 * m_nPhotos + 1017);
177 }//D_s+ decays to rho0 pi+
178 if (GenDTag::PcheckDecay(genpart, 213, 111)) {
179 return +1 * (100000 * m_nPhotos + 1018);
180 }//D_s+ decays to rho+ pi0
181 if (GenDTag::PcheckDecay(genpart, 211, 111)) {
182 return +1 * (100000 * m_nPhotos + 1019);
183 }//D_s+ decays to pi+ pi0
184 if (GenDTag::PcheckDecay(genpart, 10221, 211)) {
185 return +1 * (100000 * m_nPhotos + 1020);
186 }//D_s+ decays to f_0 pi+
187 if (GenDTag::PcheckDecay(genpart, 225, 211)) {
188 return +1 * (100000 * m_nPhotos + 1021);
189 }//D_s+ decays to f_2 pi+
190 if (GenDTag::PcheckDecay(genpart, 333, 213)) {
191 return +1 * (100000 * m_nPhotos + 1022);
192 }//D_s+ decays to phi rho+
193 if (GenDTag::PcheckDecay(genpart, 213, 221)) {
194 return +1 * (100000 * m_nPhotos + 1023);
195 }//D_s+ decays to rho+ eta
196 if (GenDTag::PcheckDecay(genpart, 213, 331)) {
197 return +1 * (100000 * m_nPhotos + 1024);
198 }//D_s+ decays to rho+ eta'
199 if (GenDTag::PcheckDecay(genpart, 211, -211, 211)) {
200 return +1 * (100000 * m_nPhotos + 1025);
201 }//D_s+ decays to pi+ pi- pi+
202 if (GenDTag::PcheckDecay(genpart, 211, 111, 111)) {
203 return +1 * (100000 * m_nPhotos + 1026);
204 }//D_s+ decays to pi+ pi0 pi0
205 if (GenDTag::PcheckDecay(genpart, 333, 211, 111)) {
206 return +1 * (100000 * m_nPhotos + 1027);
207 }//D_s+ decays to phi pi+ pi0
208 if (GenDTag::PcheckDecay(genpart, 221, 211, 111)) {
209 return +1 * (100000 * m_nPhotos + 1028);
210 }//D_s+ decays to eta pi+ pi0
211 if (GenDTag::PcheckDecay(genpart, 331, 211, 111)) {
212 return +1 * (100000 * m_nPhotos + 1029);
213 }//D_s+ decays to eta' pi+ pi0
214 if (GenDTag::PcheckDecay(genpart, 333, 211, -211, 211)) {
215 return +1 * (100000 * m_nPhotos + 1030);
216 }//D_s+ decays to phi pi+ pi- pi+
217 if (GenDTag::PcheckDecay(genpart, 333, 211, 111, 111)) {
218 return +1 * (100000 * m_nPhotos + 1031);
219 }//D_s+ decays to phi pi+ pi0 pi0
220 if (GenDTag::PcheckDecay(genpart, 221, 211, -211, 211)) {
221 return +1 * (100000 * m_nPhotos + 1032);
222 }//D_s+ decays to eta pi+ pi- pi+
223 if (GenDTag::PcheckDecay(genpart, 221, 211, 111, 111)) {
224 return +1 * (100000 * m_nPhotos + 1033);
225 }//D_s+ decays to eta pi+ pi0 pi0
226 if (GenDTag::PcheckDecay(genpart, 310, 321)) {
227 return +1 * (100000 * m_nPhotos + 1034);
228 }//D_s+ decays to K_S0 K+
229 if (GenDTag::PcheckDecay(genpart, 130, 321)) {
230 return +1 * (100000 * m_nPhotos + 1035);
231 }//D_s+ decays to K_L0 K+
232 if (GenDTag::PcheckDecay(genpart, -311, 321)) {
233 return +1 * (100000 * m_nPhotos + 1036);
234 }//D_s+ decays to anti-K0 K+
235 if (GenDTag::PcheckDecay(genpart, -313, 321)) {
236 return +1 * (100000 * m_nPhotos + 1037);
237 }//D_s+ decays to anti-K*0 K+
238 if (GenDTag::PcheckDecay(genpart, 323, -311)) {
239 return +1 * (100000 * m_nPhotos + 1038);
240 }//D_s+ decays to K*+ anti-K0
241 if (GenDTag::PcheckDecay(genpart, -313, 323)) {
242 return +1 * (100000 * m_nPhotos + 1039);
243 }//D_s+ decays to anti-K*0 K*+
244 if (GenDTag::PcheckDecay(genpart, -311, 321, 111)) {
245 return +1 * (100000 * m_nPhotos + 1040);
246 }//D_s+ decays to anti-K0 K+ pi0
247 if (GenDTag::PcheckDecay(genpart, -313, 321, 111)) {
248 return +1 * (100000 * m_nPhotos + 1041);
249 }//D_s+ decays to anti-K*0 K+ pi0
250 if (GenDTag::PcheckDecay(genpart, 323, -311, 111)) {
251 return +1 * (100000 * m_nPhotos + 1042);
252 }//D_s+ decays to K*+ anti-K0 pi0
253 if (GenDTag::PcheckDecay(genpart, -313, 323, 111)) {
254 return +1 * (100000 * m_nPhotos + 1043);
255 }//D_s+ decays to anti-K*0 K*+ pi0
256 if (GenDTag::PcheckDecay(genpart, 321, -321, 211)) {
257 return +1 * (100000 * m_nPhotos + 1044);
258 }//D_s+ decays to K+ K- pi+
259 if (GenDTag::PcheckDecay(genpart, 310, 321, 211, -211)) {
260 return +1 * (100000 * m_nPhotos + 1045);
261 }//D_s+ decays to K_S0 K+ pi+ pi-
262 if (GenDTag::PcheckDecay(genpart, 130, 321, 211, -211)) {
263 return +1 * (100000 * m_nPhotos + 1046);
264 }//D_s+ decays to K_L0 K+ pi+ pi-
265 if (GenDTag::PcheckDecay(genpart, -311, 321, 211, -211)) {
266 return +1 * (100000 * m_nPhotos + 1047);
267 }//D_s+ decays to anti-K0 K+ pi+ pi-
268 if (GenDTag::PcheckDecay(genpart, -311, 321, 111, 111)) {
269 return +1 * (100000 * m_nPhotos + 1048);
270 }//D_s+ decays to anti-K0 K+ pi0 pi0
271 if (GenDTag::PcheckDecay(genpart, 321, -321, 211, -211, 211)) {
272 return +1 * (100000 * m_nPhotos + 1049);
273 }//D_s+ decays to K+ K- pi+ pi- pi+
274 if (GenDTag::PcheckDecay(genpart, 333, 321)) {
275 return +1 * (100000 * m_nPhotos + 1050);
276 }//D_s+ decays to phi K+
277 if (GenDTag::PcheckDecay(genpart, 221, 321)) {
278 return +1 * (100000 * m_nPhotos + 1051);
279 }//D_s+ decays to eta K+
280 if (GenDTag::PcheckDecay(genpart, 331, 321)) {
281 return +1 * (100000 * m_nPhotos + 1052);
282 }//D_s+ decays to eta' K+
283 if (GenDTag::PcheckDecay(genpart, 221, 321, 111)) {
284 return +1 * (100000 * m_nPhotos + 1053);
285 }//D_s+ decays to eta K+ pi0
286 if (GenDTag::PcheckDecay(genpart, 221, 321, 211, -211)) {
287 return +1 * (100000 * m_nPhotos + 1054);
288 }//D_s+ decays to eta K+ pi+ pi-
289 if (GenDTag::PcheckDecay(genpart, 331, 321, 111)) {
290 return +1 * (100000 * m_nPhotos + 1055);
291 }//D_s+ decays to eta' K+ pi0
292 if (GenDTag::PcheckDecay(genpart, 331, 321, 211, -211)) {
293 return +1 * (100000 * m_nPhotos + 1056);
294 }//D_s+ decays to eta' K+ pi+ pi-
295 if (GenDTag::PcheckDecay(genpart, 321, -321, 321)) {
296 return +1 * (100000 * m_nPhotos + 1057);
297 }//D_s+ decays to K+ K- K+
298 if (GenDTag::PcheckDecay(genpart, 310, 211)) {
299 return +1 * (100000 * m_nPhotos + 1058);
300 }//D_s+ decays to K_S0 pi+
301 if (GenDTag::PcheckDecay(genpart, 130, 211)) {
302 return +1 * (100000 * m_nPhotos + 1059);
303 }//D_s+ decays to K_L0 pi+
304 if (GenDTag::PcheckDecay(genpart, 311, 211)) {
305 return +1 * (100000 * m_nPhotos + 1060);
306 }//D_s+ decays to K0 pi+
307 if (GenDTag::PcheckDecay(genpart, 213, 311)) {
308 return +1 * (100000 * m_nPhotos + 1061);
309 }//D_s+ decays to rho+ K0
310 if (GenDTag::PcheckDecay(genpart, 113, 321)) {
311 return +1 * (100000 * m_nPhotos + 1062);
312 }//D_s+ decays to rho0 K+
313 if (GenDTag::PcheckDecay(genpart, 311, 211, 111)) {
314 return +1 * (100000 * m_nPhotos + 1063);
315 }//D_s+ decays to K0 pi+ pi0
316 if (GenDTag::PcheckDecay(genpart, 20213, 311)) {
317 return +1 * (100000 * m_nPhotos + 1064);
318 }//D_s+ decays to a_1+ K0
319 if (GenDTag::PcheckDecay(genpart, 313, 211)) {
320 return +1 * (100000 * m_nPhotos + 1065);
321 }//D_s+ decays to K*0 pi+
322 if (GenDTag::PcheckDecay(genpart, 313, 213)) {
323 return +1 * (100000 * m_nPhotos + 1066);
324 }//D_s+ decays to K*0 rho+
325 if (GenDTag::PcheckDecay(genpart, 313, 211, 111)) {
326 return +1 * (100000 * m_nPhotos + 1067);
327 }//D_s+ decays to K*0 pi+ pi0
328 if (GenDTag::PcheckDecay(genpart, 321, 111)) {
329 return +1 * (100000 * m_nPhotos + 1068);
330 }//D_s+ decays to K+ pi0
331 if (GenDTag::PcheckDecay(genpart, 321, 211, -211)) {
332 return +1 * (100000 * m_nPhotos + 1069);
333 }//D_s+ decays to K+ pi+ pi-
334 if (GenDTag::PcheckDecay(genpart, 211, 211, 211, -211, -211)) {
335 return +1 * (100000 * m_nPhotos + 1070);
336 }//D_s+ decays to pi+ pi+ pi+ pi- pi-
337 if (GenDTag::PcheckDecay(genpart, 211, 211, 211, -211, -211, 111)) {
338 return +1 * (100000 * m_nPhotos + 1071);
339 }//D_s+ decays to pi+ pi+ pi+ pi- pi- pi0
340 if (GenDTag::PcheckDecay(genpart, 2212, -2112)) {
341 return +1 * (100000 * m_nPhotos + 1072);
342 }//D_s+ decays to p+ anti-n0
343 if (GenDTag::PcheckDecay(genpart, 310, 310, 211, 211, -211)) {
344 return +1 * (100000 * m_nPhotos + 1073);
345 }//D_s+ decays to K_S0 K_S0 pi+ pi+ pi-
346 if (GenDTag::PcheckDecay(genpart, 130, 130, 211, 211, -211)) {
347 return +1 * (100000 * m_nPhotos + 1074);
348 }//D_s+ decays to K_L0 K_L0 pi+ pi+ pi-
349 if (GenDTag::PcheckDecay(genpart, -311, 311, 211, 211, -211)) {
350 return +1 * (100000 * m_nPhotos + 1075);
351 }//D_s+ decays to anti-K0 K0 pi+ pi+ pi-
352 if (GenDTag::PcheckDecay(genpart, 310, 211, 211, -211)) {
353 return +1 * (100000 * m_nPhotos + 1076);
354 }//D_s+ decays to K_S0 pi+ pi+ pi-
355 if (GenDTag::PcheckDecay(genpart, 130, 211, 211, -211)) {
356 return +1 * (100000 * m_nPhotos + 1077);
357 }//D_s+ decays to K_L0 pi+ pi+ pi-
358 if (GenDTag::PcheckDecay(genpart, -311, 211, 211, -211)) {
359 return +1 * (100000 * m_nPhotos + 1078);
360 }//D_s+ decays to anti-K0 pi+ pi+ pi-
361 if (GenDTag::PcheckDecay(genpart, 321, 321, -211)) {
362 return +1 * (100000 * m_nPhotos + 1079);
363 }//D_s+ decays to K+ K+ pi-
364 if (GenDTag::PcheckDecay(genpart, 311, -11, 12)) {
365 return +1 * (100000 * m_nPhotos + 1080);
366 }//D_s+ decays to K0 e+ nu_e
367 if (GenDTag::PcheckDecay(genpart, 313, -11, 12)) {
368 return +1 * (100000 * m_nPhotos + 1081);
369 }//D_s+ decays to K*0 e+ nu_e
370 if (GenDTag::PcheckDecay(genpart, 321, -321, 211, 111)) {
371 return +1 * (100000 * m_nPhotos + 1082);
372 }//D_s+ decays to K+ K- pi+ pi0
373 if (GenDTag::PcheckDecay(genpart, 223, 211, 111)) {
374 return +1 * (100000 * m_nPhotos + 1083);
375 }//D_s+ decays to omega pi+ pi0
376 if (GenDTag::PcheckDecay(genpart, 223, 211, 211, -211)) {
377 return +1 * (100000 * m_nPhotos + 1084);
378 }//D_s+ decays to omega pi+ pi+ pi-
379 return +1 * genpart.size();
380}// Rest of the D_s+ decays
381
382
383int GenDTag::Mode_Ds_minus(std::vector<int> genpart)
384{
385 if (GenDTag::PcheckDecay(genpart, 333, 11, -12)) {
386 return -1 * (100000 * m_nPhotos + 1001);
387 }//D_s- decays to phi e- anti-nu_e
388 if (GenDTag::PcheckDecay(genpart, 221, 11, -12)) {
389 return -1 * (100000 * m_nPhotos + 1002);
390 }//D_s- decays to eta e- anti-nu_e
391 if (GenDTag::PcheckDecay(genpart, 331, 11, -12)) {
392 return -1 * (100000 * m_nPhotos + 1003);
393 }//D_s- decays to eta' e- anti-nu_e
394 if (GenDTag::PcheckDecay(genpart, 311, 11, -12)) {
395 return -1 * (100000 * m_nPhotos + 1004);
396 }//D_s- decays to K0 e- anti-nu_e
397 if (GenDTag::PcheckDecay(genpart, 313, 11, -12)) {
398 return -1 * (100000 * m_nPhotos + 1005);
399 }//D_s- decays to K*0 e- anti-nu_e
400 if (GenDTag::PcheckDecay(genpart, 333, 13, -14)) {
401 return -1 * (100000 * m_nPhotos + 1006);
402 }//D_s- decays to phi mu- anti-nu_mu
403 if (GenDTag::PcheckDecay(genpart, 221, 13, -14)) {
404 return -1 * (100000 * m_nPhotos + 1007);
405 }//D_s- decays to eta mu- anti-nu_mu
406 if (GenDTag::PcheckDecay(genpart, 331, 13, -14)) {
407 return -1 * (100000 * m_nPhotos + 1008);
408 }//D_s- decays to eta' mu- anti-nu_mu
409 if (GenDTag::PcheckDecay(genpart, 311, 13, -14)) {
410 return -1 * (100000 * m_nPhotos + 1009);
411 }//D_s- decays to K0 mu- anti-nu_mu
412 if (GenDTag::PcheckDecay(genpart, 313, 13, -14)) {
413 return -1 * (100000 * m_nPhotos + 1010);
414 }//D_s- decays to K*0 mu- anti-nu_mu
415 if (GenDTag::PcheckDecay(genpart, 13, -14)) {
416 return -1 * (100000 * m_nPhotos + 1011);
417 }//D_s- decays to mu- anti-nu_mu
418 if (GenDTag::PcheckDecay(genpart, 15, -16)) {
419 return -1 * (100000 * m_nPhotos + 1012);
420 }//D_s- decays to tau- anti-nu_tau
421 if (GenDTag::PcheckDecay(genpart, 333, -211)) {
422 return -1 * (100000 * m_nPhotos + 1013);
423 }//D_s- decays to phi pi-
424 if (GenDTag::PcheckDecay(genpart, 221, -211)) {
425 return -1 * (100000 * m_nPhotos + 1014);
426 }//D_s- decays to eta pi-
427 if (GenDTag::PcheckDecay(genpart, 331, -211)) {
428 return -1 * (100000 * m_nPhotos + 1015);
429 }//D_s- decays to eta' pi-
430 if (GenDTag::PcheckDecay(genpart, 223, -211)) {
431 return -1 * (100000 * m_nPhotos + 1016);
432 }//D_s- decays to omega pi-
433 if (GenDTag::PcheckDecay(genpart, 113, -211)) {
434 return -1 * (100000 * m_nPhotos + 1017);
435 }//D_s- decays to rho0 pi-
436 if (GenDTag::PcheckDecay(genpart, -213, 111)) {
437 return -1 * (100000 * m_nPhotos + 1018);
438 }//D_s- decays to rho- pi0
439 if (GenDTag::PcheckDecay(genpart, -211, 111)) {
440 return -1 * (100000 * m_nPhotos + 1019);
441 }//D_s- decays to pi- pi0
442 if (GenDTag::PcheckDecay(genpart, 10221, -211)) {
443 return -1 * (100000 * m_nPhotos + 1020);
444 }//D_s- decays to f_0 pi-
445 if (GenDTag::PcheckDecay(genpart, 225, -211)) {
446 return -1 * (100000 * m_nPhotos + 1021);
447 }//D_s- decays to f_2 pi-
448 if (GenDTag::PcheckDecay(genpart, 333, -213)) {
449 return -1 * (100000 * m_nPhotos + 1022);
450 }//D_s- decays to phi rho-
451 if (GenDTag::PcheckDecay(genpart, -213, 221)) {
452 return -1 * (100000 * m_nPhotos + 1023);
453 }//D_s- decays to rho- eta
454 if (GenDTag::PcheckDecay(genpart, -213, 331)) {
455 return -1 * (100000 * m_nPhotos + 1024);
456 }//D_s- decays to rho- eta'
457 if (GenDTag::PcheckDecay(genpart, -211, -211, 211)) {
458 return -1 * (100000 * m_nPhotos + 1025);
459 }//D_s- decays to pi- pi- pi+
460 if (GenDTag::PcheckDecay(genpart, -211, 111, 111)) {
461 return -1 * (100000 * m_nPhotos + 1026);
462 }//D_s- decays to pi- pi0 pi0
463 if (GenDTag::PcheckDecay(genpart, 333, -211, 111)) {
464 return -1 * (100000 * m_nPhotos + 1027);
465 }//D_s- decays to phi pi- pi0
466 if (GenDTag::PcheckDecay(genpart, 221, -211, 111)) {
467 return -1 * (100000 * m_nPhotos + 1028);
468 }//D_s- decays to eta pi- pi0
469 if (GenDTag::PcheckDecay(genpart, 331, -211, 111)) {
470 return -1 * (100000 * m_nPhotos + 1029);
471 }//D_s- decays to eta' pi- pi0
472 if (GenDTag::PcheckDecay(genpart, 333, -211, -211, 211)) {
473 return -1 * (100000 * m_nPhotos + 1030);
474 }//D_s- decays to phi pi- pi- pi+
475 if (GenDTag::PcheckDecay(genpart, 333, -211, 111, 111)) {
476 return -1 * (100000 * m_nPhotos + 1031);
477 }//D_s- decays to phi pi- pi0 pi0
478 if (GenDTag::PcheckDecay(genpart, 221, -211, -211, 211)) {
479 return -1 * (100000 * m_nPhotos + 1032);
480 }//D_s- decays to eta pi- pi- pi+
481 if (GenDTag::PcheckDecay(genpart, 221, -211, 111, 111)) {
482 return -1 * (100000 * m_nPhotos + 1033);
483 }//D_s- decays to eta pi- pi0 pi0
484 if (GenDTag::PcheckDecay(genpart, 310, -321)) {
485 return -1 * (100000 * m_nPhotos + 1034);
486 }//D_s- decays to K_S0 K-
487 if (GenDTag::PcheckDecay(genpart, 130, -321)) {
488 return -1 * (100000 * m_nPhotos + 1035);
489 }//D_s- decays to K_L0 K-
490 if (GenDTag::PcheckDecay(genpart, 311, -321)) {
491 return -1 * (100000 * m_nPhotos + 1036);
492 }//D_s- decays to K0 K-
493 if (GenDTag::PcheckDecay(genpart, 313, -321)) {
494 return -1 * (100000 * m_nPhotos + 1037);
495 }//D_s- decays to K*0 K-
496 if (GenDTag::PcheckDecay(genpart, -323, 311)) {
497 return -1 * (100000 * m_nPhotos + 1038);
498 }//D_s- decays to K*- K0
499 if (GenDTag::PcheckDecay(genpart, 313, -323)) {
500 return -1 * (100000 * m_nPhotos + 1039);
501 }//D_s- decays to K*0 K*-
502 if (GenDTag::PcheckDecay(genpart, 311, -321, 111)) {
503 return -1 * (100000 * m_nPhotos + 1040);
504 }//D_s- decays to K0 K- pi0
505 if (GenDTag::PcheckDecay(genpart, 313, -321, 111)) {
506 return -1 * (100000 * m_nPhotos + 1041);
507 }//D_s- decays to K*0 K- pi0
508 if (GenDTag::PcheckDecay(genpart, -323, 311, 111)) {
509 return -1 * (100000 * m_nPhotos + 1042);
510 }//D_s- decays to K*- K0 pi0
511 if (GenDTag::PcheckDecay(genpart, 313, -323, 111)) {
512 return -1 * (100000 * m_nPhotos + 1043);
513 }//D_s- decays to K*0 K*- pi0
514 if (GenDTag::PcheckDecay(genpart, 321, -321, -211)) {
515 return -1 * (100000 * m_nPhotos + 1044);
516 }//D_s- decays to K+ K- pi-
517 if (GenDTag::PcheckDecay(genpart, 310, -321, 211, -211)) {
518 return -1 * (100000 * m_nPhotos + 1045);
519 }//D_s- decays to K_S0 K- pi+ pi-
520 if (GenDTag::PcheckDecay(genpart, 130, -321, 211, -211)) {
521 return -1 * (100000 * m_nPhotos + 1046);
522 }//D_s- decays to K_L0 K- pi+ pi-
523 if (GenDTag::PcheckDecay(genpart, 311, -321, 211, -211)) {
524 return -1 * (100000 * m_nPhotos + 1047);
525 }//D_s- decays to K0 K- pi+ pi-
526 if (GenDTag::PcheckDecay(genpart, 311, -321, 111, 111)) {
527 return -1 * (100000 * m_nPhotos + 1048);
528 }//D_s- decays to K0 K- pi0 pi0
529 if (GenDTag::PcheckDecay(genpart, -321, 321, -211, 211, -211)) {
530 return -1 * (100000 * m_nPhotos + 1049);
531 }//D_s- decays to K- K+ pi- pi+ pi-
532 if (GenDTag::PcheckDecay(genpart, 333, -321)) {
533 return -1 * (100000 * m_nPhotos + 1050);
534 }//D_s- decays to phi K-
535 if (GenDTag::PcheckDecay(genpart, 221, -321)) {
536 return -1 * (100000 * m_nPhotos + 1051);
537 }//D_s- decays to eta K-
538 if (GenDTag::PcheckDecay(genpart, 331, -321)) {
539 return -1 * (100000 * m_nPhotos + 1052);
540 }//D_s- decays to eta' K-
541 if (GenDTag::PcheckDecay(genpart, 221, -321, 111)) {
542 return -1 * (100000 * m_nPhotos + 1053);
543 }//D_s- decays to eta K- pi0
544 if (GenDTag::PcheckDecay(genpart, 221, -321, 211, -211)) {
545 return -1 * (100000 * m_nPhotos + 1054);
546 }//D_s- decays to eta K- pi+ pi-
547 if (GenDTag::PcheckDecay(genpart, 331, -321, 111)) {
548 return -1 * (100000 * m_nPhotos + 1055);
549 }//D_s- decays to eta' K- pi0
550 if (GenDTag::PcheckDecay(genpart, 331, -321, 211, -211)) {
551 return -1 * (100000 * m_nPhotos + 1056);
552 }//D_s- decays to eta' K- pi+ pi-
553 if (GenDTag::PcheckDecay(genpart, -321, -321, 321)) {
554 return -1 * (100000 * m_nPhotos + 1057);
555 }//D_s- decays to K- K- K+
556 if (GenDTag::PcheckDecay(genpart, 310, -211)) {
557 return -1 * (100000 * m_nPhotos + 1058);
558 }//D_s- decays to K_S0 pi-
559 if (GenDTag::PcheckDecay(genpart, 130, -211)) {
560 return -1 * (100000 * m_nPhotos + 1059);
561 }//D_s- decays to K_L0 pi-
562 if (GenDTag::PcheckDecay(genpart, -311, -211)) {
563 return -1 * (100000 * m_nPhotos + 1060);
564 }//D_s- decays to anti-K0 pi-
565 if (GenDTag::PcheckDecay(genpart, -213, -311)) {
566 return -1 * (100000 * m_nPhotos + 1061);
567 }//D_s- decays to rho- anti-K0
568 if (GenDTag::PcheckDecay(genpart, 113, -321)) {
569 return -1 * (100000 * m_nPhotos + 1062);
570 }//D_s- decays to rho0 K-
571 if (GenDTag::PcheckDecay(genpart, -311, -211, 111)) {
572 return -1 * (100000 * m_nPhotos + 1063);
573 }//D_s- decays to anti-K0 pi- pi0
574 if (GenDTag::PcheckDecay(genpart, -20213, -311)) {
575 return -1 * (100000 * m_nPhotos + 1064);
576 }//D_s- decays to a_1- anti-K0
577 if (GenDTag::PcheckDecay(genpart, -313, -211)) {
578 return -1 * (100000 * m_nPhotos + 1065);
579 }//D_s- decays to anti-K*0 pi-
580 if (GenDTag::PcheckDecay(genpart, -313, -213)) {
581 return -1 * (100000 * m_nPhotos + 1066);
582 }//D_s- decays to anti-K*0 rho-
583 if (GenDTag::PcheckDecay(genpart, -313, -211, 111)) {
584 return -1 * (100000 * m_nPhotos + 1067);
585 }//D_s- decays to anti-K*0 pi- pi0
586 if (GenDTag::PcheckDecay(genpart, -321, 111)) {
587 return -1 * (100000 * m_nPhotos + 1068);
588 }//D_s- decays to K- pi0
589 if (GenDTag::PcheckDecay(genpart, -321, 211, -211)) {
590 return -1 * (100000 * m_nPhotos + 1069);
591 }//D_s- decays to K- pi+ pi-
592 if (GenDTag::PcheckDecay(genpart, 211, 211, -211, -211, -211)) {
593 return -1 * (100000 * m_nPhotos + 1070);
594 }//D_s- decays to pi+ pi+ pi- pi- pi-
595 if (GenDTag::PcheckDecay(genpart, 211, 211, -211, -211, -211, 111)) {
596 return -1 * (100000 * m_nPhotos + 1071);
597 }//D_s- decays to pi+ pi+ pi- pi- pi- pi0
598 if (GenDTag::PcheckDecay(genpart, -2212, 2112)) {
599 return -1 * (100000 * m_nPhotos + 1072);
600 }//D_s- decays to anti-p- n0
601 if (GenDTag::PcheckDecay(genpart, 310, 310, 211, -211, -211)) {
602 return -1 * (100000 * m_nPhotos + 1073);
603 }//D_s- decays to K_S0 K_S0 pi+ pi- pi-
604 if (GenDTag::PcheckDecay(genpart, 130, 130, 211, -211, -211)) {
605 return -1 * (100000 * m_nPhotos + 1074);
606 }//D_s- decays to K_L0 K_L0 pi+ pi- pi-
607 if (GenDTag::PcheckDecay(genpart, -311, 311, 211, -211, -211)) {
608 return -1 * (100000 * m_nPhotos + 1075);
609 }//D_s- decays to anti-K0 K0 pi+ pi- pi-
610 if (GenDTag::PcheckDecay(genpart, 310, 211, -211, -211)) {
611 return -1 * (100000 * m_nPhotos + 1076);
612 }//D_s- decays to K_S0 pi+ pi- pi-
613 if (GenDTag::PcheckDecay(genpart, 130, 211, -211, -211)) {
614 return -1 * (100000 * m_nPhotos + 1077);
615 }//D_s- decays to K_L0 pi+ pi- pi-
616 if (GenDTag::PcheckDecay(genpart, 311, 211, -211, -211)) {
617 return -1 * (100000 * m_nPhotos + 1078);
618 }//D_s- decays to K0 pi+ pi- pi-
619 if (GenDTag::PcheckDecay(genpart, -321, -321, 211)) {
620 return -1 * (100000 * m_nPhotos + 1079);
621 }//D_s- decays to K- K- pi+
622 if (GenDTag::PcheckDecay(genpart, -311, 11, -12)) {
623 return -1 * (100000 * m_nPhotos + 1080);
624 }//D_s- decays to anti-K0 e- anti-nu_e
625 if (GenDTag::PcheckDecay(genpart, -313, 11, -12)) {
626 return -1 * (100000 * m_nPhotos + 1081);
627 }//D_s- decays to anti-K*0 e- anti-nu_e
628 if (GenDTag::PcheckDecay(genpart, -321, 321, -211, 111)) {
629 return -1 * (100000 * m_nPhotos + 1082);
630 }//D_s- decays to K- K+ pi- pi0
631 if (GenDTag::PcheckDecay(genpart, 223, -211, 111)) {
632 return -1 * (100000 * m_nPhotos + 1083);
633 }//D_s- decays to omega pi- pi0
634 if (GenDTag::PcheckDecay(genpart, 223, -211, -211, 211)) {
635 return -1 * (100000 * m_nPhotos + 1084);
636 }//D_s- decays to omega pi- pi- pi+
637 return -1 * (int)genpart.size();
638}// Rest of the D_s- decays
639
640
641int GenDTag::Mode_D_plus(std::vector<int> genpart)
642{
643 if (GenDTag::PcheckDecay(genpart, -313, -11, 12)) {
644 return +1 * (100000 * m_nPhotos + 1001);
645 }//D+ decays to anti-K*0 e+ nu_e
646 if (GenDTag::PcheckDecay(genpart, -311, -11, 12)) {
647 return +1 * (100000 * m_nPhotos + 1002);
648 }//D+ decays to anti-K0 e+ nu_e
649 if (GenDTag::PcheckDecay(genpart, -10313, -11, 12)) {
650 return +1 * (100000 * m_nPhotos + 1003);
651 }//D+ decays to anti-K_10 e+ nu_e
652 if (GenDTag::PcheckDecay(genpart, -315, -11, 12)) {
653 return +1 * (100000 * m_nPhotos + 1004);
654 }//D+ decays to anti-K_2*0 e+ nu_e
655 if (GenDTag::PcheckDecay(genpart, 111, -11, 12)) {
656 return +1 * (100000 * m_nPhotos + 1005);
657 }//D+ decays to pi0 e+ nu_e
658 if (GenDTag::PcheckDecay(genpart, 221, -11, 12)) {
659 return +1 * (100000 * m_nPhotos + 1006);
660 }//D+ decays to eta e+ nu_e
661 if (GenDTag::PcheckDecay(genpart, 331, -11, 12)) {
662 return +1 * (100000 * m_nPhotos + 1007);
663 }//D+ decays to eta' e+ nu_e
664 if (GenDTag::PcheckDecay(genpart, 113, -11, 12)) {
665 return +1 * (100000 * m_nPhotos + 1008);
666 }//D+ decays to rho0 e+ nu_e
667 if (GenDTag::PcheckDecay(genpart, 223, -11, 12)) {
668 return +1 * (100000 * m_nPhotos + 1009);
669 }//D+ decays to omega e+ nu_e
670 if (GenDTag::PcheckDecay(genpart, -321, 211, -11, 12)) {
671 return +1 * (100000 * m_nPhotos + 1010);
672 }//D+ decays to K- pi+ e+ nu_e
673 if (GenDTag::PcheckDecay(genpart, -311, 111, -11, 12)) {
674 return +1 * (100000 * m_nPhotos + 1011);
675 }//D+ decays to anti-K0 pi0 e+ nu_e
676 if (GenDTag::PcheckDecay(genpart, -313, -13, 14)) {
677 return +1 * (100000 * m_nPhotos + 1012);
678 }//D+ decays to anti-K*0 mu+ nu_mu
679 if (GenDTag::PcheckDecay(genpart, -311, -13, 14)) {
680 return +1 * (100000 * m_nPhotos + 1013);
681 }//D+ decays to anti-K0 mu+ nu_mu
682 if (GenDTag::PcheckDecay(genpart, -10313, -13, 14)) {
683 return +1 * (100000 * m_nPhotos + 1014);
684 }//D+ decays to anti-K_10 mu+ nu_mu
685 if (GenDTag::PcheckDecay(genpart, -315, -13, 14)) {
686 return +1 * (100000 * m_nPhotos + 1015);
687 }//D+ decays to anti-K_2*0 mu+ nu_mu
688 if (GenDTag::PcheckDecay(genpart, 111, -13, 14)) {
689 return +1 * (100000 * m_nPhotos + 1016);
690 }//D+ decays to pi0 mu+ nu_mu
691 if (GenDTag::PcheckDecay(genpart, 221, -13, 14)) {
692 return +1 * (100000 * m_nPhotos + 1017);
693 }//D+ decays to eta mu+ nu_mu
694 if (GenDTag::PcheckDecay(genpart, 331, -13, 14)) {
695 return +1 * (100000 * m_nPhotos + 1018);
696 }//D+ decays to eta' mu+ nu_mu
697 if (GenDTag::PcheckDecay(genpart, 113, -13, 14)) {
698 return +1 * (100000 * m_nPhotos + 1019);
699 }//D+ decays to rho0 mu+ nu_mu
700 if (GenDTag::PcheckDecay(genpart, 223, -13, 14)) {
701 return +1 * (100000 * m_nPhotos + 1020);
702 }//D+ decays to omega mu+ nu_mu
703 if (GenDTag::PcheckDecay(genpart, -321, 211, -13, 14)) {
704 return +1 * (100000 * m_nPhotos + 1021);
705 }//D+ decays to K- pi+ mu+ nu_mu
706 if (GenDTag::PcheckDecay(genpart, -311, 111, -13, 14)) {
707 return +1 * (100000 * m_nPhotos + 1022);
708 }//D+ decays to anti-K0 pi0 mu+ nu_mu
709 if (GenDTag::PcheckDecay(genpart, -13, 14)) {
710 return +1 * (100000 * m_nPhotos + 1023);
711 }//D+ decays to mu+ nu_mu
712 if (GenDTag::PcheckDecay(genpart, -15, 16)) {
713 return +1 * (100000 * m_nPhotos + 1024);
714 }//D+ decays to tau+ nu_tau
715 if (GenDTag::PcheckDecay(genpart, 310, 211)) {
716 return +1 * (100000 * m_nPhotos + 1025);
717 }//D+ decays to K_S0 pi+
718 if (GenDTag::PcheckDecay(genpart, 130, 211)) {
719 return +1 * (100000 * m_nPhotos + 1026);
720 }//D+ decays to K_L0 pi+
721 if (GenDTag::PcheckDecay(genpart, -311, 211)) {
722 return +1 * (100000 * m_nPhotos + 1027);
723 }//D+ decays to anti-K0 pi+
724 if (GenDTag::PcheckDecay(genpart, 20213, 310)) {
725 return +1 * (100000 * m_nPhotos + 1028);
726 }//D+ decays to a_1+ K_S0
727 if (GenDTag::PcheckDecay(genpart, 20213, 130)) {
728 return +1 * (100000 * m_nPhotos + 1029);
729 }//D+ decays to a_1+ K_L0
730 if (GenDTag::PcheckDecay(genpart, 20213, -311)) {
731 return +1 * (100000 * m_nPhotos + 1030);
732 }//D+ decays to a_1+ anti-K0
733 if (GenDTag::PcheckDecay(genpart, -20313, 211)) {
734 return +1 * (100000 * m_nPhotos + 1031);
735 }//D+ decays to anti-K'_10 pi+
736 if (GenDTag::PcheckDecay(genpart, -313, 213)) {
737 return +1 * (100000 * m_nPhotos + 1032);
738 }//D+ decays to anti-K*0 rho+
739 if (GenDTag::PcheckDecay(genpart, -321, 211, 211)) {
740 return +1 * (100000 * m_nPhotos + 1033);
741 }//D+ decays to K- pi+ pi+
742 if (GenDTag::PcheckDecay(genpart, 310, 211, 111)) {
743 return +1 * (100000 * m_nPhotos + 1034);
744 }//D+ decays to K_S0 pi+ pi0
745 if (GenDTag::PcheckDecay(genpart, 130, 211, 111)) {
746 return +1 * (100000 * m_nPhotos + 1035);
747 }//D+ decays to K_L0 pi+ pi0
748 if (GenDTag::PcheckDecay(genpart, -311, 211, 111)) {
749 return +1 * (100000 * m_nPhotos + 1036);
750 }//D+ decays to anti-K0 pi+ pi0
751 if (GenDTag::PcheckDecay(genpart, 310, 113, 211)) {
752 return +1 * (100000 * m_nPhotos + 1037);
753 }//D+ decays to K_S0 rho0 pi+
754 if (GenDTag::PcheckDecay(genpart, 130, 113, 211)) {
755 return +1 * (100000 * m_nPhotos + 1038);
756 }//D+ decays to K_L0 rho0 pi+
757 if (GenDTag::PcheckDecay(genpart, -311, 113, 211)) {
758 return +1 * (100000 * m_nPhotos + 1039);
759 }//D+ decays to anti-K0 rho0 pi+
760 if (GenDTag::PcheckDecay(genpart, -311, 223, 211)) {
761 return +1 * (100000 * m_nPhotos + 1040);
762 }//D+ decays to anti-K0 omega pi+
763 if (GenDTag::PcheckDecay(genpart, -321, 213, 211)) {
764 return +1 * (100000 * m_nPhotos + 1041);
765 }//D+ decays to K- rho+ pi+
766 if (GenDTag::PcheckDecay(genpart, -323, 211, 211)) {
767 return +1 * (100000 * m_nPhotos + 1042);
768 }//D+ decays to K*- pi+ pi+
769 if (GenDTag::PcheckDecay(genpart, -313, 111, 211)) {
770 return +1 * (100000 * m_nPhotos + 1043);
771 }//D+ decays to anti-K*0 pi0 pi+
772 if (GenDTag::PcheckDecay(genpart, -313, 113, 211)) {
773 return +1 * (100000 * m_nPhotos + 1044);
774 }//D+ decays to anti-K*0 rho0 pi+
775 if (GenDTag::PcheckDecay(genpart, -313, 223, 211)) {
776 return +1 * (100000 * m_nPhotos + 1045);
777 }//D+ decays to anti-K*0 omega pi+
778 if (GenDTag::PcheckDecay(genpart, -321, 211, 211, 111)) {
779 return +1 * (100000 * m_nPhotos + 1046);
780 }//D+ decays to K- pi+ pi+ pi0
781 if (GenDTag::PcheckDecay(genpart, 310, 211, 211, -211)) {
782 return +1 * (100000 * m_nPhotos + 1047);
783 }//D+ decays to K_S0 pi+ pi+ pi-
784 if (GenDTag::PcheckDecay(genpart, 130, 211, 211, -211)) {
785 return +1 * (100000 * m_nPhotos + 1048);
786 }//D+ decays to K_L0 pi+ pi+ pi-
787 if (GenDTag::PcheckDecay(genpart, -311, 211, 211, -211)) {
788 return +1 * (100000 * m_nPhotos + 1049);
789 }//D+ decays to anti-K0 pi+ pi+ pi-
790 if (GenDTag::PcheckDecay(genpart, -321, 211, 211, 211, -211)) {
791 return +1 * (100000 * m_nPhotos + 1050);
792 }//D+ decays to K- pi+ pi+ pi+ pi-
793 if (GenDTag::PcheckDecay(genpart, -321, 211, 211, 111, 111)) {
794 return +1 * (100000 * m_nPhotos + 1051);
795 }//D+ decays to K- pi+ pi+ pi0 pi0
796 if (GenDTag::PcheckDecay(genpart, -311, 211, 211, -211, 111)) {
797 return +1 * (100000 * m_nPhotos + 1052);
798 }//D+ decays to anti-K0 pi+ pi+ pi- pi0
799 if (GenDTag::PcheckDecay(genpart, -311, 211, 111, 111, 111)) {
800 return +1 * (100000 * m_nPhotos + 1053);
801 }//D+ decays to anti-K0 pi+ pi0 pi0 pi0
802 if (GenDTag::PcheckDecay(genpart, 310, 310, 321)) {
803 return +1 * (100000 * m_nPhotos + 1054);
804 }//D+ decays to K_S0 K_S0 K+
805 if (GenDTag::PcheckDecay(genpart, 130, 130, 321)) {
806 return +1 * (100000 * m_nPhotos + 1055);
807 }//D+ decays to K_L0 K_L0 K+
808 if (GenDTag::PcheckDecay(genpart, -311, -311, 321)) {
809 return +1 * (100000 * m_nPhotos + 1056);
810 }//D+ decays to anti-K0 anti-K0 K+
811 if (GenDTag::PcheckDecay(genpart, 333, 211)) {
812 return +1 * (100000 * m_nPhotos + 1057);
813 }//D+ decays to phi pi+
814 if (GenDTag::PcheckDecay(genpart, 333, 211, 111)) {
815 return +1 * (100000 * m_nPhotos + 1058);
816 }//D+ decays to phi pi+ pi0
817 if (GenDTag::PcheckDecay(genpart, 310, 321)) {
818 return +1 * (100000 * m_nPhotos + 1059);
819 }//D+ decays to K_S0 K+
820 if (GenDTag::PcheckDecay(genpart, 130, 321)) {
821 return +1 * (100000 * m_nPhotos + 1060);
822 }//D+ decays to K_L0 K+
823 if (GenDTag::PcheckDecay(genpart, -311, 321)) {
824 return +1 * (100000 * m_nPhotos + 1061);
825 }//D+ decays to anti-K0 K+
826 if (GenDTag::PcheckDecay(genpart, -313, 321)) {
827 return +1 * (100000 * m_nPhotos + 1062);
828 }//D+ decays to anti-K*0 K+
829 if (GenDTag::PcheckDecay(genpart, 323, 310)) {
830 return +1 * (100000 * m_nPhotos + 1063);
831 }//D+ decays to K*+ K_S0
832 if (GenDTag::PcheckDecay(genpart, 323, 130)) {
833 return +1 * (100000 * m_nPhotos + 1064);
834 }//D+ decays to K*+ K_L0
835 if (GenDTag::PcheckDecay(genpart, 323, -311)) {
836 return +1 * (100000 * m_nPhotos + 1065);
837 }//D+ decays to K*+ anti-K0
838 if (GenDTag::PcheckDecay(genpart, 321, -321, 211)) {
839 return +1 * (100000 * m_nPhotos + 1066);
840 }//D+ decays to K+ K- pi+
841 if (GenDTag::PcheckDecay(genpart, 321, -311, 111)) {
842 return +1 * (100000 * m_nPhotos + 1067);
843 }//D+ decays to K+ anti-K0 pi0
844 if (GenDTag::PcheckDecay(genpart, -311, 311, 211)) {
845 return +1 * (100000 * m_nPhotos + 1068);
846 }//D+ decays to anti-K0 K0 pi+
847 if (GenDTag::PcheckDecay(genpart, 323, -321, 211)) {
848 return +1 * (100000 * m_nPhotos + 1069);
849 }//D+ decays to K*+ K- pi+
850 if (GenDTag::PcheckDecay(genpart, 321, -323, 211)) {
851 return +1 * (100000 * m_nPhotos + 1070);
852 }//D+ decays to K+ K*- pi+
853 if (GenDTag::PcheckDecay(genpart, 323, -311, 111)) {
854 return +1 * (100000 * m_nPhotos + 1071);
855 }//D+ decays to K*+ anti-K0 pi0
856 if (GenDTag::PcheckDecay(genpart, 321, -313, 111)) {
857 return +1 * (100000 * m_nPhotos + 1072);
858 }//D+ decays to K+ anti-K*0 pi0
859 if (GenDTag::PcheckDecay(genpart, -313, 311, 211)) {
860 return +1 * (100000 * m_nPhotos + 1073);
861 }//D+ decays to anti-K*0 K0 pi+
862 if (GenDTag::PcheckDecay(genpart, -311, 313, 211)) {
863 return +1 * (100000 * m_nPhotos + 1074);
864 }//D+ decays to anti-K0 K*0 pi+
865 if (GenDTag::PcheckDecay(genpart, 111, 211)) {
866 return +1 * (100000 * m_nPhotos + 1075);
867 }//D+ decays to pi0 pi+
868 if (GenDTag::PcheckDecay(genpart, 113, 211)) {
869 return +1 * (100000 * m_nPhotos + 1076);
870 }//D+ decays to rho0 pi+
871 if (GenDTag::PcheckDecay(genpart, 211, 211, -211)) {
872 return +1 * (100000 * m_nPhotos + 1077);
873 }//D+ decays to pi+ pi+ pi-
874 if (GenDTag::PcheckDecay(genpart, 211, 111, 111)) {
875 return +1 * (100000 * m_nPhotos + 1078);
876 }//D+ decays to pi+ pi0 pi0
877 if (GenDTag::PcheckDecay(genpart, 211, 211, -211, 111)) {
878 return +1 * (100000 * m_nPhotos + 1079);
879 }//D+ decays to pi+ pi+ pi- pi0
880 if (GenDTag::PcheckDecay(genpart, 211, 111, 111, 111)) {
881 return +1 * (100000 * m_nPhotos + 1080);
882 }//D+ decays to pi+ pi0 pi0 pi0
883 if (GenDTag::PcheckDecay(genpart, 221, 211)) {
884 return +1 * (100000 * m_nPhotos + 1081);
885 }//D+ decays to eta pi+
886 if (GenDTag::PcheckDecay(genpart, 331, 211)) {
887 return +1 * (100000 * m_nPhotos + 1082);
888 }//D+ decays to eta' pi+
889 if (GenDTag::PcheckDecay(genpart, 221, 211, 111)) {
890 return +1 * (100000 * m_nPhotos + 1083);
891 }//D+ decays to eta pi+ pi0
892 if (GenDTag::PcheckDecay(genpart, 221, 211, 211, -211)) {
893 return +1 * (100000 * m_nPhotos + 1084);
894 }//D+ decays to eta pi+ pi+ pi-
895 if (GenDTag::PcheckDecay(genpart, 221, 211, 111, 111)) {
896 return +1 * (100000 * m_nPhotos + 1085);
897 }//D+ decays to eta pi+ pi0 pi0
898 if (GenDTag::PcheckDecay(genpart, 211, 211, 211, -211, -211)) {
899 return +1 * (100000 * m_nPhotos + 1086);
900 }//D+ decays to pi+ pi+ pi+ pi- pi-
901 if (GenDTag::PcheckDecay(genpart, 321, -321, 211, 111)) {
902 return +1 * (100000 * m_nPhotos + 1087);
903 }//D+ decays to K+ K- pi+ pi0
904 if (GenDTag::PcheckDecay(genpart, 321, 310, 211, -211)) {
905 return +1 * (100000 * m_nPhotos + 1088);
906 }//D+ decays to K+ K_S0 pi+ pi-
907 if (GenDTag::PcheckDecay(genpart, 321, 130, 211, -211)) {
908 return +1 * (100000 * m_nPhotos + 1089);
909 }//D+ decays to K+ K_L0 pi+ pi-
910 if (GenDTag::PcheckDecay(genpart, 321, -311, 211, -211)) {
911 return +1 * (100000 * m_nPhotos + 1090);
912 }//D+ decays to K+ anti-K0 pi+ pi-
913 if (GenDTag::PcheckDecay(genpart, 310, -321, 211, 211)) {
914 return +1 * (100000 * m_nPhotos + 1091);
915 }//D+ decays to K_S0 K- pi+ pi+
916 if (GenDTag::PcheckDecay(genpart, 130, -321, 211, 211)) {
917 return +1 * (100000 * m_nPhotos + 1092);
918 }//D+ decays to K_L0 K- pi+ pi+
919 if (GenDTag::PcheckDecay(genpart, 311, -321, 211, 211)) {
920 return +1 * (100000 * m_nPhotos + 1093);
921 }//D+ decays to K0 K- pi+ pi+
922 if (GenDTag::PcheckDecay(genpart, 321, -321, 211, 211, -211)) {
923 return +1 * (100000 * m_nPhotos + 1094);
924 }//D+ decays to K+ K- pi+ pi+ pi-
925 if (GenDTag::PcheckDecay(genpart, 321, -321, 310, 211)) {
926 return +1 * (100000 * m_nPhotos + 1095);
927 }//D+ decays to K+ K- K_S0 pi+
928 if (GenDTag::PcheckDecay(genpart, 321, -321, 130, 211)) {
929 return +1 * (100000 * m_nPhotos + 1096);
930 }//D+ decays to K+ K- K_L0 pi+
931 if (GenDTag::PcheckDecay(genpart, 321, -321, -311, 211)) {
932 return +1 * (100000 * m_nPhotos + 1097);
933 }//D+ decays to K+ K- anti-K0 pi+
934 if (GenDTag::PcheckDecay(genpart, -313, 20213)) {
935 return +1 * (100000 * m_nPhotos + 1098);
936 }//D+ decays to anti-K*0 a_1+
937 if (GenDTag::PcheckDecay(genpart, 321, 111)) {
938 return +1 * (100000 * m_nPhotos + 1099);
939 }//D+ decays to K+ pi0
940 if (GenDTag::PcheckDecay(genpart, 321, 211, -211)) {
941 return +1 * (100000 * m_nPhotos + 1100);
942 }//D+ decays to K+ pi+ pi-
943 if (GenDTag::PcheckDecay(genpart, 321, 321, -321)) {
944 return +1 * (100000 * m_nPhotos + 1101);
945 }//D+ decays to K+ K+ K-
946 if (GenDTag::PcheckDecay(genpart, -321, 113, 211, 211)) {
947 return +1 * (100000 * m_nPhotos + 1102);
948 }//D+ decays to K- rho0 pi+ pi+
949 if (GenDTag::PcheckDecay(genpart, 331, 211, 111)) {
950 return +1 * (100000 * m_nPhotos + 1103);
951 }//D+ decays to eta' pi+ pi0
952 if (GenDTag::PcheckDecay(genpart, 321, 113)) {
953 return +1 * (100000 * m_nPhotos + 1104);
954 }//D+ decays to K+ rho0
955 return +1 * genpart.size();
956}// Rest of the D+ decays
957
958
959int GenDTag::Mode_D_minus(std::vector<int> genpart)
960{
961 if (GenDTag::PcheckDecay(genpart, 313, 11, -12)) {
962 return -1 * (100000 * m_nPhotos + 1001);
963 }//D- decays to K*0 e- anti-nu_e
964 if (GenDTag::PcheckDecay(genpart, 311, 11, -12)) {
965 return -1 * (100000 * m_nPhotos + 1002);
966 }//D- decays to K0 e- anti-nu_e
967 if (GenDTag::PcheckDecay(genpart, 10313, 11, -12)) {
968 return -1 * (100000 * m_nPhotos + 1003);
969 }//D- decays to K_10 e- anti-nu_e
970 if (GenDTag::PcheckDecay(genpart, 315, 11, -12)) {
971 return -1 * (100000 * m_nPhotos + 1004);
972 }//D- decays to K_2*0 e- anti-nu_e
973 if (GenDTag::PcheckDecay(genpart, 111, 11, -12)) {
974 return -1 * (100000 * m_nPhotos + 1005);
975 }//D- decays to pi0 e- anti-nu_e
976 if (GenDTag::PcheckDecay(genpart, 221, 11, -12)) {
977 return -1 * (100000 * m_nPhotos + 1006);
978 }//D- decays to eta e- anti-nu_e
979 if (GenDTag::PcheckDecay(genpart, 331, 11, -12)) {
980 return -1 * (100000 * m_nPhotos + 1007);
981 }//D- decays to eta' e- anti-nu_e
982 if (GenDTag::PcheckDecay(genpart, 113, 11, -12)) {
983 return -1 * (100000 * m_nPhotos + 1008);
984 }//D- decays to rho0 e- anti-nu_e
985 if (GenDTag::PcheckDecay(genpart, 223, 11, -12)) {
986 return -1 * (100000 * m_nPhotos + 1009);
987 }//D- decays to omega e- anti-nu_e
988 if (GenDTag::PcheckDecay(genpart, 321, -211, 11, -12)) {
989 return -1 * (100000 * m_nPhotos + 1010);
990 }//D- decays to K+ pi- e- anti-nu_e
991 if (GenDTag::PcheckDecay(genpart, 311, 111, 11, -12)) {
992 return -1 * (100000 * m_nPhotos + 1011);
993 }//D- decays to K0 pi0 e- anti-nu_e
994 if (GenDTag::PcheckDecay(genpart, 313, 13, -14)) {
995 return -1 * (100000 * m_nPhotos + 1012);
996 }//D- decays to K*0 mu- anti-nu_mu
997 if (GenDTag::PcheckDecay(genpart, 311, 13, -14)) {
998 return -1 * (100000 * m_nPhotos + 1013);
999 }//D- decays to K0 mu- anti-nu_mu
1000 if (GenDTag::PcheckDecay(genpart, 10313, 13, -14)) {
1001 return -1 * (100000 * m_nPhotos + 1014);
1002 }//D- decays to K_10 mu- anti-nu_mu
1003 if (GenDTag::PcheckDecay(genpart, 315, 13, -14)) {
1004 return -1 * (100000 * m_nPhotos + 1015);
1005 }//D- decays to K_2*0 mu- anti-nu_mu
1006 if (GenDTag::PcheckDecay(genpart, 111, 13, -14)) {
1007 return -1 * (100000 * m_nPhotos + 1016);
1008 }//D- decays to pi0 mu- anti-nu_mu
1009 if (GenDTag::PcheckDecay(genpart, 221, 13, -14)) {
1010 return -1 * (100000 * m_nPhotos + 1017);
1011 }//D- decays to eta mu- anti-nu_mu
1012 if (GenDTag::PcheckDecay(genpart, 331, 13, -14)) {
1013 return -1 * (100000 * m_nPhotos + 1018);
1014 }//D- decays to eta' mu- anti-nu_mu
1015 if (GenDTag::PcheckDecay(genpart, 113, 13, -14)) {
1016 return -1 * (100000 * m_nPhotos + 1019);
1017 }//D- decays to rho0 mu- anti-nu_mu
1018 if (GenDTag::PcheckDecay(genpart, 223, 13, -14)) {
1019 return -1 * (100000 * m_nPhotos + 1020);
1020 }//D- decays to omega mu- anti-nu_mu
1021 if (GenDTag::PcheckDecay(genpart, 321, -211, 13, -14)) {
1022 return -1 * (100000 * m_nPhotos + 1021);
1023 }//D- decays to K+ pi- mu- anti-nu_mu
1024 if (GenDTag::PcheckDecay(genpart, 311, 111, 13, -14)) {
1025 return -1 * (100000 * m_nPhotos + 1022);
1026 }//D- decays to K0 pi0 mu- anti-nu_mu
1027 if (GenDTag::PcheckDecay(genpart, 13, -14)) {
1028 return -1 * (100000 * m_nPhotos + 1023);
1029 }//D- decays to mu- anti-nu_mu
1030 if (GenDTag::PcheckDecay(genpart, 15, -16)) {
1031 return -1 * (100000 * m_nPhotos + 1024);
1032 }//D- decays to tau- anti-nu_tau
1033 if (GenDTag::PcheckDecay(genpart, 310, -211)) {
1034 return -1 * (100000 * m_nPhotos + 1025);
1035 }//D- decays to K_S0 pi-
1036 if (GenDTag::PcheckDecay(genpart, 130, -211)) {
1037 return -1 * (100000 * m_nPhotos + 1026);
1038 }//D- decays to K_L0 pi-
1039 if (GenDTag::PcheckDecay(genpart, 311, -211)) {
1040 return -1 * (100000 * m_nPhotos + 1027);
1041 }//D- decays to K0 pi-
1042 if (GenDTag::PcheckDecay(genpart, -20213, 310)) {
1043 return -1 * (100000 * m_nPhotos + 1028);
1044 }//D- decays to a_1- K_S0
1045 if (GenDTag::PcheckDecay(genpart, -20213, 130)) {
1046 return -1 * (100000 * m_nPhotos + 1029);
1047 }//D- decays to a_1- K_L0
1048 if (GenDTag::PcheckDecay(genpart, -20213, 311)) {
1049 return -1 * (100000 * m_nPhotos + 1030);
1050 }//D- decays to a_1- K0
1051 if (GenDTag::PcheckDecay(genpart, 20313, -211)) {
1052 return -1 * (100000 * m_nPhotos + 1031);
1053 }//D- decays to K'_10 pi-
1054 if (GenDTag::PcheckDecay(genpart, 313, -213)) {
1055 return -1 * (100000 * m_nPhotos + 1032);
1056 }//D- decays to K*0 rho-
1057 if (GenDTag::PcheckDecay(genpart, 321, -211, -211)) {
1058 return -1 * (100000 * m_nPhotos + 1033);
1059 }//D- decays to K+ pi- pi-
1060 if (GenDTag::PcheckDecay(genpart, 310, -211, 111)) {
1061 return -1 * (100000 * m_nPhotos + 1034);
1062 }//D- decays to K_S0 pi- pi0
1063 if (GenDTag::PcheckDecay(genpart, 130, -211, 111)) {
1064 return -1 * (100000 * m_nPhotos + 1035);
1065 }//D- decays to K_L0 pi- pi0
1066 if (GenDTag::PcheckDecay(genpart, 311, -211, 111)) {
1067 return -1 * (100000 * m_nPhotos + 1036);
1068 }//D- decays to K0 pi- pi0
1069 if (GenDTag::PcheckDecay(genpart, 310, 113, -211)) {
1070 return -1 * (100000 * m_nPhotos + 1037);
1071 }//D- decays to K_S0 rho0 pi-
1072 if (GenDTag::PcheckDecay(genpart, 130, 113, -211)) {
1073 return -1 * (100000 * m_nPhotos + 1038);
1074 }//D- decays to K_L0 rho0 pi-
1075 if (GenDTag::PcheckDecay(genpart, 311, 113, -211)) {
1076 return -1 * (100000 * m_nPhotos + 1039);
1077 }//D- decays to K0 rho0 pi-
1078 if (GenDTag::PcheckDecay(genpart, 311, 223, -211)) {
1079 return -1 * (100000 * m_nPhotos + 1040);
1080 }//D- decays to K0 omega pi-
1081 if (GenDTag::PcheckDecay(genpart, 321, -213, -211)) {
1082 return -1 * (100000 * m_nPhotos + 1041);
1083 }//D- decays to K+ rho- pi-
1084 if (GenDTag::PcheckDecay(genpart, 323, -211, -211)) {
1085 return -1 * (100000 * m_nPhotos + 1042);
1086 }//D- decays to K*+ pi- pi-
1087 if (GenDTag::PcheckDecay(genpart, 313, 111, -211)) {
1088 return -1 * (100000 * m_nPhotos + 1043);
1089 }//D- decays to K*0 pi0 pi-
1090 if (GenDTag::PcheckDecay(genpart, 313, 113, -211)) {
1091 return -1 * (100000 * m_nPhotos + 1044);
1092 }//D- decays to K*0 rho0 pi-
1093 if (GenDTag::PcheckDecay(genpart, 313, 223, -211)) {
1094 return -1 * (100000 * m_nPhotos + 1045);
1095 }//D- decays to K*0 omega pi-
1096 if (GenDTag::PcheckDecay(genpart, 321, -211, -211, 111)) {
1097 return -1 * (100000 * m_nPhotos + 1046);
1098 }//D- decays to K+ pi- pi- pi0
1099 if (GenDTag::PcheckDecay(genpart, 310, -211, -211, 211)) {
1100 return -1 * (100000 * m_nPhotos + 1047);
1101 }//D- decays to K_S0 pi- pi- pi+
1102 if (GenDTag::PcheckDecay(genpart, 130, -211, -211, 211)) {
1103 return -1 * (100000 * m_nPhotos + 1048);
1104 }//D- decays to K_L0 pi- pi- pi+
1105 if (GenDTag::PcheckDecay(genpart, 311, -211, -211, 211)) {
1106 return -1 * (100000 * m_nPhotos + 1049);
1107 }//D- decays to K0 pi- pi- pi+
1108 if (GenDTag::PcheckDecay(genpart, 321, -211, -211, -211, 211)) {
1109 return -1 * (100000 * m_nPhotos + 1050);
1110 }//D- decays to K+ pi- pi- pi- pi+
1111 if (GenDTag::PcheckDecay(genpart, 321, -211, -211, 111, 111)) {
1112 return -1 * (100000 * m_nPhotos + 1051);
1113 }//D- decays to K+ pi- pi- pi0 pi0
1114 if (GenDTag::PcheckDecay(genpart, 311, -211, -211, 211, 111)) {
1115 return -1 * (100000 * m_nPhotos + 1052);
1116 }//D- decays to K0 pi- pi- pi+ pi0
1117 if (GenDTag::PcheckDecay(genpart, 311, -211, 111, 111, 111)) {
1118 return -1 * (100000 * m_nPhotos + 1053);
1119 }//D- decays to K0 pi- pi0 pi0 pi0
1120 if (GenDTag::PcheckDecay(genpart, 310, 310, -321)) {
1121 return -1 * (100000 * m_nPhotos + 1054);
1122 }//D- decays to K_S0 K_S0 K-
1123 if (GenDTag::PcheckDecay(genpart, 130, 130, -321)) {
1124 return -1 * (100000 * m_nPhotos + 1055);
1125 }//D- decays to K_L0 K_L0 K-
1126 if (GenDTag::PcheckDecay(genpart, 311, 311, -321)) {
1127 return -1 * (100000 * m_nPhotos + 1056);
1128 }//D- decays to K0 K0 K-
1129 if (GenDTag::PcheckDecay(genpart, 333, -211)) {
1130 return -1 * (100000 * m_nPhotos + 1057);
1131 }//D- decays to phi pi-
1132 if (GenDTag::PcheckDecay(genpart, 333, -211, 111)) {
1133 return -1 * (100000 * m_nPhotos + 1058);
1134 }//D- decays to phi pi- pi0
1135 if (GenDTag::PcheckDecay(genpart, 310, -321)) {
1136 return -1 * (100000 * m_nPhotos + 1059);
1137 }//D- decays to K_S0 K-
1138 if (GenDTag::PcheckDecay(genpart, 130, -321)) {
1139 return -1 * (100000 * m_nPhotos + 1060);
1140 }//D- decays to K_L0 K-
1141 if (GenDTag::PcheckDecay(genpart, 311, -321)) {
1142 return -1 * (100000 * m_nPhotos + 1061);
1143 }//D- decays to K0 K-
1144 if (GenDTag::PcheckDecay(genpart, 313, -321)) {
1145 return -1 * (100000 * m_nPhotos + 1062);
1146 }//D- decays to K*0 K-
1147 if (GenDTag::PcheckDecay(genpart, -323, 310)) {
1148 return -1 * (100000 * m_nPhotos + 1063);
1149 }//D- decays to K*- K_S0
1150 if (GenDTag::PcheckDecay(genpart, -323, 130)) {
1151 return -1 * (100000 * m_nPhotos + 1064);
1152 }//D- decays to K*- K_L0
1153 if (GenDTag::PcheckDecay(genpart, -323, 311)) {
1154 return -1 * (100000 * m_nPhotos + 1065);
1155 }//D- decays to K*- K0
1156 if (GenDTag::PcheckDecay(genpart, -321, 321, -211)) {
1157 return -1 * (100000 * m_nPhotos + 1066);
1158 }//D- decays to K- K+ pi-
1159 if (GenDTag::PcheckDecay(genpart, -321, 311, 111)) {
1160 return -1 * (100000 * m_nPhotos + 1067);
1161 }//D- decays to K- K0 pi0
1162 if (GenDTag::PcheckDecay(genpart, -311, 311, -211)) {
1163 return -1 * (100000 * m_nPhotos + 1068);
1164 }//D- decays to anti-K0 K0 pi-
1165 if (GenDTag::PcheckDecay(genpart, -323, 321, -211)) {
1166 return -1 * (100000 * m_nPhotos + 1069);
1167 }//D- decays to K*- K+ pi-
1168 if (GenDTag::PcheckDecay(genpart, -321, 323, -211)) {
1169 return -1 * (100000 * m_nPhotos + 1070);
1170 }//D- decays to K- K*+ pi-
1171 if (GenDTag::PcheckDecay(genpart, -323, 311, 111)) {
1172 return -1 * (100000 * m_nPhotos + 1071);
1173 }//D- decays to K*- K0 pi0
1174 if (GenDTag::PcheckDecay(genpart, -321, 313, 111)) {
1175 return -1 * (100000 * m_nPhotos + 1072);
1176 }//D- decays to K- K*0 pi0
1177 if (GenDTag::PcheckDecay(genpart, 313, -311, -211)) {
1178 return -1 * (100000 * m_nPhotos + 1073);
1179 }//D- decays to K*0 anti-K0 pi-
1180 if (GenDTag::PcheckDecay(genpart, 311, -313, -211)) {
1181 return -1 * (100000 * m_nPhotos + 1074);
1182 }//D- decays to K0 anti-K*0 pi-
1183 if (GenDTag::PcheckDecay(genpart, 111, -211)) {
1184 return -1 * (100000 * m_nPhotos + 1075);
1185 }//D- decays to pi0 pi-
1186 if (GenDTag::PcheckDecay(genpart, 113, -211)) {
1187 return -1 * (100000 * m_nPhotos + 1076);
1188 }//D- decays to rho0 pi-
1189 if (GenDTag::PcheckDecay(genpart, -211, 211, -211)) {
1190 return -1 * (100000 * m_nPhotos + 1077);
1191 }//D- decays to pi- pi+ pi-
1192 if (GenDTag::PcheckDecay(genpart, -211, 111, 111)) {
1193 return -1 * (100000 * m_nPhotos + 1078);
1194 }//D- decays to pi- pi0 pi0
1195 if (GenDTag::PcheckDecay(genpart, -211, 211, -211, 111)) {
1196 return -1 * (100000 * m_nPhotos + 1079);
1197 }//D- decays to pi- pi+ pi- pi0
1198 if (GenDTag::PcheckDecay(genpart, -211, 111, 111, 111)) {
1199 return -1 * (100000 * m_nPhotos + 1080);
1200 }//D- decays to pi- pi0 pi0 pi0
1201 if (GenDTag::PcheckDecay(genpart, 221, -211)) {
1202 return -1 * (100000 * m_nPhotos + 1081);
1203 }//D- decays to eta pi-
1204 if (GenDTag::PcheckDecay(genpart, 331, -211)) {
1205 return -1 * (100000 * m_nPhotos + 1082);
1206 }//D- decays to eta' pi-
1207 if (GenDTag::PcheckDecay(genpart, 221, -211, 111)) {
1208 return -1 * (100000 * m_nPhotos + 1083);
1209 }//D- decays to eta pi- pi0
1210 if (GenDTag::PcheckDecay(genpart, 221, -211, 211, -211)) {
1211 return -1 * (100000 * m_nPhotos + 1084);
1212 }//D- decays to eta pi- pi+ pi-
1213 if (GenDTag::PcheckDecay(genpart, 221, -211, 111, 111)) {
1214 return -1 * (100000 * m_nPhotos + 1085);
1215 }//D- decays to eta pi- pi0 pi0
1216 if (GenDTag::PcheckDecay(genpart, 211, -211, 211, -211, -211)) {
1217 return -1 * (100000 * m_nPhotos + 1086);
1218 }//D- decays to pi+ pi- pi+ pi- pi-
1219 if (GenDTag::PcheckDecay(genpart, 313, -20213)) {
1220 return -1 * (100000 * m_nPhotos + 1087);
1221 }//D- decays to K*0 a_1-
1222 if (GenDTag::PcheckDecay(genpart, 321, -321, -211, 111)) {
1223 return -1 * (100000 * m_nPhotos + 1088);
1224 }//D- decays to K+ K- pi- pi0
1225 if (GenDTag::PcheckDecay(genpart, -321, 310, 211, -211)) {
1226 return -1 * (100000 * m_nPhotos + 1089);
1227 }//D- decays to K- K_S0 pi+ pi-
1228 if (GenDTag::PcheckDecay(genpart, -321, 130, 211, -211)) {
1229 return -1 * (100000 * m_nPhotos + 1090);
1230 }//D- decays to K- K_L0 pi+ pi-
1231 if (GenDTag::PcheckDecay(genpart, -321, 311, 211, -211)) {
1232 return -1 * (100000 * m_nPhotos + 1091);
1233 }//D- decays to K- K0 pi+ pi-
1234 if (GenDTag::PcheckDecay(genpart, 310, 321, -211, -211)) {
1235 return -1 * (100000 * m_nPhotos + 1092);
1236 }//D- decays to K_S0 K+ pi- pi-
1237 if (GenDTag::PcheckDecay(genpart, 130, 321, -211, -211)) {
1238 return -1 * (100000 * m_nPhotos + 1093);
1239 }//D- decays to K_L0 K+ pi- pi-
1240 if (GenDTag::PcheckDecay(genpart, -311, 321, -211, -211)) {
1241 return -1 * (100000 * m_nPhotos + 1094);
1242 }//D- decays to anti-K0 K+ pi- pi-
1243 if (GenDTag::PcheckDecay(genpart, 321, -321, 211, -211, -211)) {
1244 return -1 * (100000 * m_nPhotos + 1095);
1245 }//D- decays to K+ K- pi+ pi- pi-
1246 if (GenDTag::PcheckDecay(genpart, 321, -321, 310, -211)) {
1247 return -1 * (100000 * m_nPhotos + 1096);
1248 }//D- decays to K+ K- K_S0 pi-
1249 if (GenDTag::PcheckDecay(genpart, 321, -321, 130, -211)) {
1250 return -1 * (100000 * m_nPhotos + 1097);
1251 }//D- decays to K+ K- K_L0 pi-
1252 if (GenDTag::PcheckDecay(genpart, 321, -321, 311, -211)) {
1253 return -1 * (100000 * m_nPhotos + 1098);
1254 }//D- decays to K+ K- K0 pi-
1255 if (GenDTag::PcheckDecay(genpart, -321, 111)) {
1256 return -1 * (100000 * m_nPhotos + 1099);
1257 }//D- decays to K- pi0
1258 if (GenDTag::PcheckDecay(genpart, -321, 211, -211)) {
1259 return -1 * (100000 * m_nPhotos + 1100);
1260 }//D- decays to K- pi+ pi-
1261 if (GenDTag::PcheckDecay(genpart, -321, 321, -321)) {
1262 return -1 * (100000 * m_nPhotos + 1101);
1263 }//D- decays to K- K+ K-
1264 if (GenDTag::PcheckDecay(genpart, 321, 113, -211, -211)) {
1265 return -1 * (100000 * m_nPhotos + 1102);
1266 }//D- decays to K+ rho0 pi- pi-
1267 if (GenDTag::PcheckDecay(genpart, 331, -211, 111)) {
1268 return -1 * (100000 * m_nPhotos + 1103);
1269 }//D- decays to eta' pi- pi0
1270 if (GenDTag::PcheckDecay(genpart, -321, 113)) {
1271 return -1 * (100000 * m_nPhotos + 1104);
1272 }//D- decays to K- rho0
1273 return -1 * (int)genpart.size();
1274}// Rest of the D- decays
1275
1276
1277int GenDTag::Mode_D0(std::vector<int> genpart)
1278{
1279 if (GenDTag::PcheckDecay(genpart, -323, -11, 12)) {
1280 return +1 * (100000 * m_nPhotos + 1001);
1281 }//D0 decays to K*- e+ nu_e
1282 if (GenDTag::PcheckDecay(genpart, -321, -11, 12)) {
1283 return +1 * (100000 * m_nPhotos + 1002);
1284 }//D0 decays to K- e+ nu_e
1285 if (GenDTag::PcheckDecay(genpart, -10323, -11, 12)) {
1286 return +1 * (100000 * m_nPhotos + 1003);
1287 }//D0 decays to K_1- e+ nu_e
1288 if (GenDTag::PcheckDecay(genpart, -325, -11, 12)) {
1289 return +1 * (100000 * m_nPhotos + 1004);
1290 }//D0 decays to K_2*- e+ nu_e
1291 if (GenDTag::PcheckDecay(genpart, -211, -11, 12)) {
1292 return +1 * (100000 * m_nPhotos + 1005);
1293 }//D0 decays to pi- e+ nu_e
1294 if (GenDTag::PcheckDecay(genpart, -213, -11, 12)) {
1295 return +1 * (100000 * m_nPhotos + 1006);
1296 }//D0 decays to rho- e+ nu_e
1297 if (GenDTag::PcheckDecay(genpart, -311, -211, -11, 12)) {
1298 return +1 * (100000 * m_nPhotos + 1007);
1299 }//D0 decays to anti-K0 pi- e+ nu_e
1300 if (GenDTag::PcheckDecay(genpart, -321, 111, -11, 12)) {
1301 return +1 * (100000 * m_nPhotos + 1008);
1302 }//D0 decays to K- pi0 e+ nu_e
1303 if (GenDTag::PcheckDecay(genpart, -323, -13, 14)) {
1304 return +1 * (100000 * m_nPhotos + 1009);
1305 }//D0 decays to K*- mu+ nu_mu
1306 if (GenDTag::PcheckDecay(genpart, -321, -13, 14)) {
1307 return +1 * (100000 * m_nPhotos + 1010);
1308 }//D0 decays to K- mu+ nu_mu
1309 if (GenDTag::PcheckDecay(genpart, -10323, -13, 14)) {
1310 return +1 * (100000 * m_nPhotos + 1011);
1311 }//D0 decays to K_1- mu+ nu_mu
1312 if (GenDTag::PcheckDecay(genpart, -325, -13, 14)) {
1313 return +1 * (100000 * m_nPhotos + 1012);
1314 }//D0 decays to K_2*- mu+ nu_mu
1315 if (GenDTag::PcheckDecay(genpart, -211, -13, 14)) {
1316 return +1 * (100000 * m_nPhotos + 1013);
1317 }//D0 decays to pi- mu+ nu_mu
1318 if (GenDTag::PcheckDecay(genpart, -213, -13, 14)) {
1319 return +1 * (100000 * m_nPhotos + 1014);
1320 }//D0 decays to rho- mu+ nu_mu
1321 if (GenDTag::PcheckDecay(genpart, -311, -211, -13, 14)) {
1322 return +1 * (100000 * m_nPhotos + 1015);
1323 }//D0 decays to anti-K0 pi- mu+ nu_mu
1324 if (GenDTag::PcheckDecay(genpart, -321, 111, -13, 14)) {
1325 return +1 * (100000 * m_nPhotos + 1016);
1326 }//D0 decays to K- pi0 mu+ nu_mu
1327 if (GenDTag::PcheckDecay(genpart, -321, 211)) {
1328 return +1 * (100000 * m_nPhotos + 1017);
1329 }//D0 decays to K- pi+
1330 if (GenDTag::PcheckDecay(genpart, 310, 111)) {
1331 return +1 * (100000 * m_nPhotos + 1018);
1332 }//D0 decays to K_S0 pi0
1333 if (GenDTag::PcheckDecay(genpart, 130, 111)) {
1334 return +1 * (100000 * m_nPhotos + 1019);
1335 }//D0 decays to K_L0 pi0
1336 if (GenDTag::PcheckDecay(genpart, -311, 111)) {
1337 return +1 * (100000 * m_nPhotos + 1020);
1338 }//D0 decays to anti-K0 pi0
1339 if (GenDTag::PcheckDecay(genpart, 310, 221)) {
1340 return +1 * (100000 * m_nPhotos + 1021);
1341 }//D0 decays to K_S0 eta
1342 if (GenDTag::PcheckDecay(genpart, 130, 221)) {
1343 return +1 * (100000 * m_nPhotos + 1022);
1344 }//D0 decays to K_L0 eta
1345 if (GenDTag::PcheckDecay(genpart, -311, 221)) {
1346 return +1 * (100000 * m_nPhotos + 1023);
1347 }//D0 decays to anti-K0 eta
1348 if (GenDTag::PcheckDecay(genpart, 310, 331)) {
1349 return +1 * (100000 * m_nPhotos + 1024);
1350 }//D0 decays to K_S0 eta'
1351 if (GenDTag::PcheckDecay(genpart, 130, 331)) {
1352 return +1 * (100000 * m_nPhotos + 1025);
1353 }//D0 decays to K_L0 eta'
1354 if (GenDTag::PcheckDecay(genpart, -311, 331)) {
1355 return +1 * (100000 * m_nPhotos + 1026);
1356 }//D0 decays to anti-K0 eta'
1357 if (GenDTag::PcheckDecay(genpart, 223, 310)) {
1358 return +1 * (100000 * m_nPhotos + 1027);
1359 }//D0 decays to omega K_S0
1360 if (GenDTag::PcheckDecay(genpart, 223, 130)) {
1361 return +1 * (100000 * m_nPhotos + 1028);
1362 }//D0 decays to omega K_L0
1363 if (GenDTag::PcheckDecay(genpart, 223, -311)) {
1364 return +1 * (100000 * m_nPhotos + 1029);
1365 }//D0 decays to omega anti-K0
1366 if (GenDTag::PcheckDecay(genpart, -313, 221)) {
1367 return +1 * (100000 * m_nPhotos + 1030);
1368 }//D0 decays to anti-K*0 eta
1369 if (GenDTag::PcheckDecay(genpart, -313, 331)) {
1370 return +1 * (100000 * m_nPhotos + 1031);
1371 }//D0 decays to anti-K*0 eta'
1372 if (GenDTag::PcheckDecay(genpart, 20213, -321)) {
1373 return +1 * (100000 * m_nPhotos + 1032);
1374 }//D0 decays to a_1+ K-
1375 if (GenDTag::PcheckDecay(genpart, -323, 213)) {
1376 return +1 * (100000 * m_nPhotos + 1033);
1377 }//D0 decays to K*- rho+
1378 if (GenDTag::PcheckDecay(genpart, -313, 113)) {
1379 return +1 * (100000 * m_nPhotos + 1034);
1380 }//D0 decays to anti-K*0 rho0
1381 if (GenDTag::PcheckDecay(genpart, -313, 223)) {
1382 return +1 * (100000 * m_nPhotos + 1035);
1383 }//D0 decays to anti-K*0 omega
1384 if (GenDTag::PcheckDecay(genpart, -321, 211, 111)) {
1385 return +1 * (100000 * m_nPhotos + 1036);
1386 }//D0 decays to K- pi+ pi0
1387 if (GenDTag::PcheckDecay(genpart, -313, 111)) {
1388 return +1 * (100000 * m_nPhotos + 1037);
1389 }//D0 decays to K*BR pi0
1390 if (GenDTag::PcheckDecay(genpart, -10323, 211)) {
1391 return +1 * (100000 * m_nPhotos + 1038);
1392 }//D0 decays to K_1- pi+
1393 if (GenDTag::PcheckDecay(genpart, -10313, 111)) {
1394 return +1 * (100000 * m_nPhotos + 1039);
1395 }//D0 decays to anti-K_10 pi0
1396 if (GenDTag::PcheckDecay(genpart, 310, 211, -211)) {
1397 return +1 * (100000 * m_nPhotos + 1040);
1398 }//D0 decays to K_S0 pi+ pi-
1399 if (GenDTag::PcheckDecay(genpart, 130, 211, -211)) {
1400 return +1 * (100000 * m_nPhotos + 1041);
1401 }//D0 decays to K_L0 pi+ pi-
1402 if (GenDTag::PcheckDecay(genpart, -311, 211, -211)) {
1403 return +1 * (100000 * m_nPhotos + 1042);
1404 }//D0 decays to anti-K0 pi+ pi-
1405 if (GenDTag::PcheckDecay(genpart, 310, 111, 111)) {
1406 return +1 * (100000 * m_nPhotos + 1043);
1407 }//D0 decays to K_S0 pi0 pi0
1408 if (GenDTag::PcheckDecay(genpart, 130, 111, 111)) {
1409 return +1 * (100000 * m_nPhotos + 1044);
1410 }//D0 decays to K_L0 pi0 pi0
1411 if (GenDTag::PcheckDecay(genpart, -311, 111, 111)) {
1412 return +1 * (100000 * m_nPhotos + 1045);
1413 }//D0 decays to anti-K0 pi0 pi0
1414 if (GenDTag::PcheckDecay(genpart, -313, 211, -211)) {
1415 return +1 * (100000 * m_nPhotos + 1046);
1416 }//D0 decays to anti-K*0 pi+ pi-
1417 if (GenDTag::PcheckDecay(genpart, -313, 111, 111)) {
1418 return +1 * (100000 * m_nPhotos + 1047);
1419 }//D0 decays to anti-K*0 pi0 pi0
1420 if (GenDTag::PcheckDecay(genpart, -323, 211, 111)) {
1421 return +1 * (100000 * m_nPhotos + 1048);
1422 }//D0 decays to K*- pi+ pi0
1423 if (GenDTag::PcheckDecay(genpart, -321, 213, 111)) {
1424 return +1 * (100000 * m_nPhotos + 1049);
1425 }//D0 decays to K- rho+ pi0
1426 if (GenDTag::PcheckDecay(genpart, -321, 211, 113)) {
1427 return +1 * (100000 * m_nPhotos + 1050);
1428 }//D0 decays to K- pi+ rho0
1429 if (GenDTag::PcheckDecay(genpart, -321, 211, 223)) {
1430 return +1 * (100000 * m_nPhotos + 1051);
1431 }//D0 decays to K- pi+ omega
1432 if (GenDTag::PcheckDecay(genpart, -321, 211, 221)) {
1433 return +1 * (100000 * m_nPhotos + 1052);
1434 }//D0 decays to K- pi+ eta
1435 if (GenDTag::PcheckDecay(genpart, -321, 211, 331)) {
1436 return +1 * (100000 * m_nPhotos + 1053);
1437 }//D0 decays to K- pi+ eta'
1438 if (GenDTag::PcheckDecay(genpart, -321, 211, 211, -211)) {
1439 return +1 * (100000 * m_nPhotos + 1054);
1440 }//D0 decays to K- pi+ pi+ pi-
1441 if (GenDTag::PcheckDecay(genpart, 310, 211, -211, 111)) {
1442 return +1 * (100000 * m_nPhotos + 1055);
1443 }//D0 decays to K_S0 pi+ pi- pi0
1444 if (GenDTag::PcheckDecay(genpart, 130, 211, -211, 111)) {
1445 return +1 * (100000 * m_nPhotos + 1056);
1446 }//D0 decays to K_L0 pi+ pi- pi0
1447 if (GenDTag::PcheckDecay(genpart, -311, 211, -211, 111)) {
1448 return +1 * (100000 * m_nPhotos + 1057);
1449 }//D0 decays to anti-K0 pi+ pi- pi0
1450 if (GenDTag::PcheckDecay(genpart, -321, 211, 211, -211, 111)) {
1451 return +1 * (100000 * m_nPhotos + 1058);
1452 }//D0 decays to K- pi+ pi+ pi- pi0
1453 if (GenDTag::PcheckDecay(genpart, -321, 211, 111, 111, 111)) {
1454 return +1 * (100000 * m_nPhotos + 1059);
1455 }//D0 decays to K- pi+ pi0 pi0 pi0
1456 if (GenDTag::PcheckDecay(genpart, 310, 211, -211, 211, -211)) {
1457 return +1 * (100000 * m_nPhotos + 1060);
1458 }//D0 decays to K_S0 pi+ pi- pi+ pi-
1459 if (GenDTag::PcheckDecay(genpart, 130, 211, -211, 211, -211)) {
1460 return +1 * (100000 * m_nPhotos + 1061);
1461 }//D0 decays to K_L0 pi+ pi- pi+ pi-
1462 if (GenDTag::PcheckDecay(genpart, -311, 211, -211, 211, -211)) {
1463 return +1 * (100000 * m_nPhotos + 1062);
1464 }//D0 decays to anti-K0 pi+ pi- pi+ pi-
1465 if (GenDTag::PcheckDecay(genpart, 333, 310)) {
1466 return +1 * (100000 * m_nPhotos + 1063);
1467 }//D0 decays to phi K_S0
1468 if (GenDTag::PcheckDecay(genpart, 333, 130)) {
1469 return +1 * (100000 * m_nPhotos + 1064);
1470 }//D0 decays to phi K_L0
1471 if (GenDTag::PcheckDecay(genpart, 333, -311)) {
1472 return +1 * (100000 * m_nPhotos + 1065);
1473 }//D0 decays to phi anti-K0
1474 if (GenDTag::PcheckDecay(genpart, 310, 321, -321)) {
1475 return +1 * (100000 * m_nPhotos + 1066);
1476 }//D0 decays to K_S0 K+ K-
1477 if (GenDTag::PcheckDecay(genpart, 130, 321, -321)) {
1478 return +1 * (100000 * m_nPhotos + 1067);
1479 }//D0 decays to K_L0 K+ K-
1480 if (GenDTag::PcheckDecay(genpart, -311, 321, -321)) {
1481 return +1 * (100000 * m_nPhotos + 1068);
1482 }//D0 decays to anti-K0 K+ K-
1483 if (GenDTag::PcheckDecay(genpart, 310, 310, 310)) {
1484 return +1 * (100000 * m_nPhotos + 1069);
1485 }//D0 decays to K_S0 K_S0 K_S0
1486 if (GenDTag::PcheckDecay(genpart, 321, -321)) {
1487 return +1 * (100000 * m_nPhotos + 1070);
1488 }//D0 decays to K+ K-
1489 if (GenDTag::PcheckDecay(genpart, 310, 310)) {
1490 return +1 * (100000 * m_nPhotos + 1071);
1491 }//D0 decays to K_S0 K_S0
1492 if (GenDTag::PcheckDecay(genpart, 130, 130)) {
1493 return +1 * (100000 * m_nPhotos + 1072);
1494 }//D0 decays to K_L0 K_L0
1495 if (GenDTag::PcheckDecay(genpart, 313, -311)) {
1496 return +1 * (100000 * m_nPhotos + 1073);
1497 }//D0 decays to K*0 anti-K0
1498 if (GenDTag::PcheckDecay(genpart, -313, 310)) {
1499 return +1 * (100000 * m_nPhotos + 1074);
1500 }//D0 decays to anti-K*0 K_S0
1501 if (GenDTag::PcheckDecay(genpart, -313, 130)) {
1502 return +1 * (100000 * m_nPhotos + 1075);
1503 }//D0 decays to anti-K*0 K_L0
1504 if (GenDTag::PcheckDecay(genpart, -313, 311)) {
1505 return +1 * (100000 * m_nPhotos + 1076);
1506 }//D0 decays to anti-K*0 K0
1507 if (GenDTag::PcheckDecay(genpart, -323, 321)) {
1508 return +1 * (100000 * m_nPhotos + 1077);
1509 }//D0 decays to K*- K+
1510 if (GenDTag::PcheckDecay(genpart, 323, -321)) {
1511 return +1 * (100000 * m_nPhotos + 1078);
1512 }//D0 decays to K*+ K-
1513 if (GenDTag::PcheckDecay(genpart, -313, 313)) {
1514 return +1 * (100000 * m_nPhotos + 1079);
1515 }//D0 decays to anti-K*0 K*0
1516 if (GenDTag::PcheckDecay(genpart, 333, 111)) {
1517 return +1 * (100000 * m_nPhotos + 1080);
1518 }//D0 decays to phi pi0
1519 if (GenDTag::PcheckDecay(genpart, 333, 211, -211)) {
1520 return +1 * (100000 * m_nPhotos + 1081);
1521 }//D0 decays to phi pi+ pi-
1522 if (GenDTag::PcheckDecay(genpart, 321, -321, 211, -211)) {
1523 return +1 * (100000 * m_nPhotos + 1082);
1524 }//D0 decays to K+ K- pi+ pi-
1525 if (GenDTag::PcheckDecay(genpart, 321, -321, 111, 111)) {
1526 return +1 * (100000 * m_nPhotos + 1083);
1527 }//D0 decays to K+ K- pi0 pi0
1528 if (GenDTag::PcheckDecay(genpart, 310, 310, 211, -211)) {
1529 return +1 * (100000 * m_nPhotos + 1084);
1530 }//D0 decays to K_S0 K_S0 pi+ pi-
1531 if (GenDTag::PcheckDecay(genpart, 130, 130, 211, -211)) {
1532 return +1 * (100000 * m_nPhotos + 1085);
1533 }//D0 decays to K_L0 K_L0 pi+ pi-
1534 if (GenDTag::PcheckDecay(genpart, -311, 311, 211, -211)) {
1535 return +1 * (100000 * m_nPhotos + 1086);
1536 }//D0 decays to anti-K0 K0 pi+ pi-
1537 if (GenDTag::PcheckDecay(genpart, -311, 311, 111, 111)) {
1538 return +1 * (100000 * m_nPhotos + 1087);
1539 }//D0 decays to anti-K0 K0 pi0 pi0
1540 if (GenDTag::PcheckDecay(genpart, 211, -211)) {
1541 return +1 * (100000 * m_nPhotos + 1088);
1542 }//D0 decays to pi+ pi-
1543 if (GenDTag::PcheckDecay(genpart, 111, 111)) {
1544 return +1 * (100000 * m_nPhotos + 1089);
1545 }//D0 decays to pi0 pi0
1546 if (GenDTag::PcheckDecay(genpart, 221, 111)) {
1547 return +1 * (100000 * m_nPhotos + 1090);
1548 }//D0 decays to eta pi0
1549 if (GenDTag::PcheckDecay(genpart, 331, 111)) {
1550 return +1 * (100000 * m_nPhotos + 1091);
1551 }//D0 decays to eta' pi0
1552 if (GenDTag::PcheckDecay(genpart, 221, 221)) {
1553 return +1 * (100000 * m_nPhotos + 1092);
1554 }//D0 decays to eta eta
1555 if (GenDTag::PcheckDecay(genpart, 213, -211)) {
1556 return +1 * (100000 * m_nPhotos + 1093);
1557 }//D0 decays to rho+ pi-
1558 if (GenDTag::PcheckDecay(genpart, -213, 211)) {
1559 return +1 * (100000 * m_nPhotos + 1094);
1560 }//D0 decays to rho- pi+
1561 if (GenDTag::PcheckDecay(genpart, 113, 111)) {
1562 return +1 * (100000 * m_nPhotos + 1095);
1563 }//D0 decays to rho0 pi0
1564 if (GenDTag::PcheckDecay(genpart, 211, -211, 111)) {
1565 return +1 * (100000 * m_nPhotos + 1096);
1566 }//D0 decays to pi+ pi- pi0
1567 if (GenDTag::PcheckDecay(genpart, 111, 111, 111)) {
1568 return +1 * (100000 * m_nPhotos + 1097);
1569 }//D0 decays to pi0 pi0 pi0
1570 if (GenDTag::PcheckDecay(genpart, 211, 211, -211, -211)) {
1571 return +1 * (100000 * m_nPhotos + 1098);
1572 }//D0 decays to pi+ pi+ pi- pi-
1573 if (GenDTag::PcheckDecay(genpart, 211, -211, 111, 111)) {
1574 return +1 * (100000 * m_nPhotos + 1099);
1575 }//D0 decays to pi+ pi- pi0 pi0
1576 if (GenDTag::PcheckDecay(genpart, 211, -211, 211, -211, 111)) {
1577 return +1 * (100000 * m_nPhotos + 1100);
1578 }//D0 decays to pi+ pi- pi+ pi- pi0
1579 if (GenDTag::PcheckDecay(genpart, 211, -211, 111, 111, 111)) {
1580 return +1 * (100000 * m_nPhotos + 1101);
1581 }//D0 decays to pi+ pi- pi0 pi0 pi0
1582 if (GenDTag::PcheckDecay(genpart, 211, -211, 211, -211, 211, -211)) {
1583 return +1 * (100000 * m_nPhotos + 1102);
1584 }//D0 decays to pi+ pi- pi+ pi- pi+ pi-
1585 if (GenDTag::PcheckDecay(genpart, -211, 321)) {
1586 return +1 * (100000 * m_nPhotos + 1103);
1587 }//D0 decays to pi- K+
1588 if (GenDTag::PcheckDecay(genpart, -211, 323)) {
1589 return +1 * (100000 * m_nPhotos + 1104);
1590 }//D0 decays to pi- K*+
1591 if (GenDTag::PcheckDecay(genpart, -211, 321, 111)) {
1592 return +1 * (100000 * m_nPhotos + 1105);
1593 }//D0 decays to pi- K+ pi0
1594 if (GenDTag::PcheckDecay(genpart, 321, -211, 211, -211)) {
1595 return +1 * (100000 * m_nPhotos + 1106);
1596 }//D0 decays to K+ pi- pi+ pi-
1597 if (GenDTag::PcheckDecay(genpart, -13, 13)) {
1598 return +1 * (100000 * m_nPhotos + 1107);
1599 }//D0 decays to mu+ mu-
1600 if (GenDTag::PcheckDecay(genpart, 333, 221)) {
1601 return +1 * (100000 * m_nPhotos + 1108);
1602 }//D0 decays to phi eta
1603 if (GenDTag::PcheckDecay(genpart, -313, 211, -211, 111)) {
1604 return +1 * (100000 * m_nPhotos + 1109);
1605 }//D0 decays to anti-K*0 pi+ pi- pi0
1606 if (GenDTag::PcheckDecay(genpart, -321, 211, -211, 211, -211, 211)) {
1607 return +1 * (100000 * m_nPhotos + 1110);
1608 }//D0 decays to K- pi+ pi- pi+ pi- pi+
1609 if (GenDTag::PcheckDecay(genpart, 321, -321, 111)) {
1610 return +1 * (100000 * m_nPhotos + 1111);
1611 }//D0 decays to K+ K- pi0
1612 if (GenDTag::PcheckDecay(genpart, 321, -321, 211, -211, 111)) {
1613 return +1 * (100000 * m_nPhotos + 1112);
1614 }//D0 decays to K+ K- pi+ pi- pi0
1615 if (GenDTag::PcheckDecay(genpart, 321, -321, -321, 211)) {
1616 return +1 * (100000 * m_nPhotos + 1113);
1617 }//D0 decays to K+ K- K- pi+
1618 if (GenDTag::PcheckDecay(genpart, 310, 221, 111)) {
1619 return +1 * (100000 * m_nPhotos + 1114);
1620 }//D0 decays to K_S0 eta pi0
1621 if (GenDTag::PcheckDecay(genpart, 130, 221, 111)) {
1622 return +1 * (100000 * m_nPhotos + 1115);
1623 }//D0 decays to K_L0 eta pi0
1624 if (GenDTag::PcheckDecay(genpart, -311, 221, 111)) {
1625 return +1 * (100000 * m_nPhotos + 1116);
1626 }//D0 decays to anti-K0 eta pi0
1627 if (GenDTag::PcheckDecay(genpart, 310, 321, -211)) {
1628 return +1 * (100000 * m_nPhotos + 1117);
1629 }//D0 decays to K_S0 K+ pi-
1630 if (GenDTag::PcheckDecay(genpart, 130, 321, -211)) {
1631 return +1 * (100000 * m_nPhotos + 1118);
1632 }//D0 decays to K_L0 K+ pi-
1633 if (GenDTag::PcheckDecay(genpart, -311, 321, -211)) {
1634 return +1 * (100000 * m_nPhotos + 1119);
1635 }//D0 decays to anti-K0 K+ pi-
1636 if (GenDTag::PcheckDecay(genpart, 310, -321, 211)) {
1637 return +1 * (100000 * m_nPhotos + 1120);
1638 }//D0 decays to K_S0 K- pi+
1639 if (GenDTag::PcheckDecay(genpart, 130, -321, 211)) {
1640 return +1 * (100000 * m_nPhotos + 1121);
1641 }//D0 decays to K_L0 K- pi+
1642 if (GenDTag::PcheckDecay(genpart, 311, -321, 211)) {
1643 return +1 * (100000 * m_nPhotos + 1122);
1644 }//D0 decays to K0 K- pi+
1645 if (GenDTag::PcheckDecay(genpart, 310, 310, 321, -211)) {
1646 return +1 * (100000 * m_nPhotos + 1123);
1647 }//D0 decays to K_S0 K_S0 K+ pi-
1648 if (GenDTag::PcheckDecay(genpart, 130, 130, 321, -211)) {
1649 return +1 * (100000 * m_nPhotos + 1124);
1650 }//D0 decays to K_L0 K_L0 K+ pi-
1651 if (GenDTag::PcheckDecay(genpart, -311, 311, 321, -211)) {
1652 return +1 * (100000 * m_nPhotos + 1125);
1653 }//D0 decays to anti-K0 K0 K+ pi-
1654 if (GenDTag::PcheckDecay(genpart, 310, 310, -321, 211)) {
1655 return +1 * (100000 * m_nPhotos + 1126);
1656 }//D0 decays to K_S0 K_S0 K- pi+
1657 if (GenDTag::PcheckDecay(genpart, 130, 130, -321, 211)) {
1658 return +1 * (100000 * m_nPhotos + 1127);
1659 }//D0 decays to K_L0 K_L0 K- pi+
1660 if (GenDTag::PcheckDecay(genpart, -311, 311, -321, 211)) {
1661 return +1 * (100000 * m_nPhotos + 1128);
1662 }//D0 decays to anti-K0 K0 K- pi+
1663 if (GenDTag::PcheckDecay(genpart, -321, 211, -211, -11, 12)) {
1664 return +1 * (100000 * m_nPhotos + 1129);
1665 }//D0 decays to K- pi+ pi- e+ nu_e
1666 if (GenDTag::PcheckDecay(genpart, 113, 113)) {
1667 return +1 * (100000 * m_nPhotos + 1130);
1668 }//D0 decays to rho0 rho0
1669 if (GenDTag::PcheckDecay(genpart, 221, 211, -211)) {
1670 return +1 * (100000 * m_nPhotos + 1131);
1671 }//D0 decays to eta pi+ pi-
1672 if (GenDTag::PcheckDecay(genpart, 223, 211, -211)) {
1673 return +1 * (100000 * m_nPhotos + 1132);
1674 }//D0 decays to omega pi+ pi-
1675 if (GenDTag::PcheckDecay(genpart, 331, 211, -211)) {
1676 return +1 * (100000 * m_nPhotos + 1133);
1677 }//D0 decays to eta' pi+ pi-
1678 if (GenDTag::PcheckDecay(genpart, 221, 331)) {
1679 return +1 * (100000 * m_nPhotos + 1134);
1680 }//D0 decays to eta eta'
1681 if (GenDTag::PcheckDecay(genpart, 333, 22)) {
1682 return +1 * (100000 * m_nPhotos + 1135);
1683 }//D0 decays to phi gamma
1684 if (GenDTag::PcheckDecay(genpart, -313, 22)) {
1685 return +1 * (100000 * m_nPhotos + 1136);
1686 }//D0 decays to anti-K*0 gamma
1687 return +1 * genpart.size();
1688}// Rest of the D0 decays
1689
1690
1691int GenDTag::Mode_anti_D0(std::vector<int> genpart)
1692{
1693 if (GenDTag::PcheckDecay(genpart, 323, 11, -12)) {
1694 return -1 * (100000 * m_nPhotos + 1001);
1695 }//anti-D0 decays to K*+ e- anti-nu_e
1696 if (GenDTag::PcheckDecay(genpart, 321, 11, -12)) {
1697 return -1 * (100000 * m_nPhotos + 1002);
1698 }//anti-D0 decays to K+ e- anti-nu_e
1699 if (GenDTag::PcheckDecay(genpart, 10323, 11, -12)) {
1700 return -1 * (100000 * m_nPhotos + 1003);
1701 }//anti-D0 decays to K_1+ e- anti-nu_e
1702 if (GenDTag::PcheckDecay(genpart, 325, 11, -12)) {
1703 return -1 * (100000 * m_nPhotos + 1004);
1704 }//anti-D0 decays to K_2*+ e- anti-nu_e
1705 if (GenDTag::PcheckDecay(genpart, 211, 11, -12)) {
1706 return -1 * (100000 * m_nPhotos + 1005);
1707 }//anti-D0 decays to pi+ e- anti-nu_e
1708 if (GenDTag::PcheckDecay(genpart, 213, 11, -12)) {
1709 return -1 * (100000 * m_nPhotos + 1006);
1710 }//anti-D0 decays to rho+ e- anti-nu_e
1711 if (GenDTag::PcheckDecay(genpart, 311, 211, 11, -12)) {
1712 return -1 * (100000 * m_nPhotos + 1007);
1713 }//anti-D0 decays to K0 pi+ e- anti-nu_e
1714 if (GenDTag::PcheckDecay(genpart, 321, 111, 11, -12)) {
1715 return -1 * (100000 * m_nPhotos + 1008);
1716 }//anti-D0 decays to K+ pi0 e- anti-nu_e
1717 if (GenDTag::PcheckDecay(genpart, 323, 13, -14)) {
1718 return -1 * (100000 * m_nPhotos + 1009);
1719 }//anti-D0 decays to K*+ mu- anti-nu_mu
1720 if (GenDTag::PcheckDecay(genpart, 321, 13, -14)) {
1721 return -1 * (100000 * m_nPhotos + 1010);
1722 }//anti-D0 decays to K+ mu- anti-nu_mu
1723 if (GenDTag::PcheckDecay(genpart, 10323, 13, -14)) {
1724 return -1 * (100000 * m_nPhotos + 1011);
1725 }//anti-D0 decays to K_1+ mu- anti-nu_mu
1726 if (GenDTag::PcheckDecay(genpart, 325, 13, -14)) {
1727 return -1 * (100000 * m_nPhotos + 1012);
1728 }//anti-D0 decays to K_2*+ mu- anti-nu_mu
1729 if (GenDTag::PcheckDecay(genpart, 211, 13, -14)) {
1730 return -1 * (100000 * m_nPhotos + 1013);
1731 }//anti-D0 decays to pi+ mu- anti-nu_mu
1732 if (GenDTag::PcheckDecay(genpart, 213, 13, -14)) {
1733 return -1 * (100000 * m_nPhotos + 1014);
1734 }//anti-D0 decays to rho+ mu- anti-nu_mu
1735 if (GenDTag::PcheckDecay(genpart, 311, 211, 13, -14)) {
1736 return -1 * (100000 * m_nPhotos + 1015);
1737 }//anti-D0 decays to K0 pi+ mu- anti-nu_mu
1738 if (GenDTag::PcheckDecay(genpart, 321, 111, 13, -14)) {
1739 return -1 * (100000 * m_nPhotos + 1016);
1740 }//anti-D0 decays to K+ pi0 mu- anti-nu_mu
1741 if (GenDTag::PcheckDecay(genpart, 321, -211)) {
1742 return -1 * (100000 * m_nPhotos + 1017);
1743 }//anti-D0 decays to K+ pi-
1744 if (GenDTag::PcheckDecay(genpart, 310, 111)) {
1745 return -1 * (100000 * m_nPhotos + 1018);
1746 }//anti-D0 decays to K_S0 pi0
1747 if (GenDTag::PcheckDecay(genpart, 130, 111)) {
1748 return -1 * (100000 * m_nPhotos + 1019);
1749 }//anti-D0 decays to K_L0 pi0
1750 if (GenDTag::PcheckDecay(genpart, 311, 111)) {
1751 return -1 * (100000 * m_nPhotos + 1020);
1752 }//anti-D0 decays to K0 pi0
1753 if (GenDTag::PcheckDecay(genpart, 310, 221)) {
1754 return -1 * (100000 * m_nPhotos + 1021);
1755 }//anti-D0 decays to K_S0 eta
1756 if (GenDTag::PcheckDecay(genpart, 130, 221)) {
1757 return -1 * (100000 * m_nPhotos + 1022);
1758 }//anti-D0 decays to K_L0 eta
1759 if (GenDTag::PcheckDecay(genpart, 311, 221)) {
1760 return -1 * (100000 * m_nPhotos + 1023);
1761 }//anti-D0 decays to K0 eta
1762 if (GenDTag::PcheckDecay(genpart, 310, 331)) {
1763 return -1 * (100000 * m_nPhotos + 1024);
1764 }//anti-D0 decays to K_S0 eta'
1765 if (GenDTag::PcheckDecay(genpart, 130, 331)) {
1766 return -1 * (100000 * m_nPhotos + 1025);
1767 }//anti-D0 decays to K_L0 eta'
1768 if (GenDTag::PcheckDecay(genpart, 311, 331)) {
1769 return -1 * (100000 * m_nPhotos + 1026);
1770 }//anti-D0 decays to K0 eta'
1771 if (GenDTag::PcheckDecay(genpart, 223, 310)) {
1772 return -1 * (100000 * m_nPhotos + 1027);
1773 }//anti-D0 decays to omega K_S0
1774 if (GenDTag::PcheckDecay(genpart, 223, 130)) {
1775 return -1 * (100000 * m_nPhotos + 1028);
1776 }//anti-D0 decays to omega K_L0
1777 if (GenDTag::PcheckDecay(genpart, 223, 311)) {
1778 return -1 * (100000 * m_nPhotos + 1029);
1779 }//anti-D0 decays to omega K0
1780 if (GenDTag::PcheckDecay(genpart, 313, 221)) {
1781 return -1 * (100000 * m_nPhotos + 1030);
1782 }//anti-D0 decays to K*0 eta
1783 if (GenDTag::PcheckDecay(genpart, 313, 331)) {
1784 return -1 * (100000 * m_nPhotos + 1031);
1785 }//anti-D0 decays to K*0 eta'
1786 if (GenDTag::PcheckDecay(genpart, -20213, 321)) {
1787 return -1 * (100000 * m_nPhotos + 1032);
1788 }//anti-D0 decays to a_1- K+
1789 if (GenDTag::PcheckDecay(genpart, 323, -213)) {
1790 return -1 * (100000 * m_nPhotos + 1033);
1791 }//anti-D0 decays to K*+ rho-
1792 if (GenDTag::PcheckDecay(genpart, 313, 113)) {
1793 return -1 * (100000 * m_nPhotos + 1034);
1794 }//anti-D0 decays to K*0 rho0
1795 if (GenDTag::PcheckDecay(genpart, 313, 223)) {
1796 return -1 * (100000 * m_nPhotos + 1035);
1797 }//anti-D0 decays to K*0 omega
1798 if (GenDTag::PcheckDecay(genpart, 321, -211, 111)) {
1799 return -1 * (100000 * m_nPhotos + 1036);
1800 }//anti-D0 decays to K+ pi- pi0
1801 if (GenDTag::PcheckDecay(genpart, 313, 111)) {
1802 return -1 * (100000 * m_nPhotos + 1037);
1803 }//anti-D0 decays to K*0R pi0
1804 if (GenDTag::PcheckDecay(genpart, 10323, -211)) {
1805 return -1 * (100000 * m_nPhotos + 1038);
1806 }//anti-D0 decays to K_1+ pi-
1807 if (GenDTag::PcheckDecay(genpart, 10313, 111)) {
1808 return -1 * (100000 * m_nPhotos + 1039);
1809 }//anti-D0 decays to K_10 pi0
1810 if (GenDTag::PcheckDecay(genpart, 311, 211, -211)) {
1811 return -1 * (100000 * m_nPhotos + 1040);
1812 }//anti-D0 decays to K0 pi+ pi-
1813 if (GenDTag::PcheckDecay(genpart, 310, 211, -211)) {
1814 return -1 * (100000 * m_nPhotos + 1041);
1815 }//anti-D0 decays to K_S0 pi+ pi-
1816 if (GenDTag::PcheckDecay(genpart, 130, 211, -211)) {
1817 return -1 * (100000 * m_nPhotos + 1042);
1818 }//anti-D0 decays to K_L0 pi+ pi-
1819 if (GenDTag::PcheckDecay(genpart, 310, 111, 111)) {
1820 return -1 * (100000 * m_nPhotos + 1043);
1821 }//anti-D0 decays to K_S0 pi0 pi0
1822 if (GenDTag::PcheckDecay(genpart, 130, 111, 111)) {
1823 return -1 * (100000 * m_nPhotos + 1044);
1824 }//anti-D0 decays to K_L0 pi0 pi0
1825 if (GenDTag::PcheckDecay(genpart, 311, 111, 111)) {
1826 return -1 * (100000 * m_nPhotos + 1045);
1827 }//anti-D0 decays to K0 pi0 pi0
1828 if (GenDTag::PcheckDecay(genpart, 313, 211, -211)) {
1829 return -1 * (100000 * m_nPhotos + 1046);
1830 }//anti-D0 decays to K*0 pi+ pi-
1831 if (GenDTag::PcheckDecay(genpart, 313, 111, 111)) {
1832 return -1 * (100000 * m_nPhotos + 1047);
1833 }//anti-D0 decays to K*0 pi0 pi0
1834 if (GenDTag::PcheckDecay(genpart, 323, -211, 111)) {
1835 return -1 * (100000 * m_nPhotos + 1048);
1836 }//anti-D0 decays to K*+ pi- pi0
1837 if (GenDTag::PcheckDecay(genpart, 321, -213, 111)) {
1838 return -1 * (100000 * m_nPhotos + 1049);
1839 }//anti-D0 decays to K+ rho- pi0
1840 if (GenDTag::PcheckDecay(genpart, 321, -211, 113)) {
1841 return -1 * (100000 * m_nPhotos + 1050);
1842 }//anti-D0 decays to K+ pi- rho0
1843 if (GenDTag::PcheckDecay(genpart, 321, -211, 223)) {
1844 return -1 * (100000 * m_nPhotos + 1051);
1845 }//anti-D0 decays to K+ pi- omega
1846 if (GenDTag::PcheckDecay(genpart, 321, -211, 221)) {
1847 return -1 * (100000 * m_nPhotos + 1052);
1848 }//anti-D0 decays to K+ pi- eta
1849 if (GenDTag::PcheckDecay(genpart, 321, -211, 331)) {
1850 return -1 * (100000 * m_nPhotos + 1053);
1851 }//anti-D0 decays to K+ pi- eta'
1852 if (GenDTag::PcheckDecay(genpart, 321, -211, 211, -211)) {
1853 return -1 * (100000 * m_nPhotos + 1054);
1854 }//anti-D0 decays to K+ pi- pi+ pi-
1855 if (GenDTag::PcheckDecay(genpart, 310, 211, -211, 111)) {
1856 return -1 * (100000 * m_nPhotos + 1055);
1857 }//anti-D0 decays to K_S0 pi+ pi- pi0
1858 if (GenDTag::PcheckDecay(genpart, 130, 211, -211, 111)) {
1859 return -1 * (100000 * m_nPhotos + 1056);
1860 }//anti-D0 decays to K_L0 pi+ pi- pi0
1861 if (GenDTag::PcheckDecay(genpart, 311, 211, -211, 111)) {
1862 return -1 * (100000 * m_nPhotos + 1057);
1863 }//anti-D0 decays to K0 pi+ pi- pi0
1864 if (GenDTag::PcheckDecay(genpart, 321, -211, 211, -211, 111)) {
1865 return -1 * (100000 * m_nPhotos + 1058);
1866 }//anti-D0 decays to K+ pi- pi+ pi- pi0
1867 if (GenDTag::PcheckDecay(genpart, 321, -211, 111, 111, 111)) {
1868 return -1 * (100000 * m_nPhotos + 1059);
1869 }//anti-D0 decays to K+ pi- pi0 pi0 pi0
1870 if (GenDTag::PcheckDecay(genpart, 310, 211, -211, 211, -211)) {
1871 return -1 * (100000 * m_nPhotos + 1060);
1872 }//anti-D0 decays to K_S0 pi+ pi- pi+ pi-
1873 if (GenDTag::PcheckDecay(genpart, 130, 211, -211, 211, -211)) {
1874 return -1 * (100000 * m_nPhotos + 1061);
1875 }//anti-D0 decays to K_L0 pi+ pi- pi+ pi-
1876 if (GenDTag::PcheckDecay(genpart, 311, 211, -211, 211, -211)) {
1877 return -1 * (100000 * m_nPhotos + 1062);
1878 }//anti-D0 decays to K0 pi+ pi- pi+ pi-
1879 if (GenDTag::PcheckDecay(genpart, 333, 310)) {
1880 return -1 * (100000 * m_nPhotos + 1063);
1881 }//anti-D0 decays to phi K_S0
1882 if (GenDTag::PcheckDecay(genpart, 333, 130)) {
1883 return -1 * (100000 * m_nPhotos + 1064);
1884 }//anti-D0 decays to phi K_L0
1885 if (GenDTag::PcheckDecay(genpart, 333, 311)) {
1886 return -1 * (100000 * m_nPhotos + 1065);
1887 }//anti-D0 decays to phi K0
1888 if (GenDTag::PcheckDecay(genpart, 310, 321, -321)) {
1889 return -1 * (100000 * m_nPhotos + 1066);
1890 }//anti-D0 decays to K_S0 K+ K-
1891 if (GenDTag::PcheckDecay(genpart, 130, 321, -321)) {
1892 return -1 * (100000 * m_nPhotos + 1067);
1893 }//anti-D0 decays to K_L0 K+ K-
1894 if (GenDTag::PcheckDecay(genpart, 311, 321, -321)) {
1895 return -1 * (100000 * m_nPhotos + 1068);
1896 }//anti-D0 decays to K0 K+ K-
1897 if (GenDTag::PcheckDecay(genpart, 310, 310, 310)) {
1898 return -1 * (100000 * m_nPhotos + 1069);
1899 }//anti-D0 decays to K_S0 K_S0 K_S0
1900 if (GenDTag::PcheckDecay(genpart, 321, -321)) {
1901 return -1 * (100000 * m_nPhotos + 1070);
1902 }//anti-D0 decays to K+ K-
1903 if (GenDTag::PcheckDecay(genpart, 310, 310)) {
1904 return -1 * (100000 * m_nPhotos + 1071);
1905 }//anti-D0 decays to K_S0 K_S0
1906 if (GenDTag::PcheckDecay(genpart, 130, 130)) {
1907 return -1 * (100000 * m_nPhotos + 1072);
1908 }//anti-D0 decays to K_L0 K_L0
1909 if (GenDTag::PcheckDecay(genpart, -313, 311)) {
1910 return -1 * (100000 * m_nPhotos + 1073);
1911 }//anti-D0 decays to anti-K*0 K0
1912 if (GenDTag::PcheckDecay(genpart, 313, 310)) {
1913 return -1 * (100000 * m_nPhotos + 1074);
1914 }//anti-D0 decays to K*0 K_S0
1915 if (GenDTag::PcheckDecay(genpart, 313, 130)) {
1916 return -1 * (100000 * m_nPhotos + 1075);
1917 }//anti-D0 decays to K*0 K_L0
1918 if (GenDTag::PcheckDecay(genpart, 313, -311)) {
1919 return -1 * (100000 * m_nPhotos + 1076);
1920 }//anti-D0 decays to K*0 anti-K0
1921 if (GenDTag::PcheckDecay(genpart, 323, -321)) {
1922 return -1 * (100000 * m_nPhotos + 1077);
1923 }//anti-D0 decays to K*+ K-
1924 if (GenDTag::PcheckDecay(genpart, -323, 321)) {
1925 return -1 * (100000 * m_nPhotos + 1078);
1926 }//anti-D0 decays to K*- K+
1927 if (GenDTag::PcheckDecay(genpart, 313, -313)) {
1928 return -1 * (100000 * m_nPhotos + 1079);
1929 }//anti-D0 decays to K*0 anti-K*0
1930 if (GenDTag::PcheckDecay(genpart, 333, 111)) {
1931 return -1 * (100000 * m_nPhotos + 1080);
1932 }//anti-D0 decays to phi pi0
1933 if (GenDTag::PcheckDecay(genpart, 333, 211, -211)) {
1934 return -1 * (100000 * m_nPhotos + 1081);
1935 }//anti-D0 decays to phi pi+ pi-
1936 if (GenDTag::PcheckDecay(genpart, 321, -321, 211, -211)) {
1937 return -1 * (100000 * m_nPhotos + 1082);
1938 }//anti-D0 decays to K+ K- pi+ pi-
1939 if (GenDTag::PcheckDecay(genpart, 321, -321, 111, 111)) {
1940 return -1 * (100000 * m_nPhotos + 1083);
1941 }//anti-D0 decays to K+ K- pi0 pi0
1942 if (GenDTag::PcheckDecay(genpart, 310, 310, 211, -211)) {
1943 return -1 * (100000 * m_nPhotos + 1084);
1944 }//anti-D0 decays to K_S0 K_S0 pi+ pi-
1945 if (GenDTag::PcheckDecay(genpart, 130, 130, 211, -211)) {
1946 return -1 * (100000 * m_nPhotos + 1085);
1947 }//anti-D0 decays to K_L0 K_L0 pi+ pi-
1948 if (GenDTag::PcheckDecay(genpart, -311, 311, 211, -211)) {
1949 return -1 * (100000 * m_nPhotos + 1086);
1950 }//anti-D0 decays to anti-K0 K0 pi+ pi-
1951 if (GenDTag::PcheckDecay(genpart, -311, 311, 111, 111)) {
1952 return -1 * (100000 * m_nPhotos + 1087);
1953 }//anti-D0 decays to anti-K0 K0 pi0 pi0
1954 if (GenDTag::PcheckDecay(genpart, 211, -211)) {
1955 return -1 * (100000 * m_nPhotos + 1088);
1956 }//anti-D0 decays to pi+ pi-
1957 if (GenDTag::PcheckDecay(genpart, 111, 111)) {
1958 return -1 * (100000 * m_nPhotos + 1089);
1959 }//anti-D0 decays to pi0 pi0
1960 if (GenDTag::PcheckDecay(genpart, 221, 111)) {
1961 return -1 * (100000 * m_nPhotos + 1090);
1962 }//anti-D0 decays to eta pi0
1963 if (GenDTag::PcheckDecay(genpart, 331, 111)) {
1964 return -1 * (100000 * m_nPhotos + 1091);
1965 }//anti-D0 decays to eta' pi0
1966 if (GenDTag::PcheckDecay(genpart, 221, 221)) {
1967 return -1 * (100000 * m_nPhotos + 1092);
1968 }//anti-D0 decays to eta eta
1969 if (GenDTag::PcheckDecay(genpart, 213, -211)) {
1970 return -1 * (100000 * m_nPhotos + 1093);
1971 }//anti-D0 decays to rho+ pi-
1972 if (GenDTag::PcheckDecay(genpart, -213, 211)) {
1973 return -1 * (100000 * m_nPhotos + 1094);
1974 }//anti-D0 decays to rho- pi+
1975 if (GenDTag::PcheckDecay(genpart, 113, 111)) {
1976 return -1 * (100000 * m_nPhotos + 1095);
1977 }//anti-D0 decays to rho0 pi0
1978 if (GenDTag::PcheckDecay(genpart, 211, -211, 111)) {
1979 return -1 * (100000 * m_nPhotos + 1096);
1980 }//anti-D0 decays to pi+ pi- pi0
1981 if (GenDTag::PcheckDecay(genpart, 111, 111, 111)) {
1982 return -1 * (100000 * m_nPhotos + 1097);
1983 }//anti-D0 decays to pi0 pi0 pi0
1984 if (GenDTag::PcheckDecay(genpart, 211, 211, -211, -211)) {
1985 return -1 * (100000 * m_nPhotos + 1098);
1986 }//anti-D0 decays to pi+ pi+ pi- pi-
1987 if (GenDTag::PcheckDecay(genpart, 211, -211, 111, 111)) {
1988 return -1 * (100000 * m_nPhotos + 1099);
1989 }//anti-D0 decays to pi+ pi- pi0 pi0
1990 if (GenDTag::PcheckDecay(genpart, 211, -211, 211, -211, 111)) {
1991 return -1 * (100000 * m_nPhotos + 1100);
1992 }//anti-D0 decays to pi+ pi- pi+ pi- pi0
1993 if (GenDTag::PcheckDecay(genpart, 211, -211, 111, 111, 111)) {
1994 return -1 * (100000 * m_nPhotos + 1101);
1995 }//anti-D0 decays to pi+ pi- pi0 pi0 pi0
1996 if (GenDTag::PcheckDecay(genpart, 211, -211, 211, -211, 211, -211)) {
1997 return -1 * (100000 * m_nPhotos + 1102);
1998 }//anti-D0 decays to pi+ pi- pi+ pi- pi+ pi-
1999 if (GenDTag::PcheckDecay(genpart, 211, -321)) {
2000 return -1 * (100000 * m_nPhotos + 1103);
2001 }//anti-D0 decays to pi+ K-
2002 if (GenDTag::PcheckDecay(genpart, 211, -323)) {
2003 return -1 * (100000 * m_nPhotos + 1104);
2004 }//anti-D0 decays to pi+ K*-
2005 if (GenDTag::PcheckDecay(genpart, 211, -321, 111)) {
2006 return -1 * (100000 * m_nPhotos + 1105);
2007 }//anti-D0 decays to pi+ K- pi0
2008 if (GenDTag::PcheckDecay(genpart, -321, 211, 211, -211)) {
2009 return -1 * (100000 * m_nPhotos + 1106);
2010 }//anti-D0 decays to K- pi+ pi+ pi-
2011 if (GenDTag::PcheckDecay(genpart, 13, -13)) {
2012 return -1 * (100000 * m_nPhotos + 1107);
2013 }//anti-D0 decays to mu- mu+
2014 if (GenDTag::PcheckDecay(genpart, 333, 221)) {
2015 return -1 * (100000 * m_nPhotos + 1108);
2016 }//anti-D0 decays to phi eta
2017 if (GenDTag::PcheckDecay(genpart, 313, 211, -211, 111)) {
2018 return -1 * (100000 * m_nPhotos + 1109);
2019 }//anti-D0 decays to K*0 pi+ pi- pi0
2020 if (GenDTag::PcheckDecay(genpart, 321, -211, -211, 211, -211, 211)) {
2021 return -1 * (100000 * m_nPhotos + 1110);
2022 }//anti-D0 decays to K+ pi- pi- pi+ pi- pi+
2023 if (GenDTag::PcheckDecay(genpart, 321, -321, 111)) {
2024 return -1 * (100000 * m_nPhotos + 1111);
2025 }//anti-D0 decays to K+ K- pi0
2026 if (GenDTag::PcheckDecay(genpart, 321, -321, 211, -211, 111)) {
2027 return -1 * (100000 * m_nPhotos + 1112);
2028 }//anti-D0 decays to K+ K- pi+ pi- pi0
2029 if (GenDTag::PcheckDecay(genpart, 321, 321, -321, -211)) {
2030 return -1 * (100000 * m_nPhotos + 1113);
2031 }//anti-D0 decays to K+ K+ K- pi-
2032 if (GenDTag::PcheckDecay(genpart, 310, 221, 111)) {
2033 return -1 * (100000 * m_nPhotos + 1114);
2034 }//anti-D0 decays to K_S0 eta pi0
2035 if (GenDTag::PcheckDecay(genpart, 130, 221, 111)) {
2036 return -1 * (100000 * m_nPhotos + 1115);
2037 }//anti-D0 decays to K_L0 eta pi0
2038 if (GenDTag::PcheckDecay(genpart, 311, 221, 111)) {
2039 return -1 * (100000 * m_nPhotos + 1116);
2040 }//anti-D0 decays to K0 eta pi0
2041 if (GenDTag::PcheckDecay(genpart, 310, -321, 211)) {
2042 return -1 * (100000 * m_nPhotos + 1117);
2043 }//anti-D0 decays to K_S0 K- pi+
2044 if (GenDTag::PcheckDecay(genpart, 130, -321, 211)) {
2045 return -1 * (100000 * m_nPhotos + 1118);
2046 }//anti-D0 decays to K_L0 K- pi+
2047 if (GenDTag::PcheckDecay(genpart, 311, -321, 211)) {
2048 return -1 * (100000 * m_nPhotos + 1119);
2049 }//anti-D0 decays to K0 K- pi+
2050 if (GenDTag::PcheckDecay(genpart, 310, 321, -211)) {
2051 return -1 * (100000 * m_nPhotos + 1120);
2052 }//anti-D0 decays to K_S0 K+ pi-
2053 if (GenDTag::PcheckDecay(genpart, 130, 321, -211)) {
2054 return -1 * (100000 * m_nPhotos + 1121);
2055 }//anti-D0 decays to K_L0 K+ pi-
2056 if (GenDTag::PcheckDecay(genpart, -311, 321, -211)) {
2057 return -1 * (100000 * m_nPhotos + 1122);
2058 }//anti-D0 decays to anti-K0 K+ pi-
2059 if (GenDTag::PcheckDecay(genpart, 310, 310, 321, -211)) {
2060 return -1 * (100000 * m_nPhotos + 1123);
2061 }//anti-D0 decays to K_S0 K_S0 K+ pi-
2062 if (GenDTag::PcheckDecay(genpart, 130, 130, 321, -211)) {
2063 return -1 * (100000 * m_nPhotos + 1124);
2064 }//anti-D0 decays to K_L0 K_L0 K+ pi-
2065 if (GenDTag::PcheckDecay(genpart, -311, 311, 321, -211)) {
2066 return -1 * (100000 * m_nPhotos + 1125);
2067 }//anti-D0 decays to anti-K0 K0 K+ pi-
2068 if (GenDTag::PcheckDecay(genpart, 310, 310, -321, 211)) {
2069 return -1 * (100000 * m_nPhotos + 1126);
2070 }//anti-D0 decays to K_S0 K_S0 K- pi+
2071 if (GenDTag::PcheckDecay(genpart, 130, 130, -321, 211)) {
2072 return -1 * (100000 * m_nPhotos + 1127);
2073 }//anti-D0 decays to K_L0 K_L0 K- pi+
2074 if (GenDTag::PcheckDecay(genpart, -311, 311, -321, 211)) {
2075 return -1 * (100000 * m_nPhotos + 1128);
2076 }//anti-D0 decays to anti-K0 K0 K- pi+
2077 if (GenDTag::PcheckDecay(genpart, 321, -211, 211, 11, -12)) {
2078 return -1 * (100000 * m_nPhotos + 1129);
2079 }//anti-D0 decays to K+ pi- pi+ e- anti-nu_e
2080 if (GenDTag::PcheckDecay(genpart, 113, 113)) {
2081 return -1 * (100000 * m_nPhotos + 1130);
2082 }//anti-D0 decays to rho0 rho0
2083 if (GenDTag::PcheckDecay(genpart, 221, -211, 211)) {
2084 return -1 * (100000 * m_nPhotos + 1131);
2085 }//anti-D0 decays to eta pi- pi+
2086 if (GenDTag::PcheckDecay(genpart, 223, -211, 211)) {
2087 return -1 * (100000 * m_nPhotos + 1132);
2088 }//anti-D0 decays to omega pi- pi+
2089 if (GenDTag::PcheckDecay(genpart, 331, -211, 211)) {
2090 return -1 * (100000 * m_nPhotos + 1133);
2091 }//anti-D0 decays to eta' pi- pi+
2092 if (GenDTag::PcheckDecay(genpart, 221, 331)) {
2093 return -1 * (100000 * m_nPhotos + 1134);
2094 }//anti-D0 decays to eta eta'
2095 if (GenDTag::PcheckDecay(genpart, 333, 22)) {
2096 return -1 * (100000 * m_nPhotos + 1135);
2097 }//anti-D0 decays to phi gamma
2098 if (GenDTag::PcheckDecay(genpart, 313, 22)) {
2099 return -1 * (100000 * m_nPhotos + 1136);
2100 }//anti-D0 decays to K*0 gamma
2101 return -1 * (int)genpart.size();
2102}// Rest of the anti-D0 decays
int Mode_Ds_minus(std::vector< int > genDAU)
returns Ds- mode identifier
Definition: GenDTag.cc:383
int Mode_Dst_plus(std::vector< int > genDAU)
returns D*+ mode identifier
Definition: GenDTag.cc:95
int Mode_anti_D0(std::vector< int > genDAU)
returns D0bar mode identifier
Definition: GenDTag.cc:1691
int Mode_D0(std::vector< int > genDAU)
returns D0 mode identifier
Definition: GenDTag.cc:1277
int Mode_Ds_plus(std::vector< int > genDAU)
returns Ds+ mode identifier
Definition: GenDTag.cc:125
int m_nPhotos
number of photons
Definition: GenDTag.h:41
int Mode_D_minus(std::vector< int > genDAU)
returns D- mode identifier
Definition: GenDTag.cc:959
bool PcheckDecay(std::vector< int > gp, int da1, int da2)
check decay with two daughters
Definition: GenDTag.cc:16
int Mode_Dst_minus(std::vector< int > genDAU)
returns D*- mode identifier
Definition: GenDTag.cc:110
int Mode_D_plus(std::vector< int > genDAU)
returns D+ mode identifier
Definition: GenDTag.cc:641
GenDTag()
Constructor.
Abstract base class for different kinds of events.