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

#include <G4ChipsKaonPlusElasticXS.hh>

Inheritance diagram for G4ChipsKaonPlusElasticXS:
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
 
 G4ChipsKaonPlusElasticXS ()
 
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)
 
 ~G4ChipsKaonPlusElasticXS ()
 

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 G4ChipsKaonPlusElasticXS.hh.

Constructor & Destructor Documentation

◆ G4ChipsKaonPlusElasticXS()

G4ChipsKaonPlusElasticXS::G4ChipsKaonPlusElasticXS ( )

Definition at line 76 of file G4ChipsKaonPlusElasticXS.cc.

77{
78 G4AutoLock l(&initM);
79 mK = G4KaonPlus::KaonPlus()->GetPDGMass()*.001;// MeV to GeV
80 mK2 = mK*mK;
81 l.unlock();
82 lPMin=-8.; //Min tabulatedLogarithmMomentum/D
83 lPMax= 8.; //Max tabulatedLogarithmMomentum/D
84 dlnP=(lPMax-lPMin)/nLast;// LogStep inTable /D
85 onlyCS=true;//Flag toCalculOnlyCS(not Si/Bi)/L
86 lastSIG=0.; //Last calculated cross section /L
87 lastLP=-10.;//LastLog(mom_of IncidentHadron)/L
88 lastTM=0.; //Last t_maximum /L
89 theSS=0.; //TheLastSqSlope of 1st difr.Max/L
90 theS1=0.; //TheLastMantissa of 1st difrMax/L
91 theB1=0.; //TheLastSlope of 1st difructMax/L
92 theS2=0.; //TheLastMantissa of 2nd difrMax/L
93 theB2=0.; //TheLastSlope of 2nd difructMax/L
94 theS3=0.; //TheLastMantissa of 3d difr.Max/L
95 theB3=0.; //TheLastSlope of 3d difruct.Max/L
96 theS4=0.; //TheLastMantissa of 4th difrMax/L
97 theB4=0.; //TheLastSlope of 4th difructMax/L
98 lastTZ=0; // Last atomic number of theTarget
99 lastTN=0; // Last # of neutrons in theTarget
100 lastPIN=0.;// Last initialized max momentum
101 lastCST=0; // Elastic cross-section table
102 lastPAR=0; // ParametersForFunctionCalculation
103 lastSST=0; // E-dep ofSqardSlope of 1st difMax
104 lastS1T=0; // E-dep of mantissa of 1st dif.Max
105 lastB1T=0; // E-dep of the slope of 1st difMax
106 lastS2T=0; // E-dep of mantissa of 2nd difrMax
107 lastB2T=0; // E-dep of the slope of 2nd difMax
108 lastS3T=0; // E-dep of mantissa of 3d difr.Max
109 lastB3T=0; // E-dep of the slope of 3d difrMax
110 lastS4T=0; // E-dep of mantissa of 4th difrMax
111 lastB4T=0; // E-dep of the slope of 4th difMax
112 lastN=0; // The last N of calculated nucleus
113 lastZ=0; // The last Z of calculated nucleus
114 lastP=0.; // LastUsed inCrossSection Momentum
115 lastTH=0.; // Last threshold momentum
116 lastCS=0.; // Last value of the Cross Section
117 lastI=0; // The last position in the DAMDB
118}
static const char * Default_Name()
static G4KaonPlus * KaonPlus()
Definition: G4KaonPlus.cc:112
G4VCrossSectionDataSet(const G4String &nam="")

References dlnP, G4ParticleDefinition::GetPDGMass(), anonymous_namespace{G4ChipsKaonPlusElasticXS.cc}::initM, G4KaonPlus::KaonPlus(), 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, anonymous_namespace{G4ChipsKaonPlusElasticXS.cc}::mK, anonymous_namespace{G4ChipsKaonPlusElasticXS.cc}::mK2, nLast, onlyCS, theB1, theB2, theB3, theB4, theS1, theS2, theS3, theS4, theSS, and G4TemplateAutoLock< _Mutex_t >::unlock().

◆ ~G4ChipsKaonPlusElasticXS()

G4ChipsKaonPlusElasticXS::~G4ChipsKaonPlusElasticXS ( )

Definition at line 120 of file G4ChipsKaonPlusElasticXS.cc.

121{
122 std::vector<G4double*>::iterator pos;
123 for (pos=CST.begin(); pos<CST.end(); pos++)
124 { delete [] *pos; }
125 CST.clear();
126 for (pos=PAR.begin(); pos<PAR.end(); pos++)
127 { delete [] *pos; }
128 PAR.clear();
129 for (pos=SST.begin(); pos<SST.end(); pos++)
130 { delete [] *pos; }
131 SST.clear();
132 for (pos=S1T.begin(); pos<S1T.end(); pos++)
133 { delete [] *pos; }
134 S1T.clear();
135 for (pos=B1T.begin(); pos<B1T.end(); pos++)
136 { delete [] *pos; }
137 B1T.clear();
138 for (pos=S2T.begin(); pos<S2T.end(); pos++)
139 { delete [] *pos; }
140 S2T.clear();
141 for (pos=B2T.begin(); pos<B2T.end(); pos++)
142 { delete [] *pos; }
143 B2T.clear();
144 for (pos=S3T.begin(); pos<S3T.end(); pos++)
145 { delete [] *pos; }
146 S3T.clear();
147 for (pos=B3T.begin(); pos<B3T.end(); pos++)
148 { delete [] *pos; }
149 B3T.clear();
150 for (pos=S4T.begin(); pos<S4T.end(); pos++)
151 { delete [] *pos; }
152 S4T.clear();
153 for (pos=B4T.begin(); pos<B4T.end(); pos++)
154 { delete [] *pos; }
155 B4T.clear();
156}
static const G4double pos
std::vector< G4double * > PAR
std::vector< G4double * > S1T
std::vector< G4double * > B1T
std::vector< G4double * > S2T
std::vector< G4double * > CST
std::vector< G4double * > B3T
std::vector< G4double * > SST
std::vector< G4double * > B2T
std::vector< G4double * > S4T
std::vector< G4double * > S3T
std::vector< G4double * > B4T

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 G4ChipsKaonPlusElasticXS::CalculateCrossSection ( G4bool  CS,
G4int  F,
G4int  I,
G4int  pPDG,
G4int  Z,
G4int  N,
G4double  pP 
)
private

Definition at line 257 of file G4ChipsKaonPlusElasticXS.cc.

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

Reimplemented from G4VCrossSectionDataSet.

Definition at line 159 of file G4ChipsKaonPlusElasticXS.cc.

160{
161 outFile << "G4ChipsKaonPlusElasticXS provides the elastic cross\n"
162 << "section for K+ nucleus scattering as a function of incident\n"
163 << "momentum. The cross section is calculated using M. Kossov's\n"
164 << "CHIPS parameterization of cross section data.\n";
165}

◆ Default_Name()

static const char * G4ChipsKaonPlusElasticXS::Default_Name ( )
inlinestatic

◆ DumpPhysicsTable()

void G4VCrossSectionDataSet::DumpPhysicsTable ( const G4ParticleDefinition )
virtualinherited

◆ ForAllAtomsAndEnergies()

bool G4VCrossSectionDataSet::ForAllAtomsAndEnergies ( ) const
inlineinherited

◆ GetChipsCrossSection()

G4double G4ChipsKaonPlusElasticXS::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 188 of file G4ChipsKaonPlusElasticXS.cc.

189{
190
191 G4bool fCS = false;
192 G4double pEn=pMom;
193 onlyCS=fCS;
194
195 G4bool in=false; // By default the isotope must be found in the AMDB
196 lastP = 0.; // New momentum history (nothing to compare with)
197 lastN = tgN; // The last N of the calculated nucleus
198 lastZ = tgZ; // The last Z of the calculated nucleus
199 lastI = colN.size(); // Size of the Associative Memory DB in the heap
200 if(lastI) for(G4int i=0; i<lastI; i++) // Loop over proj/tgZ/tgN lines of DB
201 { // The nucleus with projPDG is found in AMDB
202 if(colN[i]==tgN && colZ[i]==tgZ) // Isotope is foind in AMDB
203 {
204 lastI=i;
205 lastTH =colTH[i]; // Last THreshold (A-dependent)
206 if(pEn<=lastTH)
207 {
208 return 0.; // Energy is below the Threshold value
209 }
210 lastP =colP [i]; // Last Momentum (A-dependent)
211 lastCS =colCS[i]; // Last CrossSect (A-dependent)
212 // if(std::fabs(lastP/pMom-1.)<tolerance) //VI (do not use tolerance)
213 if(lastP == pMom) // Do not recalculate
214 {
215 CalculateCrossSection(fCS,-1,i,321,lastZ,lastN,pMom); // Update param's only
216 return lastCS*millibarn; // Use theLastCS
217 }
218 in = true; // This is the case when the isotop is found in DB
219 // Momentum pMom is in IU ! @@ Units
220 lastCS=CalculateCrossSection(fCS,-1,i,321,lastZ,lastN,pMom); // read & update
221 if(lastCS<=0. && pEn>lastTH) // Correct the threshold
222 {
223 lastTH=pEn;
224 }
225 break; // Go out of the LOOP with found lastI
226 }
227 } // End of attampt to find the nucleus in DB
228 if(!in) // This nucleus has not been calculated previously
229 {
231 lastCS=CalculateCrossSection(fCS,0,lastI,321,lastZ,lastN,pMom);//calculate&create
232 if(lastCS<=0.)
233 {
234 lastTH = 0; //ThresholdEnergy(tgZ, tgN); // The Threshold Energy which is now the last
235 if(pEn>lastTH)
236 {
237 lastTH=pEn;
238 }
239 }
240 colN.push_back(tgN);
241 colZ.push_back(tgZ);
242 colP.push_back(pMom);
243 colTH.push_back(lastTH);
244 colCS.push_back(lastCS);
245 return lastCS*millibarn;
246 } // End of creation of the new set of parameters
247 else
248 {
249 colP[lastI]=pMom;
251 }
252 return lastCS*millibarn;
253}
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 G4ChipsKaonZeroElasticXS::GetChipsCrossSection(), 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 G4ChipsKaonPlusElasticXS::GetExchangeT ( G4int  tZ,
G4int  tN,
G4int  pPDG 
)

Definition at line 616 of file G4ChipsKaonPlusElasticXS.cc.

617{
618 if(PDG!=321) G4cout<<"*Warning*G4ChipsKaonPlusElasticXS::GetExT:PDG="<<PDG<<G4endl;
619 if(onlyCS) G4cout<<"*Warning*G4ChipsKaonPlusElasticXS::GetExT: onlyCS=1"<<G4endl;
620 if(lastLP<-4.3) return lastTM*GeVSQ*G4UniformRand();// S-wave for p<14 MeV/c (kinE<.1MeV)
621 G4double q2=0.;
622 if(tgZ==1 && tgN==0) // ===> p+p=p+p
623 {
625 G4double R1=(1.-std::exp(-E1));
627 G4double R2=(1.-std::exp(-E2*E2*E2));
629 G4double R3=(1.-std::exp(-E3));
630 G4double I1=R1*theS1/theB1;
631 G4double I2=R2*theS2;
632 G4double I3=R3*theS3;
633 G4double I12=I1+I2;
634 G4double rand=(I12+I3)*G4UniformRand();
635 if (rand<I1 )
636 {
637 G4double ran=R1*G4UniformRand();
638 if(ran>1.) ran=1.;
639 q2=-std::log(1.-ran)/theB1;
640 }
641 else if(rand<I12)
642 {
643 G4double ran=R2*G4UniformRand();
644 if(ran>1.) ran=1.;
645 q2=-std::log(1.-ran);
646 if(q2<0.) q2=0.;
647 q2=std::pow(q2,third)/theB2;
648 }
649 else
650 {
651 G4double ran=R3*G4UniformRand();
652 if(ran>1.) ran=1.;
653 q2=-std::log(1.-ran)/theB3;
654 }
655 }
656 else
657 {
658 G4double a=tgZ+tgN;
660 G4double R1=(1.-std::exp(-E1));
661 G4double tss=theSS+theSS; // for future solution of quadratic equation (imediate check)
663 G4double E2=lastTM*tm2*theB2; // power 3 for lowA, 5 for HighA (1st)
664 if(a>6.5)E2*=tm2; // for heavy nuclei
665 G4double R2=(1.-std::exp(-E2));
667 if(a>6.5)E3*=tm2*tm2*tm2; // power 1 for lowA, 7 (2nd) for HighA
668 G4double R3=(1.-std::exp(-E3));
670 G4double R4=(1.-std::exp(-E4));
671 G4double I1=R1*theS1;
672 G4double I2=R2*theS2;
673 G4double I3=R3*theS3;
674 G4double I4=R4*theS4;
675 G4double I12=I1+I2;
676 G4double I13=I12+I3;
677 G4double rand=(I13+I4)*G4UniformRand();
678 if(rand<I1)
679 {
680 G4double ran=R1*G4UniformRand();
681 if(ran>1.) ran=1.;
682 q2=-std::log(1.-ran)/theB1;
683 if(std::fabs(tss)>1.e-7) q2=(std::sqrt(theB1*(theB1+(tss+tss)*q2))-theB1)/tss;
684 }
685 else if(rand<I12)
686 {
687 G4double ran=R2*G4UniformRand();
688 if(ran>1.) ran=1.;
689 q2=-std::log(1.-ran)/theB2;
690 if(q2<0.) q2=0.;
691 if(a<6.5) q2=std::pow(q2,third);
692 else q2=std::pow(q2,fifth);
693 }
694 else if(rand<I13)
695 {
696 G4double ran=R3*G4UniformRand();
697 if(ran>1.) ran=1.;
698 q2=-std::log(1.-ran)/theB3;
699 if(q2<0.) q2=0.;
700 if(a>6.5) q2=std::pow(q2,sevth);
701 }
702 else
703 {
704 G4double ran=R4*G4UniformRand();
705 if(ran>1.) ran=1.;
706 q2=-std::log(1.-ran)/theB4;
707 if(a<6.5) q2=lastTM-q2; // u reduced for lightA (starts from 0)
708 }
709 }
710 if(q2<0.) q2=0.;
711 if(!(q2>=-1.||q2<=1.)) G4cout<<"*NAN*G4QKaonPlusElasticCS::GetExchT: -t="<<q2<<G4endl;
712 if(q2>lastTM)
713 {
714 q2=lastTM;
715 }
716 return q2*GeVSQ;
717}
#define G4UniformRand()
Definition: Randomize.hh:52

References anonymous_namespace{G4ChipsKaonPlusElasticXS.cc}::fifth, G4cout, G4endl, G4UniformRand, anonymous_namespace{G4ChipsKaonPlusElasticXS.cc}::GeVSQ, lastLP, lastTM, onlyCS, anonymous_namespace{G4ChipsKaonPlusElasticXS.cc}::sevth, theB1, theB2, theB3, theB4, theS1, theS2, theS3, theS4, theSS, and anonymous_namespace{G4ChipsKaonPlusElasticXS.cc}::third.

Referenced by G4ChipsElasticModel::SampleInvariantT().

◆ GetHMaxT()

G4double G4ChipsKaonPlusElasticXS::GetHMaxT ( )
private

◆ GetIsoCrossSection()

G4double G4ChipsKaonPlusElasticXS::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 177 of file G4ChipsKaonPlusElasticXS.cc.

181{
182 G4double pMom=Pt->GetTotalMomentum();
183 G4int tgN = A - tgZ;
184
185 return GetChipsCrossSection(pMom, tgZ, tgN, 321);
186}
virtual G4double GetChipsCrossSection(G4double momentum, G4int Z, G4int N, G4int pdg)
G4double GetTotalMomentum() const

References A, GetChipsCrossSection(), and G4DynamicParticle::GetTotalMomentum().

◆ GetMaxKinEnergy()

G4double G4VCrossSectionDataSet::GetMaxKinEnergy ( ) const
inlineinherited

◆ GetMinKinEnergy()

G4double G4VCrossSectionDataSet::GetMinKinEnergy ( ) const
inlineinherited

◆ GetName()

const G4String & G4VCrossSectionDataSet::GetName ( ) const
inlineinherited

◆ GetPTables()

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

Definition at line 380 of file G4ChipsKaonPlusElasticXS.cc.

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

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

Referenced by CalculateCrossSection().

◆ GetQ2max()

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

Definition at line 842 of file G4ChipsKaonPlusElasticXS.cc.

844{
845 G4double pP2=pP*pP; // squared momentum of the projectile
846 if(tgZ || tgN>-1) // ---> pipA
847 {
848 G4double mt=G4ParticleTable::GetParticleTable()->GetIonTable()->GetIon(tgZ,tgZ+tgN,0)->GetPDGMass()*.001; // Target mass in GeV
849
850 G4double dmt=mt+mt;
851 G4double mds=dmt*std::sqrt(pP2+mK2)+mK2+mt*mt; // Mondelstam mds
852 return dmt*dmt*pP2/mds;
853 }
854 else
855 {
857 ed << "PDG = " << PDG << ",Z = " << tgZ << ", N = " << tgN
858 << ", while it is defined only for p projectiles & Z_target>0" << G4endl;
859 G4Exception("G4ChipsKaonPlusElasticXS::GetQ2max()", "HAD_CHPS_0000",
860 FatalException, ed);
861 return 0;
862 }
863}
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
Definition: G4IonTable.cc:522
G4IonTable * GetIonTable() const
static G4ParticleTable * GetParticleTable()

References FatalException, G4endl, G4Exception(), G4IonTable::GetIon(), G4ParticleTable::GetIonTable(), G4ParticleTable::GetParticleTable(), G4ParticleDefinition::GetPDGMass(), and anonymous_namespace{G4ChipsKaonPlusElasticXS.cc}::mK2.

Referenced by CalculateCrossSection().

◆ GetSlope()

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

Definition at line 720 of file G4ChipsKaonPlusElasticXS.cc.

721{
722 if(onlyCS)G4cout<<"*Warning*G4ChipsKaonPlusElasticXS::GetSl:onlCS=true"<<G4endl;
723 if(lastLP<-4.3) return 0.; // S-wave for p<14 MeV/c (kinE<.1MeV)
724 if(PDG != 321)
725 {
727 ed << "PDG = " << PDG << ", Z = " << tgZ << ", N = " << tgN
728 << ", while it is defined only for PDG=321 (K+)" << G4endl;
729 G4Exception("G4ChipsKaonPlusElasticXS::GetSlope()", "HAD_CHPS_0000",
730 FatalException, ed);
731 }
732 if(theB1<0.) theB1=0.;
733 if(!(theB1>=-1.||theB1<=1.))G4cout<<"*NAN*G4QKaonPlusElCS::GetSlope:B1="<<theB1<<G4endl;
734 return theB1/GeVSQ;
735}

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

◆ GetTabValues()

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

Definition at line 744 of file G4ChipsKaonPlusElasticXS.cc.

746{
747 if(PDG!=321)G4cout<<"*Warning*G4ChipsKaonPlusElasticXS::GetTaV:PDG="<<PDG<<G4endl;
748
749 //AR-24Apr2018 Switch to allow transuranic elements
750 const G4bool isHeavyElementAllowed = true;
751 if(tgZ<0 || ( !isHeavyElementAllowed && tgZ>92))
752 {
753 G4cout<<"*Warning*G4QKaonPlusElasticCS::GetTabV:(1-92)NoIsotopes for Z="<<tgZ<<G4endl;
754 return 0.;
755 }
756 G4int iZ=tgZ-1; // Z index
757 if(iZ<0)
758 {
759 iZ=0; // conversion of the neutron target to the proton target
760 tgZ=1;
761 tgN=0;
762 }
763 G4double p=std::exp(lp); // momentum
764 G4double sp=std::sqrt(p); // sqrt(p)
765 G4double p2=p*p;
766 G4double p3=p2*p;
767 G4double p4=p3*p;
768 if ( tgZ == 1 && tgN == 0 ) // KaonPlus+P
769 {
770 G4double dl2=lp-lastPAR[11];
771 theSS=lastPAR[34];
772 theS1=(lastPAR[12]+lastPAR[13]*dl2*dl2)/(1.+lastPAR[14]/p4/p)+
773 (lastPAR[15]/p2+lastPAR[16]*p)/(p4+lastPAR[17]*sp);
774 theB1=lastPAR[18]*std::pow(p,lastPAR[19])/(1.+lastPAR[20]/p3);
775 theS2=lastPAR[21]+lastPAR[22]/(p4+lastPAR[23]*p);
776 theB2=lastPAR[24]+lastPAR[25]/(p4+lastPAR[26]/sp);
777 theS3=lastPAR[27]+lastPAR[28]/(p4*p4+lastPAR[29]*p2+lastPAR[30]);
778 theB3=lastPAR[31]+lastPAR[32]/(p4+lastPAR[33]);
779 theS4=0.;
780 theB4=0.;
781 // Returns the total elastic pim-p cross-section (to avoid spoiling lastSIG)
782 G4double dp=lp-lastPAR[4];
783//G4cout<<"lastPAR[8] "<<lastPAR[8]<<" lastPAR[9] "<<lastPAR[9]<<" lastPAR[10] "<<lastPAR[10]<<G4endl;
784 return lastPAR[0]/(lastPAR[2]+sqr(p-lastPAR[1]))+(lastPAR[3]*dp*dp+lastPAR[5])/
785 (1.-lastPAR[6]/sp+lastPAR[7]/p4)
786 +lastPAR[8]/(sqr(p-lastPAR[9])+lastPAR[10]); // Uzhi
787
788 }
789 else
790 {
791 G4double p5=p4*p;
792 G4double p6=p5*p;
793 G4double p8=p6*p2;
794 G4double p10=p8*p2;
795 G4double p12=p10*p2;
796 G4double p16=p8*p8;
797 //G4double p24=p16*p8;
798 G4double dl=lp-5.;
799 G4double a=tgZ+tgN;
800 G4double pah=std::pow(p,a/2);
801 G4double pa=pah*pah;
802 G4double pa2=pa*pa;
803 if(a<6.5)
804 {
805 theS1=lastPAR[9]/(1.+lastPAR[10]*p4*pa)+lastPAR[11]/(p4+lastPAR[12]*p4/pa2)+
806 (lastPAR[13]*dl*dl+lastPAR[14])/(1.+lastPAR[15]/p2);
807 theB1=(lastPAR[16]+lastPAR[17]*p2)/(p4+lastPAR[18]/pah)+lastPAR[19];
808 theSS=lastPAR[20]/(1.+lastPAR[21]/p2)+lastPAR[22]/(p6/pa+lastPAR[23]/p16);
809 theS2=lastPAR[24]/(pa/p2+lastPAR[25]/p4)+lastPAR[26];
810 theB2=lastPAR[27]*std::pow(p,lastPAR[28])+lastPAR[29]/(p8+lastPAR[30]/p16);
811 theS3=lastPAR[31]/(pa*p+lastPAR[32]/pa)+lastPAR[33];
812 theB3=lastPAR[34]/(p3+lastPAR[35]/p6)+lastPAR[36]/(1.+lastPAR[37]/p2);
813 theS4=p2*(pah*lastPAR[38]*std::exp(-pah*lastPAR[39])+
814 lastPAR[40]/(1.+lastPAR[41]*std::pow(p,lastPAR[42])));
815 theB4=lastPAR[43]*pa/p2/(1.+pa*lastPAR[44]);
816 }
817 else
818 {
819 theS1=lastPAR[9]/(1.+lastPAR[10]/p4)+lastPAR[11]/(p4+lastPAR[12]/p2)+
820 lastPAR[13]/(p5+lastPAR[14]/p16);
821 theB1=(lastPAR[15]/p8+lastPAR[19])/(p+lastPAR[16]/std::pow(p,lastPAR[20]))+
822 lastPAR[17]/(1.+lastPAR[18]/p4);
823 theSS=lastPAR[21]/(p4/std::pow(p,lastPAR[23])+lastPAR[22]/p4);
824 theS2=lastPAR[24]/p4/(std::pow(p,lastPAR[25])+lastPAR[26]/p12)+lastPAR[27];
825 theB2=lastPAR[28]/std::pow(p,lastPAR[29])+lastPAR[30]/std::pow(p,lastPAR[31]);
826 theS3=lastPAR[32]/std::pow(p,lastPAR[35])/(1.+lastPAR[36]/p12)+
827 lastPAR[33]/(1.+lastPAR[34]/p6);
828 theB3=lastPAR[37]/p8+lastPAR[38]/p2+lastPAR[39]/(1.+lastPAR[40]/p8);
829 theS4=(lastPAR[41]/p4+lastPAR[46]/p)/(1.+lastPAR[42]/p10)+
830 (lastPAR[43]+lastPAR[44]*dl*dl)/(1.+lastPAR[45]/p12);
831 theB4=lastPAR[47]/(1.+lastPAR[48]/p)+lastPAR[49]*p4/(1.+lastPAR[50]*p5);
832 }
833 // Returns the total elastic (n/p)A cross-section (to avoid spoiling lastSIG)
834 G4double dlp=lp-lastPAR[4]; // ax
835 // p1 p2 p3 p4
836 return (lastPAR[0]*dlp*dlp+lastPAR[1]+lastPAR[2]/p2)/(1.+lastPAR[3]/p2/sp);
837 }
838 return 0.;
839} // End of GetTableValues
T sqr(const T &x)
Definition: templates.hh:128

References anonymous_namespace{G4QuasiElRatios.cc}::dlp, G4cout, G4endl, lastPAR, G4InuclParticleNames::sp, sqr(), 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 G4ChipsKaonPlusElasticXS::IsIsoApplicable ( const G4DynamicParticle Pt,
G4int  Z,
G4int  A,
const G4Element elm,
const G4Material mat 
)
virtual

Reimplemented from G4VCrossSectionDataSet.

Definition at line 168 of file G4ChipsKaonPlusElasticXS.cc.

171{
172 return true;
173}

◆ 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*> G4ChipsKaonPlusElasticXS::B1T
private

◆ B2T

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

◆ B3T

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

◆ B4T

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

◆ colCS

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

Definition at line 143 of file G4ChipsKaonPlusElasticXS.hh.

Referenced by GetChipsCrossSection().

◆ colN

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

Definition at line 139 of file G4ChipsKaonPlusElasticXS.hh.

Referenced by GetChipsCrossSection().

◆ colP

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

Definition at line 141 of file G4ChipsKaonPlusElasticXS.hh.

Referenced by GetChipsCrossSection().

◆ colTH

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

Definition at line 142 of file G4ChipsKaonPlusElasticXS.hh.

Referenced by GetChipsCrossSection().

◆ colZ

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

Definition at line 140 of file G4ChipsKaonPlusElasticXS.hh.

Referenced by GetChipsCrossSection().

◆ CST

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

◆ dlnP

G4double G4ChipsKaonPlusElasticXS::dlnP
private

◆ isForAllAtomsAndEnergies

G4bool G4VCrossSectionDataSet::isForAllAtomsAndEnergies
privateinherited

◆ lastB1T

G4double* G4ChipsKaonPlusElasticXS::lastB1T
private

◆ lastB2T

G4double* G4ChipsKaonPlusElasticXS::lastB2T
private

◆ lastB3T

G4double* G4ChipsKaonPlusElasticXS::lastB3T
private

◆ lastB4T

G4double* G4ChipsKaonPlusElasticXS::lastB4T
private

◆ lastCS

G4double G4ChipsKaonPlusElasticXS::lastCS
private

Definition at line 100 of file G4ChipsKaonPlusElasticXS.hh.

Referenced by G4ChipsKaonPlusElasticXS(), and GetChipsCrossSection().

◆ lastCST

G4double* G4ChipsKaonPlusElasticXS::lastCST
private

◆ lastI

G4int G4ChipsKaonPlusElasticXS::lastI
private

Definition at line 101 of file G4ChipsKaonPlusElasticXS.hh.

Referenced by G4ChipsKaonPlusElasticXS(), and GetChipsCrossSection().

◆ lastLP

G4double G4ChipsKaonPlusElasticXS::lastLP
private

◆ lastN

G4int G4ChipsKaonPlusElasticXS::lastN
private

Definition at line 96 of file G4ChipsKaonPlusElasticXS.hh.

Referenced by G4ChipsKaonPlusElasticXS(), and GetChipsCrossSection().

◆ lastP

G4double G4ChipsKaonPlusElasticXS::lastP
private

Definition at line 98 of file G4ChipsKaonPlusElasticXS.hh.

Referenced by G4ChipsKaonPlusElasticXS(), and GetChipsCrossSection().

◆ lastPAR

G4double* G4ChipsKaonPlusElasticXS::lastPAR
private

◆ lastPIN

G4double G4ChipsKaonPlusElasticXS::lastPIN
private

Definition at line 114 of file G4ChipsKaonPlusElasticXS.hh.

Referenced by CalculateCrossSection(), and G4ChipsKaonPlusElasticXS().

◆ lastS1T

G4double* G4ChipsKaonPlusElasticXS::lastS1T
private

◆ lastS2T

G4double* G4ChipsKaonPlusElasticXS::lastS2T
private

◆ lastS3T

G4double* G4ChipsKaonPlusElasticXS::lastS3T
private

◆ lastS4T

G4double* G4ChipsKaonPlusElasticXS::lastS4T
private

◆ lastSIG

G4double G4ChipsKaonPlusElasticXS::lastSIG
private

Definition at line 93 of file G4ChipsKaonPlusElasticXS.hh.

Referenced by CalculateCrossSection(), and G4ChipsKaonPlusElasticXS().

◆ lastSST

G4double* G4ChipsKaonPlusElasticXS::lastSST
private

◆ lastTH

G4double G4ChipsKaonPlusElasticXS::lastTH
private

Definition at line 99 of file G4ChipsKaonPlusElasticXS.hh.

Referenced by G4ChipsKaonPlusElasticXS(), and GetChipsCrossSection().

◆ lastTM

G4double G4ChipsKaonPlusElasticXS::lastTM
private

◆ lastTN

G4int G4ChipsKaonPlusElasticXS::lastTN
private

Definition at line 113 of file G4ChipsKaonPlusElasticXS.hh.

Referenced by G4ChipsKaonPlusElasticXS().

◆ lastTZ

G4int G4ChipsKaonPlusElasticXS::lastTZ
private

Definition at line 112 of file G4ChipsKaonPlusElasticXS.hh.

Referenced by G4ChipsKaonPlusElasticXS().

◆ lastZ

G4int G4ChipsKaonPlusElasticXS::lastZ
private

Definition at line 97 of file G4ChipsKaonPlusElasticXS.hh.

Referenced by G4ChipsKaonPlusElasticXS(), and GetChipsCrossSection().

◆ lPMax

G4double G4ChipsKaonPlusElasticXS::lPMax
private

◆ lPMin

G4double G4ChipsKaonPlusElasticXS::lPMin
private

◆ maxKinEnergy

G4double G4VCrossSectionDataSet::maxKinEnergy
privateinherited

◆ minKinEnergy

G4double G4VCrossSectionDataSet::minKinEnergy
privateinherited

◆ name

G4String G4VCrossSectionDataSet::name
protectedinherited

◆ nLast

const G4int G4ChipsKaonPlusElasticXS::nLast
private

◆ nPoints

const G4int G4ChipsKaonPlusElasticXS::nPoints
private

Definition at line 86 of file G4ChipsKaonPlusElasticXS.hh.

Referenced by CalculateCrossSection(), and GetPTables().

◆ onlyCS

G4bool G4ChipsKaonPlusElasticXS::onlyCS
private

◆ PAR

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

◆ PIN

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

Definition at line 145 of file G4ChipsKaonPlusElasticXS.hh.

Referenced by CalculateCrossSection().

◆ registry

G4CrossSectionDataSetRegistry* G4VCrossSectionDataSet::registry
privateinherited

◆ S1T

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

◆ S2T

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

◆ S3T

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

◆ S4T

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

◆ SST

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

◆ theB1

G4double G4ChipsKaonPlusElasticXS::theB1
private

◆ theB2

G4double G4ChipsKaonPlusElasticXS::theB2
private

◆ theB3

G4double G4ChipsKaonPlusElasticXS::theB3
private

◆ theB4

G4double G4ChipsKaonPlusElasticXS::theB4
private

◆ theS1

G4double G4ChipsKaonPlusElasticXS::theS1
private

◆ theS2

G4double G4ChipsKaonPlusElasticXS::theS2
private

◆ theS3

G4double G4ChipsKaonPlusElasticXS::theS3
private

◆ theS4

G4double G4ChipsKaonPlusElasticXS::theS4
private

◆ theSS

G4double G4ChipsKaonPlusElasticXS::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: