Geant4-11
Public Member Functions | Static Public Member Functions | Protected Attributes | Private Member Functions | Private Attributes
G4ChipsAntiBaryonElasticXS Class Reference

#include <G4ChipsAntiBaryonElasticXS.hh>

Inheritance diagram for G4ChipsAntiBaryonElasticXS:
G4VCrossSectionDataSet

Public Member Functions

virtual void BuildPhysicsTable (const G4ParticleDefinition &)
 
G4double ComputeCrossSection (const G4DynamicParticle *, const G4Element *, const G4Material *mat=nullptr)
 
virtual void CrossSectionDescription (std::ostream &) const
 
virtual void DumpPhysicsTable (const G4ParticleDefinition &)
 
bool ForAllAtomsAndEnergies () const
 
 G4ChipsAntiBaryonElasticXS ()
 
virtual G4double GetChipsCrossSection (G4double momentum, G4int Z, G4int N, G4int pdg)
 
G4double GetCrossSection (const G4DynamicParticle *, const G4Element *, const G4Material *mat=nullptr)
 
virtual G4double GetElementCrossSection (const G4DynamicParticle *, G4int Z, const G4Material *mat=nullptr)
 
G4double GetExchangeT (G4int tZ, G4int tN, G4int pPDG)
 
virtual G4double GetIsoCrossSection (const G4DynamicParticle *, G4int tgZ, G4int A, const G4Isotope *iso=0, const G4Element *elm=0, const G4Material *mat=0)
 
G4double GetMaxKinEnergy () const
 
G4double GetMinKinEnergy () const
 
const G4StringGetName () const
 
virtual G4int GetVerboseLevel () const
 
virtual G4bool IsElementApplicable (const G4DynamicParticle *, G4int Z, const G4Material *mat=nullptr)
 
virtual G4bool IsIsoApplicable (const G4DynamicParticle *Pt, G4int Z, G4int A, const G4Element *elm, const G4Material *mat)
 
virtual const G4IsotopeSelectIsotope (const G4Element *, G4double kinEnergy, G4double logE)
 
void SetForAllAtomsAndEnergies (G4bool val)
 
void SetMaxKinEnergy (G4double value)
 
void SetMinKinEnergy (G4double value)
 
void SetName (const G4String &nam)
 
virtual void SetVerboseLevel (G4int value)
 
 ~G4ChipsAntiBaryonElasticXS ()
 

Static Public Member Functions

static const char * Default_Name ()
 

Protected Attributes

G4String name
 
G4int verboseLevel
 

Private Member Functions

G4double CalculateCrossSection (G4bool CS, G4int F, G4int I, G4int pPDG, G4int Z, G4int N, G4double pP)
 
G4double GetHMaxT ()
 
G4double GetPTables (G4double lpP, G4double lPm, G4int PDG, G4int tZ, G4int tN)
 
G4double GetQ2max (G4int pPDG, G4int tgZ, G4int tgN, G4double pP)
 
G4double GetSlope (G4int tZ, G4int tN, G4int pPDG)
 
G4double GetTabValues (G4double lp, G4int pPDG, G4int tgZ, G4int tgN)
 

Private Attributes

std::vector< G4double * > B1T
 
std::vector< G4double * > B2T
 
std::vector< G4double * > B3T
 
std::vector< G4double * > B4T
 
std::vector< G4doublecolCS
 
std::vector< G4intcolN
 
std::vector< G4doublecolP
 
std::vector< G4doublecolTH
 
std::vector< G4intcolZ
 
std::vector< G4double * > CST
 
G4double dlnP
 
G4bool isForAllAtomsAndEnergies
 
G4doublelastB1T
 
G4doublelastB2T
 
G4doublelastB3T
 
G4doublelastB4T
 
G4double lastCS
 
G4doublelastCST
 
G4int lastI
 
G4double lastLP
 
G4int lastN
 
G4double lastP
 
G4doublelastPAR
 
G4double lastPIN
 
G4doublelastS1T
 
G4doublelastS2T
 
G4doublelastS3T
 
G4doublelastS4T
 
G4double lastSIG
 
G4doublelastSST
 
G4double lastTH
 
G4double lastTM
 
G4int lastTN
 
G4int lastTZ
 
G4int lastZ
 
G4double lPMax
 
G4double lPMin
 
G4double maxKinEnergy
 
G4double minKinEnergy
 
const G4int nLast
 
const G4int nPoints
 
G4bool onlyCS
 
std::vector< G4double * > PAR
 
std::vector< G4doublePIN
 
G4CrossSectionDataSetRegistryregistry
 
std::vector< G4double * > S1T
 
std::vector< G4double * > S2T
 
std::vector< G4double * > S3T
 
std::vector< G4double * > S4T
 
std::vector< G4double * > SST
 
G4double theB1
 
G4double theB2
 
G4double theB3
 
G4double theB4
 
G4double theS1
 
G4double theS2
 
G4double theS3
 
G4double theS4
 
G4double theSS
 

Detailed Description

Definition at line 46 of file G4ChipsAntiBaryonElasticXS.hh.

Constructor & Destructor Documentation

◆ G4ChipsAntiBaryonElasticXS()

G4ChipsAntiBaryonElasticXS::G4ChipsAntiBaryonElasticXS ( )

Definition at line 58 of file G4ChipsAntiBaryonElasticXS.cc.

59{
60 lPMin=-8.; //Min tabulatedLogarithmMomentum(D)
61 lPMax= 8.; //Max tabulatedLogarithmMomentum(D)
62 dlnP=(lPMax-lPMin)/nLast;// LogStep inTable (D)
63 onlyCS=true;//Flag toCalculOnlyCS(not Si/Bi)(L)
64 lastSIG=0.; //Last calculated cross section (L)
65 lastLP=-10.;//LastLog(mom_of IncidentHadron)(L)
66 lastTM=0.; //Last t_maximum (L)
67 theSS=0.; //TheLastSqSlope of 1st difr.Max(L)
68 theS1=0.; //TheLastMantissa of 1st difrMax(L)
69 theB1=0.; //TheLastSlope of 1st difructMax(L)
70 theS2=0.; //TheLastMantissa of 2nd difrMax(L)
71 theB2=0.; //TheLastSlope of 2nd difructMax(L)
72 theS3=0.; //TheLastMantissa of 3d difr.Max(L)
73 theB3=0.; //TheLastSlope of 3d difruct.Max(L)
74 theS4=0.; //TheLastMantissa of 4th difrMax(L)
75 theB4=0.; //TheLastSlope of 4th difructMax(L)
76 lastTZ=0; // Last atomic number of the target
77 lastTN=0; // Last # of neutrons in the target
78 lastPIN=0.; // Last initialized max momentum
79 lastCST=0; // Elastic cross-section table
80 lastPAR=0; // ParametersForFunctionCalculation
81 lastSST=0; // E-dep ofSqardSlope of 1st difMax
82 lastS1T=0; // E-dep of mantissa of 1st dif.Max
83 lastB1T=0; // E-dep of the slope of 1st difMax
84 lastS2T=0; // E-dep of mantissa of 2nd difrMax
85 lastB2T=0; // E-dep of the slope of 2nd difMax
86 lastS3T=0; // E-dep of mantissa of 3d difr.Max
87 lastB3T=0; // E-dep of the slope of 3d difrMax
88 lastS4T=0; // E-dep of mantissa of 4th difrMax
89 lastB4T=0; // E-dep of the slope of 4th difMax
90 lastN=0; // The last N of calculated nucleus
91 lastZ=0; // The last Z of calculated nucleus
92 lastP=0.; // LastUsed inCrossSection Momentum
93 lastTH=0.; // Last threshold momentum
94 lastCS=0.; // Last value of the Cross Section
95 lastI=0; // The last position in the DAMDB
96}
G4VCrossSectionDataSet(const G4String &nam="")

References dlnP, lastB1T, lastB2T, lastB3T, lastB4T, lastCS, lastCST, lastI, lastLP, lastN, lastP, lastPAR, lastPIN, lastS1T, lastS2T, lastS3T, lastS4T, lastSIG, lastSST, lastTH, lastTM, lastTN, lastTZ, lastZ, lPMax, lPMin, nLast, onlyCS, theB1, theB2, theB3, theB4, theS1, theS2, theS3, theS4, and theSS.

◆ ~G4ChipsAntiBaryonElasticXS()

G4ChipsAntiBaryonElasticXS::~G4ChipsAntiBaryonElasticXS ( )

Definition at line 98 of file G4ChipsAntiBaryonElasticXS.cc.

99{
100 std::vector<G4double*>::iterator pos;
101 for (pos=CST.begin(); pos<CST.end(); pos++)
102 { delete [] *pos; }
103 CST.clear();
104 for (pos=PAR.begin(); pos<PAR.end(); pos++)
105 { delete [] *pos; }
106 PAR.clear();
107 for (pos=SST.begin(); pos<SST.end(); pos++)
108 { delete [] *pos; }
109 SST.clear();
110 for (pos=S1T.begin(); pos<S1T.end(); pos++)
111 { delete [] *pos; }
112 S1T.clear();
113 for (pos=B1T.begin(); pos<B1T.end(); pos++)
114 { delete [] *pos; }
115 B1T.clear();
116 for (pos=S2T.begin(); pos<S2T.end(); pos++)
117 { delete [] *pos; }
118 S2T.clear();
119 for (pos=B2T.begin(); pos<B2T.end(); pos++)
120 { delete [] *pos; }
121 B2T.clear();
122 for (pos=S3T.begin(); pos<S3T.end(); pos++)
123 { delete [] *pos; }
124 S3T.clear();
125 for (pos=B3T.begin(); pos<B3T.end(); pos++)
126 { delete [] *pos; }
127 B3T.clear();
128 for (pos=S4T.begin(); pos<S4T.end(); pos++)
129 { delete [] *pos; }
130 S4T.clear();
131 for (pos=B4T.begin(); pos<B4T.end(); pos++)
132 { delete [] *pos; }
133 B4T.clear();
134}
static const G4double pos

References B1T, B2T, B3T, B4T, CST, PAR, pos, S1T, S2T, S3T, S4T, and SST.

Member Function Documentation

◆ BuildPhysicsTable()

void G4VCrossSectionDataSet::BuildPhysicsTable ( const G4ParticleDefinition )
virtualinherited

◆ CalculateCrossSection()

G4double G4ChipsAntiBaryonElasticXS::CalculateCrossSection ( G4bool  CS,
G4int  F,
G4int  I,
G4int  pPDG,
G4int  Z,
G4int  N,
G4double  pP 
)
private

Definition at line 274 of file G4ChipsAntiBaryonElasticXS.cc.

276{
277 G4double pMom=pIU/GeV; // All calculations are in GeV
278 onlyCS=CS; // Flag to calculate only CS (not Si/Bi)
279 lastLP=G4Log(pMom); // Make a logarithm of the momentum for calculation
280 if(F) // This isotope was found in AMDB =>RETRIEVE/UPDATE
281 {
282 if(F<0) // the AMDB must be loded
283 {
284 lastPIN = PIN[I]; // Max log(P) initialised for this table set
285 lastPAR = PAR[I]; // Pointer to the parameter set
286 lastCST = CST[I]; // Pointer to the total sross-section table
287 lastSST = SST[I]; // Pointer to the first squared slope
288 lastS1T = S1T[I]; // Pointer to the first mantissa
289 lastB1T = B1T[I]; // Pointer to the first slope
290 lastS2T = S2T[I]; // Pointer to the second mantissa
291 lastB2T = B2T[I]; // Pointer to the second slope
292 lastS3T = S3T[I]; // Pointer to the third mantissa
293 lastB3T = B3T[I]; // Pointer to the rhird slope
294 lastS4T = S4T[I]; // Pointer to the 4-th mantissa
295 lastB4T = B4T[I]; // Pointer to the 4-th slope
296 }
298 {
299 lastPIN=GetPTables(lastLP,lastPIN,PDG,tgZ,tgN);// Can update upper logP-Limit in tabs
300 PIN[I]=lastPIN; // Remember the new P-Limit of the tables
301 }
302 }
303 else // This isotope wasn't initialized => CREATE
304 {
305 lastPAR = new G4double[nPoints]; // Allocate memory for parameters of CS function
306 lastPAR[nLast]=0; // Initialization for VALGRIND
307 lastCST = new G4double[nPoints]; // Allocate memory for Tabulated CS function
308 lastSST = new G4double[nPoints]; // Allocate memory for Tabulated first sqaredSlope
309 lastS1T = new G4double[nPoints]; // Allocate memory for Tabulated first mantissa
310 lastB1T = new G4double[nPoints]; // Allocate memory for Tabulated first slope
311 lastS2T = new G4double[nPoints]; // Allocate memory for Tabulated second mantissa
312 lastB2T = new G4double[nPoints]; // Allocate memory for Tabulated second slope
313 lastS3T = new G4double[nPoints]; // Allocate memory for Tabulated third mantissa
314 lastB3T = new G4double[nPoints]; // Allocate memory for Tabulated third slope
315 lastS4T = new G4double[nPoints]; // Allocate memory for Tabulated 4-th mantissa
316 lastB4T = new G4double[nPoints]; // Allocate memory for Tabulated 4-th slope
317 lastPIN = GetPTables(lastLP,lPMin,PDG,tgZ,tgN); // Returns the new P-limit for tables
318 PIN.push_back(lastPIN); // Fill parameters of CS function to AMDB
319 PAR.push_back(lastPAR); // Fill parameters of CS function to AMDB
320 CST.push_back(lastCST); // Fill Tabulated CS function to AMDB
321 SST.push_back(lastSST); // Fill Tabulated first sq.slope to AMDB
322 S1T.push_back(lastS1T); // Fill Tabulated first mantissa to AMDB
323 B1T.push_back(lastB1T); // Fill Tabulated first slope to AMDB
324 S2T.push_back(lastS2T); // Fill Tabulated second mantissa to AMDB
325 B2T.push_back(lastB2T); // Fill Tabulated second slope to AMDB
326 S3T.push_back(lastS3T); // Fill Tabulated third mantissa to AMDB
327 B3T.push_back(lastB3T); // Fill Tabulated third slope to AMDB
328 S4T.push_back(lastS4T); // Fill Tabulated 4-th mantissa to AMDB
329 B4T.push_back(lastB4T); // Fill Tabulated 4-th slope to AMDB
330 } // End of creation/update of the new set of parameters and tables
331 // =---------= NOW Update (if necessary) and Calculate the Cross Section =-----------=
333 {
334 lastPIN = GetPTables(lastLP,lastPIN,PDG,tgZ,tgN);
335 }
336 if(!onlyCS) lastTM=GetQ2max(PDG, tgZ, tgN, pMom); // Calculate (-t)_max=Q2_max (GeV2)
337 if(lastLP>lPMin && lastLP<=lastPIN) // Linear fit is made using precalculated tables
338 {
339 if(lastLP==lastPIN)
340 {
341 G4double shift=(lastLP-lPMin)/dlnP+.000001; // Log distance from lPMin
342 G4int blast=static_cast<int>(shift); // this is a bin number of the lower edge (0)
343 if(blast<0 || blast>=nLast) G4cout<<"G4QaBarElCS::CCS:b="<<blast<<","<<nLast<<G4endl;
344 lastSIG = lastCST[blast];
345 if(!onlyCS) // Skip the differential cross-section parameters
346 {
347 theSS = lastSST[blast];
348 theS1 = lastS1T[blast];
349 theB1 = lastB1T[blast];
350 theS2 = lastS2T[blast];
351 theB2 = lastB2T[blast];
352 theS3 = lastS3T[blast];
353 theB3 = lastB3T[blast];
354 theS4 = lastS4T[blast];
355 theB4 = lastB4T[blast];
356 }
357 }
358 else
359 {
360 G4double shift=(lastLP-lPMin)/dlnP; // a shift from the beginning of the table
361 G4int blast=static_cast<int>(shift); // the lower bin number
362 if(blast<0) blast=0;
363 if(blast>=nLast) blast=nLast-1; // low edge of the last bin
364 shift-=blast; // step inside the unit bin
365 G4int lastL=blast+1; // the upper bin number
366 G4double SIGL=lastCST[blast]; // the basic value of the cross-section
367 lastSIG= SIGL+shift*(lastCST[lastL]-SIGL); // calculated total elastic cross-section
368 if(!onlyCS) // Skip the differential cross-section parameters
369 {
370 G4double SSTL=lastSST[blast]; // the low bin of the first squared slope
371 theSS=SSTL+shift*(lastSST[lastL]-SSTL); // the basic value of the first sq.slope
372 G4double S1TL=lastS1T[blast]; // the low bin of the first mantissa
373 theS1=S1TL+shift*(lastS1T[lastL]-S1TL); // the basic value of the first mantissa
374 G4double B1TL=lastB1T[blast]; // the low bin of the first slope
375 theB1=B1TL+shift*(lastB1T[lastL]-B1TL); // the basic value of the first slope
376 G4double S2TL=lastS2T[blast]; // the low bin of the second mantissa
377 theS2=S2TL+shift*(lastS2T[lastL]-S2TL); // the basic value of the second mantissa
378 G4double B2TL=lastB2T[blast]; // the low bin of the second slope
379 theB2=B2TL+shift*(lastB2T[lastL]-B2TL); // the basic value of the second slope
380 G4double S3TL=lastS3T[blast]; // the low bin of the third mantissa
381 theS3=S3TL+shift*(lastS3T[lastL]-S3TL); // the basic value of the third mantissa
382 G4double B3TL=lastB3T[blast]; // the low bin of the third slope
383 theB3=B3TL+shift*(lastB3T[lastL]-B3TL); // the basic value of the third slope
384 G4double S4TL=lastS4T[blast]; // the low bin of the 4-th mantissa
385 theS4=S4TL+shift*(lastS4T[lastL]-S4TL); // the basic value of the 4-th mantissa
386 G4double B4TL=lastB4T[blast]; // the low bin of the 4-th slope
387 theB4=B4TL+shift*(lastB4T[lastL]-B4TL); // the basic value of the 4-th slope
388 }
389 }
390 }
391 else lastSIG=GetTabValues(lastLP, PDG, tgZ, tgN); // Direct calculation beyond the table
392 if(lastSIG<0.) lastSIG = 0.; // @@ a Warning print can be added
393 return lastSIG;
394}
G4double G4Log(G4double x)
Definition: G4Log.hh:226
static constexpr double GeV
Definition: G4SIunits.hh:203
double G4double
Definition: G4Types.hh:83
int G4int
Definition: G4Types.hh:85
#define G4endl
Definition: G4ios.hh:57
G4GLOB_DLL std::ostream G4cout
G4double GetPTables(G4double lpP, G4double lPm, G4int PDG, G4int tZ, G4int tN)
G4double GetQ2max(G4int pPDG, G4int tgZ, G4int tgN, G4double pP)
G4double GetTabValues(G4double lp, G4int pPDG, G4int tgZ, G4int tgN)

References B1T, B2T, B3T, B4T, CST, dlnP, G4cout, G4endl, G4Log(), GetPTables(), GetQ2max(), GetTabValues(), GeV, lastB1T, lastB2T, lastB3T, lastB4T, lastCST, lastLP, lastPAR, lastPIN, lastS1T, lastS2T, lastS3T, lastS4T, lastSIG, lastSST, lastTM, lPMax, lPMin, nLast, nPoints, onlyCS, PAR, PIN, S1T, S2T, S3T, S4T, SST, theB1, theB2, theB3, theB4, theS1, theS2, theS3, theS4, and theSS.

Referenced by GetChipsCrossSection().

◆ ComputeCrossSection()

G4double G4VCrossSectionDataSet::ComputeCrossSection ( const G4DynamicParticle part,
const G4Element elm,
const G4Material mat = nullptr 
)
inherited

Definition at line 81 of file G4VCrossSectionDataSet.cc.

84{
85 G4int Z = elm->GetZasInt();
86
87 if (IsElementApplicable(part, Z, mat)) {
88 return GetElementCrossSection(part, Z, mat);
89 }
90
91 // isotope-wise cross section making sum over available
92 // isotope cross sections, which may be incomplete, so
93 // the result is corrected
94 size_t nIso = elm->GetNumberOfIsotopes();
95 G4double fact = 0.0;
96 G4double xsec = 0.0;
97
98 // user-defined isotope abundances
99 const G4IsotopeVector* isoVector = elm->GetIsotopeVector();
100 const G4double* abundVector = elm->GetRelativeAbundanceVector();
101
102 for (size_t j=0; j<nIso; ++j) {
103 const G4Isotope* iso = (*isoVector)[j];
104 G4int A = iso->GetN();
105 if(abundVector[j] > 0.0 && IsIsoApplicable(part, Z, A, elm, mat)) {
106 fact += abundVector[j];
107 xsec += abundVector[j]*GetIsoCrossSection(part, Z, A, iso, elm, mat);
108 }
109 }
110 return (fact > 0.0) ? xsec/fact : 0.0;
111}
std::vector< G4Isotope * > G4IsotopeVector
const G4int Z[17]
const G4double A[17]
G4double * GetRelativeAbundanceVector() const
Definition: G4Element.hh:167
size_t GetNumberOfIsotopes() const
Definition: G4Element.hh:159
G4int GetZasInt() const
Definition: G4Element.hh:132
G4IsotopeVector * GetIsotopeVector() const
Definition: G4Element.hh:163
G4int GetN() const
Definition: G4Isotope.hh:93
virtual G4double GetElementCrossSection(const G4DynamicParticle *, G4int Z, const G4Material *mat=nullptr)
virtual G4double GetIsoCrossSection(const G4DynamicParticle *, G4int Z, G4int A, const G4Isotope *iso=nullptr, const G4Element *elm=nullptr, const G4Material *mat=nullptr)
virtual G4bool IsIsoApplicable(const G4DynamicParticle *, G4int Z, G4int A, const G4Element *elm=nullptr, const G4Material *mat=nullptr)
virtual G4bool IsElementApplicable(const G4DynamicParticle *, G4int Z, const G4Material *mat=nullptr)

References A, G4VCrossSectionDataSet::GetElementCrossSection(), G4VCrossSectionDataSet::GetIsoCrossSection(), G4Element::GetIsotopeVector(), G4Isotope::GetN(), G4Element::GetNumberOfIsotopes(), G4Element::GetRelativeAbundanceVector(), G4Element::GetZasInt(), G4VCrossSectionDataSet::IsElementApplicable(), G4VCrossSectionDataSet::IsIsoApplicable(), and Z.

Referenced by G4VCrossSectionDataSet::GetCrossSection().

◆ CrossSectionDescription()

void G4ChipsAntiBaryonElasticXS::CrossSectionDescription ( std::ostream &  outFile) const
virtual

Reimplemented from G4VCrossSectionDataSet.

Definition at line 137 of file G4ChipsAntiBaryonElasticXS.cc.

138{
139 outFile << "G4ChipsAntiBaryonElasticXS provides the elastic cross\n"
140 << "section for anti-baryon nucleus scattering as a function of incident\n"
141 << "momentum. The cross section is calculated using M. Kossov's\n"
142 << "CHIPS parameterization of cross section data.\n";
143}

◆ Default_Name()

static const char * G4ChipsAntiBaryonElasticXS::Default_Name ( )
inlinestatic

Definition at line 55 of file G4ChipsAntiBaryonElasticXS.hh.

55{return "ChipsAntiBaryonElasticXS";}

Referenced by G4ChipsComponentXS::G4ChipsComponentXS(), and G4ChipsElasticModel::G4ChipsElasticModel().

◆ DumpPhysicsTable()

void G4VCrossSectionDataSet::DumpPhysicsTable ( const G4ParticleDefinition )
virtualinherited

◆ ForAllAtomsAndEnergies()

bool G4VCrossSectionDataSet::ForAllAtomsAndEnergies ( ) const
inlineinherited

◆ GetChipsCrossSection()

G4double G4ChipsAntiBaryonElasticXS::GetChipsCrossSection ( G4double  momentum,
G4int  Z,
G4int  N,
G4int  pdg 
)
virtual

!The slave functions must provide cross-sections in millibarns (mb) !! (not in IU)

Definition at line 205 of file G4ChipsAntiBaryonElasticXS.cc.

206{
207 G4bool fCS = false;
208
209 G4double pEn=pMom;
210 onlyCS=fCS;
211
212 G4bool in=false; // By default the isotope must be found in the AMDB
213 lastP = 0.; // New momentum history (nothing to compare with)
214 lastN = tgN; // The last N of the calculated nucleus
215 lastZ = tgZ; // The last Z of the calculated nucleus
216 lastI = colN.size(); // Size of the Associative Memory DB in the heap
217 if(lastI) for(G4int i=0; i<lastI; i++) // Loop over proj/tgZ/tgN lines of DB
218 { // The nucleus with projPDG is found in AMDB
219 if(colN[i]==tgN && colZ[i]==tgZ) // Isotope is foind in AMDB
220 {
221 lastI=i;
222 lastTH =colTH[i]; // Last THreshold (A-dependent)
223 if(pEn<=lastTH)
224 {
225 return 0.; // Energy is below the Threshold value
226 }
227 lastP =colP [i]; // Last Momentum (A-dependent)
228 lastCS =colCS[i]; // Last CrossSect (A-dependent)
229 // if(std::fabs(lastP/pMom-1.)<tolerance) //VI (do not use tolerance)
230 if(lastP == pMom) // Do not recalculate
231 {
232 CalculateCrossSection(fCS,-1,i,pPDG,lastZ,lastN,pMom); // Update param's only
233 return lastCS*millibarn; // Use theLastCS
234 }
235 in = true; // This is the case when the isotop is found in DB
236 // Momentum pMom is in IU ! @@ Units
237 lastCS=CalculateCrossSection(fCS,-1,i,pPDG,lastZ,lastN,pMom); // read & update
238 if(lastCS<=0. && pEn>lastTH) // Correct the threshold
239 {
240 lastTH=pEn;
241 }
242 break; // Go out of the LOOP with found lastI
243 }
244 } // End of attampt to find the nucleus in DB
245 if(!in) // This nucleus has not been calculated previously
246 {
248 lastCS=CalculateCrossSection(fCS,0,lastI,pPDG,lastZ,lastN,pMom);//calculate&create
249 if(lastCS<=0.)
250 {
251 lastTH = 0; // ThresholdEnergy(tgZ, tgN); // The Threshold Energy which is now the last
252 if(pEn>lastTH)
253 {
254 lastTH=pEn;
255 }
256 }
257 colN.push_back(tgN);
258 colZ.push_back(tgZ);
259 colP.push_back(pMom);
260 colTH.push_back(lastTH);
261 colCS.push_back(lastCS);
262 return lastCS*millibarn;
263 } // End of creation of the new set of parameters
264 else
265 {
266 colP[lastI]=pMom;
268 }
269 return lastCS*millibarn;
270}
static constexpr double millibarn
Definition: G4SIunits.hh:86
bool G4bool
Definition: G4Types.hh:86
G4double CalculateCrossSection(G4bool CS, G4int F, G4int I, G4int pPDG, G4int Z, G4int N, G4double pP)

References CalculateCrossSection(), colCS, colN, colP, colTH, colZ, lastCS, lastI, lastN, lastP, lastTH, lastZ, millibarn, and onlyCS.

Referenced by G4ChipsComponentXS::GetElasticElementCrossSection(), GetIsoCrossSection(), G4ChipsComponentXS::GetTotalElementCrossSection(), and G4ChipsElasticModel::SampleInvariantT().

◆ GetCrossSection()

G4double G4VCrossSectionDataSet::GetCrossSection ( const G4DynamicParticle dp,
const G4Element elm,
const G4Material mat = nullptr 
)
inlineinherited

Definition at line 187 of file G4VCrossSectionDataSet.hh.

190{
191 return ComputeCrossSection(dp, elm, mat);
192}
G4double ComputeCrossSection(const G4DynamicParticle *, const G4Element *, const G4Material *mat=nullptr)

References G4VCrossSectionDataSet::ComputeCrossSection().

◆ GetElementCrossSection()

G4double G4VCrossSectionDataSet::GetElementCrossSection ( const G4DynamicParticle dynPart,
G4int  Z,
const G4Material mat = nullptr 
)
virtualinherited

Reimplemented in G4EMDissociationCrossSection, G4IonsShenCrossSection, G4NeutrinoElectronCcXsc, G4NeutrinoElectronNcXsc, G4NeutrinoElectronTotXsc, G4NeutronElectronElXsc, G4PhotoNuclearCrossSection, G4NeutronCaptureXS, G4NeutronElasticXS, G4NeutronInelasticXS, G4ElectroNuclearCrossSection, G4BGGNucleonElasticXS, G4BGGPionElasticXS, G4BGGPionInelasticXS, G4BGGNucleonInelasticXS, G4CrossSectionElastic, G4CrossSectionInelastic, G4GammaNuclearXS, G4ParticleInelasticXS, G4ZeroXS, G4NucleonNuclearCrossSection, G4MuNeutrinoNucleusTotXsc, and G4KokoulinMuonNuclearXS.

Definition at line 114 of file G4VCrossSectionDataSet.cc.

117{
119 ed << "GetElementCrossSection is not implemented in <" << name << ">\n"
120 << "Particle: " << dynPart->GetDefinition()->GetParticleName()
121 << " Ekin(MeV)= " << dynPart->GetKineticEnergy()/MeV;
122 if(mat) { ed << " material: " << mat->GetName(); }
123 ed << " target Z= " << Z << G4endl;
124 G4Exception("G4VCrossSectionDataSet::GetElementCrossSection", "had001",
125 FatalException, ed);
126 return 0.0;
127}
@ FatalException
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
Definition: G4Exception.cc:35
std::ostringstream G4ExceptionDescription
Definition: G4Exception.hh:40
static constexpr double MeV
Definition: G4SIunits.hh:200
G4ParticleDefinition * GetDefinition() const
G4double GetKineticEnergy() const
const G4String & GetName() const
Definition: G4Material.hh:173
const G4String & GetParticleName() const

References FatalException, G4endl, G4Exception(), G4DynamicParticle::GetDefinition(), G4DynamicParticle::GetKineticEnergy(), G4Material::GetName(), G4ParticleDefinition::GetParticleName(), MeV, G4VCrossSectionDataSet::name, and Z.

Referenced by G4QMDReaction::ApplyYourself(), G4VCrossSectionDataSet::ComputeCrossSection(), G4GammaNuclearXS::GetElementCrossSection(), G4GammaNuclearXS::GetIsoCrossSection(), and G4GammaNuclearXS::Initialise().

◆ GetExchangeT()

G4double G4ChipsAntiBaryonElasticXS::GetExchangeT ( G4int  tZ,
G4int  tN,
G4int  pPDG 
)

Definition at line 643 of file G4ChipsAntiBaryonElasticXS.cc.

644{
646 static const G4double third=1./3.;
647 static const G4double fifth=1./5.;
648 static const G4double sevth=1./7.;
649
650 if(PDG<-3334 || PDG>-1111)G4cout<<"*Warning*G4QAntiBaryonElCS::GetExT:PDG="<<PDG<<G4endl;
651 if(onlyCS)G4cout<<"WarningG4ChipsAntiBaryonElasticXS::GetExchanT:onlyCS=1"<<G4endl;
652 if(lastLP<-4.3) return lastTM*GeVSQ*G4UniformRand();// S-wave for p<14 MeV/c (kinE<.1MeV)
653 G4double q2=0.;
654 if(tgZ==1 && tgN==0) // ===> p+p=p+p
655 {
657 G4double R1=(1.-G4Exp(-E1));
659 G4double R2=(1.-G4Exp(-E2*E2*E2));
661 G4double R3=(1.-G4Exp(-E3));
662 G4double I1=R1*theS1/theB1;
663 G4double I2=R2*theS2;
664 G4double I3=R3*theS3;
665 G4double I12=I1+I2;
666 G4double rand=(I12+I3)*G4UniformRand();
667 if (rand<I1 )
668 {
669 G4double ran=R1*G4UniformRand();
670 if(ran>1.) ran=1.;
671 q2=-G4Log(1.-ran)/theB1;
672 }
673 else if(rand<I12)
674 {
675 G4double ran=R2*G4UniformRand();
676 if(ran>1.) ran=1.;
677 q2=-G4Log(1.-ran);
678 if(q2<0.) q2=0.;
680 }
681 else
682 {
683 G4double ran=R3*G4UniformRand();
684 if(ran>1.) ran=1.;
685 q2=-G4Log(1.-ran)/theB3;
686 }
687 }
688 else
689 {
690 G4double a=tgZ+tgN;
692 G4double R1=(1.-G4Exp(-E1));
693 G4double tss=theSS+theSS; // for future solution of quadratic equation (imediate check)
695 G4double E2=lastTM*tm2*theB2; // power 3 for lowA, 5 for HighA (1st)
696 if(a>6.5)E2*=tm2; // for heavy nuclei
697 G4double R2=(1.-G4Exp(-E2));
699 if(a>6.5)E3*=tm2*tm2*tm2; // power 1 for lowA, 7 (2nd) for HighA
700 G4double R3=(1.-G4Exp(-E3));
702 G4double R4=(1.-G4Exp(-E4));
703 G4double I1=R1*theS1;
704 G4double I2=R2*theS2;
705 G4double I3=R3*theS3;
706 G4double I4=R4*theS4;
707 G4double I12=I1+I2;
708 G4double I13=I12+I3;
709 G4double rand=(I13+I4)*G4UniformRand();
710 if(rand<I1)
711 {
712 G4double ran=R1*G4UniformRand();
713 if(ran>1.) ran=1.;
714 q2=-G4Log(1.-ran)/theB1;
715 if(std::fabs(tss)>1.e-7) q2=(std::sqrt(theB1*(theB1+(tss+tss)*q2))-theB1)/tss;
716 }
717 else if(rand<I12)
718 {
719 G4double ran=R2*G4UniformRand();
720 if(ran>1.) ran=1.;
721 q2=-G4Log(1.-ran)/theB2;
722 if(q2<0.) q2=0.;
723 if(a<6.5) q2=G4Pow::GetInstance()->powA(q2,third);
724 else q2=G4Pow::GetInstance()->powA(q2,fifth);
725 }
726 else if(rand<I13)
727 {
728 G4double ran=R3*G4UniformRand();
729 if(ran>1.) ran=1.;
730 q2=-G4Log(1.-ran)/theB3;
731 if(q2<0.) q2=0.;
732 if(a>6.5) q2=G4Pow::GetInstance()->powA(q2,sevth);
733 }
734 else
735 {
736 G4double ran=R4*G4UniformRand();
737 if(ran>1.) ran=1.;
738 q2=-G4Log(1.-ran)/theB4;
739 if(a<6.5) q2=lastTM-q2; // u reduced for lightA (starts from 0)
740 }
741 }
742 if(q2<0.) q2=0.;
743 if(!(q2>=-1.||q2<=1.))G4cout<<"*NAN*G4QaBElasticCrossSect::GetExchangeT:-t="<<q2<<G4endl;
744 if(q2>lastTM)
745 {
746 q2=lastTM;
747 }
748 return q2*GeVSQ;
749}
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:179
static constexpr double gigaelectronvolt
Definition: G4SIunits.hh:194
#define G4UniformRand()
Definition: Randomize.hh:52
static G4Pow * GetInstance()
Definition: G4Pow.cc:41
G4double powA(G4double A, G4double y) const
Definition: G4Pow.hh:230

References anonymous_namespace{G4ChipsKaonMinusElasticXS.cc}::fifth, G4cout, G4endl, G4Exp(), G4Log(), G4UniformRand, G4Pow::GetInstance(), anonymous_namespace{G4ChipsKaonMinusElasticXS.cc}::GeVSQ, gigaelectronvolt, lastLP, lastTM, onlyCS, G4Pow::powA(), anonymous_namespace{G4ChipsKaonMinusElasticXS.cc}::sevth, theB1, theB2, theB3, theB4, theS1, theS2, theS3, theS4, theSS, and anonymous_namespace{G4ChipsKaonMinusElasticXS.cc}::third.

Referenced by G4ChipsElasticModel::SampleInvariantT().

◆ GetHMaxT()

G4double G4ChipsAntiBaryonElasticXS::GetHMaxT ( )
private

◆ GetIsoCrossSection()

G4double G4ChipsAntiBaryonElasticXS::GetIsoCrossSection ( const G4DynamicParticle Pt,
G4int  tgZ,
G4int  A,
const G4Isotope iso = 0,
const G4Element elm = 0,
const G4Material mat = 0 
)
virtual

Reimplemented from G4VCrossSectionDataSet.

Definition at line 193 of file G4ChipsAntiBaryonElasticXS.cc.

197{
198 G4double pMom=Pt->GetTotalMomentum();
199 G4int tgN = A - tgZ;
200 G4int pdg = Pt->GetDefinition()->GetPDGEncoding();
201
202 return GetChipsCrossSection(pMom, tgZ, tgN, pdg);
203}
virtual G4double GetChipsCrossSection(G4double momentum, G4int Z, G4int N, G4int pdg)
G4double GetTotalMomentum() const

References A, GetChipsCrossSection(), G4DynamicParticle::GetDefinition(), G4ParticleDefinition::GetPDGEncoding(), and G4DynamicParticle::GetTotalMomentum().

◆ GetMaxKinEnergy()

G4double G4VCrossSectionDataSet::GetMaxKinEnergy ( ) const
inlineinherited

◆ GetMinKinEnergy()

G4double G4VCrossSectionDataSet::GetMinKinEnergy ( ) const
inlineinherited

◆ GetName()

const G4String & G4VCrossSectionDataSet::GetName ( ) const
inlineinherited

◆ GetPTables()

G4double G4ChipsAntiBaryonElasticXS::GetPTables ( G4double  lpP,
G4double  lPm,
G4int  PDG,
G4int  tZ,
G4int  tN 
)
private

Definition at line 397 of file G4ChipsAntiBaryonElasticXS.cc.

