Geant4 Cross Reference

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


  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 "G4INCLNNToNSK2piChannel.hh"              38 #include "G4INCLNNToNSK2piChannel.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 NNToNSK2piChannel::angularSlo     49   const G4double NNToNSK2piChannel::angularSlope = 2.; // What is the exact effect? Sould be check
 50                                                    50   
 51   NNToNSK2piChannel::NNToNSK2piChannel(Particl     51   NNToNSK2piChannel::NNToNSK2piChannel(Particle *p1, Particle *p2)
 52     : particle1(p1), particle2(p2)                 52     : particle1(p1), particle2(p2)
 53     {}                                             53     {}
 54                                                    54   
 55   NNToNSK2piChannel::~NNToNSK2piChannel(){}        55   NNToNSK2piChannel::~NNToNSK2piChannel(){}
 56                                                    56   
 57   void NNToNSK2piChannel::fillFinalState(Final     57   void NNToNSK2piChannel::fillFinalState(FinalState *fs) {
 58                                                    58     
 59     /* Equipartition in all channel with facto     59     /* Equipartition in all channel with factor N(pi)!
 60     */                                             60     */
 61                                                    61     
 62     const G4double sqrtS = KinematicsUtils::to     62     const G4double sqrtS = KinematicsUtils::totalEnergyInCM(particle1, particle2);
 63                                                    63     
 64     const G4int iso = ParticleTable::getIsospi     64     const G4int iso = ParticleTable::getIsospin(particle1->getType()) + ParticleTable::getIsospin(particle2->getType());
 65                                                    65     
 66     ParticleType KaonType;                         66     ParticleType KaonType;
 67     ParticleType Pion1Type;                        67     ParticleType Pion1Type;
 68     ParticleType Pion2Type;                        68     ParticleType Pion2Type;
 69                                                    69     
 70     G4double rdm = Random::shoot();                70     G4double rdm = Random::shoot();
 71                                                    71     
 72     if(iso == 2){                                  72     if(iso == 2){
 73       if(rdm*20. < 1.){                            73       if(rdm*20. < 1.){
 74         particle1->setType(Neutron);               74         particle1->setType(Neutron);
 75         particle2->setType(SigmaPlus);             75         particle2->setType(SigmaPlus);
 76         KaonType =  KZero;                         76         KaonType =  KZero;
 77         Pion1Type =  PiZero;                       77         Pion1Type =  PiZero;
 78         Pion2Type =  PiPlus;                       78         Pion2Type =  PiPlus;
 79       }                                            79       }
 80       else if(rdm*20. < 3.){                       80       else if(rdm*20. < 3.){
 81         particle1->setType(Neutron);               81         particle1->setType(Neutron);
 82         particle2->setType(SigmaZero);             82         particle2->setType(SigmaZero);
 83         KaonType =  KZero;                         83         KaonType =  KZero;
 84         Pion1Type =  PiPlus;                       84         Pion1Type =  PiPlus;
 85         Pion2Type =  PiPlus;                       85         Pion2Type =  PiPlus;
 86       }                                            86       }
 87       else if(rdm*20. < 4.){                       87       else if(rdm*20. < 4.){
 88         particle1->setType(Neutron);               88         particle1->setType(Neutron);
 89         particle2->setType(SigmaPlus);             89         particle2->setType(SigmaPlus);
 90         KaonType =  KPlus;                         90         KaonType =  KPlus;
 91         Pion1Type =  PiMinus;                      91         Pion1Type =  PiMinus;
 92         Pion2Type =  PiPlus;                       92         Pion2Type =  PiPlus;
 93       }                                            93       }
 94       else if(rdm*20. < 6.){                       94       else if(rdm*20. < 6.){
 95         particle1->setType(Neutron);               95         particle1->setType(Neutron);
 96         particle2->setType(SigmaPlus);             96         particle2->setType(SigmaPlus);
 97         KaonType =  KPlus;                         97         KaonType =  KPlus;
 98         Pion1Type =  PiZero;                       98         Pion1Type =  PiZero;
 99         Pion2Type =  PiZero;                       99         Pion2Type =  PiZero;
100       }                                           100       }
101       else if(rdm*20. < 7.){                      101       else if(rdm*20. < 7.){
102         particle1->setType(Neutron);              102         particle1->setType(Neutron);
103         particle2->setType(SigmaZero);            103         particle2->setType(SigmaZero);
104         KaonType =  KPlus;                        104         KaonType =  KPlus;
105         Pion1Type =  PiZero;                      105         Pion1Type =  PiZero;
106         Pion2Type =  PiPlus;                      106         Pion2Type =  PiPlus;
107       }                                           107       }
108       else if(rdm*20. < 9.){                      108       else if(rdm*20. < 9.){
109         particle1->setType(Neutron);              109         particle1->setType(Neutron);
110         particle2->setType(SigmaMinus);           110         particle2->setType(SigmaMinus);
111         KaonType =  KPlus;                        111         KaonType =  KPlus;
112         Pion1Type =  PiPlus;                      112         Pion1Type =  PiPlus;
113         Pion2Type =  PiPlus;                      113         Pion2Type =  PiPlus;
114       }                                           114       }
115       else if(rdm*20. < 10.){                     115       else if(rdm*20. < 10.){
116         particle1->setType(Proton);               116         particle1->setType(Proton);
117         particle2->setType(SigmaPlus);            117         particle2->setType(SigmaPlus);
118         KaonType =  KZero;                        118         KaonType =  KZero;
119         Pion1Type =  PiMinus;                     119         Pion1Type =  PiMinus;
120         Pion2Type =  PiPlus;                      120         Pion2Type =  PiPlus;
121       }                                           121       }
122       else if(rdm*20. < 12.){                     122       else if(rdm*20. < 12.){
123         particle1->setType(Proton);               123         particle1->setType(Proton);
124         particle2->setType(SigmaPlus);            124         particle2->setType(SigmaPlus);
125         KaonType =  KZero;                        125         KaonType =  KZero;
126         Pion1Type =  PiZero;                      126         Pion1Type =  PiZero;
127         Pion2Type =  PiZero;                      127         Pion2Type =  PiZero;
128       }                                           128       }
129       else if(rdm*20. < 13.){                     129       else if(rdm*20. < 13.){
130         particle1->setType(Proton);               130         particle1->setType(Proton);
131         particle2->setType(SigmaZero);            131         particle2->setType(SigmaZero);
132         KaonType =  KZero;                        132         KaonType =  KZero;
133         Pion1Type =  PiZero;                      133         Pion1Type =  PiZero;
134         Pion2Type =  PiPlus;                      134         Pion2Type =  PiPlus;
135       }                                           135       }
136       else if(rdm*20. < 15.){                     136       else if(rdm*20. < 15.){
137         particle1->setType(Proton);               137         particle1->setType(Proton);
138         particle2->setType(SigmaMinus);           138         particle2->setType(SigmaMinus);
139         KaonType =  KZero;                        139         KaonType =  KZero;
140         Pion1Type =  PiPlus;                      140         Pion1Type =  PiPlus;
141         Pion2Type =  PiPlus;                      141         Pion2Type =  PiPlus;
142       }                                           142       }
143       else if(rdm*20. < 16.){                     143       else if(rdm*20. < 16.){
144         particle1->setType(Proton);               144         particle1->setType(Proton);
145         particle2->setType(SigmaPlus);            145         particle2->setType(SigmaPlus);
146         KaonType =  KPlus;                        146         KaonType =  KPlus;
147         Pion1Type =  PiMinus;                     147         Pion1Type =  PiMinus;
148         Pion2Type =  PiZero;                      148         Pion2Type =  PiZero;
149       }                                           149       }
150       else if(rdm*20. < 17.){                     150       else if(rdm*20. < 17.){
151         particle1->setType(Proton);               151         particle1->setType(Proton);
152         particle2->setType(SigmaZero);            152         particle2->setType(SigmaZero);
153         KaonType =  KPlus;                        153         KaonType =  KPlus;
154         Pion1Type =  PiMinus;                     154         Pion1Type =  PiMinus;
155         Pion2Type =  PiPlus;                      155         Pion2Type =  PiPlus;
156       }                                           156       }
157       else if(rdm*20. < 19.){                     157       else if(rdm*20. < 19.){
158         particle1->setType(Proton);               158         particle1->setType(Proton);
159         particle2->setType(SigmaZero);            159         particle2->setType(SigmaZero);
160         KaonType =  KPlus;                        160         KaonType =  KPlus;
161         Pion1Type =  PiZero;                      161         Pion1Type =  PiZero;
162         Pion2Type =  PiZero;                      162         Pion2Type =  PiZero;
163       }                                           163       }
164       else{                                       164       else{
165         particle1->setType(Proton);               165         particle1->setType(Proton);
166         particle2->setType(SigmaMinus);           166         particle2->setType(SigmaMinus);
167         KaonType =  KPlus;                        167         KaonType =  KPlus;
168         Pion1Type =  PiZero;                      168         Pion1Type =  PiZero;
169         Pion2Type =  PiPlus;                      169         Pion2Type =  PiPlus;
170       }                                           170       }
171                                                   171 
172                                                   172       
173     }if(iso == -2){                               173     }if(iso == -2){
174       if(rdm*20. < 1.){                           174       if(rdm*20. < 1.){
175         particle1->setType(Neutron);              175         particle1->setType(Neutron);
176         particle2->setType(SigmaPlus);            176         particle2->setType(SigmaPlus);
177         KaonType =  KZero;                        177         KaonType =  KZero;
178         Pion1Type =  PiMinus;                     178         Pion1Type =  PiMinus;
179         Pion2Type =  PiZero;                      179         Pion2Type =  PiZero;
180       }                                           180       }
181       else if(rdm*20. < 2.){                      181       else if(rdm*20. < 2.){
182         particle1->setType(Neutron);              182         particle1->setType(Neutron);
183         particle2->setType(SigmaZero);            183         particle2->setType(SigmaZero);
184         KaonType =  KZero;                        184         KaonType =  KZero;
185         Pion1Type =  PiMinus;                     185         Pion1Type =  PiMinus;
186         Pion2Type =  PiPlus;                      186         Pion2Type =  PiPlus;
187       }                                           187       }
188       else if(rdm*20. < 4.){                      188       else if(rdm*20. < 4.){
189         particle1->setType(Neutron);              189         particle1->setType(Neutron);
190         particle2->setType(SigmaZero);            190         particle2->setType(SigmaZero);
191         KaonType =  KZero;                        191         KaonType =  KZero;
192         Pion1Type =  PiZero;                      192         Pion1Type =  PiZero;
193         Pion2Type =  PiZero;                      193         Pion2Type =  PiZero;
194       }                                           194       }
195       else if(rdm*20. < 5.){                      195       else if(rdm*20. < 5.){
196         particle1->setType(Neutron);              196         particle1->setType(Neutron);
197         particle2->setType(SigmaMinus);           197         particle2->setType(SigmaMinus);
198         KaonType =  KZero;                        198         KaonType =  KZero;
199         Pion1Type =  PiZero;                      199         Pion1Type =  PiZero;
200         Pion2Type =  PiPlus;                      200         Pion2Type =  PiPlus;
201       }                                           201       }
202       else if(rdm*20. < 7.){                      202       else if(rdm*20. < 7.){
203         particle1->setType(Neutron);              203         particle1->setType(Neutron);
204         particle2->setType(SigmaPlus);            204         particle2->setType(SigmaPlus);
205         KaonType =  KPlus;                        205         KaonType =  KPlus;
206         Pion1Type =  PiMinus;                     206         Pion1Type =  PiMinus;
207         Pion2Type =  PiMinus;                     207         Pion2Type =  PiMinus;
208       }                                           208       }
209       else if(rdm*20. < 8.){                      209       else if(rdm*20. < 8.){
210         particle1->setType(Neutron);              210         particle1->setType(Neutron);
211         particle2->setType(SigmaZero);            211         particle2->setType(SigmaZero);
212         KaonType =  KPlus;                        212         KaonType =  KPlus;
213         Pion1Type =  PiMinus;                     213         Pion1Type =  PiMinus;
214         Pion2Type =  PiZero;                      214         Pion2Type =  PiZero;
215       }                                           215       }
216       else if(rdm*20. < 9.){                      216       else if(rdm*20. < 9.){
217         particle1->setType(Neutron);              217         particle1->setType(Neutron);
218         particle2->setType(SigmaMinus);           218         particle2->setType(SigmaMinus);
219         KaonType =  KPlus;                        219         KaonType =  KPlus;
220         Pion1Type =  PiMinus;                     220         Pion1Type =  PiMinus;
221         Pion2Type =  PiPlus;                      221         Pion2Type =  PiPlus;
222       }                                           222       }
223       else if(rdm*20. < 11.){                     223       else if(rdm*20. < 11.){
224         particle1->setType(Neutron);              224         particle1->setType(Neutron);
225         particle2->setType(SigmaMinus);           225         particle2->setType(SigmaMinus);
226         KaonType =  KPlus;                        226         KaonType =  KPlus;
227         Pion1Type =  PiZero;                      227         Pion1Type =  PiZero;
228         Pion2Type =  PiZero;                      228         Pion2Type =  PiZero;
229       }                                           229       }
230       else if(rdm*20. < 13.){                     230       else if(rdm*20. < 13.){
231         particle1->setType(Proton);               231         particle1->setType(Proton);
232         particle2->setType(SigmaPlus);            232         particle2->setType(SigmaPlus);
233         KaonType =  KZero;                        233         KaonType =  KZero;
234         Pion1Type =  PiMinus;                     234         Pion1Type =  PiMinus;
235         Pion2Type =  PiMinus;                     235         Pion2Type =  PiMinus;
236       }                                           236       }
237       else if(rdm*20. < 14.){                     237       else if(rdm*20. < 14.){
238         particle1->setType(Proton);               238         particle1->setType(Proton);
239         particle2->setType(SigmaZero);            239         particle2->setType(SigmaZero);
240         KaonType =  KZero;                        240         KaonType =  KZero;
241         Pion1Type =  PiMinus;                     241         Pion1Type =  PiMinus;
242         Pion2Type =  PiZero;                      242         Pion2Type =  PiZero;
243       }                                           243       }
244       else if(rdm*20. < 15.){                     244       else if(rdm*20. < 15.){
245         particle1->setType(Proton);               245         particle1->setType(Proton);
246         particle2->setType(SigmaMinus);           246         particle2->setType(SigmaMinus);
247         KaonType =  KZero;                        247         KaonType =  KZero;
248         Pion1Type =  PiMinus;                     248         Pion1Type =  PiMinus;
249         Pion2Type =  PiPlus;                      249         Pion2Type =  PiPlus;
250       }                                           250       }
251       else if(rdm*20. < 17.){                     251       else if(rdm*20. < 17.){
252         particle1->setType(Proton);               252         particle1->setType(Proton);
253         particle2->setType(SigmaMinus);           253         particle2->setType(SigmaMinus);
254         KaonType =  KZero;                        254         KaonType =  KZero;
255         Pion1Type =  PiZero;                      255         Pion1Type =  PiZero;
256         Pion2Type =  PiZero;                      256         Pion2Type =  PiZero;
257       }                                           257       }
258       else if(rdm*20. < 19.){                     258       else if(rdm*20. < 19.){
259         particle1->setType(Proton);               259         particle1->setType(Proton);
260         particle2->setType(SigmaZero);            260         particle2->setType(SigmaZero);
261         KaonType =  KPlus;                        261         KaonType =  KPlus;
262         Pion1Type =  PiMinus;                     262         Pion1Type =  PiMinus;
263         Pion2Type =  PiMinus;                     263         Pion2Type =  PiMinus;
264       }                                           264       }
265       else{                                       265       else{
266         particle1->setType(Proton);               266         particle1->setType(Proton);
267         particle2->setType(SigmaMinus);           267         particle2->setType(SigmaMinus);
268         KaonType =  KPlus;                        268         KaonType =  KPlus;
269         Pion1Type =  PiMinus;                     269         Pion1Type =  PiMinus;
270         Pion2Type =  PiZero;                      270         Pion2Type =  PiZero;
271       }                                           271       }
272                                                   272 
273     }                                             273     }
274     else{                                         274     else{
275       if(rdm*22. < 1.){                           275       if(rdm*22. < 1.){
276         particle1->setType(Neutron);              276         particle1->setType(Neutron);
277         particle2->setType(SigmaPlus);            277         particle2->setType(SigmaPlus);
278         KaonType =  KZero;                        278         KaonType =  KZero;
279         Pion1Type =  PiMinus;                     279         Pion1Type =  PiMinus;
280         Pion2Type =  PiPlus;                      280         Pion2Type =  PiPlus;
281       }                                           281       }
282       else if(rdm*22. < 3.){                      282       else if(rdm*22. < 3.){
283         particle1->setType(Neutron);              283         particle1->setType(Neutron);
284         particle2->setType(SigmaPlus);            284         particle2->setType(SigmaPlus);
285         KaonType =  KZero;                        285         KaonType =  KZero;
286         Pion1Type =  PiZero;                      286         Pion1Type =  PiZero;
287         Pion2Type =  PiZero;                      287         Pion2Type =  PiZero;
288       }                                           288       }
289       else if(rdm*22. < 4.){                      289       else if(rdm*22. < 4.){
290         particle1->setType(Neutron);              290         particle1->setType(Neutron);
291         particle2->setType(SigmaZero);            291         particle2->setType(SigmaZero);
292         KaonType =  KZero;                        292         KaonType =  KZero;
293         Pion1Type =  PiZero;                      293         Pion1Type =  PiZero;
294         Pion2Type =  PiPlus;                      294         Pion2Type =  PiPlus;
295       }                                           295       }
296       else if(rdm*22. < 6.){                      296       else if(rdm*22. < 6.){
297         particle1->setType(Neutron);              297         particle1->setType(Neutron);
298         particle2->setType(SigmaMinus);           298         particle2->setType(SigmaMinus);
299         KaonType =  KZero;                        299         KaonType =  KZero;
300         Pion1Type =  PiPlus;                      300         Pion1Type =  PiPlus;
301         Pion2Type =  PiPlus;                      301         Pion2Type =  PiPlus;
302       }                                           302       }
303       else if(rdm*22. < 7.){                      303       else if(rdm*22. < 7.){
304         particle1->setType(Neutron);              304         particle1->setType(Neutron);
305         particle2->setType(SigmaPlus);            305         particle2->setType(SigmaPlus);
306         KaonType =  KPlus;                        306         KaonType =  KPlus;
307         Pion1Type =  PiMinus;                     307         Pion1Type =  PiMinus;
308         Pion2Type =  PiZero;                      308         Pion2Type =  PiZero;
309       }                                           309       }
310       else if(rdm*22. < 8.){                      310       else if(rdm*22. < 8.){
311         particle1->setType(Neutron);              311         particle1->setType(Neutron);
312         particle2->setType(SigmaZero);            312         particle2->setType(SigmaZero);
313         KaonType =  KPlus;                        313         KaonType =  KPlus;
314         Pion1Type =  PiMinus;                     314         Pion1Type =  PiMinus;
315         Pion2Type =  PiPlus;                      315         Pion2Type =  PiPlus;
316       }                                           316       }
317       else if(rdm*22. < 10.){                     317       else if(rdm*22. < 10.){
318         particle1->setType(Neutron);              318         particle1->setType(Neutron);
319         particle2->setType(SigmaZero);            319         particle2->setType(SigmaZero);
320         KaonType =  KPlus;                        320         KaonType =  KPlus;
321         Pion1Type =  PiZero;                      321         Pion1Type =  PiZero;
322         Pion2Type =  PiZero;                      322         Pion2Type =  PiZero;
323       }                                           323       }
324       else if(rdm*22. < 11.){                     324       else if(rdm*22. < 11.){
325         particle1->setType(Neutron);              325         particle1->setType(Neutron);
326         particle2->setType(SigmaMinus);           326         particle2->setType(SigmaMinus);
327         KaonType =  KPlus;                        327         KaonType =  KPlus;
328         Pion1Type =  PiZero;                      328         Pion1Type =  PiZero;
329         Pion2Type =  PiPlus;                      329         Pion2Type =  PiPlus;
330       }                                           330       }
331       else if(rdm*22. < 12.){                     331       else if(rdm*22. < 12.){
332         particle1->setType(Proton);               332         particle1->setType(Proton);
333         particle2->setType(SigmaPlus);            333         particle2->setType(SigmaPlus);
334         KaonType =  KZero;                        334         KaonType =  KZero;
335         Pion1Type =  PiMinus;                     335         Pion1Type =  PiMinus;
336         Pion2Type =  PiZero;                      336         Pion2Type =  PiZero;
337       }                                           337       }
338       else if(rdm*22. < 13.){                     338       else if(rdm*22. < 13.){
339         particle1->setType(Proton);               339         particle1->setType(Proton);
340         particle2->setType(SigmaZero);            340         particle2->setType(SigmaZero);
341         KaonType =  KZero;                        341         KaonType =  KZero;
342         Pion1Type =  PiMinus;                     342         Pion1Type =  PiMinus;
343         Pion2Type =  PiPlus;                      343         Pion2Type =  PiPlus;
344       }                                           344       }
345       else if(rdm*22. < 15.){                     345       else if(rdm*22. < 15.){
346         particle1->setType(Proton);               346         particle1->setType(Proton);
347         particle2->setType(SigmaZero);            347         particle2->setType(SigmaZero);
348         KaonType =  KZero;                        348         KaonType =  KZero;
349         Pion1Type =  PiZero;                      349         Pion1Type =  PiZero;
350         Pion2Type =  PiZero;                      350         Pion2Type =  PiZero;
351       }                                           351       }
352       else if(rdm*22. < 16.){                     352       else if(rdm*22. < 16.){
353         particle1->setType(Proton);               353         particle1->setType(Proton);
354         particle2->setType(SigmaMinus);           354         particle2->setType(SigmaMinus);
355         KaonType =  KZero;                        355         KaonType =  KZero;
356         Pion1Type =  PiZero;                      356         Pion1Type =  PiZero;
357         Pion2Type =  PiPlus;                      357         Pion2Type =  PiPlus;
358       }                                           358       }
359       else if(rdm*22. < 18.){                     359       else if(rdm*22. < 18.){
360         particle1->setType(Proton);               360         particle1->setType(Proton);
361         particle2->setType(SigmaPlus);            361         particle2->setType(SigmaPlus);
362         KaonType =  KPlus;                        362         KaonType =  KPlus;
363         Pion1Type =  PiMinus;                     363         Pion1Type =  PiMinus;
364         Pion2Type =  PiMinus;                     364         Pion2Type =  PiMinus;
365       }                                           365       }
366       else if(rdm*22. < 19.){                     366       else if(rdm*22. < 19.){
367         particle1->setType(Proton);               367         particle1->setType(Proton);
368         particle2->setType(SigmaZero);            368         particle2->setType(SigmaZero);
369         KaonType =  KPlus;                        369         KaonType =  KPlus;
370         Pion1Type =  PiMinus;                     370         Pion1Type =  PiMinus;
371         Pion2Type =  PiZero;                      371         Pion2Type =  PiZero;
372       }                                           372       }
373       else if(rdm*22. < 20.){                     373       else if(rdm*22. < 20.){
374         particle1->setType(Proton);               374         particle1->setType(Proton);
375         particle2->setType(SigmaMinus);           375         particle2->setType(SigmaMinus);
376         KaonType =  KPlus;                        376         KaonType =  KPlus;
377         Pion1Type =  PiMinus;                     377         Pion1Type =  PiMinus;
378         Pion2Type =  PiPlus;                      378         Pion2Type =  PiPlus;
379       }                                           379       }
380       else{                                       380       else{
381         particle1->setType(Proton);               381         particle1->setType(Proton);
382         particle2->setType(SigmaMinus);           382         particle2->setType(SigmaMinus);
383         KaonType =  KPlus;                        383         KaonType =  KPlus;
384         Pion1Type =  PiZero;                      384         Pion1Type =  PiZero;
385         Pion2Type =  PiZero;                      385         Pion2Type =  PiZero;
386       }                                           386       }
387                                                   387 
388     }                                             388     }
389                                                   389     
390                                                   390     
391     ParticleList list;                            391     ParticleList list;
392     list.push_back(particle1);                    392     list.push_back(particle1);
393     list.push_back(particle2);                    393     list.push_back(particle2);
394     const ThreeVector &rcol1 = particle1->getP    394     const ThreeVector &rcol1 = particle1->getPosition();
395     const ThreeVector &rcol2 = particle2->getP    395     const ThreeVector &rcol2 = particle2->getPosition();
396     const ThreeVector zero;                       396     const ThreeVector zero;
397     Particle *pion1 = new Particle(Pion1Type,z    397     Particle *pion1 = new Particle(Pion1Type,zero,rcol1);
398     Particle *pion2 = new Particle(Pion2Type,z    398     Particle *pion2 = new Particle(Pion2Type,zero,rcol1);
399     Particle *kaon = new Particle(KaonType,zer    399     Particle *kaon = new Particle(KaonType,zero,rcol2);
400     list.push_back(kaon);                         400     list.push_back(kaon);
401     list.push_back(pion1);                        401     list.push_back(pion1);
402     list.push_back(pion2);                        402     list.push_back(pion2);
403                                                   403     
404     if(Random::shoot()<0.5) PhaseSpaceGenerato    404     if(Random::shoot()<0.5) PhaseSpaceGenerator::generateBiased(sqrtS, list, 0, angularSlope);
405     else PhaseSpaceGenerator::generateBiased(s    405     else PhaseSpaceGenerator::generateBiased(sqrtS, list, 1, angularSlope);
406                                                   406     
407     fs->addModifiedParticle(particle1);           407     fs->addModifiedParticle(particle1);
408     fs->addModifiedParticle(particle2);           408     fs->addModifiedParticle(particle2);
409     fs->addCreatedParticle(kaon);                 409     fs->addCreatedParticle(kaon);
410     fs->addCreatedParticle(pion1);                410     fs->addCreatedParticle(pion1);
411     fs->addCreatedParticle(pion2);                411     fs->addCreatedParticle(pion2);
412                                                   412     
413   }                                               413   }
414 }                                                 414 }
415                                                   415