Geant4 11.4.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4XMesonBaryonElastic Class Reference

#include <G4XMesonBaryonElastic.hh>

Inheritance diagram for G4XMesonBaryonElastic:

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
Public Member Functions inherited from G4VCrossSectionSource
 G4VCrossSectionSource ()
virtual ~G4VCrossSectionSource ()
G4bool operator== (const G4VCrossSectionSource &right) const
G4bool operator!= (const G4VCrossSectionSource &right) const
virtual void Print () const
virtual void PrintAll (const G4KineticTrack &trk1, const G4KineticTrack &trk2) const
virtual G4double HighLimit () const
virtual G4double LowLimit () const

Additional Inherited Members

Protected Member Functions inherited from G4VCrossSectionSource
G4bool InLimits (G4double e, G4double eLow, G4double eHigh) const
const G4ParticleDefinitionFindLightParticle (const G4KineticTrack &trk1, const G4KineticTrack &trk2) const
G4double FcrossX (G4double e, G4double e0, G4double sigma, G4double eParam, G4double power) const
const G4ParticleDefinitionFindKeyParticle (const G4KineticTrack &trk1, const G4KineticTrack &trk2) const

Detailed Description

Definition at line 50 of file G4XMesonBaryonElastic.hh.

Constructor & Destructor Documentation

◆ G4XMesonBaryonElastic()

G4XMesonBaryonElastic::G4XMesonBaryonElastic ( )

Definition at line 38 of file G4XMesonBaryonElastic.cc.

39{
40 // As a first approximation the model is assumed to be valid over
41 // the entire energy range
42 lowLimit = 0.;
43 highLimit = DBL_MAX;
44}
#define DBL_MAX
Definition templates.hh:62

Referenced by operator!=(), and operator==().

◆ ~G4XMesonBaryonElastic()

G4XMesonBaryonElastic::~G4XMesonBaryonElastic ( )
virtual

Definition at line 47 of file G4XMesonBaryonElastic.cc.

48{ }

Member Function Documentation

◆ CrossSection()

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

Implements G4VCrossSectionSource.

Definition at line 63 of file G4XMesonBaryonElastic.cc.

64{
65 G4double sigma;
66
67 // No gamma-baryon elastic scattering
68 const G4ParticleDefinition* defLight = FindLightParticle(trk1,trk2);
69 if (defLight == G4Gamma::GammaDefinition())
70 {
71 sigma = 0;
72 }
73 else
74 {
75
76 G4LorentzVector p41 = trk1.Get4Momentum();
77 G4ThreeVector p3 = trk1.GetPosition();
78 G4ParticleDefinition* def = G4PionPlus::PionPlusDefinition();
79
80 G4KineticTrack piTrk(def,
81 trk1.GetFormationTime(),
82 p3,
83 (G4LorentzVector&)p41);
84
85 G4LorentzVector p42 = trk2.Get4Momentum();
86 G4KineticTrack pTrk(((G4ParticleDefinition*)G4Proton::ProtonDefinition()),
87 trk2.GetFormationTime(),
89 (G4LorentzVector&)p42);
90
91 G4XAqmElastic aqm;
92 G4double xAqmDummy = aqm.CrossSection(piTrk,pTrk);
93 G4double xAqm = aqm.CrossSection(trk1,trk2);
94 G4double factor = 1.;
95 if (xAqmDummy != 0.0)
96 {
97 factor = xAqm / xAqmDummy;
98 }
99 G4XPDGElastic pdg;
100
101 sigma = pdg.CrossSection(piTrk,pTrk);
102 sigma = sigma * factor;
103 }
104
105 return sigma;
106}
CLHEP::HepLorentzVector G4LorentzVector
CLHEP::Hep3Vector G4ThreeVector
double G4double
Definition G4Types.hh:83
static G4Gamma * GammaDefinition()
Definition G4Gamma.cc:76
G4double GetFormationTime() const
const G4ThreeVector & GetPosition() const
const G4LorentzVector & Get4Momentum() const
static G4PionPlus * PionPlusDefinition()
Definition G4PionPlus.cc:88
static G4Proton * ProtonDefinition()
Definition G4Proton.cc:85
const G4ParticleDefinition * FindLightParticle(const G4KineticTrack &trk1, const G4KineticTrack &trk2) const
virtual G4double CrossSection(const G4KineticTrack &trk1, const G4KineticTrack &trk2) const
virtual G4double CrossSection(const G4KineticTrack &trk1, const G4KineticTrack &trk2) const

◆ GetComponents()

virtual const G4CrossSectionVector * G4XMesonBaryonElastic::GetComponents ( ) const
inlinevirtual

Implements G4VCrossSectionSource.

Definition at line 64 of file G4XMesonBaryonElastic.hh.

64{ return 0; }

◆ IsValid()

G4bool G4XMesonBaryonElastic::IsValid ( G4double e) const
virtual

Reimplemented from G4VCrossSectionSource.

Definition at line 117 of file G4XMesonBaryonElastic.cc.

118{
119 G4bool answer = InLimits(e,lowLimit,highLimit);
120
121 return answer;
122}
bool G4bool
Definition G4Types.hh:86
G4bool InLimits(G4double e, G4double eLow, G4double eHigh) const

◆ Name()

G4String G4XMesonBaryonElastic::Name ( ) const
virtual

Implements G4VCrossSectionSource.

Definition at line 109 of file G4XMesonBaryonElastic.cc.

110{
111 G4String name("MesonBaryonElasticCrossSection");
112 return name;
113}
const char * name(G4int ptype)

◆ operator!=()

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

Definition at line 57 of file G4XMesonBaryonElastic.cc.

58{
59 return (this != (G4XMesonBaryonElastic *) &right);
60}

◆ operator==()

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

Definition at line 51 of file G4XMesonBaryonElastic.cc.

52{
53 return (this == (G4XMesonBaryonElastic *) &right);
54}

The documentation for this class was generated from the following files: