Geant4.10
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions
G4ChipsElasticModel Class Reference

#include <G4ChipsElasticModel.hh>

Inheritance diagram for G4ChipsElasticModel:
G4HadronElastic G4HadronicInteraction

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)
 
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, G4double
GetFatalEnergyCheckLevels () const
 
virtual std::pair< G4double,
G4double
GetEnergyMomentumCheckLevels () 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 ( )

Definition at line 47 of file G4ChipsElasticModel.cc.

References G4ChipsProtonElasticXS::Default_Name(), G4ChipsKaonPlusElasticXS::Default_Name(), G4ChipsPionPlusElasticXS::Default_Name(), G4ChipsKaonMinusElasticXS::Default_Name(), G4ChipsNeutronElasticXS::Default_Name(), G4ChipsAntiBaryonElasticXS::Default_Name(), G4ChipsPionMinusElasticXS::Default_Name(), G4CrossSectionDataSetRegistry::GetCrossSectionDataSet(), and G4CrossSectionDataSetRegistry::Instance().

47  : G4HadronElastic("hElasticCHIPS")
48 {
56  //Description();
57 }
G4VCrossSectionDataSet * GetCrossSectionDataSet(const G4String &name, G4bool warning=true)
G4HadronElastic(const G4String &name="hElasticLHEP")
static const char * Default_Name()
static G4CrossSectionDataSetRegistry * Instance()
static const char * Default_Name()
static const char * Default_Name()
static const char * Default_Name()
G4ChipsElasticModel::~G4ChipsElasticModel ( )
virtual

Definition at line 59 of file G4ChipsElasticModel.cc.

60 {}

Member Function Documentation

void G4ChipsElasticModel::Description ( ) const
virtual

Reimplemented from G4HadronElastic.

Definition at line 62 of file G4ChipsElasticModel.cc.

References G4HadronicInteraction::GetModelName(), and outFile.

63 {
64  char* dirName = getenv("G4PhysListDocDir");
65  if (dirName) {
66  std::ofstream outFile;
67  G4String outFileName = GetModelName() + ".html";
68  G4String pathName = G4String(dirName) + "/" + outFileName;
69  outFile.open(pathName);
70  outFile << "<html>\n";
71  outFile << "<head>\n";
72 
73  outFile << "<title>Description of G4ChipsElasticModel</title>\n";
74  outFile << "</head>\n";
75  outFile << "<body>\n";
76 
77  outFile << "The G4ChipsElasticModel model performs hadron-nucleus elastic\n"
78  << "scattering using the parameterized elastic cross sections\n"
79  << "of M. Kossov\n";
80 
81  outFile << "</body>\n";
82  outFile << "</html>\n";
83  outFile.close();
84  }
85 }
std::ofstream outFile
Definition: GammaRayTel.cc:68
const G4String & GetModelName() const
G4double G4ChipsElasticModel::SampleInvariantT ( const G4ParticleDefinition p,
G4double  plab,
G4int  Z,
G4int  A 
)
virtual

Reimplemented from G4HadronElastic.

Definition at line 89 of file G4ChipsElasticModel.cc.

References G4ChipsProtonElasticXS::GetChipsCrossSection(), G4ChipsKaonPlusElasticXS::GetChipsCrossSection(), G4ChipsPionPlusElasticXS::GetChipsCrossSection(), G4ChipsNeutronElasticXS::GetChipsCrossSection(), G4ChipsKaonMinusElasticXS::GetChipsCrossSection(), G4ChipsAntiBaryonElasticXS::GetChipsCrossSection(), G4ChipsPionMinusElasticXS::GetChipsCrossSection(), G4ChipsProtonElasticXS::GetExchangeT(), G4ChipsPionPlusElasticXS::GetExchangeT(), G4ChipsKaonPlusElasticXS::GetExchangeT(), G4ChipsNeutronElasticXS::GetExchangeT(), G4ChipsKaonMinusElasticXS::GetExchangeT(), G4ChipsAntiBaryonElasticXS::GetExchangeT(), G4ChipsPionMinusElasticXS::GetExchangeT(), G4ParticleDefinition::GetPDGEncoding(), N, and G4HadronElastic::SampleInvariantT().

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

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