40 fNumberOfSecondaries(0),
42 fParticleChangeIsSet(false)
57 fNumberOfSecondaries(0),
59 fParticleChangeIsSet(false)
67 if (
this == &rhs)
return *
this;
81 if (particleChangeA || particleChangeB)
83 G4bool test = particleChangeA && particleChangeB;
88 exceptionDescription <<
"If you give for one track a particleChange, ";
90 <<
"G4ITReactionChange is expecting that you give for both ";
91 exceptionDescription <<
"reacting tracks a particleChange.";
92 G4Exception(
"G4ITReactionChange::Initialize",
"ITReactionChange001",
124 std::map<const G4Track*, G4VParticleChange*>::iterator it =
fParticleChange
128 else return it->second;
133 std::map<const G4Track*, G4VParticleChange*>::iterator it =
fParticleChange
142 <<
"No track A found ! Have you initialized the ReactionChange ?";
143 G4Exception(
"G4ITReactionChange::GetTrackA",
"ITReactionChange001",
150 std::map<const G4Track*, G4VParticleChange*>::iterator it =
fParticleChange
152 std::map<const G4Track*, G4VParticleChange*>::iterator next = it++;
157 <<
"No track B found ! Have you initialized the ReactionChange ?";
158 G4Exception(
"G4ITReactionChange::GetTrackB",
"ITReactionChange002",
std::ostringstream G4ExceptionDescription
void Initialize(const G4Track &, const G4Track &, G4VParticleChange *particleChangeA=0, G4VParticleChange *particleChangeB=0)
virtual ~G4ITReactionChange()
const G4Track * GetTrackA()
G4Track * GetTrack() const
void UpdateStepInfo(G4Step *, G4Step *)
void AddSecondary(G4Track *aSecondary)
G4ITReactionChange & operator=(const G4ITReactionChange &other)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
G4VParticleChange * GetParticleChange(const G4Track *)
const G4Track * GetTrackB()
G4int fNumberOfSecondaries
G4bool fParticleChangeIsSet
std::vector< G4Track * > * fSecondaries
std::map< const G4Track *, G4VParticleChange * > fParticleChange