G4ChipsComponentXS Class Reference

#include <G4ChipsComponentXS.hh>

Inheritance diagram for G4ChipsComponentXS:

G4VComponentCrossSection

Public Member Functions

 G4ChipsComponentXS ()
virtual ~G4ChipsComponentXS ()
virtual G4double GetTotalElementCrossSection (const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double N)
virtual G4double GetTotalIsotopeCrossSection (const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int N)
virtual G4double GetInelasticElementCrossSection (const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double N)
virtual G4double GetInelasticIsotopeCrossSection (const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int N)
virtual G4double GetElasticElementCrossSection (const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4double N)
virtual G4double GetElasticIsotopeCrossSection (const G4ParticleDefinition *aParticle, G4double kinEnergy, G4int Z, G4int N)
virtual void BuildPhysicsTable (const G4ParticleDefinition &)
virtual void DumpPhysicsTable (const G4ParticleDefinition &)

Detailed Description

Definition at line 76 of file G4ChipsComponentXS.hh.


Constructor & Destructor Documentation

G4ChipsComponentXS::G4ChipsComponentXS (  ) 

Definition at line 45 of file G4ChipsComponentXS.cc.

References G4ChipsHyperonInelasticXS::Default_Name(), G4ChipsHyperonElasticXS::Default_Name(), G4ChipsKaonZeroInelasticXS::Default_Name(), G4ChipsKaonZeroElasticXS::Default_Name(), G4ChipsKaonMinusInelasticXS::Default_Name(), G4ChipsKaonMinusElasticXS::Default_Name(), G4ChipsKaonPlusInelasticXS::Default_Name(), G4ChipsKaonPlusElasticXS::Default_Name(), G4ChipsPionMinusInelasticXS::Default_Name(), G4ChipsPionMinusElasticXS::Default_Name(), G4ChipsPionPlusInelasticXS::Default_Name(), G4ChipsPionPlusElasticXS::Default_Name(), G4ChipsAntiBaryonInelasticXS::Default_Name(), G4ChipsAntiBaryonElasticXS::Default_Name(), G4ChipsNeutronInelasticXS::Default_Name(), G4ChipsNeutronElasticXS::Default_Name(), G4ChipsProtonInelasticXS::Default_Name(), G4ChipsProtonElasticXS::Default_Name(), G4CrossSectionDataSetRegistry::GetCrossSectionDataSet(), and G4CrossSectionDataSetRegistry::Instance().

00045                                       :G4VComponentCrossSection("G4ChipsComponentXS"), fUpperLimit( 10000 * GeV ),
00046                                          fLowerLimit( 10 * MeV )
00047 {
00048   PxsManagerEl      = (G4ChipsProtonElasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsProtonElasticXS::Default_Name());
00049   PxsManagerInEl    = (G4ChipsProtonInelasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsProtonInelasticXS::Default_Name());
00050 
00051   NxsManagerEl      = (G4ChipsNeutronElasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsNeutronElasticXS::Default_Name());
00052   NxsManagerInEl    = (G4ChipsNeutronInelasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsNeutronInelasticXS::Default_Name());
00053 
00054   PBARxsManagerEl   = (G4ChipsAntiBaryonElasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsAntiBaryonElasticXS::Default_Name());
00055   PBARxsManagerInEl = (G4ChipsAntiBaryonInelasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsAntiBaryonInelasticXS::Default_Name());
00056 
00057   PIPxsManagerEl    = (G4ChipsPionPlusElasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsPionPlusElasticXS::Default_Name());
00058   PIPxsManagerInEl  = (G4ChipsPionPlusInelasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsPionPlusInelasticXS::Default_Name()); 
00059 
00060   PIMxsManagerEl    = (G4ChipsPionMinusElasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsPionMinusElasticXS::Default_Name());
00061   PIMxsManagerInEl  = (G4ChipsPionMinusInelasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsPionMinusInelasticXS::Default_Name());
00062 
00063   KPxsManagerEl     = (G4ChipsKaonPlusElasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonPlusElasticXS::Default_Name());
00064   KPxsManagerInEl   = (G4ChipsKaonPlusInelasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonPlusInelasticXS::Default_Name());
00065 
00066   KMxsManagerEl     = (G4ChipsKaonMinusElasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonMinusElasticXS::Default_Name());
00067   KMxsManagerInEl   = (G4ChipsKaonMinusInelasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonMinusInelasticXS::Default_Name());
00068 
00069   KZxsManagerEl     = (G4ChipsKaonZeroElasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonZeroElasticXS::Default_Name());
00070   KZxsManagerInEl   = (G4ChipsKaonZeroInelasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsKaonZeroInelasticXS::Default_Name());
00071 
00072   HxsManagerEl     = (G4ChipsHyperonElasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsHyperonElasticXS::Default_Name());
00073   HxsManagerInEl   = (G4ChipsHyperonInelasticXS*)G4CrossSectionDataSetRegistry::Instance()->GetCrossSectionDataSet(G4ChipsHyperonInelasticXS::Default_Name());
00074 }

