48 : verboseLevel(0), v2(0.), ecm_tot(0.), valong(0.), degenerated(false) {}
53 : verboseLevel(0), v2(0.), ecm_tot(0.), valong(0.), degenerated(false) {
61 : verboseLevel(0), v2(0.), ecm_tot(0.), valong(0.), degenerated(false) {
80 G4cout <<
" >>> G4LorentzConvertor::toTheCenterOfMass" <<
G4endl;
97 G4cout <<
" >>> G4LorentzConvertor::toTheTargetRestFrame" <<
G4endl;
126 G4cout <<
" degenerated case (already along Z) " <<
G4endl;
129 G4cout <<
" v2 " <<
v2 <<
" valong " << valong
130 <<
" valong*valong " << valong*valong <<
G4endl;
137 G4cout <<
" >>> G4LorentzConvertor::backToTheLab" <<
G4endl;
140 G4cout <<
" at rest: px " << mom.x() <<
" py " << mom.y() <<
" pz "
141 << mom.z() <<
" e " << mom.e() << G4endl
148 G4cout <<
" at lab: px " << mom1.x() <<
" py " << mom1.y() <<
" pz "
159 G4cout <<
" >>> G4LorentzConvertor::getKinEnergyInTheTRS" <<
G4endl;
163 return bmom.e()-bmom.m();
168 G4cout <<
" >>> G4LorentzConvertor::getTRSMomentum" <<
G4endl;
177 G4cout <<
" >>> G4LorentzConvertor::rotate(G4LorentzVector)" <<
G4endl;
181 <<
" before rotation: px " << mom.x() <<
" py " << mom.y()
182 <<
" pz " << mom.z() <<
G4endl;
188 G4cout <<
" rotating to align with reference z axis " <<
G4endl;
193 if (vscm.mag() >
small && vxcm.mag() >
small) {
195 G4cout <<
" reference z axis " << scm_direction
196 <<
" vscm " << vscm <<
" vxcm " << vxcm <<
G4endl;
199 mom_rot.setVect(mom.x()*vscm.unit() + mom.y()*vxcm.unit() +
203 G4cerr <<
">>> G4LorentzVector::rotate zero with !degenerated" <<
G4endl;
208 G4cout <<
" after rotation: px " << mom_rot.x() <<
" py " << mom_rot.y()
209 <<
" pz " << mom_rot.z() <<
G4endl;
218 G4cout <<
" >>> G4LorentzConvertor::rotate(G4LorentzVector,G4LorentzVector)"
222 G4cout <<
" before rotation: px " << mom.x() <<
" py " << mom.y()
223 <<
" pz " << mom.z() <<
G4endl;
231 G4cout <<
" vperp " << vperp <<
" small? " << (vperp <=
small) << G4endl;
238 G4cout <<
" rotating to align with first z axis " <<
G4endl;
243 if (vmom1.mag() >
small && vxm1.mag() >
small) {
245 G4cout <<
" first z axis " << mom1_dir << G4endl
246 <<
" vmom1 " << vmom1 <<
" vxm1 " << vxm1 <<
G4endl;
249 mom_rot.setVect(mom.x()*vmom1.unit() + mom.y()*vxm1.unit() +
253 G4cerr <<
">>> G4LorentzVector::rotate zero with !degenerated" <<
G4endl;
258 G4cout <<
" after rotation: px " << mom_rot.x() <<
" py " << mom_rot.y()
259 <<
" pz " << mom_rot.z() <<
G4endl;
267 G4cout <<
" >>> G4LorentzConvertor::reflectionNeeded (query)" <<
G4endl;
275 throw G4HadronicException(__FILE__, __LINE__,
"G4LorentzConvertor::reflectionNeeded - return value undefined");
278 G4cout <<
" reflection across XY is"
G4LorentzVector bullet_mom
G4double getTRSMomentum() const
CLHEP::Hep3Vector G4ThreeVector
G4LorentzVector getMomentum() const
G4ThreeVector scm_direction
G4LorentzVector rotate(const G4LorentzVector &mom) const
void setBullet(const G4InuclParticle *bullet)
G4LorentzVector backToTheLab(const G4LorentzVector &mom) const
G4GLOB_DLL std::ostream G4cout
static constexpr double m
G4LorentzVector scm_momentum
G4double getKinEnergyInTheTRS() const
G4bool reflectionNeeded() const
G4LorentzVector target_mom
void toTheTargetRestFrame()
static const G4double small
G4GLOB_DLL std::ostream G4cerr
void setTarget(const G4InuclParticle *target)
CLHEP::HepLorentzVector G4LorentzVector