34#define INCLXX_IN_GEANT4_MODE 1
48 : particle1(p1), particle2(p2)
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);
101 if (iso == 1 || iso == -1) {
105 nucleon->setType(nucleonType);
107 pion->setType(pionType);
111 nucleon->setType(nucleonType);
117 nucleon->setType(nucleonType);
119 pion->setType(pionType);
123 if ( startingNucleonType != nucleon->getType() || startingPionType != pion->getType() ) {
124 nucleon->setParentResonancePDGCode(0);
125 nucleon->setParentResonanceID(0);
126 pion->setParentResonancePDGCode(0);
127 pion->setParentResonanceID(0);
void addModifiedParticle(Particle *p)
virtual ~PiNElasticChannel()
void fillFinalState(FinalState *fs)
PiNElasticChannel(Particle *, Particle *)
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.