Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4PhysicsVector Class Referenceabstract

#include <G4PhysicsVector.hh>

+ Inheritance diagram for G4PhysicsVector:

Public Member Functions

 G4PhysicsVector (G4bool spline=false)
 
 G4PhysicsVector (const G4PhysicsVector &)
 
G4PhysicsVectoroperator= (const G4PhysicsVector &)
 
virtual ~G4PhysicsVector ()
 
void * operator new (size_t)
 
void operator delete (void *)
 
G4double Value (G4double theEnergy)
 
G4double GetValue (G4double theEnergy, G4bool &isOutRange)
 
G4int operator== (const G4PhysicsVector &right) const
 
G4int operator!= (const G4PhysicsVector &right) const
 
G4double operator[] (const size_t binNumber) const
 
G4double operator() (const size_t binNumber) const
 
void PutValue (size_t index, G4double theValue)
 
virtual void ScaleVector (G4double factorE, G4double factorV)
 
G4double Energy (size_t index) const
 
G4double GetMaxEnergy () const
 
virtual G4double GetLowEdgeEnergy (size_t binNumber) const
 
size_t GetVectorLength () const
 
void FillSecondDerivatives ()
 
void ComputeSecDerivatives ()
 
void ComputeSecondDerivatives (G4double firstPointDerivative, G4double endPointDerivative)
 
G4bool IsFilledVectorExist () const
 
G4PhysicsVectorType GetType () const
 
void SetSpline (G4bool)
 
virtual G4bool Store (std::ofstream &fOut, G4bool ascii=false)
 
virtual G4bool Retrieve (std::ifstream &fIn, G4bool ascii=false)
 
G4double GetLastEnergy () const
 
G4double GetLastValue () const
 
size_t GetLastBin () const
 
void SetVerboseLevel (G4int value)
 
G4int GetVerboseLevel (G4int)
 

Protected Member Functions

virtual size_t FindBinLocation (G4double theEnergy) const =0
 
void DeleteData ()
 
void CopyData (const G4PhysicsVector &vec)
 

Protected Attributes

G4PhysicsVectorType type
 
G4double edgeMin
 
G4double edgeMax
 
size_t numberOfNodes
 
G4PhysicsVectorCachecache
 
G4PVDataVector dataVector
 
G4PVDataVector binVector
 
G4PVDataVector secDerivative
 
G4double dBin
 
G4double baseBin
 
G4int verboseLevel
 

Friends

std::ostream & operator<< (std::ostream &, const G4PhysicsVector &)
 

Detailed Description

Definition at line 76 of file G4PhysicsVector.hh.

Constructor & Destructor Documentation

◆ G4PhysicsVector() [1/2]

G4PhysicsVector::G4PhysicsVector ( G4bool  spline = false)

Definition at line 63 of file G4PhysicsVector.cc.

65 edgeMin(0.), edgeMax(0.), numberOfNodes(0),
66 useSpline(spline),
67 dBin(0.), baseBin(0.),
69{
71}
@ T_G4PhysicsVector
G4PhysicsVectorType type
G4PhysicsVectorCache * cache

◆ G4PhysicsVector() [2/2]

G4PhysicsVector::G4PhysicsVector ( const G4PhysicsVector right)

Definition at line 82 of file G4PhysicsVector.cc.

83{
85 dBin = right.dBin;
86 baseBin = right.baseBin;
88
89 DeleteData();
90 CopyData(right);
91}
void CopyData(const G4PhysicsVector &vec)

◆ ~G4PhysicsVector()

G4PhysicsVector::~G4PhysicsVector ( )
virtual

Definition at line 75 of file G4PhysicsVector.cc.

76{
77 delete cache; cache =0;
78}

Member Function Documentation

◆ ComputeSecDerivatives()

void G4PhysicsVector::ComputeSecDerivatives ( )

Definition at line 441 of file G4PhysicsVector.cc.

