39 fNumberOfSecondaries(0),
41 fParticleChangeIsSet(false)
56 fNumberOfSecondaries(0),
58 fParticleChangeIsSet(false)
66 if (
this == &rhs)
return *
this;
80 if (particleChangeA || particleChangeB)
82 G4bool test = particleChangeA && particleChangeB;
87 exceptionDescription <<
"If you give for one track a particleChange, ";
89 <<
"G4ITReactionChange is expecting that you give for both ";
90 exceptionDescription <<
"reacting tracks a particleChange.";
91 G4Exception(
"G4ITReactionChange::Initialize",
"ITReactionChange001",
123 std::map<const G4Track*, G4VParticleChange*>::iterator it =
fParticleChange
127 else return it->second;
140 <<
"No track A found ! Have you initialized the ReactionChange ?";
141 G4Exception(
"G4ITReactionChange::GetTrackA",
"ITReactionChange001",
154 <<
"No track B found ! Have you initialized the ReactionChange ?";
155 G4Exception(
"G4ITReactionChange::GetTrackB",
"ITReactionChange002",
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *description)
std::ostringstream G4ExceptionDescription
const G4Track * GetTrackB()
std::map< const G4Track *, G4VParticleChange * > fParticleChange
G4VParticleChange * GetParticleChange(const G4Track *)
void AddSecondary(G4Track *aSecondary)
G4ITReactionChange & operator=(const G4ITReactionChange &other)
G4bool fParticleChangeIsSet
void Initialize(const G4Track &, const G4Track &, G4VParticleChange *particleChangeA=0, G4VParticleChange *particleChangeB=0)
const G4Track * GetTrackA()
virtual ~G4ITReactionChange()
void UpdateStepInfo(G4Step *, G4Step *)
G4int fNumberOfSecondaries
std::vector< G4Track * > * fSecondaries
G4Track * GetTrack() const