67 toZ.rotateZ(-Ptmp.phi());
68 toZ.rotateY(-Ptmp.theta());
69 toLabFrame *= toZ.inverse();
105 G4double Theta = std::acos(cosTheta);
108 G4ThreeVector pFinal1(std::sin(Theta)*std::cos(phi), std::sin(Theta)*std::sin(phi), cosTheta);
110 G4double pInCM = std::sqrt((S-(m10+m20)*(m10+m20))*(S-(m10-m20)*(m10-m20))/(4.*S));
111 pFinal1 = pFinal1 * pInCM;
114 G4double eFinal1 = std::sqrt(pFinal1.mag2() + m10*m10);
115 G4double eFinal2 = std::sqrt(pFinal2.mag2() + m20*m20);
121 p4Final1 *= toLabFrame;
122 p4Final2 *= toLabFrame;
131 finalTracks->push_back(final1);
132 finalTracks->push_back(final2);
CLHEP::Hep3Vector G4ThreeVector
virtual G4KineticTrackVector * FinalState(const G4KineticTrack &trk1, const G4KineticTrack &trk2) const
CLHEP::HepLorentzRotation G4LorentzRotation
G4double GetActualMass() const
virtual const G4VAngularDistribution * GetAngularDistribution() const =0
virtual G4double CosTheta(G4double s, G4double m1, G4double m2) const =0
G4ParticleDefinition * GetDefinition() const
virtual G4double Phi() const
virtual ~G4VElasticCollision()
static G4Proton * Proton()
static G4Neutron * Neutron()
void Set4Momentum(const G4LorentzVector &a4Momentum)
G4double GetPDGMass() const
const G4LorentzVector & Get4Momentum() const
CLHEP::HepLorentzVector G4LorentzVector