443{
444 if(!SplinePossible()) { return; }
445
446 if(3 > numberOfNodes) // cannot compute derivatives for less than 4 bins
447 {
448 useSpline = false;
449 return;
450 }
451
452 size_t n = numberOfNodes-1;
453
454 for(size_t i=1; i<n; ++i)
455 {
456 secDerivative[i] =
457 3.0*((dataVector[i+1]-dataVector[i])/(binVector[i+1]-binVector[i]) -
458 (dataVector[i]-dataVector[i-1])/(binVector[i]-binVector[i-1]))
459 /(binVector[i+1]-binVector[i-1]);
460 }
463}
G4PVDataVector binVector
G4PVDataVector secDerivative
G4PVDataVector dataVector

Referenced by ComputeSecondDerivatives(), and FillSecondDerivatives().

◆ ComputeSecondDerivatives()

void G4PhysicsVector::ComputeSecondDerivatives ( G4double  firstPointDerivative,
G4double  endPointDerivative 
)

Definition at line 308 of file G4PhysicsVector.cc.

314{
315 if(4 > numberOfNodes) // cannot compute derivatives for less than 4 bins
316 {
318 return;
319 }
320
321 if(!SplinePossible()) { return; }
322
324
325 G4double* u = new G4double [n];
326
327 G4double p, sig, un;
328
329 u[0] = (6.0/(binVector[1]-binVector[0]))
330 * ((dataVector[1]-dataVector[0])/(binVector[1]-binVector[0])
331 - firstPointDerivative);
332
333 secDerivative[0] = - 0.5;
334
335 // Decomposition loop for tridiagonal algorithm. secDerivative[i]
336 // and u[i] are used for temporary storage of the decomposed factors.
337
338 for(G4int i=1; i<n; ++i)
339 {
340 sig = (binVector[i]-binVector[i-1]) / (binVector[i+1]-binVector[i-1]);
341 p = sig*(secDerivative[i-1]) + 2.0;
342 secDerivative[i] = (sig - 1.0)/p;
343 u[i] = (dataVector[i+1]-dataVector[i])/(binVector[i+1]-binVector[i])
344 - (dataVector[i]-dataVector[i-1])/(binVector[i]-binVector[i-1]);
345 u[i] = 6.0*u[i]/(binVector[i+1]-binVector[i-1]) - sig*u[i-1]/p;
346 }
347
348 sig = (binVector[n-1]-binVector[n-2]) / (binVector[n]-binVector[n-2]);
349 p = sig*secDerivative[n-2] + 2.0;
350 un = (6.0/(binVector[n]-binVector[n-1]))
351 *(endPointDerivative -
352 (dataVector[n]-dataVector[n-1])/(binVector[n]-binVector[n-1])) - u[n-1]/p;
353 secDerivative[n] = un/(secDerivative[n-1] + 2.0);
354
355 // The back-substitution loop for the triagonal algorithm of solving
356 // a linear system of equations.
357
358 for(G4int k=n-1; k>0; --k)
359 {
360 secDerivative[k] *=
361 (secDerivative[k+1] -
362 u[k]*(binVector[k+1]-binVector[k-1])/(binVector[k+1]-binVector[k]));
363 }
364 secDerivative[0] = 0.5*(u[0] - secDerivative[1]);
365
366 delete [] u;
367}
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
void ComputeSecDerivatives()

◆ CopyData()

void G4PhysicsVector::CopyData ( const G4PhysicsVector vec)
protected

Definition at line 130 of file G4PhysicsVector.cc.

131{
132 type = vec.type;
133 edgeMin = vec.edgeMin;
134 edgeMax = vec.edgeMax;
138 cache->lastBin = vec.GetLastBin();
139 useSpline = vec.useSpline;
140
141 size_t i;
142 dataVector.clear();
143 for(i=0; i<(vec.dataVector).size(); i++){
144 dataVector.push_back( (vec.dataVector)[i] );
145 }
146 binVector.clear();
147 for(i=0; i<(vec.binVector).size(); i++){
148 binVector.push_back( (vec.binVector)[i] );
149 }
150 secDerivative.clear();
151 for(i=0; i<(vec.secDerivative).size(); i++){
152 secDerivative.push_back( (vec.secDerivative)[i] );
153 }
154}
size_t GetLastBin() const
G4double GetLastValue() const
G4double GetLastEnergy() const

Referenced by G4PhysicsVector(), and operator=().

◆ DeleteData()

void G4PhysicsVector::DeleteData ( )
protected

Definition at line 123 of file G4PhysicsVector.cc.

124{
125 secDerivative.clear();
126}

Referenced by G4PhysicsVector(), and operator=().

◆ Energy()

◆ FillSecondDerivatives()

void G4PhysicsVector::FillSecondDerivatives ( )

Definition at line 371 of file G4PhysicsVector.cc.

375{
376 if(5 > numberOfNodes) // cannot compute derivatives for less than 4 points
377 {
379 return;
380 }
381
382 if(!SplinePossible()) { return; }
383
385
386 G4double* u = new G4double [n];
387
388 G4double p, sig;
389
390 u[1] = ((dataVector[2]-dataVector[1])/(binVector[2]-binVector[1]) -
391 (dataVector[1]-dataVector[0])/(binVector[1]-binVector[0]));
392 u[1] = 6.0*u[1]*(binVector[2]-binVector[1])
393 / ((binVector[2]-binVector[0])*(binVector[2]-binVector[0]));
394
395 // Decomposition loop for tridiagonal algorithm. secDerivative[i]
396 // and u[i] are used for temporary storage of the decomposed factors.
397
398 secDerivative[1] = (2.0*binVector[1]-binVector[0]-binVector[2])
399 / (2.0*binVector[2]-binVector[0]-binVector[1]);
400
401 for(G4int i=2; i<n-1; ++i)
402 {
403 sig = (binVector[i]-binVector[i-1]) / (binVector[i+1]-binVector[i-1]);
404 p = sig*secDerivative[i-1] + 2.0;
405 secDerivative[i] = (sig - 1.0)/p;
406 u[i] = (dataVector[i+1]-dataVector[i])/(binVector[i+1]-binVector[i])
407 - (dataVector[i]-dataVector[i-1])/(binVector[i]-binVector[i-1]);
408 u[i] = (6.0*u[i]/(binVector[i+1]-binVector[i-1])) - sig*u[i-1]/p;
409 }
410
411 sig = (binVector[n-1]-binVector[n-2]) / (binVector[n]-binVector[n-2]);
412 p = sig*secDerivative[n-3] + 2.0;
413 u[n-1] = (dataVector[n]-dataVector[n-1])/(binVector[n]-binVector[n-1])
414 - (dataVector[n-1]-dataVector[n-2])/(binVector[n-1]-binVector[n-2]);
415 u[n-1] = 6.0*sig*u[n-1]/(binVector[n]-binVector[n-2])
416 - (2.0*sig - 1.0)*u[n-2]/p;
417
418 p = (1.0+sig) + (2.0*sig-1.0)*secDerivative[n-2];
419 secDerivative[n-1] = u[n-1]/p;
420
421 // The back-substitution loop for the triagonal algorithm of solving
422 // a linear system of equations.
423
424 for(G4int k=n-2; k>1; --k)
425 {
426 secDerivative[k] *=
427 (secDerivative[k+1] -
428 u[k]*(binVector[k+1]-binVector[k-1])/(binVector[k+1]-binVector[k]));
429 }
430 secDerivative[n] = (secDerivative[n-1] - (1.0-sig)*secDerivative[n-2])/sig;
431 sig = 1.0 - ((binVector[2]-binVector[1])/(binVector[2]-binVector[0]));
432 secDerivative[1] *= (secDerivative[2] - u[1]/(1.0-sig));
433 secDerivative[0] = (secDerivative[1] - sig*secDerivative[2])/(1.0-sig);
434
435 delete [] u;
436}

Referenced by G4VEnergyLossProcess::BuildDEDXTable(), G4LossTableBuilder::BuildDEDXTable(), G4LossTableBuilder::BuildInverseRangeTable(), G4VEnergyLossProcess::BuildLambdaTable(), G4LossTableBuilder::BuildRangeTable(), and G4LossTableBuilder::BuildTableForModel().

