G4CollisionNN Class Reference

#include <G4CollisionNN.hh>

Inheritance diagram for G4CollisionNN:

G4GeneralNNCollision G4CollisionComposite G4VCollision

Public Member Functions

 G4CollisionNN ()
virtual ~G4CollisionNN ()
G4bool operator== (const G4CollisionNN &right) const
G4bool operator!= (const G4CollisionNN &right) const
virtual G4String GetName () const
virtual G4double CrossSection (const G4KineticTrack &trk1, const G4KineticTrack &trk2) const

Protected Member Functions

virtual const G4VCrossSectionSourceGetCrossSectionSource () const
virtual const G4VAngularDistributionGetAngularDistribution () const
virtual const G4CollisionVectorGetComponents () const
virtual const std::vector<
G4String > & 
GetListOfColliders (G4int whichOne) const

Detailed Description

Definition at line 40 of file G4CollisionNN.hh.


Constructor & Destructor Documentation

G4CollisionNN::G4CollisionNN (  ) 

Definition at line 55 of file G4CollisionNN.cc.

References G4ForEach< group >::Apply().

00056 { 
00057   components=0;
00058   crossSectionSource = new G4XNNTotal();
00059   G4CollisionComposite::Register aR;
00060   G4ForEach<theChannels>::Apply(&aR, this);
00061 }

G4CollisionNN::~G4CollisionNN (  )  [virtual]

Definition at line 64 of file G4CollisionNN.cc.

00065 { 
00066   if (components) {
00067         delete components;
00068         components=0;
00069   }
00070   delete crossSectionSource;
00071   crossSectionSource = 0;
00072 }


Member Function Documentation

G4double G4CollisionNN::CrossSection ( const G4KineticTrack trk1,
const G4KineticTrack trk2 
) const [virtual]

Reimplemented from G4CollisionComposite.

Definition at line 82 of file G4CollisionNN.cc.

References G4VCrossSectionSource::CrossSection(), G4KineticTrack::Get4Momentum(), G4KineticTrack::GetActualMass(), GetCrossSectionSource(), G4KineticTrack::GetDefinition(), G4ParticleDefinition::GetPDGMass(), and G4KineticTrack::Set4Momentum().

00084 {
00085   G4double sigma = 0.;
00086 
00087   // nucleon-nucleon cross-sections made for on-shell particles.
00088   // here we take the kinetic energy as the quantity relevant
00089   // for calculating the scattering cross-sections for off-shell hadrons
00090   
00091   const G4VCrossSectionSource* xSource = GetCrossSectionSource();
00092   G4LorentzVector p1 = aTrk1.Get4Momentum();
00093   G4LorentzVector p2 = aTrk2.Get4Momentum();
00094   G4double t1 = p1.e()-aTrk1.GetActualMass();
00095   G4double t2 = p2.e()-aTrk2.GetActualMass();
00096   p1.setE(t1+aTrk1.GetDefinition()->GetPDGMass());
00097   p2.setE(t2+aTrk2.GetDefinition()->GetPDGMass());
00098   G4KineticTrack trk1(aTrk1);
00099   trk1.Set4Momentum(p1);
00100   G4KineticTrack trk2(aTrk2);
00101   trk2.Set4Momentum(p2);
00102   if( (p1+p2).mag()<aTrk1.GetDefinition()->GetPDGMass()+aTrk2.GetDefinition()->GetPDGMass())
00103   {
00104     return 0.;
00105   }
00106 
00107   if (xSource != 0)
00108     {
00109       // There is a cross section for this Collision
00110       sigma = xSource->CrossSection(trk1,trk2);
00111     }
00112   return sigma;
00113 }

virtual const G4VAngularDistribution* G4CollisionNN::GetAngularDistribution (  )  const [inline, protected, virtual]

Reimplemented from G4CollisionComposite.

Definition at line 65 of file G4CollisionNN.hh.

00065 { return 0; }

virtual const G4CollisionVector* G4CollisionNN::GetComponents (  )  const [inline, protected, virtual]

Reimplemented from G4CollisionComposite.

Definition at line 67 of file G4CollisionNN.hh.

00067 { return components; } 

virtual const G4VCrossSectionSource* G4CollisionNN::GetCrossSectionSource (  )  const [inline, protected, virtual]

Reimplemented from G4CollisionComposite.

Definition at line 64 of file G4CollisionNN.hh.

Referenced by CrossSection().

00064 { return crossSectionSource; }

const std::vector< G4String > & G4CollisionNN::GetListOfColliders ( G4int  whichOne  )  const [protected, virtual]

Implements G4VCollision.

Definition at line 75 of file G4CollisionNN.cc.

00076 {
00077           throw G4HadronicException(__FILE__, __LINE__, "G4CollisionNN::GetListOfColliders - Argument outside valid range"); 
00078           return colliders1;
00079 }

virtual G4String G4CollisionNN::GetName (  )  const [inline, virtual]

Implements G4VCollision.

Definition at line 52 of file G4CollisionNN.hh.

00052 { return "NN CollisionComposite"; }

G4bool G4CollisionNN::operator!= ( const G4CollisionNN right  )  const

G4bool G4CollisionNN::operator== ( const G4CollisionNN right  )  const


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:51:39 2013 for Geant4 by  doxygen 1.4.7