72 LEN =
new std::vector<G4double*>;
73 HEN =
new std::vector<G4double*>;
79 for(
G4int i=0; i<lens; ++i)
delete[] (*
LEN)[i];
82 for(
G4int i=0; i<hens; ++i)
delete[] (*
HEN)[i];
88 outFile <<
"G4ChipsAntiBaryonInelasticXS provides the inelastic cross\n"
89 <<
"section for anti-baryon nucleus scattering as a function of incident\n"
90 <<
"momentum. The cross section is calculated using M. Kossov's\n"
91 <<
"CHIPS parameterization of cross section data.\n";
183 if(lastCS<=0. && pMom>
lastTH)
202 colP.push_back(pMom);
231 static const G4double THmiG=THmin*.001;
235 static const G4double Pmin=THmin+(nL-1)*dP;
240 static const G4double dlP=(malP-milP)/(nH-1);
250 if(sync<=I)
G4cerr<<
"*!*G4QPiMinusNuclCS::CalcCrosSect:Sync="<<sync<<
"<="<<I<<
G4endl;
276 G4cerr<<
"***G4QPiMinusNuclCS::CalcCrossSect: Sinc="<<sync<<
"#"<<I<<
", Z=" <<targZ
277 <<
", N="<<targN<<
", F="<<F<<
G4endl;
285 if (Momentum<
lastTH)
return 0.;
286 else if (Momentum<Pmin)
290 else if (Momentum<Pmax)
300 if(sigma<0.)
return 0.;
330 sigma=(To-El)+.2443*ld2+31.48;
332 else if(tZ==1 && tN==1)
335 sigma=0.6*r*r+67.+90.*
G4Exp(-lP*.666);
337 else if(tZ<97 && tN<152)
347 G4double r=(170.+0.01*a3)/(1.+a3/28000.);
352 G4cerr<<
"-Warning-G4QAntiBarNuclearCroSect::CSForm:*Bad A* Z="<<tZ<<
", N="<<tN<<
G4endl;
355 if(sigma<0.)
return 0.;
363 G4cerr<<
"***G4ChipsAntiBaryonInelasticXS::EquLinearFit: DX="<<DX<<
", N="<<N<<
G4endl;
369 G4int jj=
static_cast<int>(
d);
371 else if(jj>N2) jj=N2;
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
std::vector< ExP01TrackerHit * > a
std::vector< G4int > colN
std::vector< G4double * > * LEN
G4double CrossSectionFormula(G4int targZ, G4int targN, G4double P, G4double lP)
std::vector< G4int > colZ
G4double G4Log(G4double x)
std::vector< G4double > colCS
static constexpr double millibarn
static G4Pow * GetInstance()
G4ParticleDefinition * GetDefinition() const
G4double powA(G4double A, G4double y) const
std::vector< G4double * > * HEN
static const G4double THmin
double A(double temperature)
#define G4_DECLARE_XS_FACTORY(cross_section)
G4GLOB_DLL std::ostream G4cerr
~G4ChipsAntiBaryonInelasticXS()
virtual G4double GetIsoCrossSection(const G4DynamicParticle *, G4int tgZ, G4int A, const G4Isotope *iso=0, const G4Element *elm=0, const G4Material *mat=0)
G4double CrossSectionLin(G4int targZ, G4int targN, G4double P)
G4double CalculateCrossSection(G4int F, G4int I, G4int PDG, G4int Z, G4int N, G4double Momentum)
virtual G4double GetChipsCrossSection(G4double momentum, G4int Z, G4int N, G4int pdg)
std::vector< G4double > colTH
G4double CrossSectionLog(G4int targZ, G4int targN, G4double lP)
virtual void CrossSectionDescription(std::ostream &) const
virtual G4bool IsIsoApplicable(const G4DynamicParticle *Pt, G4int Z, G4int A, const G4Element *elm, const G4Material *mat)
G4int GetPDGEncoding() const
G4double EquLinearFit(G4double X, G4int N, G4double X0, G4double DX, G4double *Y)
std::vector< G4double > colP
G4double GetTotalMomentum() const
G4ChipsAntiBaryonInelasticXS()