Geant4  10.02.p03
G4EmCorrections Class Reference

#include <G4EmCorrections.hh>

Collaboration diagram for G4EmCorrections:

Public Member Functions

 G4EmCorrections (G4int verb)
 
virtual ~G4EmCorrections ()
 
G4double HighOrderCorrections (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy, G4double cutEnergy)
 
G4double IonHighOrderCorrections (const G4ParticleDefinition *, const G4MaterialCutsCouple *, G4double kineticEnergy)
 
G4double ComputeIonCorrections (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
G4double IonBarkasCorrection (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
G4double Bethe (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
G4double SpinCorrection (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
G4double KShellCorrection (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
G4double LShellCorrection (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
G4double ShellCorrection (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
G4double ShellCorrectionSTD (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
G4double DensityCorrection (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
G4double BarkasCorrection (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
G4double BlochCorrection (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
G4double MottCorrection (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
G4double NuclearDEDX (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy, G4bool fluct=true)
 
void AddStoppingData (G4int Z, G4int A, const G4String &materialName, G4PhysicsVector *dVector)
 
void InitialiseForNewRun ()
 
G4double EffectiveChargeCorrection (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
G4double GetParticleCharge (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
G4double EffectiveChargeSquareRatio (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
void SetIonisationModels (G4VEmModel *m1=0, G4VEmModel *m2=0)
 
G4int GetNumberOfStoppingVectors ()
 
void SetVerbose (G4int verb)
 

Private Member Functions

void Initialise ()
 
void BuildCorrectionVector ()
 
void SetupKinematics (const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
 
G4double KShell (G4double theta, G4double eta)
 
G4double LShell (G4double theta, G4double eta)
 
G4int Index (G4double x, G4double *y, G4int n)
 
G4double Value (G4double xv, G4double x1, G4double x2, G4double y1, G4double y2)
 
G4double Value2 (G4double xv, G4double yv, G4double x1, G4double x2, G4double y1, G4double y2, G4double z11, G4double z21, G4double z12, G4double z22)
 
G4double NuclearStoppingPower (G4double e, G4double z1, G4double z2, G4double m1, G4double m2)
 
G4EmCorrectionsoperator= (const G4EmCorrections &right)
 
 G4EmCorrections (const G4EmCorrections &)
 

Private Attributes

G4double ed [104]
 
G4double a [104]
 
G4double theZieglerFactor
 
G4double alpha2
 
G4bool lossFlucFlag
 
G4int verbose
 
G4int nK
 
G4int nL
 
G4int nEtaK
 
G4int nEtaL
 
G4double COSEB [14]
 
G4double COSXI [14]
 
G4double ZD [11]
 
G4double TheK [20]
 
G4double SK [20]
 
G4double TK [20]
 
G4double UK [20]
 
G4double VK [20]
 
G4double ZK [20]
 
G4double TheL [26]
 
G4double SL [26]
 
G4double TL [26]
 
G4double UL [26]
 
G4double VL [26]
 
G4double Eta [29]
 
G4double CK [20][29]
 
G4double CL [26][28]
 
G4double HM [53]
 
G4double HN [31]
 
G4double Z23 [100]
 
G4LPhysicsFreeVectorBarkasCorr
 
G4LPhysicsFreeVectorThetaK
 
G4LPhysicsFreeVectorThetaL
 
std::vector< const G4Material * > currmat
 
std::map< G4int, std::vector< G4double > > thcorr
 
size_t ncouples
 
const G4ParticleDefinitionparticle
 
const G4ParticleDefinitioncurParticle
 
const G4Materialmaterial
 
const G4MaterialcurMaterial
 
const G4ElementVectortheElementVector
 
const G4doubleatomDensity
 
G4int numberOfElements
 
G4double kinEnergy
 
G4double mass
 
G4double massFactor
 
G4double formfact
 
G4double eth
 
G4double tau
 
G4double gamma
 
G4double bg2
 
G4double beta2
 
G4double beta
 
G4double ba2
 
G4double tmax
 
G4double charge
 
G4double q2
 
G4double eCorrMin
 
G4double eCorrMax
 
G4int nbinCorr
 
G4ionEffectiveCharge effCharge
 
G4NistManagernist
 
G4IonTableionTable
 
G4VEmModelionLEModel
 
G4VEmModelionHEModel
 
G4int nIons
 
G4int idx
 
G4int currentZ
 
std::vector< G4intZion
 
std::vector< G4intAion
 
std::vector< G4StringmaterialName
 
std::vector< const G4ParticleDefinition * > ionList
 
std::vector< const G4Material * > materialList
 
std::vector< G4PhysicsVector * > stopData
 
G4PhysicsVectorcurVector
 

Static Private Attributes

static const G4double inveplus = 1.0/CLHEP::eplus
 

Detailed Description

Definition at line 71 of file G4EmCorrections.hh.

Constructor & Destructor Documentation

◆ G4EmCorrections() [1/2]

G4EmCorrections::G4EmCorrections ( G4int  verb)

Definition at line 83 of file G4EmCorrections.cc.

84 {
85  particle = nullptr;
86  curParticle= nullptr;
87  material = nullptr;
88  curMaterial= nullptr;
89  curVector = nullptr;
90  kinEnergy = 0.0;
91  ionLEModel = nullptr;
92  ionHEModel = nullptr;
93  nIons = 0;
94  verbose = verb;
95  ncouples = 0;
96  massFactor = 1.0;
97  eth = 2.0*MeV;
98  nbinCorr = 20;
99  eCorrMin = 25.*keV;
100  eCorrMax = 250.*MeV;
103  BarkasCorr = ThetaK = ThetaL = 0;
104  Initialise();
105 }
static const double MeV
Definition: G4SIunits.hh:211
G4VEmModel * ionLEModel
G4LPhysicsFreeVector * ThetaK
const G4Material * material
G4NistManager * nist
static G4NistManager * Instance()
G4LPhysicsFreeVector * ThetaL
G4VEmModel * ionHEModel
G4IonTable * GetIonTable() const
const G4ParticleDefinition * particle
const G4ParticleDefinition * curParticle
static G4ParticleTable * GetParticleTable()
G4IonTable * ionTable
G4LPhysicsFreeVector * BarkasCorr
static const double keV
Definition: G4SIunits.hh:213
const G4Material * curMaterial
G4PhysicsVector * curVector
Here is the call graph for this function:

◆ ~G4EmCorrections()

G4EmCorrections::~G4EmCorrections ( )
virtual

Definition at line 109 of file G4EmCorrections.cc.

110 {
111  for(G4int i=0; i<nIons; ++i) {delete stopData[i];}
112  delete BarkasCorr;
113  delete ThetaK;
114  delete ThetaL;
115 }
G4LPhysicsFreeVector * ThetaK
int G4int
Definition: G4Types.hh:78
G4LPhysicsFreeVector * ThetaL
std::vector< G4PhysicsVector * > stopData
G4LPhysicsFreeVector * BarkasCorr

◆ G4EmCorrections() [2/2]

G4EmCorrections::G4EmCorrections ( const G4EmCorrections )
private

Member Function Documentation

◆ AddStoppingData()

void G4EmCorrections::AddStoppingData ( G4int  Z,
G4int  A,
const G4String materialName,
G4PhysicsVector dVector 
)

Definition at line 797 of file G4EmCorrections.cc.

800 {
801  G4int i = 0;
802  for(; i<nIons; ++i) {
803  if(Z == Zion[i] && A == Aion[i] && mname == materialName[i]) break;
804  }
805  if(i == nIons) {
806  Zion.push_back(Z);
807  Aion.push_back(A);
808  materialName.push_back(mname);
809  materialList.push_back(0);
810  ionList.push_back(0);
811  stopData.push_back(dVector);
812  nIons++;
813  if(verbose>1) {
814  G4cout << "AddStoppingData Z= " << Z << " A= " << A << " " << mname
815  << " idx= " << i << G4endl;
816  }
817  }
818 }
std::vector< G4int > Aion
int G4int
Definition: G4Types.hh:78
G4GLOB_DLL std::ostream G4cout
double A(double temperature)
Float_t Z
std::vector< const G4Material * > materialList
std::vector< const G4ParticleDefinition * > ionList
std::vector< G4PhysicsVector * > stopData
#define G4endl
Definition: G4ios.hh:61
std::vector< G4int > Zion
Here is the caller graph for this function:

◆ BarkasCorrection()

G4double G4EmCorrections::BarkasCorrection ( const G4ParticleDefinition p,
const G4Material mat,
G4double  kineticEnergy 
)

Definition at line 582 of file G4EmCorrections.cc.

585 {
586  // . Z^3 Barkas effect in the stopping power of matter for charged particles
587  // J.C Ashley and R.H.Ritchie
588  // Physical review B Vol.5 No.7 1 April 1972 pp. 2393-2397
589  // valid for kineticEnergy > 0.5 MeV
590 
591  SetupKinematics(p, mat, e);
592  G4double BarkasTerm = 0.0;
593 
594  for (G4int i = 0; i<numberOfElements; ++i) {
595 
596  G4double Z = (*theElementVector)[i]->GetZ();
597  G4int iz = G4lrint(Z);
598  if(iz == 47) {
599  BarkasTerm += atomDensity[i]*0.006812*G4Exp(-G4Log(beta)*0.9);
600  } else if(iz >= 64) {
601  BarkasTerm += atomDensity[i]*0.002833*G4Exp(-G4Log(beta)*1.2);
602  } else {
603 
604  G4double X = ba2 / Z;
605  G4double b = 1.3;
606  if(1 == iz) {
607  if(material->GetName() == "G4_lH2") { b = 0.6; }
608  else { b = 1.8; }
609  }
610  else if(2 == iz) { b = 0.6; }
611  else if(10 >= iz) { b = 1.8; }
612  else if(17 >= iz) { b = 1.4; }
613  else if(18 == iz) { b = 1.8; }
614  else if(25 >= iz) { b = 1.4; }
615  else if(50 >= iz) { b = 1.35;}
616 
617  G4double W = b/std::sqrt(X);
618 
619  G4double val = BarkasCorr->Value(W);
620  if(W > BarkasCorr->Energy(46)) {
621  val *= BarkasCorr->Energy(46)/W;
622  }
623  // G4cout << "i= " << i << " b= " << b << " W= " << W
624  // << " Z= " << Z << " X= " << X << " val= " << val<< G4endl;
625  BarkasTerm += val*atomDensity[i] / (std::sqrt(Z*X)*X);
626  }
627  }
628 
629  BarkasTerm *= 1.29*charge/material->GetTotNbOfAtomsPerVolume();
630 
631  // temporary protection
632  //if(charge < -7.0 ) { BarkasTerm *= (-7.0/charge); }
633 
634  return BarkasTerm;
635 }
G4double GetTotNbOfAtomsPerVolume() const
Definition: G4Material.hh:209
const G4Material * material
int G4int
Definition: G4Types.hh:78
Float_t X
Float_t Z
G4double iz
Definition: TRTMaterials.hh:39
G4double Value(G4double theEnergy, size_t &lastidx) const
G4double G4Log(G4double x)
Definition: G4Log.hh:230
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:183
void SetupKinematics(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
const G4double * atomDensity
int G4lrint(double ad)
Definition: templates.hh:163
G4LPhysicsFreeVector * BarkasCorr
G4double Energy(size_t index) const
double G4double
Definition: G4Types.hh:76
const G4String & GetName() const
Definition: G4Material.hh:178
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Bethe()

G4double G4EmCorrections::Bethe ( const G4ParticleDefinition p,
const G4Material mat,
G4double  kineticEnergy 
)

Definition at line 256 of file G4EmCorrections.cc.

259 {
260  SetupKinematics(p, mat, e);
262  G4double eexc2 = eexc*eexc;
263  G4double dedx = 0.5*G4Log(2.0*electron_mass_c2*bg2*tmax/eexc2)-beta2;
264  return dedx;
265 }
G4IonisParamMat * GetIonisation() const
Definition: G4Material.hh:226
const G4Material * material
G4double GetMeanExcitationEnergy() const
float electron_mass_c2
Definition: hepunit.py:274
G4double G4Log(G4double x)
Definition: G4Log.hh:230
void SetupKinematics(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:

◆ BlochCorrection()

G4double G4EmCorrections::BlochCorrection ( const G4ParticleDefinition p,
const G4Material mat,
G4double  kineticEnergy 
)

Definition at line 639 of file G4EmCorrections.cc.

642 {
643  SetupKinematics(p, mat, e);
644 
645  G4double y2 = q2/ba2;
646 
647  G4double term = 1.0/(1.0 + y2);
648  G4double del;
649  G4double j = 1.0;
650  do {
651  j += 1.0;
652  del = 1.0/(j* (j*j + y2));
653  term += del;
654  // Loop checking, 03-Aug-2015, Vladimir Ivanchenko
655  } while (del > 0.01*term);
656 
657  G4double res = -y2*term;
658  // temporary protection
659  //if(q2 > 49. && res < -0.2) { res = -0.2; }
660 
661  return res;
662 }
Double_t y2[nxs]
void SetupKinematics(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ BuildCorrectionVector()

void G4EmCorrections::BuildCorrectionVector ( )
private

Definition at line 822 of file G4EmCorrections.cc.

823 {
824  if(!ionLEModel || !ionHEModel) {
825  return;
826  }
827 
829  G4int Z = Zion[idx];
830  if(currentZ != Z) {
831  ion = ionTable->GetIon(Z, Aion[idx], 0);
832  }
833  //G4cout << "BuildCorrectionVector: idx= " << idx << " Z= " << Z
834  // << " curZ= " << currentZ << G4endl;
835 
836  // G4double A = nist->GetAtomicMassAmu(Z);
839 
841  G4double massRatio = proton_mass_c2/ion->GetPDGMass();
842 
843  if(verbose>1) {
844  G4cout << "BuildCorrectionVector: Stopping for "
845  << curParticle->GetParticleName() << " in "
846  << materialName[idx] << " Ion Z= " << Z << " A= " << A
847  << " massRatio= " << massRatio << G4endl;
848  }
849 
850  G4PhysicsLogVector* vv =
852  vv->SetSpline(true);
853  G4double e, eion, dedx, dedx1;
854  G4double eth0 = v->Energy(0);
855  G4double escal = eth/massRatio;
856  G4double qe =
858  G4double dedxt =
860  G4double dedx1t =
863  G4double rest = escal*(dedxt - dedx1t);
864  //G4cout << "Escal(MeV)= "<<escal<<" dedxt0= " <<dedxt
865  // << " dedxt1= " << dedx1t << G4endl;
866 
867  for(G4int i=0; i<=nbinCorr; ++i) {
868  e = vv->Energy(i);
869  escal = e/massRatio;
870  eion = escal/A;
871  if(eion <= eth0) {
872  dedx = v->Value(eth0)*std::sqrt(eion/eth0);
873  } else {
874  dedx = v->Value(eion);
875  }
877  if(e <= eth) {
878  dedx1 = ionLEModel->ComputeDEDXPerVolume(curMaterial, p, e, e)*qe;
879  } else {
880  dedx1 = ionHEModel->ComputeDEDXPerVolume(curMaterial, p, e, e)*qe +
881  ComputeIonCorrections(curParticle, curMaterial, escal) + rest/escal;
882  }
883  vv->PutValue(i, dedx/dedx1);
884  if(verbose>1) {
885  G4cout << " E(meV)= " << e/MeV << " Correction= " << dedx/dedx1
886  << " " << dedx << " " << dedx1
887  << " massF= " << massFactor << G4endl;
888  }
889  }
890  delete v;
891  ionList[idx] = ion;
892  stopData[idx] = vv;
893  if(verbose>1) { G4cout << "End data set " << G4endl; }
894 }
static const double MeV
Definition: G4SIunits.hh:211
G4VEmModel * ionLEModel
G4ParticleDefinition * GetIon(G4int Z, G4int A, G4int lvl=0)
Definition: G4IonTable.cc:491
G4double EffectiveChargeSquareRatio(const G4ParticleDefinition *p, const G4Material *material, G4double kineticEnergy)
std::vector< G4int > Aion
int G4int
Definition: G4Types.hh:78
G4VEmModel * ionHEModel
void SetSpline(G4bool)
const G4String & GetParticleName() const
G4GLOB_DLL std::ostream G4cout
double A(double temperature)
Float_t Z
void PutValue(size_t index, G4double theValue)
std::vector< G4String > materialName
float proton_mass_c2
Definition: hepunit.py:275
const G4ParticleDefinition * curParticle
static G4GenericIon * GenericIon()
Definition: G4GenericIon.cc:93
virtual G4double ComputeDEDXPerVolume(const G4Material *, const G4ParticleDefinition *, G4double kineticEnergy, G4double cutEnergy=DBL_MAX)
Definition: G4VEmModel.cc:249
std::vector< const G4ParticleDefinition * > ionList
G4IonTable * ionTable
std::vector< G4PhysicsVector * > stopData
#define G4endl
Definition: G4ios.hh:61
G4ionEffectiveCharge effCharge
G4double Energy(size_t index) const
G4double ComputeIonCorrections(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
double G4double
Definition: G4Types.hh:76
const G4Material * curMaterial
std::vector< G4int > Zion
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ComputeIonCorrections()

G4double G4EmCorrections::ComputeIonCorrections ( const G4ParticleDefinition p,
const G4Material mat,
G4double  kineticEnergy 
)

Definition at line 174 of file G4EmCorrections.cc.

177 {
178  // . Z^3 Barkas effect in the stopping power of matter for charged particles
179  // J.C Ashley and R.H.Ritchie
180  // Physical review B Vol.5 No.7 1 April 1972 pagg. 2393-2397
181  // and ICRU49 report
182  // valid for kineticEnergy < 0.5 MeV
183  // Other corrections from S.P.Ahlen Rev. Mod. Phys., Vol 52, No1, 1980
184  SetupKinematics(p, mat, e);
185  if(tau <= 0.0) { return 0.0; }
186 
187  G4double Barkas = BarkasCorrection (p, mat, e);
188  G4double Bloch = BlochCorrection (p, mat, e);
189  G4double Mott = MottCorrection (p, mat, e);
190 
191  G4double sum = 2.0*(Barkas*(charge - 1.0)/charge + Bloch) + Mott;
192 
193  if(verbose > 1) {
194  G4cout << "EmCorrections: E(MeV)= " << e/MeV << " Barkas= " << Barkas
195  << " Bloch= " << Bloch << " Mott= " << Mott
196  << " Sum= " << sum << G4endl;
197  }
199 
200  if(verbose > 1) { G4cout << " Sum= " << sum << G4endl; }
201  return sum;
202 }
static const double MeV
Definition: G4SIunits.hh:211
int twopi_mc2_rcl2
Definition: hepunit.py:294
const G4Material * material
G4double MottCorrection(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4double BlochCorrection(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4GLOB_DLL std::ostream G4cout
G4double BarkasCorrection(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
void SetupKinematics(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4double GetElectronDensity() const
Definition: G4Material.hh:217
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ DensityCorrection()

G4double G4EmCorrections::DensityCorrection ( const G4ParticleDefinition p,
const G4Material mat,
G4double  kineticEnergy 
)

Definition at line 556 of file G4EmCorrections.cc.

559 {
560  SetupKinematics(p, mat, e);
561 
567 
568  G4double dedx = 0.0;
569 
570  // density correction
572  if ( x >= x0den ) {
573  dedx = twoln10*x - cden ;
574  if ( x < x1den ) dedx += aden*G4Exp(G4Log(x1den-x)*mden) ;
575  }
576 
577  return dedx;
578 }
G4IonisParamMat * GetIonisation() const
Definition: G4Material.hh:226
const G4Material * material
G4double GetAdensity() const
G4double GetCdensity() const
G4double G4Log(G4double x)
Definition: G4Log.hh:230
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:183
void SetupKinematics(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4double GetX1density() const
static const G4double twoln10
double G4double
Definition: G4Types.hh:76
G4double GetMdensity() const
G4double GetX0density() const
Here is the call graph for this function:

◆ EffectiveChargeCorrection()

G4double G4EmCorrections::EffectiveChargeCorrection ( const G4ParticleDefinition p,
const G4Material mat,
G4double  kineticEnergy 
)

Definition at line 748 of file G4EmCorrections.cc.

751 {
752  G4double factor = 1.0;
753  if(p->GetPDGCharge() <= 2.5*CLHEP::eplus || nIons <= 0) { return factor; }
754  /*
755  if(verbose > 1) {
756  G4cout << "EffectiveChargeCorrection: " << p->GetParticleName()
757  << " in " << mat->GetName()
758  << " ekin(MeV)= " << ekin/MeV << G4endl;
759  }
760  */
761  if(p != curParticle || mat != curMaterial) {
762  curParticle = p;
763  curMaterial = mat;
764  curVector = 0;
765  currentZ = p->GetAtomicNumber();
766  if(verbose > 1) {
767  G4cout << "G4EmCorrections::EffectiveChargeCorrection: Zion= "
768  << currentZ << " Aion= " << p->GetPDGMass()/amu_c2 << G4endl;
769  }
771  idx = -1;
772 
773  for(G4int i=0; i<nIons; ++i) {
774  if(materialList[i] == mat && currentZ == Zion[i]) {
775  idx = i;
776  break;
777  }
778  }
779  // G4cout << " idx= " << idx << " dz= " << G4endl;
780  if(idx >= 0) {
781  if(!ionList[idx]) { BuildCorrectionVector(); }
782  if(ionList[idx]) { curVector = stopData[idx]; }
783  } else { return factor; }
784  }
785  if(curVector) {
786  factor = curVector->Value(ekin*massFactor);
787  if(verbose > 1) {
788  G4cout << "E= " << ekin << " factor= " << factor << " massfactor= "
789  << massFactor << G4endl;
790  }
791  }
792  return factor;
793 }
int G4int
Definition: G4Types.hh:78
Float_t mat
G4GLOB_DLL std::ostream G4cout
float proton_mass_c2
Definition: hepunit.py:275
G4double Value(G4double theEnergy, size_t &lastidx) const
const G4ParticleDefinition * curParticle
std::vector< const G4Material * > materialList
G4int GetAtomicNumber() const
static const G4double factor
void BuildCorrectionVector()
std::vector< const G4ParticleDefinition * > ionList
static const double eplus
std::vector< G4PhysicsVector * > stopData
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
const G4Material * curMaterial
float amu_c2
Definition: hepunit.py:277
G4PhysicsVector * curVector
G4double GetPDGCharge() const
std::vector< G4int > Zion
Here is the call graph for this function:
Here is the caller graph for this function:

◆ EffectiveChargeSquareRatio()

G4double G4EmCorrections::EffectiveChargeSquareRatio ( const G4ParticleDefinition p,
const G4Material mat,
G4double  kineticEnergy 
)
inline

Definition at line 341 of file G4EmCorrections.hh.

344 {
345  return effCharge.EffectiveChargeSquareRatio(p,mat,kineticEnergy);
346 }
G4double EffectiveChargeSquareRatio(const G4ParticleDefinition *p, const G4Material *material, G4double kineticEnergy)
G4ionEffectiveCharge effCharge
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetNumberOfStoppingVectors()

G4int G4EmCorrections::GetNumberOfStoppingVectors ( )
inline

Definition at line 327 of file G4EmCorrections.hh.

328 {
329  return nIons;
330 }
Here is the caller graph for this function:

◆ GetParticleCharge()

G4double G4EmCorrections::GetParticleCharge ( const G4ParticleDefinition p,
const G4Material mat,
G4double  kineticEnergy 
)
inline

Definition at line 333 of file G4EmCorrections.hh.

336 {
337  return effCharge.EffectiveCharge(p,mat,kineticEnergy);
338 }
G4double EffectiveCharge(const G4ParticleDefinition *p, const G4Material *material, G4double kineticEnergy)
G4ionEffectiveCharge effCharge
Here is the call graph for this function:
Here is the caller graph for this function:

◆ HighOrderCorrections()

G4double G4EmCorrections::HighOrderCorrections ( const G4ParticleDefinition p,
const G4Material mat,
G4double  kineticEnergy,
G4double  cutEnergy 
)

Definition at line 119 of file G4EmCorrections.cc.

122 {
123  // . Z^3 Barkas effect in the stopping power of matter for charged particles
124  // J.C Ashley and R.H.Ritchie
125  // Physical review B Vol.5 No.7 1 April 1972 pagg. 2393-2397
126  // and ICRU49 report
127  // valid for kineticEnergy < 0.5 MeV
128  // Other corrections from S.P.Ahlen Rev. Mod. Phys., Vol 52, No1, 1980
129 
130  SetupKinematics(p, mat, e);
131  if(tau <= 0.0) { return 0.0; }
132 
133  G4double Barkas = BarkasCorrection (p, mat, e);
134  G4double Bloch = BlochCorrection (p, mat, e);
135  G4double Mott = MottCorrection (p, mat, e);
136 
137  G4double sum = (2.0*(Barkas + Bloch) + Mott);
138 
139  if(verbose > 1) {
140  G4cout << "EmCorrections: E(MeV)= " << e/MeV << " Barkas= " << Barkas
141  << " Bloch= " << Bloch << " Mott= " << Mott
142  << " Sum= " << sum << " q2= " << q2 << G4endl;
143  G4cout << " ShellCorrection: " << ShellCorrection(p, mat, e)
144  << " Kshell= " << KShellCorrection(p, mat, e)
145  << " Lshell= " << LShellCorrection(p, mat, e)
146  << " " << mat->GetName() << G4endl;
147  }
149  return sum;
150 }
static const double MeV
Definition: G4SIunits.hh:211
int twopi_mc2_rcl2
Definition: hepunit.py:294
const G4Material * material
G4double MottCorrection(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4double BlochCorrection(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4GLOB_DLL std::ostream G4cout
G4double BarkasCorrection(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
void SetupKinematics(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4double ShellCorrection(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4double GetElectronDensity() const
Definition: G4Material.hh:217
G4double KShellCorrection(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4double LShellCorrection(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
const G4String & GetName() const
Definition: G4Material.hh:178
Here is the call graph for this function:
Here is the caller graph for this function:

◆ Index()

G4int G4EmCorrections::Index ( G4double  x,
G4double y,
G4int  n 
)
inlineprivate

Definition at line 294 of file G4EmCorrections.hh.

295 {
296  G4int iddd = n-1;
297  // Loop checking, 03-Aug-2015, Vladimir Ivanchenko
298  do {--iddd;} while (iddd>0 && x<y[iddd]);
299  return iddd;
300 }
int G4int
Definition: G4Types.hh:78
Double_t y
Char_t n[5]
Here is the caller graph for this function:

◆ Initialise()

void G4EmCorrections::Initialise ( )
private

Definition at line 921 of file G4EmCorrections.cc.

922 {
923 // . Z^3 Barkas effect in the stopping power of matter for charged particles
924 // J.C Ashley and R.H.Ritchie
925 // Physical review B Vol.5 No.7 1 April 1972 pagg. 2393-2397
926  G4int i, j;
927  const G4double fTable[47][2] = {
928  { 0.02, 21.5},
929  { 0.03, 20.0},
930  { 0.04, 18.0},
931  { 0.05, 15.6},
932  { 0.06, 15.0},
933  { 0.07, 14.0},
934  { 0.08, 13.5},
935  { 0.09, 13.},
936  { 0.1, 12.2},
937  { 0.2, 9.25},
938  { 0.3, 7.0},
939  { 0.4, 6.0},
940  { 0.5, 4.5},
941  { 0.6, 3.5},
942  { 0.7, 3.0},
943  { 0.8, 2.5},
944  { 0.9, 2.0},
945  { 1.0, 1.7},
946  { 1.2, 1.2},
947  { 1.3, 1.0},
948  { 1.4, 0.86},
949  { 1.5, 0.7},
950  { 1.6, 0.61},
951  { 1.7, 0.52},
952  { 1.8, 0.5},
953  { 1.9, 0.43},
954  { 2.0, 0.42},
955  { 2.1, 0.3},
956  { 2.4, 0.2},
957  { 3.0, 0.13},
958  { 3.08, 0.1},
959  { 3.1, 0.09},
960  { 3.3, 0.08},
961  { 3.5, 0.07},
962  { 3.8, 0.06},
963  { 4.0, 0.051},
964  { 4.1, 0.04},
965  { 4.8, 0.03},
966  { 5.0, 0.024},
967  { 5.1, 0.02},
968  { 6.0, 0.013},
969  { 6.5, 0.01},
970  { 7.0, 0.009},
971  { 7.1, 0.008},
972  { 8.0, 0.006},
973  { 9.0, 0.0032},
974  { 10.0, 0.0025} };
975 
976  BarkasCorr = new G4LPhysicsFreeVector(47, 0.02, 10.);
977  for(i=0; i<47; ++i) { BarkasCorr->PutValues(i, fTable[i][0], fTable[i][1]); }
978  BarkasCorr->SetSpline(true);
979 
980  const G4double nuca[104][2] = {
981  { 1.0E+8, 5.831E-8},
982  { 8.0E+7, 7.288E-8},
983  { 6.0E+7, 9.719E-8},
984  { 5.0E+7, 1.166E-7},
985  { 4.0E+7, 1.457E-7},
986  { 3.0E+7, 1.942E-7},
987  { 2.0E+7, 2.916E-7},
988  { 1.5E+7, 3.887E-7},
989 
990  { 1.0E+7, 5.833E-7},
991  { 8.0E+6, 7.287E-7},
992  { 6.0E+6, 9.712E-7},
993  { 5.0E+6, 1.166E-6},
994  { 4.0E+6, 1.457E-6},
995  { 3.0E+6, 1.941E-6},
996  { 2.0E+6, 2.911E-6},
997  { 1.5E+6, 3.878E-6},
998 
999  { 1.0E+6, 5.810E-6},
1000  { 8.0E+5, 7.262E-6},
1001  { 6.0E+5, 9.663E-6},
1002  { 5.0E+5, 1.157E-5},
1003  { 4.0E+5, 1.442E-5},
1004  { 3.0E+5, 1.913E-5},
1005  { 2.0E+5, 2.845E-5},
1006  { 1.5E+5, 3.762E-5},
1007 
1008  { 1.0E+5, 5.554E-5},
1009  { 8.0E+4, 6.866E-5},
1010  { 6.0E+4, 9.020E-5},
1011  { 5.0E+4, 1.070E-4},
1012  { 4.0E+4, 1.319E-4},
1013  { 3.0E+4, 1.722E-4},
1014  { 2.0E+4, 2.499E-4},
1015  { 1.5E+4, 3.248E-4},
1016 
1017  { 1.0E+4, 4.688E-4},
1018  { 8.0E+3, 5.729E-4},
1019  { 6.0E+3, 7.411E-4},
1020  { 5.0E+3, 8.718E-4},
1021  { 4.0E+3, 1.063E-3},
1022  { 3.0E+3, 1.370E-3},
1023  { 2.0E+3, 1.955E-3},
1024  { 1.5E+3, 2.511E-3},
1025 
1026  { 1.0E+3, 3.563E-3},
1027  { 8.0E+2, 4.314E-3},
1028  { 6.0E+2, 5.511E-3},
1029  { 5.0E+2, 6.430E-3},
1030  { 4.0E+2, 7.756E-3},
1031  { 3.0E+2, 9.855E-3},
1032  { 2.0E+2, 1.375E-2},
1033  { 1.5E+2, 1.736E-2},
1034 
1035  { 1.0E+2, 2.395E-2},
1036  { 8.0E+1, 2.850E-2},
1037  { 6.0E+1, 3.552E-2},
1038  { 5.0E+1, 4.073E-2},
1039  { 4.0E+1, 4.802E-2},
1040  { 3.0E+1, 5.904E-2},
1041  { 1.5E+1, 9.426E-2},
1042 
1043  { 1.0E+1, 1.210E-1},
1044  { 8.0E+0, 1.377E-1},
1045  { 6.0E+0, 1.611E-1},
1046  { 5.0E+0, 1.768E-1},
1047  { 4.0E+0, 1.968E-1},
1048  { 3.0E+0, 2.235E-1},
1049  { 2.0E+0, 2.613E-1},
1050  { 1.5E+0, 2.871E-1},
1051 
1052  { 1.0E+0, 3.199E-1},
1053  { 8.0E-1, 3.354E-1},
1054  { 6.0E-1, 3.523E-1},
1055  { 5.0E-1, 3.609E-1},
1056  { 4.0E-1, 3.693E-1},
1057  { 3.0E-1, 3.766E-1},
1058  { 2.0E-1, 3.803E-1},
1059  { 1.5E-1, 3.788E-1},
1060 
1061  { 1.0E-1, 3.711E-1},
1062  { 8.0E-2, 3.644E-1},
1063  { 6.0E-2, 3.530E-1},
1064  { 5.0E-2, 3.444E-1},
1065  { 4.0E-2, 3.323E-1},
1066  { 3.0E-2, 3.144E-1},
1067  { 2.0E-2, 2.854E-1},
1068  { 1.5E-2, 2.629E-1},
1069 
1070  { 1.0E-2, 2.298E-1},
1071  { 8.0E-3, 2.115E-1},
1072  { 6.0E-3, 1.883E-1},
1073  { 5.0E-3, 1.741E-1},
1074  { 4.0E-3, 1.574E-1},
1075  { 3.0E-3, 1.372E-1},
1076  { 2.0E-3, 1.116E-1},
1077  { 1.5E-3, 9.559E-2},
1078 
1079  { 1.0E-3, 7.601E-2},
1080  { 8.0E-4, 6.668E-2},
1081  { 6.0E-4, 5.605E-2},
1082  { 5.0E-4, 5.008E-2},
1083  { 4.0E-4, 4.352E-2},
1084  { 3.0E-4, 3.617E-2},
1085  { 2.0E-4, 2.768E-2},
1086  { 1.5E-4, 2.279E-2},
1087 
1088  { 1.0E-4, 1.723E-2},
1089  { 8.0E-5, 1.473E-2},
1090  { 6.0E-5, 1.200E-2},
1091  { 5.0E-5, 1.052E-2},
1092  { 4.0E-5, 8.950E-3},
1093  { 3.0E-5, 7.246E-3},
1094  { 2.0E-5, 5.358E-3},
1095  { 1.5E-5, 4.313E-3},
1096  { 0.0, 3.166E-3}
1097  };
1098 
1099  for(i=0; i<104; ++i) {
1100  ed[i] = nuca[i][0];
1101  a[i] = nuca[i][1];
1102  }
1103 
1104  // Constants
1105  theZieglerFactor = eV*cm2*1.0e-15 ;
1107  lossFlucFlag = true;
1108 
1109  // G.S. Khandelwal Nucl. Phys. A116(1968)97 - 111.
1110  // "Shell corrections for K- and L- electrons
1111 
1112  nK = 20;
1113  nL = 26;
1114  nEtaK = 29;
1115  nEtaL = 28;
1116 
1117  const G4double d[11] =
1118  {0., 0., 0., 1.72, 2.09, 2.48, 2.82, 3.16, 3.53, 3.84, 4.15};
1119  const G4double thek[20] =
1120  {0.64, 0.65, 0.66, 0.68, 0.70, 0.72, 0.74, 0.75, 0.76, 0.78,
1121  0.80, 0.82, 0.84, 0.85, 0.86, 0.88, 0.90, 0.92, 0.94, 0.95};
1122  const G4double sk[20] = {1.9477, 1.9232, 1.8996, 1.8550, 1.8137,
1123  1.7754, 1.7396, 1.7223, 1.7063, 1.6752,
1124  1.6461, 1.6189, 1.5933, 1.5811, 1.5693,
1125  1.5467, 1.5254, 1.5053, 1.4863, 1.4772};
1126  const G4double tk[20] = {2.5222, 2.5125, 2.5026, 2.4821, 2.4608,
1127  2.4388, 2.4163, 2.4044, 2.3933, 2.3701,
1128  2.3466, 2.3229, 2.2992, 2.2872, 2.2753,
1129  2.2515, 2.2277, 2.2040, 2.1804, 2.1686};
1130  const G4double uk[20] = {1.9999, 2.0134, 2.0258, 2.0478, 2.0662,
1131  2.0817, 2.0945, 2.0999, 2.1049, 2.1132,
1132  2.1197, 2.1246, 2.1280, 2.1292, 2.1301,
1133  2.1310, 2.1310, 2.1300, 2.1283, 2.1271};
1134  const G4double vk[20] = {8.3410, 8.3373, 8.3340, 8.3287, 8.3247,
1135  8.3219, 8.3201, 8.3194, 8.3191, 8.3188,
1136  8.3191, 8.3199, 8.3211, 8.3218, 8.3226,
1137  8.3244, 8.3264, 8.3285, 8.3308, 8.3320};
1138 
1139  for(i=0; i<11; ++i) { ZD[i] = d[i];}
1140 
1141  for(i=0; i<nK; ++i) {
1142  TheK[i] = thek[i];
1143  SK[i] = sk[i];
1144  TK[i] = tk[i];
1145  UK[i] = uk[i];
1146  VK[i] = vk[i];
1147  }
1148 
1149  const G4double thel[26] =
1150  {0.24, 0.26, 0.28, 0.30, 0.32, 0.34, 0.35, 0.36, 0.38, 0.40,
1151  0.42, 0.44, 0.45, 0.46, 0.48, 0.50, 0.52, 0.54, 0.55, 0.56,
1152  0.58, 0.60, 0.62, 0.64, 0.65, 0.66};
1153  const G4double sl[26] = {15.3343, 13.9389, 12.7909, 11.8343, 11.0283,
1154  10.3424, 10.0371, 9.7537, 9.2443, 8.8005,
1155  8.4114, 8.0683, 7.9117, 7.7641, 7.4931,
1156  7.2506, 7.0327, 6.8362, 6.7452, 6.6584,
1157  6.4969, 6.3498, 6.2154, 6.0923, 6.0345, 5.9792};
1158  const G4double tl[26] = {35.0669, 33.4344, 32.0073, 30.7466, 29.6226,
1159  28.6128, 28.1449, 27.6991, 26.8674, 26.1061,
1160  25.4058, 24.7587, 24.4531, 24.1583, 23.5992,
1161  23.0771, 22.5880, 22.1285, 21.9090, 21.6958,
1162  21.2872, 20.9006, 20.5341, 20.1859, 20.0183, 19.8546};
1163  const G4double ul[26] = {0.1215, 0.5265, 0.8411, 1.0878, 1.2828,
1164  1.4379, 1.5032, 1.5617, 1.6608, 1.7401,
1165  1.8036, 1.8543, 1.8756, 1.8945, 1.9262,
1166  1.9508, 1.9696, 1.9836, 1.9890, 1.9935,
1167  2.0001, 2.0039, 2.0053, 2.0049, 2.0040, 2.0028};
1168  for(i=0; i<nL; ++i) {
1169  TheL[i] = thel[i];
1170  SL[i] = sl[i];
1171  TL[i] = tl[i];
1172  UL[i] = ul[i];
1173  }
1174 
1175  const G4double eta[29] = {0.005, 0.007, 0.01, 0.015, 0.02,
1176  0.03, 0.04, 0.05, 0.06, 0.08,
1177  0.1, 0.15, 0.2, 0.3, 0.4,
1178  0.5, 0.6, 0.7, 0.8, 1.0,
1179  1.2, 1.4, 1.5, 1.7, 2.0, 3.0, 5.0, 7.0, 10.};
1180 
1181  const G4double bk1[29][11] = {
1182  {0.005, 1.34782E-8, 1.46132E-8, 1.72179E-8, 2.03521E-8, 2.41370E-8, 2.87247E-8, 3.13778E-8, 3.43072E-8, 4.11274E-8, 4.94946E-8},
1183  {0.007, 6.87555E-8, 7.44373E-8, 8.74397E-8, 1.03022E-7, 1.21760E-7, 1.44370E-7, 1.57398E-7, 1.71747E-7, 2.05023E-7, 2.45620E-7},
1184  {0.01, 3.78413E-7, 4.08831E-7, 4.78154E-7, 5.60760E-7, 6.59478E-7, 7.77847E-7, 8.45709E-7, 9.20187E-7, 1.09192E-6, 1.29981E-6},
1185  {0.015, 2.53200E-6, 2.72664E-6, 3.16738E-6, 3.68791E-6, 4.30423E-6, 5.03578E-6, 5.45200E-6, 5.90633E-6, 6.94501E-6, 8.18757E-6},
1186  {0.02, 9.43891E-6, 1.01339E-5, 1.16984E-5, 1.35313E-5, 1.56829E-5, 1.82138E-5, 1.96439E-5, 2.11973E-5, 2.47216E-5, 2.88935E-5},
1187  {0.03, 5.67088E-5, 6.05576E-5, 6.91311E-5, 7.90324E-5, 9.04832E-5, 1.03744E-4, 1.11147E-4, 1.19122E-4, 1.36980E-4, 1.57744E-4},
1188  {0.04, 1.91576E-4, 2.03626E-4, 2.30230E-4, 2.60584E-4, 2.95248E-4, 3.34870E-4, 3.56771E-4, 3.80200E-4, 4.32104E-4, 4.91584E-4},
1189  {0.05, 4.74226E-4, 5.02006E-4, 5.62872E-4, 6.31597E-4, 7.09244E-4, 7.97023E-4, 8.45134E-4, 8.96410E-4, 1.00867E-3, 1.13590E-3},
1190  {0.06, 9.67285E-4, 1.02029E-3, 1.13566E-3, 1.26476E-3, 1.46928E-3, 1.57113E-3, 1.65921E-3, 1.75244E-3, 1.95562E-3, 2.18336E-3},
1191  {0.08, 2.81537E-3, 2.95200E-3, 3.24599E-3, 3.57027E-3, 3.92793E-3, 4.32246E-3, 4.53473E-3, 4.75768E-3, 5.23785E-3, 5.76765E-3},
1192  {0.1, 6.14216E-3, 6.40864E-3, 6.97750E-3, 7.59781E-3, 8.27424E-3, 9.01187E-3, 9.40534E-3, 9.81623E-3, 1.06934E-2, 1.16498E-2},
1193  {0.15, 2.23096E-2, 2.30790E-2, 2.46978E-2, 2.64300E-2, 2.82832E-2, 3.02661E-2, 3.13090E-2, 3.23878E-2, 3.46580E-2, 3.70873E-2},
1194  {0.2, 5.04022E-2, 5.18492E-2, 5.48682E-2, 5.80617E-2, 6.14403E-2, 6.50152E-2, 6.68798E-2, 6.87981E-2, 7.28020E-2, 7.70407E-2},
1195  {0.3, 1.38018E-1, 1.41026E-1, 1.47244E-1, 1.53743E-1, 1.60536E-1, 1.67641E-1, 1.71315E-1, 1.75074E-1, 1.82852E-1, 1.90997E-1},
1196  {0.4, 2.56001E-1, 2.60576E-1, 2.69992E-1, 2.79776E-1, 2.89946E-1, 3.00525E-1, 3.05974E-1, 3.11533E-1, 3.22994E-1, 3.34935E-1},
1197  {0.5, 3.92181E-1, 3.98213E-1, 4.10597E-1, 4.23427E-1, 4.36726E-1, 4.50519E-1, 4.57610E-1, 4.64834E-1, 4.79700E-1, 4.95148E-1},
1198  {0.6, 5.37913E-1, 5.45268E-1, 5.60350E-1, 5.75948E-1, 5.92092E-1, 6.08811E-1, 6.17396E-1, 6.26136E-1, 6.44104E-1, 6.62752E-1},
1199  {0.7, 6.87470E-1, 6.96021E-1, 7.13543E-1, 7.31650E-1, 7.50373E-1, 7.69748E-1, 7.79591E-1, 7.89811E-1, 8.10602E-1, 8.32167E-1},
1200  {0.8, 8.37159E-1, 8.46790E-1, 8.66525E-1, 8.86910E-1, 9.07979E-1, 9.29772E-1, 9.40953E-1, 9.52331E-1, 9.75701E-1, 9.99934E-1},
1201  {1.0, 1.12850, 1.14002, 1.16362, 1.18799, 1.21317, 1.23921, 1.25257, 1.26616, 1.29408, 1.32303},
1202  {1.2, 1.40232, 1.41545, 1.44232, 1.47007, 1.49875, 1.52842, 1.54364, 1.55913, 1.59095, 1.62396},
1203  {1.4, 1.65584, 1.67034, 1.70004, 1.73072, 1.76244, 1.79526, 1.81210, 1.82925, 1.86448, 1.90104},
1204  {1.5, 1.77496, 1.79009, 1.82107, 1.85307, 1.88617, 1.92042, 1.93800, 1.95590, 1.99269, 2.03087},
1205  {1.7, 1.99863, 2.01490, 2.04822, 2.08265, 2.11827, 2.15555, 2.17409, 2.19337, 2.23302, 2.27419},
1206  {2.0, 2.29325, 2.31100, 2.34738, 2.38501, 2.42395, 2.46429, 2.48401, 2.50612, 2.54955, 2.59468},
1207  {3.0, 3.08887, 3.11036, 3.15445, 3.20013, 3.24748, 3.29664, 3.32192, 3.34770, 3.40081, 3.45611},
1208  {5.0, 4.07599, 4.10219, 4.15606, 4.21199, 4.27010, 4.33056, 4.36172, 4.39353, 4.45918, 4.52772},
1209  {7.0, 4.69647, 4.72577, 4.78608, 4.84877, 4.91402, 4.98200, 5.01707, 5.05290, 5.12695, 5.20436},
1210  {10.0, 5.32590, 5.35848, 5.42560, 5.49547, 5.56830, 5.64429, 5.68353, 5.72366, 5.80666, 5.89359}
1211  };
1212 
1213  const G4double bk2[29][11] = {
1214  {0.005, 5.98040E-8, 7.25636E-8, 8.00602E-8, 8.84294E-8, 1.08253E-7, 1.33148E-7, 1.64573E-7, 2.04459E-7, 2.28346E-7, 2.55370E-7},
1215  {0.007, 2.95345E-7, 3.56497E-7, 3.92247E-7, 4.32017E-7, 5.25688E-7, 6.42391E-7, 7.88464E-7, 9.72171E-7, 1.08140E-6, 1.20435E-6},
1216  {0.01, 1.55232E-6, 1.86011E-6, 2.03881E-6, 2.23662E-6, 2.69889E-6, 3.26860E-6, 3.26860E-6, 4.84882E-6, 5.36428E-6, 5.94048E-6},
1217  {0.015, 9.67802E-6, 1.14707E-5, 1.25008E-5, 1.36329E-5, 1.62480E-5, 1.94200E-5, 2.32783E-5, 2.79850E-5, 3.07181E-5, 3.37432E-5},
1218  {0.02, 3.38425E-5, 3.97259E-5, 4.30763E-5, 4.67351E-5, 5.51033E-5, 6.51154E-5, 7.71154E-5, 9.15431E-5, 9.98212E-5, 1.08909E-4},
1219  {0.03, 1.81920E-4, 2.10106E-4, 2.25918E-4, 2.43007E-4, 2.81460E-4, 3.26458E-4, 3.79175E-4, 4.41006E-4, 4.75845E-4, 5.13606E-4},
1220  {0.04, 5.59802E-4, 6.38103E-4, 6.81511E-4, 7.28042E-4, 8.31425E-4, 9.50341E-4, 1.08721E-3, 1.24485E-3, 1.33245E-3, 1.42650E-3},
1221  {0.05, 1.28002E-3, 1.44336E-3, 1.53305E-3, 1.62855E-3, 1.83861E-3, 2.07396E-3, 2.34750E-3, 2.65469E-3, 2.82358E-3, 3.00358E-3},
1222  {0.06, 2.42872E-3, 2.72510E-3, 2.88111E-3, 3.04636E-3, 3.40681E-3, 3.81132E-3, 4.26536E-3, 4.77507E-3, 5.05294E-3, 5.34739E-3},
1223  {0.08, 6.35222E-3, 6.99730E-3, 7.34446E-3, 7.70916E-3, 8.49478E-3, 9.36187E-3, 1.03189E-2, 1.13754E-2, 1.19441E-2, 1.25417E-2},
1224  {0.1, 1.26929E-2, 1.38803E-2, 1.44371E-2, 1.50707E-2, 1.64235E-2, 1.78989E-2, 1.95083E-2, 2.12640E-2, 2.22009E-2, 2.31795E-2},
1225  {0.15, 3.96872E-2, 4.24699E-2, 4.39340E-2, 4.54488E-2, 4.86383E-2, 5.20542E-2, 5.57135E-2, 5.96350E-2, 6.17003E-2, 6.38389E-2},
1226  {0.2, 8.15290E-2, 8.62830E-2, 8.87650E-2, 9.13200E-2, 9.66589E-2, 1.02320E-1, 1.08326E-1, 1.14701E-1, 1.18035E-1, 1.21472E-1},
1227  {0.3, 1.99528E-1, 2.08471E-1, 2.13103E-1, 2.17848E-1, 2.27689E-1, 2.38022E-1, 2.48882E-1, 2.60304E-1, 2.66239E-1, 2.72329E-1},
1228  {0.4, 3.47383E-1, 3.60369E-1, 3.67073E-1, 3.73925E-1, 3.88089E-1, 4.02900E-1, 4.18404E-1, 4.34647E-1, 4.43063E-1, 4.51685E-1},
1229  {0.5, 5.11214E-1, 5.27935E-1, 5.36554E-1, 5.45354E-1, 5.63515E-1, 5.82470E-1, 6.02273E-1, 6.22986E-1, 6.33705E-1, 6.44677E-1},
1230  {0.6, 6.82122E-1, 7.02260E-1, 7.12631E-1, 7.23214E-1, 7.45041E-1, 7.67800E-1, 7.91559E-1, 8.16391E-1, 8.29235E-1, 8.42380E-1},
1231  {0.7, 8.54544E-1, 8.77814E-1, 8.89791E-1, 9.02008E-1, 9.27198E-1, 9.53454E-1, 9.80856E-1, 1.00949, 1.02430, 1.03945},
1232  {0.8, 1.02508, 1.05121, 1.06466, 1.07838, 1.10667, 1.13615, 1.16692, 1.19907, 1.21570, 1.23272},
1233  {1.0, 1.35307, 1.38429, 1.40036, 1.41676, 1.45057, 1.48582, 1.52263, 1.56111, 1.58102, 1.60140},
1234  {1.2, 1.65823, 1.69385, 1.71220, 1.73092, 1.76954, 1.80983, 1.85192, 1.89596, 1.91876, 1.94211},
1235  {1.4, 1.93902, 1.97852, 1.99887, 2.01964, 2.06251, 2.10727, 2.15406, 2.20304, 2.22842, 2.25442},
1236  {1.5, 2.07055, 2.11182, 2.13309, 2.15480, 2.19963, 2.24644, 2.29539, 2.34666, 2.37323, 2.40045},
1237  {1.7, 2.31700, 2.36154, 2.38451, 2.40798, 2.45641, 2.50703, 2.56000, 2.61552, 2.64430, 2.67381},
1238  {2.0, 2.64162, 2.69053, 2.71576, 2.74154, 2.79481, 2.85052, 2.90887, 2.97009, 3.00185, 3.03442},
1239  {3.0, 3.51376, 3.57394, 3.60503, 3.63684, 3.70268, 3.77170, 3.84418, 3.92040, 3.96003, 4.00073},
1240  {5.0, 4.59935, 4.67433, 4.71316, 4.75293, 4.83543, 4.92217, 5.01353, 5.10992, 5.16014, 5.21181},
1241  {7.0, 5.28542, 5.37040, 5.41445, 5.45962, 5.55344, 5.65226, 5.79496, 5.90517, 5.96269, 6.02191},
1242  {10.0, 5.98474, 6.08046, 6.13015, 6.18112, 6.28715, 6.39903, 6.51728, 6.64249, 6.70792, 6.77535}
1243  };
1244 
1245  const G4double bls1[28][10] = {
1246  {0.005, 2.4111E-4, 2.5612E-4, 2.7202E-4, 3.0658E-4, 3.4511E-4, 3.8795E-4, 4.3542E-4, 4.6100E-4, 4.8786E-4},
1247  {0.007, 6.3947E-4, 6.7058E-4, 7.0295E-4, 7.7167E-4, 8.4592E-4, 9.2605E-4, 1.0125E-3, 1.0583E-3, 1.1058E-3},
1248  {0.01, 1.5469E-3, 1.6036E-3, 1.6622E-3, 1.7856E-3, 1.9181E-3, 2.1615E-3, 2.3178E-3, 2.4019E-3, 2.4904E-3},
1249  {0.015, 3.7221E-3, 3.8404E-3, 3.9650E-3, 4.2354E-3, 4.5396E-3, 4.8853E-3, 5.2820E-3, 5.5031E-3, 5.7414E-3},
1250  {0.02, 6.9449E-3, 7.1910E-3, 7.4535E-3, 8.0336E-3, 8.6984E-3, 9.4638E-3, 1.0348E-2, 1.0841E-2, 1.1372E-2},
1251  {0.03, 1.7411E-2, 1.8180E-2, 1.8997E-2, 2.0784E-2, 2.2797E-2, 2.5066E-2, 2.7622E-2, 2.9020E-2, 3.0503E-2},
1252  {0.04, 3.8474E-2, 4.0056E-2, 4.1718E-2, 4.5300E-2, 4.9254E-2, 5.3619E-2, 5.8436E-2, 6.1028E-2, 6.3752E-2},
1253  {0.05, 6.7371E-2, 6.9928E-2, 7.2596E-2, 7.8282E-2, 8.4470E-2, 9.1206E-2, 9.8538E-2, 1.0244E-1, 1.0652E-1},
1254  {0.06, 1.0418E-1, 1.0778E-1, 1.1152E-1, 1.1943E-1, 1.2796E-1, 1.3715E-1, 1.4706E-1, 1.5231E-1, 1.5776E-1},
1255  {0.08, 1.9647E-1, 2.0217E-1, 2.0805E-1, 2.2038E-1, 2.3351E-1, 2.4751E-1, 2.6244E-1, 2.7027E-1, 2.7837E-1},
1256  {0.1, 3.0594E-1, 3.1361E-1, 3.2150E-1, 3.3796E-1, 3.5537E-1, 3.7381E-1, 3.9336E-1, 4.0357E-1, 4.1410E-1},
1257  {0.15, 6.1411E-1, 6.2597E-1, 6.3811E-1, 6.6330E-1, 6.8974E-1, 7.1753E-1, 7.4678E-1, 7.6199E-1, 7.7761E-1},
1258  {0.2, 9.3100E-1, 9.5614E-1, 9.7162E-1, 1.0037, 1.0372, 1.0723, 1.1092, 1.1284, 1.1480},
1259  {0.3, 1.5172, 1.5372, 1.5576, 1.5998, 1.6438, 1.6899, 1.7382, 1.7632, 1.7889},
1260  {0.4, 2.0173, 2.0408, 2.0647, 2.1142, 2.1659, 2.2199, 2.2765, 2.3059, 2.3360},
1261  {0.5, 2.3932, 2.4193, 2.4460, 2.5011, 2.5587, 2.6190, 2.6821, 2.7148, 2.7484},
1262  {0.6, 2.7091, 2.7374, 2.7663, 2.8260, 2.8884, 2.9538, 3.0222, 3.0577, 3.0941},
1263  {0.7, 2.9742, 3.0044, 3.0352, 3.0988, 3.1652, 3.2349, 3.3079, 3.3457, 3.3845},
1264  {0.8, 3.2222, 3.2539, 3.2863, 3.3532, 3.4232, 3.4965, 3.5734, 3.6133, 3.6542},
1265  {1.0, 3.6690, 3.7033, 3.7384, 3.8108, 3.8866, 3.9661, 4.0495, 4.0928, 4.1371},
1266  {1.2, 3.9819, 4.0183, 4.0555, 4.1324, 4.2130, 4.2974, 4.3861, 4.4321, 4.4794},
1267  {1.4, 4.2745, 4.3127, 4.3517, 4.4324, 4.5170, 4.6056, 4.6988, 4.7471, 4.7968},
1268  {1.5, 4.4047, 4.4436, 4.4834, 4.5658, 4.6521, 4.7426, 4.8378, 4.8872, 4.9379},
1269  {1.7, 4.6383, 4.6787, 4.7200, 4.8054, 4.8949, 4.9888, 5.0876, 5.1388, 5.1915},
1270  {2.0, 4.9369, 4.9791, 5.0223, 5.1116, 5.2053, 5.3036, 5.4070, 5.4607, 5.5159},
1271  {3.0, 5.6514, 5.6981, 5.7459, 5.8450, 5.9489, 6.0581, 6.1730, 6.2328, 6.2943},
1272  {5.0, 6.4665, 6.5189, 6.5724, 6.6835, 6.8003, 6.9231, 7.0525, 7.1199, 7.1892},
1273  {7.0, 6.8634, 6.9194, 6.9767, 7.0957, 7.2208, 7.3526, 7.4915, 7.5639, 7.6384}
1274  };
1275 
1276  const G4double bls2[28][10] = {
1277  {0.005, 5.4561E-4, 6.0905E-4, 6.7863E-4, 7.5494E-4, 7.9587E-4, 8.3883E-4, 9.3160E-4, 1.0352E-3, 1.1529E-3},
1278  {0.007, 1.2068E-3, 1.3170E-3, 1.4377E-3, 1.5719E-3, 1.6451E-3, 1.7231E-3, 1.8969E-3, 2.1009E-3, 2.3459E-3},
1279  {0.01, 2.6832E-3, 2.9017E-3, 3.1534E-3, 3.4479E-3, 3.6149E-3, 3.7976E-3, 4.2187E-3, 4.7320E-3, 5.3636E-3},
1280  {0.015, 6.2775E-3, 6.9077E-3, 7.6525E-3, 8.5370E-2, 9.0407E-3, 9.5910E-3, 1.0850E-2, 1.2358E-2, 1.4165E-2},
1281  {0.02, 1.2561E-2, 1.3943E-2, 1.5553E-2, 1.7327E-2, 1.8478E-2, 1.9612E-2, 2.2160E-2, 2.5130E-2, 2.8594E-2},
1282  {0.03, 3.3750E-2, 3.7470E-2, 4.1528E-2, 4.6170E-2, 4.8708E-2, 5.1401E-2, 5.7297E-2, 6.3943E-2, 7.1441E-2},
1283  {0.04, 6.9619E-2, 7.6098E-2, 8.3249E-2, 9.1150E-2, 9.5406E-2, 9.9881E-2, 1.0954E-1, 1.2023E-1, 1.3208E-1},
1284  {0.05, 1.1522E-1, 1.2470E-1, 1.3504E-1, 1.4632E-1, 1.5234E-1, 1.5864E-1, 1.7211E-1, 1.8686E-1, 2.0304E-1},
1285  {0.06, 1.6931E-1, 1.8179E-1, 1.9530E-1, 2.0991E-1, 2.1767E-1, 2.2576E-1, 2.4295E-1, 2.6165E-1, 2.8201E-1},
1286  {0.08, 2.9540E-1, 3.1361E-1, 3.3312E-1, 3.5403E-1, 3.6506E-1, 3.7650E-1, 4.0067E-1, 4.2673E-1, 4.5488E-1},
1287  {0.1, 4.3613E-1, 4.5956E-1, 4.852E-1, 5.1115E-1, 5.2514E-1, 5.3961E-1, 5.7008E-1, 6.0277E-1, 6.3793E-1},
1288  {0.15, 8.1014E-1, 8.4453E-1, 8.8093E-1, 9.1954E-1, 9.3973E-1, 9.6056E-1, 1.0043, 1.0509, 1.1008},
1289  {0.2, 1.1888, 1.2319, 1.2774, 1.3255, 1.3506, 1.3765, 1.4308, 1.4886, 1.5504},
1290  {0.3, 1.8422, 1.8983, 1.9575, 2.0201, 2.0528, 2.0864, 2.1569, 2.2319, 2.3120},
1291  {0.4, 2.3984, 2.4642, 2.5336, 2.6070, 2.6452, 2.6847, 2.7674, 2.8554, 2.9494},
1292  {0.5, 2.8181, 2.8915, 2.9690, 3.0509, 3.0937, 3.1378, 3.2301, 3.3285, 3.4337},
1293  {0.6, 3.1698, 3.2494, 3.3336, 3.4226, 3.4691, 3.5171, 3.6175, 3.7246, 3.8391},
1294  {0.7, 3.4652, 3.5502, 3.6400, 3.7351, 3.7848, 3.8360, 3.9433, 4.0578, 4.1804},
1295  {0.8, 3.7392, 3.8289, 3.9236, 4.0239, 4.0764, 4.1304, 4.2438, 4.3648, 4.4944},
1296  {1.0, 4.2295, 4.3269, 4.4299, 4.5391, 4.5962, 4.6551, 4.7786, 4.9106, 5.0520},
1297  {1.2, 4.5777, 4.6814, 4.7912, 4.9076, 4.9685, 5.0314, 5.1633, 5.3043, 5.4555},
1298  {1.4, 4.9001, 5.0092, 5.1247, 5.2473, 5.3114, 5.3776, 5.5166, 5.6653, 5.8249},
1299  {1.5, 5.0434, 5.1550, 5.2731, 5.3984, 5.4640, 5.5317, 5.6739, 5.8260, 5.9893},
1300  {1.7, 5.3011, 5.4170, 5.5398, 5.6701, 5.7373, 5.8088, 5.9568, 6.1152, 6.2853},
1301  {2.0, 5.6308, 5.7523, 5.8811, 6.0174, 6.0896, 6.1636, 6.3192, 6.4857, 6.6647},
1302  {3.0, 6.4224, 6.5580, 6.7019, 6.8549, 6.9351, 7.0180, 7.1925, 7.3795, 7.5808},
1303  {5.0, 7.3338, 7.4872, 7.6500, 7.8235, 7.9146, 8.0087, 8.2071, 8.4200, 8.6496},
1304  {7.0, 7.7938, 7.9588, 8.1342, 8.3211, 8.4193, 8.5209, 8.7350, 8.9651, 9.2133}
1305  };
1306 
1307  const G4double bls3[28][9] = {
1308  {0.005, 1.2895E-3, 1.3670E-3, 1.4524E-3, 1.6524E-3, 1.9078E-3, 2.2414E-3, 2.6889E-3, 3.3006E-3},
1309  {0.007, 2.6467E-3, 2.8242E-3, 3.0238E-3, 3.5045E-3, 4.1260E-3, 4.9376E-3, 6.0050E-3, 7.4152E-3},
1310  {0.01, 6.1472E-3, 6.6086E-3, 7.1246E-3, 8.3491E-3, 9.8871E-3, 1.1822E-2, 1.4261E-2, 1.7335E-2},
1311  {0.015, 1.63316E-2, 1.7572E-2, 1.8932E-2, 2.2053E-2, 2.5803E-2, 3.0308E-2, 3.5728E-2, 4.2258E-2},
1312  {0.02, 3.2634E-2, 3.4900E-2, 3.7348E-2, 4.2850E-2, 4.9278E-2, 5.6798E-2, 6.5610E-2, 7.5963E-2},
1313  {0.03, 7.9907E-2, 8.4544E-2, 8.9486E-2, 1.0032E-1, 1.1260E-1, 1.2656E-1, 1.4248E-1, 1.6071E-1},
1314  {0.04, 1.4523E-1, 1.5237E-1, 1.5985E-1, 1.7614E-1, 1.9434E-1, 2.1473E-1, 2.3766E-1, 2.6357E-1},
1315  {0.05, 2.2082E-1, 2.3036E-1, 2.4038E-1, 2.6199E-1, 2.8590E-1, 3.1248E-1, 3.4212E-1, 3.7536E-1},
1316  {0.06, 3.0423E-1, 3.1611E-1, 3.2854E-1, 3.5522E-1, 3.8459E-1, 4.1704E-1, 4.5306E-1, 4.9326E-1},
1317  {0.08, 4.8536E-1, 5.0156E-1, 5.1846E-1, 5.5453E-1, 5.9397E-1, 6.3728E-1, 6.8507E-1, 7.3810E-1},
1318  {0.1, 6.7586E-1, 6.9596E-1, 7.1688E-1, 7.6141E-1, 8.0992E-1, 8.6301E-1, 9.2142E-1, 9.8604E-1},
1319  {0.15, 1.1544, 1.1828, 1.2122, 1.2746, 1.3424, 1.4163, 1.4974, 1.5868},
1320  {0.2, 1.6167, 1.6517, 1.6880, 1.7650, 1.8484, 1.9394, 2.0390, 2.1489},
1321  {0.3, 2.3979, 2.4432, 2.4902, 2.5899, 2.6980, 2.8159, 2.9451, 3.0876},
1322  {0.4, 3.0502, 3.1034, 3.1586, 3.2758, 3.4030, 3.5416, 3.6938, 3.8620},
1323  {0.5, 3.5466, 3.6062, 3.6681, 3.7994, 3.9421, 4.0978, 4.2688, 4.4580},
1324  {0.6, 3.9620, 4.0270, 4.0945, 4.2378, 4.3935, 4.5636, 4.7506, 4.9576},
1325  {0.7, 4.3020, 4.3715, 4.4438, 4.5974, 4.7644, 4.9470, 5.1478, 5.3703},
1326  {0.8, 4.6336, 4.7072, 4.7837, 4.9463, 5.1233, 5.3169, 5.5300, 5.7661},
1327  {1.0, 5.2041, 5.2845, 5.3682, 5.5462, 5.7400, 5.9523, 6.1863, 6.4458},
1328  {1.2, 5.6182, 5.7044, 5.7940, 5.9848, 6.1927, 6.4206, 6.6719, 6.9510},
1329  {1.4, 5.9967, 6.0876, 6.1823, 6.3839, 6.6038, 6.8451, 7.1113, 7.4071},
1330  {1.5, 6.1652, 6.2583, 6.3553, 6.5618, 6.7871, 7.0344, 7.3073, 7.6107},
1331  {1.7, 6.4686, 6.5657, 6.6668, 6.8823, 7.1175, 7.3757, 7.6609, 7.9782},
1332  {2.0, 6.8577, 6.9600, 7.0666, 7.2937, 7.5418, 7.8143, 8.1156, 8.4510},
1333  {3.0, 7.7981, 7.9134, 8.0336, 8.2901, 8.5708, 8.8796, 9.2214, 9.6027},
1334  {5.0, 8.8978, 9.0297, 9.1673, 9.4612, 9.7834, 10.1384, 10.5323, 10.9722},
1335  {7.0, 9.4819, 9.6248, 9.7739, 10.0926, 10.4423, 10.8282, 11.2565, 11.7356}
1336  };
1337 
1338  const G4double bll1[28][10] = {
1339  {0.005, 3.6324E-5, 4.0609E-5, 4.5430E-5, 5.6969E-5, 7.1625E-5, 9.0279E-5, 1.1407E-4, 1.2834E-4, 1.4447E-4},
1340  {0.007, 1.8110E-4, 2.0001E-4, 2.2099E-4, 2.7006E-4, 3.3049E-4, 4.0498E-4, 4.9688E-4, 5.5061E-4, 6.1032E-4},
1341  {0.01, 8.6524E-4, 9.4223E-4, 1.0262E-3, 1.2178E-3, 1.4459E-3, 1.7174E-3, 2.0405E-3, 2.2245E-3, 2.4252E-3},
1342  {0.015, 4.2293E-3, 4.5314E-3, 4.8551E-3, 5.5731E-3, 6.3968E-3, 7.3414E-3, 8.4242E-3, 9.0236E-3, 9.6652E-3},
1343  {0.02, 1.1485E-2, 1.2172E-2, 1.2900E-2, 1.4486E-2, 1.6264E-2, 1.8256E-2, 2.0487E-2, 2.1702E-2, 2.2989E-2},
1344  {0.03, 3.9471E-2, 4.1270E-2, 4.3149E-2, 4.7163E-2, 5.1543E-2, 5.6423E-2, 6.1540E-2, 6.4326E-2, 6.7237E-2},
1345  {0.04, 8.4454E-2, 8.7599E-2, 9.0860E-2, 9.7747E-2, 1.0516E-1, 1.1313E-1, 1.2171E-1, 1.2625E-1, 1.3096E-1},
1346  {0.05, 1.4339E-1, 1.4795E-1, 1.5266E-1, 1.6253E-1, 1.7306E-1, 1.8430E-1, 1.9630E-1, 2.0261E-1, 2.0924E-1},
1347  {0.06, 2.1304E-1, 2.1899E-1, 2.2512E-1, 2.3794E-1, 2.5153E-1, 2.6596E-1, 2.8130E-1, 2.8934E-1, 2.9763E-1},
1348  {0.08, 3.7382E-1, 3.8241E-1, 3.9122E-1, 4.0955E-1, 4.2888E-1, 4.4928E-1, 4.7086E-1, 4.8212E-1, 4.9371E-1},
1349  {0.1, 5.5056E-1, 5.6151E-1, 5.7273E-1, 5.9601E-1, 6.2049E-1, 6.4627E-1, 6.7346E-1, 6.8762E-1, 7.0218E-1},
1350  {0.15, 1.0066, 1.0224, 1.0386, 1.0721, 1.1073, 1.1443, 1.1832, 1.2035, 1.2243},
1351  {0.2, 1.4376, 1.4572, 1.4773, 1.5188, 1.5624, 1.6083, 1.6566, 1.6817, 1.7076},
1352  {0.3, 2.1712, 2.1964, 2.2223, 2.2758, 2.3322, 2.3915, 2.4542, 2.4869, 2.5205},
1353  {0.4, 2.7500, 2.7793, 2.8094, 2.8719, 2.9377, 3.0072, 3.0807, 3.1192, 3.1587},
1354  {0.5, 3.2033, 3.2359, 3.2693, 3.3389, 3.4122, 3.4898, 3.5721, 3.6151, 3.6595},
1355  {0.6, 3.6038, 3.6391, 3.6753, 3.7506, 3.8303, 3.9146, 4.0042, 4.0511, 4.0995},
1356  {0.7, 3.9106, 3.9482, 3.9867, 4.0670, 4.1520, 4.2421, 4.3380, 4.3882, 4.4401},
1357  {0.8, 4.1790, 4.2185, 4.2590, 4.3437, 4.4333, 4.5285, 4.6298, 4.6830, 4.7380},
1358  {1.0, 4.6344, 4.6772, 4.7212, 4.8131, 4.9106, 5.0144, 5.1250, 5.1831, 5.2432},
1359  {1.2, 4.9787, 5.0242, 5.0711, 5.1689, 5.2729, 5.3837, 5.5050, 5.5642, 5.6287},
1360  {1.4, 5.2688, 5.3166, 5.3658, 5.4687, 5.5782, 5.6950, 5.8198, 5.8855, 5.9554},
1361  {1.5, 5.3966, 5.4454, 5.4957, 5.6009, 5.7128, 5.8323, 5.9601, 6.0274, 6.0972},
1362  {1.7, 5.6255, 5.6762, 5.7284, 5.8377, 5.9541, 6.0785, 6.2116, 6.2818, 6.3546},
1363  {2.0, 5.9170, 5.9701, 6.0248, 6.1395, 6.2618, 6.3925, 6.5327, 6.6066, 6.6833},
1364  {3.0, 6.6210, 6.6801, 6.7411, 6.8692, 7.0062, 7.1529, 7.3107, 7.3941, 7.4807},
1365  {5.0, 7.4620, 7.5288, 7.5977, 7.7428, 7.8982, 8.0653, 8.2454, 8.3409, 8.4402},
1366  {7.0, 7.7362, 7.8079, 7.8821, 8.0383, 8.2061, 8.3866, 8.5816, 8.6850, 8.7927}
1367  };
1368 
1369  const G4double bll2[28][10] = {
1370  {0.005, 1.8339E-4, 2.3330E-4, 2.9738E-4, 3.7977E-4, 4.2945E-4, 4.8582E-4, 6.2244E-4, 7.9858E-4, 1.0258E-3},
1371  {0.007, 7.5042E-4, 9.2355E-4, 1.1375E-3, 1.4021E-3, 1.5570E-3, 1.7292E-3, 2.1335E-3, 2.6335E-3, 3.2515E-3},
1372  {0.01, 2.8829E-3, 3.4275E-3, 4.0758E-3, 4.8457E-3, 5.2839E-3, 5.7617E-3, 6.8504E-3, 8.1442E-3, 9.6816E-3},
1373  {0.015, 1.1087E-2, 1.2716E-2, 1.4581E-2, 1.6717E-2, 1.7898E-2, 1.9163E-2, 2.1964E-2, 2.5173E-2, 2.8851E-2},
1374  {0.02, 2.5786E-2, 2.8922E-2, 3.2435E-2, 3.6371E-2, 3.8514E-2, 4.0784E-2, 4.5733E-2, 5.1288E-2, 5.7531E-2},
1375  {0.03, 7.3461E-2, 8.0264E-2, 8.7705E-2, 9.5852E-2, 1.0021E-1, 1.0478E-1, 1.1458E-1, 1.2535E-1, 1.3721E-1},
1376  {0.04, 1.4094E-1, 1.5172E-1, 1.6336E-1, 1.7596E-1, 1.8265E-1, 1.8962E-1, 2.0445E-1, 2.2058E-1, 2.3818E-1},
1377  {0.05, 2.2289E-1, 2.3762E-1, 2.5344E-1, 2.7045E-1, 2.7944E-1, 2.8877E-1, 3.0855E-1, 3.2995E-1, 3.5318E-1},
1378  {0.06, 3.1503E-1, 3.3361E-1, 3.5346E-1, 3.7473E-1, 3.8594E-1, 3.9756E-1, 4.2212E-1, 4.4861E-1, 4.7727E-1},
1379  {0.08, 5.1793E-1, 5.4368E-1, 5.7109E-1, 6.0032E-1, 6.1569E-1, 6.3159E-1, 6.6512E-1, 7.0119E-1, 7.4012E-1},
1380  {0.1, 7.3258E-1, 7.6481E-1, 7.9907E-1, 8.3556E-1, 8.5472E-1, 8.7454E-1, 9.1630E-1, 9.6119E-1, 1.0096},
1381  {0.15, 1.2677, 1.3137, 1.3626, 1.4147, 1.4421, 1.4703, 1.5300, 1.5942, 1.6636},
1382  {0.2, 1.7615, 1.8188, 1.8797, 1.9446, 1.9788, 2.0142, 2.0889, 2.1694, 2.2567},
1383  {0.3, 2.5909, 2.6658, 2.7457, 2.8312, 2.8762, 2.9231, 3.0222, 3.1295, 3.2463},
1384  {0.4, 3.2417, 3.3302, 3.4249, 3.5266, 3.5803, 3.6361, 3.7546, 3.8835, 4.0242},
1385  {0.5, 3.7527, 3.8523, 3.9591, 4.0741, 4.1350, 4.1983, 4.3330, 4.4799, 4.6408},
1386  {0.6, 4.2013, 4.3103, 4.4274, 4.5537, 4.6206, 4.6904, 4.8390, 5.0013, 5.1796},
1387  {0.7, 4.5493, 4.6664, 4.7925, 4.9286, 5.0009, 5.0762, 5.2370, 5.4129, 5.6066},
1388  {0.8, 4.8537, 4.9780, 5.1119, 5.2568, 5.3338, 5.4141, 5.5857, 5.7738, 5.9811},
1389  {1.0, 5.3701, 5.5066, 5.6540, 5.8138, 5.8989, 5.9878, 6.1780, 6.3870, 6.6179},
1390  {1.2, 5.7648, 5.9114, 6.0701, 6.2424, 6.3343, 6.4303, 6.6361, 6.8626, 7.1137},
1391  {1.4, 6.0976, 6.2530, 6.4214, 6.6044, 6.7021, 6.8043, 7.0237, 7.2655, 7.5338},
1392  {1.5, 6.2447, 6.4041, 6.5768, 6.7647, 6.8650, 6.9700, 7.1954, 7.4442, 7.7203},
1393  {1.7, 6.5087, 6.6752, 6.8558, 7.0526, 7.1578, 7.2679, 7.5045, 7.7660, 8.0565},
1394  {2.0, 6.8458, 7.0218, 7.2129, 7.4213, 7.5328, 7.6496, 7.9010, 8.1791, 8.4886},
1395  {3.0, 7.6647, 7.8644, 8.0819, 8.3189, 8.4475, 8.5814, 8.8702, 9.1908, 9.5488},
1396  {5.0, 8.6515, 8.8816, 9.1330, 9.4090, 9.5572, 9.7132, 10.0504, 10.4259, 10.8466},
1397  {7.0, 9.0221, 9.2724, 9.5464, 9.8477, 10.0099, 10.1805, 10.5499, 10.9622, 11.4250}
1398  };
1399 
1400  const G4double bll3[28][9] = {
1401  {0.005, 1.3190E-3, 1.4961E-3, 1.6974E-3, 2.1858E-3, 2.8163E-3, 3.6302E-3, 4.6814E-3, 6.0395E-3},
1402  {0.007, 4.0158E-3, 4.4623E-3, 4.9592E-3, 6.1257E-3, 7.5675E-3, 9.3502E-3, 1.1556E-2, 1.4290E-2},
1403  {0.01, 1.1509E-2, 1.2548E-2, 1.3681E-2, 1.6263E-2, 1.9336E-2, 2.2999E-2, 2.7370E-2, 3.2603E-2},
1404  {0.015, 3.3070E-2, 3.5408E-2, 3.7914E-2, 4.3483E-2, 4.9898E-2, 5.7304E-2, 6.5884E-2, 7.5861E-2},
1405  {0.02, 6.4555E-2, 6.8394E-2, 7.2472E-2, 8.1413E-2, 9.1539E-2, 1.0304E-1, 1.1617E-1, 1.3121E-1},
1406  {0.03, 1.5030E-1, 1.5101E-1, 1.5844E-1, 1.7451E-1, 1.9244E-1, 2.1244E-1, 2.3496E-1, 2.6044E-1},
1407  {0.04, 2.5743E-1, 2.6774E-1, 2.7855E-1, 3.0180E-1, 3.2751E-1, 3.5608E-1, 3.8803E-1, 4.2401E-1},
1408  {0.05, 3.7846E-1, 3.9195E-1, 4.0607E-1, 4.3635E-1, 4.6973E-1, 5.0672E-1, 5.4798E-1, 5.9436E-1},
1409  {0.06, 5.0839E-1, 5.2497E-1, 5.4230E-1, 5.7943E-1, 6.2028E-1, 6.6549E-1, 7.1589E-1, 7.7252E-1},
1410  {0.08, 7.8230E-1, 8.0474E-1, 8.2818E-1, 8.7836E-1, 9.3355E-1, 9.9462E-1, 1.0627, 1.1394},
1411  {0.1, 1.0621, 1.0900, 1.1192, 1.1816, 1.2503, 1.3265, 1.4116, 1.5076},
1412  {0.15, 1.7389, 1.7790, 1.8210, 1.9112, 2.0108, 2.1217, 2.2462, 2.3876},
1413  {0.2, 2.3516, 2.4024, 2.4556, 2.5701, 2.6971, 2.8391, 2.9994, 3.1822},
1414  {0.3, 3.3741, 3.4427, 3.5148, 3.6706, 3.8445, 4.0404, 4.2631, 4.5193},
1415  {0.4, 4.1788, 4.2620, 4.3496, 4.5398, 4.7530, 4.9944, 5.2703, 5.5895},
1416  {0.5, 4.8180, 4.9137, 5.0146, 5.2341, 5.4811, 5.7618, 6.0840, 6.4583},
1417  {0.6, 5.3765, 5.4830, 5.5954, 5.8406, 6.1173, 6.4326, 6.7958, 7.2191},
1418  {0.7, 5.8208, 5.9369, 6.0596, 6.3275, 6.6306, 6.9769, 7.3767, 7.8440},
1419  {0.8, 6.2109, 6.3355, 6.4674, 6.7558, 7.0827, 7.4570, 7.8900, 8.3972},
1420  {1.0, 6.8747, 7.0142, 7.1621, 7.4861, 7.8546, 8.2778, 8.7690, 9.3464},
1421  {1.2, 7.3933, 7.5454, 7.7068, 8.0612, 8.4652, 8.9302, 9.4713, 10.1090},
1422  {1.4, 7.8331, 7.9967, 8.1694, 8.5502, 8.9851, 9.4866, 10.0713, 10.7619},
1423  {1.5, 8.0286, 8.1967, 8.3753, 8.7681, 9.2181, 9.7352, 10.3399, 11.0546},
1424  {1.7, 8.3813, 8.5585, 8.7469, 9.1618, 9.6367, 10.1856, 10.8270, 11.5863},
1425  {2.0, 8.8352, 9.0245, 9.2260, 9.6701, 10.1793, 10.7688, 11.4590, 12.2775},
1426  {3.0, 9.9511, 10.1714, 10.4062, 10.9254, 11.5229, 12.2172, 13.0332, 14.0048},
1427  {5.0, 11.3211, 11.5818, 11.8601, 12.4771, 13.1898, 14.0213, 15.0024, 16.1752},
1428  {7.0, 11.9480, 12.2357, 12.5432, 13.2260, 14.0164, 14.9404, 16.0330, 17.3420}
1429  };
1430 
1431  G4double b, bs;
1432  for(i=0; i<nEtaK; ++i) {
1433 
1434  G4double et = eta[i];
1435  G4double loget = G4Log(et);
1436  Eta[i] = et;
1437  //G4cout << "### eta["<<i<<"]="<<et<<" KShell: tet= "<<TheK[0]<<" - "<<TheK[nK-1]<<G4endl;
1438 
1439  for(j=0; j<nK; ++j) {
1440 
1441  if(j < 10) { b = bk2[i][10-j]; }
1442  else { b = bk1[i][20-j]; }
1443 
1444  CK[j][i] = SK[j]*loget + TK[j] - b;
1445 
1446  if(i == nEtaK-1) {
1447  ZK[j] = et*(et*et*CK[j][i] - et*UK[j] - VK[j]);
1448  //G4cout << "i= " << i << " j= " << j
1449  // << " CK[j][i]= " << CK[j][i]
1450  // << " ZK[j]= " << ZK[j] << " b= " << b << G4endl;
1451  }
1452  }
1453  //G4cout << G4endl;
1454  if(i < nEtaL) {
1455  //G4cout << " LShell:" <<G4endl;
1456  for(j=0; j<nL; ++j) {
1457 
1458  if(j < 8) {
1459  bs = bls3[i][8-j];
1460  b = bll3[i][8-j];
1461  } else if(j < 17) {
1462  bs = bls2[i][17-j];
1463  b = bll2[i][17-j];
1464  } else {
1465  bs = bls1[i][26-j];
1466  b = bll1[i][26-j];
1467  }
1468  G4double c = SL[j]*loget + TL[j];
1469  CL[j][i] = c - bs - 3.0*b;
1470  if(i == nEtaL-1) {
1471  VL[j] = et*(et*CL[j][i] - UL[j]);
1472  //G4cout << "i= " << i << " j= " << j
1473  // << " CL[j][i]= " << CL[j][i]
1474  // << " VL[j]= " << VL[j] << " b= " << b << " bs= " << bs
1475  // << " et= " << et << G4endl;
1476  //" UL= " << UL[j] << " TL= " << TL[j] << " SL= " << SL[j] <<G4endl;
1477  }
1478  }
1479  //G4cout << G4endl;
1480  }
1481  }
1482  const G4double hm[53] = {
1483  12.0, 12.0, 12.0, 12.0, 11.9, 11.7, 11.5, 11.2, 10.8, 10.4,
1484  10.0, 9.51, 8.97, 8.52, 8.03, 7.46, 6.95, 6.53, 6.18, 5.87,
1485  5.61, 5.39, 5.19, 5.01, 4.86, 4.72, 4.62, 4.53, 4.44, 4.38,
1486  4.32, 4.26, 4.20, 4.15, 4.1, 4.04, 4.00, 3.95, 3.93, 3.91,
1487  3.90, 3.89, 3.89, 3.88, 3.88, 3.88, 3.88, 3.88, 3.89, 3.89,
1488  3.90, 3.92, 3.93 };
1489  const G4double hn[31] = {
1490  75.5, 61.9, 52.2, 45.1, 39.6, 35.4, 31.9, 29.1, 27.2, 25.8,
1491  24.5, 23.6, 22.7, 22.0, 21.4, 20.9, 20.5, 20.2, 19.9, 19.7,
1492  19.5, 19.3, 19.2, 19.1, 18.4, 18.8, 18.7, 18.6, 18.5, 18.4,
1493  18.2
1494  };
1495  for(i=0; i<53; ++i) {HM[i] = hm[i];}
1496  for(i=0; i<31; ++i) {HN[i] = hn[i];}
1497 
1498  const G4double xzk[34] = { 11.7711,
1499  13.3669, 15.5762, 17.1715, 18.7667, 20.8523, 23.0606, 24.901, 26.9861, 29.4394, 31.77,
1500  34.3457, 37.4119, 40.3555, 42.3177, 44.7705, 47.2234, 50.78, 53.8458, 56.4214, 58.3834,
1501  60.9586, 63.6567, 66.5998, 68.807, 71.8728, 74.5706, 77.3911, 81.8056, 85.7297, 89.8988,
1502  93.4549, 96.2753, 99.709};
1503  const G4double yzk[34] = { 0.70663,
1504  0.72033, 0.73651, 0.74647, 0.75518, 0.76388, 0.77258, 0.78129, 0.78625, 0.7937, 0.79991,
1505  0.80611, 0.8123, 0.8185, 0.82097, 0.82467, 0.82838, 0.83457, 0.83702, 0.84198, 0.8432,
1506  0.84565, 0.84936, 0.85181, 0.85303, 0.85548, 0.85794, 0.8604, 0.86283, 0.86527, 0.86646,
1507  0.86891, 0.87011, 0.87381};
1508 
1509  const G4double xzl[36] = { 15.5102,
1510  16.7347, 17.9592, 19.551, 21.0204, 22.6122, 24.9388, 27.3878, 29.5918, 31.3061, 32.898,
1511  34.4898, 36.2041, 38.4082, 40.3674, 42.5714, 44.898, 47.4694, 49.9184, 52.7347, 55.9184,
1512  59.3469, 61.9184, 64.6122, 67.4286, 71.4694, 75.2653, 78.3265, 81.2653, 85.551, 88.7347,
1513  91.551, 94.2449, 96.449, 98.4082, 99.7551};
1514  const G4double yzl[36] = { 0.29875,
1515  0.31746, 0.33368, 0.35239, 0.36985, 0.38732, 0.41102, 0.43472, 0.45343, 0.4659, 0.47713,
1516  0.4896, 0.50083, 0.51331, 0.52328, 0.53077, 0.54075, 0.54823, 0.55572, 0.56445, 0.57193,
1517  0.58191, 0.5869, 0.59189, 0.60062, 0.60686, 0.61435, 0.61809, 0.62183, 0.62931, 0.6343,
1518  0.6368, 0.64054, 0.64304, 0.64428, 0.64678};
1519 
1520  ThetaK = new G4LPhysicsFreeVector(34, xzk[0], xzk[33]);
1521  ThetaL = new G4LPhysicsFreeVector(36, xzl[0], xzl[35]);
1522  for(i=0; i<34; ++i) { ThetaK->PutValues(i, xzk[i], yzk[i]); }
1523  for(i=0; i<36; ++i) { ThetaL->PutValues(i, xzl[i], yzl[i]); }
1524  ThetaK->SetSpline(true);
1525  ThetaL->SetSpline(true);
1526 
1527  const G4double coseb[14] = {0.0,0.05,0.1,0.15,0.2,0.3,0.4,0.5,0.6,0.8,
1528  1.0,1.2,1.5,2.0};
1529  const G4double cosxi[14] = {1.0000, 0.9905, 0.9631, 0.9208, 0.8680,
1530  0.7478, 0.6303, 0.5290, 0.4471, 0.3323,
1531  0.2610, 0.2145, 0.1696, 0.1261};
1532  for(i=0; i<14; ++i) {
1533  COSEB[i] = coseb[i];
1534  COSXI[i] = cosxi[i];
1535  }
1536 
1537  G4Pow* g4pow = G4Pow::GetInstance();
1538  for(i=1; i<100; ++i) {
1539  Z23[i] = G4Exp(g4pow->logZ(i)*0.23);
1540  }
1541 }
static G4Pow * GetInstance()
Definition: G4Pow.cc:55
G4double COSXI[14]
G4double CK[20][29]
void PutValues(size_t binNumber, G4double binValue, G4double dataValue)
static const double cm2
Definition: G4SIunits.hh:119
G4double ed[104]
G4double theZieglerFactor
G4double logZ(G4int Z) const
Definition: G4Pow.hh:166
Float_t d
Definition: G4Pow.hh:56
G4LPhysicsFreeVector * ThetaK
int G4int
Definition: G4Types.hh:78
G4LPhysicsFreeVector * ThetaL
G4double TheL[26]
void SetSpline(G4bool)
int fine_structure_const
Definition: hepunit.py:287
G4double G4Log(G4double x)
Definition: G4Log.hh:230
G4double G4Exp(G4double initial_x)
Exponential Function double precision.
Definition: G4Exp.hh:183
static const double eV
Definition: G4SIunits.hh:212
G4double TheK[20]
G4double COSEB[14]
G4double a[104]
G4LPhysicsFreeVector * BarkasCorr
G4double Z23[100]
double G4double
Definition: G4Types.hh:76
G4double CL[26][28]
G4double Eta[29]
Here is the call graph for this function:
Here is the caller graph for this function:

◆ InitialiseForNewRun()

void G4EmCorrections::InitialiseForNewRun ( )

Definition at line 898 of file G4EmCorrections.cc.

899 {
901  ncouples = tb->GetTableSize();
902  if(currmat.size() != ncouples) {
903  currmat.resize(ncouples);
904  for(std::map< G4int, std::vector<G4double> >::iterator it =
905  thcorr.begin(); it != thcorr.end(); ++it){
906  (it->second).clear();
907  }
908  thcorr.clear();
909  for(size_t i=0; i<ncouples; ++i) {
911  G4String nam = currmat[i]->GetName();
912  for(G4int j=0; j<nIons; ++j) {
913  if(nam == materialName[j]) { materialList[j] = currmat[i]; }
914  }
915  }
916  }
917 }
const G4Material * GetMaterial() const
std::vector< const G4Material * > currmat
int G4int
Definition: G4Types.hh:78
std::map< G4int, std::vector< G4double > > thcorr
std::vector< G4String > materialName
std::vector< const G4Material * > materialList
vec_iX clear()
static G4ProductionCutsTable * GetProductionCutsTable()
const G4MaterialCutsCouple * GetMaterialCutsCouple(G4int i) const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ IonBarkasCorrection()

G4double G4EmCorrections::IonBarkasCorrection ( const G4ParticleDefinition p,
const G4Material mat,
G4double  kineticEnergy 
)

Definition at line 154 of file G4EmCorrections.cc.

157 {
158  // . Z^3 Barkas effect in the stopping power of matter for charged particles
159  // J.C Ashley and R.H.Ritchie
160  // Physical review B Vol.5 No.7 1 April 1972 pagg. 2393-2397
161  // and ICRU49 report
162  // valid for kineticEnergy < 0.5 MeV
163 
164  SetupKinematics(p, mat, e);
165  G4double res = 0.0;
166  if(tau > 0.0)
167  res = 2.0*BarkasCorrection(p, mat, e)*
169  return res;
170 }
int twopi_mc2_rcl2
Definition: hepunit.py:294
const G4Material * material
G4double BarkasCorrection(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
void SetupKinematics(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4double GetElectronDensity() const
Definition: G4Material.hh:217
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ IonHighOrderCorrections()

G4double G4EmCorrections::IonHighOrderCorrections ( const G4ParticleDefinition p,
const G4MaterialCutsCouple couple,
G4double  kineticEnergy 
)

Definition at line 206 of file G4EmCorrections.cc.

209 {
210 // . Z^3 Barkas effect in the stopping power of matter for charged particles
211 // J.C Ashley and R.H.Ritchie
212 // Physical review B Vol.5 No.7 1 April 1972 pagg. 2393-2397
213 // and ICRU49 report
214 // valid for kineticEnergy < 0.5 MeV
215 // Other corrections from S.P.Ahlen Rev. Mod. Phys., Vol 52, No1, 1980
216 
217  G4double sum = 0.0;
218 
219  if(ionHEModel) {
221  if(Z >= 100) Z = 99;
222  else if(Z < 1) Z = 1;
223 
224  G4double ethscaled = eth*p->GetPDGMass()/proton_mass_c2;
225  G4int ionPDG = p->GetPDGEncoding();
226  if(thcorr.find(ionPDG)==thcorr.end()) { // Not found: fill the map
227  std::vector<G4double> v;
228  for(size_t i=0; i<ncouples; ++i){
229  v.push_back(ethscaled*ComputeIonCorrections(p,currmat[i],ethscaled));
230  }
231  thcorr.insert(std::pair< G4int, std::vector<G4double> >(ionPDG,v));
232  }
233 
234  //G4cout << " map size=" << thcorr.size() << G4endl;
235  //for(std::map< G4int, std::vector<G4double> >::iterator
236  // it = thcorr.begin(); it != thcorr.end(); ++it){
237  // G4cout << "\t map element: first (key)=" << it->first
238  // << "\t second (vector): vec size=" << (it->second).size() << G4endl;
239  // for(size_t i=0; i<(it->second).size(); ++i){
240  // G4cout << "\t \t vec element: [" << i << "]=" << (it->second)[i]
241  //<< G4endl; } }
242 
243  G4double rest = (thcorr.find(ionPDG)->second)[couple->GetIndex()];
244 
245  sum = ComputeIonCorrections(p,couple->GetMaterial(),e) - rest/e;
246 
247  if(verbose > 1) {
248  G4cout << " Sum= " << sum << " dSum= " << rest/e << G4endl;
249  }
250  }
251  return sum;
252 }
const G4Material * GetMaterial() const
std::vector< const G4Material * > currmat
int G4int
Definition: G4Types.hh:78
G4VEmModel * ionHEModel
std::map< G4int, std::vector< G4double > > thcorr
G4GLOB_DLL std::ostream G4cout
Float_t Z
float proton_mass_c2
Definition: hepunit.py:275
int G4lrint(double ad)
Definition: templates.hh:163
static const G4double inveplus
#define G4endl
Definition: G4ios.hh:61
G4double ComputeIonCorrections(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
double G4double
Definition: G4Types.hh:76
G4double GetPDGCharge() const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ KShell()

G4double G4EmCorrections::KShell ( G4double  theta,
G4double  eta 
)
private

Definition at line 347 of file G4EmCorrections.cc.

348 {
349  G4double corr = 0.0;
350 
351  G4double x = tet;
352  G4int itet = 0;
353  G4int ieta = 0;
354  if(tet < TheK[0]) {
355  x = TheK[0];
356  } else if(tet > TheK[nK-1]) {
357  x = TheK[nK-1];
358  itet = nK-2;
359  } else {
360  itet = Index(x, TheK, nK);
361  }
362  // assimptotic case
363  if(eta >= Eta[nEtaK-1]) {
364  corr =
365  (Value(x, TheK[itet], TheK[itet+1], UK[itet], UK[itet+1]) +
366  Value(x, TheK[itet], TheK[itet+1], VK[itet], VK[itet+1])/eta +
367  Value(x, TheK[itet], TheK[itet+1], ZK[itet], ZK[itet+1])/(eta*eta))/eta;
368  } else {
369  G4double y = eta;
370  if(eta < Eta[0]) {
371  y = Eta[0];
372  } else {
373  ieta = Index(y, Eta, nEtaK);
374  }
375  corr = Value2(x, y, TheK[itet], TheK[itet+1], Eta[ieta], Eta[ieta+1],
376  CK[itet][ieta], CK[itet+1][ieta],
377  CK[itet][ieta+1], CK[itet+1][ieta+1]);
378  //G4cout << " x= " <<x<<" y= "<<y<<" tet= " <<TheK[itet]
379  // <<" "<< TheK[itet+1]<<" eta= "<< Eta[ieta]<<" "<< Eta[ieta+1]
380  // <<" CK= " << CK[itet][ieta]<<" "<< CK[itet+1][ieta]
381  // <<" "<< CK[itet][ieta+1]<<" "<< CK[itet+1][ieta+1]<<G4endl;
382  }
383  //G4cout << "Kshell: tet= " << tet << " eta= " << eta << " C= " << corr
384  // << " itet= " << itet << " ieta= " << ieta <<G4endl;
385  return corr;
386 }
G4double CK[20][29]
int G4int
Definition: G4Types.hh:78
G4double Value2(G4double xv, G4double yv, G4double x1, G4double x2, G4double y1, G4double y2, G4double z11, G4double z21, G4double z12, G4double z22)
Double_t y
static G4double tet[DIM]
G4int Index(G4double x, G4double *y, G4int n)
G4double TheK[20]
double G4double
Definition: G4Types.hh:76
G4double Value(G4double xv, G4double x1, G4double x2, G4double y1, G4double y2)
G4double Eta[29]
Here is the call graph for this function:
Here is the caller graph for this function:

◆ KShellCorrection()

G4double G4EmCorrections::KShellCorrection ( const G4ParticleDefinition p,
const G4Material mat,
G4double  kineticEnergy 
)

Definition at line 280 of file G4EmCorrections.cc.

283 {
284  SetupKinematics(p, mat, e);
285  G4double term = 0.0;
286  for (G4int i = 0; i<numberOfElements; ++i) {
287 
288  G4double Z = (*theElementVector)[i]->GetZ();
289  G4int iz = G4lrint(Z);
290  G4double f = 1.0;
291  G4double Z2= (Z-0.3)*(Z-0.3);
292  if(1 == iz) {
293  f = 0.5;
294  Z2 = 1.0;
295  }
296  G4double eta = ba2/Z2;
297  G4double tet = Z2*(1. + Z2*0.25*alpha2);
298  if(11 < iz) { tet = ThetaK->Value(Z); }
299  term += f*atomDensity[i]*KShell(tet,eta)/Z;
300  }
301 
303 
304  return term;
305 }
Double_t Z2
G4double KShell(G4double theta, G4double eta)
G4double GetTotNbOfAtomsPerVolume() const
Definition: G4Material.hh:209
G4LPhysicsFreeVector * ThetaK
const G4Material * material
int G4int
Definition: G4Types.hh:78
static G4double tet[DIM]
Float_t Z
G4double iz
Definition: TRTMaterials.hh:39
G4double Value(G4double theEnergy, size_t &lastidx) const
void SetupKinematics(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
const G4double * atomDensity
int G4lrint(double ad)
Definition: templates.hh:163
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ LShell()

G4double G4EmCorrections::LShell ( G4double  theta,
G4double  eta 
)
private

Definition at line 390 of file G4EmCorrections.cc.

391 {
392  G4double corr = 0.0;
393 
394  G4double x = tet;
395  G4int itet = 0;
396  G4int ieta = 0;
397  if(tet < TheL[0]) {
398  x = TheL[0];
399  } else if(tet > TheL[nL-1]) {
400  x = TheL[nL-1];
401  itet = nL-2;
402  } else {
403  itet = Index(x, TheL, nL);
404  }
405 
406  // assimptotic case
407  if(eta >= Eta[nEtaL-1]) {
408  corr = (Value(x, TheL[itet], TheL[itet+1], UL[itet], UL[itet+1])
409  + Value(x, TheL[itet], TheL[itet+1], VL[itet], VL[itet+1])/eta
410  )/eta;
411  } else {
412  G4double y = eta;
413  if(eta < Eta[0]) {
414  y = Eta[0];
415  } else {
416  ieta = Index(y, Eta, nEtaL);
417  }
418  corr = Value2(x, y, TheL[itet], TheL[itet+1], Eta[ieta], Eta[ieta+1],
419  CL[itet][ieta], CL[itet+1][ieta],
420  CL[itet][ieta+1], CL[itet+1][ieta+1]);
421  //G4cout << " x= " <<x<<" y= "<<y<<" tet= " <<TheL[itet]
422  // <<" "<< TheL[itet+1]<<" eta= "<< Eta[ieta]<<" "<< Eta[ieta+1]
423  // <<" CL= " << CL[itet][ieta]<<" "<< CL[itet+1][ieta]
424  // <<" "<< CL[itet][ieta+1]<<" "<< CL[itet+1][ieta+1]<<G4endl;
425  }
426  //G4cout<<"Lshell: tet= "<<tet<<" eta= "<<eta<<" itet= "<<itet
427  // <<" ieta= "<<ieta<<" Corr= "<<corr<<G4endl;
428  return corr;
429 }
int G4int
Definition: G4Types.hh:78
G4double TheL[26]
G4double Value2(G4double xv, G4double yv, G4double x1, G4double x2, G4double y1, G4double y2, G4double z11, G4double z21, G4double z12, G4double z22)
Double_t y
static G4double tet[DIM]
G4int Index(G4double x, G4double *y, G4int n)
double G4double
Definition: G4Types.hh:76
G4double Value(G4double xv, G4double x1, G4double x2, G4double y1, G4double y2)
G4double CL[26][28]
G4double Eta[29]
Here is the call graph for this function:
Here is the caller graph for this function:

◆ LShellCorrection()

G4double G4EmCorrections::LShellCorrection ( const G4ParticleDefinition p,
const G4Material mat,
G4double  kineticEnergy 
)

Definition at line 309 of file G4EmCorrections.cc.

312 {
313  SetupKinematics(p, mat, e);
314  G4double term = 0.0;
315  for (G4int i = 0; i<numberOfElements; ++i) {
316 
317  G4double Z = (*theElementVector)[i]->GetZ();
318  G4int iz = G4lrint(Z);
319  if(2 < iz) {
320  G4double Zeff = Z - ZD[10];
321  if(iz < 10) { Zeff = Z - ZD[iz]; }
322  G4double Z2= Zeff*Zeff;
323  G4double f = 0.125;
324  G4double eta = ba2/Z2;
325  G4double tet = ThetaL->Value(Z);
327  for(G4int j=1; j<nmax; ++j) {
329  if(15 >= iz) {
330  if(3 > j) { tet = 0.25*Z2*(1.0 + 5*Z2*alpha2/16.); }
331  else { tet = 0.25*Z2*(1.0 + Z2*alpha2/16.); }
332  }
333  //G4cout << " LShell: j= " << j << " ne= " << ne << " e(eV)= " << e/eV
334  // << " ThetaL= " << tet << G4endl;
335  term += f*ne*atomDensity[i]*LShell(tet,eta)/Z;
336  }
337  }
338  }
339 
341 
342  return term;
343 }
Double_t Z2
G4double GetTotNbOfAtomsPerVolume() const
Definition: G4Material.hh:209
const G4Material * material
int G4int
Definition: G4Types.hh:78
G4LPhysicsFreeVector * ThetaL
static G4double tet[DIM]
Float_t Z
G4double iz
Definition: TRTMaterials.hh:39
const G4int nmax
G4double Value(G4double theEnergy, size_t &lastidx) const
void SetupKinematics(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
const G4double * atomDensity
int G4lrint(double ad)
Definition: templates.hh:163
static G4int GetNumberOfElectrons(G4int Z, G4int SubshellNb)
G4double LShell(G4double theta, G4double eta)
double G4double
Definition: G4Types.hh:76
static G4int GetNumberOfShells(G4int Z)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ MottCorrection()

G4double G4EmCorrections::MottCorrection ( const G4ParticleDefinition p,
const G4Material mat,
G4double  kineticEnergy 
)

Definition at line 666 of file G4EmCorrections.cc.

669 {
670  SetupKinematics(p, mat, e);
672  return mterm;
673 }
int fine_structure_const
Definition: hepunit.py:287
static const double pi
Definition: SystemOfUnits.h:53
void SetupKinematics(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ NuclearDEDX()

G4double G4EmCorrections::NuclearDEDX ( const G4ParticleDefinition p,
const G4Material mat,
G4double  kineticEnergy,
G4bool  fluct = true 
)

Definition at line 677 of file G4EmCorrections.cc.

681 {
682  G4double nloss = 0.0;
683  if(e <= 0.0) return nloss;
684  SetupKinematics(p, mat, e);
685 
686  lossFlucFlag = fluct;
687 
688  // Projectile nucleus
689  G4double z1 = std::abs(particle->GetPDGCharge()*inveplus);
690  G4double mass1 = mass/amu_c2;
691 
692  // loop for the elements in the material
693  for (G4int iel=0; iel<numberOfElements; iel++) {
694  const G4Element* element = (*theElementVector)[iel] ;
695  G4double z2 = element->GetZ();
696  G4double mass2 = element->GetN();
697  nloss += (NuclearStoppingPower(kinEnergy, z1, z2, mass1, mass2))
698  * atomDensity[iel] ;
699  }
700  nloss *= theZieglerFactor;
701  return nloss;
702 }
G4double theZieglerFactor
int G4int
Definition: G4Types.hh:78
G4double GetN() const
Definition: G4Element.hh:134
G4double NuclearStoppingPower(G4double e, G4double z1, G4double z2, G4double m1, G4double m2)
const G4ParticleDefinition * particle
void SetupKinematics(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
const G4double * atomDensity
static const G4double inveplus
double G4double
Definition: G4Types.hh:76
float amu_c2
Definition: hepunit.py:277
G4double GetZ() const
Definition: G4Element.hh:131
G4double GetPDGCharge() const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ NuclearStoppingPower()

G4double G4EmCorrections::NuclearStoppingPower ( G4double  e,
G4double  z1,
G4double  z2,
G4double  m1,
G4double  m2 
)
private

Definition at line 706 of file G4EmCorrections.cc.

709 {
710  G4double energy = kineticEnergy/keV ; // energy in keV
711  G4double nloss = 0.0;
712 
713  G4double rm;
714  if(z1 > 1.5) rm = (mass1 + mass2) * ( Z23[G4lrint(z1)] + Z23[G4lrint(z2)] ) ;
715  else rm = (mass1 + mass2) * nist->GetZ13(G4lrint(z2));
716 
717  G4double er = 32.536 * mass2 * energy / ( z1 * z2 * rm ) ; // reduced energy
718 
719  if (er >= ed[0]) { nloss = a[0]; }
720  else {
721  // the table is inverse in energy
722  for (G4int i=102; i>=0; --i) {
723  if (er <= ed[i]) {
724  nloss = (a[i] - a[i+1])*(er - ed[i+1])/(ed[i] - ed[i+1]) + a[i+1];
725  break;
726  }
727  }
728  }
729 
730  // Stragling
731  if(lossFlucFlag) {
732  G4double sig = 4.0 * mass1 * mass2 / ((mass1 + mass2)*(mass1 + mass2)*
733  (4.0 + 0.197/(er*er) + 6.584/er));
734 
735  nloss *= G4RandGauss::shoot(1.0,sig) ;
736  }
737 
738  nloss *= 8.462 * z1 * z2 * mass1 / rm ; // Return to [ev/(10^15 atoms/cm^2]
739 
740  if ( nloss < 0.0) nloss = 0.0 ;
741 
742  return nloss;
743 }
ThreeVector shoot(const G4int Ap, const G4int Af)
G4double ed[104]
G4double GetZ13(G4double Z)
G4NistManager * nist
int G4int
Definition: G4Types.hh:78
double energy
Definition: plottest35.C:25
int G4lrint(double ad)
Definition: templates.hh:163
G4double a[104]
G4double Z23[100]
static const double keV
Definition: G4SIunits.hh:213
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator=()

G4EmCorrections& G4EmCorrections::operator= ( const G4EmCorrections right)
private

◆ SetIonisationModels()

void G4EmCorrections::SetIonisationModels ( G4VEmModel m1 = 0,
G4VEmModel m2 = 0 
)
inline

Definition at line 321 of file G4EmCorrections.hh.

322 {
323  if(mod1) { ionLEModel = mod1; }
324  if(mod2) { ionHEModel = mod2; }
325 }
G4VEmModel * ionLEModel
G4VEmModel * ionHEModel
Here is the caller graph for this function:

◆ SetupKinematics()

void G4EmCorrections::SetupKinematics ( const G4ParticleDefinition p,
const G4Material mat,
G4double  kineticEnergy 
)
inlineprivate

Definition at line 348 of file G4EmCorrections.hh.

351 {
352  if(kineticEnergy != kinEnergy || p != particle) {
353  particle = p;
354  kinEnergy = kineticEnergy;
355  mass = p->GetPDGMass();
356  tau = kineticEnergy / mass;
357  gamma = 1.0 + tau;
358  bg2 = tau * (tau+2.0);
359  beta2 = bg2/(gamma*gamma);
360  beta = std::sqrt(beta2);
361  ba2 = beta2/alpha2;
364  /(1. + 2.0*gamma*ratio + ratio*ratio);
366  if(charge > 1.5) { charge = effCharge.EffectiveCharge(p,mat,kinEnergy); }
367  q2 = charge*charge;
368  }
369  if(mat != material) {
370  material = mat;
374  }
375 }
const G4ElementVector * theElementVector
const G4Material * material
Float_t mat
const G4double * GetAtomicNumDensityVector() const
Definition: G4Material.hh:216
const G4ParticleDefinition * particle
G4double EffectiveCharge(const G4ParticleDefinition *p, const G4Material *material, G4double kineticEnergy)
const G4double * atomDensity
static const G4double inveplus
size_t GetNumberOfElements() const
Definition: G4Material.hh:186
G4ionEffectiveCharge effCharge
const G4ElementVector * GetElementVector() const
Definition: G4Material.hh:190
double G4double
Definition: G4Types.hh:76
static const double electron_mass_c2
G4double GetPDGCharge() const
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SetVerbose()

void G4EmCorrections::SetVerbose ( G4int  verb)
inline

Definition at line 377 of file G4EmCorrections.hh.

378 {
379  verbose = verb;
380 }
Here is the caller graph for this function:

◆ ShellCorrection()

G4double G4EmCorrections::ShellCorrection ( const G4ParticleDefinition p,
const G4Material mat,
G4double  kineticEnergy 
)

Definition at line 467 of file G4EmCorrections.cc.

470 {
471  SetupKinematics(p, mat, ekin);
472 
473  G4double term = 0.0;
474  //G4cout << "### G4EmCorrections::ShellCorrection " << mat->GetName()
475  // << " " << ekin/MeV << " MeV " << G4endl;
476  for (G4int i = 0; i<numberOfElements; ++i) {
477 
478  G4double res = 0.0;
479  G4double res0 = 0.0;
480  G4double Z = (*theElementVector)[i]->GetZ();
481  G4int iz = G4lrint(Z);
482  G4double Z2= (Z-0.3)*(Z-0.3);
483  G4double f = 1.0;
484  if(1 == iz) {
485  f = 0.5;
486  Z2 = 1.0;
487  }
488  G4double eta = ba2/Z2;
489  G4double tet = Z2*(1. + Z2*0.25*alpha2);
490  if(11 < iz) { tet = ThetaK->Value(Z); }
491  res0 = f*KShell(tet,eta);
492  res += res0;
493  //G4cout << " Z= " << iz << " Shell 0" << " tet= " << tet
494  // << " eta= " << eta << " resK= " << res0 << G4endl;
495  if(2 < iz) {
496  G4double Zeff = Z - ZD[10];
497  if(iz < 10) { Zeff = Z - ZD[iz]; }
498  Z2= Zeff*Zeff;
499  eta = ba2/Z2;
500  f = 0.125;
501  tet = ThetaL->Value(Z);
503  G4int nmax = std::min(4, ntot);
504  G4double norm = 0.0;
505  G4double eshell = 0.0;
506  for(G4int j=1; j<nmax; ++j) {
508  if(15 >= iz) {
509  if(3 > j) { tet = 0.25*Z2*(1.0 + 5*Z2*alpha2/16.); }
510  else { tet = 0.25*Z2*(1.0 + Z2*alpha2/16.); }
511  }
512  norm += ne;
513  eshell += tet*ne;
514  res0 = f*ne*LShell(tet,eta);
515  res += res0;
516  //G4cout << " Z= " << iz << " Shell " << j << " Ne= " << ne
517  // << " tet= " << tet << " eta= " << eta
518  // << " resL= " << res0 << G4endl;
519  }
520  if(ntot > nmax) {
521  eshell /= norm;
522  // Add M-shell
523  if(28 > iz) {
524  res += f*(iz - 10)*LShell(eshell,HM[iz-11]*eta);
525  } else if(63 > iz) {
526  res += f*18*LShell(eshell,HM[iz-11]*eta);
527  } else {
528  res += f*18*LShell(eshell,HM[52]*eta);
529  }
530  // Add N-shell
531  if(32 < iz) {
532  if(60 > iz) {
533  res += f*(iz - 28)*LShell(eshell,HN[iz-33]*eta);
534  } else if(63 > iz) {
535  res += 4*LShell(eshell,HN[iz-33]*eta);
536  } else {
537  res += 4*LShell(eshell,HN[30]*eta);
538  }
539  // Add O-P-shells
540  if(60 < iz) {
541  res += f*(iz - 60)*LShell(eshell,150*eta);
542  }
543  }
544  }
545  }
546  term += res*atomDensity[i]/Z;
547  }
548 
550  //G4cout << "# Shell Correction= " << term << G4endl;
551  return term;
552 }
Double_t Z2
G4double KShell(G4double theta, G4double eta)
G4double GetTotNbOfAtomsPerVolume() const
Definition: G4Material.hh:209
G4LPhysicsFreeVector * ThetaK
Float_t norm
const G4Material * material
int G4int
Definition: G4Types.hh:78
G4LPhysicsFreeVector * ThetaL
static G4double tet[DIM]
Float_t Z
G4double iz
Definition: TRTMaterials.hh:39
const G4int nmax
G4double Value(G4double theEnergy, size_t &lastidx) const
void SetupKinematics(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
const G4double * atomDensity
int G4lrint(double ad)
Definition: templates.hh:163
static G4int GetNumberOfElectrons(G4int Z, G4int SubshellNb)
G4double LShell(G4double theta, G4double eta)
double G4double
Definition: G4Types.hh:76
static G4int GetNumberOfShells(G4int Z)
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ShellCorrectionSTD()

G4double G4EmCorrections::ShellCorrectionSTD ( const G4ParticleDefinition p,
const G4Material mat,
G4double  kineticEnergy 
)

Definition at line 433 of file G4EmCorrections.cc.

436 {
437  SetupKinematics(p, mat, e);
438  G4double taulim= 8.0*MeV/mass;
439  G4double bg2lim= taulim * (taulim+2.0);
440 
441  G4double* shellCorrectionVector =
443  G4double sh = 0.0;
444  G4double x = 1.0;
445  G4double taul = material->GetIonisation()->GetTaul();
446 
447  if ( bg2 >= bg2lim ) {
448  for (G4int k=0; k<3; ++k) {
449  x *= bg2 ;
450  sh += shellCorrectionVector[k]/x;
451  }
452 
453  } else {
454  for (G4int k=0; k<3; ++k) {
455  x *= bg2lim ;
456  sh += shellCorrectionVector[k]/x;
457  }
458  sh *= G4Log(tau/taul)/G4Log(taulim/taul);
459  }
460  sh *= 0.5;
461  return sh;
462 }
G4IonisParamMat * GetIonisation() const
Definition: G4Material.hh:226
static const double MeV
Definition: G4SIunits.hh:211
const G4Material * material
int G4int
Definition: G4Types.hh:78
static const G4double bg2lim
G4double * GetShellCorrectionVector() const
G4double GetTaul() const
G4double G4Log(G4double x)
Definition: G4Log.hh:230
void SetupKinematics(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:

◆ SpinCorrection()

G4double G4EmCorrections::SpinCorrection ( const G4ParticleDefinition p,
const G4Material mat,
G4double  kineticEnergy 
)

Definition at line 269 of file G4EmCorrections.cc.

272 {
273  SetupKinematics(p, mat, e);
274  G4double dedx = 0.5*tmax/(kinEnergy + mass);
275  return 0.5*dedx*dedx;
276 }
void SetupKinematics(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
double G4double
Definition: G4Types.hh:76
Here is the call graph for this function:

◆ Value()

G4double G4EmCorrections::Value ( G4double  xv,
G4double  x1,
G4double  x2,
G4double  y1,
G4double  y2 
)
inlineprivate

Definition at line 302 of file G4EmCorrections.hh.

304 {
305  return y1 + (y2 - y1)*(xv - x1)/(x2 - x1);
306 }
Double_t y2[nxs]
Double_t y1[nxs]
Double_t x2[nxs]
Double_t x1[nxs]
Here is the caller graph for this function:

◆ Value2()

G4double G4EmCorrections::Value2 ( G4double  xv,
G4double  yv,
G4double  x1,
G4double  x2,
G4double  y1,
G4double  y2,
G4double  z11,
G4double  z21,
G4double  z12,
G4double  z22 
)
inlineprivate

Definition at line 308 of file G4EmCorrections.hh.

313 {
314  return (z11*(x2-xv)*(y2-yv) + z22*(xv-x1)*(yv-y1) +
315  0.5*(z12*((x2-xv)*(yv-y1)+(xv-x1)*(y2-yv))+
316  z21*((xv-x1)*(y2-yv)+(yv-y1)*(x2-xv))))
317  / ((x2-x1)*(y2-y1));
318 }
Double_t y2[nxs]
Double_t y1[nxs]
Double_t x2[nxs]
Double_t x1[nxs]
Here is the caller graph for this function:

Member Data Documentation

◆ a

G4double G4EmCorrections::a[104]
private

Definition at line 202 of file G4EmCorrections.hh.

◆ Aion

std::vector<G4int> G4EmCorrections::Aion
private

Definition at line 284 of file G4EmCorrections.hh.

◆ alpha2

G4double G4EmCorrections::alpha2
private

Definition at line 204 of file G4EmCorrections.hh.

◆ atomDensity

const G4double* G4EmCorrections::atomDensity
private

Definition at line 251 of file G4EmCorrections.hh.

◆ ba2

G4double G4EmCorrections::ba2
private

Definition at line 264 of file G4EmCorrections.hh.

◆ BarkasCorr

G4LPhysicsFreeVector* G4EmCorrections::BarkasCorr
private

Definition at line 238 of file G4EmCorrections.hh.

◆ beta

G4double G4EmCorrections::beta
private

Definition at line 263 of file G4EmCorrections.hh.

◆ beta2

G4double G4EmCorrections::beta2
private

Definition at line 262 of file G4EmCorrections.hh.

◆ bg2

G4double G4EmCorrections::bg2
private

Definition at line 261 of file G4EmCorrections.hh.

◆ charge

G4double G4EmCorrections::charge
private

Definition at line 266 of file G4EmCorrections.hh.

◆ CK

G4double G4EmCorrections::CK[20][29]
private

Definition at line 232 of file G4EmCorrections.hh.

◆ CL

G4double G4EmCorrections::CL[26][28]
private

Definition at line 233 of file G4EmCorrections.hh.

◆ COSEB

G4double G4EmCorrections::COSEB[14]
private

Definition at line 214 of file G4EmCorrections.hh.

◆ COSXI

G4double G4EmCorrections::COSXI[14]
private

Definition at line 215 of file G4EmCorrections.hh.

◆ curMaterial

const G4Material* G4EmCorrections::curMaterial
private

Definition at line 249 of file G4EmCorrections.hh.

◆ curParticle

const G4ParticleDefinition* G4EmCorrections::curParticle
private

Definition at line 247 of file G4EmCorrections.hh.

◆ currentZ

G4int G4EmCorrections::currentZ
private

Definition at line 282 of file G4EmCorrections.hh.

◆ currmat

std::vector<const G4Material*> G4EmCorrections::currmat
private

Definition at line 242 of file G4EmCorrections.hh.

◆ curVector

G4PhysicsVector* G4EmCorrections::curVector
private

Definition at line 291 of file G4EmCorrections.hh.

◆ eCorrMax

G4double G4EmCorrections::eCorrMax
private

Definition at line 269 of file G4EmCorrections.hh.

◆ eCorrMin

G4double G4EmCorrections::eCorrMin
private

Definition at line 268 of file G4EmCorrections.hh.

◆ ed

G4double G4EmCorrections::ed[104]
private

Definition at line 201 of file G4EmCorrections.hh.

◆ effCharge

G4ionEffectiveCharge G4EmCorrections::effCharge
private

Definition at line 272 of file G4EmCorrections.hh.

◆ Eta

G4double G4EmCorrections::Eta[29]
private

Definition at line 231 of file G4EmCorrections.hh.

◆ eth

G4double G4EmCorrections::eth
private

Definition at line 258 of file G4EmCorrections.hh.

◆ formfact

G4double G4EmCorrections::formfact
private

Definition at line 257 of file G4EmCorrections.hh.

◆ gamma

G4double G4EmCorrections::gamma
private

Definition at line 260 of file G4EmCorrections.hh.

◆ HM

G4double G4EmCorrections::HM[53]
private

Definition at line 234 of file G4EmCorrections.hh.

◆ HN

G4double G4EmCorrections::HN[31]
private

Definition at line 235 of file G4EmCorrections.hh.

◆ idx

G4int G4EmCorrections::idx
private

Definition at line 281 of file G4EmCorrections.hh.

◆ inveplus

const G4double G4EmCorrections::inveplus = 1.0/CLHEP::eplus
staticprivate

Definition at line 199 of file G4EmCorrections.hh.

◆ ionHEModel

G4VEmModel* G4EmCorrections::ionHEModel
private

Definition at line 277 of file G4EmCorrections.hh.

◆ ionLEModel

G4VEmModel* G4EmCorrections::ionLEModel
private

Definition at line 276 of file G4EmCorrections.hh.

◆ ionList

std::vector<const G4ParticleDefinition*> G4EmCorrections::ionList
private

Definition at line 287 of file G4EmCorrections.hh.

◆ ionTable

G4IonTable* G4EmCorrections::ionTable
private

Definition at line 275 of file G4EmCorrections.hh.

◆ kinEnergy

G4double G4EmCorrections::kinEnergy
private

Definition at line 254 of file G4EmCorrections.hh.

◆ lossFlucFlag

G4bool G4EmCorrections::lossFlucFlag
private

Definition at line 205 of file G4EmCorrections.hh.

◆ mass

G4double G4EmCorrections::mass
private

Definition at line 255 of file G4EmCorrections.hh.

◆ massFactor

G4double G4EmCorrections::massFactor
private

Definition at line 256 of file G4EmCorrections.hh.

◆ material

const G4Material* G4EmCorrections::material
private

Definition at line 248 of file G4EmCorrections.hh.

◆ materialList

std::vector<const G4Material*> G4EmCorrections::materialList
private

Definition at line 289 of file G4EmCorrections.hh.

◆ materialName

std::vector<G4String> G4EmCorrections::materialName
private

Definition at line 285 of file G4EmCorrections.hh.

◆ nbinCorr

G4int G4EmCorrections::nbinCorr
private

Definition at line 270 of file G4EmCorrections.hh.

◆ ncouples

size_t G4EmCorrections::ncouples
private

Definition at line 244 of file G4EmCorrections.hh.

◆ nEtaK

G4int G4EmCorrections::nEtaK
private

Definition at line 211 of file G4EmCorrections.hh.

◆ nEtaL

G4int G4EmCorrections::nEtaL
private

Definition at line 212 of file G4EmCorrections.hh.

◆ nIons

G4int G4EmCorrections::nIons
private

Definition at line 280 of file G4EmCorrections.hh.

◆ nist

G4NistManager* G4EmCorrections::nist
private

Definition at line 274 of file G4EmCorrections.hh.

◆ nK

G4int G4EmCorrections::nK
private

Definition at line 209 of file G4EmCorrections.hh.

◆ nL

G4int G4EmCorrections::nL
private

Definition at line 210 of file G4EmCorrections.hh.

◆ numberOfElements

G4int G4EmCorrections::numberOfElements
private

Definition at line 253 of file G4EmCorrections.hh.

◆ particle

const G4ParticleDefinition* G4EmCorrections::particle
private

Definition at line 246 of file G4EmCorrections.hh.

◆ q2

G4double G4EmCorrections::q2
private

Definition at line 267 of file G4EmCorrections.hh.

◆ SK

G4double G4EmCorrections::SK[20]
private

Definition at line 219 of file G4EmCorrections.hh.

◆ SL

G4double G4EmCorrections::SL[26]
private

Definition at line 226 of file G4EmCorrections.hh.

◆ stopData

std::vector<G4PhysicsVector*> G4EmCorrections::stopData
private

Definition at line 290 of file G4EmCorrections.hh.

◆ tau

G4double G4EmCorrections::tau
private

Definition at line 259 of file G4EmCorrections.hh.

◆ thcorr

std::map< G4int, std::vector<G4double> > G4EmCorrections::thcorr
private

Definition at line 243 of file G4EmCorrections.hh.

◆ theElementVector

const G4ElementVector* G4EmCorrections::theElementVector
private

Definition at line 250 of file G4EmCorrections.hh.

◆ TheK

G4double G4EmCorrections::TheK[20]
private

Definition at line 218 of file G4EmCorrections.hh.

◆ TheL

G4double G4EmCorrections::TheL[26]
private

Definition at line 225 of file G4EmCorrections.hh.

◆ ThetaK

G4LPhysicsFreeVector* G4EmCorrections::ThetaK
private

Definition at line 239 of file G4EmCorrections.hh.

◆ ThetaL

G4LPhysicsFreeVector* G4EmCorrections::ThetaL
private

Definition at line 240 of file G4EmCorrections.hh.

◆ theZieglerFactor

G4double G4EmCorrections::theZieglerFactor
private

Definition at line 203 of file G4EmCorrections.hh.

◆ TK

G4double G4EmCorrections::TK[20]
private

Definition at line 220 of file G4EmCorrections.hh.

◆ TL

G4double G4EmCorrections::TL[26]
private

Definition at line 227 of file G4EmCorrections.hh.

◆ tmax

G4double G4EmCorrections::tmax
private

Definition at line 265 of file G4EmCorrections.hh.

◆ UK

G4double G4EmCorrections::UK[20]
private

Definition at line 221 of file G4EmCorrections.hh.

◆ UL

G4double G4EmCorrections::UL[26]
private

Definition at line 228 of file G4EmCorrections.hh.

◆ verbose

G4int G4EmCorrections::verbose
private

Definition at line 207 of file G4EmCorrections.hh.

◆ VK

G4double G4EmCorrections::VK[20]
private

Definition at line 222 of file G4EmCorrections.hh.

◆ VL

G4double G4EmCorrections::VL[26]
private

Definition at line 229 of file G4EmCorrections.hh.

◆ Z23

G4double G4EmCorrections::Z23[100]
private

Definition at line 236 of file G4EmCorrections.hh.

◆ ZD

G4double G4EmCorrections::ZD[11]
private

Definition at line 216 of file G4EmCorrections.hh.

◆ Zion

std::vector<G4int> G4EmCorrections::Zion
private

Definition at line 283 of file G4EmCorrections.hh.

◆ ZK

G4double G4EmCorrections::ZK[20]
private

Definition at line 223 of file G4EmCorrections.hh.


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