Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/inclxx/incl_physics/src/G4INCLNNEtaToMultiPionsChannel.cc

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

Diff markup

Differences between /processes/hadronic/models/inclxx/incl_physics/src/G4INCLNNEtaToMultiPionsChannel.cc (Version 11.3.0) and /processes/hadronic/models/inclxx/incl_physics/src/G4INCLNNEtaToMultiPionsChannel.cc (Version 10.4)


  1 //                                                  1 //
  2 // *******************************************      2 // ********************************************************************
  3 // * License and Disclaimer                         3 // * License and Disclaimer                                           *
  4 // *                                                4 // *                                                                  *
  5 // * The  Geant4 software  is  copyright of th      5 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
  6 // * the Geant4 Collaboration.  It is provided      6 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
  7 // * conditions of the Geant4 Software License      7 // * conditions of the Geant4 Software License,  included in the file *
  8 // * LICENSE and available at  http://cern.ch/      8 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
  9 // * include a list of copyright holders.           9 // * include a list of copyright holders.                             *
 10 // *                                               10 // *                                                                  *
 11 // * Neither the authors of this software syst     11 // * Neither the authors of this software system, nor their employing *
 12 // * institutes,nor the agencies providing fin     12 // * institutes,nor the agencies providing financial support for this *
 13 // * work  make  any representation or  warran     13 // * work  make  any representation or  warranty, express or implied, *
 14 // * regarding  this  software system or assum     14 // * regarding  this  software system or assume any liability for its *
 15 // * use.  Please see the license in the file      15 // * use.  Please see the license in the file  LICENSE  and URL above *
 16 // * for the full disclaimer and the limitatio     16 // * for the full disclaimer and the limitation of liability.         *
 17 // *                                               17 // *                                                                  *
 18 // * This  code  implementation is the result      18 // * This  code  implementation is the result of  the  scientific and *
 19 // * technical work of the GEANT4 collaboratio     19 // * technical work of the GEANT4 collaboration.                      *
 20 // * By using,  copying,  modifying or  distri     20 // * By using,  copying,  modifying or  distributing the software (or *
 21 // * any work based  on the software)  you  ag     21 // * any work based  on the software)  you  agree  to acknowledge its *
 22 // * use  in  resulting  scientific  publicati     22 // * use  in  resulting  scientific  publications,  and indicate your *
 23 // * acceptance of all terms of the Geant4 Sof     23 // * acceptance of all terms of the Geant4 Software license.          *
 24 // *******************************************     24 // ********************************************************************
 25 //                                                 25 //
 26 // INCL++ intra-nuclear cascade model              26 // INCL++ intra-nuclear cascade model
 27 // Alain Boudard, CEA-Saclay, France               27 // Alain Boudard, CEA-Saclay, France
 28 // Joseph Cugnon, University of Liege, Belgium     28 // Joseph Cugnon, University of Liege, Belgium
 29 // Jean-Christophe David, CEA-Saclay, France       29 // Jean-Christophe David, CEA-Saclay, France
 30 // Pekka Kaitaniemi, CEA-Saclay, France, and H     30 // Pekka Kaitaniemi, CEA-Saclay, France, and Helsinki Institute of Physics, Finland
 31 // Sylvie Leray, CEA-Saclay, France                31 // Sylvie Leray, CEA-Saclay, France
 32 // Davide Mancusi, CEA-Saclay, France              32 // Davide Mancusi, CEA-Saclay, France
 33 //                                                 33 //
 34 #define INCLXX_IN_GEANT4_MODE 1                    34 #define INCLXX_IN_GEANT4_MODE 1
 35                                                    35 
 36 #include "globals.hh"                              36 #include "globals.hh"
 37                                                    37 
 38 #include "G4INCLNNEtaToMultiPionsChannel.hh"       38 #include "G4INCLNNEtaToMultiPionsChannel.hh"
 39 #include "G4INCLKinematicsUtils.hh"                39 #include "G4INCLKinematicsUtils.hh"
 40 #include "G4INCLBinaryCollisionAvatar.hh"          40 #include "G4INCLBinaryCollisionAvatar.hh"
 41 #include "G4INCLRandom.hh"                         41 #include "G4INCLRandom.hh"
 42 #include "G4INCLGlobals.hh"                        42 #include "G4INCLGlobals.hh"
 43 #include "G4INCLLogger.hh"                         43 #include "G4INCLLogger.hh"
 44 #include <algorithm>                               44 #include <algorithm>
 45 #include "G4INCLPhaseSpaceGenerator.hh"            45 #include "G4INCLPhaseSpaceGenerator.hh"
 46                                                    46 
 47 namespace G4INCL {                                 47 namespace G4INCL {
 48                                                    48 
 49   const G4double NNEtaToMultiPionsChannel::ang     49   const G4double NNEtaToMultiPionsChannel::angularSlope = 6.;
 50                                                    50 
 51   NNEtaToMultiPionsChannel::NNEtaToMultiPionsC     51   NNEtaToMultiPionsChannel::NNEtaToMultiPionsChannel(const G4int npi, Particle *p1, Particle *p2)
 52     : npion(npi),                                  52     : npion(npi),
 53     iso1(0),                                       53     iso1(0),
 54     iso2(0),                                       54     iso2(0),
 55     particle1(p1),                                 55     particle1(p1),
 56     particle2(p2)                                  56     particle2(p2)
 57   {                                                57   {
 58     std::fill(isosp, isosp+4, 0);                  58     std::fill(isosp, isosp+4, 0);
 59   }                                                59   }
 60                                                    60 
 61   NNEtaToMultiPionsChannel::~NNEtaToMultiPions     61   NNEtaToMultiPionsChannel::~NNEtaToMultiPionsChannel(){
 62                                                    62 
 63   }                                                63   }
 64                                                    64 
 65   void NNEtaToMultiPionsChannel::fillFinalStat     65   void NNEtaToMultiPionsChannel::fillFinalState(FinalState *fs) {
 66 // assert(npion > 0 && npion < 5);                 66 // assert(npion > 0 && npion < 5);
 67                                                    67 
 68       iso1=ParticleTable::getIsospin(particle1     68       iso1=ParticleTable::getIsospin(particle1->getType());
 69       iso2=ParticleTable::getIsospin(particle2     69       iso2=ParticleTable::getIsospin(particle2->getType());
 70                                                    70 
 71       ParticleList list;                           71       ParticleList list;
 72       list.push_back(particle1);                   72       list.push_back(particle1);
 73       list.push_back(particle2);                   73       list.push_back(particle2);
 74       fs->addModifiedParticle(particle1);          74       fs->addModifiedParticle(particle1);
 75       fs->addModifiedParticle(particle2);          75       fs->addModifiedParticle(particle2);
 76                                                    76 
 77       isospinRepartition();                        77       isospinRepartition();
 78                                                    78 
 79       const ParticleType tn1=ParticleTable::ge     79       const ParticleType tn1=ParticleTable::getNucleonType(iso1);
 80       particle1->setType(tn1);                     80       particle1->setType(tn1);
 81       const ParticleType tn2=ParticleTable::ge     81       const ParticleType tn2=ParticleTable::getNucleonType(iso2);
 82       particle2->setType(tn2);                     82       particle2->setType(tn2);
 83       const ThreeVector &rcolnucleon1 = partic     83       const ThreeVector &rcolnucleon1 = particle1->getPosition();
 84       const ThreeVector &rcolnucleon2 = partic     84       const ThreeVector &rcolnucleon2 = particle2->getPosition();
 85       const ThreeVector rcol = (rcolnucleon1+r     85       const ThreeVector rcol = (rcolnucleon1+rcolnucleon2)*0.5;
 86       const ThreeVector zero;                      86       const ThreeVector zero;
 87       for(G4int i=0; i<npion; ++i) {               87       for(G4int i=0; i<npion; ++i) {
 88         const ParticleType pionType=ParticleTa     88         const ParticleType pionType=ParticleTable::getPionType(isosp[i]);
 89         Particle *pion = new Particle(pionType     89         Particle *pion = new Particle(pionType,zero,rcol);
 90         list.push_back(pion);                      90         list.push_back(pion);
 91         fs->addCreatedParticle(pion);              91         fs->addCreatedParticle(pion);
 92       }                                            92       }
 93       Particle *eta = new Particle(Eta,zero,rc     93       Particle *eta = new Particle(Eta,zero,rcol);
 94       list.push_back(eta);                         94       list.push_back(eta);
 95       fs->addCreatedParticle(eta);                 95       fs->addCreatedParticle(eta);
 96                                                    96    
 97       const G4double sqrtS = KinematicsUtils::     97       const G4double sqrtS = KinematicsUtils::totalEnergyInCM(particle1, particle2);
 98       G4int biasIndex = ((Random::shoot()<0.5)     98       G4int biasIndex = ((Random::shoot()<0.5) ? 0 : 1);
 99       PhaseSpaceGenerator::generateBiased(sqrt     99       PhaseSpaceGenerator::generateBiased(sqrtS, list, biasIndex, angularSlope);
100                                                   100 
101   }                                               101   }
102                                                   102 
103     void NNEtaToMultiPionsChannel::isospinRepa    103     void NNEtaToMultiPionsChannel::isospinRepartition() {
104         const G4double rjcd=Random::shoot();      104         const G4double rjcd=Random::shoot();
105         G4double p;                               105         G4double p;
106         const G4int itot=iso1+iso2;               106         const G4int itot=iso1+iso2;
107                                                   107 
108         if (npion == 1) {                         108         if (npion == 1) {
109             p=3.*rjcd;                            109             p=3.*rjcd;
110             if (p < 1.)      pn_ppPim();          110             if (p < 1.)      pn_ppPim();
111             else if (p < 2.) pn_pnPi0();          111             else if (p < 2.) pn_pnPi0();
112             else            pn_nnPip();           112             else            pn_nnPip();
113         }                                         113         }
114         else if (npion == 2) {                    114         else if (npion == 2) {
115             if (itot == 2) {                      115             if (itot == 2) {
116                 p=20.*rjcd;                       116                 p=20.*rjcd;
117                 if (p >= 14.)      pp_nnPipPip    117                 if (p >= 14.)      pp_nnPipPip();
118                 else if (p >= 11.) pp_pnPipPi0    118                 else if (p >= 11.) pp_pnPipPi0();
119                 else if (p >= 7.)  pp_ppPi0Pi0    119                 else if (p >= 7.)  pp_ppPi0Pi0();
120                 else              pp_ppPipPim(    120                 else              pp_ppPipPim();
121             }                                     121             }
122             else if (itot == -2) {                122             else if (itot == -2) {
123                 p=20.*rjcd;                       123                 p=20.*rjcd;
124                 if (p >= 14.)      nn_ppPimPim    124                 if (p >= 14.)      nn_ppPimPim();
125                 else if (p >= 11.) nn_pnPimPi0    125                 else if (p >= 11.) nn_pnPimPi0();
126                 else if (p >= 7.)  nn_nnPi0Pi0    126                 else if (p >= 7.)  nn_nnPi0Pi0();
127                 else              nn_nnPipPim(    127                 else              nn_nnPipPim();
128             }                                     128             }
129             else  {                               129             else  {
130                 G4double pp=Random::shoot();      130                 G4double pp=Random::shoot();
131                 if (pp > 0.5) {                   131                 if (pp > 0.5) {
132                     p=3.*rjcd;                    132                     p=3.*rjcd;
133                     if (p < 2.) {                 133                     if (p < 2.) {
134                         pn_pnPipPim();            134                         pn_pnPipPim();
135                     }                             135                     }
136                     else {                        136                     else {
137                         pn_pnPi0Pi0();            137                         pn_pnPi0Pi0();
138                     }                             138                     }
139                 }                                 139                 }
140                 else {                            140                 else {
141                     p=60.*rjcd;                   141                     p=60.*rjcd;
142                     if (p >= 51.)      pn_nnPi    142                     if (p >= 51.)      pn_nnPipPi0();
143                     else if (p >= 33.) pn_pnPi    143                     else if (p >= 33.) pn_pnPi0Pi0();
144                     else if (p >= 9.)  pn_pnPi    144                     else if (p >= 9.)  pn_pnPipPim();
145                     else              pn_ppPim    145                     else              pn_ppPimPi0();
146                 }                                 146                 }
147             }                                     147             }
148         }                                         148         }
149         else if (npion == 3) {                    149         else if (npion == 3) {
150             p=60.*rjcd;                           150             p=60.*rjcd;
151             if (itot == 2) {                      151             if (itot == 2) {
152                 if (p >= 42.)      pp_nnPipPip    152                 if (p >= 42.)      pp_nnPipPipPi0();
153                 else if (p >= 39.) pp_pnPipPi0    153                 else if (p >= 39.) pp_pnPipPi0Pi0();
154                 else if (p >= 33.) pp_pnPipPip    154                 else if (p >= 33.) pp_pnPipPipPim();
155                 else if (p >= 22.) pp_ppPi0Pi0    155                 else if (p >= 22.) pp_ppPi0Pi0Pi0();
156                 else              pp_ppPipPimP    156                 else              pp_ppPipPimPi0();
157             }                                     157             }
158             else if (itot == -2) {                158             else if (itot == -2) {
159                 if (p >= 42.)      nn_ppPimPim    159                 if (p >= 42.)      nn_ppPimPimPi0();
160                 else if (p >= 39.) nn_pnPimPi0    160                 else if (p >= 39.) nn_pnPimPi0Pi0();
161                 else if (p >= 33.) nn_pnPipPim    161                 else if (p >= 33.) nn_pnPipPimPim();
162                 else if (p >= 22.) nn_nnPi0Pi0    162                 else if (p >= 22.) nn_nnPi0Pi0Pi0();
163                 else              nn_nnPipPimP    163                 else              nn_nnPipPimPi0();
164             }                                     164             }
165             else {                                165             else {
166                 if (p >= 57.)      pn_nnPipPi0    166                 if (p >= 57.)      pn_nnPipPi0Pi0();
167                 else if (p >= 51.) pn_nnPipPip    167                 else if (p >= 51.) pn_nnPipPipPim();
168                 else if (p >= 37.) pn_pnPi0Pi0    168                 else if (p >= 37.) pn_pnPi0Pi0Pi0();
169                 else if (p >= 9.)  pn_pnPi0Pip    169                 else if (p >= 9.)  pn_pnPi0PipPim();
170                 else if (p >= 6.)  pn_ppPimPi0    170                 else if (p >= 6.)  pn_ppPimPi0Pi0();
171                 else              pn_ppPimPimP    171                 else              pn_ppPimPimPip();
172                                                   172 
173             }                                     173             }
174         }                                         174         }
175         else if (npion == 4) {                    175         else if (npion == 4) {
176             p=60.*rjcd;                           176             p=60.*rjcd;
177             if (itot == 2) {                      177             if (itot == 2) {
178                 if (p >= 48.)      pp_nnPipPip    178                 if (p >= 48.)      pp_nnPipPipPipPim();
179                 else if (p >= 42.) pp_nnPipPip    179                 else if (p >= 42.) pp_nnPipPipPi0Pi0();
180                 else if (p >= 36.) pp_pnPipPip    180                 else if (p >= 36.) pp_pnPipPipPi0Pim();
181                 else if (p >= 33.) pp_pnPipPi0    181                 else if (p >= 33.) pp_pnPipPi0Pi0Pi0();
182                 else if (p >= 19.) pp_ppPipPip    182                 else if (p >= 19.) pp_ppPipPipPimPim();
183                 else if (p >= 4.)  pp_ppPipPi0    183                 else if (p >= 4.)  pp_ppPipPi0Pi0Pim();
184                 else              pp_ppPi0Pi0P    184                 else              pp_ppPi0Pi0Pi0Pi0();
185             }                                     185             }
186             else if (itot == -2) {                186             else if (itot == -2) {
187                 if (p >= 48.)      nn_ppPipPim    187                 if (p >= 48.)      nn_ppPipPimPimPim();
188                 else if (p >= 42.) nn_ppPi0Pi0    188                 else if (p >= 42.) nn_ppPi0Pi0PimPim();
189                 else if (p >= 36.) nn_pnPipPi0    189                 else if (p >= 36.) nn_pnPipPi0PimPim();
190                 else if (p >= 33.) nn_pnPi0Pi0    190                 else if (p >= 33.) nn_pnPi0Pi0Pi0Pim();
191                 else if (p >= 19.) nn_nnPipPip    191                 else if (p >= 19.) nn_nnPipPipPimPim();
192                 else if (p >= 4.)  nn_nnPipPi0    192                 else if (p >= 4.)  nn_nnPipPi0Pi0Pim();
193                 else              nn_nnPi0Pi0P    193                 else              nn_nnPi0Pi0Pi0Pi0();
194             }                                     194             }
195             else {                                195             else {
196                 G4double pp=Random::shoot();      196                 G4double pp=Random::shoot();
197                 if (pp > 0.5) {                   197                 if (pp > 0.5) {
198                     p=9.*rjcd;                    198                     p=9.*rjcd;
199                     if (p < 1.)      pn_pnPi0P    199                     if (p < 1.)      pn_pnPi0Pi0Pi0Pi0();
200                     else if (p < 5.) pn_pnPipP    200                     else if (p < 5.) pn_pnPipPi0Pi0Pim();
201                     else            pn_pnPipPi    201                     else            pn_pnPipPipPimPim();
202                 }                                 202                 }
203                 else {                            203                 else {
204                     if (p < 3.)       pn_ppPi0    204                     if (p < 3.)       pn_ppPi0Pi0Pi0Pim();
205                     else if (p < 9.)  pn_ppPip    205                     else if (p < 9.)  pn_ppPipPi0PimPim();
206                     else if (p < 15.) pn_pnPi0    206                     else if (p < 15.) pn_pnPi0Pi0Pi0Pi0();
207                     else if (p < 35.) pn_pnPip    207                     else if (p < 35.) pn_pnPipPi0Pi0Pim();
208                     else if (p < 51.) pn_pnPip    208                     else if (p < 51.) pn_pnPipPipPimPim();
209                     else if (p < 54.) pn_nnPip    209                     else if (p < 54.) pn_nnPipPi0Pi0Pi0();
210                     else             pn_nnPipP    210                     else             pn_nnPipPipPi0Pim();
211                 }                                 211                 }
212             }                                     212             }
213         }                                         213         }
214                                                   214 
215         std::shuffle(isosp,isosp+npion,Random: << 215         std::random_shuffle(isosp,isosp+npion,Random::getAdapter());
216         inter2Part(0.5);                          216         inter2Part(0.5);
217     }                                             217     }
218                                                   218 
219                                                   219 
220     void NNEtaToMultiPionsChannel::pn_ppPim()     220     void NNEtaToMultiPionsChannel::pn_ppPim() {
221         isosp[0]=-2;                              221         isosp[0]=-2;
222         iso1=1;                                   222         iso1=1;
223         iso2=1;                                   223         iso2=1;
224     }                                             224     }
225     void NNEtaToMultiPionsChannel::pn_pnPi0()     225     void NNEtaToMultiPionsChannel::pn_pnPi0() {
226         isosp[0]=0;                               226         isosp[0]=0;
227     }                                             227     }
228     void NNEtaToMultiPionsChannel::pn_nnPip()     228     void NNEtaToMultiPionsChannel::pn_nnPip() {
229         isosp[0]=2;                               229         isosp[0]=2;
230         iso1=-1;                                  230         iso1=-1;
231         iso2=-1;                                  231         iso2=-1;
232     }                                             232     }
233     void NNEtaToMultiPionsChannel::pp_nnPipPip    233     void NNEtaToMultiPionsChannel::pp_nnPipPip() {
234         isosp[0]=2;                               234         isosp[0]=2;
235         isosp[1]=2;                               235         isosp[1]=2;
236         iso1=-1;                                  236         iso1=-1;
237         iso2=-1;                                  237         iso2=-1;
238     }                                             238     }
239     void NNEtaToMultiPionsChannel::nn_ppPimPim    239     void NNEtaToMultiPionsChannel::nn_ppPimPim() {
240         isosp[0]=-2;                              240         isosp[0]=-2;
241         isosp[1]=-2;                              241         isosp[1]=-2;
242         iso1=1;                                   242         iso1=1;
243         iso2=1;                                   243         iso2=1;
244     }                                             244     }
245     void NNEtaToMultiPionsChannel::pn_pnPipPim    245     void NNEtaToMultiPionsChannel::pn_pnPipPim() {
246         isosp[0]=2;                               246         isosp[0]=2;
247         isosp[1]=-2;                              247         isosp[1]=-2;
248     }                                             248     }
249     void NNEtaToMultiPionsChannel::pn_pnPi0Pi0    249     void NNEtaToMultiPionsChannel::pn_pnPi0Pi0() {
250         isosp[0]=0;                               250         isosp[0]=0;
251         isosp[1]=0;                               251         isosp[1]=0;
252     }                                             252     }
253     void NNEtaToMultiPionsChannel::pp_ppPipPim    253     void NNEtaToMultiPionsChannel::pp_ppPipPim() {
254         isosp[0]=2;                               254         isosp[0]=2;
255         isosp[1]=-2;                              255         isosp[1]=-2;
256     }                                             256     }
257     void NNEtaToMultiPionsChannel::nn_nnPipPim    257     void NNEtaToMultiPionsChannel::nn_nnPipPim() {
258         isosp[0]=2;                               258         isosp[0]=2;
259         isosp[1]=-2;                              259         isosp[1]=-2;
260     }                                             260     }
261     void NNEtaToMultiPionsChannel::pp_ppPi0Pi0    261     void NNEtaToMultiPionsChannel::pp_ppPi0Pi0() {
262         isosp[0]=0;                               262         isosp[0]=0;
263         isosp[1]=0;                               263         isosp[1]=0;
264     }                                             264     }
265     void NNEtaToMultiPionsChannel::nn_nnPi0Pi0    265     void NNEtaToMultiPionsChannel::nn_nnPi0Pi0() {
266         isosp[0]=0;                               266         isosp[0]=0;
267         isosp[1]=0;                               267         isosp[1]=0;
268     }                                             268     }
269     void NNEtaToMultiPionsChannel::pp_pnPipPi0    269     void NNEtaToMultiPionsChannel::pp_pnPipPi0() {
270         isosp[0]=2;                               270         isosp[0]=2;
271         isosp[1]=0;                               271         isosp[1]=0;
272         iso1=1;                                   272         iso1=1;
273         iso2=-1;                                  273         iso2=-1;
274     }                                             274     }
275     void NNEtaToMultiPionsChannel::pn_ppPimPi0    275     void NNEtaToMultiPionsChannel::pn_ppPimPi0() {
276         isosp[0]=-2;                              276         isosp[0]=-2;
277         isosp[1]=0;                               277         isosp[1]=0;
278         iso1=1;                                   278         iso1=1;
279         iso2=1;                                   279         iso2=1;
280     }                                             280     }
281     void NNEtaToMultiPionsChannel::pn_nnPipPi0    281     void NNEtaToMultiPionsChannel::pn_nnPipPi0() {
282         isosp[0]=2;                               282         isosp[0]=2;
283         isosp[1]=0;                               283         isosp[1]=0;
284         iso1=-1;                                  284         iso1=-1;
285         iso2=-1;                                  285         iso2=-1;
286     }                                             286     }
287     void NNEtaToMultiPionsChannel::nn_pnPimPi0    287     void NNEtaToMultiPionsChannel::nn_pnPimPi0() {
288         isosp[0]=-2;                              288         isosp[0]=-2;
289         isosp[1]=0;                               289         isosp[1]=0;
290         iso1=1;                                   290         iso1=1;
291         iso2=-1;                                  291         iso2=-1;
292     }                                             292     }
293     void NNEtaToMultiPionsChannel::pp_pnPipPi0    293     void NNEtaToMultiPionsChannel::pp_pnPipPi0Pi0() {
294         isosp[0]=2;                               294         isosp[0]=2;
295         isosp[1]=0;                               295         isosp[1]=0;
296         isosp[2]=0;                               296         isosp[2]=0;
297         iso1=1;                                   297         iso1=1;
298         iso2=-1;                                  298         iso2=-1;
299     }                                             299     }
300     void NNEtaToMultiPionsChannel::nn_pnPimPi0    300     void NNEtaToMultiPionsChannel::nn_pnPimPi0Pi0() {
301         isosp[0]=-2;                              301         isosp[0]=-2;
302         isosp[1]=0;                               302         isosp[1]=0;
303         isosp[2]=0;                               303         isosp[2]=0;
304         iso1=1;                                   304         iso1=1;
305         iso2=-1;                                  305         iso2=-1;
306     }                                             306     }
307     void NNEtaToMultiPionsChannel::pn_nnPipPi0    307     void NNEtaToMultiPionsChannel::pn_nnPipPi0Pi0() {
308         isosp[0]=2;                               308         isosp[0]=2;
309         isosp[1]=0;                               309         isosp[1]=0;
310         isosp[2]=0;                               310         isosp[2]=0;
311         iso1=-1;                                  311         iso1=-1;
312         iso2=-1;                                  312         iso2=-1;
313     }                                             313     }
314     void NNEtaToMultiPionsChannel::pp_ppPipPim    314     void NNEtaToMultiPionsChannel::pp_ppPipPimPi0() {
315         isosp[0]=2;                               315         isosp[0]=2;
316         isosp[1]=-2;                              316         isosp[1]=-2;
317         isosp[2]=0;                               317         isosp[2]=0;
318     }                                             318     }
319     void NNEtaToMultiPionsChannel::nn_nnPipPim    319     void NNEtaToMultiPionsChannel::nn_nnPipPimPi0() {
320         isosp[0]=2;                               320         isosp[0]=2;
321         isosp[1]=-2;                              321         isosp[1]=-2;
322         isosp[2]=0;                               322         isosp[2]=0;
323     }                                             323     }
324     void NNEtaToMultiPionsChannel::pp_ppPi0Pi0    324     void NNEtaToMultiPionsChannel::pp_ppPi0Pi0Pi0() {
325         isosp[0]=0;                               325         isosp[0]=0;
326         isosp[1]=0;                               326         isosp[1]=0;
327         isosp[2]=0;                               327         isosp[2]=0;
328     }                                             328     }
329     void NNEtaToMultiPionsChannel::nn_nnPi0Pi0    329     void NNEtaToMultiPionsChannel::nn_nnPi0Pi0Pi0() {
330         isosp[0]=0;                               330         isosp[0]=0;
331         isosp[1]=0;                               331         isosp[1]=0;
332         isosp[2]=0;                               332         isosp[2]=0;
333     }                                             333     }
334     void NNEtaToMultiPionsChannel::pp_pnPipPip    334     void NNEtaToMultiPionsChannel::pp_pnPipPipPim() {
335         isosp[0]=2;                               335         isosp[0]=2;
336         isosp[1]=2;                               336         isosp[1]=2;
337         isosp[2]=-2;                              337         isosp[2]=-2;
338         iso1=1;                                   338         iso1=1;
339         iso2=-1;                                  339         iso2=-1;
340     }                                             340     }
341     void NNEtaToMultiPionsChannel::pp_nnPipPip    341     void NNEtaToMultiPionsChannel::pp_nnPipPipPi0() {
342         isosp[0]=2;                               342         isosp[0]=2;
343         isosp[1]=2;                               343         isosp[1]=2;
344         isosp[2]=0;                               344         isosp[2]=0;
345         iso1=-1;                                  345         iso1=-1;
346         iso2=-1;                                  346         iso2=-1;
347     }                                             347     }
348     void NNEtaToMultiPionsChannel::pn_ppPimPi0    348     void NNEtaToMultiPionsChannel::pn_ppPimPi0Pi0() {
349         isosp[0]=-2;                              349         isosp[0]=-2;
350         isosp[1]=0;                               350         isosp[1]=0;
351         isosp[2]=0;                               351         isosp[2]=0;
352         iso1=1;                                   352         iso1=1;
353         iso2=1;                                   353         iso2=1;
354     }                                             354     }
355     void NNEtaToMultiPionsChannel::pn_ppPimPim    355     void NNEtaToMultiPionsChannel::pn_ppPimPimPip() {
356         isosp[0]=-2;                              356         isosp[0]=-2;
357         isosp[1]=-2;                              357         isosp[1]=-2;
358         isosp[2]=2;                               358         isosp[2]=2;
359         iso1=1;                                   359         iso1=1;
360         iso2=1;                                   360         iso2=1;
361     }                                             361     }
362     void NNEtaToMultiPionsChannel::pn_pnPi0Pip    362     void NNEtaToMultiPionsChannel::pn_pnPi0PipPim() {
363         isosp[0]=0;                               363         isosp[0]=0;
364         isosp[1]=2;                               364         isosp[1]=2;
365         isosp[2]=-2;                              365         isosp[2]=-2;
366     }                                             366     }
367     void NNEtaToMultiPionsChannel::pn_pnPi0Pi0    367     void NNEtaToMultiPionsChannel::pn_pnPi0Pi0Pi0() {
368         isosp[0]=0;                               368         isosp[0]=0;
369         isosp[1]=0;                               369         isosp[1]=0;
370         isosp[2]=0;                               370         isosp[2]=0;
371     }                                             371     }
372     void NNEtaToMultiPionsChannel::pn_nnPipPip    372     void NNEtaToMultiPionsChannel::pn_nnPipPipPim() {
373         isosp[0]=2;                               373         isosp[0]=2;
374         isosp[1]=2;                               374         isosp[1]=2;
375         isosp[2]=-2;                              375         isosp[2]=-2;
376         iso1=-1;                                  376         iso1=-1;
377         iso2=-1;                                  377         iso2=-1;
378     }                                             378     }
379     void NNEtaToMultiPionsChannel::nn_pnPipPim    379     void NNEtaToMultiPionsChannel::nn_pnPipPimPim() {
380         isosp[0]=2;                               380         isosp[0]=2;
381         isosp[1]=-2;                              381         isosp[1]=-2;
382         isosp[2]=-2;                              382         isosp[2]=-2;
383         iso1=1;                                   383         iso1=1;
384         iso2=-1;                                  384         iso2=-1;
385     }                                             385     }
386     void NNEtaToMultiPionsChannel::nn_ppPimPim    386     void NNEtaToMultiPionsChannel::nn_ppPimPimPi0() {
387         isosp[0]=-2;                              387         isosp[0]=-2;
388         isosp[1]=-2;                              388         isosp[1]=-2;
389         isosp[2]=0;                               389         isosp[2]=0;
390         iso1=1;                                   390         iso1=1;
391         iso2=1;                                   391         iso2=1;
392     }                                             392     }
393     void NNEtaToMultiPionsChannel::pp_nnPipPip    393     void NNEtaToMultiPionsChannel::pp_nnPipPipPi0Pi0() {
394         isosp[0]=2;                               394         isosp[0]=2;
395         isosp[1]=2;                               395         isosp[1]=2;
396         isosp[2]=0;                               396         isosp[2]=0;
397         isosp[3]=0;                               397         isosp[3]=0;
398         iso1=-1;                                  398         iso1=-1;
399         iso2=-1;                                  399         iso2=-1;
400     }                                             400     }
401     void NNEtaToMultiPionsChannel::pp_nnPipPip    401     void NNEtaToMultiPionsChannel::pp_nnPipPipPipPim() {
402         isosp[0]=2;                               402         isosp[0]=2;
403         isosp[1]=2;                               403         isosp[1]=2;
404         isosp[2]=2;                               404         isosp[2]=2;
405         isosp[3]=-2;                              405         isosp[3]=-2;
406         iso1=-1;                                  406         iso1=-1;
407         iso2=-1;                                  407         iso2=-1;
408     }                                             408     }
409     void NNEtaToMultiPionsChannel::nn_ppPi0Pi0    409     void NNEtaToMultiPionsChannel::nn_ppPi0Pi0PimPim() {
410         isosp[0]=0;                               410         isosp[0]=0;
411         isosp[1]=0;                               411         isosp[1]=0;
412         isosp[2]=-2;                              412         isosp[2]=-2;
413         isosp[3]=-2;                              413         isosp[3]=-2;
414         iso1=1;                                   414         iso1=1;
415         iso2=1;                                   415         iso2=1;
416     }                                             416     }
417     void NNEtaToMultiPionsChannel::nn_ppPipPim    417     void NNEtaToMultiPionsChannel::nn_ppPipPimPimPim() {
418         isosp[0]=2;                               418         isosp[0]=2;
419         isosp[1]=-2;                              419         isosp[1]=-2;
420         isosp[2]=-2;                              420         isosp[2]=-2;
421         isosp[3]=-2;                              421         isosp[3]=-2;
422         iso1=1;                                   422         iso1=1;
423         iso2=1;                                   423         iso2=1;
424     }                                             424     }
425     void NNEtaToMultiPionsChannel::pp_ppPi0Pi0    425     void NNEtaToMultiPionsChannel::pp_ppPi0Pi0Pi0Pi0() {
426         isosp[0]=0;                               426         isosp[0]=0;
427         isosp[1]=0;                               427         isosp[1]=0;
428         isosp[2]=0;                               428         isosp[2]=0;
429         isosp[3]=0;                               429         isosp[3]=0;
430     }                                             430     }
431     void NNEtaToMultiPionsChannel::nn_nnPi0Pi0    431     void NNEtaToMultiPionsChannel::nn_nnPi0Pi0Pi0Pi0() {
432         isosp[0]=0;                               432         isosp[0]=0;
433         isosp[1]=0;                               433         isosp[1]=0;
434         isosp[2]=0;                               434         isosp[2]=0;
435         isosp[3]=0;                               435         isosp[3]=0;
436     }                                             436     }
437     void NNEtaToMultiPionsChannel::pn_pnPi0Pi0    437     void NNEtaToMultiPionsChannel::pn_pnPi0Pi0Pi0Pi0() {
438         isosp[0]=0;                               438         isosp[0]=0;
439         isosp[1]=0;                               439         isosp[1]=0;
440         isosp[2]=0;                               440         isosp[2]=0;
441         isosp[3]=0;                               441         isosp[3]=0;
442     }                                             442     }
443     void NNEtaToMultiPionsChannel::pp_ppPipPi0    443     void NNEtaToMultiPionsChannel::pp_ppPipPi0Pi0Pim() {
444         isosp[0]=2;                               444         isosp[0]=2;
445         isosp[1]=0;                               445         isosp[1]=0;
446         isosp[2]=0;                               446         isosp[2]=0;
447         isosp[3]=-2;                              447         isosp[3]=-2;
448     }                                             448     }
449     void NNEtaToMultiPionsChannel::nn_nnPipPi0    449     void NNEtaToMultiPionsChannel::nn_nnPipPi0Pi0Pim() {
450         isosp[0]=2;                               450         isosp[0]=2;
451         isosp[1]=0;                               451         isosp[1]=0;
452         isosp[2]=0;                               452         isosp[2]=0;
453         isosp[3]=-2;                              453         isosp[3]=-2;
454     }                                             454     }
455     void NNEtaToMultiPionsChannel::pn_pnPipPi0    455     void NNEtaToMultiPionsChannel::pn_pnPipPi0Pi0Pim() {
456         isosp[0]=2;                               456         isosp[0]=2;
457         isosp[1]=0;                               457         isosp[1]=0;
458         isosp[2]=0;                               458         isosp[2]=0;
459         isosp[3]=-2;                              459         isosp[3]=-2;
460     }                                             460     }
461     void NNEtaToMultiPionsChannel::pp_ppPipPip    461     void NNEtaToMultiPionsChannel::pp_ppPipPipPimPim() {
462         isosp[0]=2;                               462         isosp[0]=2;
463         isosp[1]=2;                               463         isosp[1]=2;
464         isosp[2]=-2;                              464         isosp[2]=-2;
465         isosp[3]=-2;                              465         isosp[3]=-2;
466     }                                             466     }
467     void NNEtaToMultiPionsChannel::nn_nnPipPip    467     void NNEtaToMultiPionsChannel::nn_nnPipPipPimPim() {
468         isosp[0]=2;                               468         isosp[0]=2;
469         isosp[1]=2;                               469         isosp[1]=2;
470         isosp[2]=-2;                              470         isosp[2]=-2;
471         isosp[3]=-2;                              471         isosp[3]=-2;
472     }                                             472     }
473     void NNEtaToMultiPionsChannel::pn_pnPipPip    473     void NNEtaToMultiPionsChannel::pn_pnPipPipPimPim() {
474         isosp[0]=2;                               474         isosp[0]=2;
475         isosp[1]=2;                               475         isosp[1]=2;
476         isosp[2]=-2;                              476         isosp[2]=-2;
477         isosp[3]=-2;                              477         isosp[3]=-2;
478     }                                             478     }
479     void NNEtaToMultiPionsChannel::pp_pnPipPi0    479     void NNEtaToMultiPionsChannel::pp_pnPipPi0Pi0Pi0() {
480         isosp[0]=2;                               480         isosp[0]=2;
481         isosp[1]=0;                               481         isosp[1]=0;
482         isosp[2]=0;                               482         isosp[2]=0;
483         isosp[3]=0;                               483         isosp[3]=0;
484         iso1=1;                                   484         iso1=1;
485         iso2=-1;                                  485         iso2=-1;
486     }                                             486     }
487     void NNEtaToMultiPionsChannel::pn_nnPipPi0    487     void NNEtaToMultiPionsChannel::pn_nnPipPi0Pi0Pi0() {
488         isosp[0]=2;                               488         isosp[0]=2;
489         isosp[1]=0;                               489         isosp[1]=0;
490         isosp[2]=0;                               490         isosp[2]=0;
491         isosp[3]=0;                               491         isosp[3]=0;
492         iso1=-1;                                  492         iso1=-1;
493         iso2=-1;                                  493         iso2=-1;
494     }                                             494     }
495     void NNEtaToMultiPionsChannel::pp_nnPipPi0    495     void NNEtaToMultiPionsChannel::pp_nnPipPi0Pi0Pi0() {
496         isosp[0]=2;                               496         isosp[0]=2;
497         isosp[1]=0;                               497         isosp[1]=0;
498         isosp[2]=0;                               498         isosp[2]=0;
499         isosp[3]=0;                               499         isosp[3]=0;
500         iso1=-1;                                  500         iso1=-1;
501         iso2=-1;                                  501         iso2=-1;
502     }                                             502     }
503     void NNEtaToMultiPionsChannel::pp_pnPipPip    503     void NNEtaToMultiPionsChannel::pp_pnPipPipPi0Pim() {
504         isosp[0]=2;                               504         isosp[0]=2;
505         isosp[1]=2;                               505         isosp[1]=2;
506         isosp[2]=0;                               506         isosp[2]=0;
507         isosp[3]=-2;                              507         isosp[3]=-2;
508         iso1=1;                                   508         iso1=1;
509         iso2=-1;                                  509         iso2=-1;
510     }                                             510     }
511     void NNEtaToMultiPionsChannel::pn_nnPipPip    511     void NNEtaToMultiPionsChannel::pn_nnPipPipPi0Pim() {
512         isosp[0]=2;                               512         isosp[0]=2;
513         isosp[1]=2;                               513         isosp[1]=2;
514         isosp[2]=0;                               514         isosp[2]=0;
515         isosp[3]=-2;                              515         isosp[3]=-2;
516         iso1=-1;                                  516         iso1=-1;
517         iso2=-1;                                  517         iso2=-1;
518     }                                             518     }
519     void NNEtaToMultiPionsChannel::pp_nnPipPip    519     void NNEtaToMultiPionsChannel::pp_nnPipPipPi0Pim() {
520         isosp[0]=2;                               520         isosp[0]=2;
521         isosp[1]=2;                               521         isosp[1]=2;
522         isosp[2]=0;                               522         isosp[2]=0;
523         isosp[3]=-2;                              523         isosp[3]=-2;
524         iso1=-1;                                  524         iso1=-1;
525         iso2=-1;                                  525         iso2=-1;
526     }                                             526     }
527     void NNEtaToMultiPionsChannel::nn_pnPi0Pi0    527     void NNEtaToMultiPionsChannel::nn_pnPi0Pi0Pi0Pim() {
528         isosp[0]=0;                               528         isosp[0]=0;
529         isosp[1]=0;                               529         isosp[1]=0;
530         isosp[2]=0;                               530         isosp[2]=0;
531         isosp[3]=-2;                              531         isosp[3]=-2;
532         iso1=1;                                   532         iso1=1;
533         iso2=-1;                                  533         iso2=-1;
534     }                                             534     }
535     void NNEtaToMultiPionsChannel::pn_ppPi0Pi0    535     void NNEtaToMultiPionsChannel::pn_ppPi0Pi0Pi0Pim() {
536         isosp[0]=0;                               536         isosp[0]=0;
537         isosp[1]=0;                               537         isosp[1]=0;
538         isosp[2]=0;                               538         isosp[2]=0;
539         isosp[3]=-2;                              539         isosp[3]=-2;
540         iso1=1;                                   540         iso1=1;
541         iso2=1;                                   541         iso2=1;
542     }                                             542     }
543     void NNEtaToMultiPionsChannel::nn_pnPipPi0    543     void NNEtaToMultiPionsChannel::nn_pnPipPi0PimPim() {
544         isosp[0]=2;                               544         isosp[0]=2;
545         isosp[1]=0;                               545         isosp[1]=0;
546         isosp[2]=-2;                              546         isosp[2]=-2;
547         isosp[3]=-2;                              547         isosp[3]=-2;
548         iso1=1;                                   548         iso1=1;
549         iso2=-1;                                  549         iso2=-1;
550     }                                             550     }
551     void NNEtaToMultiPionsChannel::pn_ppPipPi0    551     void NNEtaToMultiPionsChannel::pn_ppPipPi0PimPim() {
552         isosp[0]=2;                               552         isosp[0]=2;
553         isosp[1]=0;                               553         isosp[1]=0;
554         isosp[2]=-2;                              554         isosp[2]=-2;
555         isosp[3]=-2;                              555         isosp[3]=-2;
556         iso1=1;                                   556         iso1=1;
557         iso2=1;                                   557         iso2=1;
558     }                                             558     }
559                                                   559 
560     void NNEtaToMultiPionsChannel::inter2Part(    560     void NNEtaToMultiPionsChannel::inter2Part(const G4double p) {
561                                                   561 
562         if (Random::shoot() < p) std::swap(iso    562         if (Random::shoot() < p) std::swap(iso1,iso2);
563                                                   563 
564     }                                             564     }
565                                                   565 
566                                                   566 
567 }                                                 567 }
568                                                   568