ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4UPiNuclearCrossSection Class Reference

#include <geant4/tree/geant4-10.6-release/source/processes/hadronic/cross_sections/include/G4UPiNuclearCrossSection.hh>

+ Inheritance diagram for G4UPiNuclearCrossSection:
+ Collaboration diagram for G4UPiNuclearCrossSection:

Public Member Functions

 G4UPiNuclearCrossSection ()
 
 ~G4UPiNuclearCrossSection () override
 
G4bool IsElementApplicable (const G4DynamicParticle *aParticle, G4int Z, const G4Material *) final
 
G4double GetElasticCrossSection (const G4DynamicParticle *aParticle, G4int Z, G4int A) const
 
G4double GetInelasticCrossSection (const G4DynamicParticle *aParticle, G4int Z, G4int A) const
 
void BuildPhysicsTable (const G4ParticleDefinition &) final
 
void DumpPhysicsTable (const G4ParticleDefinition &) final
 
void CrossSectionDescription (std::ostream &) const final
 
- Public Member Functions inherited from G4VCrossSectionDataSet
 G4VCrossSectionDataSet (const G4String &nam="")
 
virtual ~G4VCrossSectionDataSet ()
 
virtual G4bool IsIsoApplicable (const G4DynamicParticle *, G4int Z, G4int A, const G4Element *elm=nullptr, const G4Material *mat=nullptr)
 
G4double GetCrossSection (const G4DynamicParticle *, const G4Element *, const G4Material *mat=nullptr)
 
G4double ComputeCrossSection (const G4DynamicParticle *, const G4Element *, const G4Material *mat=nullptr)
 
virtual G4double GetElementCrossSection (const G4DynamicParticle *, G4int Z, const G4Material *mat=nullptr)
 
virtual G4double GetIsoCrossSection (const G4DynamicParticle *, G4int Z, G4int A, const G4Isotope *iso=nullptr, const G4Element *elm=nullptr, const G4Material *mat=nullptr)
 
virtual const G4IsotopeSelectIsotope (const G4Element *, G4double kinEnergy, G4double logE)
 
virtual G4int GetVerboseLevel () const
 
virtual void SetVerboseLevel (G4int value)
 
G4double GetMinKinEnergy () const
 
void SetMinKinEnergy (G4double value)
 
G4double GetMaxKinEnergy () const
 
void SetMaxKinEnergy (G4double value)
 
bool ForAllAtomsAndEnergies () const
 
void SetForAllAtomsAndEnergies (G4bool val)
 
const G4StringGetName () const
 

Private Member Functions

G4double Interpolate (G4int Z, G4int A, G4double ekin, const G4PhysicsTable *) const
 
void AddDataSet (const G4String &p, const G4double *tot, const G4double *in, const G4double *e, G4int n)
 
void LoadData ()
 

Private Attributes

const G4ParticleDefinitionpiPlus
 
const G4ParticleDefinitionpiMinus
 
G4double aPower
 
G4double elow
 
G4bool isMaster
 

Static Private Attributes

static const G4int NZ = 16
 
static G4int theZ [NZ]
 
static G4int idxZ [93] = {0}
 
static G4double theA [NZ] = {0.0}
 
static G4double APower [93] = {0.0}
 
static G4PhysicsTablepiPlusElastic = nullptr
 
static G4PhysicsTablepiPlusInelastic = nullptr
 
static G4PhysicsTablepiMinusElastic = nullptr
 
static G4PhysicsTablepiMinusInelastic = nullptr
 

Additional Inherited Members

- Protected Member Functions inherited from G4VCrossSectionDataSet
void SetName (const G4String &)
 
- Protected Attributes inherited from G4VCrossSectionDataSet
G4int verboseLevel
 

Detailed Description

Definition at line 45 of file G4UPiNuclearCrossSection.hh.

View newest version in sPHENIX GitHub at line 45 of file G4UPiNuclearCrossSection.hh

Constructor & Destructor Documentation

G4UPiNuclearCrossSection::G4UPiNuclearCrossSection ( )
explicit

