76 static const G4double EnergyMomentumRelationAllowance =
keV;
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),
123 theParticleDefinition(aParticleDefinition),
124 theKineticEnergy(0.0),
126 theDynamicalMass(aParticleDefinition->GetPDGMass()),
127 theDynamicalCharge(aParticleDefinition->GetPDGCharge()),
128 theDynamicalSpin(aParticleDefinition->GetPDGSpin()),
129 theDynamicalMagneticMoment(aParticleDefinition->GetPDGMagneticMoment()),
130 theElectronOccupancy(0),
131 thePreAssignedDecayProducts(0),
132 thePreAssignedDecayTime(-1.0),
143 theParticleDefinition(aParticleDefinition),
144 theKineticEnergy(0.0),
146 theDynamicalMass(aParticleDefinition->GetPDGMass()),
147 theDynamicalCharge(aParticleDefinition->GetPDGCharge()),
148 theDynamicalSpin(aParticleDefinition->GetPDGSpin()),
149 theDynamicalMagneticMoment(aParticleDefinition->GetPDGMagneticMoment()),
150 theElectronOccupancy(0),
151 thePreAssignedDecayProducts(0),
152 thePreAssignedDecayTime(-1.0),
163 theParticleDefinition(aParticleDefinition),
164 theKineticEnergy(0.0),
166 theDynamicalMass(aParticleDefinition->GetPDGMass()),
167 theDynamicalCharge(aParticleDefinition->GetPDGCharge()),
168 theDynamicalSpin(aParticleDefinition->GetPDGSpin()),
169 theDynamicalMagneticMoment(aParticleDefinition->GetPDGMagneticMoment()),
170 theElectronOccupancy(0),
171 thePreAssignedDecayProducts(0),
172 thePreAssignedDecayTime(-1.0),
180 G4double mass2 = totalEnergy*totalEnergy - pModule2;
181 if(mass2 < EnergyMomentumRelationAllowance*EnergyMomentumRelationAllowance) {
197 theMomentumDirection(right.theMomentumDirection),
198 theParticleDefinition(right.theParticleDefinition),
199 thePolarization(right.thePolarization),
200 theKineticEnergy(right.theKineticEnergy),
202 theDynamicalMass(right.theDynamicalMass),
203 theDynamicalCharge(right.theDynamicalCharge),
204 theDynamicalSpin(right.theDynamicalSpin),
205 theDynamicalMagneticMoment(right.theDynamicalMagneticMoment),
206 theElectronOccupancy(0),
207 thePreAssignedDecayProducts(0),
208 thePreAssignedDecayTime(-1.0),
209 verboseLevel(right.verboseLevel),
210 primaryParticle(right.primaryParticle),
211 thePDGcode(right.thePDGcode)
238 if (
this != &right) {
279 G4cout <<
" G4DynamicParticle::SetDefinition()::"
280 <<
"!!! Pre-assigned decay products is attached !!!! " <<
G4endl;
283 G4cout <<
"!!! Pre-assigned decay products will be deleted !!!! " <<
G4endl;
359 G4double mass2 = totalenergy*totalenergy - pModule2;
360 if(mass2 < EnergyMomentumRelationAllowance*EnergyMomentumRelationAllowance) {
381 G4cout <<
" G4DynamicParticle::DumpInfo():: !!!Particle type not defined !!!! " <<
G4endl;
418 if (electronMass<=0.0) {
421 G4Exception(
"G4DynamicParticle::GetElectronMass()",
"PART021",
422 FatalException,
"G4DynamicParticle: G4Electron is not defined !!");
G4ParticleDefinition * FindParticle(G4int PDGEncoding)
void SetMomentum(const G4ThreeVector &momentum)
G4double GetKineticEnergy() const
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
G4double theDynamicalMass
const G4ThreeVector & GetMomentumDirection() const
G4double GetCharge() const
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
G4double thePreAssignedDecayTime
G4double GetPDGSpin() const
G4ThreeVector thePolarization
G4ThreadLocal G4Allocator< G4DynamicParticle > * pDynamicParticleAllocator
G4double GetPDGMagneticMoment() const
G4double theDynamicalCharge
void SetDefinition(const G4ParticleDefinition *aParticleDefinition)
const G4ParticleDefinition * theParticleDefinition
G4double GetPDGCharge() const
G4double GetMagneticMoment() const
G4DynamicParticle & operator=(const G4DynamicParticle &right)
G4ThreeVector GetMomentum() const
G4double GetElectronMass() const