63 LEN =
new std::vector<G4double*>;
64 HEN =
new std::vector<G4double*>;
70 for(
G4int i=0; i<lens; ++i)
delete[] (*
LEN)[i];
74 for(
G4int i=0; i<hens; ++i)
delete[] (*
HEN)[i];
160 if(lastCS<=0. && pMom>
lastTH)
179 colP.push_back(pMom);
208 static const G4double THmiG=THmin*.001;
212 static const G4double Pmin=THmin+(nL-1)*dP;
215 static const G4double milP=std::log(Pmin);
216 static const G4double malP=std::log(Pmax);
217 static const G4double dlP=(malP-milP)/(nH-1);
218 static const G4double milPG=std::log(.001*Pmin);
227 if(sync<=I)
G4cerr<<
"*!*G4QPiMinusNuclCS::CalcCrosSect:Sync="<<sync<<
"<="<<I<<
G4endl;
253 G4cerr<<
"***G4QHyperNuclCS::CalcCrossSect: Sinc="<<sync<<
"#"<<I<<
", Z=" <<targZ
254 <<
", N="<<targN<<
", F="<<F<<
G4endl;
262 if (Momentum<
lastTH)
return 0.;
263 else if (Momentum<Pmin)
267 else if (Momentum<Pmax)
277 if(sigma<0.)
return 0.;
306 G4double El=(.0557*ld2+6.72+99./p2)/(1.+2./sp+2./p4);
307 G4double To=(.3*ld2+38.2+900./
sp)/(1.+27./sp+3./p4);
310 else if(tZ<97 && tN<152)
324 G4double c=(170.+3600./a2s)/(1.+65./a2s);
325 G4double gg=42.*(std::exp(al*0.8)+4.E-8*
a4)/(1.+28./a)/(1.+5.E-5*
a2);
332 e=380.+18.*a2/(1.+a2/60.)/(1.+2.E-19*a8);
334 h=1.E-8*a2/(1.+a2/17.)/(1.+3.E-20*a8);
335 t=(.2+.00056*
a2)/(1.+a2*.0006);
337 sigma=(c+d*d)/(1.+t/ssp+r/p4)+(gg+e*std::exp(-6.*P))/(1.+h/p4/p4);
339 G4cout<<
"G4QHyperonNucCS::CSForm: A="<<a<<
",P="<<P<<
",CS="<<sigma<<
",c="<<c<<
",g="<<gg
340 <<
",d="<<d<<
",r="<<r<<
",e="<<e<<
",h="<<h<<
G4endl;
345 G4cerr<<
"-Warning-G4QHyperonNuclearCroSect::CSForm:*Bad A* Z="<<tZ<<
", N="<<tN<<
G4endl;
348 if(sigma<0.)
return 0.;
356 G4cerr<<
"***G4ChipsHyperonInelasticXS::EquLinearFit: DX="<<DX<<
", N="<<N<<
G4endl;
362 G4int jj=
static_cast<int>(d);
364 else if(jj>N2) jj=N2;
G4double EquLinearFit(G4double X, G4int N, G4double X0, G4double DX, G4double *Y)
virtual G4double GetChipsCrossSection(G4double momentum, G4int Z, G4int N, G4int pdg)
virtual G4double GetIsoCrossSection(const G4DynamicParticle *, G4int tgZ, G4int A, const G4Isotope *iso=0, const G4Element *elm=0, const G4Material *mat=0)
G4int GetPDGEncoding() const
G4ParticleDefinition * GetDefinition() const
std::vector< G4double * > * LEN
G4double GetTotalMomentum() const
std::vector< G4double > colP
std::vector< G4int > colZ
G4GLOB_DLL std::ostream G4cout
std::vector< G4int > colN
G4ChipsHyperonInelasticXS()
static const G4double A[nN]
G4double CrossSectionLog(G4int targZ, G4int targN, G4double lP)
std::vector< G4double > colTH
static const double millibarn
~G4ChipsHyperonInelasticXS()
virtual G4bool IsIsoApplicable(const G4DynamicParticle *Pt, G4int Z, G4int A, const G4Element *elm, const G4Material *mat)
G4_DECLARE_XS_FACTORY(G4ChipsHyperonInelasticXS)
std::vector< G4double > colCS
G4double CrossSectionFormula(G4int targZ, G4int targN, G4double P, G4double lP)
G4double CalculateCrossSection(G4int F, G4int I, G4int PDG, G4int Z, G4int N, G4double Momentum)
G4double CrossSectionLin(G4int targZ, G4int targN, G4double P)
static const G4double THmin
G4GLOB_DLL std::ostream G4cerr
std::vector< G4double * > * HEN