Geant4  10.02.p03
G4ChipsElasticModel Class Reference

#include <G4ChipsElasticModel.hh>

Inheritance diagram for G4ChipsElasticModel:
Collaboration diagram for G4ChipsElasticModel:

Public Member Functions

 G4ChipsElasticModel ()
 
virtual ~G4ChipsElasticModel ()
 
virtual G4double SampleInvariantT (const G4ParticleDefinition *p, G4double plab, G4int Z, G4int A)
 
virtual void ModelDescription (std::ostream &) const
 
- Public Member Functions inherited from G4HadronElastic
 G4HadronElastic (const G4String &name="hElasticLHEP")
 
virtual ~G4HadronElastic ()
 
virtual G4HadFinalStateApplyYourself (const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)
 
void SetLowestEnergyLimit (G4double value)
 
G4double LowestEnergyLimit () const
 
G4double ComputeMomentumCMS (const G4ParticleDefinition *p, G4double plab, G4int Z, G4int A)
 
- Public Member Functions inherited from G4HadronicInteraction
 G4HadronicInteraction (const G4String &modelName="HadronicModel")
 
virtual ~G4HadronicInteraction ()
 
virtual G4bool IsApplicable (const G4HadProjectile &, G4Nucleus &)
 
G4double GetMinEnergy () const
 
G4double GetMinEnergy (const G4Material *aMaterial, const G4Element *anElement) const
 
void SetMinEnergy (G4double anEnergy)
 
void SetMinEnergy (G4double anEnergy, const G4Element *anElement)
 
void SetMinEnergy (G4double anEnergy, const G4Material *aMaterial)
 
G4double GetMaxEnergy () const
 
G4double GetMaxEnergy (const G4Material *aMaterial, const G4Element *anElement) const
 
void SetMaxEnergy (const G4double anEnergy)
 
void SetMaxEnergy (G4double anEnergy, const G4Element *anElement)
 
void SetMaxEnergy (G4double anEnergy, const G4Material *aMaterial)
 
const G4HadronicInteractionGetMyPointer () const
 
virtual G4int GetVerboseLevel () const
 
virtual void SetVerboseLevel (G4int value)
 
const G4StringGetModelName () const
 
void DeActivateFor (const G4Material *aMaterial)
 
void ActivateFor (const G4Material *aMaterial)
 
void DeActivateFor (const G4Element *anElement)
 
void ActivateFor (const G4Element *anElement)
 
G4bool IsBlocked (const G4Material *aMaterial) const
 
G4bool IsBlocked (const G4Element *anElement) const
 
void SetRecoilEnergyThreshold (G4double val)
 
G4double GetRecoilEnergyThreshold () const
 
G4bool operator== (const G4HadronicInteraction &right) const
 
G4bool operator!= (const G4HadronicInteraction &right) const
 
virtual const std::pair< G4double, G4doubleGetFatalEnergyCheckLevels () const
 
virtual std::pair< G4double, G4doubleGetEnergyMomentumCheckLevels () const
 
void SetEnergyMomentumCheckLevels (G4double relativeLevel, G4double absoluteLevel)
 
virtual void BuildPhysicsTable (const G4ParticleDefinition &)
 

Private Attributes

G4ChipsProtonElasticXSpxsManager
 
G4ChipsNeutronElasticXSnxsManager
 
G4ChipsAntiBaryonElasticXSPBARxsManager
 
G4ChipsPionPlusElasticXSPIPxsManager
 
G4ChipsPionMinusElasticXSPIMxsManager
 
G4ChipsKaonPlusElasticXSKPxsManager
 
G4ChipsKaonMinusElasticXSKMxsManager
 

Additional Inherited Members

- Protected Member Functions inherited from G4HadronicInteraction
void SetModelName (const G4String &nam)
 
G4bool IsBlocked () const
 
void Block ()
 
- Protected Attributes inherited from G4HadronicInteraction
G4HadFinalState theParticleChange
 
G4int verboseLevel
 
