19#include "BDSElectronQuantumLevel.hh"
23#include "CLHEP/Units/PhysicalConstants.h"
24#include "CLHEP/Units/SystemOfUnits.h"
26BDSElectronQuantumLevel::BDSElectronQuantumLevel(G4int nPrincipleNumberIn,
27 G4int lAngularNumberIn,
28 G4double jSpinOrbitCouplingIn):
29 nPrincipleNumber(nPrincipleNumberIn),
30 lAngularNumber(lAngularNumberIn),
31 jSpinOrbitCoupling(jSpinOrbitCouplingIn),
37 maxOccupancy=(jSpinOrbitCoupling*2)+1;
38 levelEnergy=DiracEnergyNJ(nPrincipleNumberIn,jSpinOrbitCouplingIn);
41BDSElectronQuantumLevel::~BDSElectronQuantumLevel()
44G4double BDSElectronQuantumLevel::DiracEnergyNJ(G4int n, G4int j)
46 G4double a = CLHEP::fine_structure_const;
47 G4double c = CLHEP::c_light;
48 return ((c*c*a*a)/(n*n))*(1+((a*a)/(n*n))*((n/(j+0.5))+0.75));
51void BDSElectronQuantumLevel::AddElectrons(G4int number)
53 if(maxOccupancy - currentOccupancy >= number)
54 {currentOccupancy +=number;}
59void BDSElectronQuantumLevel::RemoveElectrons(G4int number)
61 if (currentOccupancy >= number)
62 {currentOccupancy = currentOccupancy - number;}