69 G4double px_nucleon=nucleon->getMomentum().getX();
70 G4double py_nucleon=nucleon->getMomentum().getY();
71 G4double pz_nucleon=nucleon->getMomentum().getZ();
72 G4double cnorm1=px_nucleon*px_nucleon+py_nucleon*py_nucleon;
74 G4double tnorm=cnorm1+pz_nucleon*pz_nucleon;
76 G4double btm=std::exp(-4.*tnorm*bpn);
81 G4double stheta=std::sqrt(1.-ctheta*ctheta);
90 px_nucleon*ctheta+cnorm*stheta*(t1*t7+t4*t8),
91 py_nucleon*ctheta+cnorm*stheta*(t2*t7+t5*t8),
92 pz_nucleon*ctheta+cnorm*stheta*t6*t8
94 nucleon->setMomentum(mom_nucleon);
95 pion->setMomentum(-mom_nucleon);
97#ifdef INCLXX_IN_GEANT4_MODE
103 if (iso == 1 || iso == -1) {
107 nucleon->setType(nucleonType);
109 pion->setType(pionType);
113 nucleon->setType(nucleonType);
119 nucleon->setType(nucleonType);
121 pion->setType(pionType);
124#ifdef INCLXX_IN_GEANT4_MODE
126 if ( startingNucleonType != nucleon->getType() || startingPionType != pion->getType() ) {
127 nucleon->setParentResonancePDGCode(0);
128 nucleon->setParentResonanceID(0);
129 pion->setParentResonancePDGCode(0);
130 pion->setParentResonanceID(0);
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.