40 fNumberOfSecondaries(0),
42 fParticleChangeIsSet(false)
57 fNumberOfSecondaries(0),
59 fParticleChangeIsSet(false)
67 if (
this == &rhs)
return *
this;
82 if(particleChangeA || particleChangeB)
84 G4bool test = particleChangeA && particleChangeB ;
89 exceptionDescription <<
"If you give for one track a particleChange, ";
90 exceptionDescription <<
"G4ITReactionChange is expecting that you give for both ";
91 exceptionDescription <<
"reacting tracks a particleChange.";
92 G4Exception(
"G4ITReactionChange::Initialize",
"ITReactionChange001",
120 G4cerr <<
"G4ITReactionChange::AddSecondary() Warning ";
122 G4cerr <<
" The object will not be added in fSecondaries" <<
G4endl;
134 std::map<const G4Track*, G4VParticleChange*>::iterator it =
fParticleChange.find(track);
137 else return it ->second;
142 std::map<const G4Track*, G4VParticleChange*>::iterator it =
fParticleChange.begin();
149 exceptionDescription <<
"No track A found ! Have you initialized the ReactionChange ?";
150 G4Exception(
"G4ITReactionChange::GetTrackA",
"ITReactionChange001",
157 std::map<const G4Track*, G4VParticleChange*>::iterator it =
fParticleChange.begin();
158 std::map<const G4Track*, G4VParticleChange*>::iterator next = it++;
162 exceptionDescription <<
"No track B found ! Have you initialized the ReactionChange ?";
163 G4Exception(
"G4ITReactionChange::GetTrackB",
"ITReactionChange002",
void SetElement(G4int anIndex, Type *anElement)
G4bool fParticleChangeIsSet
const G4Track * GetTrackA()
std::ostringstream G4ExceptionDescription
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
G4FastVector< G4Track, G4TrackFastVectorSize > G4TrackFastVector
virtual ~G4ITReactionChange()
const G4int G4TrackFastVectorSize
G4TrackFastVector * fSecondaries
G4Track * GetTrack() const
void AddSecondary(G4Track *aSecondary)
G4GLOB_DLL std::ostream G4cerr