54 lowEnergyLimit(1.0*
eV), currentCharge(0.)
60 G4cout <<
"G4ParticleChangeForLoss::G4ParticleChangeForLoss() " <<
G4endl;
69 G4cout <<
"G4ParticleChangeForLoss::~G4ParticleChangeForLoss() " <<
G4endl;
79 G4cout <<
"G4ParticleChangeForLoss:: copy constructor is called " <<
G4endl;
81 currentTrack = right.currentTrack;
82 proposedKinEnergy = right.proposedKinEnergy;
83 lowEnergyLimit = right.lowEnergyLimit;
84 currentCharge = right.currentCharge;
85 proposedMomentumDirection = right.proposedMomentumDirection;
94 G4cout <<
"G4ParticleChangeForLoss:: assignment operator is called " <<
G4endl;
102 G4cout <<
"G4ParticleChangeForLoss: assignment operator Warning ";
103 G4cout <<
"theListOfSecondaries is not empty ";
124 currentTrack = right.currentTrack;
125 proposedKinEnergy = right.proposedKinEnergy;
126 currentCharge = right.currentCharge;
127 proposedMomentumDirection = right.proposedMomentumDirection;
142 G4cout <<
" Charge (eplus) : "
143 << std::setw(20) << currentCharge/
eplus
145 G4cout <<
" Kinetic Energy (MeV): "
146 << std::setw(20) << proposedKinEnergy/
MeV
148 G4cout <<
" Momentum Direct - x : "
149 << std::setw(20) << proposedMomentumDirection.
x()
151 G4cout <<
" Momentum Direct - y : "
152 << std::setw(20) << proposedMomentumDirection.
y()
154 G4cout <<
" Momentum Direct - z : "
155 << std::setw(20) << proposedMomentumDirection.
z()
163 G4bool exitWithError =
false;
173 G4cout <<
"G4ParticleChangeForLoss::CheckIt: ";
174 G4cout <<
"KinEnergy become larger than the initial value!"
175 <<
" Difference: " << accuracy <<
"[MeV] " <<
G4endl;
194 "energy was illegal");
219 (proposedKinEnergy - preKinEnergy);
222 if (kinEnergy < lowEnergyLimit) {
227 pPostStepPoint->
SetCharge( currentCharge );
249 pPostStepPoint->
SetCharge( currentCharge );
253 if(proposedKinEnergy > 0.0) {
G4ParticleDefinition * GetDefinition() const
virtual void DumpInfo() const
virtual G4bool CheckIt(const G4Track &)
void SetElement(G4int anIndex, Type *anElement)
void AddNonIonizingEnergyDeposit(G4double value)
G4Step * UpdateStepForAlongStep(G4Step *Step)
const G4ThreeVector & GetPosition() const
G4TrackFastVector * theListOfSecondaries
void SetWeight(G4double aValue)
virtual void DumpInfo() const
const G4String & GetParticleName() const
static const G4double accuracyForException
G4Step * UpdateStepForPostStep(G4Step *Step)
void SetMomentumDirection(const G4ThreeVector &aValue)
G4StepPoint * GetPreStepPoint() const
G4ParticleChangeForLoss & operator=(const G4ParticleChangeForLoss &right)
virtual G4bool CheckIt(const G4Track &)
G4double GetKineticEnergy() const
void SetPolarization(const G4ThreeVector &aValue)
G4GLOB_DLL std::ostream G4cout
static constexpr double m
G4SteppingControl theSteppingControlFlag
G4bool isParentWeightProposed
G4double theLocalEnergyDeposit
static constexpr double eplus
G4int theNumberOfSecondaries
static constexpr double eV
G4ParticleChangeForLoss()
G4double CalculateVelocity() const
G4bool fSetSecondaryWeightByProcess
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
void SetVelocity(G4double v)
G4FastVector< G4Track, G4TrackFastVectorSize > G4TrackFastVector
void SetCharge(G4double value)
G4StepPoint * GetPostStepPoint() const
void AddTotalEnergyDeposit(G4double value)
static constexpr double MeV
G4TrackStatus theStatusChange
void SetKineticEnergy(const G4double aValue)
G4double GetKineticEnergy() const
static const G4double accuracyForWarning
void SetKineticEnergy(const G4double aValue)
G4Track * GetTrack() const
G4double theNonIonizingEnergyDeposit
virtual ~G4ParticleChangeForLoss()