G4XMesonBaryonElastic Class Reference

#include <G4XMesonBaryonElastic.hh>

Inheritance diagram for G4XMesonBaryonElastic:

G4VCrossSectionSource

Public Member Functions

 G4XMesonBaryonElastic ()
virtual ~G4XMesonBaryonElastic ()
G4bool operator== (const G4XMesonBaryonElastic &right) const
G4bool operator!= (const G4XMesonBaryonElastic &right) const
virtual G4double CrossSection (const G4KineticTrack &trk1, const G4KineticTrack &trk2) const
virtual const G4CrossSectionVectorGetComponents () const
virtual G4bool IsValid (G4double e) const
virtual G4String Name () const

Detailed Description

Definition at line 50 of file G4XMesonBaryonElastic.hh.


Constructor & Destructor Documentation

G4XMesonBaryonElastic::G4XMesonBaryonElastic (  ) 

Definition at line 38 of file G4XMesonBaryonElastic.cc.

References DBL_MAX.

00039 { 
00040   // As a first approximation the model is assumed to be valid over 
00041   // the entire energy range
00042   lowLimit = 0.;
00043   highLimit = DBL_MAX;
00044 }

G4XMesonBaryonElastic::~G4XMesonBaryonElastic (  )  [virtual]

Definition at line 47 of file G4XMesonBaryonElastic.cc.

00048 { }


Member Function Documentation

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

Implements G4VCrossSectionSource.

Definition at line 63 of file G4XMesonBaryonElastic.cc.

References G4XPDGElastic::CrossSection(), G4XAqmElastic::CrossSection(), G4VCrossSectionSource::FindLightParticle(), G4Gamma::GammaDefinition(), G4KineticTrack::Get4Momentum(), G4KineticTrack::GetFormationTime(), G4KineticTrack::GetPosition(), G4PionPlus::PionPlusDefinition(), and G4Proton::ProtonDefinition().

00064 {
00065   G4double sigma;
00066 
00067   // No gamma-baryon elastic scattering 
00068   const G4ParticleDefinition* defLight = FindLightParticle(trk1,trk2);
00069   if (defLight == G4Gamma::GammaDefinition())
00070     {
00071       sigma = 0;
00072     }
00073   else
00074     {
00075 
00076       G4LorentzVector p41 = trk1.Get4Momentum();
00077       G4ThreeVector p3 = trk1.GetPosition();
00078       G4ParticleDefinition* def = G4PionPlus::PionPlusDefinition();
00079 
00080       G4KineticTrack piTrk(def,
00081                            trk1.GetFormationTime(),
00082                            p3,
00083                            (G4LorentzVector&)p41);
00084 
00085       G4LorentzVector p42 = trk2.Get4Momentum();    
00086       G4KineticTrack pTrk(((G4ParticleDefinition*)G4Proton::ProtonDefinition()),
00087                           trk2.GetFormationTime(),
00088                           (G4ThreeVector)trk2.GetPosition(),
00089                           (G4LorentzVector&)p42);
00090       
00091       G4XAqmElastic aqm;
00092       G4double xAqmDummy = aqm.CrossSection(piTrk,pTrk);
00093       G4double xAqm = aqm.CrossSection(trk1,trk2);
00094       G4double factor = 1.;
00095       if (xAqmDummy != 0.0)
00096         {
00097           factor = xAqm / xAqmDummy;
00098         }
00099       G4XPDGElastic pdg;
00100       
00101       sigma = pdg.CrossSection(piTrk,pTrk);
00102       sigma = sigma * factor;
00103     }
00104   
00105   return sigma;
00106 }

virtual const G4CrossSectionVector* G4XMesonBaryonElastic::GetComponents (  )  const [inline, virtual]

Implements G4VCrossSectionSource.

Definition at line 64 of file G4XMesonBaryonElastic.hh.

00064 { return 0; }

G4bool G4XMesonBaryonElastic::IsValid ( G4double  e  )  const [virtual]

Reimplemented from G4VCrossSectionSource.

Definition at line 117 of file G4XMesonBaryonElastic.cc.

References G4VCrossSectionSource::InLimits().

00118 {
00119   G4bool answer = InLimits(e,lowLimit,highLimit);
00120 
00121   return answer;
00122 }

G4String G4XMesonBaryonElastic::Name (  )  const [virtual]

Implements G4VCrossSectionSource.

Definition at line 109 of file G4XMesonBaryonElastic.cc.

00110 {
00111   G4String name("MesonBaryonElasticCrossSection");
00112   return name;
00113 }

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

Definition at line 57 of file G4XMesonBaryonElastic.cc.

00058 {
00059   return (this != (G4XMesonBaryonElastic *) &right);
00060 }

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

Definition at line 51 of file G4XMesonBaryonElastic.cc.

00052 {
00053   return (this == (G4XMesonBaryonElastic *) &right);
00054 }


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