109 antinucleon = particle2;
113 antinucleon = particle1;
120 const std::vector<G4double> BFMM6 = {66.098, 0.153, -4.576, -38.319, 6.625};
121 const std::vector<G4double> BFMM1 = {119.066, 6.251, -0.006, -60.046, 11.958};
122 const std::vector<G4double> BFMM471 = {108.104, 15.708, 0.832, -54.632, -6.958};
125 const std::vector<G4double> PPbar_pip_pim = {0.637, -0.340, -0.003, -0.439, 0.144};
126 const std::vector<G4double> PPbar_pip_pim_pi0 = {-2.065, 4.893, -1.130, 1.231, -0.212};
127 const std::vector<G4double> PPbar_pip_pim_omega = {3.020, 0.425, -0.029, -3.420, 0.867};
128 const std::vector<G4double> PPbar_pip_pim_Kp_Km = {-1.295, 1.897, -0.001, -0.365, 0.044};
129 const std::vector<G4double> PPbar_pip_pim_pi0_Kp_Km = {-12.220, 12.509, -0.351, 4.682, -0.777};
130 const std::vector<G4double> PPbar_2pip_2pim = {3.547, 0.095, 0.957, -3.444, 0.685};
131 const std::vector<G4double> PPbar_2pip_2pim_pi0 = {13.044, 1.449, 0.695, -12.313, 1.627};
132 const std::vector<G4double> PPbar_2pip_2pim_3pi0 = {6.398, 0.199, -1.103, -1.271, -0.380};
133 const std::vector<G4double> PPbar_3pip_3pim = {1.490, 0.240, 0.002, -1.012, 0.134};
134 const std::vector<G4double> PPbar_3pip_3pim_pi0 = {0.286, 1.634, -1.369, 3.099, -1.294};
135 const std::vector<G4double> PPbar_3pip_3pim_2pi0 = {-11.370, 12.503, -0.680, 10.059, -2.501};
136 const std::vector<G4double> PPbar_3pip_3pim_3pi0 = {-14.732, 12.338, -0.724, 11.342, -2.224};
137 const std::vector<G4double> PPbar_4pip_4pim = {-1.574, 1.607, -0.864, 1.253, -0.276};
138 const std::vector<G4double> PPbar_4pip_4pim_pi0 = {-1.096, 0.977, -0.995, 1.007, -0.171};
141 const std::vector<G4double> NPbar_pip_2pim = {-12.116, 14.485, -0.094, -1.632, 0.882, 5.000};
142 const std::vector<G4double> NPbar_pip_2pim_2pi0 = {8.276, 5.057, 0.483, -15.864, 2.552, 7.000};
143 const std::vector<G4double> NPbar_pip_2pim_3pi0 = {-1.500, 9.574, 0.528, -11.633, -0.615, 7.000};
144 const std::vector<G4double> NPbar_pip_2pim_pi0 = {7.999, 4.135, 0.608, -14.136, 1.590, 7.000};
145 const std::vector<G4double> NPbar_pip_pim_pi0_Km_K0 = {0.083, 0.091, -1.709, 0.284, -0.107};
146 const std::vector<G4double> NPbar_pip_pim_Km_K0 = {0.003, 0.297, -0.001, -0.143, 0.052};
147 const std::vector<G4double> NPbar_2pip_3pim_pi0 = {-14.701, 22.258, -0.001, -3.094, -0.190};
148 const std::vector<G4double> NPbar_2pip_3pim = {-0.616, 4.575, -0.002, -1.921, -0.153};
152 #ifdef INCLXX_IN_GEANT4_MODE
155 ed <<
" Data missing: set environment variable G4INCLDATA\n"
156 <<
" to point to the directory containing data files needed\n"
157 <<
" by the INCL++ model" <<
G4endl;
158 G4Exception(
"G4INCLDataFile::readData()",
"inflightppbarFS.dat, ...",
162 G4String dataPathppbar(dataPath0 +
"/inflightppbarFS.dat");
163 G4String dataPathnpbar(dataPath0 +
"/inflightnpbarFS.dat");
164 G4String dataPathppbark(dataPath0 +
"/inflightppbarFSkaonic.dat");
165 G4String dataPathnpbark(dataPath0 +
"/inflightnpbarFSkaonic.dat");
166 G4String dataPathpnbar(dataPath0 +
"/inflightpnbarFS.dat");
167 G4String dataPathpnbark(dataPath0 +
"/inflightpnbarFSkaonic.dat");
175 std::string dataPathppbar(path +
"/inflightppbarFS.dat");
176 INCL_DEBUG(
"Reading https://doi.org/10.1016/0375-9474(92)90362-N ppbar final states" << dataPathppbar <<
'\n');
177 std::string dataPathnpbar(path +
"/inflightnpbarFS.dat");
178 INCL_DEBUG(
"Reading https://doi.org/10.1016/0375-9474(92)90362-N npbar final states" << dataPathnpbar <<
'\n');
179 std::string dataPathppbark(path +
"/inflightppbarFSkaonic.dat");
180 INCL_DEBUG(
"Reading https://doi.org/10.1016/j.physrep.2005.03.002 ppbar kaonic final states" << dataPathppbark <<
'\n');
181 std::string dataPathnpbark(path +
"/inflightnpbarFSkaonic.dat");
182 INCL_DEBUG(
"Reading https://doi.org/10.1007/BF02818764 and https://link.springer.com/article/10.1007/BF02754930 npbar kaonic final states" << dataPathnpbark <<
'\n');
183 std::string dataPathpnbar(path +
"/inflightpnbarFS.dat");
184 std::string dataPathpnbark(path +
"/inflightpnbarFSkaonic.dat");
198 std::vector<G4double> probabilities;
199 std::vector<std::vector<std::string>> particle_types;
348 if(rdm < (1.-kaonicFSprob)){
349 INCL_DEBUG(
"pionic npbar final state chosen" <<
'\n');
350 sum =
read_file(dataPathnpbar, probabilities, particle_types);
351 rdm = (rdm/(1.-kaonicFSprob))*sum;
354 for(
G4int j = 0; j < static_cast<G4int>(particle_types[n].size()); j++){
355 if(particle_types[n][j] ==
"pi0"){
359 else if(particle_types[n][j] ==
"pi-"){
363 else if(particle_types[n][j] ==
"pi+"){
367 else if(particle_types[n][j] ==
"omega"){
371 else if(particle_types[n][j] ==
"eta"){
376 INCL_ERROR(
"Some non-existing FS particle detected when reading pbar FS files");
377 for(
G4int jj = 0; jj < static_cast<G4int>(particle_types[n].size()); jj++){
378 std::cout <<
"gotcha! " << particle_types[n][jj] << std::endl;
384 INCL_DEBUG(
"kaonic npbar final state chosen" <<
'\n');
385 sum =
read_file(dataPathnpbark, probabilities, particle_types);
386 rdm = ((1-rdm)/kaonicFSprob)*sum;
389 for(
G4int j = 0; j < static_cast<G4int>(particle_types[n].size()); j++){
390 if(particle_types[n][j] ==
"pi0"){
394 else if(particle_types[n][j] ==
"pi-"){
398 else if(particle_types[n][j] ==
"pi+"){
402 else if(particle_types[n][j] ==
"omega"){
406 else if(particle_types[n][j] ==
"eta"){
410 else if(particle_types[n][j] ==
"K-"){
414 else if(particle_types[n][j] ==
"K+"){
418 else if(particle_types[n][j] ==
"K0"){
422 else if(particle_types[n][j] ==
"K0b"){
427 INCL_ERROR(
"Some non-existing FS particle detected when reading pbar FS files");
428 for(
G4int jj = 0; jj < static_cast<G4int>(particle_types[n].size()); jj++){
429 std::cout <<
"gotcha! " << particle_types[n][jj] << std::endl;
571 if(rdm < (1.-kaonicFSprob)){
572 INCL_DEBUG(
"pionic pnbar final state chosen" <<
'\n');
573 sum =
read_file(dataPathpnbar, probabilities, particle_types);
574 rdm = (rdm/(1.-kaonicFSprob))*sum;
577 for(
G4int j = 0; j < static_cast<G4int>(particle_types[n].size()); j++){
578 if(particle_types[n][j] ==
"pi0"){
582 else if(particle_types[n][j] ==
"pi-"){
586 else if(particle_types[n][j] ==
"pi+"){
590 else if(particle_types[n][j] ==
"omega"){
594 else if(particle_types[n][j] ==
"eta"){
599 INCL_ERROR(
"Some non-existing FS particle detected when reading nbar FS files");
600 for(
G4int jj = 0; jj < static_cast<G4int>(particle_types[n].size()); jj++){
601 std::cout <<
"gotcha! " << particle_types[n][jj] << std::endl;
607 INCL_DEBUG(
"kaonic pnbar final state chosen" <<
'\n');
608 sum =
read_file(dataPathnpbark, probabilities, particle_types);
609 rdm = ((1-rdm)/kaonicFSprob)*sum;
612 for(
G4int j = 0; j < static_cast<G4int>(particle_types[n].size()); j++){
613 if(particle_types[n][j] ==
"pi0"){
617 else if(particle_types[n][j] ==
"pi-"){
621 else if(particle_types[n][j] ==
"pi+"){
625 else if(particle_types[n][j] ==
"omega"){
629 else if(particle_types[n][j] ==
"eta"){
633 else if(particle_types[n][j] ==
"K-"){
637 else if(particle_types[n][j] ==
"K+"){
641 else if(particle_types[n][j] ==
"K0"){
645 else if(particle_types[n][j] ==
"K0b"){
650 INCL_ERROR(
"Some non-existing FS particle detected when reading pnbar FS files");
651 for(
G4int jj = 0; jj < static_cast<G4int>(particle_types[n].size()); jj++){
652 std::cout <<
"gotcha! " << particle_types[n][jj] << std::endl; }
961 if(rdm < (1.-kaonicFSprob)){
962 INCL_DEBUG(
"pionic pp final state chosen" <<
'\n');
963 sum =
read_file(dataPathppbar, probabilities, particle_types);
964 rdm = (rdm/(1.-kaonicFSprob))*sum;
967 for(
G4int j = 0; j < static_cast<G4int>(particle_types[n].size()); j++){
968 if(particle_types[n][j] ==
"pi0"){
972 else if(particle_types[n][j] ==
"pi-"){
976 else if(particle_types[n][j] ==
"pi+"){
980 else if(particle_types[n][j] ==
"omega"){
984 else if(particle_types[n][j] ==
"eta"){
989 INCL_ERROR(
"Some non-existing FS particle detected when reading pbar FS files");
990 for(
G4int jj = 0; jj < static_cast<G4int>(particle_types[n].size()); jj++){
991 std::cout <<
"gotcha! " << particle_types[n][jj] << std::endl; }
996 INCL_DEBUG(
"kaonic pp final state chosen" <<
'\n');
997 sum =
read_file(dataPathppbark, probabilities, particle_types);
998 rdm = ((1-rdm)/kaonicFSprob)*sum;
1001 for(
G4int j = 0; j < static_cast<G4int>(particle_types[n].size()); j++){
1002 if(particle_types[n][j] ==
"pi0"){
1006 else if(particle_types[n][j] ==
"pi-"){
1010 else if(particle_types[n][j] ==
"pi+"){
1014 else if(particle_types[n][j] ==
"omega"){
1018 else if(particle_types[n][j] ==
"eta"){
1022 else if(particle_types[n][j] ==
"K-"){
1026 else if(particle_types[n][j] ==
"K+"){
1030 else if(particle_types[n][j] ==
"K0"){
1034 else if(particle_types[n][j] ==
"K0b"){
1039 INCL_ERROR(
"Some non-existing FS particle detected when reading pbar FS files");
1040 for(
G4int jj = 0; jj < static_cast<G4int>(particle_types[n].size()); jj++){
1041 std::cout <<
"gotcha! " << particle_types[n][jj] << std::endl;
1051 nucleon->setType(list[0]->getType());
1052 antinucleon->setType(list[1]->getType());
1056 finallist.push_back(nucleon);
1057 finallist.push_back(antinucleon);
1059 if(list.size() > 2){
1060 for (
G4int i = 2; i < (
G4int)(list.size()); i++) {
1061 finallist.push_back(list[i]);
1065 if(finallist.size()==2){
1067 G4double my=antinucleon->getMass();
1069 G4double ey=(sqrtS*sqrtS+my*my-mn*mn)/(2*sqrtS);
1070 G4double en=std::sqrt(ey*ey-my*my+mn*mn);
1071 nucleon->setEnergy(en);
1072 antinucleon->setEnergy(ey);
1073 G4double py=std::sqrt(ey*ey-my*my);
1076 antinucleon->setMomentum(mom_antinucleon);
1077 nucleon->setMomentum(-mom_antinucleon);
1079 else if(finallist.size() > 2){
1083 INCL_ERROR(
"less than 2 mesons in NNbar annihilation!" <<
'\n');
1087 for (
G4int i = 0; i < 2; i++) {
1090 if(finallist.size()>2){
1091 for (
G4int i = 2; i < (
G4int)(list.size()); i++) {