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);
98 if (iso == 1 || iso == -1) {
102 nucleon->setType(nucleonType);
104 pion->setType(pionType);
108 nucleon->setType(nucleonType);
114 nucleon->setType(nucleonType);
116 pion->setType(pionType);
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.