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

Detailed Description

Definition at line 53 of file G4ChipsElasticModel.hh.


Constructor & Destructor Documentation

G4ChipsElasticModel::G4ChipsElasticModel (  ) 

Definition at line 47 of file G4ChipsElasticModel.cc.

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

G4ChipsElasticModel::~G4ChipsElasticModel (  )  [virtual]

Definition at line 59 of file G4ChipsElasticModel.cc.

00060 {}


Member Function Documentation

void G4ChipsElasticModel::Description (  )  const [virtual]

Reimplemented from G4HadronElastic.

Definition at line 62 of file G4ChipsElasticModel.cc.

References G4HadronicInteraction::GetModelName().

00063 {
00064   char* dirName = getenv("G4PhysListDocDir");
00065   if (dirName) {
00066     std::ofstream outFile;
00067     G4String outFileName = GetModelName() + ".html";
00068     G4String pathName = G4String(dirName) + "/" + outFileName;
00069     outFile.open(pathName);
00070     outFile << "<html>\n";
00071     outFile << "<head>\n";
00072 
00073     outFile << "<title>Description of G4ChipsElasticModel</title>\n";
00074     outFile << "</head>\n";
00075     outFile << "<body>\n";
00076 
00077     outFile << "The G4ChipsElasticModel model performs hadron-nucleus elastic\n"
00078             << "scattering using the parameterized elastic cross sections\n"
00079             << "of M. Kossov\n";
00080 
00081     outFile << "</body>\n";
00082     outFile << "</html>\n";
00083     outFile.close();
00084   }
00085 }

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 G4ChipsKaonMinusElasticXS::GetChipsCrossSection(), G4ChipsKaonPlusElasticXS::GetChipsCrossSection(), G4ChipsPionMinusElasticXS::GetChipsCrossSection(), G4ChipsPionPlusElasticXS::GetChipsCrossSection(), G4ChipsAntiBaryonElasticXS::GetChipsCrossSection(), G4ChipsNeutronElasticXS::GetChipsCrossSection(), G4ChipsProtonElasticXS::GetChipsCrossSection(), G4ChipsKaonMinusElasticXS::GetExchangeT(), G4ChipsKaonPlusElasticXS::GetExchangeT(), G4ChipsPionMinusElasticXS::GetExchangeT(), G4ChipsPionPlusElasticXS::GetExchangeT(), G4ChipsAntiBaryonElasticXS::GetExchangeT(), G4ChipsNeutronElasticXS::GetExchangeT(), G4ChipsProtonElasticXS::GetExchangeT(), G4ParticleDefinition::GetPDGEncoding(), and G4HadronElastic::SampleInvariantT().

00091 {
00092   G4int N = A - Z;
00093   if(Z == 1 && N == 2)      { N = 1; }
00094   else if(Z == 2 && N == 1) { N = 2; }
00095   G4int projPDG = p->GetPDGEncoding();
00096   G4double cs = 0.;
00097   if     (projPDG==2212) { cs = pxsManager->GetChipsCrossSection(plab,Z,N,projPDG); }
00098   else if(projPDG==2112) { cs = nxsManager->GetChipsCrossSection(plab,Z,N,projPDG); }
00099   else if(projPDG==-2212){ cs = PBARxsManager->GetChipsCrossSection(plab,Z,N,projPDG); } //Pbar
00100   else if(projPDG== 211) { cs = PIPxsManager->GetChipsCrossSection(plab,Z,N,projPDG); } // Pi+
00101   else if(projPDG==-211) { cs = PIMxsManager->GetChipsCrossSection(plab,Z,N,projPDG); } // Pi-
00102   else if(projPDG== 321) { cs = KPxsManager->GetChipsCrossSection(plab,Z,N,projPDG); } // K+
00103   else if(projPDG==-321) { cs = KMxsManager->GetChipsCrossSection(plab,Z,N,projPDG); } // K-
00104 
00105   G4double t = 0.0;
00106   if(cs > 0.0)
00107   {
00108     if     (projPDG== 2212) { t = pxsManager->GetExchangeT(Z,N,projPDG); }
00109     else if(projPDG== 2112) { t = nxsManager->GetExchangeT(Z,N,projPDG); }
00110     else if(projPDG==-2212) { t = PBARxsManager->GetExchangeT(Z,N,projPDG); } // Pbar
00111     else if(projPDG==  211) { t = PIPxsManager->GetExchangeT(Z,N,projPDG); }  // Pi+
00112     else if(projPDG== -211) { t = PIMxsManager->GetExchangeT(Z,N,projPDG); }  // Pi-
00113     else if(projPDG==  321) { t = KPxsManager->GetExchangeT(Z,N,projPDG); }   // K+
00114     else if(projPDG== -321) { t = KMxsManager->GetExchangeT(Z,N,projPDG); }   // K-
00115   }
00116   else  { t = G4HadronElastic::SampleInvariantT(p, plab, Z, A); }
00117   return t;
00118 }


The documentation for this class was generated from the following files:
Generated on Mon May 27 17:51:37 2013 for Geant4 by  doxygen 1.4.7