G4double theMinEnergy
 
G4double theMaxEnergy
 
G4bool isBlocked
 

Detailed Description

Definition at line 53 of file G4ChipsElasticModel.hh.

Constructor & Destructor Documentation

◆ G4ChipsElasticModel()

G4ChipsElasticModel::G4ChipsElasticModel ( )

Definition at line 47 of file G4ChipsElasticModel.cc.

47  : G4HadronElastic("hElasticCHIPS")
48 {
56  //Description();
57 }
G4VCrossSectionDataSet * GetCrossSectionDataSet(const G4String &name, G4bool warning=true)
G4HadronElastic(const G4String &name="hElasticLHEP")
G4ChipsKaonPlusElasticXS * KPxsManager
G4ChipsNeutronElasticXS * nxsManager
G4ChipsPionMinusElasticXS * PIMxsManager
G4ChipsKaonMinusElasticXS * KMxsManager
G4ChipsPionPlusElasticXS * PIPxsManager
G4ChipsAntiBaryonElasticXS * PBARxsManager
static const char * Default_Name()
static G4CrossSectionDataSetRegistry * Instance()
static const char * Default_Name()
static const char * Default_Name()
G4ChipsProtonElasticXS * pxsManager
static const char * Default_Name()
Here is the call graph for this function:

◆ ~G4ChipsElasticModel()

G4ChipsElasticModel::~G4ChipsElasticModel ( )
virtual

Definition at line 59 of file G4ChipsElasticModel.cc.

60 {}

Member Function Documentation

◆ ModelDescription()

void G4ChipsElasticModel::ModelDescription ( std::ostream &  outFile) const
virtual

Reimplemented from G4HadronElastic.

Definition at line 62 of file G4ChipsElasticModel.cc.

63 {
64 
65  outFile << "The G4ChipsElasticModel model performs hadron-nucleus elastic\n"
66  << "scattering using the parameterized elastic cross sections\n"
67  << "of M. Kossov\n";
68 
69 }

◆ SampleInvariantT()

G4double G4ChipsElasticModel::SampleInvariantT ( const G4ParticleDefinition p,
G4double  plab,
G4int  Z,
G4int  A 
)
virtual

Reimplemented from G4HadronElastic.

Definition at line 73 of file G4ChipsElasticModel.cc.

