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",
G4bool fParticleChangeIsSet
const G4Track * GetTrackA()
std::ostringstream G4ExceptionDescription
std::vector< G4Track * > * fSecondaries
G4VParticleChange * GetParticleChange(const G4Track *)
G4ITReactionChange & operator=(const G4ITReactionChange &other)
void UpdateStepInfo(G4Step *, G4Step *)
void Initialize(const G4Track &, const G4Track &, G4VParticleChange *particleChangeA=0, G4VParticleChange *particleChangeB=0)
const G4Track * GetTrackB()
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
std::map< const G4Track *, G4VParticleChange * > fParticleChange
G4int fNumberOfSecondaries
virtual ~G4ITReactionChange()
G4Track * GetTrack() const
void AddSecondary(G4Track *aSecondary)