54 #ifndef G4EmCorrections_h
55 #define G4EmCorrections_h 1
57 #include <CLHEP/Units/PhysicalConstants.h>
243 std::map< G4int, std::vector<G4double> >
thcorr;
287 std::vector<const G4ParticleDefinition*>
ionList;
298 do {--iddd;}
while (iddd>0 && x<y[iddd]);
305 return y1 + (y2 - y1)*(xv - x1)/(x2 - x1);
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))))
363 tmax = 2.0*CLHEP::electron_mass_c2*
bg2
364 /(1. + 2.0*
gamma*ratio + ratio*ratio);
const G4ElementVector * theElementVector
G4double HighOrderCorrections(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy, G4double cutEnergy)
G4double DensityCorrection(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4double theZieglerFactor
std::vector< G4Element * > G4ElementVector
void SetVerbose(G4int verb)
void SetIonisationModels(G4VEmModel *m1=0, G4VEmModel *m2=0)
std::vector< const G4Material * > currmat
G4double KShell(G4double theta, G4double eta)
G4double EffectiveChargeSquareRatio(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4LPhysicsFreeVector * ThetaK
G4double EffectiveChargeSquareRatio(const G4ParticleDefinition *p, const G4Material *material, G4double kineticEnergy)
const G4Material * material
G4double MottCorrection(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4double GetParticleCharge(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4double EffectiveChargeCorrection(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
std::vector< G4int > Aion
G4double BlochCorrection(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4EmCorrections & operator=(const G4EmCorrections &right)
const G4ElementVector * GetElementVector() const
G4double SpinCorrection(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4LPhysicsFreeVector * ThetaL
void AddStoppingData(G4int Z, G4int A, const G4String &materialName, G4PhysicsVector *dVector)
G4EmCorrections(G4int verb)
std::map< G4int, std::vector< G4double > > thcorr
G4double Value2(G4double xv, G4double yv, G4double x1, G4double x2, G4double y1, G4double y2, G4double z11, G4double z21, G4double z12, G4double z22)
double A(double temperature)
G4double NuclearStoppingPower(G4double e, G4double z1, G4double z2, G4double m1, G4double m2)
G4int Index(G4double x, G4double *y, G4int n)
G4double NuclearDEDX(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy, G4bool fluct=true)
G4double IonBarkasCorrection(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
std::vector< G4String > materialName
G4double BarkasCorrection(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4double IonHighOrderCorrections(const G4ParticleDefinition *, const G4MaterialCutsCouple *, G4double kineticEnergy)
const G4ParticleDefinition * particle
const G4double * GetAtomicNumDensityVector() const
const G4ParticleDefinition * curParticle
std::vector< const G4Material * > materialList
G4double EffectiveCharge(const G4ParticleDefinition *p, const G4Material *material, G4double kineticEnergy)
void SetupKinematics(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4double ShellCorrection(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
const G4double * atomDensity
G4double GetPDGMass() const
void BuildCorrectionVector()
std::vector< const G4ParticleDefinition * > ionList
const G4double x[NPOINTSGL]
static const G4double inveplus
G4double KShellCorrection(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4double LShell(G4double theta, G4double eta)
G4double LShellCorrection(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
std::vector< G4PhysicsVector * > stopData
G4LPhysicsFreeVector * BarkasCorr
G4ionEffectiveCharge effCharge
size_t GetNumberOfElements() const
G4double ComputeIonCorrections(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
G4double ShellCorrectionSTD(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
const G4Material * curMaterial
G4PhysicsVector * curVector
G4double GetPDGCharge() const
G4int GetNumberOfStoppingVectors()
void InitialiseForNewRun()
G4double Value(G4double xv, G4double x1, G4double x2, G4double y1, G4double y2)
virtual ~G4EmCorrections()
G4double Bethe(const G4ParticleDefinition *, const G4Material *, G4double kineticEnergy)
std::vector< G4int > Zion