Definition at line 61 of file G4UPiNuclearCrossSection.cc.

View newest version in sPHENIX GitHub at line 61 of file G4UPiNuclearCrossSection.cc

References aPower, elow, isMaster, CLHEP::MeV, piMinus, G4PionMinus::PionMinus(), G4PionPlus::PionPlus(), and piPlus.

+ Here is the call graph for this function:

G4UPiNuclearCrossSection::~G4UPiNuclearCrossSection ( )
override

Definition at line 72 of file G4UPiNuclearCrossSection.cc.

View newest version in sPHENIX GitHub at line 72 of file G4UPiNuclearCrossSection.cc

References G4PhysicsTable::clearAndDestroy(), isMaster, piMinusElastic, piMinusInelastic, piPlusElastic, and piPlusInelastic.

+ Here is the call graph for this function:

Member Function Documentation

void G4UPiNuclearCrossSection::AddDataSet ( const G4String p,
const G4double tot,
const G4double in,
const G4double e,
G4int  n 
)
private

Definition at line 131 of file G4UPiNuclearCrossSection.cc.

View newest version in sPHENIX GitHub at line 131 of file G4UPiNuclearCrossSection.cc

References GeV, max, millibarn, n, piMinusElastic, piMinusInelastic, piPlusElastic, piPlusInelastic, G4PhysicsTable::push_back(), G4LPhysicsFreeVector::PutValues(), and G4PhysicsVector::SetSpline().

Referenced by LoadData().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4UPiNuclearCrossSection::BuildPhysicsTable ( const G4ParticleDefinition p)
finalvirtual

Reimplemented from G4VCrossSectionDataSet.

Definition at line 169 of file G4UPiNuclearCrossSection.cc.

View newest version in sPHENIX GitHub at line 169 of file G4UPiNuclearCrossSection.cc

References APower, aPower, FatalException, G4endl, G4Exception(), G4MUTEXLOCK, G4MUTEXUNLOCK, G4NistManager::GetAtomicMassAmu(), G4Pow::GetInstance(), G4ParticleDefinition::GetParticleName(), incremental_prev_tag::idx, idxZ, G4NistManager::Instance(), isMaster, LoadData(), NZ, piMinus, piMinusElastic, piMinusInelastic, piPlus, piPlusElastic, piPlusInelastic, G4Pow::powA(), theA, and theZ.

Referenced by G4BGGPionElasticXS::BuildPhysicsTable(), and G4BGGPionInelasticXS::BuildPhysicsTable().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void G4UPiNuclearCrossSection::CrossSectionDescription ( std::ostream &  outFile) const
finalvirtual

Reimplemented from G4VCrossSectionDataSet.

Definition at line 590 of file G4UPiNuclearCrossSection.cc.

View newest version in sPHENIX GitHub at line 590 of file G4UPiNuclearCrossSection.cc

void G4UPiNuclearCrossSection::DumpPhysicsTable ( const G4ParticleDefinition p)
finalvirtual

Reimplemented from G4VCrossSectionDataSet.

Definition at line 154 of file G4UPiNuclearCrossSection.cc.

View newest version in sPHENIX GitHub at line 154 of file G4UPiNuclearCrossSection.cc

References G4cout, G4endl, piMinus, piMinusElastic, piMinusInelastic, piPlus, piPlusElastic, and piPlusInelastic.

G4double G4UPiNuclearCrossSection::GetElasticCrossSection ( const G4DynamicParticle aParticle,
G4int  Z,
G4int  A 
) const
inline

Definition at line 106 of file G4UPiNuclearCrossSection.hh.

View newest version in sPHENIX GitHub at line 106 of file G4UPiNuclearCrossSection.hh

References G4DynamicParticle::GetDefinition(), G4DynamicParticle::GetKineticEnergy(), Interpolate(), piMinusElastic, piPlus, and piPlusElastic.

Referenced by G4BGGPionElasticXS::BuildPhysicsTable(), and G4BGGPionElasticXS::GetElementCrossSection().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4UPiNuclearCrossSection::GetInelasticCrossSection ( const G4DynamicParticle aParticle,
G4int  Z,
G4int  A 
) const
inline

Definition at line 115 of file G4UPiNuclearCrossSection.hh.

View newest version in sPHENIX GitHub at line 115 of file G4UPiNuclearCrossSection.hh

References G4DynamicParticle::GetDefinition(), G4DynamicParticle::GetKineticEnergy(), Interpolate(), piMinusInelastic, piPlus, and piPlusInelastic.

Referenced by G4BGGPionInelasticXS::BuildPhysicsTable(), and G4BGGPionInelasticXS::GetElementCrossSection().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4double G4UPiNuclearCrossSection::Interpolate ( G4int  Z,
G4int  A,
G4double  ekin,
const G4PhysicsTable table 
) const
private

Definition at line 105 of file G4UPiNuclearCrossSection.cc.

View newest version in sPHENIX GitHub at line 105 of file G4UPiNuclearCrossSection.cc

References kdfinder::abs(), APower, elow, incremental_prev_tag::idx, idxZ, max, min, theA, theZ, x1, and x2.

Referenced by GetElasticCrossSection(), and GetInelasticCrossSection().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4bool G4UPiNuclearCrossSection::IsElementApplicable ( const G4DynamicParticle aParticle,
G4int  Z,
const G4Material  
)
finalvirtual

Reimplemented from G4VCrossSectionDataSet.

Definition at line 99 of file G4UPiNuclearCrossSection.cc.

View newest version in sPHENIX GitHub at line 99 of file G4UPiNuclearCrossSection.cc

void G4UPiNuclearCrossSection::LoadData ( )
private

Definition at line 224 of file G4UPiNuclearCrossSection.cc.

View newest version in sPHENIX GitHub at line 224 of file G4UPiNuclearCrossSection.cc

References AddDataSet(), al_m_in, al_m_t, al_p_in, be_m_in, be_m_t, be_p_in, c_m_in, c_m_t, c_p_in, ca_m_in, ca_m_t, ca_p_in, cd_m_in, cd_m_t, cd_p_in, cu_m_in, cu_m_t, cu_p_in, e1, e2, e3, e4, e5, e6, fe_m_in, fe_m_t, fe_p_in, mo_m_in, mo_m_t, mo_p_in, n_m_in, n_m_t, n_p_in, na_m_in, na_m_t, na_p_in, o_m_in, o_m_t, o_p_in, pb_m_in, pb_m_t, pb_p_in, sn_m_in, sn_m_t, sn_p_in, u_m_in, u_m_t, u_p_in, w_m_in, w_m_t, and w_p_in.

Referenced by BuildPhysicsTable().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

G4double G4UPiNuclearCrossSection::APower = {0.0}
staticprivate

Definition at line 88 of file G4UPiNuclearCrossSection.hh.

View newest version in sPHENIX GitHub at line 88 of file G4UPiNuclearCrossSection.hh

Referenced by BuildPhysicsTable(), and Interpolate().

G4double G4UPiNuclearCrossSection::aPower
private

Definition at line 95 of file G4UPiNuclearCrossSection.hh.

View newest version in sPHENIX GitHub at line 95 of file G4UPiNuclearCrossSection.hh

Referenced by BuildPhysicsTable(), and G4UPiNuclearCrossSection().

G4double G4UPiNuclearCrossSection::elow
private

Definition at line 96 of file G4UPiNuclearCrossSection.hh.

View newest version in sPHENIX GitHub at line 96 of file G4UPiNuclearCrossSection.hh

Referenced by G4UPiNuclearCrossSection(), and Interpolate().

G4int G4UPiNuclearCrossSection::idxZ = {0}
staticprivate

Definition at line 85 of file G4UPiNuclearCrossSection.hh.

View newest version in sPHENIX GitHub at line 85 of file G4UPiNuclearCrossSection.hh

Referenced by BuildPhysicsTable(), and Interpolate().

G4bool G4UPiNuclearCrossSection::isMaster
private

