Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/models/inclxx/incl_physics/src/G4INCLNNToMultiPionsChannel.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/G4INCLNNToMultiPionsChannel.cc (Version 11.3.0) and /processes/hadronic/models/inclxx/incl_physics/src/G4INCLNNToMultiPionsChannel.cc (Version 11.2.1)


  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 "G4INCLNNToMultiPionsChannel.hh"          38 #include "G4INCLNNToMultiPionsChannel.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 NNToMultiPionsChannel::angula     49   const G4double NNToMultiPionsChannel::angularSlope = 6.;
 50                                                    50 
 51   NNToMultiPionsChannel::NNToMultiPionsChannel     51   NNToMultiPionsChannel::NNToMultiPionsChannel(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   NNToMultiPionsChannel::~NNToMultiPionsChanne     61   NNToMultiPionsChannel::~NNToMultiPionsChannel(){
 62                                                    62 
 63   }                                                63   }
 64                                                    64 
 65   void NNToMultiPionsChannel::fillFinalState(F     65   void NNToMultiPionsChannel::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                                                    93 
 94       const G4double sqrtS = KinematicsUtils::     94       const G4double sqrtS = KinematicsUtils::totalEnergyInCM(particle1, particle2);
 95       G4int biasIndex = ((Random::shoot()<0.5)     95       G4int biasIndex = ((Random::shoot()<0.5) ? 0 : 1);
 96       PhaseSpaceGenerator::generateBiased(sqrt     96       PhaseSpaceGenerator::generateBiased(sqrtS, list, biasIndex, angularSlope);
 97                                                    97 
 98   }                                                98   }
 99                                                    99 
100     void NNToMultiPionsChannel::isospinReparti    100     void NNToMultiPionsChannel::isospinRepartition() {
101         const G4double rjcd=Random::shoot();      101         const G4double rjcd=Random::shoot();
102         G4double p;                               102         G4double p;
103         const G4int itot=iso1+iso2;               103         const G4int itot=iso1+iso2;
104                                                   104 
105         if (npion == 1) {                         105         if (npion == 1) {
106             p=3.*rjcd;                            106             p=3.*rjcd;
107             if (p < 1.)      pn_ppPim();          107             if (p < 1.)      pn_ppPim();
108             else if (p < 2.) pn_pnPi0();          108             else if (p < 2.) pn_pnPi0();
109             else            pn_nnPip();           109             else            pn_nnPip();
110         }                                         110         }
111         else if (npion == 2) {                    111         else if (npion == 2) {
112             if (itot == 2) {                      112             if (itot == 2) {
113                 p=20.*rjcd;                       113                 p=20.*rjcd;
114                 if (p >= 14.)      pp_nnPipPip    114                 if (p >= 14.)      pp_nnPipPip();
115                 else if (p >= 11.) pp_pnPipPi0    115                 else if (p >= 11.) pp_pnPipPi0();
116                 else if (p >= 7.)  pp_ppPi0Pi0    116                 else if (p >= 7.)  pp_ppPi0Pi0();
117                 else              pp_ppPipPim(    117                 else              pp_ppPipPim();
118             }                                     118             }
119             else if (itot == -2) {                119             else if (itot == -2) {
120                 p=20.*rjcd;                       120                 p=20.*rjcd;
121                 if (p >= 14.)      nn_ppPimPim    121                 if (p >= 14.)      nn_ppPimPim();
122                 else if (p >= 11.) nn_pnPimPi0    122                 else if (p >= 11.) nn_pnPimPi0();
123                 else if (p >= 7.)  nn_nnPi0Pi0    123                 else if (p >= 7.)  nn_nnPi0Pi0();
124                 else              nn_nnPipPim(    124                 else              nn_nnPipPim();
125             }                                     125             }
126             else  {                               126             else  {
127                 G4double pp=Random::shoot();      127                 G4double pp=Random::shoot();
128                 if (pp > 0.5) {                   128                 if (pp > 0.5) {
129                     p=3.*rjcd;                    129                     p=3.*rjcd;
130                     if (p < 2.) {                 130                     if (p < 2.) {
131                         pn_pnPipPim();            131                         pn_pnPipPim();
132                     }                             132                     }
133                     else {                        133                     else {
134                         pn_pnPi0Pi0();            134                         pn_pnPi0Pi0();
135                     }                             135                     }
136                 }                                 136                 }
137                 else {                            137                 else {
138                     p=60.*rjcd;                   138                     p=60.*rjcd;
139                     if (p >= 51.)      pn_nnPi    139                     if (p >= 51.)      pn_nnPipPi0();
140                     else if (p >= 33.) pn_pnPi    140                     else if (p >= 33.) pn_pnPi0Pi0();
141                     else if (p >= 9.)  pn_pnPi    141                     else if (p >= 9.)  pn_pnPipPim();
142                     else              pn_ppPim    142                     else              pn_ppPimPi0();
143                 }                                 143                 }
144             }                                     144             }
145         }                                         145         }
146         else if (npion == 3) {                    146         else if (npion == 3) {
147             p=60.*rjcd;                           147             p=60.*rjcd;
148             if (itot == 2) {                      148             if (itot == 2) {
149                 if (p >= 42.)      pp_nnPipPip    149                 if (p >= 42.)      pp_nnPipPipPi0();
150                 else if (p >= 39.) pp_pnPipPi0    150                 else if (p >= 39.) pp_pnPipPi0Pi0();
151                 else if (p >= 33.) pp_pnPipPip    151                 else if (p >= 33.) pp_pnPipPipPim();
152                 else if (p >= 22.) pp_ppPi0Pi0    152                 else if (p >= 22.) pp_ppPi0Pi0Pi0();
153                 else              pp_ppPipPimP    153                 else              pp_ppPipPimPi0();
154             }                                     154             }
155             else if (itot == -2) {                155             else if (itot == -2) {
156                 if (p >= 42.)      nn_ppPimPim    156                 if (p >= 42.)      nn_ppPimPimPi0();
157                 else if (p >= 39.) nn_pnPimPi0    157                 else if (p >= 39.) nn_pnPimPi0Pi0();
158                 else if (p >= 33.) nn_pnPipPim    158                 else if (p >= 33.) nn_pnPipPimPim();
159                 else if (p >= 22.) nn_nnPi0Pi0    159                 else if (p >= 22.) nn_nnPi0Pi0Pi0();
160                 else              nn_nnPipPimP    160                 else              nn_nnPipPimPi0();
161             }                                     161             }
162             else {                                162             else {
163                 if (p >= 57.)      pn_nnPipPi0    163                 if (p >= 57.)      pn_nnPipPi0Pi0();
164                 else if (p >= 51.) pn_nnPipPip    164                 else if (p >= 51.) pn_nnPipPipPim();
165                 else if (p >= 37.) pn_pnPi0Pi0    165                 else if (p >= 37.) pn_pnPi0Pi0Pi0();
166                 else if (p >= 9.)  pn_pnPi0Pip    166                 else if (p >= 9.)  pn_pnPi0PipPim();
167                 else if (p >= 6.)  pn_ppPimPi0    167                 else if (p >= 6.)  pn_ppPimPi0Pi0();
168                 else              pn_ppPimPimP    168                 else              pn_ppPimPimPip();
169                                                   169 
170             }                                     170             }
171         }                                         171         }
172         else if (npion == 4) {                    172         else if (npion == 4) {
173             p=60.*rjcd;                           173             p=60.*rjcd;
174             if (itot == 2) {                      174             if (itot == 2) {
175                 if (p >= 48.)      pp_nnPipPip    175                 if (p >= 48.)      pp_nnPipPipPipPim();
176                 else if (p >= 42.) pp_nnPipPip    176                 else if (p >= 42.) pp_nnPipPipPi0Pi0();
177                 else if (p >= 36.) pp_pnPipPip    177                 else if (p >= 36.) pp_pnPipPipPi0Pim();
178                 else if (p >= 33.) pp_pnPipPi0    178                 else if (p >= 33.) pp_pnPipPi0Pi0Pi0();
179                 else if (p >= 19.) pp_ppPipPip    179                 else if (p >= 19.) pp_ppPipPipPimPim();
180                 else if (p >= 4.)  pp_ppPipPi0    180                 else if (p >= 4.)  pp_ppPipPi0Pi0Pim();
181                 else              pp_ppPi0Pi0P    181                 else              pp_ppPi0Pi0Pi0Pi0();
182             }                                     182             }
183             else if (itot == -2) {                183             else if (itot == -2) {
184                 if (p >= 48.)      nn_ppPipPim    184                 if (p >= 48.)      nn_ppPipPimPimPim();
185                 else if (p >= 42.) nn_ppPi0Pi0    185                 else if (p >= 42.) nn_ppPi0Pi0PimPim();
186                 else if (p >= 36.) nn_pnPipPi0    186                 else if (p >= 36.) nn_pnPipPi0PimPim();
187                 else if (p >= 33.) nn_pnPi0Pi0    187                 else if (p >= 33.) nn_pnPi0Pi0Pi0Pim();
188                 else if (p >= 19.) nn_nnPipPip    188                 else if (p >= 19.) nn_nnPipPipPimPim();
189                 else if (p >= 4.)  nn_nnPipPi0    189                 else if (p >= 4.)  nn_nnPipPi0Pi0Pim();
190                 else              nn_nnPi0Pi0P    190                 else              nn_nnPi0Pi0Pi0Pi0();
191             }                                     191             }
192             else {                                192             else {
193                 G4double pp=Random::shoot();      193                 G4double pp=Random::shoot();
194                 if (pp > 0.5) {                   194                 if (pp > 0.5) {
195                     p=9.*rjcd;                    195                     p=9.*rjcd;
196                     if (p < 1.)      pn_pnPi0P    196                     if (p < 1.)      pn_pnPi0Pi0Pi0Pi0();
197                     else if (p < 5.) pn_pnPipP    197                     else if (p < 5.) pn_pnPipPi0Pi0Pim();
198                     else            pn_pnPipPi    198                     else            pn_pnPipPipPimPim();
199                 }                                 199                 }
200                 else {                            200                 else {
201                     if (p < 3.)       pn_ppPi0    201                     if (p < 3.)       pn_ppPi0Pi0Pi0Pim();
202                     else if (p < 9.)  pn_ppPip    202                     else if (p < 9.)  pn_ppPipPi0PimPim();
203                     else if (p < 15.) pn_pnPi0    203                     else if (p < 15.) pn_pnPi0Pi0Pi0Pi0();
204                     else if (p < 35.) pn_pnPip    204                     else if (p < 35.) pn_pnPipPi0Pi0Pim();
205                     else if (p < 51.) pn_pnPip    205                     else if (p < 51.) pn_pnPipPipPimPim();
206                     else if (p < 54.) pn_nnPip    206                     else if (p < 54.) pn_nnPipPi0Pi0Pi0();
207                     else             pn_nnPipP    207                     else             pn_nnPipPipPi0Pim();
208                 }                                 208                 }
209             }                                     209             }
210         }                                         210         }
211                                                   211 
212         std::shuffle(isosp,isosp+npion,Random:    212         std::shuffle(isosp,isosp+npion,Random::getAdapter());
213         inter2Part(0.5);                          213         inter2Part(0.5);
214     }                                             214     }
215                                                   215 
216                                                   216 
217     void NNToMultiPionsChannel::pn_ppPim() {      217     void NNToMultiPionsChannel::pn_ppPim() {
218         isosp[0]=-2;                              218         isosp[0]=-2;
219         iso1=1;                                   219         iso1=1;
220         iso2=1;                                   220         iso2=1;
221     }                                             221     }
222     void NNToMultiPionsChannel::pn_pnPi0() {      222     void NNToMultiPionsChannel::pn_pnPi0() {
223         isosp[0]=0;                               223         isosp[0]=0;
224     }                                             224     }
225     void NNToMultiPionsChannel::pn_nnPip() {      225     void NNToMultiPionsChannel::pn_nnPip() {
226         isosp[0]=2;                               226         isosp[0]=2;
227         iso1=-1;                                  227         iso1=-1;
228         iso2=-1;                                  228         iso2=-1;
229     }                                             229     }
230     void NNToMultiPionsChannel::pp_nnPipPip()     230     void NNToMultiPionsChannel::pp_nnPipPip() {
231         isosp[0]=2;                               231         isosp[0]=2;
232         isosp[1]=2;                               232         isosp[1]=2;
233         iso1=-1;                                  233         iso1=-1;
234         iso2=-1;                                  234         iso2=-1;
235     }                                             235     }
236     void NNToMultiPionsChannel::nn_ppPimPim()     236     void NNToMultiPionsChannel::nn_ppPimPim() {
237         isosp[0]=-2;                              237         isosp[0]=-2;
238         isosp[1]=-2;                              238         isosp[1]=-2;
239         iso1=1;                                   239         iso1=1;
240         iso2=1;                                   240         iso2=1;
241     }                                             241     }
242     void NNToMultiPionsChannel::pn_pnPipPim()     242     void NNToMultiPionsChannel::pn_pnPipPim() {
243         isosp[0]=2;                               243         isosp[0]=2;
244         isosp[1]=-2;                              244         isosp[1]=-2;
245     }                                             245     }
246     void NNToMultiPionsChannel::pn_pnPi0Pi0()     246     void NNToMultiPionsChannel::pn_pnPi0Pi0() {
247         isosp[0]=0;                               247         isosp[0]=0;
248         isosp[1]=0;                               248         isosp[1]=0;
249     }                                             249     }
250     void NNToMultiPionsChannel::pp_ppPipPim()     250     void NNToMultiPionsChannel::pp_ppPipPim() {
251         isosp[0]=2;                               251         isosp[0]=2;
252         isosp[1]=-2;                              252         isosp[1]=-2;
253     }                                             253     }
254     void NNToMultiPionsChannel::nn_nnPipPim()     254     void NNToMultiPionsChannel::nn_nnPipPim() {
255         isosp[0]=2;                               255         isosp[0]=2;
256         isosp[1]=-2;                              256         isosp[1]=-2;
257     }                                             257     }
258     void NNToMultiPionsChannel::pp_ppPi0Pi0()     258     void NNToMultiPionsChannel::pp_ppPi0Pi0() {
259         isosp[0]=0;                               259         isosp[0]=0;
260         isosp[1]=0;                               260         isosp[1]=0;
261     }                                             261     }
262     void NNToMultiPionsChannel::nn_nnPi0Pi0()     262     void NNToMultiPionsChannel::nn_nnPi0Pi0() {
263         isosp[0]=0;                               263         isosp[0]=0;
264         isosp[1]=0;                               264         isosp[1]=0;
265     }                                             265     }
266     void NNToMultiPionsChannel::pp_pnPipPi0()     266     void NNToMultiPionsChannel::pp_pnPipPi0() {
267         isosp[0]=2;                               267         isosp[0]=2;
268         isosp[1]=0;                               268         isosp[1]=0;
269         iso1=1;                                   269         iso1=1;
270         iso2=-1;                                  270         iso2=-1;
271     }                                             271     }
272     void NNToMultiPionsChannel::pn_ppPimPi0()     272     void NNToMultiPionsChannel::pn_ppPimPi0() {
273         isosp[0]=-2;                              273         isosp[0]=-2;
274         isosp[1]=0;                               274         isosp[1]=0;
275         iso1=1;                                   275         iso1=1;
276         iso2=1;                                   276         iso2=1;
277     }                                             277     }
278     void NNToMultiPionsChannel::pn_nnPipPi0()     278     void NNToMultiPionsChannel::pn_nnPipPi0() {
279         isosp[0]=2;                               279         isosp[0]=2;
280         isosp[1]=0;                               280         isosp[1]=0;
281         iso1=-1;                                  281         iso1=-1;
282         iso2=-1;                                  282         iso2=-1;
283     }                                             283     }
284     void NNToMultiPionsChannel::nn_pnPimPi0()     284     void NNToMultiPionsChannel::nn_pnPimPi0() {
285         isosp[0]=-2;                              285         isosp[0]=-2;
286         isosp[1]=0;                               286         isosp[1]=0;
287         iso1=1;                                   287         iso1=1;
288         iso2=-1;                                  288         iso2=-1;
289     }                                             289     }
290     void NNToMultiPionsChannel::pp_pnPipPi0Pi0    290     void NNToMultiPionsChannel::pp_pnPipPi0Pi0() {
291         isosp[0]=2;                               291         isosp[0]=2;
292         isosp[1]=0;                               292         isosp[1]=0;
293         isosp[2]=0;                               293         isosp[2]=0;
294         iso1=1;                                   294         iso1=1;
295         iso2=-1;                                  295         iso2=-1;
296     }                                             296     }
297     void NNToMultiPionsChannel::nn_pnPimPi0Pi0    297     void NNToMultiPionsChannel::nn_pnPimPi0Pi0() {
298         isosp[0]=-2;                              298         isosp[0]=-2;
299         isosp[1]=0;                               299         isosp[1]=0;
300         isosp[2]=0;                               300         isosp[2]=0;
301         iso1=1;                                   301         iso1=1;
302         iso2=-1;                                  302         iso2=-1;
303     }                                             303     }
304     void NNToMultiPionsChannel::pn_nnPipPi0Pi0    304     void NNToMultiPionsChannel::pn_nnPipPi0Pi0() {
305         isosp[0]=2;                               305         isosp[0]=2;
306         isosp[1]=0;                               306         isosp[1]=0;
307         isosp[2]=0;                               307         isosp[2]=0;
308         iso1=-1;                                  308         iso1=-1;
309         iso2=-1;                                  309         iso2=-1;
310     }                                             310     }
311     void NNToMultiPionsChannel::pp_ppPipPimPi0    311     void NNToMultiPionsChannel::pp_ppPipPimPi0() {
312         isosp[0]=2;                               312         isosp[0]=2;
313         isosp[1]=-2;                              313         isosp[1]=-2;
314         isosp[2]=0;                               314         isosp[2]=0;
315     }                                             315     }
316     void NNToMultiPionsChannel::nn_nnPipPimPi0    316     void NNToMultiPionsChannel::nn_nnPipPimPi0() {
317         isosp[0]=2;                               317         isosp[0]=2;
318         isosp[1]=-2;                              318         isosp[1]=-2;
319         isosp[2]=0;                               319         isosp[2]=0;
320     }                                             320     }
321     void NNToMultiPionsChannel::pp_ppPi0Pi0Pi0    321     void NNToMultiPionsChannel::pp_ppPi0Pi0Pi0() {
322         isosp[0]=0;                               322         isosp[0]=0;
323         isosp[1]=0;                               323         isosp[1]=0;
324         isosp[2]=0;                               324         isosp[2]=0;
325     }                                             325     }
326     void NNToMultiPionsChannel::nn_nnPi0Pi0Pi0    326     void NNToMultiPionsChannel::nn_nnPi0Pi0Pi0() {
327         isosp[0]=0;                               327         isosp[0]=0;
328         isosp[1]=0;                               328         isosp[1]=0;
329         isosp[2]=0;                               329         isosp[2]=0;
330     }                                             330     }
331     void NNToMultiPionsChannel::pp_pnPipPipPim    331     void NNToMultiPionsChannel::pp_pnPipPipPim() {
332         isosp[0]=2;                               332         isosp[0]=2;
333         isosp[1]=2;                               333         isosp[1]=2;
334         isosp[2]=-2;                              334         isosp[2]=-2;
335         iso1=1;                                   335         iso1=1;
336         iso2=-1;                                  336         iso2=-1;
337     }                                             337     }
338     void NNToMultiPionsChannel::pp_nnPipPipPi0    338     void NNToMultiPionsChannel::pp_nnPipPipPi0() {
339         isosp[0]=2;                               339         isosp[0]=2;
340         isosp[1]=2;                               340         isosp[1]=2;
341         isosp[2]=0;                               341         isosp[2]=0;
342         iso1=-1;                                  342         iso1=-1;
343         iso2=-1;                                  343         iso2=-1;
344     }                                             344     }
345     void NNToMultiPionsChannel::pn_ppPimPi0Pi0    345     void NNToMultiPionsChannel::pn_ppPimPi0Pi0() {
346         isosp[0]=-2;                              346         isosp[0]=-2;
347         isosp[1]=0;                               347         isosp[1]=0;
348         isosp[2]=0;                               348         isosp[2]=0;
349         iso1=1;                                   349         iso1=1;
350         iso2=1;                                   350         iso2=1;
351     }                                             351     }
352     void NNToMultiPionsChannel::pn_ppPimPimPip    352     void NNToMultiPionsChannel::pn_ppPimPimPip() {
353         isosp[0]=-2;                              353         isosp[0]=-2;
354         isosp[1]=-2;                              354         isosp[1]=-2;
355         isosp[2]=2;                               355         isosp[2]=2;
356         iso1=1;                                   356         iso1=1;
357         iso2=1;                                   357         iso2=1;
358     }                                             358     }
359     void NNToMultiPionsChannel::pn_pnPi0PipPim    359     void NNToMultiPionsChannel::pn_pnPi0PipPim() {
360         isosp[0]=0;                               360         isosp[0]=0;
361         isosp[1]=2;                               361         isosp[1]=2;
362         isosp[2]=-2;                              362         isosp[2]=-2;
363     }                                             363     }
364     void NNToMultiPionsChannel::pn_pnPi0Pi0Pi0    364     void NNToMultiPionsChannel::pn_pnPi0Pi0Pi0() {
365         isosp[0]=0;                               365         isosp[0]=0;
366         isosp[1]=0;                               366         isosp[1]=0;
367         isosp[2]=0;                               367         isosp[2]=0;
368     }                                             368     }
369     void NNToMultiPionsChannel::pn_nnPipPipPim    369     void NNToMultiPionsChannel::pn_nnPipPipPim() {
370         isosp[0]=2;                               370         isosp[0]=2;
371         isosp[1]=2;                               371         isosp[1]=2;
372         isosp[2]=-2;                              372         isosp[2]=-2;
373         iso1=-1;                                  373         iso1=-1;
374         iso2=-1;                                  374         iso2=-1;
375     }                                             375     }
376     void NNToMultiPionsChannel::nn_pnPipPimPim    376     void NNToMultiPionsChannel::nn_pnPipPimPim() {
377         isosp[0]=2;                               377         isosp[0]=2;
378         isosp[1]=-2;                              378         isosp[1]=-2;
379         isosp[2]=-2;                              379         isosp[2]=-2;
380         iso1=1;                                   380         iso1=1;
381         iso2=-1;                                  381         iso2=-1;
382     }                                             382     }
383     void NNToMultiPionsChannel::nn_ppPimPimPi0    383     void NNToMultiPionsChannel::nn_ppPimPimPi0() {
384         isosp[0]=-2;                              384         isosp[0]=-2;
385         isosp[1]=-2;                              385         isosp[1]=-2;
386         isosp[2]=0;                               386         isosp[2]=0;
387         iso1=1;                                   387         iso1=1;
388         iso2=1;                                   388         iso2=1;
389     }                                             389     }
390     void NNToMultiPionsChannel::pp_nnPipPipPi0    390     void NNToMultiPionsChannel::pp_nnPipPipPi0Pi0() {
391         isosp[0]=2;                               391         isosp[0]=2;
392         isosp[1]=2;                               392         isosp[1]=2;
393         isosp[2]=0;                               393         isosp[2]=0;
394         isosp[3]=0;                               394         isosp[3]=0;
395         iso1=-1;                                  395         iso1=-1;
396         iso2=-1;                                  396         iso2=-1;
397     }                                             397     }
398     void NNToMultiPionsChannel::pp_nnPipPipPip    398     void NNToMultiPionsChannel::pp_nnPipPipPipPim() {
399         isosp[0]=2;                               399         isosp[0]=2;
400         isosp[1]=2;                               400         isosp[1]=2;
401         isosp[2]=2;                               401         isosp[2]=2;
402         isosp[3]=-2;                              402         isosp[3]=-2;
403         iso1=-1;                                  403         iso1=-1;
404         iso2=-1;                                  404         iso2=-1;
405     }                                             405     }
406     void NNToMultiPionsChannel::nn_ppPi0Pi0Pim    406     void NNToMultiPionsChannel::nn_ppPi0Pi0PimPim() {
407         isosp[0]=0;                               407         isosp[0]=0;
408         isosp[1]=0;                               408         isosp[1]=0;
409         isosp[2]=-2;                              409         isosp[2]=-2;
410         isosp[3]=-2;                              410         isosp[3]=-2;
411         iso1=1;                                   411         iso1=1;
412         iso2=1;                                   412         iso2=1;
413     }                                             413     }
414     void NNToMultiPionsChannel::nn_ppPipPimPim    414     void NNToMultiPionsChannel::nn_ppPipPimPimPim() {
415         isosp[0]=2;                               415         isosp[0]=2;
416         isosp[1]=-2;                              416         isosp[1]=-2;
417         isosp[2]=-2;                              417         isosp[2]=-2;
418         isosp[3]=-2;                              418         isosp[3]=-2;
419         iso1=1;                                   419         iso1=1;
420         iso2=1;                                   420         iso2=1;
421     }                                             421     }
422     void NNToMultiPionsChannel::pp_ppPi0Pi0Pi0    422     void NNToMultiPionsChannel::pp_ppPi0Pi0Pi0Pi0() {
423         isosp[0]=0;                               423         isosp[0]=0;
424         isosp[1]=0;                               424         isosp[1]=0;
425         isosp[2]=0;                               425         isosp[2]=0;
426         isosp[3]=0;                               426         isosp[3]=0;
427     }                                             427     }
428     void NNToMultiPionsChannel::nn_nnPi0Pi0Pi0    428     void NNToMultiPionsChannel::nn_nnPi0Pi0Pi0Pi0() {
429         isosp[0]=0;                               429         isosp[0]=0;
430         isosp[1]=0;                               430         isosp[1]=0;
431         isosp[2]=0;                               431         isosp[2]=0;
432         isosp[3]=0;                               432         isosp[3]=0;
433     }                                             433     }
434     void NNToMultiPionsChannel::pn_pnPi0Pi0Pi0    434     void NNToMultiPionsChannel::pn_pnPi0Pi0Pi0Pi0() {
435         isosp[0]=0;                               435         isosp[0]=0;
436         isosp[1]=0;                               436         isosp[1]=0;
437         isosp[2]=0;                               437         isosp[2]=0;
438         isosp[3]=0;                               438         isosp[3]=0;
439     }                                             439     }
440     void NNToMultiPionsChannel::pp_ppPipPi0Pi0    440     void NNToMultiPionsChannel::pp_ppPipPi0Pi0Pim() {
441         isosp[0]=2;                               441         isosp[0]=2;
442         isosp[1]=0;                               442         isosp[1]=0;
443         isosp[2]=0;                               443         isosp[2]=0;
444         isosp[3]=-2;                              444         isosp[3]=-2;
445     }                                             445     }
446     void NNToMultiPionsChannel::nn_nnPipPi0Pi0    446     void NNToMultiPionsChannel::nn_nnPipPi0Pi0Pim() {
447         isosp[0]=2;                               447         isosp[0]=2;
448         isosp[1]=0;                               448         isosp[1]=0;
449         isosp[2]=0;                               449         isosp[2]=0;
450         isosp[3]=-2;                              450         isosp[3]=-2;
451     }                                             451     }
452     void NNToMultiPionsChannel::pn_pnPipPi0Pi0    452     void NNToMultiPionsChannel::pn_pnPipPi0Pi0Pim() {
453         isosp[0]=2;                               453         isosp[0]=2;
454         isosp[1]=0;                               454         isosp[1]=0;
455         isosp[2]=0;                               455         isosp[2]=0;
456         isosp[3]=-2;                              456         isosp[3]=-2;
457     }                                             457     }
458     void NNToMultiPionsChannel::pp_ppPipPipPim    458     void NNToMultiPionsChannel::pp_ppPipPipPimPim() {
459         isosp[0]=2;                               459         isosp[0]=2;
460         isosp[1]=2;                               460         isosp[1]=2;
461         isosp[2]=-2;                              461         isosp[2]=-2;
462         isosp[3]=-2;                              462         isosp[3]=-2;
463     }                                             463     }
464     void NNToMultiPionsChannel::nn_nnPipPipPim    464     void NNToMultiPionsChannel::nn_nnPipPipPimPim() {
465         isosp[0]=2;                               465         isosp[0]=2;
466         isosp[1]=2;                               466         isosp[1]=2;
467         isosp[2]=-2;                              467         isosp[2]=-2;
468         isosp[3]=-2;                              468         isosp[3]=-2;
469     }                                             469     }
470     void NNToMultiPionsChannel::pn_pnPipPipPim    470     void NNToMultiPionsChannel::pn_pnPipPipPimPim() {
471         isosp[0]=2;                               471         isosp[0]=2;
472         isosp[1]=2;                               472         isosp[1]=2;
473         isosp[2]=-2;                              473         isosp[2]=-2;
474         isosp[3]=-2;                              474         isosp[3]=-2;
475     }                                             475     }
476     void NNToMultiPionsChannel::pp_pnPipPi0Pi0    476     void NNToMultiPionsChannel::pp_pnPipPi0Pi0Pi0() {
477         isosp[0]=2;                               477         isosp[0]=2;
478         isosp[1]=0;                               478         isosp[1]=0;
479         isosp[2]=0;                               479         isosp[2]=0;
480         isosp[3]=0;                               480         isosp[3]=0;
481         iso1=1;                                   481         iso1=1;
482         iso2=-1;                                  482         iso2=-1;
483     }                                             483     }
484     void NNToMultiPionsChannel::pn_nnPipPi0Pi0    484     void NNToMultiPionsChannel::pn_nnPipPi0Pi0Pi0() {
485         isosp[0]=2;                               485         isosp[0]=2;
486         isosp[1]=0;                               486         isosp[1]=0;
487         isosp[2]=0;                               487         isosp[2]=0;
488         isosp[3]=0;                               488         isosp[3]=0;
489         iso1=-1;                                  489         iso1=-1;
490         iso2=-1;                                  490         iso2=-1;
491     }                                             491     }
492     void NNToMultiPionsChannel::pp_nnPipPi0Pi0    492     void NNToMultiPionsChannel::pp_nnPipPi0Pi0Pi0() {
493         isosp[0]=2;                               493         isosp[0]=2;
494         isosp[1]=0;                               494         isosp[1]=0;
495         isosp[2]=0;                               495         isosp[2]=0;
496         isosp[3]=0;                               496         isosp[3]=0;
497         iso1=-1;                                  497         iso1=-1;
498         iso2=-1;                                  498         iso2=-1;
499     }                                             499     }
500     void NNToMultiPionsChannel::pp_pnPipPipPi0    500     void NNToMultiPionsChannel::pp_pnPipPipPi0Pim() {
501         isosp[0]=2;                               501         isosp[0]=2;
502         isosp[1]=2;                               502         isosp[1]=2;
503         isosp[2]=0;                               503         isosp[2]=0;
504         isosp[3]=-2;                              504         isosp[3]=-2;
505         iso1=1;                                   505         iso1=1;
506         iso2=-1;                                  506         iso2=-1;
507     }                                             507     }
508     void NNToMultiPionsChannel::pn_nnPipPipPi0    508     void NNToMultiPionsChannel::pn_nnPipPipPi0Pim() {
509         isosp[0]=2;                               509         isosp[0]=2;
510         isosp[1]=2;                               510         isosp[1]=2;
511         isosp[2]=0;                               511         isosp[2]=0;
512         isosp[3]=-2;                              512         isosp[3]=-2;
513         iso1=-1;                                  513         iso1=-1;
514         iso2=-1;                                  514         iso2=-1;
515     }                                             515     }
516     void NNToMultiPionsChannel::pp_nnPipPipPi0    516     void NNToMultiPionsChannel::pp_nnPipPipPi0Pim() {
517         isosp[0]=2;                               517         isosp[0]=2;
518         isosp[1]=2;                               518         isosp[1]=2;
519         isosp[2]=0;                               519         isosp[2]=0;
520         isosp[3]=-2;                              520         isosp[3]=-2;
521         iso1=-1;                                  521         iso1=-1;
522         iso2=-1;                                  522         iso2=-1;
523     }                                             523     }
524     void NNToMultiPionsChannel::nn_pnPi0Pi0Pi0    524     void NNToMultiPionsChannel::nn_pnPi0Pi0Pi0Pim() {
525         isosp[0]=0;                               525         isosp[0]=0;
526         isosp[1]=0;                               526         isosp[1]=0;
527         isosp[2]=0;                               527         isosp[2]=0;
528         isosp[3]=-2;                              528         isosp[3]=-2;
529         iso1=1;                                   529         iso1=1;
530         iso2=-1;                                  530         iso2=-1;
531     }                                             531     }
532     void NNToMultiPionsChannel::pn_ppPi0Pi0Pi0    532     void NNToMultiPionsChannel::pn_ppPi0Pi0Pi0Pim() {
533         isosp[0]=0;                               533         isosp[0]=0;
534         isosp[1]=0;                               534         isosp[1]=0;
535         isosp[2]=0;                               535         isosp[2]=0;
536         isosp[3]=-2;                              536         isosp[3]=-2;
537         iso1=1;                                   537         iso1=1;
538         iso2=1;                                   538         iso2=1;
539     }                                             539     }
540     void NNToMultiPionsChannel::nn_pnPipPi0Pim    540     void NNToMultiPionsChannel::nn_pnPipPi0PimPim() {
541         isosp[0]=2;                               541         isosp[0]=2;
542         isosp[1]=0;                               542         isosp[1]=0;
543         isosp[2]=-2;                              543         isosp[2]=-2;
544         isosp[3]=-2;                              544         isosp[3]=-2;
545         iso1=1;                                   545         iso1=1;
546         iso2=-1;                                  546         iso2=-1;
547     }                                             547     }
548     void NNToMultiPionsChannel::pn_ppPipPi0Pim    548     void NNToMultiPionsChannel::pn_ppPipPi0PimPim() {
549         isosp[0]=2;                               549         isosp[0]=2;
550         isosp[1]=0;                               550         isosp[1]=0;
551         isosp[2]=-2;                              551         isosp[2]=-2;
552         isosp[3]=-2;                              552         isosp[3]=-2;
553         iso1=1;                                   553         iso1=1;
554         iso2=1;                                   554         iso2=1;
555     }                                             555     }
556                                                   556 
557     void NNToMultiPionsChannel::inter2Part(con    557     void NNToMultiPionsChannel::inter2Part(const G4double p) {
558                                                   558 
559         if (Random::shoot() < p) std::swap(iso    559         if (Random::shoot() < p) std::swap(iso1,iso2);
560                                                   560 
561     }                                             561     }
562                                                   562 
563                                                   563 
564 }                                                 564 }
565                                                   565