75 {
76  G4int N = A - Z;
77  if(Z == 1 && N == 2) { N = 1; }
78  else if(Z == 2 && N == 1) { N = 2; }
79  G4int projPDG = p->GetPDGEncoding();
80  G4double cs = 0.;
81  if (projPDG==2212) { cs = pxsManager->GetChipsCrossSection(plab,Z,N,projPDG); }
82  else if(projPDG==2112) { cs = nxsManager->GetChipsCrossSection(plab,Z,N,projPDG); }
83  else if(projPDG==-2212){ cs = PBARxsManager->GetChipsCrossSection(plab,Z,N,projPDG); } //Pbar
84  else if(projPDG== 211) { cs = PIPxsManager->GetChipsCrossSection(plab,Z,N,projPDG); } // Pi+
85  else if(projPDG==-211) { cs = PIMxsManager->GetChipsCrossSection(plab,Z,N,projPDG); } // Pi-
86  else if(projPDG== 321) { cs = KPxsManager->GetChipsCrossSection(plab,Z,N,projPDG); } // K+
87  else if(projPDG==-321) { cs = KMxsManager->GetChipsCrossSection(plab,Z,N,projPDG); } // K-
88 
89  G4double t = 0.0;
90  if(cs > 0.0)
91  {
92  if (projPDG== 2212) { t = pxsManager->GetExchangeT(Z,N,projPDG); }
93  else if(projPDG== 2112) { t = nxsManager->GetExchangeT(Z,N,projPDG); }
94  else if(projPDG==-2212) { t = PBARxsManager->GetExchangeT(Z,N,projPDG); } // Pbar
95  else if(projPDG== 211) { t = PIPxsManager->GetExchangeT(Z,N,projPDG); } // Pi+
96  else if(projPDG== -211) { t = PIMxsManager->GetExchangeT(Z,N,projPDG); } // Pi-
97  else if(projPDG== 321) { t = KPxsManager->GetExchangeT(Z,N,projPDG); } // K+
98  else if(projPDG== -321) { t = KMxsManager->GetExchangeT(Z,N,projPDG); } // K-
99  }
100  else { t = G4HadronElastic::SampleInvariantT(p, plab, Z, A); }
101  return t;
102 }
virtual G4double SampleInvariantT(const G4ParticleDefinition *p, G4double plab, G4int Z, G4int A)
virtual G4double GetChipsCrossSection(G4double momentum, G4int Z, G4int N, G4int pdg)
G4ChipsKaonPlusElasticXS * KPxsManager
G4double GetExchangeT(G4int tZ, G4int tN, G4int pPDG)
G4ChipsNeutronElasticXS * nxsManager
G4double GetExchangeT(G4int tZ, G4int tN, G4int pPDG)
G4ChipsPionMinusElasticXS * PIMxsManager
virtual G4double GetChipsCrossSection(G4double momentum, G4int Z, G4int N, G4int pdg)
int G4int
Definition: G4Types.hh:78
G4ChipsKaonMinusElasticXS * KMxsManager
double A(double temperature)
G4ChipsPionPlusElasticXS * PIPxsManager
Float_t Z
G4ChipsAntiBaryonElasticXS * PBARxsManager
G4double GetExchangeT(G4int tZ, G4int tN, G4int pPDG)
virtual G4double GetChipsCrossSection(G4double momentum, G4int Z, G4int N, G4int pdg)
virtual G4double GetChipsCrossSection(G4double momentum, G4int Z, G4int N, G4int pdg)
G4double GetExchangeT(G4int tZ, G4int tN, G4int pPDG)
virtual G4double GetChipsCrossSection(G4double momentum, G4int Z, G4int N, G4int pdg)
virtual G4double GetChipsCrossSection(G4double momentum, G4int Z, G4int N, G4int pdg)
**D E S C R I P T I O N
G4ChipsProtonElasticXS * pxsManager
double G4double
Definition: G4Types.hh:76
G4double GetExchangeT(G4int tZ, G4int tN, G4int pPDG)
virtual G4double GetChipsCrossSection(G4double momentum, G4int Z, G4int N, G4int pdg)
G4double GetExchangeT(G4int tZ, G4int tN, G4int pPDG)
G4double GetExchangeT(G4int tZ, G4int tN, G4int pPDG)
Here is the call graph for this function:

Member Data Documentation

◆ KMxsManager

G4ChipsKaonMinusElasticXS* G4ChipsElasticModel::KMxsManager
private

Definition at line 75 of file G4ChipsElasticModel.hh.

◆ KPxsManager

G4ChipsKaonPlusElasticXS* G4ChipsElasticModel::KPxsManager
private

Definition at line 74 of file G4ChipsElasticModel.hh.

◆ nxsManager

G4ChipsNeutronElasticXS* G4ChipsElasticModel::nxsManager
private

Definition at line 69 of file G4ChipsElasticModel.hh.

◆ PBARxsManager

G4ChipsAntiBaryonElasticXS* G4ChipsElasticModel::PBARxsManager
private

Definition at line 71 of file G4ChipsElasticModel.hh.

◆ PIMxsManager

G4ChipsPionMinusElasticXS* G4ChipsElasticModel::PIMxsManager
private

Definition at line 73 of file G4ChipsElasticModel.hh.

◆ PIPxsManager

G4ChipsPionPlusElasticXS* G4ChipsElasticModel::PIPxsManager
private

Definition at line 72 of file G4ChipsElasticModel.hh.

◆ pxsManager

G4ChipsProtonElasticXS* G4ChipsElasticModel::pxsManager
private

Definition at line 68 of file G4ChipsElasticModel.hh.


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