Definition at line 98 of file G4UPiNuclearCrossSection.hh.

View newest version in sPHENIX GitHub at line 98 of file G4UPiNuclearCrossSection.hh

Referenced by BuildPhysicsTable(), G4UPiNuclearCrossSection(), and ~G4UPiNuclearCrossSection().

const G4int G4UPiNuclearCrossSection::NZ = 16
staticprivate

Definition at line 83 of file G4UPiNuclearCrossSection.hh.

View newest version in sPHENIX GitHub at line 83 of file G4UPiNuclearCrossSection.hh

Referenced by BuildPhysicsTable().

const G4ParticleDefinition* G4UPiNuclearCrossSection::piMinus
private

Definition at line 81 of file G4UPiNuclearCrossSection.hh.

View newest version in sPHENIX GitHub at line 81 of file G4UPiNuclearCrossSection.hh

Referenced by BuildPhysicsTable(), DumpPhysicsTable(), and G4UPiNuclearCrossSection().

G4PhysicsTable * G4UPiNuclearCrossSection::piMinusElastic = nullptr
staticprivate

Definition at line 92 of file G4UPiNuclearCrossSection.hh.

View newest version in sPHENIX GitHub at line 92 of file G4UPiNuclearCrossSection.hh

Referenced by AddDataSet(), BuildPhysicsTable(), DumpPhysicsTable(), GetElasticCrossSection(), and ~G4UPiNuclearCrossSection().

G4PhysicsTable * G4UPiNuclearCrossSection::piMinusInelastic = nullptr
staticprivate

Definition at line 93 of file G4UPiNuclearCrossSection.hh.

View newest version in sPHENIX GitHub at line 93 of file G4UPiNuclearCrossSection.hh

Referenced by AddDataSet(), BuildPhysicsTable(), DumpPhysicsTable(), GetInelasticCrossSection(), and ~G4UPiNuclearCrossSection().

const G4ParticleDefinition* G4UPiNuclearCrossSection::piPlus
private

Definition at line 80 of file G4UPiNuclearCrossSection.hh.

View newest version in sPHENIX GitHub at line 80 of file G4UPiNuclearCrossSection.hh

Referenced by BuildPhysicsTable(), DumpPhysicsTable(), G4UPiNuclearCrossSection(), GetElasticCrossSection(), and GetInelasticCrossSection().

G4PhysicsTable * G4UPiNuclearCrossSection::piPlusElastic = nullptr
staticprivate

Definition at line 90 of file G4UPiNuclearCrossSection.hh.

View newest version in sPHENIX GitHub at line 90 of file G4UPiNuclearCrossSection.hh

Referenced by AddDataSet(), BuildPhysicsTable(), DumpPhysicsTable(), GetElasticCrossSection(), and ~G4UPiNuclearCrossSection().

G4PhysicsTable * G4UPiNuclearCrossSection::piPlusInelastic = nullptr
staticprivate

Definition at line 91 of file G4UPiNuclearCrossSection.hh.

View newest version in sPHENIX GitHub at line 91 of file G4UPiNuclearCrossSection.hh

Referenced by AddDataSet(), BuildPhysicsTable(), DumpPhysicsTable(), GetInelasticCrossSection(), and ~G4UPiNuclearCrossSection().

G4double G4UPiNuclearCrossSection::theA = {0.0}
staticprivate

Definition at line 87 of file G4UPiNuclearCrossSection.hh.

View newest version in sPHENIX GitHub at line 87 of file G4UPiNuclearCrossSection.hh

Referenced by BuildPhysicsTable(), and Interpolate().

G4int G4UPiNuclearCrossSection::theZ
staticprivate
Initial value:
=
{2,4,6,7,8,11,13,20,26,29,42,48,50,74,82,92}

Definition at line 84 of file G4UPiNuclearCrossSection.hh.

View newest version in sPHENIX GitHub at line 84 of file G4UPiNuclearCrossSection.hh

Referenced by BuildPhysicsTable(), and Interpolate().


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