34#define INCLXX_IN_GEANT4_MODE 1
49 const G4double NNOmegaToMultiPionsChannel::angularSlope = 6.;
58 std::fill(isosp, isosp+4, 0);
72 list.push_back(particle1);
73 list.push_back(particle2);
85 const ThreeVector rcol = (rcolnucleon1+rcolnucleon2)*0.5;
87 for(
G4int i=0; i<npion; ++i) {
94 list.push_back(omega);
103 void NNOmegaToMultiPionsChannel::isospinRepartition() {
106 const G4int itot=iso1+iso2;
110 if (p < 1.) pn_ppPim();
111 else if (p < 2.) pn_pnPi0();
114 else if (npion == 2) {
117 if (p >= 14.) pp_nnPipPip();
118 else if (p >= 11.) pp_pnPipPi0();
119 else if (p >= 7.) pp_ppPi0Pi0();
122 else if (itot == -2) {
124 if (p >= 14.) nn_ppPimPim();
125 else if (p >= 11.) nn_pnPimPi0();
126 else if (p >= 7.) nn_nnPi0Pi0();
142 if (p >= 51.) pn_nnPipPi0();
143 else if (p >= 33.) pn_pnPi0Pi0();
144 else if (p >= 9.) pn_pnPipPim();
149 else if (npion == 3) {
152 if (p >= 42.) pp_nnPipPipPi0();
153 else if (p >= 39.) pp_pnPipPi0Pi0();
154 else if (p >= 33.) pp_pnPipPipPim();
155 else if (p >= 22.) pp_ppPi0Pi0Pi0();
156 else pp_ppPipPimPi0();
158 else if (itot == -2) {
159 if (p >= 42.) nn_ppPimPimPi0();
160 else if (p >= 39.) nn_pnPimPi0Pi0();
161 else if (p >= 33.) nn_pnPipPimPim();
162 else if (p >= 22.) nn_nnPi0Pi0Pi0();
163 else nn_nnPipPimPi0();
166 if (p >= 57.) pn_nnPipPi0Pi0();
167 else if (p >= 51.) pn_nnPipPipPim();
168 else if (p >= 37.) pn_pnPi0Pi0Pi0();
169 else if (p >= 9.) pn_pnPi0PipPim();
170 else if (p >= 6.) pn_ppPimPi0Pi0();
171 else pn_ppPimPimPip();
175 else if (npion == 4) {
178 if (p >= 48.) pp_nnPipPipPipPim();
179 else if (p >= 42.) pp_nnPipPipPi0Pi0();
180 else if (p >= 36.) pp_pnPipPipPi0Pim();
181 else if (p >= 33.) pp_pnPipPi0Pi0Pi0();
182 else if (p >= 19.) pp_ppPipPipPimPim();
183 else if (p >= 4.) pp_ppPipPi0Pi0Pim();
184 else pp_ppPi0Pi0Pi0Pi0();
186 else if (itot == -2) {
187 if (p >= 48.) nn_ppPipPimPimPim();
188 else if (p >= 42.) nn_ppPi0Pi0PimPim();
189 else if (p >= 36.) nn_pnPipPi0PimPim();
190 else if (p >= 33.) nn_pnPi0Pi0Pi0Pim();
191 else if (p >= 19.) nn_nnPipPipPimPim();
192 else if (p >= 4.) nn_nnPipPi0Pi0Pim();
193 else nn_nnPi0Pi0Pi0Pi0();
199 if (p < 1.) pn_pnPi0Pi0Pi0Pi0();
200 else if (p < 5.) pn_pnPipPi0Pi0Pim();
201 else pn_pnPipPipPimPim();
204 if (p < 3.) pn_ppPi0Pi0Pi0Pim();
205 else if (p < 9.) pn_ppPipPi0PimPim();
206 else if (p < 15.) pn_pnPi0Pi0Pi0Pi0();
207 else if (p < 35.) pn_pnPipPi0Pi0Pim();
208 else if (p < 51.) pn_pnPipPipPimPim();
209 else if (p < 54.) pn_nnPipPi0Pi0Pi0();
210 else pn_nnPipPipPi0Pim();
220 void NNOmegaToMultiPionsChannel::pn_ppPim() {
225 void NNOmegaToMultiPionsChannel::pn_pnPi0() {
228 void NNOmegaToMultiPionsChannel::pn_nnPip() {
233 void NNOmegaToMultiPionsChannel::pp_nnPipPip() {
239 void NNOmegaToMultiPionsChannel::nn_ppPimPim() {
245 void NNOmegaToMultiPionsChannel::pn_pnPipPim() {
249 void NNOmegaToMultiPionsChannel::pn_pnPi0Pi0() {
253 void NNOmegaToMultiPionsChannel::pp_ppPipPim() {
257 void NNOmegaToMultiPionsChannel::nn_nnPipPim() {
261 void NNOmegaToMultiPionsChannel::pp_ppPi0Pi0() {
265 void NNOmegaToMultiPionsChannel::nn_nnPi0Pi0() {
269 void NNOmegaToMultiPionsChannel::pp_pnPipPi0() {
275 void NNOmegaToMultiPionsChannel::pn_ppPimPi0() {
281 void NNOmegaToMultiPionsChannel::pn_nnPipPi0() {
287 void NNOmegaToMultiPionsChannel::nn_pnPimPi0() {
293 void NNOmegaToMultiPionsChannel::pp_pnPipPi0Pi0() {
300 void NNOmegaToMultiPionsChannel::nn_pnPimPi0Pi0() {
307 void NNOmegaToMultiPionsChannel::pn_nnPipPi0Pi0() {
314 void NNOmegaToMultiPionsChannel::pp_ppPipPimPi0() {
319 void NNOmegaToMultiPionsChannel::nn_nnPipPimPi0() {
324 void NNOmegaToMultiPionsChannel::pp_ppPi0Pi0Pi0() {
329 void NNOmegaToMultiPionsChannel::nn_nnPi0Pi0Pi0() {
334 void NNOmegaToMultiPionsChannel::pp_pnPipPipPim() {
341 void NNOmegaToMultiPionsChannel::pp_nnPipPipPi0() {
348 void NNOmegaToMultiPionsChannel::pn_ppPimPi0Pi0() {
355 void NNOmegaToMultiPionsChannel::pn_ppPimPimPip() {
362 void NNOmegaToMultiPionsChannel::pn_pnPi0PipPim() {
367 void NNOmegaToMultiPionsChannel::pn_pnPi0Pi0Pi0() {
372 void NNOmegaToMultiPionsChannel::pn_nnPipPipPim() {
379 void NNOmegaToMultiPionsChannel::nn_pnPipPimPim() {
386 void NNOmegaToMultiPionsChannel::nn_ppPimPimPi0() {
393 void NNOmegaToMultiPionsChannel::pp_nnPipPipPi0Pi0() {
401 void NNOmegaToMultiPionsChannel::pp_nnPipPipPipPim() {
409 void NNOmegaToMultiPionsChannel::nn_ppPi0Pi0PimPim() {
417 void NNOmegaToMultiPionsChannel::nn_ppPipPimPimPim() {
425 void NNOmegaToMultiPionsChannel::pp_ppPi0Pi0Pi0Pi0() {
431 void NNOmegaToMultiPionsChannel::nn_nnPi0Pi0Pi0Pi0() {
437 void NNOmegaToMultiPionsChannel::pn_pnPi0Pi0Pi0Pi0() {
443 void NNOmegaToMultiPionsChannel::pp_ppPipPi0Pi0Pim() {
449 void NNOmegaToMultiPionsChannel::nn_nnPipPi0Pi0Pim() {
455 void NNOmegaToMultiPionsChannel::pn_pnPipPi0Pi0Pim() {
461 void NNOmegaToMultiPionsChannel::pp_ppPipPipPimPim() {
467 void NNOmegaToMultiPionsChannel::nn_nnPipPipPimPim() {
473 void NNOmegaToMultiPionsChannel::pn_pnPipPipPimPim() {
479 void NNOmegaToMultiPionsChannel::pp_pnPipPi0Pi0Pi0() {
487 void NNOmegaToMultiPionsChannel::pn_nnPipPi0Pi0Pi0() {
495 void NNOmegaToMultiPionsChannel::pp_nnPipPi0Pi0Pi0() {
503 void NNOmegaToMultiPionsChannel::pp_pnPipPipPi0Pim() {
511 void NNOmegaToMultiPionsChannel::pn_nnPipPipPi0Pim() {
519 void NNOmegaToMultiPionsChannel::pp_nnPipPipPi0Pim() {
527 void NNOmegaToMultiPionsChannel::nn_pnPi0Pi0Pi0Pim() {
535 void NNOmegaToMultiPionsChannel::pn_ppPi0Pi0Pi0Pim() {
543 void NNOmegaToMultiPionsChannel::nn_pnPipPi0PimPim() {
551 void NNOmegaToMultiPionsChannel::pn_ppPipPi0PimPim() {
560 void NNOmegaToMultiPionsChannel::inter2Part(
const G4double p) {
void addModifiedParticle(Particle *p)
void addCreatedParticle(Particle *p)
virtual ~NNOmegaToMultiPionsChannel()
void fillFinalState(FinalState *fs)
NNOmegaToMultiPionsChannel(const G4int, Particle *, Particle *)
const G4INCL::ThreeVector & getPosition() const
G4INCL::ParticleType getType() const
void setType(ParticleType t)
G4double totalEnergyInCM(Particle const *const p1, Particle const *const p2)
G4int getIsospin(const ParticleType t)
Get the isospin of a particle.
ParticleType getNucleonType(const G4int isosp)
Get the type of nucleon.
ParticleType getPionType(const G4int isosp)
Get the type of pion.
void generateBiased(const G4double sqrtS, ParticleList &particles, const size_t index, const G4double slope)
Generate a biased event in the CM system.
Adapter const & getAdapter()