#include <G4ChipsKaonPlusInelasticXS.hh>
|
| G4ChipsKaonPlusInelasticXS () |
|
| ~G4ChipsKaonPlusInelasticXS () |
|
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) |
|
◆ G4ChipsKaonPlusInelasticXS()
G4ChipsKaonPlusInelasticXS::G4ChipsKaonPlusInelasticXS |
( |
| ) |
|
Definition at line 75 of file G4ChipsKaonPlusInelasticXS.cc.
92 LEN =
new std::vector<G4double*>;
93 HEN =
new std::vector<G4double*>;
G4VCrossSectionDataSet(const G4String &nam="")
std::vector< G4double * > * HEN
static const char * Default_Name()
std::vector< G4double * > * LEN
static G4Proton * Proton()
static G4PionPlus * PionPlus()
G4double GetPDGMass() const
static G4KaonPlus * KaonPlus()
◆ ~G4ChipsKaonPlusInelasticXS()
G4ChipsKaonPlusInelasticXS::~G4ChipsKaonPlusInelasticXS |
( |
| ) |
|
◆ CalculateCrossSection()
Definition at line 212 of file G4ChipsKaonPlusInelasticXS.cc.
224 if(sync<=I)
G4cerr<<
"*!*G4ChipsKPlusNuclCS::CalcCrosSect:Sync="<<sync<<
"<="<<I<<
G4endl;
250 G4cerr<<
"***G4ChipsKPlusNuclCS::CalcCrossSect: Sinc="<<sync<<
"#"<<I<<
", Z=" <<targZ
251 <<
", N="<<targN<<
", F="<<F<<
G4endl;
260 if (Momentum<
lastTH)
return 0.;
261 else if (Momentum<Pmin)
263 if(A<=1. && Momentum < 600.) sigma=0.;
266 else if (Momentum<Pmax)
276 if(sigma<0.)
return 0.;
G4double CrossSectionLog(G4int targZ, G4int targN, G4double lP)
std::vector< G4double * > * HEN
std::vector< G4double * > * LEN
double A(double temperature)
G4double CrossSectionLin(G4int targZ, G4int targN, G4double P)
G4double EquLinearFit(G4double X, G4int N, G4double X0, G4double DX, G4double *Y)
G4double CrossSectionFormula(G4int targZ, G4int targN, G4double P, G4double lP)
static const G4double THmin
G4GLOB_DLL std::ostream G4cerr
◆ CrossSectionDescription()
void G4ChipsKaonPlusInelasticXS::CrossSectionDescription |
( |
std::ostream & |
outFile | ) |
const |
|
virtual |
Reimplemented from G4VCrossSectionDataSet.
Definition at line 108 of file G4ChipsKaonPlusInelasticXS.cc.
110 outFile <<
"G4ChipsKaonPlusInelasticXS provides the inelastic cross\n" 111 <<
"section for K+ nucleus scattering as a function of incident\n" 112 <<
"momentum. The cross section is calculated using M. Kossov's\n" 113 <<
"CHIPS parameterization of cross section data.\n";
◆ CrossSectionFormula()
Definition at line 308 of file G4ChipsKaonPlusInelasticXS.cc.
321 G4double El=(.0557*ld2+2.23)/(1.-.7/sp+.1/p4);
322 G4double To=(.3*ld2+19.5)/(1.+.46/sp+1.6/p4);
325 else if(tZ<97 && tN<152)
351 c=52.*std::exp(al*.6)*(1.+95./
a2)/(1.+9./a)/(1.+46./
a2);
352 ss=(40.+.14*
a)/(1.+12./a);
354 t=.185*y/(1.+.00012*
y);
355 u=(1.+80./asa)/(1.+200./asa);
356 v=(1.+3.E-6*a4*(1.+6.E-7*a3+4.E10/a12))/a3/20000.;
363 sigma=(f*d*d+
c)/(1.+r/std::sqrt(P)+1./p4)+(rD+rR)/(1+v/p4/p4);
367 G4cerr<<
"-Warning-G4ChipsKaonPlusNuclearCroSect::CSForm:Bad A, Z="<<tZ<<
", N="<<tN<<
G4endl;
370 if(sigma<0.)
return 0.;
G4GLOB_DLL std::ostream G4cerr
◆ CrossSectionLin()
◆ CrossSectionLog()
◆ Default_Name()
static const char* G4ChipsKaonPlusInelasticXS::Default_Name |
( |
| ) |
|
|
inlinestatic |
◆ EquLinearFit()
◆ GetChipsCrossSection()
!The slave functions must provide cross-sections in millibarns (mb) !! (not in IU)
Definition at line 137 of file G4ChipsKaonPlusInelasticXS.cc.
167 if(lastCS<=0. && pMom>
lastTH)
187 colP.push_back(pMom);
std::vector< G4double > colP
std::vector< G4int > colZ
std::vector< G4int > colN
std::vector< G4double > colCS
G4double CalculateCrossSection(G4int F, G4int I, G4int PDG, G4int Z, G4int N, G4double Momentum)
std::vector< G4double > colTH
static const double millibarn
◆ GetFunctions()
◆ GetIsoCrossSection()
◆ IsIsoApplicable()
◆ ThresholdMomentum()
Definition at line 281 of file G4ChipsKaonPlusInelasticXS.cc.
284 if(tZ<.99 || tN<0.)
return 0.;
287 if(tZ==1 && tN==0) tM=prM;
288 else dE=tZ/(1.+std::pow(tA,
third));
291 return std::sqrt(T*(tpM+T));
static const G4double third
◆ colCS
std::vector<G4double> G4ChipsKaonPlusInelasticXS::colCS |
|
private |
◆ colN
std::vector<G4int> G4ChipsKaonPlusInelasticXS::colN |
|
private |
◆ colP
std::vector<G4double> G4ChipsKaonPlusInelasticXS::colP |
|
private |
◆ colTH
std::vector<G4double> G4ChipsKaonPlusInelasticXS::colTH |
|
private |
◆ colZ
std::vector<G4int> G4ChipsKaonPlusInelasticXS::colZ |
|
private |
◆ HEN
std::vector<G4double*>* G4ChipsKaonPlusInelasticXS::HEN |
|
private |
G4int G4ChipsKaonPlusInelasticXS::j |
|
private |
◆ lastCS
G4double G4ChipsKaonPlusInelasticXS::lastCS |
|
private |
◆ lastE
G4double G4ChipsKaonPlusInelasticXS::lastE |
|
private |
◆ lastHEN
G4double* G4ChipsKaonPlusInelasticXS::lastHEN |
|
private |
◆ lastI
G4int G4ChipsKaonPlusInelasticXS::lastI |
|
private |
◆ lastLEN
G4double* G4ChipsKaonPlusInelasticXS::lastLEN |
|
private |
◆ lastN
G4int G4ChipsKaonPlusInelasticXS::lastN |
|
private |
◆ lastP
G4double G4ChipsKaonPlusInelasticXS::lastP |
|
private |
◆ lastPDG
G4int G4ChipsKaonPlusInelasticXS::lastPDG |
|
private |
◆ lastSig
G4double G4ChipsKaonPlusInelasticXS::lastSig |
|
private |
◆ lastTH
G4double G4ChipsKaonPlusInelasticXS::lastTH |
|
private |
◆ lastZ
G4int G4ChipsKaonPlusInelasticXS::lastZ |
|
private |
◆ LEN
std::vector<G4double*>* G4ChipsKaonPlusInelasticXS::LEN |
|
private |
The documentation for this class was generated from the following files: