55 theMomentumDirectionChange(),
56 thePolarizationChange(),
58 theVelocityChange(0.), isVelocityChanged(
false),
60 theGlobalTime0(0.), theLocalTime0(0.),
61 theTimeChange(0.), theProperTimeChange(0.),
62 theMassChange(0.), theChargeChange(0.),
63 theMagneticMomentChange(0.), theCurrentTrack(0)
71 G4cout <<
"G4ParticleChange::~G4ParticleChange() " <<
G4endl;
81 G4cout <<
"G4ParticleChange:: copy constructor is called " <<
G4endl;
105 G4cout <<
"G4ParticleChange:: assignment operator is called " <<
G4endl;
112 G4cout <<
"G4ParticleChange: assignment operator Warning ";
113 G4cout <<
"theListOfSecondaries is not empty ";
168 G4bool IsGoodForTracking )
185 G4bool IsGoodForTracking )
202 G4bool IsGoodForTracking )
299 if( tMomentum > 0. ){
300 G4double inv_Momentum= 1.0 / tMomentum;
301 direction= pMomentum * inv_Momentum;
451 G4cout <<
" Mass (GeV) : "
454 G4cout <<
" Charge (eplus) : "
457 G4cout <<
" MagneticMoment : "
459 G4cout <<
" : = " << std::setw(20)
463 G4cout <<
" Position - x (mm) : "
466 G4cout <<
" Position - y (mm) : "
469 G4cout <<
" Position - z (mm) : "
475 G4cout <<
" Proper Time (ns) : "
478 G4cout <<
" Momentum Direct - x : "
481 G4cout <<
" Momentum Direct - y : "
484 G4cout <<
" Momentum Direct - z : "
487 G4cout <<
" Kinetic Energy (MeV): "
490 G4cout <<
" Velocity (/c): "
493 G4cout <<
" Polarization - x : "
496 G4cout <<
" Polarization - y : "
499 G4cout <<
" Polarization - z : "
507 G4bool exitWithError =
false;
511 const G4int maxError = 30;
518 G4bool itsOKforMomentum =
true;
522 itsOKforMomentum =
false;
526 if (nError < maxError) {
527 G4cout <<
" G4ParticleChange::CheckIt : ";
528 G4cout <<
"the Momentum Change is not unit vector !!"
529 <<
" Difference: " << accuracy <<
G4endl;
542 G4bool itsOKforGlobalTime =
true;
545 itsOKforGlobalTime =
false;
549 if (nError < maxError) {
550 G4cout <<
" G4ParticleChange::CheckIt : ";
551 G4cout <<
"the local time goes back !!"
552 <<
" Difference: " << accuracy <<
"[ns] " <<
G4endl;
566 G4bool itsOKforProperTime =
true;
569 itsOKforProperTime =
false;
573 if (nError < maxError) {
574 G4cout <<
" G4ParticleChange::CheckIt : ";
575 G4cout <<
"the proper time goes back !!"
576 <<
" Difference: " << accuracy <<
"[ns] " <<
G4endl;
591 G4bool itsOKforEnergy =
true;
594 itsOKforEnergy =
false;
598 if (nError < maxError) {
599 G4cout <<
" G4ParticleChange::CheckIt : ";
600 G4cout <<
"the kinetic energy is negative !!"
601 <<
" Difference: " << accuracy <<
"[MeV] " <<
G4endl;
613 G4bool itsOKforVelocity =
true;
615 itsOKforVelocity =
false;
617 exitWithError =
true;
619 if (nError < maxError) {
620 G4cout <<
" G4ParticleChange::CheckIt : ";
621 G4cout <<
"the velocity is negative !!"
635 itsOKforVelocity =
false;
639 if (nError < maxError) {
640 G4cout <<
" G4ParticleChange::CheckIt : ";
641 G4cout <<
"the velocity is greater than c_light !!" <<
G4endl;
653 G4bool itsOK = itsOKforMomentum && itsOKforEnergy && itsOKforVelocity && itsOKforProperTime && itsOKforGlobalTime;
665 "momentum, energy, and/or time was illegal");
668 if (!itsOKforMomentum) {
672 if (!itsOKforGlobalTime) {
675 if (!itsOKforProperTime) {
678 if (!itsOKforEnergy) {
681 if (!itsOKforVelocity) {