44 #include <G4ParticleChange.hh> 51 #include <G4TrackStatus.hh> 90 if ( numberOfElements > 1 )
93 "material is more than 1.\n Only the first " 94 "element will be chosen for target nucleus" <<
G4endl;
110 const G4Track &
track )
125 for (
G4int i( 0 ); i < numberOfSecondaries; ++i )
129 time = track.GetGlobalTime();
131 G4Track * newTrack(
new G4Track(
133 time, track.GetPosition() ) );
135 G4double newWeight( track.GetWeight() *
137 newTrack->SetWeight( newWeight );
138 newTrack->SetTouchableHandle( track.GetTouchableHandle() );
142 hadFinalState->
Clear();
149 G4TrackStatus trackStatus( track.GetTrackStatus() );
151 if ( trackStatus != fAlive && trackStatus != fSuspend )
180 track.GetUserInformation() ) );
186 static_cast< CexmcIncidentParticleTrackInfo * >( trackInfo ) );
204 if ( ! incidentParticle )
207 return particle == *incidentParticle;
G4VParticleChange * PostStepDoIt(const G4Track &track, const G4Step &step)
G4HadronicInteraction * interaction
void SetNeedsTrackLengthResampling(G4bool on=true)
G4int GetNumberOfSecondaries() const
G4HadSecondary * GetSecondary(size_t i)
G4int GetFirstIsotope(G4int Z)
CexmcHadronicProcess(const G4String &name=CexmcStudiedProcessLastName)
G4double GetEnergyChange() const
G4double GetWeight() const
void FillTotalResult(G4HadFinalState *hadFinalState, const G4Track &track)
void RegisterProductionModel(CexmcProductionModel *model)
void RegisterMe(G4HadronicInteraction *a)
G4HadFinalStateStatus GetStatusChange() const
G4bool IsApplicable(const G4ParticleDefinition &particle)
G4double GetLocalEnergyDeposit() const
G4GLOB_DLL std::ostream G4cout
G4ParticleDefinition * GetIncidentParticle(void) const
CexmcProductionModel * productionModel
const G4Element * GetElement(G4int iel) const
void CalculateTargetNucleus(const G4Material *material)
G4int GetIsotopeNucleonCount(G4int number)
G4DynamicParticle * GetParticle()
size_t GetNumberOfElements() const
G4ParticleChange * theTotalResult
void SetParameters(const G4double A, const G4double Z)
virtual G4int GetTypeInfo(void) const
virtual G4HadFinalState * ApplyYourself(const G4HadProjectile &aTrack, G4Nucleus &targetNucleus)=0