#include <G4ChipsPionMinusInelasticXS.hh>
|
| G4ChipsPionMinusInelasticXS () |
|
| ~G4ChipsPionMinusInelasticXS () |
|
virtual void | CrossSectionDescription (std::ostream &) const |
|
virtual G4bool | IsIsoApplicable (const G4DynamicParticle *Pt, G4int Z, G4int A, const G4Element *elm, const G4Material *mat) |
|
virtual G4double | GetIsoCrossSection (const G4DynamicParticle *, G4int tgZ, G4int A, const G4Isotope *iso=0, const G4Element *elm=0, const G4Material *mat=0) |
|
virtual G4double | GetChipsCrossSection (G4double momentum, G4int Z, G4int N, G4int pdg) |
|
| G4VCrossSectionDataSet (const G4String &nam="") |
|
virtual | ~G4VCrossSectionDataSet () |
|
virtual G4bool | IsElementApplicable (const G4DynamicParticle *, G4int Z, const G4Material *mat=0) |
|
G4double | GetCrossSection (const G4DynamicParticle *, const G4Element *, const G4Material *mat=0) |
|
G4double | ComputeCrossSection (const G4DynamicParticle *, const G4Element *, const G4Material *mat=0) |
|
virtual G4double | GetElementCrossSection (const G4DynamicParticle *, G4int Z, const G4Material *mat=0) |
|
virtual G4Isotope * | SelectIsotope (const G4Element *, G4double kinEnergy) |
|
virtual void | BuildPhysicsTable (const G4ParticleDefinition &) |
|
virtual void | DumpPhysicsTable (const G4ParticleDefinition &) |
|
virtual G4int | GetVerboseLevel () const |
|
virtual void | SetVerboseLevel (G4int value) |
|
G4double | GetMinKinEnergy () const |
|
void | SetMinKinEnergy (G4double value) |
|
G4double | GetMaxKinEnergy () const |
|
void | SetMaxKinEnergy (G4double value) |
|
const G4String & | GetName () const |
|
|
G4double | CalculateCrossSection (G4int F, G4int I, G4int PDG, G4int Z, G4int N, G4double Momentum) |
|
G4int | GetFunctions (G4int tZ, G4int tN, G4double *y, G4double *z) |
|
G4double | CrossSectionLin (G4int targZ, G4int targN, G4double P) |
|
G4double | CrossSectionLog (G4int targZ, G4int targN, G4double lP) |
|
G4double | CrossSectionFormula (G4int targZ, G4int targN, G4double P, G4double lP) |
|
G4double | ThresholdMomentum (G4int targZ, G4int targN) |
|
G4double | EquLinearFit (G4double X, G4int N, G4double X0, G4double DX, G4double *Y) |
|
◆ G4ChipsPionMinusInelasticXS()
G4ChipsPionMinusInelasticXS::G4ChipsPionMinusInelasticXS |
( |
| ) |
|
Definition at line 55 of file G4ChipsPionMinusInelasticXS.cc.
66 LEN =
new std::vector<G4double*>;
67 HEN =
new std::vector<G4double*>;
G4VCrossSectionDataSet(const G4String &nam="")
std::vector< G4double * > * LEN
std::vector< G4double * > * HEN
◆ ~G4ChipsPionMinusInelasticXS()
G4ChipsPionMinusInelasticXS::~G4ChipsPionMinusInelasticXS |
( |
| ) |
|
◆ CalculateCrossSection()
Definition at line 180 of file G4ChipsPionMinusInelasticXS.cc.
184 static const G4double THmiG=THmin*.001;
188 static const G4double Pmin=THmin+(nL-1)*dP;
193 static const G4double dlP=(malP-milP)/(nH-1);
203 if(sync<=I)
G4cerr<<
"*!*G4ChipsPiMinusNuclCS::CalcCrosSect:Sync="<<sync<<
"<="<<I<<
G4endl;
229 G4cerr<<
"***G4ChipsPiMinusNuclCS::CalcCrossSect: Sinc="<<sync<<
"#"<<I<<
", Z=" <<targZ
230 <<
", N="<<targN<<
", F="<<F<<
G4endl;
238 if (Momentum<
lastTH)
return 0.;
239 else if (Momentum<Pmin)
243 else if (Momentum<Pmax)
253 if(sigma<0.)
return 0.;
G4double EquLinearFit(G4double X, G4int N, G4double X0, G4double DX, G4double *Y)
std::vector< G4double * > * LEN
std::vector< G4double * > * HEN
G4double CrossSectionLin(G4int targZ, G4int targN, G4double P)
G4double CrossSectionLog(G4int targZ, G4int targN, G4double lP)
G4double CrossSectionFormula(G4int targZ, G4int targN, G4double P, G4double lP)
G4double G4Log(G4double x)
static const G4double THmin
G4GLOB_DLL std::ostream G4cerr
◆ CrossSectionDescription()
void G4ChipsPionMinusInelasticXS::CrossSectionDescription |
( |
std::ostream & |
outFile | ) |
const |
|
virtual |
Reimplemented from G4VCrossSectionDataSet.
Definition at line 81 of file G4ChipsPionMinusInelasticXS.cc.
83 outFile <<
"G4ChipsPionMinusInelasticXS provides the inelastic cross\n" 84 <<
"section for pion- nucleus scattering as a function of incident\n" 85 <<
"momentum. The cross section is calculated using M. Kossov's\n" 86 <<
"CHIPS parameterization of cross section data.\n";
◆ CrossSectionFormula()
Definition at line 271 of file G4ChipsPionMinusInelasticXS.cc.
290 sigma=(To-El)+.4/md+.01/hd;
293 else if(tZ==1 && tN==1)
299 sigma=(.55*d*d+38.+23./std::sqrt(P))/(1.+.3/p2/p2)+18./(f*f+.1089)+.02/(gg*gg+.0025);
301 else if(tZ<97 && tN<152)
316 sigma=(c+d*
d)/(1.+.17/p4)+f/(u*u+h*h);
320 G4cerr<<
"-Warning-G4ChipsPiMinusNuclearCroSect::CSForm:*Bad A* Z="<<tZ<<
", N="<<tN<<
G4endl;
323 if(sigma<0.)
return 0.;
G4double G4Log(G4double x)
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
G4GLOB_DLL std::ostream G4cerr
◆ CrossSectionLin()
Definition at line 258 of file G4ChipsPionMinusInelasticXS.cc.
G4double CrossSectionFormula(G4int targZ, G4int targN, G4double P, G4double lP)
G4double G4Log(G4double x)
◆ CrossSectionLog()
Definition at line 265 of file G4ChipsPionMinusInelasticXS.cc.
G4double CrossSectionFormula(G4int targZ, G4int targN, G4double P, G4double lP)
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
◆ Default_Name()
static const char* G4ChipsPionMinusInelasticXS::Default_Name |
( |
| ) |
|
|
inlinestatic |
◆ EquLinearFit()
◆ GetChipsCrossSection()
!The slave functions must provide cross-sections in millibarns (mb) !! (not in IU)
Definition at line 109 of file G4ChipsPionMinusInelasticXS.cc.
136 if(lastCS<=0. && pMom>
lastTH)
155 colP.push_back(pMom);
G4double CalculateCrossSection(G4int F, G4int I, G4int PDG, G4int Z, G4int N, G4double Momentum)
std::vector< G4double > colP
std::vector< G4double > colCS
static const double millibarn
std::vector< G4double > colTH
std::vector< G4int > colN
std::vector< G4int > colZ
◆ GetFunctions()
◆ GetIsoCrossSection()
◆ IsIsoApplicable()
◆ ThresholdMomentum()
◆ colCS
std::vector<G4double> G4ChipsPionMinusInelasticXS::colCS |
|
private |
◆ colN
std::vector<G4int> G4ChipsPionMinusInelasticXS::colN |
|
private |
◆ colP
std::vector<G4double> G4ChipsPionMinusInelasticXS::colP |
|
private |
◆ colTH
std::vector<G4double> G4ChipsPionMinusInelasticXS::colTH |
|
private |
◆ colZ
std::vector<G4int> G4ChipsPionMinusInelasticXS::colZ |
|
private |
◆ HEN
std::vector<G4double*>* G4ChipsPionMinusInelasticXS::HEN |
|
private |
G4int G4ChipsPionMinusInelasticXS::j |
|
private |
◆ lastCS
G4double G4ChipsPionMinusInelasticXS::lastCS |
|
private |
◆ lastE
G4double G4ChipsPionMinusInelasticXS::lastE |
|
private |
◆ lastHEN
G4double* G4ChipsPionMinusInelasticXS::lastHEN |
|
private |
◆ lastI
G4int G4ChipsPionMinusInelasticXS::lastI |
|
private |
◆ lastLEN
G4double* G4ChipsPionMinusInelasticXS::lastLEN |
|
private |
◆ lastN
G4int G4ChipsPionMinusInelasticXS::lastN |
|
private |
◆ lastP
G4double G4ChipsPionMinusInelasticXS::lastP |
|
private |
◆ lastPDG
G4int G4ChipsPionMinusInelasticXS::lastPDG |
|
private |
◆ lastSig
G4double G4ChipsPionMinusInelasticXS::lastSig |
|
private |
◆ lastTH
G4double G4ChipsPionMinusInelasticXS::lastTH |
|
private |
◆ lastZ
G4int G4ChipsPionMinusInelasticXS::lastZ |
|
private |
◆ LEN
std::vector<G4double*>* G4ChipsPionMinusInelasticXS::LEN |
|
private |
The documentation for this class was generated from the following files: