G4ReactionProduct.cc File Reference

#include "G4ReactionProduct.hh"

Go to the source code of this file.

Functions

G4ReactionProduct operator+ (const G4ReactionProduct &p1, const G4ReactionProduct &p2)
G4ReactionProduct operator- (const G4ReactionProduct &p1, const G4ReactionProduct &p2)

Variables

G4Allocator< G4ReactionProductaRPAllocator


Function Documentation

G4ReactionProduct operator+ ( const G4ReactionProduct p1,
const G4ReactionProduct p2 
)

Definition at line 236 of file G4ReactionProduct.cc.

References G4ReactionProduct::HasInitialStateParton(), G4ReactionProduct::momentum, G4ReactionProduct::SetFormationTime(), G4ReactionProduct::SetMass(), G4ReactionProduct::SetMomentum(), G4ReactionProduct::SetPositionInNucleus(), G4ReactionProduct::SetTotalEnergy(), and G4ReactionProduct::totalEnergy.

00238   {
00239     G4double totEnergy = p1.totalEnergy + p2.totalEnergy;
00240     G4double x = p1.momentum.x() + p2.momentum.x();
00241     G4double y = p1.momentum.y() + p2.momentum.y();
00242     G4double z = p1.momentum.z() + p2.momentum.z();
00243     G4double newMass = totEnergy*totEnergy - ( x*x + y*y + z*z );
00244     if( newMass < 0.0 )
00245       newMass = -1. * std::sqrt( -newMass );
00246     else
00247       newMass = std::sqrt( newMass );
00248     G4ReactionProduct result;
00249     result.SetMass( newMass );
00250     result.SetMomentum( x, y, z );
00251     result.SetTotalEnergy( totEnergy );
00252     result.SetPositionInNucleus( 0.0, 0.0, 0.0 );
00253     result.SetFormationTime(0.0);
00254     result.HasInitialStateParton(false);
00255     return result;
00256   }

G4ReactionProduct operator- ( const G4ReactionProduct p1,
const G4ReactionProduct p2 
)

Definition at line 258 of file G4ReactionProduct.cc.

References G4ReactionProduct::HasInitialStateParton(), G4ReactionProduct::momentum, G4ReactionProduct::SetFormationTime(), G4ReactionProduct::SetMass(), G4ReactionProduct::SetMomentum(), G4ReactionProduct::SetPositionInNucleus(), G4ReactionProduct::SetTotalEnergy(), and G4ReactionProduct::totalEnergy.

00260   {
00261     G4double totEnergy = p1.totalEnergy - p2.totalEnergy;
00262     G4double x = p1.momentum.x() - p2.momentum.x();
00263     G4double y = p1.momentum.y() - p2.momentum.y();
00264     G4double z = p1.momentum.z() - p2.momentum.z();
00265     G4double newMass = totEnergy*totEnergy - ( x*x + y*y + z*z );
00266     if( newMass < 0.0 )
00267       newMass = -1. * std::sqrt( -newMass );
00268     else
00269       newMass = std::sqrt( newMass );
00270     G4ReactionProduct result;
00271     result.SetMass( newMass );
00272     result.SetMomentum( x, y, z );
00273     result.SetTotalEnergy( totEnergy );
00274     result.SetPositionInNucleus( 0.0, 0.0, 0.0 );
00275     result.SetFormationTime(0.0);
00276     result.HasInitialStateParton(false);
00277     return result;
00278   }


Variable Documentation

G4Allocator<G4ReactionProduct> aRPAllocator

Definition at line 33 of file G4ReactionProduct.cc.

Referenced by G4ReactionProduct::operator delete(), and G4ReactionProduct::operator new().


Generated on Mon May 27 17:51:06 2013 for Geant4 by  doxygen 1.4.7