80 theMomentumDirection(0.0,0.0,1.0),
81 theParticleDefinition(0),
82 theKineticEnergy(0.0),
84 theDynamicalMass(0.0),
85 theDynamicalCharge(0.0),
86 theDynamicalSpin(0.0),
87 theDynamicalMagneticMoment(0.0),
88 theElectronOccupancy(0),
89 thePreAssignedDecayProducts(0),
90 thePreAssignedDecayTime(-1.0),
103 theMomentumDirection(aMomentumDirection),
104 theParticleDefinition(aParticleDefinition),
105 theKineticEnergy(aKineticEnergy),
107 theDynamicalMass(aParticleDefinition->GetPDGMass()),
108 theDynamicalCharge(aParticleDefinition->GetPDGCharge()),
109 theDynamicalSpin(aParticleDefinition->GetPDGSpin()),
110 theDynamicalMagneticMoment(aParticleDefinition->GetPDGMagneticMoment()),
111 theElectronOccupancy(0),
112 thePreAssignedDecayProducts(0),
113 thePreAssignedDecayTime(-1.0),
125 theMomentumDirection(aMomentumDirection),
126 theParticleDefinition(aParticleDefinition),
127 theKineticEnergy(aKineticEnergy),
129 theDynamicalMass(aParticleDefinition->GetPDGMass()),
130 theDynamicalCharge(aParticleDefinition->GetPDGCharge()),
131 theDynamicalSpin(aParticleDefinition->GetPDGSpin()),
132 theDynamicalMagneticMoment(aParticleDefinition->GetPDGMagneticMoment()),
133 theElectronOccupancy(0),
134 thePreAssignedDecayProducts(0),
135 thePreAssignedDecayTime(-1.0),
149 theParticleDefinition(aParticleDefinition),
150 theKineticEnergy(0.0),
152 theDynamicalMass(aParticleDefinition->GetPDGMass()),
153 theDynamicalCharge(aParticleDefinition->GetPDGCharge()),
154 theDynamicalSpin(aParticleDefinition->GetPDGSpin()),
155 theDynamicalMagneticMoment(aParticleDefinition->GetPDGMagneticMoment()),
156 theElectronOccupancy(0),
157 thePreAssignedDecayProducts(0),
158 thePreAssignedDecayTime(-1.0),
170 theParticleDefinition(aParticleDefinition),
171 theKineticEnergy(0.0),
173 theDynamicalMass(aParticleDefinition->GetPDGMass()),
174 theDynamicalCharge(aParticleDefinition->GetPDGCharge()),
175 theDynamicalSpin(aParticleDefinition->GetPDGSpin()),
176 theDynamicalMagneticMoment(aParticleDefinition->GetPDGMagneticMoment()),
177 theElectronOccupancy(0),
178 thePreAssignedDecayProducts(0),
179 thePreAssignedDecayTime(-1.0),
190 theParticleDefinition(aParticleDefinition),
191 theKineticEnergy(0.0),
193 theDynamicalMass(aParticleDefinition->GetPDGMass()),
194 theDynamicalCharge(aParticleDefinition->GetPDGCharge()),
195 theDynamicalSpin(aParticleDefinition->GetPDGSpin()),
196 theDynamicalMagneticMoment(aParticleDefinition->GetPDGMagneticMoment()),
197 theElectronOccupancy(0),
198 thePreAssignedDecayProducts(0),
199 thePreAssignedDecayTime(-1.0),
205 G4double pModule2 = aParticleMomentum.mag2();
207 G4double mass2 = totalEnergy*totalEnergy - pModule2;
214 if (std::abs(PDGmass2-mass2)>EnergyMomentumRelationAllowance*EnergyMomentumRelationAllowance){
229 theMomentumDirection(right.theMomentumDirection),
230 theParticleDefinition(right.theParticleDefinition),
231 thePolarization(right.thePolarization),
232 theKineticEnergy(right.theKineticEnergy),
234 theDynamicalMass(right.theDynamicalMass),
235 theDynamicalCharge(right.theDynamicalCharge),
236 theDynamicalSpin(right.theDynamicalSpin),
237 theDynamicalMagneticMoment(right.theDynamicalMagneticMoment),
238 theElectronOccupancy(0),
239 thePreAssignedDecayProducts(0),
240 thePreAssignedDecayTime(-1.0),
241 verboseLevel(right.verboseLevel),
242 primaryParticle(right.primaryParticle),
243 thePDGcode(right.thePDGcode)
270 if (
this != &right) {
311 G4cout <<
" G4DynamicParticle::SetDefinition()::"
312 <<
"!!! Pre-assigned decay products is attached !!!! " <<
G4endl;
315 G4cout <<
"!!! Pre-assigned decay products will be deleted !!!! " <<
G4endl;
373 G4double pModule2 = momentum.mag2();
387 G4double pModule2 = momentum.vect().mag2();
390 G4double totalenergy = momentum.t();
391 G4double mass2 = totalenergy*totalenergy - pModule2;
413 G4cout <<
" G4DynamicParticle::DumpInfo():: !!!Particle type not defined !!!! " <<
G4endl;
457 if (electronMass<=0.0) {
460 G4Exception(
"G4DynamicParticle::GetElectronMass()",
"PART021",
461 FatalException,
"G4DynamicParticle: G4Electron is not defined !!");
static constexpr double tesla
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
void SetMomentum(const G4ThreeVector &momentum)
G4double GetKineticEnergy() const
CLHEP::Hep3Vector G4ThreeVector
G4double GetTotalEnergy() const
G4double theDynamicalMagneticMoment
G4double GetProperTime() const
G4double theDynamicalSpin
void DumpInfo(G4int mode=0) const
static G4bool IsIon(const G4ParticleDefinition *)
G4double theKineticEnergy
void SetMomentumDirection(const G4ThreeVector &aDirection)
G4ParticleDefinition * GetDefinition() const
G4ThreeVector theMomentumDirection
const G4String & GetParticleName() const
G4double GetTotalMomentum() const
G4GLOB_DLL std::ostream G4cout
static const G4double EnergyMomentumRelationAllowance
G4double theDynamicalMass
const G4ThreeVector & GetMomentumDirection() const
G4double GetCharge() const
static constexpr double eplus
void AllocateElectronOccupancy()
void SetKineticEnergy(G4double aEnergy)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
void Set4Momentum(const G4LorentzVector &momentum)
G4DecayProducts * thePreAssignedDecayProducts
G4int operator!=(const G4DynamicParticle &right) const
G4double GetPDGMass() const
G4ElectronOccupancy * theElectronOccupancy
static G4ParticleTable * GetParticleTable()
G4int operator==(const G4DynamicParticle &right) const
static constexpr double GeV
G4double thePreAssignedDecayTime
G4double GetPDGSpin() const
G4ThreeVector thePolarization
static constexpr double MeV
G4ThreadLocal G4Allocator< G4DynamicParticle > * pDynamicParticleAllocator
G4double GetPDGMagneticMoment() const
G4double theDynamicalCharge
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
const G4ParticleDefinition * theParticleDefinition
G4double GetPDGCharge() const
static constexpr double keV
G4double GetMagneticMoment() const
void SetMass(G4double mass)
G4DynamicParticle & operator=(const G4DynamicParticle &right)
G4ThreeVector GetMomentum() const
G4double GetElectronMass() const
CLHEP::HepLorentzVector G4LorentzVector