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

#include <G4CHIPSElastic.hh>

+ Inheritance diagram for G4CHIPSElastic:

Public Member Functions

 G4CHIPSElastic ()
 
virtual ~G4CHIPSElastic ()
 
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 47 of file G4CHIPSElastic.hh.

Constructor & Destructor Documentation

◆ G4CHIPSElastic()

G4CHIPSElastic::G4CHIPSElastic ( )

Definition at line 64 of file G4CHIPSElastic.cc.

64 : G4HadronElastic("hElasticCHIPS")
65{
66 if(!pxsManager)
67 {
70
71 PBARxsManager = G4QAntiBaryonElasticCrossSection::GetPointer(); // Uzhi
72 PIPxsManager = G4QPionPlusElasticCrossSection::GetPointer(); // Uzhi
73 PIMxsManager = G4QPionMinusElasticCrossSection::GetPointer(); // Uzhi
74 KPxsManager = G4QKaonPlusElasticCrossSection::GetPointer(); // Uzhi
75 KMxsManager = G4QKaonMinusElasticCrossSection::GetPointer(); // Uzhi
76 }
77 //Description();
78}
static G4VQCrossSection * GetPointer()

◆ ~G4CHIPSElastic()

G4CHIPSElastic::~G4CHIPSElastic ( )
virtual

Definition at line 80 of file G4CHIPSElastic.cc.

81{}

Member Function Documentation

◆ Description()

void G4CHIPSElastic::Description ( ) const
virtual

Reimplemented from G4HadronElastic.

Definition at line 83 of file G4CHIPSElastic.cc.

84{
85 char* dirName = getenv("G4PhysListDocDir");
86 if (dirName) {
87 std::ofstream outFile;
88 G4String outFileName = GetModelName() + ".html";
89 G4String pathName = G4String(dirName) + "/" + outFileName;
90 outFile.open(pathName);
91 outFile << "<html>\n";
92 outFile << "<head>\n";
93
94 outFile << "<title>Description of G4CHIPSElastic</title>\n";
95 outFile << "</head>\n";
96 outFile << "<body>\n";
97
98 outFile << "The G4CHIPSElastic model performs hadron-nucleus elastic\n"
99 << "scattering using the parameterized elastic cross sections\n"
100 << "of M. Kossov\n";
101
102 outFile << "</body>\n";
103 outFile << "</html>\n";
104 outFile.close();
105 }
106}
const G4String & GetModelName() const

◆ SampleInvariantT()

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

Reimplemented from G4HadronElastic.

Definition at line 110 of file G4CHIPSElastic.cc.

112{
113 G4int N = A - Z;
114 if(Z == 1 && N == 2) { N = 1; }
115 else if(Z == 2 && N == 1) { N = 2; }
116 G4int projPDG = p->GetPDGEncoding();
117 G4double cs = 0.;
118 if (projPDG==2212) { cs = pxsManager->GetCrossSection(false,plab,Z,N,projPDG); }
119 else if(projPDG==2112) { cs = nxsManager->GetCrossSection(false,plab,Z,N,projPDG); }
120 else if(projPDG==-2212){ cs = PBARxsManager->GetCrossSection(false,plab,Z,N,projPDG); } //Pbar
121 else if(projPDG== 211) { cs = PIPxsManager->GetCrossSection(false,plab,Z,N,projPDG); } // Pi+
122 else if(projPDG==-211) { cs = PIMxsManager->GetCrossSection(false,plab,Z,N,projPDG); } // Pi-
123 else if(projPDG== 321) { cs = KPxsManager->GetCrossSection(false,plab,Z,N,projPDG); } // K+
124 else if(projPDG==-321) { cs = KMxsManager->GetCrossSection(false,plab,Z,N,projPDG); } // K-
125
126 G4double t = 0.0;
127 if(cs > 0.0)
128 {
129 if (projPDG== 2212) { t = pxsManager->GetExchangeT(Z,N,projPDG); }
130 else if(projPDG== 2112) { t = nxsManager->GetExchangeT(Z,N,projPDG); }
131 else if(projPDG==-2212) { t = PBARxsManager->GetExchangeT(Z,N,projPDG); } // Pbar
132 else if(projPDG== 211) { t = PIPxsManager->GetExchangeT(Z,N,projPDG); } // Pi+
133 else if(projPDG== -211) { t = PIMxsManager->GetExchangeT(Z,N,projPDG); } // Pi-
134 else if(projPDG== 321) { t = KPxsManager->GetExchangeT(Z,N,projPDG); } // K+
135 else if(projPDG== -321) { t = KMxsManager->GetExchangeT(Z,N,projPDG); } // K-
136 }
137 else { t = G4HadronElastic::SampleInvariantT(p, plab, Z, A); }
138 return t;
139}
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
virtual G4double SampleInvariantT(const G4ParticleDefinition *p, G4double plab, G4int Z, G4int A)
virtual G4double GetExchangeT(G4int tZ, G4int tN, G4int pPDG)
virtual G4double GetCrossSection(G4bool, G4double, G4int, G4int, G4int pPDG=0)

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