33 #define INCLXX_IN_GEANT4_MODE 1
47 :particle1(p1), particle2(p2)
86 apt = (800.0/
pl)*(800.0/pl);
89 G4double aaa = (1 + apt) * (1 - std::exp(-btmax))/b;
95 argu = std::exp(-4.0 * argu);
98 G4double aac = cpt * (1.0 - argu)/alphac;
101 z = std::exp(-4.0 * psq *alphac);
103 y = 1.0 - ranres*(1.0 -
z);
104 T = std::log(y)/alphac;
110 if(std::abs(ctet) > 1.0) ctet =
Math::sign(ctet);
111 G4double stet = std::sqrt(1.0 - ctet*ctet);
121 if(xx >= (zz * 1.0e-8)) {
126 ez[0] = p.
getX() / pnorm;
127 ez[1] = p.
getY() / pnorm;
128 ez[2] = p.
getZ() / pnorm;
131 ex[0] = p.
getY() / yn;
132 ex[1] = -p.
getX() / yn;
139 G4double pX = (ex[0]*cfi*stet + ey[0]*sfi*stet + ez[0]*ctet) * pnorm;
140 G4double pY = (ex[1]*cfi*stet + ey[1]*sfi*stet + ez[1]*ctet) * pnorm;
141 G4double pZ = (ex[2]*cfi*stet + ey[2]*sfi*stet + ez[2]*ctet) * pnorm;
164 apt = std::pow(800.0/pl, 2);
166 if(iexpi == 1 || rndm > 1.0/(1.0 + apt)) {
DOUBLE PRECISION function rndm(RDUMMY)
virtual ~ElasticChannel()
G4double squareTotalEnergyInCM(Particle const *const p1, Particle const *const p2)
const G4INCL::ThreeVector & getMomentum() const
ElasticChannel(Particle *p1, Particle *p2)
G4double calculateNNAngularSlope(G4double energyCM, G4int iso)
Calculate the slope of the NN DDXS.
G4int getIsospin(const ParticleType t)
Get the isospin of a particle.
T max(const T t1, const T t2)
brief Return the largest of the two arguments
G4INCL::ParticleType getType() const
void setType(ParticleType t)
FinalState * getFinalState()
G4double momentumInLab(Particle const *const p1, Particle const *const p2)
gives the momentum in the lab frame of two particles.
const G4double effectiveNucleonMass
void addModifiedParticle(Particle *p)
virtual void setMomentum(const G4INCL::ThreeVector &momentum)