Belle II Software  release-08-01-10
GenTauTag.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/GenTauTag.h>
10 #include <analysis/utility/CheckDecayUtils.h>
11 
12 using namespace Belle2;
13 
14 GenTauTag::GenTauTag() = default;
15 
16 bool GenTauTag::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 
27 bool GenTauTag::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 
38 bool GenTauTag::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 
49 bool GenTauTag::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 
60 bool GenTauTag::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 
71 bool GenTauTag::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 
82 bool GenTauTag::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 
95 int GenTauTag::Mode_tau_plus(std::vector<int> genpart)
96 {
97  if (GenTauTag::PcheckDecay(genpart, -11, 12, -16)) {
98  return 1000 * m_nPhotos + 1;
99  }//tau+ decays to e+ nu_e anti-nu_tau
100  if (GenTauTag::PcheckDecay(genpart, -13, 14, -16)) {
101  return 1000 * m_nPhotos + 2;
102  }//tau+ decays to mu+ nu_mu anti-nu_tau
103  if (GenTauTag::PcheckDecay(genpart, 211, -16)) {
104  return 1000 * m_nPhotos + 3;
105  }//tau+ decays to pi+ anti-nu_tau
106  if (GenTauTag::PcheckDecay(genpart, 213, -16)) {
107  return 1000 * m_nPhotos + 4;
108  }//tau+ decays to rho+ anti-nu_tau
109  if (GenTauTag::PcheckDecay(genpart, 20213, -16)) {
110  return 1000 * m_nPhotos + 5;
111  }//tau+ decays to a_1+ anti-nu_tau
112  if (GenTauTag::PcheckDecay(genpart, 321, -16)) {
113  return 1000 * m_nPhotos + 6;
114  }//tau+ decays to K+ anti-nu_tau
115  if (GenTauTag::PcheckDecay(genpart, 323, -16)) {
116  return 1000 * m_nPhotos + 7;
117  }//tau- decays to K*+ anti-nu_tau
118  if (GenTauTag::PcheckDecay(genpart, -16, 211, -211, 211, 111)) {
119  return 1000 * m_nPhotos + 8;
120  }//tau- decays to anti-nu_tau pi+ pi- pi+ pi0
121  if (GenTauTag::PcheckDecay(genpart, -16, 211, 111, 111, 111)) {
122  return 1000 * m_nPhotos + 9;
123  }//tau- decays to anti-nu_tau pi+ pi0 pi0 pi0
124  if (GenTauTag::PcheckDecay(genpart, -16, 211, 211, -211, 111, 111)) {
125  return 1000 * m_nPhotos + 10;
126  }//tau- decays to anti-nu_tau pi+ pi+ pi- pi0 pi0
127  if (GenTauTag::PcheckDecay(genpart, -16, 211, 211, 211, -211, -211)) {
128  return 1000 * m_nPhotos + 11;
129  }//tau- decays to anti-nu_tau pi+ pi+ pi+ pi- pi-
130  if (GenTauTag::PcheckDecay(genpart, -16, 211, 211, 211, -211, -211, 111)) {
131  return 1000 * m_nPhotos + 12;
132  }//tau- decays to anti-nu_tau pi+ pi+ pi+ pi- pi- pi0
133  if (GenTauTag::PcheckDecay(genpart, -16, 211, 211, -211, 111, 111, 111)) {
134  return 1000 * m_nPhotos + 13;
135  }//tau- decays to anti-nu_tau pi+ pi+ pi- pi0 pi0 pi0
136  if (GenTauTag::PcheckDecay(genpart, -16, 321, 211, -321)) {
137  return 1000 * m_nPhotos + 14;
138  }//tau- decays to anti-nu_tau K+ pi+ K-
139  if (GenTauTag::PcheckDecay(genpart, -16, -10313, +211, 10313)) {
140  return 1000 * m_nPhotos + 15;
141  }//tau- decays to anti-nu_tau anti-K_10 pi+ K_10
142  if (GenTauTag::PcheckDecay(genpart, -16, 311, 211, -311)) {
143  return 1000 * m_nPhotos + 15;
144  }//tau- decays to anti-nu_tau K0 pi+ anti-K0
145  if (GenTauTag::PcheckDecay(genpart, -16, 321, -10313, 111)) {
146  return 1000 * m_nPhotos + 16;
147  }//tau- decays to anti-nu_tau K+ anti-K_10 pi0
148  if (GenTauTag::PcheckDecay(genpart, -16, 321, 311, 111)) {
149  return 1000 * m_nPhotos + 16;
150  }//tau- decays to anti-nu_tau K+ K0 pi0
151  if (GenTauTag::PcheckDecay(genpart, -16, 321, -311, 111)) {
152  return 1000 * m_nPhotos + 16;
153  }//tau- decays to anti-nu_tau K+ anti-K0 pi0
154  if (GenTauTag::PcheckDecay(genpart, -16, 321, 111, 111)) {
155  return 1000 * m_nPhotos + 17;
156  }//tau- decays to anti-nu_tau K+ pi0 pi0
157  if (GenTauTag::PcheckDecay(genpart, -16, 321, -211, 211)) {
158  return 1000 * m_nPhotos + 18;
159  }//tau- decays to anti-nu_tau K+ pi- pi+
160  if (GenTauTag::PcheckDecay(genpart, -16, 10313, 211, 111)) {
161  return 1000 * m_nPhotos + 19;
162  }//tau- decays to anti-nu_tau K_10 pi+ pi0
163  if (GenTauTag::PcheckDecay(genpart, -16, 311, 211, 111)) {
164  return 1000 * m_nPhotos + 19;
165  }//tau- decays to anti-nu_tau K0 pi+ pi0
166  if (GenTauTag::PcheckDecay(genpart, -16, -311, 211, 111)) {
167  return 1000 * m_nPhotos + 19;
168  }//tau- decays to anti-nu_tau anti-K0 pi+ pi0
169  if (GenTauTag::PcheckDecay(genpart, -16, 221, 211, 111)) {
170  return 1000 * m_nPhotos + 20;
171  }//tau- decays to anti-nu_tau eta pi+ pi0
172  if (GenTauTag::PcheckDecay(genpart, 211, 111, -16)) {
173  return 1000 * m_nPhotos + 21;
174  }//tau+ decays to pi+ pi0 anti-nu_tau
175  if (GenTauTag::PcheckDecay(genpart, -16, 321, -10313)) {
176  return 1000 * m_nPhotos + 22;
177  }//tau- decays to anti-nu_tau K+ anti-K_10
178  if (GenTauTag::PcheckDecay(genpart, -16, 321, 311)) {
179  return 1000 * m_nPhotos + 22;
180  }//tau- decays to anti-nu_tau K+ K0
181  if (GenTauTag::PcheckDecay(genpart, -16, 321, -311)) {
182  return 1000 * m_nPhotos + 22;
183  }//tau- decays to anti-nu_tau K+ anti-K0
184  if (GenTauTag::PcheckDecay(genpart, -16, 211, 111, 111, 111, 111)) {
185  return 1000 * m_nPhotos + 23;
186  }//tau- decays to anti-nu_tau pi+ pi0 pi0 pi0 pi0
187  if (GenTauTag::PcheckDecay(genpart, -16, 211, 223, 111)) {
188  return 1000 * m_nPhotos + 24;
189  }//tau- decays to anti-nu_tau pi+ omega pi0
190  if (GenTauTag::PcheckDecay(genpart, 221, 211, -211, 211, -16)) {
191  return 1000 * m_nPhotos + 25;
192  }//tau- decays to eta pi+ pi- pi+ anti-nu_tau
193  if (GenTauTag::PcheckDecay(genpart, 221, 211, 111, 111, -16)) {
194  return 1000 * m_nPhotos + 26;
195  }//tau- decays to eta pi+ pi0 pi0 anti-nu_tau
196  if (GenTauTag::PcheckDecay(genpart, 221, 321, -16)) {
197  return 1000 * m_nPhotos + 27;
198  }//tau- decays to eta K+ anti-nu_tau
199  if (GenTauTag::PcheckDecay(genpart, 221, 323, -16)) {
200  return 1000 * m_nPhotos + 28;
201  }//tau- decays to eta K*+ anti-nu_tau
202  if (GenTauTag::PcheckDecay(genpart, -16, 321, -211, 211, 111)) {
203  return 1000 * m_nPhotos + 29;
204  }//tau- decays to anti-nu_tau K+ pi- pi+ pi0
205  if (GenTauTag::PcheckDecay(genpart, 321, 111, 111, 111, -16)) {
206  return 1000 * m_nPhotos + 30;
207  }//tau- decays to K+ pi0 pi0 pi0 anti-nu_tau
208  if (GenTauTag::PcheckDecay(genpart, -16, 211, -211, 211, -10313)) {
209  return 1000 * m_nPhotos + 31;
210  }//tau- decays to anti-nu_tau pi+ pi- pi+ anti-K_10
211  if (GenTauTag::PcheckDecay(genpart, -16, 211, -211, 211, 311)) {
212  return 1000 * m_nPhotos + 31;
213  }//tau- decays to anti-nu_tau pi+ pi- pi+ K0
214  if (GenTauTag::PcheckDecay(genpart, -16, 211, -211, 211, -311)) {
215  return 1000 * m_nPhotos + 31;
216  }//tau- decays to anti-nu_tau pi+ pi- pi+ anti-K0
217  if (GenTauTag::PcheckDecay(genpart, -16, 211, 111, 111, 10313)) {
218  return 1000 * m_nPhotos + 32;
219  }//tau- decays to anti-nu_tau pi+ pi0 pi0 K_10
220  if (GenTauTag::PcheckDecay(genpart, -16, 211, 111, 111, 311)) {
221  return 1000 * m_nPhotos + 32;
222  }//tau- decays to anti-nu_tau pi+ pi0 pi0 K0
223  if (GenTauTag::PcheckDecay(genpart, -16, 211, 111, 111, -311)) {
224  return 1000 * m_nPhotos + 32;
225  }//tau- decays to anti-nu_tau pi+ pi0 pi0 anti-K0
226  if (GenTauTag::PcheckDecay(genpart, 321, -321, 211, 111, -16)) {
227  return 1000 * m_nPhotos + 33;
228  }//tau- decays to K+ K- pi+ pi0 anti-nu_tau
229  if (GenTauTag::PcheckDecay(genpart, -16, -10313, 211, 111, 10313)) {
230  return 1000 * m_nPhotos + 34;
231  }//tau- decays to anti-nu_tau anti-K_10 pi+ pi0 K_10
232  if (GenTauTag::PcheckDecay(genpart, -16, 311, 211, 111, -311)) {
233  return 1000 * m_nPhotos + 34;
234  }//tau- decays to anti-nu_tau K0 pi+ pi0 anti-K0
235  if (GenTauTag::PcheckDecay(genpart, -16, 211, 223, -211, 211)) {
236  return 1000 * m_nPhotos + 35;
237  }//tau- decays to anti-nu_tau pi+ omega pi- pi+
238  if (GenTauTag::PcheckDecay(genpart, -16, 211, 223, 111, 111)) {
239  return 1000 * m_nPhotos + 36;
240  }//tau- decays to anti-nu_tau pi+ omega pi0 pi0
241  if (GenTauTag::PcheckDecay(genpart, -11, -11, 11, 12, -16)) {
242  return 1000 * m_nPhotos + 37;
243  }//tau- decays to e+ e+ e- nu_e anti-nu_tau
244  if (GenTauTag::PcheckDecay(genpart, 20223, 211, -16)) {
245  return 1000 * m_nPhotos + 38;
246  }//tau- decays to f_1 pi+ anti-nu_tau
247  if (GenTauTag::PcheckDecay(genpart, -16, 321, 223)) {
248  return 1000 * m_nPhotos + 39;
249  }//tau- decays to anti-nu_tau K+ omega
250  if (GenTauTag::PcheckDecay(genpart, -16, -10313, 211, -211, 321)) {
251  return 1000 * m_nPhotos + 40;
252  }//tau- decays to anti-nu_tau anti-K_10 pi+ pi- K+
253  if (GenTauTag::PcheckDecay(genpart, -16, 311, 211, -211, 321)) {
254  return 1000 * m_nPhotos + 40;
255  }//tau- decays to anti-nu_tau K0 pi+ pi- K+
256  if (GenTauTag::PcheckDecay(genpart, -16, -311, 211, -211, 321)) {
257  return 1000 * m_nPhotos + 40;
258  }//tau- decays to anti-nu_tau anti-K0 pi+ pi- K+
259  if (GenTauTag::PcheckDecay(genpart, -16, 321, 111, 111, -10313)) {
260  return 1000 * m_nPhotos + 41;
261  }//tau- decays to anti-nu_tau K+ pi0 pi0 anti-K_10
262  if (GenTauTag::PcheckDecay(genpart, -16, 321, 111, 111, 311)) {
263  return 1000 * m_nPhotos + 41;
264  }//tau- decays to anti-nu_tau K+ pi0 pi0 K0
265  if (GenTauTag::PcheckDecay(genpart, -16, 321, 111, 111, -311)) {
266  return 1000 * m_nPhotos + 41;
267  }//tau- decays to anti-nu_tau K+ pi0 pi0 anti-K0
268  if (GenTauTag::PcheckDecay(genpart, -16, 211, 211, -321, 10313)) {
269  return 1000 * m_nPhotos + 42;
270  }//tau- decays to anti-nu_tau pi+ pi+ K- K_10
271  if (GenTauTag::PcheckDecay(genpart, -16, 211, 211, -321, 311)) {
272  return 1000 * m_nPhotos + 42;
273  }//tau- decays to anti-nu_tau pi+ pi+ K- K0
274  if (GenTauTag::PcheckDecay(genpart, -16, 211, 211, -321, -311)) {
275  return 1000 * m_nPhotos + 42;
276  }//tau- decays to anti-nu_tau pi+ pi+ K- anti-K0
277  if (GenTauTag::PcheckDecay(genpart, -16, 211, 311)) {
278  return 1000 * m_nPhotos + 43;
279  }//tau- decays to anti-nu_tau pi+ K0
280  if (GenTauTag::PcheckDecay(genpart, -16, 211, -311)) {
281  return 1000 * m_nPhotos + 43;
282  }//tau- decays to anti-nu_tau pi+ anti-K0
283  if (GenTauTag::PcheckDecay(genpart, -16, 22, 211, 111)) {
284  return 1000 * m_nPhotos + 44;
285  }//tau- decays to anti-nu_tau gamma pi+ pi0
286  if (GenTauTag::PcheckDecay(genpart, 111, 111, 211, -16)) {
287  return 1000 * m_nPhotos + 45;
288  }//tau- decays to pi0 pi0 pi+ anti-nu_tau
289  if (GenTauTag::PcheckDecay(genpart, 211, 211, -211, -16)) {
290  return 1000 * m_nPhotos + 46;
291  }//tau- decays to pi+ pi+ pi- anti-nu_tau
292  if (GenTauTag::PcheckDecay(genpart, -16, 321, -321, 321)) {
293  return 1000 * m_nPhotos + 47;
294  }//tau- decays to anti-nu_tau K+ K- K+
295  if (GenTauTag::PcheckDecay(genpart, 313, 211, -16)) {
296  return 1000 * m_nPhotos + 48;
297  }//tau- decays to K*0 pi+ anti-nu_tau
298  if (GenTauTag::PcheckDecay(genpart, -313, 321, -16)) {
299  return 1000 * m_nPhotos + 49;
300  }//tau- decays to anti-K*0 K+ anti-nu_tau
301  if (GenTauTag::PcheckDecay(genpart, 333, 211, -16)) {
302  return 1000 * m_nPhotos + 50;
303  }//tau- decays to phi pi+ anti-nu_tau
304  if (GenTauTag::PcheckDecay(genpart, 333, 321, -16)) {
305  return 1000 * m_nPhotos + 51;
306  }//tau- decays to phi K+ anti-nu_tau
307  if (GenTauTag::PcheckDecay(genpart, -13, 14, -16, 22)) {
308  return 1000 * m_nPhotos + 52;
309  }//tau- decays to mu+ nu_mu anti-nu_tau gamma
310  if (GenTauTag::PcheckDecay(genpart, -11, 12, -16, 22)) {
311  return 1000 * m_nPhotos + 53;
312  }//tau- decays to e+ nu_e anti-nu_tau gamma
313  if (GenTauTag::PcheckDecay(genpart, 321, 111, -16)) {
314  return 1000 * m_nPhotos + 54;
315  }//tau- decays to K+ pi0 anti-nu_tau
316  if (GenTauTag::PcheckDecay(genpart, 311, 213, -16)) {
317  return 1000 * m_nPhotos + 55;
318  }//tau- decays to K0 rho+ anti-nu_tau
319  if (GenTauTag::PcheckDecay(genpart, -311, 213, -16)) {
320  return 1000 * m_nPhotos + 55;
321  }//tau- decays to anti-K0 rho+ anti-nu_tau
322  if (GenTauTag::PcheckDecay(genpart, 10323, -16)) {
323  return 1000 * m_nPhotos + 56;
324  }//tau- decays to K_1+ anti-nu_tau
325  if (GenTauTag::PcheckDecay(genpart, 20323, -16)) {
326  return 1000 * m_nPhotos + 57;
327  }//tau- decays to K'_1+ anti-nu_tau
328  if (GenTauTag::PcheckDecay(genpart, 100323, -16)) {
329  return 1000 * m_nPhotos + 58;
330  }//tau- decays to K'*+ anti-nu_tau
331  if (GenTauTag::PcheckDecay(genpart, 221, 321, 111, -16)) {
332  return 1000 * m_nPhotos + 59;
333  }//tau- decays to eta K+ pi0 anti-nu_tau
334  if (GenTauTag::PcheckDecay(genpart, 221, 311, 211, -16)) {
335  return 1000 * m_nPhotos + 60;
336  }//tau- decays to eta K0 pi+ anti-nu_tau
337  if (GenTauTag::PcheckDecay(genpart, 221, -311, 211, -16)) {
338  return 1000 * m_nPhotos + 60;
339  }//tau- decays to eta anti-K0 pi+ anti-nu_tau
340  if (GenTauTag::PcheckDecay(genpart, -16, 310, 310, 211)) {
341  return 1000 * m_nPhotos + 20015;
342  }//tau- decays to anti-nu_tau K_S0 K_S0 pi+
343  if (GenTauTag::PcheckDecay(genpart, -16, 310, 130, 211)) {
344  return 1000 * m_nPhotos + 110015;
345  }//tau- decays to anti-nu_tau K_S0 K_L0 pi+
346  if (GenTauTag::PcheckDecay(genpart, -16, 130, 130, 211)) {
347  return 1000 * m_nPhotos + 200015;
348  }//tau- decays to anti-nu_tau K_L0 K_L0 pi+
349  if (GenTauTag::PcheckDecay(genpart, -16, 310, 321, 111)) {
350  return 1000 * m_nPhotos + 10016;
351  }//tau- decays to anti-nu_tau K_S0 K+ pi0
352  if (GenTauTag::PcheckDecay(genpart, -16, 130, 321, 111)) {
353  return 1000 * m_nPhotos + 100016;
354  }//tau- decays to anti-nu_tau K_L0 K+ pi0
355  if (GenTauTag::PcheckDecay(genpart, -16, 310, 211, 111)) {
356  return 1000 * m_nPhotos + 10019;
357  }//tau- decays to anti-nu_tau K_S0 pi+ pi0
358  if (GenTauTag::PcheckDecay(genpart, -16, 130, 211, 111)) {
359  return 1000 * m_nPhotos + 100019;
360  }//tau- decays to anti-nu_tau K_L0 pi+ pi0
361  if (GenTauTag::PcheckDecay(genpart, -16, 310, 321)) {
362  return 1000 * m_nPhotos + 10022;
363  }//tau- decays to anti-nu_tau K_S0 K+
364  if (GenTauTag::PcheckDecay(genpart, -16, 130, 321)) {
365  return 1000 * m_nPhotos + 100022;
366  }//tau- decays to anti-nu_tau K_L0 K+
367  if (GenTauTag::PcheckDecay(genpart, -16, 310, 211, -211, 211)) {
368  return 1000 * m_nPhotos + 10031;
369  }//tau- decays to anti-nu_tau K_S0 pi+ pi- pi+
370  if (GenTauTag::PcheckDecay(genpart, -16, 130, 211, -211, 211)) {
371  return 1000 * m_nPhotos + 100031;
372  }//tau- decays to anti-nu_tau K_L0 pi+ pi- pi+
373  if (GenTauTag::PcheckDecay(genpart, -16, 310, 211, 111, 111)) {
374  return 1000 * m_nPhotos + 10032;
375  }//tau- decays to anti-nu_tau K_S0 pi+ pi0 pi0
376  if (GenTauTag::PcheckDecay(genpart, -16, 130, 211, 111, 111)) {
377  return 1000 * m_nPhotos + 100032;
378  }//tau- decays to anti-nu_tau K_L0 pi+ pi0 pi0
379  if (GenTauTag::PcheckDecay(genpart, -16, 310, 310, 211, 111)) {
380  return 1000 * m_nPhotos + 20034;
381  }//tau- decays to anti-nu_tau K_S0 K_S0 pi+ pi0
382  if (GenTauTag::PcheckDecay(genpart, -16, 310, 130, 211, 111)) {
383  return 1000 * m_nPhotos + 110034;
384  }//tau- decays to anti-nu_tau K_S0 K_L0 pi+ pi0
385  if (GenTauTag::PcheckDecay(genpart, -16, 130, 130, 211, 111)) {
386  return 1000 * m_nPhotos + 200034;
387  }//tau- decays to anti-nu_tau K_L0 K_L0 pi+ pi0
388  if (GenTauTag::PcheckDecay(genpart, -16, 310, 211, -211, 321)) {
389  return 1000 * m_nPhotos + 10040;
390  }//tau- decays to anti-nu_tau K_S0 pi+ pi- K+
391  if (GenTauTag::PcheckDecay(genpart, -16, 130, 211, -211, 321)) {
392  return 1000 * m_nPhotos + 100040;
393  }//tau- decays to anti-nu_tau K_L0 pi+ pi- K+
394  if (GenTauTag::PcheckDecay(genpart, -16, 321, 111, 111, 310)) {
395  return 1000 * m_nPhotos + 10041;
396  }//tau- decays to anti-nu_tau K+ pi0 pi0 K_S0
397  if (GenTauTag::PcheckDecay(genpart, -16, 321, 111, 111, 130)) {
398  return 1000 * m_nPhotos + 100041;
399  }//tau- decays to anti-nu_tau K+ pi0 pi0 K_L0
400  if (GenTauTag::PcheckDecay(genpart, -16, 211, 211, -321, 311)) {
401  return 1000 * m_nPhotos + 10042;
402  }//tau- decays to anti-nu_tau pi+ pi+ K- K_S0
403  if (GenTauTag::PcheckDecay(genpart, -16, 211, 211, -321, 130)) {
404  return 1000 * m_nPhotos + 100042;
405  }//tau- decays to anti-nu_tau pi+ pi+ K- K_L0
406  return 0;
407 }// not yet defined tau+ decay
408 
409 
410 int GenTauTag::Mode_tau_minus(std::vector<int> genpart)
411 {
412  if (GenTauTag::PcheckDecay(genpart, 11, -12, 16)) {
413  return 1000 * m_nPhotos + 1;
414  }//tau- decays to e- anti-nu_e nu_tau
415  if (GenTauTag::PcheckDecay(genpart, 13, -14, 16)) {
416  return 1000 * m_nPhotos + 2;
417  }//tau- decays to mu- anti-nu_mu nu_tau
418  if (GenTauTag::PcheckDecay(genpart, -211, 16)) {
419  return 1000 * m_nPhotos + 3;
420  }//tau- decays to pi- nu_tau
421  if (GenTauTag::PcheckDecay(genpart, -213, 16)) {
422  return 1000 * m_nPhotos + 4;
423  }//tau- decays to rho- nu_tau
424  if (GenTauTag::PcheckDecay(genpart, -20213, 16)) {
425  return 1000 * m_nPhotos + 5;
426  }//tau- decays to a_1- nu_tau
427  if (GenTauTag::PcheckDecay(genpart, -321, 16)) {
428  return 1000 * m_nPhotos + 6;
429  }//tau- decays to K- nu_tau
430  if (GenTauTag::PcheckDecay(genpart, -323, 16)) {
431  return 1000 * m_nPhotos + 7;
432  }//tau- decays to K*- nu_tau
433  if (GenTauTag::PcheckDecay(genpart, 16, -211, 211, -211, 111)) {
434  return 1000 * m_nPhotos + 8;
435  }//tau- decays to nu_tau pi- pi+ pi- pi0
436  if (GenTauTag::PcheckDecay(genpart, 16, -211, 111, 111, 111)) {
437  return 1000 * m_nPhotos + 9;
438  }//tau- decays to nu_tau pi- pi0 pi0 pi0
439  if (GenTauTag::PcheckDecay(genpart, 16, -211, -211, 211, 111, 111)) {
440  return 1000 * m_nPhotos + 10;
441  }//tau- decays to nu_tau pi- pi- pi+ pi0 pi0
442  if (GenTauTag::PcheckDecay(genpart, 16, -211, -211, -211, 211, 211)) {
443  return 1000 * m_nPhotos + 11;
444  }//tau- decays to nu_tau pi- pi- pi- pi+ pi+
445  if (GenTauTag::PcheckDecay(genpart, 16, -211, -211, -211, 211, 211, 111)) {
446  return 1000 * m_nPhotos + 12;
447  }//tau- decays to nu_tau pi- pi- pi- pi+ pi+ pi0
448  if (GenTauTag::PcheckDecay(genpart, 16, -211, -211, 211, 111, 111, 111)) {
449  return 1000 * m_nPhotos + 13;
450  }//tau- decays to nu_tau pi- pi- pi+ pi0 pi0 pi0
451  if (GenTauTag::PcheckDecay(genpart, 16, -321, -211, 321)) {
452  return 1000 * m_nPhotos + 14;
453  }//tau- decays to nu_tau K- pi- K+
454  if (GenTauTag::PcheckDecay(genpart, 16, -10313, -211, 10313)) {
455  return 1000 * m_nPhotos + 15;
456  }//tau- decays to nu_tau anti-K_10 pi- K_10
457  if (GenTauTag::PcheckDecay(genpart, 16, 311, -211, -311)) {
458  return 1000 * m_nPhotos + 15;
459  }//tau- decays to nu_tau K0 pi- anti-K0
460  if (GenTauTag::PcheckDecay(genpart, 16, -321, 10313, 111)) {
461  return 1000 * m_nPhotos + 16;
462  }//tau- decays to nu_tau K- K_10 pi0
463  if (GenTauTag::PcheckDecay(genpart, 16, -321, 311, 111)) {
464  return 1000 * m_nPhotos + 16;
465  }//tau- decays to nu_tau K- K0 pi0
466  if (GenTauTag::PcheckDecay(genpart, 16, -321, -311, 111)) {
467  return 1000 * m_nPhotos + 16;
468  }//tau- decays to nu_tau K- anti-K0 pi0
469  if (GenTauTag::PcheckDecay(genpart, 16, -321, 111, 111)) {
470  return 1000 * m_nPhotos + 17;
471  }//tau- decays to nu_tau K- pi0 pi0
472  if (GenTauTag::PcheckDecay(genpart, 16, -321, 211, -211)) {
473  return 1000 * m_nPhotos + 18;
474  }//tau- decays to nu_tau K- pi+ pi-
475  if (GenTauTag::PcheckDecay(genpart, 16, -10313, -211, 111)) {
476  return 1000 * m_nPhotos + 19;
477  }//tau- decays to nu_tau anti-K_10 pi- pi0
478  if (GenTauTag::PcheckDecay(genpart, 16, 311, -211, 111)) {
479  return 1000 * m_nPhotos + 19;
480  }//tau- decays to nu_tau K0 pi- pi0
481  if (GenTauTag::PcheckDecay(genpart, 16, -311, -211, 111)) {
482  return 1000 * m_nPhotos + 19;
483  }//tau- decays to nu_tau anti-K0 pi- pi0
484  if (GenTauTag::PcheckDecay(genpart, 16, 221, -211, 111)) {
485  return 1000 * m_nPhotos + 20;
486  }//tau- decays to nu_tau eta pi- pi0
487  if (GenTauTag::PcheckDecay(genpart, -211, 111, 16)) {
488  return 1000 * m_nPhotos + 21;
489  }//tau+ decays to pi- pi0 nu_tau
490  if (GenTauTag::PcheckDecay(genpart, 16, -321, 10313)) {
491  return 1000 * m_nPhotos + 22;
492  }//tau- decays to nu_tau K- K_10
493  if (GenTauTag::PcheckDecay(genpart, 16, -321, 311)) {
494  return 1000 * m_nPhotos + 22;
495  }//tau- decays to nu_tau K- K0
496  if (GenTauTag::PcheckDecay(genpart, 16, -321, -311)) {
497  return 1000 * m_nPhotos + 22;
498  }//tau- decays to nu_tau K- anti-K0
499  if (GenTauTag::PcheckDecay(genpart, 16, -211, 111, 111, 111, 111)) {
500  return 1000 * m_nPhotos + 23;
501  }//tau- decays to nu_tau pi- pi0 pi0 pi0 pi0
502  if (GenTauTag::PcheckDecay(genpart, 16, -211, 223, 111)) {
503  return 1000 * m_nPhotos + 24;
504  }//tau- decays to nu_tau pi- omega pi0
505  if (GenTauTag::PcheckDecay(genpart, 221, -211, 211, -211, 16)) {
506  return 1000 * m_nPhotos + 25;
507  }//tau- decays to eta pi- pi+ pi- nu_tau
508  if (GenTauTag::PcheckDecay(genpart, 221, -211, 111, 111, 16)) {
509  return 1000 * m_nPhotos + 26;
510  }//tau- decays to eta pi- pi0 pi0 nu_tau
511  if (GenTauTag::PcheckDecay(genpart, 221, -321, 16)) {
512  return 1000 * m_nPhotos + 27;
513  }//tau- decays to eta K- nu_tau
514  if (GenTauTag::PcheckDecay(genpart, 221, -323, 16)) {
515  return 1000 * m_nPhotos + 28;
516  }//tau- decays to eta K*- nu_tau
517  if (GenTauTag::PcheckDecay(genpart, 16, -321, 211, -211, 111)) {
518  return 1000 * m_nPhotos + 29;
519  }//tau- decays to nu_tau K- pi+ pi- pi0
520  if (GenTauTag::PcheckDecay(genpart, -321, 111, 111, 111, 16)) {
521  return 1000 * m_nPhotos + 30;
522  }//tau- decays to K- pi0 pi0 pi0 nu_tau
523  if (GenTauTag::PcheckDecay(genpart, 16, -211, 211, -211, 10313)) {
524  return 1000 * m_nPhotos + 31;
525  }//tau- decays to nu_tau pi- pi+ pi- K_10
526  if (GenTauTag::PcheckDecay(genpart, 16, -211, 211, -211, 311)) {
527  return 1000 * m_nPhotos + 31;
528  }//tau- decays to nu_tau pi- pi+ pi- K0
529  if (GenTauTag::PcheckDecay(genpart, 16, -211, 211, -211, -311)) {
530  return 1000 * m_nPhotos + 31;
531  }//tau- decays to nu_tau pi- pi+ pi- anti-K0
532  if (GenTauTag::PcheckDecay(genpart, 16, -211, 111, 111, -10313)) {
533  return 1000 * m_nPhotos + 32;
534  }//tau- decays to nu_tau pi- pi0 pi0 anti-K_10
535  if (GenTauTag::PcheckDecay(genpart, 16, -211, 111, 111, 311)) {
536  return 1000 * m_nPhotos + 32;
537  }//tau- decays to nu_tau pi- pi0 pi0 K0
538  if (GenTauTag::PcheckDecay(genpart, 16, -211, 111, 111, -311)) {
539  return 1000 * m_nPhotos + 32;
540  }//tau- decays to nu_tau pi- pi0 pi0 anti-K0
541  if (GenTauTag::PcheckDecay(genpart, -321, 321, -211, 111, 16)) {
542  return 1000 * m_nPhotos + 33;
543  }//tau- decays to K- K+ pi- pi0 nu_tau
544  if (GenTauTag::PcheckDecay(genpart, 16, -10313, -211, 111, 10313)) {
545  return 1000 * m_nPhotos + 34;
546  }//tau- decays to nu_tau anti-K_10 pi- pi0 K_10
547  if (GenTauTag::PcheckDecay(genpart, 16, 311, -211, 111, -311)) {
548  return 1000 * m_nPhotos + 34;
549  }//tau- decays to nu_tau K0 pi- pi0 anti-K0
550  if (GenTauTag::PcheckDecay(genpart, 16, -211, 223, 211, -211)) {
551  return 1000 * m_nPhotos + 35;
552  }//tau- decays to nu_tau pi- omega pi+ pi-
553  if (GenTauTag::PcheckDecay(genpart, 16, -211, 223, 111, 111)) {
554  return 1000 * m_nPhotos + 36;
555  }//tau- decays to nu_tau pi- omega pi0 pi0
556  if (GenTauTag::PcheckDecay(genpart, 11, 11, -11, -12, 16)) {
557  return 1000 * m_nPhotos + 37;
558  }//tau- decays to e- e- e+ anti-nu_e nu_tau
559  if (GenTauTag::PcheckDecay(genpart, 20223, -211, 16)) {
560  return 1000 * m_nPhotos + 38;
561  }//tau- decays to f_1 pi- nu_tau
562  if (GenTauTag::PcheckDecay(genpart, 16, -321, 223)) {
563  return 1000 * m_nPhotos + 39;
564  }//tau- decays to nu_tau K- omega
565  if (GenTauTag::PcheckDecay(genpart, 16, 10313, -211, 211, -321)) {
566  return 1000 * m_nPhotos + 40;
567  }//tau- decays to nu_tau K_10 pi- pi+ K-
568  if (GenTauTag::PcheckDecay(genpart, 16, 311, -211, 211, -321)) {
569  return 1000 * m_nPhotos + 40;
570  }//tau- decays to nu_tau K0 pi- pi+ K-
571  if (GenTauTag::PcheckDecay(genpart, 16, -311, -211, 211, -321)) {
572  return 1000 * m_nPhotos + 40;
573  }//tau- decays to nu_tau anti-K0 pi- pi+ K-
574  if (GenTauTag::PcheckDecay(genpart, 16, -321, 111, 111, 10313)) {
575  return 1000 * m_nPhotos + 41;
576  }//tau- decays to nu_tau K- pi0 pi0 K_10
577  if (GenTauTag::PcheckDecay(genpart, 16, -321, 111, 111, 311)) {
578  return 1000 * m_nPhotos + 41;
579  }//tau- decays to nu_tau K- pi0 pi0 K0
580  if (GenTauTag::PcheckDecay(genpart, 16, -321, 111, 111, -311)) {
581  return 1000 * m_nPhotos + 41;
582  }//tau- decays to nu_tau K- pi0 pi0 anti-K0
583  if (GenTauTag::PcheckDecay(genpart, 16, -211, -211, 321, -10313)) {
584  return 1000 * m_nPhotos + 42;
585  }//tau- decays to nu_tau pi- pi- K+ anti-K_10
586  if (GenTauTag::PcheckDecay(genpart, 16, -211, -211, 321, 311)) {
587  return 1000 * m_nPhotos + 42;
588  }//tau- decays to nu_tau pi- pi- K+ K0
589  if (GenTauTag::PcheckDecay(genpart, 16, -211, -211, 321, -311)) {
590  return 1000 * m_nPhotos + 42;
591  }//tau- decays to nu_tau pi- pi- K+ anti-K0
592  if (GenTauTag::PcheckDecay(genpart, 16, -211, 311)) {
593  return 1000 * m_nPhotos + 43;
594  }//tau- decays to nu_tau pi- K0
595  if (GenTauTag::PcheckDecay(genpart, 16, -211, -311)) {
596  return 1000 * m_nPhotos + 43;
597  }//tau- decays to nu_tau pi- anti-K0
598  if (GenTauTag::PcheckDecay(genpart, 16, 22, -211, 111)) {
599  return 1000 * m_nPhotos + 44;
600  }//tau- decays to nu_tau gamma pi- pi0
601  if (GenTauTag::PcheckDecay(genpart, 111, 111, -211, 16)) {
602  return 1000 * m_nPhotos + 45;
603  }//tau- decays to pi0 pi0 pi- nu_tau
604  if (GenTauTag::PcheckDecay(genpart, -211, -211, 211, 16)) {
605  return 1000 * m_nPhotos + 46;
606  }//tau- decays to pi- pi- pi+ nu_tau
607  if (GenTauTag::PcheckDecay(genpart, 16, -321, 321, -321)) {
608  return 1000 * m_nPhotos + 47;
609  }//tau- decays to nu_tau K- K+ K-
610  if (GenTauTag::PcheckDecay(genpart, -313, -211, 16)) {
611  return 1000 * m_nPhotos + 48;
612  }//tau- decays to anti-K*0 pi- nu_tau
613  if (GenTauTag::PcheckDecay(genpart, 313, -321, 16)) {
614  return 1000 * m_nPhotos + 49;
615  }//tau- decays to K*0 K- nu_tau
616  if (GenTauTag::PcheckDecay(genpart, 333, -211, 16)) {
617  return 1000 * m_nPhotos + 50;
618  }//tau- decays to phi pi- nu_tau
619  if (GenTauTag::PcheckDecay(genpart, 333, -321, 16)) {
620  return 1000 * m_nPhotos + 51;
621  }//tau- decays to phi K- nu_tau
622  if (GenTauTag::PcheckDecay(genpart, 13, -14, 16, 22)) {
623  return 1000 * m_nPhotos + 52;
624  }//tau- decays to mu- anti-nu_mu nu_tau gamma
625  if (GenTauTag::PcheckDecay(genpart, 11, -12, 16, 22)) {
626  return 1000 * m_nPhotos + 53;
627  }//tau- decays to e- anti-nu_e nu_tau gamma
628  if (GenTauTag::PcheckDecay(genpart, -321, 111, 16)) {
629  return 1000 * m_nPhotos + 54;
630  }//tau- decays to K- pi0 nu_tau
631  if (GenTauTag::PcheckDecay(genpart, 311, -213, 16)) {
632  return 1000 * m_nPhotos + 55;
633  }//tau- decays to K0 rho- nu_tau
634  if (GenTauTag::PcheckDecay(genpart, -311, -213, 16)) {
635  return 1000 * m_nPhotos + 55;
636  }//tau- decays to anti-K0 rho- nu_tau
637  if (GenTauTag::PcheckDecay(genpart, -10323, 16)) {
638  return 1000 * m_nPhotos + 56;
639  }//tau- decays to K_1- nu_tau
640  if (GenTauTag::PcheckDecay(genpart, -20323, 16)) {
641  return 1000 * m_nPhotos + 57;
642  }//tau- decays to K'_1- nu_tau
643  if (GenTauTag::PcheckDecay(genpart, -100323, 16)) {
644  return 1000 * m_nPhotos + 58;
645  }//tau- decays to K'*- nu_tau
646  if (GenTauTag::PcheckDecay(genpart, 221, -321, 111, 16)) {
647  return 1000 * m_nPhotos + 59;
648  }//tau- decays to eta K- pi0 nu_tau
649  if (GenTauTag::PcheckDecay(genpart, 221, 311, -211, 16)) {
650  return 1000 * m_nPhotos + 60;
651  }//tau- decays to eta K0 pi- nu_tau
652  if (GenTauTag::PcheckDecay(genpart, 221, -311, -211, 16)) {
653  return 1000 * m_nPhotos + 60;
654  }//tau- decays to eta anti-K0 pi- nu_tau
655  if (GenTauTag::PcheckDecay(genpart, 16, 310, 310, -211)) {
656  return 1000 * m_nPhotos + 20015;
657  }//tau- decays to nu_tau K_S0 K_S0 pi-
658  if (GenTauTag::PcheckDecay(genpart, 16, 310, 130, -211)) {
659  return 1000 * m_nPhotos + 110015;
660  }//tau- decays to nu_tau K_S0 K_L0 pi-
661  if (GenTauTag::PcheckDecay(genpart, 16, 130, 130, -211)) {
662  return 1000 * m_nPhotos + 200015;
663  }//tau- decays to nu_tau K_L0 K_L0 pi-
664  if (GenTauTag::PcheckDecay(genpart, 16, 310, -321, 111)) {
665  return 1000 * m_nPhotos + 10016;
666  }//tau- decays to nu_tau K_S0 K- pi0
667  if (GenTauTag::PcheckDecay(genpart, 16, 130, -321, 111)) {
668  return 1000 * m_nPhotos + 100016;
669  }//tau- decays to nu_tau K_L0 K- pi0
670  if (GenTauTag::PcheckDecay(genpart, 16, 310, -211, 111)) {
671  return 1000 * m_nPhotos + 10019;
672  }//tau- decays to nu_tau K_S0 pi- pi0
673  if (GenTauTag::PcheckDecay(genpart, 16, 130, -211, 111)) {
674  return 1000 * m_nPhotos + 100019;
675  }//tau- decays to nu_tau K_L0 pi- pi0
676  if (GenTauTag::PcheckDecay(genpart, 16, 310, -321)) {
677  return 1000 * m_nPhotos + 10022;
678  }//tau- decays to nu_tau K_S0 K-
679  if (GenTauTag::PcheckDecay(genpart, 16, 130, -321)) {
680  return 1000 * m_nPhotos + 100022;
681  }//tau- decays to nu_tau K_L0 K-
682  if (GenTauTag::PcheckDecay(genpart, 16, 310, -211, 211, -211)) {
683  return 1000 * m_nPhotos + 10031;
684  }//tau- decays to nu_tau K_S0 pi- pi+ pi-
685  if (GenTauTag::PcheckDecay(genpart, 16, 130, -211, 211, -211)) {
686  return 1000 * m_nPhotos + 100031;
687  }//tau- decays to nu_tau K_L0 pi- pi+ pi-
688  if (GenTauTag::PcheckDecay(genpart, 16, 310, -211, 111, 111)) {
689  return 1000 * m_nPhotos + 10032;
690  }//tau- decays to nu_tau K_S0 pi- pi0 pi0
691  if (GenTauTag::PcheckDecay(genpart, 16, 130, -211, 111, 111)) {
692  return 1000 * m_nPhotos + 100032;
693  }//tau- decays to nu_tau K_L0 pi- pi0 pi0
694  if (GenTauTag::PcheckDecay(genpart, 16, 310, 310, -211, 111)) {
695  return 1000 * m_nPhotos + 20034;
696  }//tau- decays to nu_tau K_S0 K_S0 pi- pi0
697  if (GenTauTag::PcheckDecay(genpart, 16, 310, 130, -211, 111)) {
698  return 1000 * m_nPhotos + 110034;
699  }//tau- decays to nu_tau K_S0 K_L0 pi- pi0
700  if (GenTauTag::PcheckDecay(genpart, 16, 130, 130, -211, 111)) {
701  return 1000 * m_nPhotos + 200034;
702  }//tau- decays to nu_tau K_L0 K_L0 pi- pi0
703  if (GenTauTag::PcheckDecay(genpart, 16, 310, -211, 211, -321)) {
704  return 1000 * m_nPhotos + 10040;
705  }//tau- decays to nu_tau K_S0 pi- pi+ K-
706  if (GenTauTag::PcheckDecay(genpart, 16, 130, -211, 211, -321)) {
707  return 1000 * m_nPhotos + 100040;
708  }//tau- decays to nu_tau K_L0 pi- pi+ K-
709  if (GenTauTag::PcheckDecay(genpart, 16, -321, 111, 111, 310)) {
710  return 1000 * m_nPhotos + 10041;
711  }//tau- decays to nu_tau K- pi0 pi0 K_S0
712  if (GenTauTag::PcheckDecay(genpart, 16, -321, 111, 111, 130)) {
713  return 1000 * m_nPhotos + 100041;
714  }//tau- decays to nu_tau K- pi0 pi0 K_L0
715  if (GenTauTag::PcheckDecay(genpart, 16, -211, -211, 321, 310)) {
716  return 1000 * m_nPhotos + 10042;
717  }//tau- decays to nu_tau pi- pi- K+ K_S0
718  if (GenTauTag::PcheckDecay(genpart, 16, -211, -211, 321, 130)) {
719  return 1000 * m_nPhotos + 100042;
720  }//tau- decays to nu_tau pi- pi- K+ K_L0
721  return 0;
722 }// not yet defined tau- decay
int Mode_tau_minus(std::vector< int > genDAU)
returns tau- mode identifier
Definition: GenTauTag.cc:410
GenTauTag()
Constructor.
int m_nPhotos
number of photons
Definition: GenTauTag.h:35
bool PcheckDecay(std::vector< int > gp, int da1, int da2)
check decay with two daughters
Definition: GenTauTag.cc:16
int Mode_tau_plus(std::vector< int > genDAU)
returns tau+ mode identifier
Definition: GenTauTag.cc:95
Abstract base class for different kinds of events.