399{
400 // @@ At present all nA==pA ---------> Each neucleus can have not more than 51 parameters
401 static const G4double pwd=2727;
402 const G4int n_appel=30; // #of parameters for app-elastic (<nPoints=128)
403 // -0- -1- -2- -3- -4- -5- -6- -7- -8--9--10--11--12--13--14-
404 G4double app_el[n_appel]={1.25,3.5,80.,1.,.0557,6.72,5.,74.,3.,3.4,.2,.17,.001,8.,.055,
405 3.64,5.e-5,4000.,1500.,.46,1.2e6,3.5e6,5.e-5,1.e10,8.5e8,
406 1.e10,1.1,3.4e6,6.8e6,0.};
407 // -15- -16- -17- -18- -19- -20- -21- -22- -23- -24-
408 // -25- -26- -27- -28- -29-
409 //AR-24Jun2014 if(PDG>-3334 && PDG<-1111)
410 if(PDG>-3335 && PDG<-1111)
411 {
412 // -- Total pp elastic cross section cs & s1/b1 (main), s2/b2 (tail1), s3/b3 (tail2) --
413 //p2=p*p;p3=p2*p;sp=sqrt(p);p2s=p2*sp;lp=log(p);dl1=lp-(3.=par(3));p4=p2*p2; p=|3-mom|
414 //CS=2.865/p2s/(1+.0022/p2s)+(18.9+.6461*dl1*dl1+9./p)/(1.+.425*lp)/(1.+.4276/p4);
415 // par(0) par(7) par(1) par(2) par(4) par(5) par(6)
416 //dl2=lp-5., s1=(74.+3.*dl2*dl2)/(1+3.4/p4/p)+(.2/p2+17.*p)/(p4+.001*sp),
417 // par(8) par(9) par(10) par(11) par(12)par(13) par(14)
418 // b1=8.*p**.055/(1.+3.64/p3); s2=5.e-5+4000./(p4+1500.*p); b2=.46+1.2e6/(p4+3.5e6/sp);
419 // par(15) par(16) par(17) par(18) par(19) par(20) par(21) par(22) par(23)
420 // s3=5.e-5+1.e10/(p4*p4+8.5e8*p2+1.e10); b3=1.1+3.4e6/(p4+6.8e6); ss=0.
421 // par(24) par(25) par(26) par(27) par(28) par(29) par(30) par(31)
422 //
423 if(lastPAR[nLast]!=pwd) // A unique flag to avoid the repeatable definition
424 {
425 if ( tgZ == 1 && tgN == 0 )
426 {
427 for (G4int ip=0; ip<n_appel; ip++) lastPAR[ip]=app_el[ip]; // PiMinus+P
428 }
429 else
430 {
431 G4double a=tgZ+tgN;
432 G4double sa=std::sqrt(a);
433 G4double ssa=std::sqrt(sa);
434 G4double asa=a*sa;
435 G4double a2=a*a;
436 G4double a3=a2*a;
437 G4double a4=a3*a;
438 G4double a5=a4*a;
439 G4double a6=a4*a2;
440 G4double a7=a6*a;
441 G4double a8=a7*a;
442 G4double a9=a8*a;
443 G4double a10=a5*a5;
444 G4double a12=a6*a6;
445 G4double a14=a7*a7;
446 G4double a16=a8*a8;
447 G4double a17=a16*a;
448 //G4double a20=a16*a4;
449 G4double a32=a16*a16;
450 // Reaction cross-section parameters (pel=peh_fit.f)
451 lastPAR[0]=.23*asa/(1.+a*.15); // p1
452 lastPAR[1]=2.8*asa/(1.+a*(.015+.05/ssa)); // p2
453 lastPAR[2]=15.*a/(1.+.005*a2); // p3
454 lastPAR[3]=.013*a2/(1.+a3*(.006+a*.00001)); // p4
455 lastPAR[4]=5.; // p5
456 lastPAR[5]=0.; // p6 not used
457 lastPAR[6]=0.; // p7 not used
458 lastPAR[7]=0.; // p8 not used
459 lastPAR[8]=0.; // p9 not used
460 // @@ the differential cross-section is parameterized separately for A>6 & A<7
461 if(a<6.5)
462 {
463 G4double a28=a16*a12;
464 // The main pre-exponent (pel_sg)
465 lastPAR[ 9]=4000*a; // p1
466 lastPAR[10]=1.2e7*a8+380*a17; // p2
467 lastPAR[11]=.7/(1.+4.e-12*a16); // p3
468 lastPAR[12]=2.5/a8/(a4+1.e-16*a32); // p4
469 lastPAR[13]=.28*a; // p5
470 lastPAR[14]=1.2*a2+2.3; // p6
471 lastPAR[15]=3.8/a; // p7
472 // The main slope (pel_sl)
473 lastPAR[16]=.01/(1.+.0024*a5); // p1
474 lastPAR[17]=.2*a; // p2
475 lastPAR[18]=9.e-7/(1.+.035*a5); // p3
476 lastPAR[19]=(42.+2.7e-11*a16)/(1.+.14*a); // p4
477 // The main quadratic (pel_sh)
478 lastPAR[20]=2.25*a3; // p1
479 lastPAR[21]=18.; // p2
480 lastPAR[22]=2.4e-3*a8/(1.+2.6e-4*a7); // p3
481 lastPAR[23]=3.5e-36*a32*a8/(1.+5.e-15*a32/a); // p4
482 // The 1st max pre-exponent (pel_qq)
483 lastPAR[24]=1.e5/(a8+2.5e12/a16); // p1
484 lastPAR[25]=8.e7/(a12+1.e-27*a28*a28); // p2
485 lastPAR[26]=.0006*a3; // p3
486 // The 1st max slope (pel_qs)
487 lastPAR[27]=10.+4.e-8*a12*a; // p1
488 lastPAR[28]=.114; // p2
489 lastPAR[29]=.003; // p3
490 lastPAR[30]=2.e-23; // p4
491 // The effective pre-exponent (pel_ss)
492 lastPAR[31]=1./(1.+.0001*a8); // p1
493 lastPAR[32]=1.5e-4/(1.+5.e-6*a12); // p2
494 lastPAR[33]=.03; // p3
495 // The effective slope (pel_sb)
496 lastPAR[34]=a/2; // p1
497 lastPAR[35]=2.e-7*a4; // p2
498 lastPAR[36]=4.; // p3
499 lastPAR[37]=64./a3; // p4
500 // The gloria pre-exponent (pel_us)
501 lastPAR[38]=1.e8*G4Exp(.32*asa); // p1
502 lastPAR[39]=20.*G4Exp(.45*asa); // p2
503 lastPAR[40]=7.e3+2.4e6/a5; // p3
504 lastPAR[41]=2.5e5*G4Exp(.085*a3); // p4
505 lastPAR[42]=2.5*a; // p5
506 // The gloria slope (pel_ub)
507 lastPAR[43]=920.+.03*a8*a3; // p1
508 lastPAR[44]=93.+.0023*a12; // p2
509 }
510 else // A > Li6 (li7, ...)
511 {
512 G4double p1a10=2.2e-28*a10;
513 G4double r4a16=6.e14/a16;
514 G4double s4a16=r4a16*r4a16;
515 // a24
516 // a36
517 // The main pre-exponent (peh_sg)
518 lastPAR[ 9]=4.5*G4Pow::GetInstance()->powA(a,1.15); // p1
519 lastPAR[10]=.06*G4Pow::GetInstance()->powA(a,.6); // p2
520 lastPAR[11]=.6*a/(1.+2.e15/a16); // p3
521 lastPAR[12]=.17/(a+9.e5/a3+1.5e33/a32); // p4
522 lastPAR[13]=(.001+7.e-11*a5)/(1.+4.4e-11*a5); // p5
523 lastPAR[14]=(p1a10*p1a10+2.e-29)/(1.+2.e-22*a12); // p6
524 // The main slope (peh_sl)
525 lastPAR[15]=400./a12+2.e-22*a9; // p1
526 lastPAR[16]=1.e-32*a12/(1.+5.e22/a14); // p2
527 lastPAR[17]=1000./a2+9.5*sa*ssa; // p3
528 lastPAR[18]=4.e-6*a*asa+1.e11/a16; // p4
529 lastPAR[19]=(120./a+.002*a2)/(1.+2.e14/a16); // p5
530 lastPAR[20]=9.+100./a; // p6
531 // The main quadratic (peh_sh)
532 lastPAR[21]=.002*a3+3.e7/a6; // p1
533 lastPAR[22]=7.e-15*a4*asa; // p2
534 lastPAR[23]=9000./a4; // p3
535 // The 1st max pre-exponent (peh_qq)
536 lastPAR[24]=.0011*asa/(1.+3.e34/a32/a4); // p1
537 lastPAR[25]=1.e-5*a2+2.e14/a16; // p2
538 lastPAR[26]=1.2e-11*a2/(1.+1.5e19/a12); // p3
539 lastPAR[27]=.016*asa/(1.+5.e16/a16); // p4
540 // The 1st max slope (peh_qs)
541 lastPAR[28]=.002*a4/(1.+7.e7/G4Pow::GetInstance()->powA(a-6.83,14)); // p1
542 lastPAR[29]=2.e6/a6+7.2/G4Pow::GetInstance()->powA(a,.11); // p2
543 lastPAR[30]=11.*a3/(1.+7.e23/a16/a8); // p3
544 lastPAR[31]=100./asa; // p4
545 // The 2nd max pre-exponent (peh_ss)
546 lastPAR[32]=(.1+4.4e-5*a2)/(1.+5.e5/a4); // p1
547 lastPAR[33]=3.5e-4*a2/(1.+1.e8/a8); // p2
548 lastPAR[34]=1.3+3.e5/a4; // p3
549 lastPAR[35]=500./(a2+50.)+3; // p4
550 lastPAR[36]=1.e-9/a+s4a16*s4a16; // p5
551 // The 2nd max slope (peh_sb)
552 lastPAR[37]=.4*asa+3.e-9*a6; // p1
553 lastPAR[38]=.0005*a5; // p2
554 lastPAR[39]=.002*a5; // p3
555 lastPAR[40]=10.; // p4
556 // The effective pre-exponent (peh_us)
557 lastPAR[41]=.05+.005*a; // p1
558 lastPAR[42]=7.e-8/sa; // p2
559 lastPAR[43]=.8*sa; // p3
560 lastPAR[44]=.02*sa; // p4
561 lastPAR[45]=1.e8/a3; // p5
562 lastPAR[46]=3.e32/(a32+1.e32); // p6
563 // The effective slope (peh_ub)
564 lastPAR[47]=24.; // p1
565 lastPAR[48]=20./sa; // p2
566 lastPAR[49]=7.e3*a/(sa+1.); // p3
567 lastPAR[50]=900.*sa/(1.+500./a3); // p4
568 }
569 // Parameter for lowEnergyNeutrons
570 lastPAR[51]=1.e15+2.e27/a4/(1.+2.e-18*a16);
571 }
573 // and initialize the zero element of the table
574 G4double lp=lPMin; // ln(momentum)
575 G4bool memCS=onlyCS; // ??
576 onlyCS=false;
577 lastCST[0]=GetTabValues(lp, PDG, tgZ, tgN); // Calculate AMDB tables
578 onlyCS=memCS;
579 lastSST[0]=theSS;
580 lastS1T[0]=theS1;
581 lastB1T[0]=theB1;
582 lastS2T[0]=theS2;
583 lastB2T[0]=theB2;
584 lastS3T[0]=theS3;
585 lastB3T[0]=theB3;
586 lastS4T[0]=theS4;
587 lastB4T[0]=theB4;
588 }
589 if(LP>ILP)
590 {
591 G4int ini = static_cast<int>((ILP-lPMin+.000001)/dlnP)+1; // already inited till this
592 if(ini<0) ini=0;
593 if(ini<nPoints)
594 {
595 G4int fin = static_cast<int>((LP-lPMin)/dlnP)+1; // final bin of initialization
596 if(fin>=nPoints) fin=nLast; // Limit of the tabular initialization
597 if(fin>=ini)
598 {
599 G4double lp=0.;
600 for(G4int ip=ini; ip<=fin; ip++) // Calculate tabular CS,S1,B1,S2,B2,S3,B3
601 {
602 lp=lPMin+ip*dlnP; // ln(momentum)
603 G4bool memCS=onlyCS;
604 onlyCS=false;
605 lastCST[ip]=GetTabValues(lp, PDG, tgZ, tgN); // Calculate AMDB tables (ret CS)
606 onlyCS=memCS;
607 lastSST[ip]=theSS;
608 lastS1T[ip]=theS1;
609 lastB1T[ip]=theB1;
610 lastS2T[ip]=theS2;
611 lastB2T[ip]=theB2;
612 lastS3T[ip]=theS3;
613 lastB3T[ip]=theB3;
614 lastS4T[ip]=theS4;
615 lastB4T[ip]=theB4;
616 }
617 return lp;
618 }
619 else G4cout<<"*Warning*G4ChipsAntiBaryonElasticXS::GetPTables: PDG="<<PDG
620 <<", Z="<<tgZ<<", N="<<tgN<<", i="<<ini<<" > fin="<<fin<<", LP="<<LP
621 <<" > ILP="<<ILP<<" nothing is done!"<<G4endl;
622 }
623 else G4cout<<"*Warning*G4ChipsAntiBaryonElasticXS::GetPTables: PDG="<<PDG
624 <<", Z="<<tgZ<<", N="<<tgN<<", i="<<ini<<">= max="<<nPoints<<", LP="<<LP
625 <<" > ILP="<<ILP<<", lPMax="<<lPMax<<" nothing is done!"<<G4endl;
626 }
627 }
628 else
629 {
630 // G4cout<<"*Error*G4ChipsAntiBaryonElasticXS::GetPTables: PDG="<<PDG<<", Z="<<tgZ
631 // <<", N="<<tgN<<", while it is defined only for Anti Baryons"<<G4endl;
632 // throw G4QException("G4ChipsAntiBaryonElasticXS::GetPTables:onlyaBA implemented");
634 ed << "PDG = " << PDG << ", Z = " << tgZ << ", N = " << tgN
635 << ", while it is defined only for Anti Baryons" << G4endl;
636 G4Exception("G4ChipsAntiBaryonElasticXS::GetPTables()", "HAD_CHPS_0000",
637 FatalException, ed);
638 }
639 return ILP;
640}

References dlnP, FatalException, G4cout, G4endl, G4Exception(), G4Exp(), G4Pow::GetInstance(), GetTabValues(), lastB1T, lastB2T, lastB3T, lastB4T, lastCST, lastPAR, lastS1T, lastS2T, lastS3T, lastS4T, lastSST, lPMax, lPMin, nLast, nPoints, onlyCS, G4Pow::powA(), anonymous_namespace{G4ChipsKaonMinusElasticXS.cc}::pwd, theB1, theB2, theB3, theB4, theS1, theS2, theS3, theS4, and theSS.

Referenced by CalculateCrossSection().

◆ GetQ2max()

G4double G4ChipsAntiBaryonElasticXS::GetQ2max ( G4int  pPDG,
G4int  tgZ,
G4int  tgN,
G4double  pP 
)
private

Definition at line 876 of file G4ChipsAntiBaryonElasticXS.cc.

878{
879 static const G4double mNeut= G4Neutron::Neutron()->GetPDGMass()*.001; // MeV to GeV
880 static const G4double mProt= G4Proton::Proton()->GetPDGMass()*.001; // MeV to GeV
881 static const G4double mNuc2= sqr((mProt+mNeut)/2);
882 G4double pP2=pP*pP; // squared momentum of the projectile
883 if(tgZ || tgN>-1) // ---> pipA
884 {
885 G4double mt=G4ParticleTable::GetParticleTable()->GetIonTable()->GetIon(tgZ,tgZ+tgN,0)->GetPDGMass()*.001; // Target mass in GeV
886 G4double dmt=mt+mt;
887 G4double mds=dmt*std::sqrt(pP2+mNuc2)+mNuc2+mt*mt; // Mondelstam mds (@@ other AntiBar?)
888 return dmt*dmt*pP2/mds;
889 }
890 else
891 {
892 // G4cout<<"*Error*G4ChipsAntiBaryonElasticXS::GetQ2ma:PDG="<<PDG<<",Z="<<tgZ<<",N="
893 // <<tgN<<", while it is defined only for p projectiles & Z_target>0"<<G4endl;
894 // throw G4QException("G4ChipsAntiBaryonElasticXS::GetQ2max: only aBA implemented");
896 ed << "PDG = " << PDG << ", Z = " << tgZ << ", N = " << tgN
897 << ", while it is defined only for p projectiles & Z_target>0" << G4endl;
898 G4Exception("G4ChipsAntiBaryonElasticXS::GetQ2max()", "HAD_CHPS_0000",
899 FatalException, ed);
900 return 0;
901 }
902}
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
Definition: G4IonTable.cc:522
static G4Neutron * Neutron()
Definition: G4Neutron.cc:103
G4IonTable * GetIonTable() const
static G4ParticleTable * GetParticleTable()
static G4Proton * Proton()
Definition: G4Proton.cc:92
T sqr(const T &x)
Definition: templates.hh:128

References FatalException, G4endl, G4Exception(), G4IonTable::GetIon(), G4ParticleTable::GetIonTable(), G4ParticleTable::GetParticleTable(), G4ParticleDefinition::GetPDGMass(), anonymous_namespace{G4ChipsNeutronElasticXS.cc}::mNeut, anonymous_namespace{G4ChipsNeutronElasticXS.cc}::mProt, G4Neutron::Neutron(), G4Proton::Proton(), and sqr().

Referenced by CalculateCrossSection().

◆ GetSlope()

G4double G4ChipsAntiBaryonElasticXS::GetSlope ( G4int  tZ,
G4int  tN,
G4int  pPDG 
)
private

Definition at line 752 of file G4ChipsAntiBaryonElasticXS.cc.

753{
755 if(onlyCS)G4cout<<"WarningG4ChipsAntiBaryonElasticXS::GetSlope:onlCS=true"<<G4endl;
756 if(lastLP<-4.3) return 0.; // S-wave for p<14 MeV/c (kinE<.1MeV)
757 if(PDG<-3334 || PDG>-1111)
758 {
759 // G4cout<<"*Error*G4ChipsAntiBaryonElasticXS::GetSlope: PDG="<<PDG<<", Z="<<tgZ
760 // <<", N="<<tgN<<", while it is defined only for Anti Baryons"<<G4endl;
761 // throw G4QException("G4ChipsAntiBaryonElasticXS::GetSlope: AnBa are implemented");
763 ed << "PDG = " << PDG << ", Z = " << tgZ << ", N = " << tgN
764 << ", while it is defined only for Anti Baryons" << G4endl;
765 G4Exception("G4ChipsAntiBaryonElasticXS::GetSlope()", "HAD_CHPS_0000",
766 FatalException, ed);
767 }
768 if(theB1<0.) theB1=0.;
769 if(!(theB1>=-1.||theB1<=1.))G4cout<<"*NAN*G4QaBaElasticCrossS::Getslope:"<<theB1<<G4endl;
770 return theB1/GeVSQ;
771}

References FatalException, G4cout, G4endl, G4Exception(), anonymous_namespace{G4ChipsKaonMinusElasticXS.cc}::GeVSQ, gigaelectronvolt, lastLP, onlyCS, and theB1.

◆ GetTabValues()

G4double G4ChipsAntiBaryonElasticXS::GetTabValues ( G4double  lp,
G4int  pPDG,
G4int  tgZ,
G4int  tgN 
)
private

Definition at line 781 of file G4ChipsAntiBaryonElasticXS.cc.

783{
784 if(PDG<-3334 || PDG>-1111) G4cout<<"*Warning*G4QAntiBaryElCS::GetTabV:PDG="<<PDG<<G4endl;
785
786 //AR-24Apr2018 Switch to allow transuranic elements
787 const G4bool isHeavyElementAllowed = true;
788 if(tgZ<0 || ( !isHeavyElementAllowed && tgZ>92))
789 {
790 G4cout<<"*Warning*G4QAntiBaryonElCS::GetTabValue:(1-92) NoIsotopesFor Z="<<tgZ<<G4endl;
791 return 0.;
792 }
793 G4int iZ=tgZ-1; // Z index
794 if(iZ<0)
795 {
796 iZ=0; // conversion of the neutron target to the proton target
797 tgZ=1;
798 tgN=0;
799 }
800 G4double p=G4Exp(lp); // momentum
801 G4double sp=std::sqrt(p); // sqrt(p)
802 G4double p2=p*p;
803 G4double p3=p2*p;
804 G4double p4=p3*p;
805 if ( tgZ == 1 && tgN == 0 ) // PiMin+P
806 {
807 G4double dl2=lp-lastPAR[6]; // ld ?
808 theSS=lastPAR[29];
809 theS1=(lastPAR[7]+lastPAR[8]*dl2*dl2)/(1.+lastPAR[9]/p4/p)+
810 (lastPAR[10]/p2+lastPAR[11]*p)/(p4+lastPAR[12]*sp);
811 theB1=lastPAR[13]*G4Pow::GetInstance()->powA(p,lastPAR[14])/(1.+lastPAR[15]/p3);
812 theS2=lastPAR[16]+lastPAR[17]/(p4+lastPAR[18]*p);
813 theB2=lastPAR[19]+lastPAR[20]/(p4+lastPAR[21]/sp);
814 theS3=lastPAR[22]+lastPAR[23]/(p4*p4+lastPAR[24]*p2+lastPAR[25]);
815 theB3=lastPAR[26]+lastPAR[27]/(p4+lastPAR[28]);
816 theS4=0.;
817 theB4=0.;
818 // Returns the total elastic pim-p cross-section (to avoid spoiling lastSIG)
819 G4double ye=G4Exp(lp*lastPAR[0]);
820 G4double dp=lp-lastPAR[1];
821 return lastPAR[2]/(ye+lastPAR[3])+lastPAR[4]*dp*dp+lastPAR[5];
822 }
823 else
824 {
825 G4double p5=p4*p;
826 G4double p6=p5*p;
827 G4double p8=p6*p2;
828 G4double p10=p8*p2;
829 G4double p12=p10*p2;
830 G4double p16=p8*p8;
831 //G4double p24=p16*p8;
832 G4double dl=lp-5.;
833 G4double a=tgZ+tgN;
834 G4double pah=G4Pow::GetInstance()->powA(p,a/2);
835 G4double pa=pah*pah;
836 G4double pa2=pa*pa;
837 if(a<6.5)
838 {
839 theS1=lastPAR[9]/(1.+lastPAR[10]*p4*pa)+lastPAR[11]/(p4+lastPAR[12]*p4/pa2)+
840 (lastPAR[13]*dl*dl+lastPAR[14])/(1.+lastPAR[15]/p2);
841 theB1=(lastPAR[16]+lastPAR[17]*p2)/(p4+lastPAR[18]/pah)+lastPAR[19];
842 theSS=lastPAR[20]/(1.+lastPAR[21]/p2)+lastPAR[22]/(p6/pa+lastPAR[23]/p16);
843 theS2=lastPAR[24]/(pa/p2+lastPAR[25]/p4)+lastPAR[26];
844 theB2=lastPAR[27]*G4Pow::GetInstance()->powA(p,lastPAR[28])+lastPAR[29]/(p8+lastPAR[30]/p16);
845 theS3=lastPAR[31]/(pa*p+lastPAR[32]/pa)+lastPAR[33];
846 theB3=lastPAR[34]/(p3+lastPAR[35]/p6)+lastPAR[36]/(1.+lastPAR[37]/p2);
847 theS4=p2*(pah*lastPAR[38]*G4Exp(-pah*lastPAR[39])+
848 lastPAR[40]/(1.+lastPAR[41]*G4Pow::GetInstance()->powA(p,lastPAR[42])));
849 theB4=lastPAR[43]*pa/p2/(1.+pa*lastPAR[44]);
850 }
851 else
852 {
853 theS1=lastPAR[9]/(1.+lastPAR[10]/p4)+lastPAR[11]/(p4+lastPAR[12]/p2)+
854 lastPAR[13]/(p5+lastPAR[14]/p16);
855 theB1=(lastPAR[15]/p8+lastPAR[19])/(p+lastPAR[16]/G4Pow::GetInstance()->powA(p,lastPAR[20]))+
856 lastPAR[17]/(1.+lastPAR[18]/p4);
857 theSS=lastPAR[21]/(p4/G4Pow::GetInstance()->powA(p,lastPAR[23])+lastPAR[22]/p4);
858 theS2=lastPAR[24]/p4/(G4Pow::GetInstance()->powA(p,lastPAR[25])+lastPAR[26]/p12)+lastPAR[27];
860 theS3=lastPAR[32]/G4Pow::GetInstance()->powA(p,lastPAR[35])/(1.+lastPAR[36]/p12)+
861 lastPAR[33]/(1.+lastPAR[34]/p6);
862 theB3=lastPAR[37]/p8+lastPAR[38]/p2+lastPAR[39]/(1.+lastPAR[40]/p8);
863 theS4=(lastPAR[41]/p4+lastPAR[46]/p)/(1.+lastPAR[42]/p10)+
864 (lastPAR[43]+lastPAR[44]*dl*dl)/(1.+lastPAR[45]/p12);
865 theB4=lastPAR[47]/(1.+lastPAR[48]/p)+lastPAR[49]*p4/(1.+lastPAR[50]*p5);
866 }
867 // Returns the total elastic (n/p)A cross-section (to avoid spoiling lastSIG)
868 G4double dlp=lp-lastPAR[4]; // ax
869 // p1 p2 p3 p4
870 return (lastPAR[0]*dlp*dlp+lastPAR[1]+lastPAR[2]/p)/(1.+lastPAR[3]/p);
871 }
872 return 0.;
873} // End of GetTableValues

References anonymous_namespace{G4QuasiElRatios.cc}::dlp, G4cout, G4endl, G4Exp(), G4Pow::GetInstance(), lastPAR, G4Pow::powA(), G4InuclParticleNames::sp, theB1, theB2, theB3, theB4, theS1, theS2, theS3, theS4, and theSS.

Referenced by CalculateCrossSection(), and GetPTables().

◆ GetVerboseLevel()

G4int G4VCrossSectionDataSet::GetVerboseLevel ( ) const
inlinevirtualinherited

◆ IsElementApplicable()

G4bool G4VCrossSectionDataSet::IsElementApplicable ( const G4DynamicParticle ,
G4int  Z,
const G4Material mat = nullptr 
)
virtualinherited

◆ IsIsoApplicable()

G4bool G4ChipsAntiBaryonElasticXS::IsIsoApplicable ( const G4DynamicParticle Pt,
G4int  Z,
G4int  A,
const G4Element elm,
const G4Material mat 
)
virtual

Reimplemented from G4VCrossSectionDataSet.

Definition at line 145 of file G4ChipsAntiBaryonElasticXS.cc.

148{
149
150 /*
151 if(particle == G4AntiNeutron::AntiNeutron())
152 {
153 return true;
154 }
155 else if(particle == G4AntiProton::AntiProton())
156 {
157 return true;
158 }
159 else if(particle == G4AntiLambda::AntiLambda())
160 {
161 return true;
162 }
163 else if(particle == G4AntiSigmaPlus::AntiSigmaPlus())
164 {
165 return true;
166 }
167 else if(particle == G4AntiSigmaMinus::AntiSigmaMinus())
168 {
169 return true;
170 }
171 else if(particle == G4AntiSigmaZero::AntiSigmaZero())
172 {
173 return true;
174 }
175 else if(particle == G4AntiXiMinus::AntiXiMinus())
176 {
177 return true;
178 }
179 else if(particle == G4AntiXiZero::AntiXiZero())
180 {
181 return true;
182 }
183 else if(particle == G4AntiOmegaMinus::AntiOmegaMinus())
184 {
185 return true;
186 }
187 */
188 return true;
189}

◆ SelectIsotope()

const G4Isotope * G4VCrossSectionDataSet::SelectIsotope ( const G4Element anElement,
G4double  kinEnergy,
G4double  logE 
)
virtualinherited

Reimplemented in G4GammaNuclearXS, G4NeutronCaptureXS, G4NeutronElasticXS, G4NeutronInelasticXS, and G4ParticleInelasticXS.

Definition at line 149 of file G4VCrossSectionDataSet.cc.

151{
152 size_t nIso = anElement->GetNumberOfIsotopes();
153 const G4Isotope* iso = anElement->GetIsotope(0);
154
155 // more than 1 isotope
156 if(1 < nIso) {
157 const G4double* abundVector = anElement->GetRelativeAbundanceVector();
158 G4double sum = 0.0;
160 for (size_t j=0; j<nIso; ++j) {
161 sum += abundVector[j];
162 if(q <= sum) {
163 iso = anElement->GetIsotope(j);
164 break;
165 }
166 }
167 }
168 return iso;
169}
const G4Isotope * GetIsotope(G4int iso) const
Definition: G4Element.hh:170

References G4UniformRand, G4Element::GetIsotope(), G4Element::GetNumberOfIsotopes(), and G4Element::GetRelativeAbundanceVector().

◆ SetForAllAtomsAndEnergies()

void G4VCrossSectionDataSet::SetForAllAtomsAndEnergies ( G4bool  val)
inlineinherited

◆ SetMaxKinEnergy()

void G4VCrossSectionDataSet::SetMaxKinEnergy ( G4double  value)
inlineinherited

◆ SetMinKinEnergy()

void G4VCrossSectionDataSet::SetMinKinEnergy ( G4double  value)
inlineinherited

◆ SetName()

void G4VCrossSectionDataSet::SetName ( const G4String nam)
inlineinherited

Definition at line 240 of file G4VCrossSectionDataSet.hh.

241{
242 name = nam;
243}

References G4VCrossSectionDataSet::name.

Referenced by G4ParticleHPInelasticData::G4ParticleHPInelasticData().

◆ SetVerboseLevel()

void G4VCrossSectionDataSet::SetVerboseLevel ( G4int  value)
inlinevirtualinherited

Field Documentation

◆ B1T

std::vector<G4double*> G4ChipsAntiBaryonElasticXS::B1T
private

◆ B2T

std::vector<G4double*> G4ChipsAntiBaryonElasticXS::B2T
private

◆ B3T

std::vector<G4double*> G4ChipsAntiBaryonElasticXS::B3T
private

◆ B4T

std::vector<G4double*> G4ChipsAntiBaryonElasticXS::B4T
private

◆ colCS

std::vector<G4double> G4ChipsAntiBaryonElasticXS::colCS
private

Definition at line 145 of file G4ChipsAntiBaryonElasticXS.hh.

Referenced by GetChipsCrossSection().

◆ colN

std::vector<G4int> G4ChipsAntiBaryonElasticXS::colN
private

Definition at line 141 of file G4ChipsAntiBaryonElasticXS.hh.

Referenced by GetChipsCrossSection().

◆ colP

std::vector<G4double> G4ChipsAntiBaryonElasticXS::colP
private

Definition at line 143 of file G4ChipsAntiBaryonElasticXS.hh.

Referenced by GetChipsCrossSection().

◆ colTH

std::vector<G4double> G4ChipsAntiBaryonElasticXS::colTH
private

Definition at line 144 of file G4ChipsAntiBaryonElasticXS.hh.

Referenced by GetChipsCrossSection().

◆ colZ

std::vector<G4int> G4ChipsAntiBaryonElasticXS::colZ
private

Definition at line 142 of file G4ChipsAntiBaryonElasticXS.hh.

Referenced by GetChipsCrossSection().

◆ CST

std::vector<G4double*> G4ChipsAntiBaryonElasticXS::CST
private

◆ dlnP

G4double G4ChipsAntiBaryonElasticXS::dlnP
private

◆ isForAllAtomsAndEnergies

G4bool G4VCrossSectionDataSet::isForAllAtomsAndEnergies
privateinherited

◆ lastB1T

G4double* G4ChipsAntiBaryonElasticXS::lastB1T
private

◆ lastB2T

G4double* G4ChipsAntiBaryonElasticXS::lastB2T
private

◆ lastB3T

G4double* G4ChipsAntiBaryonElasticXS::lastB3T
private

◆ lastB4T

G4double* G4ChipsAntiBaryonElasticXS::lastB4T
private

◆ lastCS

G4double G4ChipsAntiBaryonElasticXS::lastCS
private

◆ lastCST

G4double* G4ChipsAntiBaryonElasticXS::lastCST
private

◆ lastI

G4int G4ChipsAntiBaryonElasticXS::lastI
private

◆ lastLP

G4double G4ChipsAntiBaryonElasticXS::lastLP
private

◆ lastN

G4int G4ChipsAntiBaryonElasticXS::lastN
private

◆ lastP

G4double G4ChipsAntiBaryonElasticXS::lastP
private

◆ lastPAR

G4double* G4ChipsAntiBaryonElasticXS::lastPAR
private

◆ lastPIN

G4double G4ChipsAntiBaryonElasticXS::lastPIN
private

◆ lastS1T

G4double* G4ChipsAntiBaryonElasticXS::lastS1T
private

◆ lastS2T

G4double* G4ChipsAntiBaryonElasticXS::lastS2T
private

◆ lastS3T

G4double* G4ChipsAntiBaryonElasticXS::lastS3T
private

◆ lastS4T

G4double* G4ChipsAntiBaryonElasticXS::lastS4T
private

◆ lastSIG

G4double G4ChipsAntiBaryonElasticXS::lastSIG
private

◆ lastSST

G4double* G4ChipsAntiBaryonElasticXS::lastSST
private

◆ lastTH

G4double G4ChipsAntiBaryonElasticXS::lastTH
private

◆ lastTM

G4double G4ChipsAntiBaryonElasticXS::lastTM
private

◆ lastTN

G4int G4ChipsAntiBaryonElasticXS::lastTN
private

Definition at line 115 of file G4ChipsAntiBaryonElasticXS.hh.

Referenced by G4ChipsAntiBaryonElasticXS().

◆ lastTZ

G4int G4ChipsAntiBaryonElasticXS::lastTZ
private

Definition at line 114 of file G4ChipsAntiBaryonElasticXS.hh.

Referenced by G4ChipsAntiBaryonElasticXS().

◆ lastZ

G4int G4ChipsAntiBaryonElasticXS::lastZ
private

◆ lPMax

G4double G4ChipsAntiBaryonElasticXS::lPMax
private

◆ lPMin

G4double G4ChipsAntiBaryonElasticXS::lPMin
private

◆ maxKinEnergy

G4double G4VCrossSectionDataSet::maxKinEnergy
privateinherited

◆ minKinEnergy

G4double G4VCrossSectionDataSet::minKinEnergy
privateinherited

◆ name

G4String G4VCrossSectionDataSet::name
protectedinherited

◆ nLast

const G4int G4ChipsAntiBaryonElasticXS::nLast
private

◆ nPoints

const G4int G4ChipsAntiBaryonElasticXS::nPoints
private

Definition at line 88 of file G4ChipsAntiBaryonElasticXS.hh.

Referenced by CalculateCrossSection(), and GetPTables().

◆ onlyCS

G4bool G4ChipsAntiBaryonElasticXS::onlyCS
private

◆ PAR

std::vector<G4double*> G4ChipsAntiBaryonElasticXS::PAR
private

◆ PIN

std::vector<G4double> G4ChipsAntiBaryonElasticXS::PIN
private

Definition at line 147 of file G4ChipsAntiBaryonElasticXS.hh.

Referenced by CalculateCrossSection().

◆ registry

G4CrossSectionDataSetRegistry* G4VCrossSectionDataSet::registry
privateinherited

◆ S1T

std::vector<G4double*> G4ChipsAntiBaryonElasticXS::S1T
private

◆ S2T

std::vector<G4double*> G4ChipsAntiBaryonElasticXS::S2T
private

◆ S3T

std::vector<G4double*> G4ChipsAntiBaryonElasticXS::S3T
private

◆ S4T

std::vector<G4double*> G4ChipsAntiBaryonElasticXS::S4T
private

◆ SST

std::vector<G4double*> G4ChipsAntiBaryonElasticXS::SST
private

◆ theB1

G4double G4ChipsAntiBaryonElasticXS::theB1
private

◆ theB2

G4double G4ChipsAntiBaryonElasticXS::theB2
private

◆ theB3

G4double G4ChipsAntiBaryonElasticXS::theB3
private

◆ theB4

G4double G4ChipsAntiBaryonElasticXS::theB4
private

◆ theS1

G4double G4ChipsAntiBaryonElasticXS::theS1
private

◆ theS2

G4double G4ChipsAntiBaryonElasticXS::theS2
private

◆ theS3

G4double G4ChipsAntiBaryonElasticXS::theS3
private

◆ theS4

G4double G4ChipsAntiBaryonElasticXS::theS4
private

◆ theSS

G4double G4ChipsAntiBaryonElasticXS::theSS
private

◆ verboseLevel

G4int G4VCrossSectionDataSet::verboseLevel
protectedinherited

Definition at line 168 of file G4VCrossSectionDataSet.hh.

Referenced by G4BGGNucleonElasticXS::BuildPhysicsTable(), G4BGGPionElasticXS::BuildPhysicsTable(), G4BGGPionInelasticXS::BuildPhysicsTable(), G4GammaNuclearXS::BuildPhysicsTable(), G4NeutronCaptureXS::BuildPhysicsTable(), G4NeutronElasticXS::BuildPhysicsTable(), G4NeutronInelasticXS::BuildPhysicsTable(), G4ParticleInelasticXS::BuildPhysicsTable(), G4BGGNucleonInelasticXS::BuildPhysicsTable(), G4LENDCrossSection::create_used_target_map(), G4BGGNucleonElasticXS::G4BGGNucleonElasticXS(), G4BGGNucleonInelasticXS::G4BGGNucleonInelasticXS(), G4BGGPionElasticXS::G4BGGPionElasticXS(), G4BGGPionInelasticXS::G4BGGPionInelasticXS(), G4GammaNuclearXS::G4GammaNuclearXS(), G4NeutronCaptureXS::G4NeutronCaptureXS(), G4NeutronElasticXS::G4NeutronElasticXS(), G4NeutronInelasticXS::G4NeutronInelasticXS(), G4ParticleInelasticXS::G4ParticleInelasticXS(), G4NeutronCaptureXS::GetElementCrossSection(), G4NeutronElasticXS::GetElementCrossSection(), G4NeutronInelasticXS::GetElementCrossSection(), G4BGGNucleonElasticXS::GetElementCrossSection(), G4BGGPionElasticXS::GetElementCrossSection(), G4BGGPionInelasticXS::GetElementCrossSection(), G4BGGNucleonInelasticXS::GetElementCrossSection(), G4GammaNuclearXS::GetElementCrossSection(), G4ParticleInelasticXS::GetElementCrossSection(), G4BGGNucleonElasticXS::GetIsoCrossSection(), G4BGGPionElasticXS::GetIsoCrossSection(), G4BGGPionInelasticXS::GetIsoCrossSection(), G4GammaNuclearXS::GetIsoCrossSection(), G4BGGNucleonInelasticXS::GetIsoCrossSection(), G4VCrossSectionDataSet::GetVerboseLevel(), G4NeutronElasticXS::Initialise(), G4ParticleInelasticXS::IsoCrossSection(), G4NeutronCaptureXS::IsoCrossSection(), G4NeutronInelasticXS::IsoCrossSection(), G4GammaNuclearXS::RetrieveVector(), G4NeutronCaptureXS::RetrieveVector(), G4NeutronInelasticXS::RetrieveVector(), G4ParticleInelasticXS::RetrieveVector(), and G4VCrossSectionDataSet::SetVerboseLevel().


The documentation for this class was generated from the following files: