55{
57
59
60
62
69
74
77
78
80
83 {
85 {
87 {
88
89
90 } else {
91
92
93 }
94 } else {
95
96
97 }
98 } else {
99
100
101 }
102
104 G4double Theta = std::acos(cosTheta);
105
106
107 G4ThreeVector pFinal1(std::sin(Theta)*std::cos(phi), std::sin(Theta)*std::sin(phi), cosTheta);
108
109 G4double pInCM = std::sqrt((
S-(m10+m20)*(m10+m20))*(
S-(m10-m20)*(m10-m20))/(4.*
S));
110 pFinal1 = pFinal1 * pInCM;
112
113 G4double eFinal1 = std::sqrt(pFinal1.mag2() + m10*m10);
115
118
119
120 p4Final1 *= toLabFrame;
121 p4Final2 *= toLabFrame;
122
123
128
130 finalTracks->push_back(final1);
131 finalTracks->push_back(final2);
132
133 return finalTracks;
134}
HepLorentzRotation & rotateY(double delta)
HepLorentzRotation & rotateZ(double delta)
HepLorentzRotation inverse() const
Hep3Vector boostVector() const
void Set4Momentum(const G4LorentzVector &a4Momentum)
const G4ParticleDefinition * GetDefinition() const
const G4LorentzVector & Get4Momentum() const
G4double GetActualMass() const
static G4Neutron * Neutron()
G4double GetPDGMass() const
static G4Proton * Proton()
virtual G4double Phi() const
virtual G4double CosTheta(G4double s, G4double m1, G4double m2) const =0
virtual const G4VAngularDistribution * GetAngularDistribution() const =0