G4ChipsComponentXS::~G4ChipsComponentXS (  )  [virtual]

Definition at line 77 of file G4ChipsComponentXS.cc.

00078 {
00079 }


Member Function Documentation

virtual void G4ChipsComponentXS::BuildPhysicsTable ( const G4ParticleDefinition  )  [inline, virtual]

Reimplemented from G4VComponentCrossSection.

Definition at line 112 of file G4ChipsComponentXS.hh.

00113   {}

virtual void G4ChipsComponentXS::DumpPhysicsTable ( const G4ParticleDefinition  )  [inline, virtual]

Reimplemented from G4VComponentCrossSection.

Definition at line 116 of file G4ChipsComponentXS.hh.

00117   {}

G4double G4ChipsComponentXS::GetElasticElementCrossSection ( const G4ParticleDefinition aParticle,
G4double  kinEnergy,
G4int  Z,
G4double  N 
) [virtual]

Implements G4VComponentCrossSection.

Definition at line 191 of file G4ChipsComponentXS.cc.

References G4ParticleDefinition::GetPDGEncoding(), and G4ParticleDefinition::GetPDGMass().

00192 {
00193   G4double momentum = std::sqrt(kinEnergy*(kinEnergy+2.*aParticle->GetPDGMass()));
00194   G4int PDGcode=aParticle->GetPDGEncoding();
00195 
00196   G4double Xelastic(0.);
00197   
00198   if     (PDGcode == 2212)   // Projectile is Proton
00199   {
00200    Xelastic=PxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);
00201   } else if(PDGcode == 2112)  // Projectile is Neutron 
00202   {
00203    Xelastic=NxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);   
00204   } else if(PDGcode == -2212) // Projectile is Anti-Proton
00205   {
00206    Xelastic=PBARxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);
00207   } else if(PDGcode == -2112) // Projectile is Anti-Neutron
00208   {
00209    Xelastic=PBARxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);
00210   } else if(PDGcode ==   211) // Projectile is Pi+ 
00211   {
00212    Xelastic=PIPxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);
00213   } else if(PDGcode ==  -211) // Projectile is Pi-
00214   {
00215    Xelastic=PIMxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);
00216   } else if(PDGcode ==  321)  // Projectile is K+ 
00217   {
00218    Xelastic=KPxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);
00219   } else if(PDGcode ==  -321) // Projectile is K- 
00220   {
00221    Xelastic=KMxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);
00222   } 
00223   return Xelastic; 
00224 }

G4double G4ChipsComponentXS::GetElasticIsotopeCrossSection ( const G4ParticleDefinition aParticle,
G4double  kinEnergy,
G4int  Z,
G4int  N 
) [virtual]

Implements G4VComponentCrossSection.

Definition at line 228 of file G4ChipsComponentXS.cc.

00229 { return GetElasticElementCrossSection(aParticle, kinEnergy, Z, (G4double) A); }

G4double G4ChipsComponentXS::GetInelasticElementCrossSection ( const G4ParticleDefinition aParticle,
G4double  kinEnergy,
G4int  Z,
G4double  N 
) [virtual]

Implements G4VComponentCrossSection.

Definition at line 148 of file G4ChipsComponentXS.cc.

References G4ParticleDefinition::GetPDGEncoding(), and G4ParticleDefinition::GetPDGMass().

00149 {
00150   G4double momentum = std::sqrt(kinEnergy*(kinEnergy+2.*aParticle->GetPDGMass()));
00151   G4int PDGcode=aParticle->GetPDGEncoding();
00152 
00153   G4double Xinelastic(0.);
00154 
00155   if     (PDGcode == 2212)   // Projectile is Proton
00156   {
00157    Xinelastic = PxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);
00158   } else if(PDGcode == 2112)  // Projectile is Neutron 
00159   {
00160    Xinelastic = NxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);
00161   } else if(PDGcode == -2212) // Projectile is Anti-Proton
00162   {
00163    Xinelastic = PBARxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);
00164   } else if(PDGcode == -2112) // Projectile is Anti-Neutron
00165   {
00166    Xinelastic = PBARxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);
00167   } else if(PDGcode ==   211) // Projectile is Pi+ 
00168   {
00169    Xinelastic = PIPxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);
00170   } else if(PDGcode ==  -211) // Projectile is Pi-
00171   {
00172    Xinelastic = PIMxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);
00173   } else if(PDGcode ==  321)  // Projectile is K+ 
00174   {
00175    Xinelastic = KPxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);
00176   } else if(PDGcode ==  -321) // Projectile is K- 
00177   {
00178    Xinelastic = KMxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);; 
00179   } 
00180 
00181   return Xinelastic; 
00182 }

G4double G4ChipsComponentXS::GetInelasticIsotopeCrossSection ( const G4ParticleDefinition aParticle,
G4double  kinEnergy,
G4int  Z,
G4int  N 
) [virtual]

Implements G4VComponentCrossSection.

Definition at line 186 of file G4ChipsComponentXS.cc.

00187 {return GetInelasticElementCrossSection(aParticle, kinEnergy, Z, (G4double) A); }

G4double G4ChipsComponentXS::GetTotalElementCrossSection ( const G4ParticleDefinition aParticle,
G4double  kinEnergy,
G4int  Z,
G4double  N 
) [virtual]

Implements G4VComponentCrossSection.

Definition at line 83 of file G4ChipsComponentXS.cc.

References G4ParticleDefinition::GetPDGEncoding(), and G4ParticleDefinition::GetPDGMass().

00084 {
00085   G4double momentum = std::sqrt(kinEnergy*(kinEnergy+2.*aParticle->GetPDGMass()));
00086   G4int PDGcode=aParticle->GetPDGEncoding();
00087 
00088   G4double Xelastic(0.), Xinelastic(0.);
00089 
00090   if     (PDGcode == 2212)   // Projectile is Proton
00091   {
00092    Xelastic   = PxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);  
00093    Xinelastic = PxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);
00094   } else if(PDGcode == 2112)  // Projectile is Neutron 
00095   {
00096    Xelastic = NxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);  
00097    Xinelastic = NxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);   
00098   } else if(PDGcode == -2212) // Projectile is Anti-Proton
00099   {
00100    Xelastic = PBARxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 
00101    Xinelastic = PBARxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);
00102   } else if(PDGcode == -2112) // Projectile is Anti-Neutron
00103   {
00104    Xelastic = PBARxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 
00105    Xinelastic = PBARxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);
00106   }else if(PDGcode == -3122 || PDGcode == -3222  || PDGcode == -3212  || PDGcode == -3112  || PDGcode == -3322  
00107            || PDGcode == -3312  || PDGcode == -3334) // Projectile is other Anti-baryon
00108   {
00109    Xelastic = PBARxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 
00110    Xinelastic = PBARxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);
00111   } else if(PDGcode ==   211) // Projectile is Pi+ 
00112   {
00113    Xelastic = PIPxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 
00114    Xinelastic = PIPxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);
00115   } else if(PDGcode ==  -211) // Projectile is Pi-
00116   {
00117    Xelastic = PIMxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 
00118    Xinelastic = PIMxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);
00119   } else if(PDGcode ==  321)  // Projectile is K+ 
00120   {
00121    Xelastic = KPxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 
00122    Xinelastic = KPxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 
00123   } else if(PDGcode ==  -321) // Projectile is K- 
00124   {
00125    Xelastic = KMxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 
00126    Xinelastic = KMxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode);  
00127   } else if(PDGcode ==  130 || PDGcode ==  310 || PDGcode ==  311 || PDGcode ==  -311) // Projectile is K0
00128   {
00129    Xelastic = KZxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 
00130    Xinelastic = KZxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 
00131   }else if(PDGcode ==   3122 || PDGcode ==  3222 || PDGcode ==  3112 || PDGcode ==  3212
00132            || PDGcode ==   3312 || PDGcode ==  3322 || PDGcode ==   3334) // Projectile is hyperon
00133   {
00134    Xelastic = HxsManagerEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 
00135    Xinelastic = HxsManagerInEl->GetChipsCrossSection(momentum,Z,(G4int)N,PDGcode); 
00136   } 
00137 
00138   return Xelastic+Xinelastic; 
00139 }

G4double G4ChipsComponentXS::GetTotalIsotopeCrossSection ( const G4ParticleDefinition aParticle,
G4double  kinEnergy,
G4int  Z,
G4int  N 
) [virtual]

Implements G4VComponentCrossSection.

Definition at line 143 of file G4ChipsComponentXS.cc.

00144 { return GetTotalElementCrossSection(aParticle, kinEnergy, Z, (G4double) A);  }


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