◆ FindBinLocation()

virtual size_t G4PhysicsVector::FindBinLocation ( G4double  theEnergy) const
protectedpure virtual

◆ GetLastBin()

size_t G4PhysicsVector::GetLastBin ( ) const
inline

Referenced by CopyData().

◆ GetLastEnergy()

G4double G4PhysicsVector::GetLastEnergy ( ) const
inline

Referenced by CopyData().

◆ GetLastValue()

G4double G4PhysicsVector::GetLastValue ( ) const
inline

Referenced by CopyData().

◆ GetLowEdgeEnergy()

G4double G4PhysicsVector::GetLowEdgeEnergy ( size_t  binNumber) const
virtual

Reimplemented in G4PhysicsOrderedFreeVector.

Definition at line 158 of file G4PhysicsVector.cc.

159{
160 return binVector[binNumber];
161}

Referenced by G4EMDissociation::ApplyYourself(), G4VXTRenergyLoss::BuildAngleForEnergyBank(), G4VXTRenergyLoss::BuildAngleTable(), G4DiffuseElastic::BuildAngleTable(), G4NuclNuclDiffuseElastic::BuildAngleTable(), G4eplusPolarizedAnnihilation::BuildAsymmetryTable(), G4PolarizedCompton::BuildAsymmetryTable(), G4hRDEnergyLoss::BuildDEDXTable(), G4VXTRenergyLoss::BuildEnergyTable(), G4VXTRenergyLoss::BuildGlobalAngleTable(), G4VeLowEnergyLoss::BuildInverseRangeTable(), G4VRangeToEnergyConverter::BuildLossTable(), G4PAIModel::BuildPAIonisationTable(), G4PAIPhotonModel::BuildPAIonisationTable(), G4VRangeToEnergyConverter::BuildRangeVector(), G4AdjointCSManager::BuildTotalSigmaTables(), G4ForwardXrayTR::BuildXrayTRtables(), G4VRangeToEnergyConverter::ConvertCutToKineticEnergy(), G4PenelopeRayleighModel::DumpFormFactorTable(), G4PAIPhotonModel::GetAlongStepTransfer(), G4ForwardXrayTR::GetEnergyTR(), G4VXTRenergyLoss::GetMeanFreePath(), G4PAIModel::GetPostStepTransfer(), G4PAIPhotonModel::GetPostStepTransfer(), G4VXTRenergyLoss::GetXTRrandomEnergy(), G4eeToHadronsModel::Initialise(), G4InitXscPAI::IntegralCherenkov(), G4InitXscPAI::IntegralPAIdEdx(), G4InitXscPAI::IntegralPAIxSection(), G4InitXscPAI::IntegralPlasmon(), G4ForwardXrayTR::PostStepDoIt(), G4XNNElasticLowE::Print(), G4XnpElasticLowE::Print(), G4XnpTotalLowE::Print(), G4PAIModel::SampleFluctuations(), G4DiffuseElastic::SampleTableThetaCMS(), and G4NuclNuclDiffuseElastic::SampleTableThetaCMS().

◆ GetMaxEnergy()

G4double G4PhysicsVector::GetMaxEnergy ( ) const
inline

◆ GetType()

G4PhysicsVectorType G4PhysicsVector::GetType ( ) const
inline

◆ GetValue()

◆ GetVectorLength()

◆ GetVerboseLevel()

G4int G4PhysicsVector::GetVerboseLevel ( G4int  )
inline

◆ IsFilledVectorExist()

G4bool G4PhysicsVector::IsFilledVectorExist ( ) const
inline

◆ operator delete()

void G4PhysicsVector::operator delete ( void *  )
inline

◆ operator new()

void * G4PhysicsVector::operator new ( size_t  )
inline

◆ operator!=()

G4int G4PhysicsVector::operator!= ( const G4PhysicsVector right) const

Definition at line 116 of file G4PhysicsVector.cc.

117{
118 return (this != &right);
119}

◆ operator()()

G4double G4PhysicsVector::operator() ( const size_t  binNumber) const
inline

◆ operator=()

G4PhysicsVector & G4PhysicsVector::operator= ( const G4PhysicsVector right)

Definition at line 95 of file G4PhysicsVector.cc.

96{
97 if (&right==this) { return *this; }
98 dBin = right.dBin;
99 baseBin = right.baseBin;
101
102 DeleteData();
103 CopyData(right);
104 return *this;
105}

◆ operator==()

G4int G4PhysicsVector::operator== ( const G4PhysicsVector right) const

Definition at line 109 of file G4PhysicsVector.cc.

110{
111 return (this == &right);
112}

◆ operator[]()

G4double G4PhysicsVector::operator[] ( const size_t  binNumber) const
inline

◆ PutValue()

void G4PhysicsVector::PutValue ( size_t  index,
G4double  theValue 
)
inline

Referenced by G4RToEConvForGamma::BuildAbsorptionLengthVector(), G4VXTRenergyLoss::BuildAngleForEnergyBank(), G4eplusPolarizedAnnihilation::BuildAsymmetryTable(), G4PolarizedCompton::BuildAsymmetryTable(), G4KokoulinMuonNuclearXS::BuildCrossSectionTable(), G4hRDEnergyLoss::BuildDEDXTable(), G4LossTableBuilder::BuildDEDXTable(), G4VXTRenergyLoss::BuildEnergyTable(), G4VXTRenergyLoss::BuildGlobalAngleTable(), G4VeLowEnergyLoss::BuildInverseRangeTable(), G4PAIModel::BuildLambdaVector(), G4PAIPhotonModel::BuildLambdaVector(), G4VRangeToEnergyConverter::BuildLossTable(), G4PAIModel::BuildPAIonisationTable(), G4PAIPhotonModel::BuildPAIonisationTable(), G4ePolarizedIonisation::BuildPhysicsTable(), G4ChargeExchangeProcess::BuildPhysicsTable(), G4VeLowEnergyLoss::BuildRangeCoeffATable(), G4VEnergyLoss::BuildRangeCoeffATable(), G4VeLowEnergyLoss::BuildRangeCoeffBTable(), G4VEnergyLoss::BuildRangeCoeffBTable(), G4VeLowEnergyLoss::BuildRangeCoeffCTable(), G4VEnergyLoss::BuildRangeCoeffCTable(), G4LossTableBuilder::BuildRangeTable(), G4VRangeToEnergyConverter::BuildRangeVector(), G4LossTableBuilder::BuildTableForModel(), G4AdjointCSManager::BuildTotalSigmaTables(), G4ForwardXrayTR::BuildXrayTRtables(), G4EmModelManager::FillDEDXVector(), G4EmModelManager::FillLambdaVector(), G4XNNElasticLowE::G4XNNElasticLowE(), G4XnpElasticLowE::G4XnpElasticLowE(), G4XnpTotalLowE::G4XnpTotalLowE(), G4eeToHadronsModel::Initialise(), G4InitXscPAI::IntegralCherenkov(), G4InitXscPAI::IntegralPAIdEdx(), G4InitXscPAI::IntegralPAIxSection(), G4InitXscPAI::IntegralPlasmon(), and G4VRangeToEnergyConverter::operator=().

◆ Retrieve()

G4bool G4PhysicsVector::Retrieve ( std::ifstream &  fIn,
G4bool  ascii = false 
)
virtual

Reimplemented in G4PhysicsLinearVector, G4PhysicsLnVector, and G4PhysicsLogVector.

Definition at line 198 of file G4PhysicsVector.cc.

199{
200 // clear properties;
202 cache->lastValue =0.;
203 cache->lastBin =0;
204 dataVector.clear();
205 binVector.clear();
206 secDerivative.clear();
207
208 // retrieve in ascii mode
209 if (ascii){
210 // binning
211 fIn >> edgeMin >> edgeMax >> numberOfNodes;
212 if (fIn.fail()) { return false; }
213 // contents
214 G4int siz=0;
215 fIn >> siz;
216 if (fIn.fail()) { return false; }
217 if (siz<=0)
218 {
219#ifdef G4VERBOSE
220 G4cerr << "G4PhysicsVector::Retrieve():";
221 G4cerr << " Invalid vector size: " << siz << G4endl;
222#endif
223 return false;
224 }
225
226 binVector.reserve(siz);
227 dataVector.reserve(siz);
228 G4double vBin, vData;
229
230 for(G4int i = 0; i < siz ; i++)
231 {
232 vBin = 0.;
233 vData= 0.;
234 fIn >> vBin >> vData;
235 if (fIn.fail()) { return false; }
236 binVector.push_back(vBin);
237 dataVector.push_back(vData);
238 }
239
240 // to remove any inconsistency
241 numberOfNodes = siz;
242 edgeMin = binVector[0];
244 return true ;
245 }
246
247 // retrieve in binary mode
248 // binning
249 fIn.read((char*)(&edgeMin), sizeof edgeMin);
250 fIn.read((char*)(&edgeMax), sizeof edgeMax);
251 fIn.read((char*)(&numberOfNodes), sizeof numberOfNodes );
252
253 // contents
254 size_t size;
255 fIn.read((char*)(&size), sizeof size);
256
257 G4double* value = new G4double[2*size];
258 fIn.read((char*)(value), 2*size*(sizeof(G4double)) );
259 if (G4int(fIn.gcount()) != G4int(2*size*(sizeof(G4double))) )
260 {
261 delete [] value;
262 return false;
263 }
264
265 binVector.reserve(size);
266 dataVector.reserve(size);
267 for(size_t i = 0; i < size; ++i)
268 {
269 binVector.push_back(value[2*i]);
270 dataVector.push_back(value[2*i+1]);
271 }
272 delete [] value;
273
274 // to remove any inconsistency
275 numberOfNodes = size;
276 edgeMin = binVector[0];
278
279 return true;
280}
#define G4endl
Definition: G4ios.hh:52
G4DLLIMPORT std::ostream G4cerr
#define DBL_MAX
Definition: templates.hh:83

Referenced by G4PhysicsLinearVector::Retrieve(), G4PhysicsLnVector::Retrieve(), G4PhysicsLogVector::Retrieve(), and G4PhysicsTable::RetrievePhysicsTable().

◆ ScaleVector()

void G4PhysicsVector::ScaleVector ( G4double  factorE,
G4double  factorV 
)
virtual

Reimplemented in G4PhysicsLinearVector, G4PhysicsLnVector, and G4PhysicsLogVector.

Definition at line 285 of file G4PhysicsVector.cc.

286{
287 size_t n = dataVector.size();
288 size_t i;
289 if(n > 0) {
290 for(i=0; i<n; ++i) {
291 binVector[i] *= factorE;
292 dataVector[i] *= factorV;
293 }
294 }
295 // n = secDerivative.size();
296 // if(n > 0) { for(i=0; i<n; ++i) { secDerivative[i] *= factorV; } }
297 secDerivative.clear();
298
299 edgeMin *= factorE;
300 edgeMax *= factorE;
301 cache->lastEnergy = factorE*(cache->lastEnergy);
302 cache->lastValue = factorV*(cache->lastValue);
303}

Referenced by G4PhysicsLinearVector::ScaleVector(), G4PhysicsLnVector::ScaleVector(), and G4PhysicsLogVector::ScaleVector().

◆ SetSpline()

◆ SetVerboseLevel()

void G4PhysicsVector::SetVerboseLevel ( G4int  value)
inline

◆ Store()

G4bool G4PhysicsVector::Store ( std::ofstream &  fOut,
G4bool  ascii = false 
)
virtual

Definition at line 165 of file G4PhysicsVector.cc.

166{
167 // Ascii mode
168 if (ascii)
169 {
170 fOut << *this;
171 return true;
172 }
173 // Binary Mode
174
175 // binning
176 fOut.write((char*)(&edgeMin), sizeof edgeMin);
177 fOut.write((char*)(&edgeMax), sizeof edgeMax);
178 fOut.write((char*)(&numberOfNodes), sizeof numberOfNodes);
179
180 // contents
181 size_t size = dataVector.size();
182 fOut.write((char*)(&size), sizeof size);
183
184 G4double* value = new G4double[2*size];
185 for(size_t i = 0; i < size; ++i)
186 {
187 value[2*i] = binVector[i];
188 value[2*i+1]= dataVector[i];
189 }
190 fOut.write((char*)(value), 2*size*(sizeof (G4double)));
191 delete [] value;
192
193 return true;
194}

◆ Value()

G4double G4PhysicsVector::Value ( G4double  theEnergy)
inline

Referenced by G4EmCorrections::BarkasCorrection(), G4LossTableBuilder::BuildRangeTable(), G4Track::CalculateVelocityForOpticalPhoton(), G4LivermoreGammaConversionModel::ComputeCrossSectionPerAtom(), G4LivermoreRayleighModel::ComputeCrossSectionPerAtom(), G4PenelopeGammaConversionModel::ComputeCrossSectionPerAtom(), G4PenelopePhotoElectricModel::ComputeCrossSectionPerAtom(), G4PenelopeRayleighModel::ComputeCrossSectionPerAtom(), G4VRangeToEnergyConverter::ConvertCutToKineticEnergy(), G4EmCorrections::EffectiveChargeCorrection(), G4PenelopeIonisationXSHandler::GetDensityCorrection(), G4NeutronCaptureXS::GetElementCrossSection(), G4NeutronElasticXS::GetElementCrossSection(), G4NeutronInelasticXS::GetElementCrossSection(), G4PenelopeCrossSection::GetHardCrossSection(), G4NeutronCaptureXS::GetIsoCrossSection(), G4HadronNucleonXsc::GetKmNeutronTotXscVector(), G4HadronNucleonXsc::GetKmProtonTotXscVector(), G4HadronNucleonXsc::GetKpNeutronTotXscVector(), G4HadronNucleonXsc::GetKpProtonTotXscVector(), G4PenelopeCrossSection::GetNormalizedShellCrossSection(), G4SPSEneDistribution::GetProbability(), G4PenelopePhotoElectricModel::GetShellCrossSection(), G4PenelopeCrossSection::GetShellCrossSection(), G4PenelopeCrossSection::GetSoftStoppingPower(), G4PenelopeCrossSection::GetTotalCrossSection(), G4ElementData::GetValueForElement(), G4EmCorrections::KShellCorrection(), G4EmCorrections::LShellCorrection(), G4Cerenkov::PostStepDoIt(), G4Scintillation::PostStepDoIt(), G4OpBoundaryProcess::PostStepDoIt(), G4PenelopeBremsstrahlungAngular::SampleDirection(), G4PenelopeRayleighModel::SampleSecondaries(), G4NeutronCaptureXS::SelectIsotope(), G4VEnergyLossProcess::SetCSDARangeTable(), G4VEnergyLossProcess::SetDEDXTable(), and G4EmCorrections::ShellCorrection().

Friends And Related Function Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream &  out,
const G4PhysicsVector pv 
)
friend

Definition at line 487 of file G4PhysicsVector.cc.

488{
489 // binning
490 out << std::setprecision(12) << pv.edgeMin << " "
491 << pv.edgeMax << " " << pv.numberOfNodes << G4endl;
492
493 // contents
494 out << pv.dataVector.size() << G4endl;
495 for(size_t i = 0; i < pv.dataVector.size(); i++)
496 {
497 out << pv.binVector[i] << " " << pv.dataVector[i] << G4endl;
498 }
499 out << std::setprecision(6);
500
501 return out;
502}

Member Data Documentation

◆ baseBin

◆ binVector

◆ cache

G4PhysicsVectorCache* G4PhysicsVector::cache
protected

◆ dataVector

◆ dBin

◆ edgeMax

◆ edgeMin

◆ numberOfNodes

◆ secDerivative

G4PVDataVector G4PhysicsVector::secDerivative
protected

◆ type

◆ verboseLevel

G4int G4PhysicsVector::verboseLevel
protected

Definition at line 234 of file G4PhysicsVector.hh.

Referenced by G4PhysicsVector(), and operator=().


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