20 using namespace genie;
30 return "Invalid nucleon decay mode!";
35 return "p --> e+ pi0";
37 return "n --> e+ pi-";
39 return "Invalid nucleon decay mode!";
45 return "p --> mu+ pi0";
47 return "n --> mu+ pi-";
49 return "Invalid nucleon decay mode!";
55 return "p --> nubar pi+";
57 return "n --> nubar pi0";
59 return "Invalid nucleon decay mode!";
64 return "p --> e+ eta";
68 return "p --> mu+ eta";
72 return "n --> nubar eta";
77 return "p --> e+ rho0";
79 return "n --> e+ rho-";
81 return "Invalid nucleon decay mode!";
87 return "p --> mu+ rho0";
89 return "n --> mu+ rho-";
91 return "Invalid nucleon decay mode!";
97 return "p --> nubar rho+";
99 return "n --> nubar rho0";
101 return "Invalid nucleon decay mode!";
106 return "p --> e+ omega";
110 return "p --> mu+ omega";
114 return "n --> nubar omega";
119 return "p --> e+ K0";
121 return "n --> e+ K-";
123 return "Invalid nucleon decay mode!";
128 return "p --> e+ K0s";
132 return "p --> e+ K0l";
137 return "p --> mu+ K0";
139 return "n --> mu+ K-";
141 return "Invalid nucleon decay mode!";
146 return "p --> mu+ K0s";
150 return "p --> mu+ K0l";
155 return "p --> nubar K+";
157 return "n --> nubar K0";
159 return "Invalid nucleon decay mode!";
164 return "n --> nubar K0s";
168 return "p --> e+ K*0";
173 return "p --> nubar K*+";
175 return "n --> nubar K*0";
177 return "Invalid nucleon decay mode!";
182 return "p --> e+ pi+ pi-";
186 return "p --> e+ pi0 pi0";
190 return "n --> e+ pi- pi0";
194 return "p --> mu+ pi+ pi-";
198 return "p --> mu+ pi0 pi0";
202 return "n --> mu+ pi- pi0";
206 return "n --> e+ K0 pi-";
210 return "n --> e- pi+";
214 return "n --> mu- pi+";
218 return "n --> e- rho+";
222 return "n --> mu- rho+";
226 return "n --> e- K+";
230 return "n --> mu- K+";
234 return "p --> e- pi+ pi+";
238 return "n --> e- pi+ pi0";
242 return "p --> mu- pi+ pi+";
246 return "n --> mu- pi+ pi0";
250 return "p --> e- pi+ K+";
254 return "p --> mu- pi+ K+";
258 return "p --> e+ gamma";
262 return "p --> mu+ gamma";
266 return "n --> nubar gamma";
270 return "p --> e+ gamma gamma";
274 return "n --> nubar gamma gamma";
278 return "p --> e+ e+ e-";
282 return "p --> e+ mu+ mu-";
286 return "p --> e+ nubar nu";
290 return "n --> e+ e- nubar";
294 return "n --> mu+ e- nubar";
298 return "n --> mu+ mu- nubar";
302 return "p --> mu+ e+ e-";
306 return "p --> mu+ mu+ mu-";
310 return "p --> mu+ nubar nu";
314 return "p --> e- mu+ mu+";
318 return "n --> nubar nubar nu";
322 return "n --> nubar nubar nubar nu nu";
326 return "Invalid nucleon decay mode!";
476 default :
return 0;
break;
485 bool allow_duplicate =
true;
493 decay_products.push_back(
kPdgPi0);
496 decay_products.push_back(
kPdgPiM);
503 decay_products.push_back(
kPdgPi0);
506 decay_products.push_back(
kPdgPiM);
513 decay_products.push_back(
kPdgPiP);
516 decay_products.push_back(
kPdgPi0);
522 decay_products.push_back(
kPdgEta);
527 decay_products.push_back(
kPdgEta);
532 decay_products.push_back(
kPdgEta);
583 decay_products.push_back(
kPdgK0);
586 decay_products.push_back(
kPdgKM);
592 decay_products.push_back(
kPdgK0S);
597 decay_products.push_back(
kPdgK0L);
603 decay_products.push_back(
kPdgK0);
606 decay_products.push_back(
kPdgKM);
612 decay_products.push_back(
kPdgK0S);
617 decay_products.push_back(
kPdgK0L);
623 decay_products.push_back(
kPdgKP);
626 decay_products.push_back(
kPdgK0);
632 decay_products.push_back(
kPdgK0S);
652 decay_products.push_back(
kPdgPiP);
653 decay_products.push_back(
kPdgPiM);
658 decay_products.push_back(
kPdgPi0);
659 decay_products.push_back(
kPdgPi0);
664 decay_products.push_back(
kPdgPiM);
665 decay_products.push_back(
kPdgPi0);
670 decay_products.push_back(
kPdgPiP);
671 decay_products.push_back(
kPdgPiM);
676 decay_products.push_back(
kPdgPi0);
677 decay_products.push_back(
kPdgPi0);
682 decay_products.push_back(
kPdgPiM);
683 decay_products.push_back(
kPdgPi0);
688 decay_products.push_back(
kPdgK0);
689 decay_products.push_back(
kPdgPiM);
694 decay_products.push_back(
kPdgPiP);
699 decay_products.push_back(
kPdgPiP);
714 decay_products.push_back(
kPdgKP);
719 decay_products.push_back(
kPdgKP);
724 decay_products.push_back(
kPdgPiP);
725 decay_products.push_back(
kPdgPiP);
730 decay_products.push_back(
kPdgPiP);
731 decay_products.push_back(
kPdgPi0);
736 decay_products.push_back(
kPdgPiP);
737 decay_products.push_back(
kPdgPiP);
742 decay_products.push_back(
kPdgPiP);
743 decay_products.push_back(
kPdgPi0);
748 decay_products.push_back(
kPdgPiP);
749 decay_products.push_back(
kPdgKP);
754 decay_products.push_back(
kPdgPiP);
755 decay_products.push_back(
kPdgKP);
800 decay_products.push_back(
kPdgNuE);
836 decay_products.push_back(
kPdgNuE);
848 decay_products.push_back(
kPdgNuE);
855 decay_products.push_back(
kPdgNuE);
856 decay_products.push_back(
kPdgNuE);
862 return decay_products;
866 bool in_nucleus,
int pdgc)
bool IsValidMode(NucleonDecayMode_t ndm, int npdg=0)
PDGCodeList DecayProductList(NucleonDecayMode_t ndm, int npdg=0)
GHepStatus_t DecayProductStatus(bool in_nucleus, int pdgc)
enum genie::ENucleonDecayMode NucleonDecayMode_t
string AsString(NucleonDecayMode_t ndm, int npdg=0)
Most commonly used PDG codes. A set of utility functions to handle PDG codes is provided in PDGUtils...
int DecayedNucleonPdgCode(NucleonDecayMode_t ndm)
enum genie::EGHepStatus GHepStatus_t