84 theMomentumDirection(0.0,0.0,1.0),
85 theParticleDefinition(0),
86 theKineticEnergy(0.0),
88 theDynamicalMass(0.0),
89 theDynamicalCharge(0.0),
90 theDynamicalSpin(0.0),
91 theDynamicalMagneticMoment(0.0),
92 theElectronOccupancy(0),
93 thePreAssignedDecayProducts(0),
94 thePreAssignedDecayTime(-1.0),
107 theMomentumDirection(aMomentumDirection),
108 theParticleDefinition(aParticleDefinition),
109 theKineticEnergy(aKineticEnergy),
111 theDynamicalMass(aParticleDefinition->GetPDGMass()),
112 theDynamicalCharge(aParticleDefinition->GetPDGCharge()),
113 theDynamicalSpin(aParticleDefinition->GetPDGSpin()),
114 theDynamicalMagneticMoment(aParticleDefinition->GetPDGMagneticMoment()),
115 theElectronOccupancy(0),
116 thePreAssignedDecayProducts(0),
117 thePreAssignedDecayTime(-1.0),
129 theMomentumDirection(aMomentumDirection),
130 theParticleDefinition(aParticleDefinition),
131 theKineticEnergy(aKineticEnergy),
133 theDynamicalMass(aParticleDefinition->GetPDGMass()),
134 theDynamicalCharge(aParticleDefinition->GetPDGCharge()),
135 theDynamicalSpin(aParticleDefinition->GetPDGSpin()),
136 theDynamicalMagneticMoment(aParticleDefinition->GetPDGMagneticMoment()),
137 theElectronOccupancy(0),
138 thePreAssignedDecayProducts(0),
139 thePreAssignedDecayTime(-1.0),
153 theParticleDefinition(aParticleDefinition),
154 theKineticEnergy(0.0),
156 theDynamicalMass(aParticleDefinition->GetPDGMass()),
157 theDynamicalCharge(aParticleDefinition->GetPDGCharge()),
158 theDynamicalSpin(aParticleDefinition->GetPDGSpin()),
159 theDynamicalMagneticMoment(aParticleDefinition->GetPDGMagneticMoment()),
160 theElectronOccupancy(0),
161 thePreAssignedDecayProducts(0),
162 thePreAssignedDecayTime(-1.0),
174 theParticleDefinition(aParticleDefinition),
175 theKineticEnergy(0.0),
177 theDynamicalMass(aParticleDefinition->GetPDGMass()),
178 theDynamicalCharge(aParticleDefinition->GetPDGCharge()),
179 theDynamicalSpin(aParticleDefinition->GetPDGSpin()),
180 theDynamicalMagneticMoment(aParticleDefinition->GetPDGMagneticMoment()),
181 theElectronOccupancy(0),
182 thePreAssignedDecayProducts(0),
183 thePreAssignedDecayTime(-1.0),
194 theParticleDefinition(aParticleDefinition),
195 theKineticEnergy(0.0),
197 theDynamicalMass(aParticleDefinition->GetPDGMass()),
198 theDynamicalCharge(aParticleDefinition->GetPDGCharge()),
199 theDynamicalSpin(aParticleDefinition->GetPDGSpin()),
200 theDynamicalMagneticMoment(aParticleDefinition->GetPDGMagneticMoment()),
201 theElectronOccupancy(0),
202 thePreAssignedDecayProducts(0),
203 thePreAssignedDecayTime(-1.0),
211 G4double mass2 = totalEnergy*totalEnergy - pModule2;
218 if (std::abs(PDGmass2-mass2)>EnergyMomentumRelationAllowance*EnergyMomentumRelationAllowance){
233 theMomentumDirection(right.theMomentumDirection),
234 theParticleDefinition(right.theParticleDefinition),
235 thePolarization(right.thePolarization),
236 theKineticEnergy(right.theKineticEnergy),
238 theDynamicalMass(right.theDynamicalMass),
239 theDynamicalCharge(right.theDynamicalCharge),
240 theDynamicalSpin(right.theDynamicalSpin),
241 theDynamicalMagneticMoment(right.theDynamicalMagneticMoment),
242 theElectronOccupancy(0),
243 thePreAssignedDecayProducts(0),
244 thePreAssignedDecayTime(-1.0),
245 verboseLevel(right.verboseLevel),
246 primaryParticle(right.primaryParticle),
247 thePDGcode(right.thePDGcode)
274 if (
this != &right) {
315 G4cout <<
" G4DynamicParticle::SetDefinition()::"
316 <<
"!!! Pre-assigned decay products is attached !!!! " <<
G4endl;
319 G4cout <<
"!!! Pre-assigned decay products will be deleted !!!! " <<
G4endl;
395 G4double mass2 = totalenergy*totalenergy - pModule2;
417 G4cout <<
" G4DynamicParticle::DumpInfo():: !!!Particle type not defined !!!! " <<
G4endl;
461 if (electronMass<=0.0) {
464 G4Exception(
"G4DynamicParticle::GetElectronMass()",
"PART021",
465 FatalException,
"G4DynamicParticle: G4Electron is not defined !!");
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
void SetMass(G4double mass)
static G4bool IsIon(const G4ParticleDefinition *)
G4int operator==(const G4DynamicParticle &right) const
static G4ParticleTable * GetParticleTable()
static constexpr double MeV
void SetKineticEnergy(G4double aEnergy)
static constexpr double keV
const G4ThreeVector & GetMomentumDirection() const
G4ThreeVector thePolarization
const G4String & GetParticleName() const
G4double thePreAssignedDecayTime
G4double GetPDGCharge() const
#define G4ThreadLocalStatic
G4double GetPDGMass() const
void SetMomentumDirection(const G4ThreeVector &aDirection)
G4double GetPDGSpin() const
G4ParticleDefinition * GetDefinition() const
G4double theDynamicalCharge
G4double GetProperTime() const
G4Allocator< G4DynamicParticle > *& pDynamicParticleAllocator()
G4double GetElectronMass() const
G4DynamicParticle & operator=(const G4DynamicParticle &right)
G4double GetMagneticMoment() const
G4double GetCharge() const
void Set4Momentum(const G4LorentzVector &momentum)
G4ThreeVector theMomentumDirection
const G4ParticleDefinition * theParticleDefinition
G4double GetPDGMagneticMoment() const
G4double theDynamicalMass
G4ThreeVector GetMomentum() const
static constexpr double eplus
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
G4ElectronOccupancy * theElectronOccupancy
G4int operator!=(const G4DynamicParticle &right) const
G4DecayProducts * thePreAssignedDecayProducts
void SetMomentum(const G4ThreeVector &momentum)
G4double GetKineticEnergy() const
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
G4GLOB_DLL std::ostream G4cout
G4double theDynamicalSpin
G4double theDynamicalMagneticMoment
G4double theKineticEnergy
G4double GetTotalMomentum() const
G4double GetTotalEnergy() const
static const G4double EnergyMomentumRelationAllowance
void DumpInfo(G4int mode=0) const
static constexpr double GeV
void AllocateElectronOccupancy()
static constexpr double tesla