#include <G4VRangeToEnergyConverter.hh>
◆ G4LossTable
◆ G4LossVector
◆ G4RangeVector
◆ G4VRangeToEnergyConverter() [1/2]
G4VRangeToEnergyConverter::G4VRangeToEnergyConverter |
( |
| ) |
|
◆ G4VRangeToEnergyConverter() [2/2]
◆ ~G4VRangeToEnergyConverter()
G4VRangeToEnergyConverter::~G4VRangeToEnergyConverter |
( |
| ) |
|
|
virtual |
◆ BuildLossTable()
void G4VRangeToEnergyConverter::BuildLossTable |
( |
| ) |
|
|
protectedvirtual |
Definition at line 293 of file G4VRangeToEnergyConverter.cc.
306 G4cout <<
"G4VRangeToEnergyConverter::BuildLossTable() ";
318 for (
size_t i=0; i<=size_t(
TotBin); i++) {
322 aVector->PutValue(i,Value);
G4PhysicsLogVector G4LossVector
void insert(G4PhysicsVector *)
G4LossTable * theLossTable
G4int GetVerboseLevel() const
virtual G4double ComputeLoss(G4double AtomicNumber, G4double KineticEnergy)=0
G4GLOB_DLL std::ostream G4cout
static size_t GetNumberOfElements()
G4PhysicsTable G4LossTable
static G4double MaxEnergyCut
static G4ElementTable * GetElementTable()
static G4double LowestEnergy
◆ BuildRangeVector()
Reimplemented in G4RToEConvForGamma.
Definition at line 331 of file G4VRangeToEnergyConverter.cc.
341 std::vector<G4double> lossV;
342 for (
size_t ib=0; ib<=size_t(
TotBin); ib++) {
344 for (i=0; i<size_t(NumEl); i++) {
345 G4int IndEl = (*elementVector)[i]->GetIndex();
346 loss += atomicNumDensityVector[i]*
347 (*((*theLossTable)[IndEl]))[ib];
349 lossV.push_back(loss);
361 for ( i=0; i<=size_t(
TotBin); i++) {
362 G4double t = rangeVector->GetLowEdgeEnergy(i);
364 if (i==0) s0 += 0.5*q;
368 Value = (s0 + 0.5*q)*dltau ;
370 Value = (s0 - 0.5*q)*dltau ;
372 rangeVector->PutValue(i,Value);
std::vector< G4Element * > G4ElementVector
const G4double * GetAtomicNumDensityVector() const
static G4double MaxEnergyCut
size_t GetNumberOfElements() const
const G4ElementVector * GetElementVector() const
static G4double LowestEnergy
◆ ComputeLoss()
◆ Convert()
Reimplemented in G4RToEConvForProton.
Definition at line 148 of file G4VRangeToEnergyConverter.cc.
153 G4cout <<
"G4VRangeToEnergyConverter::Convert() ";
155 <<
" with Range Cut " << rangeCut/
mm <<
"[mm]" <<
G4endl;
179 G4cout <<
"G4VRangeToEnergyConverter::Convert() ";
181 <<
"( " << density <<
")" <<
G4endl;
195 if (rangeVector == 0) {
205 && (theKineticEnergyCuts < lowen) ) {
207 theKineticEnergyCuts /= (1.+(1.-theKineticEnergyCuts/lowen)*
208 tune/(rangeCut*density));
217 return theKineticEnergyCuts;
virtual void BuildLossTable()
G4PhysicsLogVector G4RangeVector
static G4MaterialTable * GetMaterialTable()
G4double ConvertCutToKineticEnergy(G4RangeVector *theRangeVector, G4double theCutInLength, size_t materialIndex) const
std::vector< G4Material * > G4MaterialTable
G4double GetDensity() const
virtual void BuildRangeVector(const G4Material *aMaterial, G4RangeVector *rangeVector)
G4int GetVerboseLevel() const
const G4String & GetParticleName() const
G4GLOB_DLL std::ostream G4cout
std::vector< G4RangeVector *> fRangeVectorStore
static G4double MaxEnergyCut
const G4String & GetName() const
const G4ParticleDefinition * theParticle
static G4double LowestEnergy
◆ ConvertCutToKineticEnergy()
G4double G4VRangeToEnergyConverter::ConvertCutToKineticEnergy |
( |
G4RangeVector * |
theRangeVector, |
|
|
G4double |
theCutInLength, |
|
|
size_t |
materialIndex |
|
) |
| const |
|
protected |
Definition at line 379 of file G4VRangeToEnergyConverter.cc.
400 if ( theCutInLength <= r1 ) {
return T1; }
404 for (
size_t ibin=0; ibin<=size_t(
TotBin); ibin++) {
405 G4double T=rangeVector->GetLowEdgeEnergy(ibin);
407 if ( r>rmax ) rmax=
r;
408 if (r <theCutInLength ) {
411 }
else if (r >theCutInLength ) {
418 if ( theCutInLength >= rmax ) {
421 G4cout <<
"G4VRangeToEnergyConverter::ConvertCutToKineticEnergy ";
423 G4cout <<
"The cut in range [" << theCutInLength/
mm <<
" (mm)] ";
424 G4cout <<
" is too big " ;
425 G4cout <<
" for material idx=" << materialIndex <<
G4endl;
433 G4double r3 = rangeVector->Value(T3);
434 const size_t MAX_LOOP = 1000;
435 for (
size_t loop_count=0; loop_count<MAX_LOOP; ++loop_count){
436 if (std::fabs(1.-r3/theCutInLength)<epsilon )
break;
437 if ( theCutInLength <= r3 ) {
442 T3 = std::sqrt(T1*T2);
443 r3 = rangeVector->Value(T3);
G4int GetVerboseLevel() const
const G4String & GetParticleName() const
G4GLOB_DLL std::ostream G4cout
static G4double MaxEnergyCut
double epsilon(double density, double temperature)
const G4ParticleDefinition * theParticle
static G4double LowestEnergy
◆ GetHighEdgeEnergy()
G4double G4VRangeToEnergyConverter::GetHighEdgeEnergy |
( |
| ) |
|
|
static |
◆ GetLossTable()
const G4PhysicsTable* G4VRangeToEnergyConverter::GetLossTable |
( |
| ) |
const |
◆ GetLowEdgeEnergy()
G4double G4VRangeToEnergyConverter::GetLowEdgeEnergy |
( |
| ) |
|
|
static |
◆ GetMaxEnergyCut()
G4double G4VRangeToEnergyConverter::GetMaxEnergyCut |
( |
| ) |
|
|
static |
◆ GetParticleType()
◆ GetVerboseLevel()
G4int G4VRangeToEnergyConverter::GetVerboseLevel |
( |
| ) |
const |
|
inline |
◆ operator!=()
◆ operator=()
Definition at line 66 of file G4VRangeToEnergyConverter.cc.
68 if (
this == &right)
return *
this;
86 for (
size_t i=0; i<=size_t(
TotBin); i++) {
88 aVector->PutValue(i,Value);
106 for (
size_t i=0; i<=size_t(
TotBin); i++) {
108 rangeVector->PutValue(i,Value);
G4PhysicsLogVector G4RangeVector
G4PhysicsLogVector G4LossVector
void insert(G4PhysicsVector *)
G4LossTable * theLossTable
static size_t GetNumberOfElements()
G4PhysicsTable G4LossTable
std::vector< G4RangeVector *> fRangeVectorStore
static G4double MaxEnergyCut
const G4ParticleDefinition * theParticle
static G4double LowestEnergy
◆ operator==()
◆ Reset()
void G4VRangeToEnergyConverter::Reset |
( |
| ) |
|
|
virtual |
◆ SetEnergyRange()
void G4VRangeToEnergyConverter::SetEnergyRange |
( |
G4double |
lowedge, |
|
|
G4double |
highedge |
|
) |
| |
|
static |
Definition at line 223 of file G4VRangeToEnergyConverter.cc.
227 if ( (lowedge<0.0)||(highedge<=lowedge) ){
229 G4cerr <<
"Error in G4VRangeToEnergyConverter::SetEnergyRange";
230 G4cerr <<
" : illegal energy range" <<
"(" << lowedge/
GeV;
233 G4Exception(
"G4VRangeToEnergyConverter::SetEnergyRange()",
static G4double HighestEnergy
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
G4GLOB_DLL std::ostream G4cerr
static G4double LowestEnergy
◆ SetMaxEnergyCut()
void G4VRangeToEnergyConverter::SetMaxEnergyCut |
( |
G4double |
value | ) |
|
|
static |
◆ SetVerboseLevel()
void G4VRangeToEnergyConverter::SetVerboseLevel |
( |
G4int |
value | ) |
|
|
inline |
◆ fMaxEnergyCut
G4double G4VRangeToEnergyConverter::fMaxEnergyCut |
|
protected |
◆ fRangeVectorStore
std::vector< G4RangeVector* > G4VRangeToEnergyConverter::fRangeVectorStore |
|
protected |
◆ HighestEnergy
G4double G4VRangeToEnergyConverter::HighestEnergy = 100.0e6*MeV |
|
staticprotected |
◆ LowestEnergy
G4double G4VRangeToEnergyConverter::LowestEnergy = 0.99e-3*MeV |
|
staticprotected |
◆ MaxEnergyCut
G4double G4VRangeToEnergyConverter::MaxEnergyCut = 10.0*GeV |
|
staticprotected |
◆ NumberOfElements
G4int G4VRangeToEnergyConverter::NumberOfElements |
|
protected |
◆ theLossTable
◆ theParticle
◆ TotBin
const G4int G4VRangeToEnergyConverter::TotBin |
|
protected |
◆ verboseLevel
G4int G4VRangeToEnergyConverter::verboseLevel |
|
private |
The documentation for this class was generated from the following files: