18#include "BDSElectronQuantumLevel.hh"
20#include "CLHEP/Units/PhysicalConstants.h"
21#include "CLHEP/Units/SystemOfUnits.h"
24BDSElectronQuantumLevel::BDSElectronQuantumLevel(G4int nPrincipleNumberIn,
25 G4int lAngularNumberIn,
26 G4double jSpinOrbitCouplingIn):
27 nPrincipleNumber(nPrincipleNumberIn),
28 lAngularNumber(lAngularNumberIn),
29 jSpinOrbitCoupling(jSpinOrbitCouplingIn),
35 maxOccupancy = ((G4int)jSpinOrbitCoupling*2)+1;
36 levelEnergy = DiracEnergyNJ(nPrincipleNumberIn, (G4int)jSpinOrbitCouplingIn);
39G4double BDSElectronQuantumLevel::DiracEnergyNJ(G4int n, G4int j)
const
41 G4double a = CLHEP::fine_structure_const;
42 G4double c = CLHEP::c_light;
43 return ((c*c*a*a)/(n*n))*(1+((a*a)/(n*n))*((n/(j+0.5))+0.75));
46void BDSElectronQuantumLevel::AddElectrons(G4int number)
48 if (maxOccupancy - currentOccupancy >= number)
49 {currentOccupancy +=number;}
54void BDSElectronQuantumLevel::RemoveElectrons(G4int number)
56 if (currentOccupancy >= number)
57 {currentOccupancy = currentOccupancy - number;}