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

#include <G4ChipsElasticModel.hh>

+ Inheritance diagram for G4ChipsElasticModel:

Public Member Functions

 G4ChipsElasticModel ()
 
virtual ~G4ChipsElasticModel ()
 
virtual G4double SampleInvariantT (const G4ParticleDefinition *p, G4double plab, G4int Z, G4int A)
 
virtual void Description () const
 
- Public Member Functions inherited from G4HadronElastic
 G4HadronElastic (const G4String &name="hElasticLHEP")
 
virtual ~G4HadronElastic ()
 
virtual G4HadFinalStateApplyYourself (const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)
 
virtual G4double SampleInvariantT (const G4ParticleDefinition *p, G4double plab, G4int Z, G4int A)
 
void SetLowestEnergyLimit (G4double value)
 
G4double LowestEnergyLimit () const
 
G4double ComputeMomentumCMS (const G4ParticleDefinition *p, G4double plab, G4int Z, G4int A)
 
virtual void Description () const
 
- Public Member Functions inherited from G4HadronicInteraction
 G4HadronicInteraction (const G4String &modelName="HadronicModel")
 
virtual ~G4HadronicInteraction ()
 
virtual G4HadFinalStateApplyYourself (const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)=0
 
virtual G4double SampleInvariantT (const G4ParticleDefinition *p, G4double plab, G4int Z, G4int A)
 
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
 
G4int GetVerboseLevel () const
 
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 ModelDescription (std::ostream &outFile) const
 

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{
49 if(!pxsManager)
50 {
58 }
59 //Description();
60}
static const char * Default_Name()
static const char * Default_Name()
static const char * Default_Name()
static const char * Default_Name()
G4VCrossSectionDataSet * GetCrossSectionDataSet(const G4String &name, G4bool warning=true)
static G4CrossSectionDataSetRegistry * Instance()

◆ ~G4ChipsElasticModel()

G4ChipsElasticModel::~G4ChipsElasticModel ( )
virtual

Definition at line 62 of file G4ChipsElasticModel.cc.

63{}

Member Function Documentation

◆ Description()

void G4ChipsElasticModel::Description ( ) const
virtual

Reimplemented from G4HadronElastic.

Definition at line 65 of file G4ChipsElasticModel.cc.

66{
67 char* dirName = getenv("G4PhysListDocDir");
68 if (dirName) {
69 std::ofstream outFile;
70 G4String outFileName = GetModelName() + ".html";
71 G4String pathName = G4String(dirName) + "/" + outFileName;
72 outFile.open(pathName);
73 outFile << "<html>\n";
74 outFile << "<head>\n";
75
76 outFile << "<title>Description of G4ChipsElasticModel</title>\n";
77 outFile << "</head>\n";
78 outFile << "<body>\n";
79
80 outFile << "The G4ChipsElasticModel model performs hadron-nucleus elastic\n"
81 << "scattering using the parameterized elastic cross sections\n"
82 << "of M. Kossov\n";
83
84 outFile << "</body>\n";
85 outFile << "</html>\n";
86 outFile.close();
87 }
88}
const G4String & GetModelName() const

◆ SampleInvariantT()

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

Reimplemented from G4HadronElastic.

Definition at line 92 of file G4ChipsElasticModel.cc.

94{
95 G4int N = A - Z;
96 if(Z == 1 && N == 2) { N = 1; }
97 else if(Z == 2 && N == 1) { N = 2; }
98 G4int projPDG = p->GetPDGEncoding();
99 G4double cs = 0.;
100 if (projPDG==2212) { cs = pxsManager->GetChipsCrossSection(plab,Z,N,projPDG); }
101 else if(projPDG==2112) { cs = nxsManager->GetChipsCrossSection(plab,Z,N,projPDG); }
102 else if(projPDG==-2212){ cs = PBARxsManager->GetChipsCrossSection(plab,Z,N,projPDG); } //Pbar
103 else if(projPDG== 211) { cs = PIPxsManager->GetChipsCrossSection(plab,Z,N,projPDG); } // Pi+
104 else if(projPDG==-211) { cs = PIMxsManager->GetChipsCrossSection(plab,Z,N,projPDG); } // Pi-
105 else if(projPDG== 321) { cs = KPxsManager->GetChipsCrossSection(plab,Z,N,projPDG); } // K+
106 else if(projPDG==-321) { cs = KMxsManager->GetChipsCrossSection(plab,Z,N,projPDG); } // K-
107
108 G4double t = 0.0;
109 if(cs > 0.0)
110 {
111 if (projPDG== 2212) { t = pxsManager->GetExchangeT(Z,N,projPDG); }
112 else if(projPDG== 2112) { t = nxsManager->GetExchangeT(Z,N,projPDG); }
113 else if(projPDG==-2212) { t = PBARxsManager->GetExchangeT(Z,N,projPDG); } // Pbar
114 else if(projPDG== 211) { t = PIPxsManager->GetExchangeT(Z,N,projPDG); } // Pi+
115 else if(projPDG== -211) { t = PIMxsManager->GetExchangeT(Z,N,projPDG); } // Pi-
116 else if(projPDG== 321) { t = KPxsManager->GetExchangeT(Z,N,projPDG); } // K+
117 else if(projPDG== -321) { t = KMxsManager->GetExchangeT(Z,N,projPDG); } // K-
118 }
119 else { t = G4HadronElastic::SampleInvariantT(p, plab, Z, A); }
120 return t;
121}
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
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)
G4double GetExchangeT(G4int tZ, G4int tN, G4int pPDG)
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)
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)
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)
virtual G4double GetChipsCrossSection(G4double momentum, G4int Z, G4int N, G4int pdg)
virtual G4double SampleInvariantT(const G4ParticleDefinition *p, G4double plab, G4int Z, G4int A)

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