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

#include <G4XpimNTotal.hh>

Inheritance diagram for G4XpimNTotal:

Public Member Functions

 G4XpimNTotal ()
virtual ~G4XpimNTotal ()
virtual G4double CrossSection (const G4KineticTrack &trk1, const G4KineticTrack &trk2) const
virtual const G4CrossSectionVectorGetComponents () 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 G4bool IsValid (G4double e) 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 35 of file G4XpimNTotal.hh.

Constructor & Destructor Documentation

◆ G4XpimNTotal()

G4XpimNTotal::G4XpimNTotal ( )

Definition at line 32 of file G4XpimNTotal.cc.

34 {
35 std::pair<double,double> it;
36 it.first=1105.46 ;it.second= 8.8; theLowEData.push_back(it);
37 it.first=1139.41 ;it.second= 13.6; theLowEData.push_back(it);
38 it.first=1165.12 ;it.second= 26.0; theLowEData.push_back(it);
39 it.first=1198.8 ;it.second= 60.; theLowEData.push_back(it);
40 it.first=1212.51 ;it.second= 70.; theLowEData.push_back(it);
41 it.first=1222.84 ;it.second= 72.; theLowEData.push_back(it);
42 it.first=1233.18 ;it.second= 68.; theLowEData.push_back(it);
43 it.first=1240.08 ;it.second= 65.; theLowEData.push_back(it);
44 it.first=1301.86 ;it.second= 30.; theLowEData.push_back(it);
45 it.first=1335.65 ;it.second= 26.; theLowEData.push_back(it);
46 it.first=1368.93 ;it.second= 27.; theLowEData.push_back(it);
47 it.first=1433.81 ;it.second= 30.; theLowEData.push_back(it);
48 it.first=1496.42 ;it.second= 45.; theLowEData.push_back(it);
49 it.first=1508.67 ;it.second= 47.; theLowEData.push_back(it);
50 it.first=1520.84 ;it.second= 45.; theLowEData.push_back(it);
51 it.first=1568.67 ;it.second= 35.; theLowEData.push_back(it);
52 it.first=1603.69 ;it.second= 37.; theLowEData.push_back(it);
53 it.first=1660.54 ;it.second= 58.; theLowEData.push_back(it);
54 it.first=1674.47 ;it.second= 59.; theLowEData.push_back(it);
55 it.first=1688.29 ;it.second= 58.; theLowEData.push_back(it);
56 it.first=1779.57 ;it.second= 36.; theLowEData.push_back(it);
57 it.first=1881.49 ;it.second= 36.8; theLowEData.push_back(it);
58 it.first=1978.31 ;it.second= 34.5; theLowEData.push_back(it);
59 it.first=2038.82 ;it.second= 34.5; theLowEData.push_back(it);
60 it.first=2115.39 ;it.second= 36.; theLowEData.push_back(it);
61 it.first=2159.18 ;it.second= 36.3; theLowEData.push_back(it);
62 it.first=2244.22 ;it.second= 36.; theLowEData.push_back(it);
63 it.first=2424.78 ;it.second= 33.; theLowEData.push_back(it);
64 it.first=2664.2 ;it.second= 32.; theLowEData.push_back(it);
65 it.first=3487.43 ;it.second= 28.; theLowEData.push_back(it);
66 it.first=4434.76 ;it.second= 26.7; theLowEData.push_back(it);
67 }

◆ ~G4XpimNTotal()

virtual G4XpimNTotal::~G4XpimNTotal ( )
inlinevirtual

Definition at line 39 of file G4XpimNTotal.hh.

39{}

Member Function Documentation

◆ CrossSection()

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

Implements G4VCrossSectionSource.

Definition at line 69 of file G4XpimNTotal.cc.

71 {
72 G4double sqrts = (trk1.Get4Momentum() + trk2.Get4Momentum()).mag();
73 if(sqrts > theLowEData.back().first/MeV) return thePDGData.CrossSection(trk1, trk2);
74 G4double result = 0;
75 size_t i(0), it(0);
76 if(sqrts<theLowEData[0].first) return 0;
77 for(i=0; i<theLowEData.size(); i++)
78 {
79 if(theLowEData[i].first/MeV>sqrts) break;
80 it = i;
81 }
82 G4double x1 = G4Log(theLowEData[it].first);
83 G4double x2 = G4Log(theLowEData[it+1].first);
84 G4double y1 = G4Log(theLowEData[it].second);
85 G4double y2 = G4Log(theLowEData[it+1].second);
86 G4double x = G4Log(sqrts);
87 G4double y = y1+(x-x1)*(y2-y1)/(x2-x1);
88 result = G4Exp(y);
89 return result*millibarn;
90 }
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition G4Exp.hh:132
G4double G4Log(G4double x)
Definition G4Log.hh:169
double G4double
Definition G4Types.hh:83
const G4LorentzVector & Get4Momentum() const

◆ GetComponents()

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

Implements G4VCrossSectionSource.

Definition at line 41 of file G4XpimNTotal.hh.

41{ return 0; }

◆ Name()

virtual G4String G4XpimNTotal::Name ( ) const
inlinevirtual

Implements G4VCrossSectionSource.

Definition at line 42 of file G4XpimNTotal.hh.

42{return "G4XpimNTotal";}

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