159       G4cout << 
"G4EmCalculator::GetDEDX: E(MeV)= " << kinEnergy/
MeV 
  160              << 
" DEDX(MeV/mm)= " << res*
mm/
MeV 
  164              << 
" isIon= " << 
isIon 
  192       G4cout << 
"G4EmCalculator::GetRange: E(MeV)= " << kinEnergy/
MeV 
  193              << 
" range(mm)= " << res/
mm 
  212     ed << 
"G4EmCalculator::GetCSDARange: CSDA table is not built; "  
  213        << 
" use UI command: /process/eLoss/CSDARange true";
 
  214     G4Exception(
"G4EmCalculator::GetCSDARange", 
"em0077",
 
  223       G4cout << 
"G4EmCalculator::GetRange: E(MeV)= " << kinEnergy/
MeV 
  224              << 
" range(mm)= " << res/
mm 
  245       G4cout << 
"G4EmCalculator::GetRange: E(MeV)= " << kinEnergy/
MeV 
  246              << 
" range(mm)= " << res/
mm 
  300       G4cout << 
"G4EmCalculator::GetKinEnergy: Range(mm)= " << range/
mm 
  301              << 
" KinE(MeV)= " << res/
MeV 
  342       G4cout << 
"G4EmCalculator::GetXSPerVolume: E(MeV)= " << kinEnergy/
MeV 
  343              << 
" cross(cm-1)= " << res*
cm 
  347         G4cout << 
"  idx= " << idx << 
"  Escaled((MeV)= "  
  395   if(x > 0.0) { res = 1.0/x; }
 
  397     G4cout << 
"G4EmCalculator::GetMeanFreePath: E(MeV)= " << kinEnergy/
MeV 
  398            << 
" MFP(mm)= " << res/
mm 
  441   G4cout << 
"### G4EmCalculator: Inverse Range Table for "  
  460            << 
" e(MeV)= " << kinEnergy/
MeV << 
"  cut(MeV)= " << cut/
MeV 
  471                  << 
" Escaled(MeV)= " << escaled;
 
  475         if(
verbose > 1) { 
G4cout <<  
" no basePart E(MeV)= " << kinEnergy << 
" "; }
 
  479                << 
" DEDX(MeV*cm^2/g)= " 
  500           G4cout << 
"At boundary energy(MeV)= " << eth/
MeV 
  501                  << 
" DEDX(MeV/mm)= " << res1*
mm/
MeV 
  509         if(res1 > 0.0 && escaled > 0.0) {
 
  510           res *= (1.0 + (res0/res1 - 1.0)*eth/escaled);
 
  527           G4cout << 
"After Corrections: DEDX(MeV/mm)= " << res*
mm/
MeV 
  535       G4cout << 
"Sum: E(MeV)= " << kinEnergy/
MeV 
  536              << 
" DEDX(MeV/mm)= " << res*
mm/
MeV 
  538              << 
" cut(MeV)= " << cut/
MeV 
  542              << 
" isIon=" << 
isIon 
  562     const std::vector<G4VEnergyLossProcess*> vel =
 
  569     for(
G4int i=0; i<
n; ++i) {
 
  575           dedx += 
ComputeDEDX(kinEnergy,part,(vel[i])->GetProcessName(),mat,cut);
 
  636            << 
" NuclearDEDX(MeV/mm)= " << res*
mm/
MeV 
  637            << 
" NuclearDEDX(MeV*cm^2/g)= " 
  677         G4cout << 
"G4EmCalculator::ComputeXSPerVolume: E(MeV)= " << kinEnergy/
MeV 
  678                << 
" cross(cm-1)= " << res*
cm 
  679                << 
" cut(keV)= " << cut/
keV 
  727                << 
" cross(barn)= " << res/
barn 
  729                << 
" Z= " <<  Z << 
" A= " << A/(
g/
mole) << 
" g/mole" 
  762   if(res > 0.0) { res = 1.0/res; }
 
  795   if(x > 0.0) { mfp = 1.0/x; }
 
  798            << 
" MFP(mm)= " << mfp/
mm 
  826     ConvertRangeToEnergy(part, mat, range);
 
  911       G4cout << 
"### WARNING: G4EmCalculator::FindParticle fails to find "  
  936       G4cout << 
"### WARNING: G4EmCalculator::FindMaterial fails to find "  
  948   if(reg != 
"" && reg != 
"world") {
 
  975       size_t nr = store->size();
 
  977         for(
size_t i=0; i<nr; ++i) {
 
  979             material, ((*store)[i])->GetProductionCuts());
 
  980           if(couple) { 
break; }
 
  987     ed << 
"G4EmCalculator::FindCouple: fail for material " << material
 
  989     G4Exception(
"G4EmCalculator::FindCouple", 
"em0078",
 
  999   if(!material) 
return false;
 
 1095     G4cout << 
"G4EmCalculator::FindEmModel WARNING: no particle defined"  
 1105     G4cout << 
"## G4EmCalculator::FindEmModel for " << partname
 
 1107            << 
") and " << processName << 
" at E(MeV)= " << scaledEnergy 
 
 1109     if(p != part) { 
G4cout << 
"  GenericIon is the base particle" << 
G4endl; }
 
 1201   const std::vector<G4VEnergyLossProcess*> v = 
 
 1204   for(
G4int i=0; i<
n; ++i) {
 
 1205     if((v[i])->GetProcessName() == processName) {
 
 1223   const std::vector<G4VEmProcess*> v = 
 
 1226   for(
G4int i=0; i<
n; ++i) {
 
 1227     if((v[i])->GetProcessName() == processName) {
 
 1245   const std::vector<G4VMultipleScattering*> v = 
 
 1248   for(
G4int i=0; i<
n; ++i) {
 
 1249     if((v[i])->GetProcessName() == processName) {
 
 1269   for(
G4int i=0; i<
n; ++i) {
 
 1270     if((*pv)[i] == proc) {
 
G4PhysicsTable * LambdaTable() const 
 
G4VEmProcess * FindDiscreteProcess(const G4ParticleDefinition *, const G4String &processName)
 
G4ProductionCuts * GetProductionCuts() const 
 
const G4PhysicsTable * currentLambda
 
G4double LowEnergyLimit() const 
 
void FindLambdaTable(const G4ParticleDefinition *, const G4String &processName, G4double kinEnergy)
 
virtual G4double CrossSectionPerVolume(const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
const G4ParticleDefinition * theGenericIon
 
G4VEmModel * SelectModel(G4double kinEnergy, size_t idx)
 
G4Region * GetRegion(const G4String &name, G4bool verbose=true) const 
 
virtual void InitialiseForElement(const G4ParticleDefinition *, G4int Z)
 
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
 
static G4LossTableManager * Instance()
 
virtual void CorrectionsAlongStep(const G4MaterialCutsCouple *, const G4DynamicParticle *, G4double &eloss, G4double &niel, G4double length)
 
void SetDynamicMassCharge(G4double massratio, G4double charge2ratio)
 
std::ostringstream G4ExceptionDescription
 
G4double GetDEDX(const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
 
const G4Material * FindMaterial(const G4String &)
 
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
 
std::vector< const G4MaterialCutsCouple * > localCouples
 
const G4ParticleDefinition * currentParticle
 
G4PhysicsTable * RangeTableForLoss() const 
 
G4double EffectiveChargeSquareRatio(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
const G4String & GetName() const 
 
void PrintRangeTable(const G4ParticleDefinition *)
 
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
 
virtual G4double GetShellIonisationCrossSectionPerAtom(const G4ParticleDefinition *, G4int Z, G4AtomicShellEnumerator shell, G4double kinE, const G4Material *mat=0)=0
 
G4bool UpdateCouple(const G4Material *, G4double cut)
 
G4double GetDensity() const 
 
G4double ComputeTotalDEDX(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *, G4double cut=DBL_MAX)
 
G4double ComputeElectronicDEDX(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *mat, G4double cut=DBL_MAX)
 
G4double EffectiveChargeCorrection(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
G4ionEffectiveCharge * ionEffCharge
 
const G4MaterialCutsCouple * currentCouple
 
G4double GetCrossSectionPerVolume(G4double kinEnergy, const G4ParticleDefinition *, const G4String &processName, const G4Material *, const G4Region *r=0)
 
G4double GetMeanFreePath(G4double kinEnergy, const G4ParticleDefinition *, const G4String &processName, const G4Material *, const G4Region *r=0)
 
void PrintInverseRangeTable(const G4ParticleDefinition *)
 
G4double GetRange(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *, const G4Region *r=0)
 
G4ProcessManager * GetProcessManager() const 
 
const std::vector< G4VEmProcess * > & GetEmProcessVector()
 
G4DynamicParticle dynParticle
 
const G4String & GetParticleName() const 
 
G4double ComputeShellIonisationCrossSectionPerAtom(const G4String &part, G4int Z, G4AtomicShellEnumerator shell, G4double kinEnergy, const G4Material *mat=0)
 
G4double GetCSDARange(const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
 
G4double GetDEDX(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *, const G4Region *r=0)
 
static const G4double reg
 
static G4RegionStore * GetInstance()
 
G4double GetCSDARange(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *, const G4Region *r=0)
 
G4double GetShellIonisationCrossSectionPerAtom(const G4String &part, G4int Z, G4AtomicShellEnumerator shell, G4double kinEnergy)
 
G4PhysicsTable * LambdaTable() const 
 
G4VEnergyLossProcess * FindEnergyLossProcess(const G4ParticleDefinition *)
 
G4IonTable * GetIonTable() const 
 
virtual void InitialiseForMaterial(const G4ParticleDefinition *, const G4Material *)
 
G4GLOB_DLL std::ostream G4cout
 
G4VEnergyLossProcess * currentProcess
 
const G4MaterialCutsCouple * FindCouple(const G4Material *, const G4Region *r=0)
 
G4PhysicsTable * DEDXTable() const 
 
G4double ComputeDEDX(G4double kinEnergy, const G4ParticleDefinition *, const G4String &processName, const G4Material *, G4double cut=DBL_MAX)
 
G4double NuclearDEDX(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy, G4bool fluct=true)
 
const G4ParticleDefinition * baseParticle
 
G4EmCorrections * EmCorrections()
 
G4bool FindEmModel(const G4ParticleDefinition *, const G4String &processName, G4double kinEnergy)
 
G4double ComputeNuclearDEDX(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *)
 
G4double GetRangeFromRestricteDEDX(G4double kinEnergy, const G4ParticleDefinition *, const G4Material *, const G4Region *r=0)
 
const G4String & GetParticleType() const 
 
const G4ParticleDefinition * BaseParticle() const 
 
static const G4double A[nN]
 
G4double GetEnergy(const G4ParticleDefinition *aParticle, G4double range, const G4MaterialCutsCouple *couple)
 
const G4String & GetProcessName() const 
 
G4bool ActiveForParticle(const G4ParticleDefinition *part, G4VProcess *proc)
 
const std::vector< G4VEnergyLossProcess * > & GetEnergyLossProcessVector()
 
G4VMultipleScattering * FindMscProcess(const G4ParticleDefinition *, const G4String &processName)
 
virtual G4double ComputeCrossSectionPerAtom(const G4ParticleDefinition *, G4double kinEnergy, G4double Z, G4double A=0., G4double cutEnergy=0.0, G4double maxEnergy=DBL_MAX)
 
void SetKineticEnergy(G4double aEnergy)
 
virtual G4double ComputeShellIonisationCrossSectionPerAtom(const G4ParticleDefinition *, G4int Z, G4AtomicShellEnumerator shell, G4double kinE, const G4Material *mat=0)=0
 
G4double GetRangeFromRestricteDEDX(const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
 
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
 
std::vector< const G4Material * > localMaterials
 
G4VEnergyLossProcess * FindEnLossProcess(const G4ParticleDefinition *, const G4String &processName)
 
virtual G4double GetChargeSquareRatio(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
G4VEnergyLossProcess * GetEnergyLossProcess(const G4ParticleDefinition *)
 
static G4ProductionCutsTable * GetProductionCutsTable()
 
static G4GenericIon * GenericIon()
 
virtual G4double ComputeDEDXPerVolume(const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=DBL_MAX)
 
G4VEmModel * SelectModelForMaterial(G4double kinEnergy, size_t &idxRegion) const 
 
const G4ParticleDefinition * FindParticle(const G4String &)
 
G4PhysicsTable * InverseRangeTable() const 
 
G4double GetPDGMass() const 
 
const G4MaterialCutsCouple * GetMaterialCutsCouple(G4int i) const 
 
static G4ParticleTable * GetParticleTable()
 
G4double ComputeMeanFreePath(G4double kinEnergy, const G4ParticleDefinition *, const G4String &processName, const G4Material *, G4double cut=0.0)
 
G4double GetKinEnergy(G4double range, const G4ParticleDefinition *, const G4Material *, const G4Region *r=0)
 
const G4Region * FindRegion(const G4String &)
 
G4String currentMaterialName
 
const G4ParticleDefinition * FindIon(G4int Z, G4int A)
 
G4String currentProcessName
 
G4String currentParticleName
 
G4double ComputeCrossSectionPerVolume(G4double kinEnergy, const G4ParticleDefinition *, const G4String &processName, const G4Material *, G4double cut=0.0)
 
G4double ComputeGammaAttenuationLength(G4double kinEnergy, const G4Material *)
 
G4bool GetProcessActivation(G4VProcess *aProcess) const 
 
G4double ComputeCrossSectionPerAtom(G4double kinEnergy, const G4ParticleDefinition *, const G4String &processName, G4double Z, G4double A, G4double cut=0.0)
 
const G4String & GetName() const 
 
void SetVerbose(G4int val)
 
void PrintDEDXTable(const G4ParticleDefinition *)
 
G4VAtomDeexcitation * AtomDeexcitation()
 
const G4ParticleDefinition * lambdaParticle
 
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
 
G4double ComputeEnergyCutFromRangeCut(G4double range, const G4ParticleDefinition *, const G4Material *)
 
const G4Material * currentMaterial
 
G4VEmModel * currentModel
 
G4double GetPDGCharge() const 
 
G4bool UpdateParticle(const G4ParticleDefinition *, G4double kinEnergy)
 
G4double GetRange(const G4ParticleDefinition *aParticle, G4double kineticEnergy, const G4MaterialCutsCouple *couple)
 
G4LossTableManager * manager
 
const std::vector< G4VMultipleScattering * > & GetMultipleScatteringVector()
 
G4VEmModel * SelectModelForMaterial(G4double kinEnergy, size_t &idx) const 
 
G4ProcessVector * GetProcessList() const