#include <G4ChipsPionPlusInelasticXS.hh>
|
| G4ChipsPionPlusInelasticXS () |
|
| ~G4ChipsPionPlusInelasticXS () |
|
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) |
|
◆ G4ChipsPionPlusInelasticXS()
G4ChipsPionPlusInelasticXS::G4ChipsPionPlusInelasticXS |
( |
| ) |
|
Definition at line 55 of file G4ChipsPionPlusInelasticXS.cc.
66 LEN =
new std::vector<G4double*>;
67 HEN =
new std::vector<G4double*>;
G4VCrossSectionDataSet(const G4String &nam="")
static const char * Default_Name()
std::vector< G4double * > * LEN
std::vector< G4double * > * HEN
◆ ~G4ChipsPionPlusInelasticXS()
G4ChipsPionPlusInelasticXS::~G4ChipsPionPlusInelasticXS |
( |
| ) |
|
◆ CalculateCrossSection()
Definition at line 182 of file G4ChipsPionPlusInelasticXS.cc.
186 static const G4double THmiG=THmin*.001;
190 static const G4double Pmin=THmin+(nL-1)*dP;
195 static const G4double dlP=(malP-milP)/(nH-1);
205 if(sync<=I)
G4cerr<<
"*!*G4ChipsPiMinusNuclCS::CalcCrosSect:Sync="<<sync<<
"<="<<I<<
G4endl;
231 G4cerr<<
"***G4ChipsPiMinusNuclCS::CalcCrossSect: Sinc="<<sync<<
"#"<<I<<
", Z=" <<targZ
232 <<
", N="<<targN<<
", F="<<F<<
G4endl;
240 if (Momentum<
lastTH)
return 0.;
241 else if (Momentum<Pmin)
245 else if (Momentum<Pmax)
255 if(sigma<0.)
return 0.;
G4double CrossSectionFormula(G4int targZ, G4int targN, G4double P, G4double lP)
G4double EquLinearFit(G4double X, G4int N, G4double X0, G4double DX, G4double *Y)
G4double CrossSectionLin(G4int targZ, G4int targN, G4double P)
G4double G4Log(G4double x)
std::vector< G4double * > * LEN
std::vector< G4double * > * HEN
G4double CrossSectionLog(G4int targZ, G4int targN, G4double lP)
static const G4double THmin
G4GLOB_DLL std::ostream G4cerr
◆ CrossSectionDescription()
void G4ChipsPionPlusInelasticXS::CrossSectionDescription |
( |
std::ostream & |
outFile | ) |
const |
|
virtual |
Reimplemented from G4VCrossSectionDataSet.
Definition at line 82 of file G4ChipsPionPlusInelasticXS.cc.
84 outFile <<
"G4ChipsPionPlusInelasticXS provides the inelastic cross\n" 85 <<
"section for pion+ nucleus scattering as a function of incident\n" 86 <<
"momentum. The cross section is calculated using M. Kossov's\n" 87 <<
"CHIPS parameterization of cross section data.\n";
◆ CrossSectionFormula()
Definition at line 289 of file G4ChipsPionPlusInelasticXS.cc.
306 else if(tZ==1 && tN==1)
312 sigma=(.55*d*d+38.+23./std::sqrt(P))/(1.+.3/p2/p2)+18./(f*f+.1089)+.02/(gg*gg+.0025);
314 else if(tZ<97 && tN<152)
330 sigma=(c+d*
d)/(1.+(.2-.009*sa)/p4)+f/(u*u+h*h)/(1.+r/p2);
334 G4cerr<<
"-Warning-G4ChipsPiPlusNuclearCroSect::CSForm:*Bad A* Z="<<tZ<<
", N="<<tN<<
G4endl;
337 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 276 of file G4ChipsPionPlusInelasticXS.cc.
G4double CrossSectionFormula(G4int targZ, G4int targN, G4double P, G4double lP)
G4double G4Log(G4double x)
◆ CrossSectionLog()
Definition at line 283 of file G4ChipsPionPlusInelasticXS.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* G4ChipsPionPlusInelasticXS::Default_Name |
( |
| ) |
|
|
inlinestatic |
◆ EquLinearFit()
◆ GetChipsCrossSection()
!The slave functions must provide cross-sections in millibarns (mb) !! (not in IU)
Definition at line 111 of file G4ChipsPionPlusInelasticXS.cc.
138 if(lastCS<=0. && pMom>
lastTH)
157 colP.push_back(pMom);
std::vector< G4double > colCS
G4double CalculateCrossSection(G4int F, G4int I, G4int PDG, G4int Z, G4int N, G4double Momentum)
std::vector< G4int > colN
std::vector< G4int > colZ
static const double millibarn
std::vector< G4double > colTH
std::vector< G4double > colP
◆ GetFunctions()
◆ GetIsoCrossSection()
◆ IsIsoApplicable()
◆ ThresholdMomentum()
Definition at line 260 of file G4ChipsPionPlusInelasticXS.cc.
266 if(tZ<.99 || tN<0.)
return 0.;
267 else if(tZ==1 && tN==0)
return 300.;
272 return std::sqrt(T*(tpM+T));
static G4Pow * GetInstance()
static G4PionPlus * Definition()
static G4PionPlus * PionPlus()
G4double GetPDGMass() const
static const G4double third
G4double powA(G4double A, G4double y) const
◆ colCS
std::vector<G4double> G4ChipsPionPlusInelasticXS::colCS |
|
private |
◆ colN
std::vector<G4int> G4ChipsPionPlusInelasticXS::colN |
|
private |
◆ colP
std::vector<G4double> G4ChipsPionPlusInelasticXS::colP |
|
private |
◆ colTH
std::vector<G4double> G4ChipsPionPlusInelasticXS::colTH |
|
private |
◆ colZ
std::vector<G4int> G4ChipsPionPlusInelasticXS::colZ |
|
private |
◆ HEN
std::vector<G4double*>* G4ChipsPionPlusInelasticXS::HEN |
|
private |
G4int G4ChipsPionPlusInelasticXS::j |
|
private |
◆ lastCS
G4double G4ChipsPionPlusInelasticXS::lastCS |
|
private |
◆ lastE
G4double G4ChipsPionPlusInelasticXS::lastE |
|
private |
◆ lastHEN
G4double* G4ChipsPionPlusInelasticXS::lastHEN |
|
private |
◆ lastI
G4int G4ChipsPionPlusInelasticXS::lastI |
|
private |
◆ lastLEN
G4double* G4ChipsPionPlusInelasticXS::lastLEN |
|
private |
◆ lastN
G4int G4ChipsPionPlusInelasticXS::lastN |
|
private |
◆ lastP
G4double G4ChipsPionPlusInelasticXS::lastP |
|
private |
◆ lastPDG
G4int G4ChipsPionPlusInelasticXS::lastPDG |
|
private |
◆ lastSig
G4double G4ChipsPionPlusInelasticXS::lastSig |
|
private |
◆ lastTH
G4double G4ChipsPionPlusInelasticXS::lastTH |
|
private |
◆ lastZ
G4int G4ChipsPionPlusInelasticXS::lastZ |
|
private |
◆ LEN
std::vector<G4double*>* G4ChipsPionPlusInelasticXS::LEN |
|
private |
The documentation for this class was generated from the following files: